dinocollab-core 2.1.19 → 2.1.21

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 (445) hide show
  1. package/dist/_virtual/Reflect.js +2 -0
  2. package/dist/_virtual/Reflect.js.map +1 -0
  3. package/dist/_virtual/Reflect2.js +2 -0
  4. package/dist/_virtual/Reflect2.js.map +1 -0
  5. package/dist/_virtual/_commonjsHelpers.js +2 -0
  6. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  7. package/dist/api-context/index.js +1 -1
  8. package/dist/components/index.js +1 -1
  9. package/dist/data-view/index.js +1 -1
  10. package/dist/form/index.js +1 -1
  11. package/dist/hooks/index.js +1 -1
  12. package/dist/http-service/index.js +1 -1
  13. package/dist/lab/index.js +1 -1
  14. package/dist/mfe-shared/index.js +1 -1
  15. package/dist/node_modules/reflect-metadata/Reflect.js +16 -0
  16. package/dist/node_modules/reflect-metadata/Reflect.js.map +1 -0
  17. package/dist/redux/index.js +1 -1
  18. package/dist/src/api-context/alert-global.js +2 -0
  19. package/dist/src/api-context/alert-global.js.map +1 -0
  20. package/dist/src/api-context/drawer-global.js +2 -0
  21. package/dist/src/api-context/drawer-global.js.map +1 -0
  22. package/dist/src/api-context/global-modal.js +2 -0
  23. package/dist/src/api-context/global-modal.js.map +1 -0
  24. package/dist/src/api-context/popover-global.js +2 -0
  25. package/dist/src/api-context/popover-global.js.map +1 -0
  26. package/dist/src/api-context/popover.js +2 -0
  27. package/dist/src/api-context/popover.js.map +1 -0
  28. package/dist/src/api-context/ui.units.js.map +1 -0
  29. package/dist/src/components/breadcrumbs.js +2 -0
  30. package/dist/src/components/breadcrumbs.js.map +1 -0
  31. package/dist/src/components/buttons.js +2 -0
  32. package/dist/src/components/buttons.js.map +1 -0
  33. package/dist/src/components/copy-to-clipboard.js +2 -0
  34. package/dist/src/components/copy-to-clipboard.js.map +1 -0
  35. package/dist/src/components/create.multi-select-dropdown.js +2 -0
  36. package/dist/src/components/create.multi-select-dropdown.js.map +1 -0
  37. package/dist/src/components/help-tooltip.js +2 -0
  38. package/dist/src/components/help-tooltip.js.map +1 -0
  39. package/dist/src/components/image-with-fallback.js +2 -0
  40. package/dist/src/components/image-with-fallback.js.map +1 -0
  41. package/dist/src/components/rich-tooltip.js +2 -0
  42. package/dist/src/components/rich-tooltip.js.map +1 -0
  43. package/dist/src/components/text-editor.js +2 -0
  44. package/dist/src/components/text-editor.js.map +1 -0
  45. package/dist/src/components/text-editor.preview.js.map +1 -0
  46. package/dist/src/data-view/context.js +2 -0
  47. package/dist/src/data-view/context.js.map +1 -0
  48. package/dist/src/data-view/convert-filter-to-graphql.js +2 -0
  49. package/dist/src/data-view/convert-filter-to-graphql.js.map +1 -0
  50. package/dist/src/data-view/create.active-filters-panel.js +2 -0
  51. package/dist/src/data-view/create.active-filters-panel.js.map +1 -0
  52. package/dist/src/data-view/create.data-view.js +2 -0
  53. package/dist/src/data-view/create.data-view.js.map +1 -0
  54. package/dist/src/data-view/create.filter-bar.js +2 -0
  55. package/dist/src/data-view/create.filter-bar.js.map +1 -0
  56. package/dist/src/data-view/create.filter-menu.js +2 -0
  57. package/dist/src/data-view/create.filter-menu.js.map +1 -0
  58. package/dist/src/data-view/create.pagination-bar.js +2 -0
  59. package/dist/src/data-view/create.pagination-bar.js.map +1 -0
  60. package/dist/src/data-view/create.popper-panel.js +2 -0
  61. package/dist/src/data-view/create.popper-panel.js.map +1 -0
  62. package/dist/src/data-view/create.search-match.js +2 -0
  63. package/dist/src/data-view/create.search-match.js.map +1 -0
  64. package/dist/src/data-view/create.sort-menu.js +2 -0
  65. package/dist/src/data-view/create.sort-menu.js.map +1 -0
  66. package/dist/src/data-view/create.view-mode.js +2 -0
  67. package/dist/src/data-view/create.view-mode.js.map +1 -0
  68. package/dist/src/data-view/dino.js +2 -0
  69. package/dist/src/data-view/dino.js.map +1 -0
  70. package/dist/src/data-view/filter-store.js +2 -0
  71. package/dist/src/data-view/filter-store.js.map +1 -0
  72. package/dist/src/data-view/helpers.js +2 -0
  73. package/dist/src/data-view/helpers.js.map +1 -0
  74. package/dist/src/data-view/query-param-url.js +2 -0
  75. package/dist/src/data-view/query-param-url.js.map +1 -0
  76. package/dist/src/data-view/scroll-tracking.js +2 -0
  77. package/dist/src/data-view/scroll-tracking.js.map +1 -0
  78. package/dist/src/data-view/types.js.map +1 -0
  79. package/dist/src/data-view/ui.units.js +2 -0
  80. package/dist/src/data-view/ui.units.js.map +1 -0
  81. package/dist/src/data-view/view-mode.content.js +2 -0
  82. package/dist/src/data-view/view-mode.content.js.map +1 -0
  83. package/dist/src/data-view/view-mode.types.js.map +1 -0
  84. package/dist/src/data-view/view-mode.units.js +2 -0
  85. package/dist/src/data-view/view-mode.units.js.map +1 -0
  86. package/dist/src/form/create.autocomplete.chips.js +2 -0
  87. package/dist/src/form/create.autocomplete.chips.js.map +1 -0
  88. package/dist/src/form/create.color-picker.js +2 -0
  89. package/dist/src/form/create.color-picker.js.map +1 -0
  90. package/dist/src/form/create.date-expired.js +2 -0
  91. package/dist/src/form/create.date-expired.js.map +1 -0
  92. package/dist/src/form/create.date-picker.js +2 -0
  93. package/dist/src/form/create.date-picker.js.map +1 -0
  94. package/dist/src/form/create.form-base.js +2 -0
  95. package/dist/src/form/create.form-base.js.map +1 -0
  96. package/dist/src/form/create.form-comfirm.js +2 -0
  97. package/dist/src/form/create.form-comfirm.js.map +1 -0
  98. package/dist/src/form/create.form-grid-layout.js +2 -0
  99. package/dist/src/form/create.form-grid-layout.js.map +1 -0
  100. package/dist/src/form/create.form-grid-layout.units.js.map +1 -0
  101. package/dist/src/form/create.input-file.csv-local-parser.js +2 -0
  102. package/dist/src/form/create.input-file.csv-local-parser.js.map +1 -0
  103. package/dist/src/form/create.input.file.js +2 -0
  104. package/dist/src/form/create.input.file.js.map +1 -0
  105. package/dist/src/form/create.input.image-file.js +2 -0
  106. package/dist/src/form/create.input.image-file.js.map +1 -0
  107. package/dist/src/form/create.input.js +2 -0
  108. package/dist/src/form/create.input.js.map +1 -0
  109. package/dist/src/form/create.select-simple.js +2 -0
  110. package/dist/src/form/create.select-simple.js.map +1 -0
  111. package/dist/src/form/create.select-with-api.js +2 -0
  112. package/dist/src/form/create.select-with-api.js.map +1 -0
  113. package/dist/src/form/create.text-editor.js +2 -0
  114. package/dist/src/form/create.text-editor.js.map +1 -0
  115. package/dist/src/form/decorator.form.js +2 -0
  116. package/dist/src/form/decorator.form.js.map +1 -0
  117. package/dist/src/form/decorator.js +2 -0
  118. package/dist/src/form/decorator.js.map +1 -0
  119. package/dist/src/form/dino-form.js +2 -0
  120. package/dist/src/form/dino-form.js.map +1 -0
  121. package/dist/src/form/helpers.js +2 -0
  122. package/dist/src/form/helpers.js.map +1 -0
  123. package/dist/src/form/modal-wrapper.js +2 -0
  124. package/dist/src/form/modal-wrapper.js.map +1 -0
  125. package/dist/src/form/validator.js +2 -0
  126. package/dist/src/form/validator.js.map +1 -0
  127. package/dist/src/hooks/check-scrolled.js +2 -0
  128. package/dist/src/hooks/check-scrolled.js.map +1 -0
  129. package/dist/src/hooks/debounce.js +2 -0
  130. package/dist/src/hooks/debounce.js.map +1 -0
  131. package/dist/src/hooks/use-fetch-data.js +2 -0
  132. package/dist/src/hooks/use-fetch-data.js.map +1 -0
  133. package/dist/src/http-service/base/crud-service-base.js +2 -0
  134. package/dist/src/http-service/base/crud-service-base.js.map +1 -0
  135. package/dist/src/http-service/base/gateway.js.map +1 -0
  136. package/dist/src/http-service/base/helpers.js +2 -0
  137. package/dist/src/http-service/base/helpers.js.map +1 -0
  138. package/dist/src/http-service/base/service-base.js +2 -0
  139. package/dist/src/http-service/base/service-base.js.map +1 -0
  140. package/dist/src/http-service/graphql/app-profile.js +2 -0
  141. package/dist/src/http-service/graphql/app-profile.js.map +1 -0
  142. package/dist/src/http-service/graphql/graphql-request.js +2 -0
  143. package/dist/src/http-service/graphql/graphql-request.js.map +1 -0
  144. package/dist/src/http-service/graphql/key-converter.js.map +1 -0
  145. package/dist/src/http-service/graphql/request-param.js +2 -0
  146. package/dist/src/http-service/graphql/request-param.js.map +1 -0
  147. package/dist/src/http-service/graphql/types.js.map +1 -0
  148. package/dist/src/lab/attach-widget/helpers.js +2 -0
  149. package/dist/src/lab/attach-widget/helpers.js.map +1 -0
  150. package/dist/src/lab/attach-widget/modal.js +2 -0
  151. package/dist/src/lab/attach-widget/modal.js.map +1 -0
  152. package/dist/src/lab/attach-widget/styled.js +2 -0
  153. package/dist/src/lab/attach-widget/styled.js.map +1 -0
  154. package/dist/src/lab/attach-widget/widget.js +2 -0
  155. package/dist/src/lab/attach-widget/widget.js.map +1 -0
  156. package/dist/src/lab/input.social-links/configs.js.map +1 -0
  157. package/dist/src/lab/input.social-links/create.js +2 -0
  158. package/dist/src/lab/input.social-links/create.js.map +1 -0
  159. package/dist/src/lab/input.social-links/types.js.map +1 -0
  160. package/dist/src/lab/input.social-links/unit.icons.js +2 -0
  161. package/dist/src/lab/input.social-links/unit.icons.js.map +1 -0
  162. package/dist/src/lab/input.social-links/units.js +2 -0
  163. package/dist/src/lab/input.social-links/units.js.map +1 -0
  164. package/dist/src/mfe-shared/navigation.js +2 -0
  165. package/dist/src/mfe-shared/navigation.js.map +1 -0
  166. package/dist/src/redux/create.hoc-lazy.js +2 -0
  167. package/dist/src/redux/create.hoc-lazy.js.map +1 -0
  168. package/dist/src/redux/dino.js +2 -0
  169. package/dist/src/redux/dino.js.map +1 -0
  170. package/dist/src/redux/types.js.map +1 -0
  171. package/dist/src/redux/ui.error-page.js +2 -0
  172. package/dist/src/redux/ui.error-page.js.map +1 -0
  173. package/dist/src/table/context.js.map +1 -0
  174. package/dist/src/table/create.action-row.js +2 -0
  175. package/dist/src/table/create.action-row.js.map +1 -0
  176. package/dist/src/table/create.table.js +2 -0
  177. package/dist/src/table/create.table.js.map +1 -0
  178. package/dist/src/table/custom.filter-operators.js.map +1 -0
  179. package/dist/src/table/dino.js +2 -0
  180. package/dist/src/table/dino.js.map +1 -0
  181. package/dist/src/table/helpers.js +2 -0
  182. package/dist/src/table/helpers.js.map +1 -0
  183. package/dist/src/table/model-filter.js.map +1 -0
  184. package/dist/src/table/toolbar-pannel.js +2 -0
  185. package/dist/src/table/toolbar-pannel.js.map +1 -0
  186. package/dist/src/table/ui.buttons.js.map +1 -0
  187. package/dist/src/table/ui.units.js +2 -0
  188. package/dist/src/table/ui.units.js.map +1 -0
  189. package/dist/src/table-grid/create.table-grid.js +2 -0
  190. package/dist/src/table-grid/create.table-grid.js.map +1 -0
  191. package/dist/src/table-grid/dino.js +2 -0
  192. package/dist/src/table-grid/dino.js.map +1 -0
  193. package/dist/src/table-grid/filter-bar/base.js +2 -0
  194. package/dist/src/table-grid/filter-bar/base.js.map +1 -0
  195. package/dist/src/table-grid/filter-bar/create.filter-bar.js +2 -0
  196. package/dist/src/table-grid/filter-bar/create.filter-bar.js.map +1 -0
  197. package/dist/src/table-grid/filter-bar/create.filter-menu.js +2 -0
  198. package/dist/src/table-grid/filter-bar/create.filter-menu.js.map +1 -0
  199. package/dist/src/table-grid/filter-bar/create.filter-panel.js +2 -0
  200. package/dist/src/table-grid/filter-bar/create.filter-panel.js.map +1 -0
  201. package/dist/src/table-grid/filter-bar/create.filtered.js +2 -0
  202. package/dist/src/table-grid/filter-bar/create.filtered.js.map +1 -0
  203. package/dist/src/table-grid/filter-bar/types.js.map +1 -0
  204. package/dist/src/table-grid/filter-bar/ui.units.js.map +1 -0
  205. package/dist/src/table-grid/helpers.js.map +1 -0
  206. package/dist/src/table-grid/item-actions.js +2 -0
  207. package/dist/src/table-grid/item-actions.js.map +1 -0
  208. package/dist/src/table-grid/toolbar-pannel.js +2 -0
  209. package/dist/src/table-grid/toolbar-pannel.js.map +1 -0
  210. package/dist/src/table-grid/url-query-param.js +2 -0
  211. package/dist/src/table-grid/url-query-param.js.map +1 -0
  212. package/dist/src/utils/dayjs-config.js.map +1 -0
  213. package/dist/src/utils/helpers.js +2 -0
  214. package/dist/src/utils/helpers.js.map +1 -0
  215. package/dist/src/utils/json-object.js +2 -0
  216. package/dist/src/utils/json-object.js.map +1 -0
  217. package/dist/src/utils/query-param.js +2 -0
  218. package/dist/src/utils/query-param.js.map +1 -0
  219. package/dist/table/index.js +1 -1
  220. package/dist/table-grid/index.js +1 -1
  221. package/dist/types/form/create.form-base.d.ts +3 -2
  222. package/dist/types/form/create.form-grid-layout.d.ts +2 -1
  223. package/dist/types/form/create.input.d.ts +2 -2
  224. package/dist/types/form/decorator.d.ts +30 -0
  225. package/dist/types/form/decorator.form.d.ts +20 -0
  226. package/dist/types/form/dino-form.d.ts +3 -1
  227. package/dist/types/form/index.d.ts +2 -0
  228. package/dist/utils/index.js +1 -1
  229. package/package.json +5 -1
  230. package/dist/api-context/alert-global.js +0 -2
  231. package/dist/api-context/alert-global.js.map +0 -1
  232. package/dist/api-context/drawer-global.js +0 -2
  233. package/dist/api-context/drawer-global.js.map +0 -1
  234. package/dist/api-context/global-modal.js +0 -2
  235. package/dist/api-context/global-modal.js.map +0 -1
  236. package/dist/api-context/popover-global.js +0 -2
  237. package/dist/api-context/popover-global.js.map +0 -1
  238. package/dist/api-context/popover.js +0 -2
  239. package/dist/api-context/popover.js.map +0 -1
  240. package/dist/api-context/ui.units.js.map +0 -1
  241. package/dist/components/breadcrumbs.js +0 -2
  242. package/dist/components/breadcrumbs.js.map +0 -1
  243. package/dist/components/buttons.js +0 -2
  244. package/dist/components/buttons.js.map +0 -1
  245. package/dist/components/copy-to-clipboard.js +0 -2
  246. package/dist/components/copy-to-clipboard.js.map +0 -1
  247. package/dist/components/create.multi-select-dropdown.js +0 -2
  248. package/dist/components/create.multi-select-dropdown.js.map +0 -1
  249. package/dist/components/help-tooltip.js +0 -2
  250. package/dist/components/help-tooltip.js.map +0 -1
  251. package/dist/components/image-with-fallback.js +0 -2
  252. package/dist/components/image-with-fallback.js.map +0 -1
  253. package/dist/components/rich-tooltip.js +0 -2
  254. package/dist/components/rich-tooltip.js.map +0 -1
  255. package/dist/components/text-editor.js +0 -2
  256. package/dist/components/text-editor.js.map +0 -1
  257. package/dist/components/text-editor.preview.js.map +0 -1
  258. package/dist/data-view/context.js +0 -2
  259. package/dist/data-view/context.js.map +0 -1
  260. package/dist/data-view/convert-filter-to-graphql.js +0 -2
  261. package/dist/data-view/convert-filter-to-graphql.js.map +0 -1
  262. package/dist/data-view/create.active-filters-panel.js +0 -2
  263. package/dist/data-view/create.active-filters-panel.js.map +0 -1
  264. package/dist/data-view/create.data-view.js +0 -2
  265. package/dist/data-view/create.data-view.js.map +0 -1
  266. package/dist/data-view/create.filter-bar.js +0 -2
  267. package/dist/data-view/create.filter-bar.js.map +0 -1
  268. package/dist/data-view/create.filter-menu.js +0 -2
  269. package/dist/data-view/create.filter-menu.js.map +0 -1
  270. package/dist/data-view/create.pagination-bar.js +0 -2
  271. package/dist/data-view/create.pagination-bar.js.map +0 -1
  272. package/dist/data-view/create.popper-panel.js +0 -2
  273. package/dist/data-view/create.popper-panel.js.map +0 -1
  274. package/dist/data-view/create.search-match.js +0 -2
  275. package/dist/data-view/create.search-match.js.map +0 -1
  276. package/dist/data-view/create.sort-menu.js +0 -2
  277. package/dist/data-view/create.sort-menu.js.map +0 -1
  278. package/dist/data-view/create.view-mode.js +0 -2
  279. package/dist/data-view/create.view-mode.js.map +0 -1
  280. package/dist/data-view/dino.js +0 -2
  281. package/dist/data-view/dino.js.map +0 -1
  282. package/dist/data-view/filter-store.js +0 -2
  283. package/dist/data-view/filter-store.js.map +0 -1
  284. package/dist/data-view/helpers.js +0 -2
  285. package/dist/data-view/helpers.js.map +0 -1
  286. package/dist/data-view/query-param-url.js +0 -2
  287. package/dist/data-view/query-param-url.js.map +0 -1
  288. package/dist/data-view/scroll-tracking.js +0 -2
  289. package/dist/data-view/scroll-tracking.js.map +0 -1
  290. package/dist/data-view/types.js.map +0 -1
  291. package/dist/data-view/ui.units.js +0 -2
  292. package/dist/data-view/ui.units.js.map +0 -1
  293. package/dist/data-view/view-mode.content.js +0 -2
  294. package/dist/data-view/view-mode.content.js.map +0 -1
  295. package/dist/data-view/view-mode.types.js.map +0 -1
  296. package/dist/data-view/view-mode.units.js +0 -2
  297. package/dist/data-view/view-mode.units.js.map +0 -1
  298. package/dist/form/create.autocomplete.chips.js +0 -2
  299. package/dist/form/create.autocomplete.chips.js.map +0 -1
  300. package/dist/form/create.color-picker.js +0 -2
  301. package/dist/form/create.color-picker.js.map +0 -1
  302. package/dist/form/create.date-expired.js +0 -2
  303. package/dist/form/create.date-expired.js.map +0 -1
  304. package/dist/form/create.date-picker.js +0 -2
  305. package/dist/form/create.date-picker.js.map +0 -1
  306. package/dist/form/create.form-base.js +0 -2
  307. package/dist/form/create.form-base.js.map +0 -1
  308. package/dist/form/create.form-comfirm.js +0 -2
  309. package/dist/form/create.form-comfirm.js.map +0 -1
  310. package/dist/form/create.form-grid-layout.js +0 -2
  311. package/dist/form/create.form-grid-layout.js.map +0 -1
  312. package/dist/form/create.form-grid-layout.units.js.map +0 -1
  313. package/dist/form/create.input-file.csv-local-parser.js +0 -2
  314. package/dist/form/create.input-file.csv-local-parser.js.map +0 -1
  315. package/dist/form/create.input.file.js +0 -2
  316. package/dist/form/create.input.file.js.map +0 -1
  317. package/dist/form/create.input.image-file.js +0 -2
  318. package/dist/form/create.input.image-file.js.map +0 -1
  319. package/dist/form/create.input.js +0 -2
  320. package/dist/form/create.input.js.map +0 -1
  321. package/dist/form/create.select-simple.js +0 -2
  322. package/dist/form/create.select-simple.js.map +0 -1
  323. package/dist/form/create.select-with-api.js +0 -2
  324. package/dist/form/create.select-with-api.js.map +0 -1
  325. package/dist/form/create.text-editor.js +0 -2
  326. package/dist/form/create.text-editor.js.map +0 -1
  327. package/dist/form/dino-form.js +0 -2
  328. package/dist/form/dino-form.js.map +0 -1
  329. package/dist/form/helpers.js +0 -2
  330. package/dist/form/helpers.js.map +0 -1
  331. package/dist/form/modal-wrapper.js +0 -2
  332. package/dist/form/modal-wrapper.js.map +0 -1
  333. package/dist/form/validator.js +0 -2
  334. package/dist/form/validator.js.map +0 -1
  335. package/dist/hooks/check-scrolled.js +0 -2
  336. package/dist/hooks/check-scrolled.js.map +0 -1
  337. package/dist/hooks/debounce.js +0 -2
  338. package/dist/hooks/debounce.js.map +0 -1
  339. package/dist/hooks/use-fetch-data.js +0 -2
  340. package/dist/hooks/use-fetch-data.js.map +0 -1
  341. package/dist/http-service/base/crud-service-base.js +0 -2
  342. package/dist/http-service/base/crud-service-base.js.map +0 -1
  343. package/dist/http-service/base/gateway.js.map +0 -1
  344. package/dist/http-service/base/helpers.js +0 -2
  345. package/dist/http-service/base/helpers.js.map +0 -1
  346. package/dist/http-service/base/service-base.js +0 -2
  347. package/dist/http-service/base/service-base.js.map +0 -1
  348. package/dist/http-service/graphql/app-profile.js +0 -2
  349. package/dist/http-service/graphql/app-profile.js.map +0 -1
  350. package/dist/http-service/graphql/graphql-request.js +0 -2
  351. package/dist/http-service/graphql/graphql-request.js.map +0 -1
  352. package/dist/http-service/graphql/key-converter.js.map +0 -1
  353. package/dist/http-service/graphql/request-param.js +0 -2
  354. package/dist/http-service/graphql/request-param.js.map +0 -1
  355. package/dist/http-service/graphql/types.js.map +0 -1
  356. package/dist/lab/attach-widget/helpers.js +0 -2
  357. package/dist/lab/attach-widget/helpers.js.map +0 -1
  358. package/dist/lab/attach-widget/modal.js +0 -2
  359. package/dist/lab/attach-widget/modal.js.map +0 -1
  360. package/dist/lab/attach-widget/styled.js +0 -2
  361. package/dist/lab/attach-widget/styled.js.map +0 -1
  362. package/dist/lab/attach-widget/widget.js +0 -2
  363. package/dist/lab/attach-widget/widget.js.map +0 -1
  364. package/dist/lab/input.social-links/configs.js.map +0 -1
  365. package/dist/lab/input.social-links/create.js +0 -2
  366. package/dist/lab/input.social-links/create.js.map +0 -1
  367. package/dist/lab/input.social-links/types.js.map +0 -1
  368. package/dist/lab/input.social-links/unit.icons.js +0 -2
  369. package/dist/lab/input.social-links/unit.icons.js.map +0 -1
  370. package/dist/lab/input.social-links/units.js +0 -2
  371. package/dist/lab/input.social-links/units.js.map +0 -1
  372. package/dist/mfe-shared/navigation.js +0 -2
  373. package/dist/mfe-shared/navigation.js.map +0 -1
  374. package/dist/redux/create.hoc-lazy.js +0 -2
  375. package/dist/redux/create.hoc-lazy.js.map +0 -1
  376. package/dist/redux/dino.js +0 -2
  377. package/dist/redux/dino.js.map +0 -1
  378. package/dist/redux/types.js.map +0 -1
  379. package/dist/redux/ui.error-page.js +0 -2
  380. package/dist/redux/ui.error-page.js.map +0 -1
  381. package/dist/table/context.js.map +0 -1
  382. package/dist/table/create.action-row.js +0 -2
  383. package/dist/table/create.action-row.js.map +0 -1
  384. package/dist/table/create.table.js +0 -2
  385. package/dist/table/create.table.js.map +0 -1
  386. package/dist/table/custom.filter-operators.js.map +0 -1
  387. package/dist/table/dino.js +0 -2
  388. package/dist/table/dino.js.map +0 -1
  389. package/dist/table/helpers.js +0 -2
  390. package/dist/table/helpers.js.map +0 -1
  391. package/dist/table/model-filter.js.map +0 -1
  392. package/dist/table/toolbar-pannel.js +0 -2
  393. package/dist/table/toolbar-pannel.js.map +0 -1
  394. package/dist/table/ui.buttons.js.map +0 -1
  395. package/dist/table/ui.units.js +0 -2
  396. package/dist/table/ui.units.js.map +0 -1
  397. package/dist/table-grid/create.table-grid.js +0 -2
  398. package/dist/table-grid/create.table-grid.js.map +0 -1
  399. package/dist/table-grid/dino.js +0 -2
  400. package/dist/table-grid/dino.js.map +0 -1
  401. package/dist/table-grid/filter-bar/base.js +0 -2
  402. package/dist/table-grid/filter-bar/base.js.map +0 -1
  403. package/dist/table-grid/filter-bar/create.filter-bar.js +0 -2
  404. package/dist/table-grid/filter-bar/create.filter-bar.js.map +0 -1
  405. package/dist/table-grid/filter-bar/create.filter-menu.js +0 -2
  406. package/dist/table-grid/filter-bar/create.filter-menu.js.map +0 -1
  407. package/dist/table-grid/filter-bar/create.filter-panel.js +0 -2
  408. package/dist/table-grid/filter-bar/create.filter-panel.js.map +0 -1
  409. package/dist/table-grid/filter-bar/create.filtered.js +0 -2
  410. package/dist/table-grid/filter-bar/create.filtered.js.map +0 -1
  411. package/dist/table-grid/filter-bar/types.js.map +0 -1
  412. package/dist/table-grid/filter-bar/ui.units.js.map +0 -1
  413. package/dist/table-grid/helpers.js.map +0 -1
  414. package/dist/table-grid/item-actions.js +0 -2
  415. package/dist/table-grid/item-actions.js.map +0 -1
  416. package/dist/table-grid/toolbar-pannel.js +0 -2
  417. package/dist/table-grid/toolbar-pannel.js.map +0 -1
  418. package/dist/table-grid/url-query-param.js +0 -2
  419. package/dist/table-grid/url-query-param.js.map +0 -1
  420. package/dist/utils/dayjs-config.js.map +0 -1
  421. package/dist/utils/helpers.js +0 -2
  422. package/dist/utils/helpers.js.map +0 -1
  423. package/dist/utils/json-object.js +0 -2
  424. package/dist/utils/json-object.js.map +0 -1
  425. package/dist/utils/query-param.js +0 -2
  426. package/dist/utils/query-param.js.map +0 -1
  427. /package/dist/{api-context → src/api-context}/ui.units.js +0 -0
  428. /package/dist/{components → src/components}/text-editor.preview.js +0 -0
  429. /package/dist/{data-view → src/data-view}/types.js +0 -0
  430. /package/dist/{data-view → src/data-view}/view-mode.types.js +0 -0
  431. /package/dist/{form → src/form}/create.form-grid-layout.units.js +0 -0
  432. /package/dist/{http-service → src/http-service}/base/gateway.js +0 -0
  433. /package/dist/{http-service → src/http-service}/graphql/key-converter.js +0 -0
  434. /package/dist/{http-service → src/http-service}/graphql/types.js +0 -0
  435. /package/dist/{lab → src/lab}/input.social-links/configs.js +0 -0
  436. /package/dist/{lab → src/lab}/input.social-links/types.js +0 -0
  437. /package/dist/{redux → src/redux}/types.js +0 -0
  438. /package/dist/{table → src/table}/context.js +0 -0
  439. /package/dist/{table → src/table}/custom.filter-operators.js +0 -0
  440. /package/dist/{table → src/table}/model-filter.js +0 -0
  441. /package/dist/{table → src/table}/ui.buttons.js +0 -0
  442. /package/dist/{table-grid → src/table-grid}/filter-bar/types.js +0 -0
  443. /package/dist/{table-grid → src/table-grid}/filter-bar/ui.units.js +0 -0
  444. /package/dist/{table-grid → src/table-grid}/helpers.js +0 -0
  445. /package/dist/{utils → src/utils}/dayjs-config.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-converter.js","sources":["../../../../src/http-service/graphql/key-converter.ts"],"sourcesContent":["type SingleOrArray<T> = T | T[]\r\n\r\nexport interface IKeyConverterDef<Q> {\r\n field?: keyof Q\r\n deep?: string\r\n prefix?: string\r\n suffix?: string\r\n custom?: (value: string) => string\r\n}\r\n\r\nexport type IKeyConverterModel<T, Q> = { [key in keyof T]?: SingleOrArray<IKeyConverterDef<Q>> }\r\n\r\nexport const createKeyConverter = <T, Q>(params: IKeyConverterModel<T, Q>): IKeyConverterModel<T, Q> => params\r\n\r\nexport const getKeyConverter = <T, Q>(key: keyof T, converter: IKeyConverterModel<T, Q>): IKeyConverterDef<Q>[] => {\r\n const temp = converter[key]\r\n return temp ? (Array.isArray(temp) ? temp : [temp]) : []\r\n}\r\n"],"names":["createKeyConverter","params","getKeyConverter","key","converter","temp","Array","isArray"],"mappings":"IAYaA,EAAqB,SAAOC,GAAgC,OAA+BA,CAAM,EAEjGC,EAAkB,SAAOC,EAAcC,GAClD,IAAMC,EAAOD,EAAUD,GACvB,OAAOE,EAAQC,MAAMC,QAAQF,GAAQA,EAAO,CAACA,GAAS,EACxD"}
@@ -0,0 +1,2 @@
1
+ import{createClass as t,classCallCheck as e,defineProperty as i,objectSpread2 as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";var r=t((function t(r){var o=this;e(this,t),i(this,"mergeOptions",(function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.reduce((function(t,e){return Object.assign(t,null!=e?e:{})}),{})})),i(this,"ignoreEmpty",(function(t,e){var i=o.mergeOptions(o._option,e);return!t&&!0===(null==i?void 0:i.ignoreEmpty)})),i(this,"_filter",[]),i(this,"_filterBase",(function(t,e,i,n){var r=o._filter.length?" "+("And"===(null==n?void 0:n.logic)?"&&":"||")+" ":"";return o._filter.push("".concat(r).concat(t).concat(e).concat(i)),o})),i(this,"filter",(function(t,e,i){return"string"==typeof e&&o.ignoreEmpty(e,i)?o:o._filterBase(t,"==","string"==typeof e?'"'.concat(e,'"'):e.toString(),i)})),i(this,"filterNotEquals",(function(t,e,i){return"string"==typeof e&&o.ignoreEmpty(e,i)?o:o._filterBase(t,"!=","string"==typeof e?'"'.concat(e,'"'):e.toString(),i)})),i(this,"filterEnum",(function(t,e,i){return"string"==typeof e&&o.ignoreEmpty(e,i)?o:o._filterBase(t,"==","string"==typeof e?e:e.toString(),i)})),i(this,"filterStartsWith",(function(t,e,i){return o.ignoreEmpty(e,i)?o:o._filterBase(t,'.startsWith("'+e+'")',"",i)})),i(this,"filterContains",(function(t,e,i){return o.ignoreEmpty(e,i)?o:o._filterBase(t,'.Contains("'+e+'")',"",i)})),i(this,"filterLast",(function(t,e,i){return o.ignoreEmpty(e,i)?o:o._filterBase(t,'.endsWith("'+e+'")',"",i)})),i(this,"filterNumber",(function(t,e,i,n){return o.ignoreEmpty(i,n)?o:o._filterBase(t," ".concat(e," ")+i,"",n)})),i(this,"filterGreater",(function(t,e,i){return o.ignoreEmpty(e,i)?o:o._filterBase(t," > '"+e+"'","",i)})),i(this,"filterLess",(function(t,e,i){return o.ignoreEmpty(e,i)?o:o._filterBase(t," < '"+e+"'","",i)})),i(this,"filterCustom",(function(t,e){var i=o._filter.length?" "+("And"===(null==e?void 0:e.logic)?"&&":"||")+" ":"";return o._filter.push("".concat(i).concat(t)),o})),i(this,"scope",(function(e,i){var n=e(new t(o._option));if(n.buildFilter()){var r=o._filter.length?" "+("And"===(null==i?void 0:i.logic)?"&&":"||")+" ":"";o._filter.push("".concat(r,"(").concat(n.buildFilter(),")"))}return o})),i(this,"seed",(function(t,e){return o.seedStore={field:t,key:e},o})),i(this,"skip",(function(t){return o._skip=t,o})),i(this,"take",(function(t){return o._take=t,o})),i(this,"sortStore",[]),i(this,"sortBase",(function(t,e,i){var n={};return n[t]=e,o.sortStore.some((function(t){return Object.keys(t)[0]===Object.keys(n)[0]}))||o.sortStore.push(n),o})),i(this,"sort",(function(t,e){return o.sortBase(t,null!=e&&e.direction?e.direction:"ASC"),o})),i(this,"noTotal",(function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return o._noTotal=t,o})),i(this,"buildFilter",(function(){return o._filter.join("")})),i(this,"buildPage",(function(){var t={};return o._skip&&(t.skip=o._skip),o._take&&(t.take=o._take),t})),i(this,"buildRandomWithSeedKey",(function(){var t,e,i,n,r,s;return null===(t=o.seedStore)||void 0===t||!t.field||null!==(e=o.seedStore)&&void 0!==e&&e.key||console.warn("RandomWithSeedKey missing seedKey."),null===(i=o.seedStore)||void 0===i||!i.key||null!==(n=o.seedStore)&&void 0!==n&&n.field||console.warn("RandomWithSeedKey missing seedField."),null!==(r=o.seedStore)&&void 0!==r&&r.key||null!==(s=o.seedStore)&&void 0!==s&&s.field?o.seedStore:{}})),i(this,"build",(function(){var t=n({},o.buildPage());o.sortStore.length>0&&(t.sort=o.sortStore);var e=o.buildFilter();e&&(t.filter=e),o._noTotal&&(t.noTotal=o._noTotal);var i=o.buildRandomWithSeedKey();return i.key&&i.field&&(t.seedField=i.field.toString(),t.seedKey=i.key),t})),this._option=r})),o=function(t){return new r(t)};export{r as RequestParam,o as createRequestBuilder};
2
+ //# sourceMappingURL=request-param.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-param.js","sources":["../../../../src/http-service/graphql/request-param.ts"],"sourcesContent":["export type IVariable<T extends object> = keyof T\r\n\r\nexport type ILogic = 'Or' | 'And'\r\n\r\nexport type ISortDirection = 'ASC' | 'DESC'\r\n\r\nexport interface ISeedModel<T> {\r\n key: string\r\n field: keyof T\r\n}\r\n\r\nexport interface IFilterOption {\r\n logic: ILogic\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface IRequestParamOption {\r\n ignoreEmpty: boolean\r\n}\r\n\r\nexport interface ISortOption {\r\n direction: ISortDirection\r\n}\r\n\r\nexport type ISortStore<T extends object> = { [key in keyof T]?: ISortDirection }\r\n\r\nexport type IAllOptions = IFilterOption & IRequestParamOption & ISortOption\r\n\r\nexport type IRequestParamResult<T extends object> = {\r\n sort?: ISortStore<T>[]\r\n skip: number\r\n take: number\r\n filter?: string\r\n noTotal?: boolean\r\n seedKey?: string\r\n seedField?: string\r\n}\r\n\r\nexport class RequestParam<T extends object = any> {\r\n private readonly _option?: Partial<IRequestParamOption>\r\n constructor(option?: Partial<IRequestParamOption>) {\r\n this._option = option\r\n }\r\n\r\n private mergeOptions = (...p: any[]): Partial<IAllOptions> => {\r\n return p.reduce((a, b) => {\r\n return Object.assign(a, b ?? {})\r\n }, {})\r\n }\r\n\r\n private ignoreEmpty = (field2: string, option?: Partial<IFilterOption>) => {\r\n const mOption = this.mergeOptions(this._option, option)\r\n return !field2 && mOption?.ignoreEmpty === true\r\n }\r\n\r\n private _filter: string[] = []\r\n private _filterBase = (field1: IVariable<T>, operation: string, field2: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}${operation}${field2 as string}`)\r\n return this\r\n }\r\n filter = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterNotEquals = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '!=', typeof field2 === 'string' ? `\"${field2}\"` : field2.toString(), option)\r\n }\r\n filterEnum = (field1: IVariable<T>, field2: string | number, option?: Partial<IFilterOption>) => {\r\n if (typeof field2 === 'string' && this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '==', typeof field2 === 'string' ? field2 : field2.toString(), option)\r\n }\r\n filterStartsWith = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.startsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterContains = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.Contains(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterLast = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, '.endsWith(\"' + (field2 as string) + '\")', '', option)\r\n }\r\n filterNumber = (field1: IVariable<T>, operator: string, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, ` ${operator} ` + (field2 as string), '', option)\r\n }\r\n filterGreater = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" > '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterLess = (field1: IVariable<T>, field2: string, option?: Partial<IFilterOption>) => {\r\n if (this.ignoreEmpty(field2, option)) return this\r\n return this._filterBase(field1, \" < '\" + (field2 as string) + \"'\", '', option)\r\n }\r\n filterCustom = (field1: string, option?: Partial<IFilterOption>) => {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}${field1 as string}`)\r\n return this\r\n }\r\n\r\n scope = (action: (crd: RequestParam<T>) => RequestParam<T>, option?: Partial<IFilterOption>) => {\r\n const crd = action(new RequestParam(this._option))\r\n const temp = crd.buildFilter()\r\n if (temp) {\r\n const logicStr = this._filter.length ? ' ' + (option?.logic === 'And' ? '&&' : '||') + ' ' : ''\r\n this._filter.push(`${logicStr}(${crd.buildFilter()})`)\r\n }\r\n return this\r\n }\r\n\r\n private seedStore?: ISeedModel<T>\r\n seed = (field: keyof T, key: string) => {\r\n this.seedStore = { field, key }\r\n return this\r\n }\r\n\r\n private _skip?: number\r\n skip = (skip: number) => {\r\n this._skip = skip\r\n return this\r\n }\r\n\r\n private _take?: number\r\n take = (take: number) => {\r\n this._take = take\r\n return this\r\n }\r\n\r\n private sortStore: ISortStore<T>[] = []\r\n private sortBase = (field1: IVariable<T>, direction: ISortDirection, option?: Partial<ISortOption>) => {\r\n const temp = {} as ISortStore<T>\r\n temp[field1] = direction\r\n if (!this.sortStore.some((item) => Object.keys(item)[0] === Object.keys(temp)[0])) {\r\n this.sortStore.push(temp)\r\n }\r\n return this\r\n }\r\n sort = (field1: IVariable<T>, option?: Partial<ISortOption>) => {\r\n this.sortBase(field1, option?.direction ? option.direction : 'ASC')\r\n return this\r\n }\r\n\r\n private _noTotal?: boolean\r\n noTotal = (value: boolean = true) => {\r\n this._noTotal = value\r\n return this\r\n }\r\n\r\n private buildFilter = () => {\r\n return this._filter.join('')\r\n }\r\n\r\n private buildPage = () => {\r\n const temp = {} as any\r\n if (this._skip) {\r\n temp.skip = this._skip\r\n }\r\n if (this._take) {\r\n temp.take = this._take\r\n }\r\n return temp as { skip: number; take: number }\r\n }\r\n\r\n private buildRandomWithSeedKey = (): Partial<ISeedModel<T>> => {\r\n if (this.seedStore?.field && !this.seedStore?.key) {\r\n console.warn('RandomWithSeedKey missing seedKey.')\r\n }\r\n if (this.seedStore?.key && !this.seedStore?.field) {\r\n console.warn('RandomWithSeedKey missing seedField.')\r\n }\r\n if (!this.seedStore?.key && !this.seedStore?.field) {\r\n return {}\r\n }\r\n return this.seedStore\r\n }\r\n\r\n build = (): IRequestParamResult<T> => {\r\n const obj: IRequestParamResult<T> = { ...this.buildPage() }\r\n if (this.sortStore.length > 0) obj.sort = this.sortStore\r\n const filter = this.buildFilter()\r\n if (filter) obj.filter = filter\r\n if (this._noTotal) obj.noTotal = this._noTotal\r\n const seedInfo = this.buildRandomWithSeedKey()\r\n if (!!seedInfo.key && !!seedInfo.field) {\r\n obj.seedField = seedInfo.field.toString()\r\n obj.seedKey = seedInfo.key\r\n }\r\n return obj\r\n }\r\n}\r\n\r\nexport const createRequestBuilder = <T extends object>(option?: Partial<IRequestParamOption>) => {\r\n return new RequestParam<T>(option)\r\n}\r\n"],"names":["RequestParam","_createClass","option","_this","this","_classCallCheck","_defineProperty","_len","arguments","length","p","Array","_key","reduce","a","b","Object","assign","field2","mOption","mergeOptions","_option","ignoreEmpty","field1","operation","logicStr","_filter","logic","push","concat","_filterBase","toString","operator","action","crd","buildFilter","field","key","seedStore","skip","_skip","take","_take","direction","temp","sortStore","some","item","keys","sortBase","value","undefined","_noTotal","join","_this$seedStore","_this$seedStore2","_this$seedStore3","_this$seedStore4","_this$seedStore5","_this$seedStore6","console","warn","obj","_objectSpread","buildPage","sort","filter","noTotal","seedInfo","buildRandomWithSeedKey","seedField","seedKey","createRequestBuilder"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../src/http-service/graphql/types.ts"],"sourcesContent":["/** Options for initializing a GraphQL request instance. */\r\nexport interface IGraphqlRequestOptions {\r\n /** If true, the site property will be ignored and the site will be auto-detected. */\r\n autoDetectSite?: boolean\r\n /**\r\n * The site identifier, can be a string or a function returning a Promise<string>.\r\n * If autoDetectSite is true, this field is not used.\r\n */\r\n site?: string | (() => Promise<string>)\r\n /**\r\n * If true, the site will be ignored in the request headers.\r\n */\r\n ignoreSite?: boolean\r\n}\r\n\r\n/** Enum for application names using the system. */\r\nexport enum EAppName {\r\n ClientApp = 'ClientApp',\r\n ClientAdmin = 'ClientAdmin'\r\n}\r\n\r\n/**\r\n * Standard result type for GraphQL list queries.\r\n * @template T The type of items in the result.\r\n */\r\nexport type IGraphqlResult<T> = {\r\n /** The array of items returned by the query. */\r\n items?: T[]\r\n /** Indicates if there is a next page of results. */\r\n hasNextPage?: boolean\r\n /** Indicates if there is a previous page of results. */\r\n hasPreviousPage?: boolean\r\n /** The total number of items available. */\r\n totalItems?: number\r\n}\r\n\r\n/**\r\n * Type definition for a GraphQL executor function.\r\n * @param request The GraphQL query string.\r\n * @param variables The variables for the query.\r\n * @returns Promise resolving to any data.\r\n */\r\nexport type IGraphqlExecutor = (request: string, variables: object) => Promise<any>\r\n\r\n/**\r\n * Options for executing a GraphQL query or mutation.\r\n * @template TSite The type of the site property (default is string).\r\n */\r\nexport interface IGraphqlQueryOptions<TSite extends string = string> {\r\n /** The operation name of the GraphQL query. */\r\n readonly operationName?: string\r\n /** Variables for the query. */\r\n readonly variables?: object\r\n /** Custom executor function for the query. */\r\n readonly executor?: IGraphqlExecutor\r\n /** AbortSignal to cancel the request. */\r\n readonly signal?: AbortSignal\r\n /** Delay before executing the request, in milliseconds. */\r\n readonly delay?: number\r\n /** Whether to auto-detect the site for this query. */\r\n readonly autoDetectSite?: boolean\r\n /** The site value or name for this query. */\r\n readonly site?: TSite\r\n /** If true, the site will be ignored in the request headers. */\r\n readonly ignoreSite?: boolean\r\n}\r\n"],"names":["EAppName"],"mappings":"IAgBYA,GAAZ,SAAYA,GACVA,EAAA,UAAA,YACAA,EAAA,YAAA,aACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{objectSpread2 as e,asyncToGenerator as r,regenerator as n,createForOfIteratorHelper as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{colors as a}from"@mui/material";var u=["image/jpeg","image/png","image/svg+xml"],o=["application/pdf"],i=[].concat(u,o),c=function(e){return i.some((function(r){return r===e}))},l=function(e){return u.some((function(r){return r===e}))},s=function(e){return o.some((function(r){return r===e}))},f={old:{color:a.grey[500],label:"Current",count:0},new:{color:a.green[500],label:"New",count:0},deleted:{color:a.red[500],label:"Delete",count:0}},p=function(e){return e.reduce((function(e,r){var n=r.status||"old";return e[n]=(e[n]||0)+1,e}),{old:0,new:0,deleted:0})},m=function(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9\s]/g,"").replace(/\s+/g," ").trim().replace(/\s/g,"-").toLowerCase()+"-"+(new Date).getTime().toString(36)},g=function(r,n){return e({id:m(r.name),name:r.name,type:l(r.type)?"image":s(r.type)?"pdf":"unknown",thumbnail:s(r.type)?"/images/pdf-default.webp":URL.createObjectURL(r),file:r},n)},b=function(e,r){var n=p(e),t=p(r);return JSON.stringify(n)!==JSON.stringify(t)},d=function(){var a=r(n().m((function r(a,u){var o,i,c,l,s,f;return n().w((function(r){for(;;)switch(r.n){case 0:if(u){r.n=1;break}return r.a(2,a);case 1:o=[],i=t(a),r.p=2,i.s();case 3:if((c=i.n()).done){r.n=10;break}if("new"!==(l=c.value).status||!l.file){r.n=8;break}return r.p=4,r.n=5,u(l.file);case 5:(s=r.v)&&s.url&&o.push(e(e({},l),{},{url:s.url,thumbnail:s.thumbnail,status:"old"})),r.n=7;break;case 6:r.p=6,r.v;case 7:r.n=9;break;case 8:o.push(l);case 9:r.n=3;break;case 10:r.n=12;break;case 11:r.p=11,f=r.v,i.e(f);case 12:return r.p=12,i.f(),r.f(12);case 13:return r.a(2,o)}}),r,null,[[4,6],[2,11,12,13]])})));return function(e,r){return a.apply(this,arguments)}}();export{i as allowFileTypes,u as allowImageTypes,o as allowPdfTypes,b as checkEqualQuality,d as fetchUploadNewFiles,g as fileToAttachItem,p as getAttachQuality,l as isImageFile,s as isPdfFile,c as isValidFileType,f as mapItemConfigs,m as toEnglishSlug};
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/lab/attach-widget/helpers.ts"],"sourcesContent":["import { colors } from '@mui/material'\r\nimport { AttachUploadFunction, IAttachItem, IAttachItemConfigs, IAttachItemStatus } from './types'\r\n\r\nexport const allowImageTypes = ['image/jpeg', 'image/png', 'image/svg+xml']\r\n\r\nexport const allowPdfTypes = ['application/pdf']\r\n\r\nexport const allowFileTypes = [...allowImageTypes, ...allowPdfTypes]\r\n\r\nexport const isValidFileType = (value?: string) => allowFileTypes.some((e) => e === value)\r\n\r\nexport const isImageFile = (value?: string) => allowImageTypes.some((e) => e === value)\r\n\r\nexport const isPdfFile = (value?: string) => allowPdfTypes.some((e) => e === value)\r\n\r\nexport const mapItemConfigs: IAttachItemConfigs = {\r\n old: { color: colors.grey[500], label: 'Current', count: 0 },\r\n new: { color: colors.green[500], label: 'New', count: 0 },\r\n deleted: { color: colors.red[500], label: 'Delete', count: 0 }\r\n}\r\n\r\nexport const getAttachQuality = (items: IAttachItem[]) => {\r\n return items.reduce<Record<IAttachItemStatus, number>>(\r\n (acc, item) => {\r\n const status = item.status || 'old'\r\n acc[status] = (acc[status] || 0) + 1\r\n return acc\r\n },\r\n { old: 0, new: 0, deleted: 0 }\r\n )\r\n}\r\n\r\nexport const toEnglishSlug = (str: string): string => {\r\n const temp = str\r\n .normalize('NFD') // split Vietnamese accents\r\n .replace(/[\\u0300-\\u036f]/g, '') // remove accents\r\n .replace(/[^a-zA-Z0-9\\s]/g, '') // remove special characters\r\n .replace(/\\s+/g, ' ') // replace multiple spaces with a single space\r\n .trim() // remove leading/trailing spaces\r\n .replace(/\\s/g, '-') // replace spaces with hyphens\r\n .toLowerCase()\r\n return temp + '-' + new Date().getTime().toString(36) // append timestamp to ensure uniqueness\r\n}\r\n\r\nexport const fileToAttachItem = (file: File, options?: Partial<IAttachItem>): IAttachItem => ({\r\n id: toEnglishSlug(file.name),\r\n name: file.name,\r\n type: isImageFile(file.type) ? 'image' : isPdfFile(file.type) ? 'pdf' : 'unknown',\r\n thumbnail: isPdfFile(file.type) ? '/images/pdf-default.webp' : URL.createObjectURL(file),\r\n file,\r\n ...options\r\n})\r\n\r\nexport const checkEqualQuality = (items1: IAttachItem[], items2: IAttachItem[]): boolean => {\r\n const quality = getAttachQuality(items1)\r\n const qualityCache = getAttachQuality(items2)\r\n return JSON.stringify(quality) !== JSON.stringify(qualityCache)\r\n}\r\n\r\n// Upload new items and return updated items with url, skip items if upload fails or returns empty\r\nexport const fetchUploadNewFiles = async (items: IAttachItem[], fetchUpload?: AttachUploadFunction): Promise<IAttachItem[]> => {\r\n if (!fetchUpload) return items\r\n\r\n const updated: IAttachItem[] = []\r\n for (const item of items) {\r\n if (item.status === 'new' && item.file) {\r\n try {\r\n const result = await fetchUpload(item.file)\r\n if (result && result.url) {\r\n updated.push({ ...item, url: result.url, thumbnail: result.thumbnail, status: 'old' })\r\n }\r\n // If result is empty or no url, skip this item\r\n } catch {\r\n // If upload fails, skip this item\r\n }\r\n } else {\r\n updated.push(item)\r\n }\r\n }\r\n return updated\r\n}\r\n"],"names":["allowImageTypes","allowPdfTypes","allowFileTypes","concat","isValidFileType","value","some","e","isImageFile","isPdfFile","mapItemConfigs","old","color","colors","grey","label","count","new","green","deleted","red","getAttachQuality","items","reduce","acc","item","status","toEnglishSlug","str","normalize","replace","trim","toLowerCase","Date","getTime","toString","fileToAttachItem","file","options","_objectSpread","id","name","type","thumbnail","URL","createObjectURL","checkEqualQuality","items1","items2","quality","qualityCache","JSON","stringify","fetchUploadNewFiles","_ref","_asyncToGenerator","_regenerator","m","_callee","fetchUpload","updated","_iterator","_step","result","_t2","w","_context","n","a","_createForOfIteratorHelper","p","s","done","v","url","push","f","_x","_x2","apply","this","arguments"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{inherits as e,createClass as t,objectSpread2 as a,classCallCheck as r,callSuper as n,defineProperty as i,asyncToGenerator as o,regenerator as s,toConsumableArray as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as c,jsx as d}from"react/jsx-runtime";import h,{Component as u}from"react";import{Typography as m,Stack as p,Tooltip as g,IconButton as f,Divider as v,Grid as C,CircularProgress as y}from"@mui/material";import D from"@mui/icons-material/Save";import S from"@mui/icons-material/Close";import b from"@mui/icons-material/Replay";import k from"@mui/icons-material/Square";import I from"@mui/icons-material/Remove";import w from"@mui/icons-material/AttachFile";import{attachModalClasses as N,AttachModalStyled as j}from"./styled.js";import{getAttachQuality as F,mapItemConfigs as L,checkEqualQuality as x,allowFileTypes as H,fetchUploadNewFiles as R,isValidFileType as A,fileToAttachItem as z}from"./helpers.js";var O=function(){function O(e){var t;return r(this,O),t=n(this,O,[e]),i(t,"onSaveHandler",o(s().m((function e(){var a;return s().w((function(e){for(;;)switch(e.n){case 0:if(t.props.onChange){e.n=1;break}return e.a(2);case 1:if(t.setState({isLoading:!0}),a=l(t.attachItems),!t.props.uploadFile){e.n=3;break}return e.n=2,R(a,t.props.uploadFile);case 2:a=e.v;case 3:t.setState({isLoading:!1}),t.props.onChange(a,{isSave:!0}),t.props.onClose&&t.props.onClose();case 4:return e.a(2)}}),e)})))),i(t,"onFileChangeHandler",(function(e){var a=e.filter((function(e){return A(e.type)}));if(!(a.length<1)){var r=a.map((function(e){return z(e,{status:"new"})})),n=[].concat(l(r),l(t.attachItems));t.setState({attachs:n})}})),i(t,"handleTriggerDeleteItemClick",(function(e){var r=t.attachItems.reduce((function(t,r){var n=a({},r);if(n.id===e.id){if("new"===n.status)return t;n.status="deleted"===n.status?"old":"deleted"}return t.push(n),t}),[]);t.setState({attachs:r})})),i(t,"fileInputRef",h.createRef()),i(t,"handleIconClick",(function(){var e;null===(e=t.fileInputRef.current)||void 0===e||e.click()})),i(t,"handleFileChange",(function(e){var a=e.target.files;a&&a.length>0&&t.onFileChangeHandler(Array.from(a))})),i(t,"dragCounter",0),i(t,"handleDragEnter",(function(){t.dragCounter++,t.setState({isDragging:!0})})),i(t,"handleDragLeave",(function(){t.dragCounter--,0===t.dragCounter&&t.setState({isDragging:!1})})),i(t,"handleDragOver",(function(e){e.preventDefault()})),i(t,"handleDrop",(function(e){if(e.preventDefault(),e.stopPropagation(),t.state.isDragging){t.setState({isDragging:!1});var a=Array.from(e.dataTransfer.files);a.length>0&&t.onFileChangeHandler(a)}})),t.state={attachs:l(e.value),isDragging:!1,isLoading:!1},t}return e(O,u),t(O,[{key:"attachItems",get:function(){return this.state.attachs}},{key:"attachItemConfigs",get:function(){var e=F(this.attachItems);return Object.keys(L).map((function(t){var r=a({},L[t]);return r.count=e[t],r}))}},{key:"render",value:function(){var e=this,t=this.state.isDragging,a=x(this.attachItems,this.props.value),r=[N.root];return t&&!this.state.isLoading&&r.push(N.dragging),this.state.isLoading&&r.push(N.loading),c(j,{className:r.join(" "),onDragEnter:this.handleDragEnter,onDragLeave:this.handleDragLeave,onDragOver:this.handleDragOver,onDrop:this.handleDrop,children:[c("div",{className:N.header,children:[c("div",{children:[d(m,{variant:"h6",noWrap:!0,children:"Attach File"}),d(m,{variant:"body2",noWrap:!0,color:"text.secondary",children:"Data will only be updated after you click the Save button"})]}),c(p,{direction:"row",spacing:1,children:[d("input",{ref:this.fileInputRef,type:"file",hidden:!0,multiple:!0,onChange:this.handleFileChange,accept:H.join(",")}),d(g,{title:"Add files",arrow:!0,children:d(f,{color:"primary",onClick:this.handleIconClick,children:d(w,{})})}),d(g,{title:a?"Save":"Unsaved changes",arrow:!0,children:d("span",{children:d(f,{color:"primary",onClick:this.onSaveHandler,disabled:!a,children:d(D,{})})})}),d(g,{title:"Close",arrow:!0,children:d(f,{color:"secondary",onClick:this.props.onClose,children:d(S,{})})})]})]}),d(v,{}),c("div",{className:N.content,children:[this.attachItems.length<1&&d(p,{className:N.emptyState,children:d(m,{variant:"body2",color:"text.secondary",children:"Drag and drop files here or click to browse"})}),d(C,{container:!0,spacing:1.5,children:this.attachItems.map((function(t,a){var r=[N.item];return"deleted"===t.status?r.push(N.itemDelete):"new"===t.status&&r.push(N.itemNew),d(C,{item:!0,xs:6,sm:4,md:3,lg:2,children:c("div",{className:r.join(" "),children:[c("div",{className:N.itemHeader,children:[d(m,{variant:"body1",noWrap:!0,children:t.name}),d(g,{title:"deleted"===t.status?"Restore":"Delete",arrow:!0,children:d(f,{size:"small",color:"deleted"===t.status?"primary":"secondary",onClick:function(){return e.handleTriggerDeleteItemClick(t)},children:"deleted"===t.status?d(b,{fontSize:"small"}):d(I,{fontSize:"small"})})})]}),d("div",{className:N.itemContent,children:d("img",{src:t.thumbnail||t.url,alt:t.name})})]})},t.id+a.toString())}))})]}),d(v,{}),d("div",{className:N.footer,children:this.attachItemConfigs.map((function(e){var t=e.count||0;return c(p,{direction:"row",gap:.5,alignItems:"center",children:[d(k,{fontSize:"small",sx:{color:e.color}}),c(m,{variant:"body2",children:[e.label," (",t,")s"]})]},e.label)}))}),d("div",{className:N.dragPanel,children:d("div",{children:d(m,{variant:"body2",color:"primary",sx:{fontWeight:600},children:"Drop files here to upload"})})}),d("div",{className:N.overlay,children:d(y,{size:36})})]})}}])}();export{O as default};
2
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","sources":["../../../../src/lab/attach-widget/modal.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { CircularProgress, Divider, Grid, IconButton, Stack, Tooltip, Typography } from '@mui/material'\r\nimport SaveIcon from '@mui/icons-material/Save'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport ReplayIcon from '@mui/icons-material/Replay'\r\nimport SquareIcon from '@mui/icons-material/Square'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile'\r\nimport { attachModalClasses, AttachModalStyled } from './styled'\r\nimport { allowFileTypes, checkEqualQuality, fetchUploadNewFiles } from './helpers'\r\nimport { fileToAttachItem, getAttachQuality, isValidFileType, mapItemConfigs } from './helpers'\r\nimport { AttachChangeFunction, AttachUploadFunction, IAttachItem, IAttachItemConfig, IAttachItemStatus } from './types'\r\n\r\ninterface IAttachModalProps {\r\n value: IAttachItem[]\r\n onChange?: AttachChangeFunction\r\n uploadFile?: AttachUploadFunction\r\n onClose?: () => void\r\n}\r\n\r\ninterface IAttachModalState {\r\n attachs: IAttachItem[]\r\n isDragging: boolean\r\n isLoading: boolean\r\n}\r\n\r\nclass AttachModal extends Component<IAttachModalProps, IAttachModalState> {\r\n constructor(props: IAttachModalProps) {\r\n super(props)\r\n this.state = { attachs: [...props.value], isDragging: false, isLoading: false }\r\n }\r\n\r\n get attachItems() {\r\n return this.state.attachs\r\n }\r\n\r\n get attachItemConfigs(): IAttachItemConfig[] {\r\n const temp = getAttachQuality(this.attachItems)\r\n const list = Object.keys(mapItemConfigs) as IAttachItemStatus[]\r\n return list.map((key) => {\r\n const config = { ...mapItemConfigs[key] }\r\n config.count = temp[key]\r\n return config\r\n })\r\n }\r\n\r\n render() {\r\n const { isDragging } = this.state\r\n const isSave = checkEqualQuality(this.attachItems, this.props.value)\r\n const rootClasses = [attachModalClasses.root]\r\n if (isDragging && !this.state.isLoading) rootClasses.push(attachModalClasses.dragging)\r\n if (this.state.isLoading) rootClasses.push(attachModalClasses.loading)\r\n\r\n return (\r\n <AttachModalStyled\r\n className={rootClasses.join(' ')}\r\n onDragEnter={this.handleDragEnter}\r\n onDragLeave={this.handleDragLeave}\r\n onDragOver={this.handleDragOver}\r\n onDrop={this.handleDrop}\r\n >\r\n <div className={attachModalClasses.header}>\r\n <div>\r\n <Typography variant='h6' noWrap>\r\n Attach File\r\n </Typography>\r\n <Typography variant='body2' noWrap color='text.secondary'>\r\n Data will only be updated after you click the Save button\r\n </Typography>\r\n </div>\r\n <Stack direction='row' spacing={1}>\r\n <input ref={this.fileInputRef} type='file' hidden multiple onChange={this.handleFileChange} accept={allowFileTypes.join(',')} />\r\n <Tooltip title='Add files' arrow>\r\n <IconButton color='primary' onClick={this.handleIconClick}>\r\n <AttachFileIcon />\r\n </IconButton>\r\n </Tooltip>\r\n <Tooltip title={isSave ? 'Save' : 'Unsaved changes'} arrow>\r\n <span>\r\n <IconButton color='primary' onClick={this.onSaveHandler} disabled={!isSave}>\r\n <SaveIcon />\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n <Tooltip title='Close' arrow>\r\n <IconButton color='secondary' onClick={this.props.onClose}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </Stack>\r\n </div>\r\n <Divider />\r\n <div className={attachModalClasses.content}>\r\n {this.attachItems.length < 1 && (\r\n <Stack className={attachModalClasses.emptyState}>\r\n <Typography variant='body2' color='text.secondary'>\r\n Drag and drop files here or click to browse\r\n </Typography>\r\n </Stack>\r\n )}\r\n <Grid container spacing={1.5}>\r\n {this.attachItems.map((x, i) => {\r\n const itemClasses = [attachModalClasses.item]\r\n\r\n if (x.status === 'deleted') itemClasses.push(attachModalClasses.itemDelete)\r\n else if (x.status === 'new') itemClasses.push(attachModalClasses.itemNew)\r\n\r\n return (\r\n <Grid key={x.id + i.toString()} item xs={6} sm={4} md={3} lg={2}>\r\n <div className={itemClasses.join(' ')}>\r\n <div className={attachModalClasses.itemHeader}>\r\n <Typography variant='body1' noWrap>\r\n {x.name}\r\n </Typography>\r\n <Tooltip title={x.status === 'deleted' ? 'Restore' : 'Delete'} arrow>\r\n <IconButton\r\n size='small'\r\n color={x.status === 'deleted' ? 'primary' : 'secondary'}\r\n onClick={() => this.handleTriggerDeleteItemClick(x)}\r\n >\r\n {x.status === 'deleted' ? <ReplayIcon fontSize='small' /> : <RemoveIcon fontSize='small' />}\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <div className={attachModalClasses.itemContent}>\r\n <img src={x.thumbnail || x.url} alt={x.name} />\r\n </div>\r\n </div>\r\n </Grid>\r\n )\r\n })}\r\n </Grid>\r\n </div>\r\n <Divider />\r\n <div className={attachModalClasses.footer}>\r\n {this.attachItemConfigs.map((config) => {\r\n const count = config.count || 0\r\n return (\r\n <Stack key={config.label} direction='row' gap={0.5} alignItems='center'>\r\n <SquareIcon fontSize='small' sx={{ color: config.color }} />\r\n <Typography variant='body2'>\r\n {config.label} ({count})s\r\n </Typography>\r\n </Stack>\r\n )\r\n })}\r\n </div>\r\n <div className={attachModalClasses.dragPanel}>\r\n <div>\r\n <Typography variant='body2' color='primary' sx={{ fontWeight: 600 }}>\r\n Drop files here to upload\r\n </Typography>\r\n </div>\r\n </div>\r\n <div className={attachModalClasses.overlay}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </AttachModalStyled>\r\n )\r\n }\r\n\r\n onSaveHandler = async () => {\r\n if (!this.props.onChange) return\r\n\r\n this.setState({ isLoading: true })\r\n let updatedItems = [...this.attachItems]\r\n\r\n if (this.props.uploadFile) {\r\n updatedItems = await fetchUploadNewFiles(updatedItems, this.props.uploadFile)\r\n }\r\n\r\n this.setState({ isLoading: false })\r\n this.props.onChange(updatedItems, { isSave: true })\r\n if (this.props.onClose) this.props.onClose()\r\n }\r\n\r\n onFileChangeHandler = (files: File[]) => {\r\n const validFiles = files.filter((f) => isValidFileType(f.type))\r\n if (validFiles.length < 1) return\r\n const items = validFiles.map((x) => fileToAttachItem(x, { status: 'new' }))\r\n const newItems = [...items, ...this.attachItems]\r\n this.setState({ attachs: newItems }) // Update state directly to avoid memory leaks\r\n }\r\n\r\n handleTriggerDeleteItemClick = (item: IAttachItem) => {\r\n const updatedItems = this.attachItems.reduce<IAttachItem[]>((a, b) => {\r\n const obj = { ...b }\r\n if (obj.id === item.id) {\r\n if (obj.status === 'new') return a // Do not delete new item, they are not saved yet\r\n obj.status = obj.status === 'deleted' ? 'old' : 'deleted'\r\n }\r\n a.push(obj)\r\n return a\r\n }, [])\r\n this.setState({ attachs: updatedItems }) // Update state directly to avoid memory leaks\r\n }\r\n\r\n fileInputRef = React.createRef<HTMLInputElement>()\r\n handleIconClick = () => {\r\n this.fileInputRef.current?.click()\r\n }\r\n\r\n handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const files = e.target.files\r\n if (files && files.length > 0) {\r\n this.onFileChangeHandler(Array.from(files))\r\n }\r\n }\r\n\r\n dragCounter = 0\r\n handleDragEnter = () => {\r\n this.dragCounter++\r\n this.setState({ isDragging: true })\r\n }\r\n\r\n handleDragLeave = () => {\r\n this.dragCounter--\r\n if (this.dragCounter === 0) {\r\n this.setState({ isDragging: false })\r\n }\r\n }\r\n\r\n handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault()\r\n }\r\n\r\n handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (!this.state.isDragging) return // If not dragging, do nothing\r\n this.setState({ isDragging: false })\r\n const files = Array.from(e.dataTransfer.files)\r\n if (files.length > 0) {\r\n this.onFileChangeHandler(files)\r\n }\r\n }\r\n}\r\nexport default AttachModal\r\n"],"names":["AttachModal","props","_this","_classCallCheck","_callSuper","_defineProperty","_asyncToGenerator","_regenerator","m","_callee","updatedItems","w","_context","n","onChange","a","setState","isLoading","_toConsumableArray","attachItems","uploadFile","fetchUploadNewFiles","v","isSave","onClose","files","validFiles","filter","f","isValidFileType","type","length","items","map","x","fileToAttachItem","status","newItems","concat","attachs","item","reduce","b","obj","_objectSpread","id","push","React","createRef","_this$fileInputRef$cu","fileInputRef","current","click","e","target","onFileChangeHandler","Array","from","dragCounter","isDragging","preventDefault","stopPropagation","state","dataTransfer","value","_inherits","Component","_createClass","key","get","this","temp","getAttachQuality","Object","keys","mapItemConfigs","config","count","_this2","checkEqualQuality","rootClasses","attachModalClasses","root","dragging","loading","_jsxs","AttachModalStyled","className","join","onDragEnter","handleDragEnter","onDragLeave","handleDragLeave","onDragOver","handleDragOver","onDrop","handleDrop","children","header","_jsx","Typography","variant","noWrap","color","Stack","direction","spacing","ref","hidden","multiple","handleFileChange","accept","allowFileTypes","Tooltip","title","arrow","IconButton","onClick","handleIconClick","AttachFileIcon","onSaveHandler","disabled","SaveIcon","CloseIcon","Divider","content","emptyState","Grid","container","i","itemClasses","itemDelete","itemNew","xs","sm","md","lg","itemHeader","name","size","handleTriggerDeleteItemClick","ReplayIcon","fontSize","RemoveIcon","itemContent","src","thumbnail","url","alt","toString","footer","attachItemConfigs","gap","alignItems","SquareIcon","sx","label","dragPanel","fontWeight","overlay","CircularProgress"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,alpha as i,Box as o}from"@mui/material";import{mapItemConfigs as a}from"./helpers.js";var r={root:"AttachWidget-root",content:"AttachWidget-content",dragging:"AttachWidget-dragging",dragPanel:"AttachWidget-dragPanel",inputButton:"AttachWidget-inputButton",moreButton:"AttachWidget-moreButton",list:"AttachWidget-list",listItem:"AttachWidget-listItem",overlay:"AttachWidget-overlay",loading:"AttachWidget-loading"},n=function(t,e){return"".concat((null==e?void 0:e.prefix)||"",".").concat(r[t]).concat((null==e?void 0:e.suffix)||"")},d=e("div")((function(e){var o,a=e.theme;return t(t(t(t(t(t(t(t(t(t(o={},n("root",{prefix:"&"}),{position:"relative",width:"100%",height:"100%",backgroundColor:a.palette.common.white,borderRadius:a.shape.borderRadius}),n("content"),{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"flex-start",padding:a.spacing(1)}),n("list"),{height:"100%",flex:1,display:"flex",alignItems:"center",gap:a.spacing(.75),overflow:"hidden",minWidth:0,position:"relative","&::after":{content:'""',height:"100%",width:"30px",position:"absolute",right:0,top:0,zIndex:1,background:"linear-gradient(to right, transparent, #ffffffb0, #ffffff)"}}),n("listItem"),{width:"var(--attach-widget-list-item-width, 42px)",padding:0,aspectRatio:"5 / 7",borderRadius:a.shape.borderRadius,border:"1px solid "+a.palette.divider,boxShadow:"rgba(99, 99, 99, 0.2) 0px 2px 8px 0px",img:{width:"100%",height:"100%",objectFit:"cover"}}),n("inputButton"),{width:"var(--attach-widget-list-item-width, 42px)",aspectRatio:"5 / 7",padding:0,cursor:"pointer",color:a.palette.primary.main,borderRadius:a.shape.borderRadius,border:"1px dashed "+a.palette.primary.main,marginRight:a.spacing(1),"&:hover":{color:a.palette.primary.dark}}),n("moreButton"),{opacity:.5,transition:"opacity 0.3s ease-in-out"}),n("dragPanel"),{position:"absolute",top:0,left:0,right:0,bottom:0,padding:a.spacing(.75),backgroundColor:a.palette.common.white,pointerEvents:"none",borderRadius:a.shape.borderRadius,display:"flex",opacity:0,zIndex:1,transition:"opacity 0.3s ease-in-out","& > div":{flex:1,display:"flex",alignItems:"center",justifyContent:"center",border:"2px dashed "+a.palette.primary.main,borderRadius:a.shape.borderRadius}}),n("overlay"),{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:i(a.palette.common.white,.5),zIndex:1,opacity:0,transition:"opacity 0.3s ease-in-out",visibility:"hidden",display:"flex",alignItems:"center",justifyContent:"center"}),n("loading",{prefix:"&"}),t({},n("overlay"),{opacity:1,visibility:"visible"})),n("dragging",{prefix:"&"}),t(t({},n("dragPanel"),{opacity:1}),n("content"),{pointerEvents:"none"})),t(o,n("root",{prefix:"&",suffix:":hover"}),t({},n("moreButton"),{opacity:1}))})),l={root:"AttachModal-root",header:"AttachModal-header",footer:"AttachModal-footer",loading:"AttachModal-loading",overlay:"AttachModal-overlay",dragging:"AttachModal-dragging",dragPanel:"AttachModal-dragPanel",content:"AttachModal-content",emptyState:"AttachModal-emptyState",closeButton:"AttachModal-closeButton",item:"AttachModal-item",itemHeader:"AttachModal-itemHeader",itemContent:"AttachModal-itemContent",itemNew:"AttachModal-itemNew",itemDelete:"AttachModal-itemDelete"},p=function(t,e){return"".concat((null==e?void 0:e.prefix)||"",".").concat(l[t]).concat((null==e?void 0:e.suffix)||"")},s=e(o)((function(e){var o,r,n,d,l=e.theme;return t(t(t(t(t(t(t(t(t(t(d={},p("root",{prefix:"&"}),{backgroundColor:l.palette.background.paper,borderRadius:l.shape.borderRadius,boxShadow:l.shadows[5],width:"calc(100vw - 48px)",maxHeight:"calc(100vh - 48px)",maxWidth:l.breakpoints.values.md,position:"relative",display:"flex",flexDirection:"column"}),p("header"),{display:"flex",justifyContent:"space-between",alignItems:"center",padding:l.spacing(1,2)}),p("footer"),{padding:l.spacing(1,2),display:"flex",alignItems:"center",gap:l.spacing(3)}),p("content"),{minHeight:"200px",padding:l.spacing(1),overflowY:"auto",height:"100%"}),p("emptyState"),{display:"flex",alignItems:"center",justifyContent:"center",height:"168px"}),p("itemContent"),{width:"100%",height:"100%",padding:0,borderRadius:l.shape.borderRadius,cursor:"pointer",backgroundColor:l.palette.background.paper,img:{width:"100%",height:"100%",objectFit:"cover"}}),p("itemHeader"),{marginTop:l.spacing(-.5),padding:l.spacing(.5,0),display:"flex",alignItems:"center",justifyContent:"space-between",".MuiTypography-root":{color:l.palette.common.white},".MuiIconButton-root":{backgroundColor:i(l.palette.common.white,.5),".MuiSvgIcon-root":{fontSize:"1rem"},"&:hover":{backgroundColor:l.palette.common.white}}}),p("item"),t(t({width:"var(--attach-modal-list-item-width, 100%)",aspectRatio:"5 / 7",display:"inline-block",position:"relative",backgroundColor:null===(o=a.old)||void 0===o?void 0:o.color,borderRadius:l.shape.borderRadius,padding:l.spacing(.5),boxShadow:"rgba(99, 99, 99, 0.2) 0px 2px 8px 0px"},p("itemNew",{prefix:"&"}),{backgroundColor:null===(r=a.new)||void 0===r?void 0:r.color}),p("itemDelete",{prefix:"&"}),{backgroundColor:null===(n=a.deleted)||void 0===n?void 0:n.color})),p("dragPanel"),{position:"absolute",borderRadius:l.shape.borderRadius,cursor:"pointer","& img":{width:"100%",height:"auto",borderRadius:4}}),p("dragPanel"),{position:"absolute",top:0,left:0,right:0,bottom:0,padding:l.spacing(.75),backgroundColor:l.palette.common.white,pointerEvents:"none",borderRadius:l.shape.borderRadius,display:"flex",opacity:0,zIndex:1,transition:"opacity 0.3s ease-in-out","& > div":{flex:1,display:"flex",alignItems:"center",justifyContent:"center",border:"2px dashed "+l.palette.primary.main,borderRadius:l.shape.borderRadius}}),t(t(t(d,p("dragging",{prefix:"&"}),t(t({},p("dragPanel"),{opacity:1}),p("content"),{pointerEvents:"none"})),p("overlay"),{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:i(l.palette.common.white,.5),zIndex:1,opacity:0,transition:"opacity 0.3s ease-in-out",visibility:"hidden",display:"flex",alignItems:"center",justifyContent:"center"}),p("loading",{prefix:"&"}),t({},p("overlay"),{opacity:1,visibility:"visible"}))}));export{s as AttachModalStyled,d as AttachWidgetStyled,l as attachModalClasses,r as attachWidgetClasses};
2
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sources":["../../../../src/lab/attach-widget/styled.tsx"],"sourcesContent":["import { alpha, Box, styled } from '@mui/material'\r\nimport { mapItemConfigs } from './helpers'\r\n\r\n//#region Attach Widget\r\nexport const attachWidgetClasses = {\r\n root: 'AttachWidget-root',\r\n content: 'AttachWidget-content',\r\n dragging: 'AttachWidget-dragging',\r\n dragPanel: 'AttachWidget-dragPanel',\r\n inputButton: 'AttachWidget-inputButton',\r\n moreButton: 'AttachWidget-moreButton',\r\n list: 'AttachWidget-list',\r\n listItem: 'AttachWidget-listItem',\r\n overlay: 'AttachWidget-overlay',\r\n loading: 'AttachWidget-loading'\r\n}\r\n\r\nconst getAttachWidgetClasses = (key: keyof typeof attachWidgetClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${attachWidgetClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const AttachWidgetStyled = styled('div')(({ theme }) => ({\r\n [getAttachWidgetClasses('root', { prefix: '&' })]: {\r\n position: 'relative',\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: theme.palette.common.white,\r\n borderRadius: theme.shape.borderRadius\r\n },\r\n [getAttachWidgetClasses('content')]: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n padding: theme.spacing(1)\r\n },\r\n [getAttachWidgetClasses('list')]: {\r\n height: '100%',\r\n flex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(0.75),\r\n overflow: 'hidden',\r\n minWidth: 0,\r\n position: 'relative',\r\n '&::after': {\r\n content: '\"\"',\r\n height: '100%',\r\n width: '30px',\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n zIndex: 1,\r\n background: 'linear-gradient(to right, transparent, #ffffffb0, #ffffff)'\r\n }\r\n },\r\n [getAttachWidgetClasses('listItem')]: {\r\n width: 'var(--attach-widget-list-item-width, 42px)',\r\n padding: 0,\r\n aspectRatio: '5 / 7',\r\n borderRadius: theme.shape.borderRadius,\r\n border: '1px solid ' + theme.palette.divider,\r\n boxShadow: 'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px',\r\n img: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover'\r\n }\r\n },\r\n [getAttachWidgetClasses('inputButton')]: {\r\n width: 'var(--attach-widget-list-item-width, 42px)',\r\n aspectRatio: '5 / 7',\r\n padding: 0,\r\n cursor: 'pointer',\r\n color: theme.palette.primary.main,\r\n borderRadius: theme.shape.borderRadius,\r\n border: '1px dashed ' + theme.palette.primary.main,\r\n marginRight: theme.spacing(1),\r\n '&:hover': {\r\n color: theme.palette.primary.dark\r\n }\r\n },\r\n [getAttachWidgetClasses('moreButton')]: {\r\n opacity: 0.5,\r\n transition: 'opacity 0.3s ease-in-out'\r\n },\r\n [getAttachWidgetClasses('dragPanel')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n padding: theme.spacing(0.75),\r\n backgroundColor: theme.palette.common.white,\r\n pointerEvents: 'none',\r\n borderRadius: theme.shape.borderRadius,\r\n display: 'flex',\r\n opacity: 0,\r\n zIndex: 1,\r\n transition: 'opacity 0.3s ease-in-out',\r\n '& > div': {\r\n flex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n border: '2px dashed ' + theme.palette.primary.main,\r\n borderRadius: theme.shape.borderRadius\r\n }\r\n },\r\n [getAttachWidgetClasses('overlay')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: alpha(theme.palette.common.white, 0.5),\r\n zIndex: 1,\r\n opacity: 0,\r\n transition: 'opacity 0.3s ease-in-out',\r\n visibility: 'hidden',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [getAttachWidgetClasses('loading', { prefix: '&' })]: {\r\n [getAttachWidgetClasses('overlay')]: {\r\n opacity: 1,\r\n visibility: 'visible'\r\n }\r\n },\r\n [getAttachWidgetClasses('dragging', { prefix: '&' })]: {\r\n [getAttachWidgetClasses('dragPanel')]: {\r\n opacity: 1\r\n },\r\n [getAttachWidgetClasses('content')]: {\r\n pointerEvents: 'none'\r\n }\r\n },\r\n [getAttachWidgetClasses('root', { prefix: '&', suffix: ':hover' })]: {\r\n [getAttachWidgetClasses('moreButton')]: {\r\n opacity: 1\r\n }\r\n }\r\n}))\r\n//#endregion\r\n\r\n//#region Attach Modal\r\nexport const attachModalClasses = {\r\n root: 'AttachModal-root',\r\n header: 'AttachModal-header',\r\n footer: 'AttachModal-footer',\r\n loading: 'AttachModal-loading',\r\n overlay: 'AttachModal-overlay',\r\n dragging: 'AttachModal-dragging',\r\n dragPanel: 'AttachModal-dragPanel',\r\n content: 'AttachModal-content',\r\n emptyState: 'AttachModal-emptyState',\r\n closeButton: 'AttachModal-closeButton',\r\n item: 'AttachModal-item',\r\n itemHeader: 'AttachModal-itemHeader',\r\n itemContent: 'AttachModal-itemContent',\r\n itemNew: 'AttachModal-itemNew',\r\n itemDelete: 'AttachModal-itemDelete'\r\n}\r\n\r\nconst getAttachModalClasses = (key: keyof typeof attachModalClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${attachModalClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const AttachModalStyled = styled(Box)(({ theme }) => ({\r\n [getAttachModalClasses('root', { prefix: '&' })]: {\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: theme.shape.borderRadius,\r\n boxShadow: theme.shadows[5],\r\n width: 'calc(100vw - 48px)',\r\n maxHeight: 'calc(100vh - 48px)',\r\n maxWidth: theme.breakpoints.values.md,\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n [getAttachModalClasses('header')]: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: theme.spacing(1, 2)\r\n },\r\n [getAttachModalClasses('footer')]: {\r\n padding: theme.spacing(1, 2),\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(3)\r\n },\r\n [getAttachModalClasses('content')]: {\r\n minHeight: '200px',\r\n padding: theme.spacing(1),\r\n overflowY: 'auto',\r\n height: '100%'\r\n },\r\n [getAttachModalClasses('emptyState')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '168px'\r\n },\r\n [getAttachModalClasses('itemContent')]: {\r\n width: '100%',\r\n height: '100%',\r\n padding: 0,\r\n borderRadius: theme.shape.borderRadius,\r\n cursor: 'pointer',\r\n backgroundColor: theme.palette.background.paper,\r\n img: {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover'\r\n }\r\n },\r\n [getAttachModalClasses('itemHeader')]: {\r\n marginTop: theme.spacing(-0.5),\r\n padding: theme.spacing(0.5, 0),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n '.MuiTypography-root': {\r\n color: theme.palette.common.white\r\n },\r\n '.MuiIconButton-root': {\r\n backgroundColor: alpha(theme.palette.common.white, 0.5),\r\n '.MuiSvgIcon-root': {\r\n fontSize: '1rem'\r\n },\r\n '&:hover': {\r\n backgroundColor: theme.palette.common.white\r\n }\r\n }\r\n },\r\n [getAttachModalClasses('item')]: {\r\n width: 'var(--attach-modal-list-item-width, 100%)',\r\n aspectRatio: '5 / 7',\r\n display: 'inline-block',\r\n position: 'relative',\r\n backgroundColor: mapItemConfigs.old?.color,\r\n borderRadius: theme.shape.borderRadius,\r\n padding: theme.spacing(0.5),\r\n boxShadow: 'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px',\r\n [getAttachModalClasses('itemNew', { prefix: '&' })]: {\r\n backgroundColor: mapItemConfigs.new?.color\r\n },\r\n [getAttachModalClasses('itemDelete', { prefix: '&' })]: {\r\n backgroundColor: mapItemConfigs.deleted?.color\r\n }\r\n },\r\n [getAttachModalClasses('dragPanel')]: {\r\n position: 'absolute',\r\n borderRadius: theme.shape.borderRadius,\r\n cursor: 'pointer',\r\n '& img': {\r\n width: '100%',\r\n height: 'auto',\r\n borderRadius: 4\r\n }\r\n },\r\n [getAttachModalClasses('dragPanel')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n padding: theme.spacing(0.75),\r\n backgroundColor: theme.palette.common.white,\r\n pointerEvents: 'none',\r\n borderRadius: theme.shape.borderRadius,\r\n display: 'flex',\r\n opacity: 0,\r\n zIndex: 1,\r\n transition: 'opacity 0.3s ease-in-out',\r\n '& > div': {\r\n flex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n border: '2px dashed ' + theme.palette.primary.main,\r\n borderRadius: theme.shape.borderRadius\r\n }\r\n },\r\n [getAttachModalClasses('dragging', { prefix: '&' })]: {\r\n [getAttachModalClasses('dragPanel')]: {\r\n opacity: 1\r\n },\r\n [getAttachModalClasses('content')]: {\r\n pointerEvents: 'none'\r\n }\r\n },\r\n [getAttachModalClasses('overlay')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: alpha(theme.palette.common.white, 0.5),\r\n zIndex: 1,\r\n opacity: 0,\r\n transition: 'opacity 0.3s ease-in-out',\r\n visibility: 'hidden',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [getAttachModalClasses('loading', { prefix: '&' })]: {\r\n [getAttachModalClasses('overlay')]: {\r\n opacity: 1,\r\n visibility: 'visible'\r\n }\r\n }\r\n}))\r\n//#endregion\r\n"],"names":["attachWidgetClasses","root","content","dragging","dragPanel","inputButton","moreButton","list","listItem","overlay","loading","getAttachWidgetClasses","key","options","concat","prefix","suffix","AttachWidgetStyled","styled","_ref","_ref2","theme","_defineProperty","position","width","height","backgroundColor","palette","common","white","borderRadius","shape","display","alignItems","justifyContent","padding","spacing","flex","gap","overflow","minWidth","right","top","zIndex","background","aspectRatio","border","divider","boxShadow","img","objectFit","cursor","color","primary","main","marginRight","dark","opacity","transition","left","bottom","pointerEvents","alpha","visibility","attachModalClasses","header","footer","emptyState","closeButton","item","itemHeader","itemContent","itemNew","itemDelete","getAttachModalClasses","AttachModalStyled","Box","_ref3","_mapItemConfigs$old","_mapItemConfigs$new","_mapItemConfigs$delet","_ref4","paper","shadows","maxHeight","maxWidth","breakpoints","values","md","flexDirection","minHeight","overflowY","marginTop","fontSize","mapItemConfigs","old","deleted"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{inherits as e,createClass as r,classCallCheck as n,callSuper as a,defineProperty as t,asyncToGenerator as i,regenerator as o,toConsumableArray as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{Component as u,createRef as d}from"react";import{IconButton as h,Typography as p,CircularProgress as g,Tooltip as f}from"@mui/material";import{GlobalModal as m,mapGlobalModalContext as v}from"../../api-context/global-modal.js";import C from"@mui/icons-material/AttachFile";import D from"@mui/icons-material/OpenInFull";import{attachWidgetClasses as y,AttachWidgetStyled as k}from"./styled.js";import{allowFileTypes as b,fileToAttachItem as I,fetchUploadNewFiles as F,isValidFileType as N}from"./helpers.js";import j from"./modal.js";var x=function(){function x(e){var r;return n(this,x),r=a(this,x,[e]),t(r,"onChangeHandler",function(){var e=i(o().m((function e(n){var a,t,i;return o().w((function(e){for(;;)switch(e.n){case 0:if(a=n.filter((function(e){return N(e.type)})),r.props.onChange&&!(a.length<1)){e.n=1;break}return e.a(2);case 1:if(r.setState({isLoading:!0}),t=a.map((function(e){return I(e,{status:"new"})})),i=[].concat(l(t),l(r.attachItems)),!r.props.uploadFile){e.n=3;break}return e.n=2,F(i,r.props.uploadFile);case 2:i=e.v;case 3:r.setState({isLoading:!1}),r.props.onChange(i,{isSave:!0});case 4:return e.a(2)}}),e)})));return function(r){return e.apply(this,arguments)}}()),t(r,"fileInputRef",d()),t(r,"handleIconClick",(function(){var e;null===(e=r.fileInputRef.current)||void 0===e||e.click()})),t(r,"handleFileChange",(function(e){var n=e.target.files;n&&n.length>0&&r.onChangeHandler(Array.from(n))})),t(r,"dragCounter",0),t(r,"handleDragEnter",(function(){r.dragCounter++,r.setState({isDragging:!0})})),t(r,"handleDragLeave",(function(){r.dragCounter--,0===r.dragCounter&&r.setState({isDragging:!1})})),t(r,"handleDragOver",(function(e){e.preventDefault()})),t(r,"handleDrop",(function(e){if(e.preventDefault(),e.stopPropagation(),r.state.isDragging){r.setState({isDragging:!1});var n=Array.from(e.dataTransfer.files);r.onChangeHandler(n)}})),r.state={isDragging:!1,isLoading:!1},r}return e(x,u),r(x,[{key:"attachItems",get:function(){return this.props.value}},{key:"render",value:function(){var e=this.state,r=e.isDragging,n=e.isLoading,a=[y.root];r&&!n&&a.push(y.dragging),n&&a.push(y.loading);var t=this.attachItems.slice(0,(this.props.maxDisplayFiles||5)+1);return s(m,{children:c(k,{className:a.join(" "),onDragEnter:this.handleDragEnter,onDragLeave:this.handleDragLeave,onDragOver:this.handleDragOver,onDrop:this.handleDrop,children:[c("div",{className:y.content,children:[s("input",{ref:this.fileInputRef,type:"file",hidden:!0,multiple:!0,onChange:this.handleFileChange,accept:b.join(",")}),s(h,{color:"primary",className:y.inputButton,onClick:this.handleIconClick,children:s(C,{})}),c("div",{className:y.list,children:[t.length<1&&s(p,{variant:"body2",color:"text.secondary",sx:{paddingRight:3},children:"No files, drag and drop here"}),t.map((function(e,r){return s(h,{component:"a",href:e.url,target:"_blank",className:y.listItem,children:s("img",{src:e.thumbnail||e.url,alt:e.name})},r)}))]}),this.renderMoreButton()]}),s("div",{className:y.dragPanel,children:s("div",{children:s(p,{variant:"body2",color:"primary",sx:{fontWeight:600},children:"Drop files here to upload"})})}),s("div",{className:y.overlay,children:s(g,{size:24})})]})})}},{key:"renderMoreButton",value:function(){var e=this;return v((function(r){var n=e.props,a=n.value,t=n.onChange;return s(f,{title:"More details",placement:"top",arrow:!0,children:s(h,{className:y.moreButton,onClick:function(){r.show({backdropActivated:!0,renderContent:function(){return s(j,{value:a,onChange:t,uploadFile:e.props.uploadFile,onClose:r.close})}})},children:s(D,{})})})}))}}])}();export{x as AttachWidget,x as default};
2
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sources":["../../../../src/lab/attach-widget/widget.tsx"],"sourcesContent":["import { Component, createRef } from 'react'\r\nimport { CircularProgress, IconButton, Tooltip, Typography } from '@mui/material'\r\nimport type { ChangeEvent, DragEvent } from 'react'\r\nimport { GlobalModal, mapGlobalModalContext } from '../../api-context/global-modal'\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile'\r\nimport OpenInFullIcon from '@mui/icons-material/OpenInFull'\r\nimport { attachWidgetClasses, AttachWidgetStyled } from './styled'\r\nimport { allowFileTypes, fetchUploadNewFiles, fileToAttachItem, isValidFileType } from './helpers'\r\nimport type { AttachChangeFunction, AttachUploadFunction, IAttachItem } from './types'\r\nimport AttachModal from './modal'\r\n\r\nexport interface IAttachWidgetProps {\r\n value: IAttachItem[]\r\n onChange?: AttachChangeFunction\r\n uploadFile?: AttachUploadFunction\r\n maxDisplayFiles?: number\r\n}\r\n\r\nexport interface IAttachWidgetState {\r\n isDragging: boolean\r\n isLoading: boolean\r\n}\r\n\r\nexport class AttachWidget extends Component<IAttachWidgetProps, IAttachWidgetState> {\r\n constructor(props: IAttachWidgetProps) {\r\n super(props)\r\n this.state = { isDragging: false, isLoading: false }\r\n }\r\n\r\n get attachItems() {\r\n return this.props.value\r\n }\r\n\r\n render() {\r\n const { isDragging, isLoading } = this.state\r\n const rootClasses = [attachWidgetClasses.root]\r\n if (isDragging && !isLoading) rootClasses.push(attachWidgetClasses.dragging)\r\n if (isLoading) rootClasses.push(attachWidgetClasses.loading)\r\n const list = this.attachItems.slice(0, (this.props.maxDisplayFiles || 5) + 1)\r\n return (\r\n <GlobalModal>\r\n <AttachWidgetStyled\r\n className={rootClasses.join(' ')}\r\n onDragEnter={this.handleDragEnter}\r\n onDragLeave={this.handleDragLeave}\r\n onDragOver={this.handleDragOver}\r\n onDrop={this.handleDrop}\r\n >\r\n <div className={attachWidgetClasses.content}>\r\n <input ref={this.fileInputRef} type='file' hidden multiple onChange={this.handleFileChange} accept={allowFileTypes.join(',')} />\r\n <IconButton color='primary' className={attachWidgetClasses.inputButton} onClick={this.handleIconClick}>\r\n <AttachFileIcon />\r\n </IconButton>\r\n <div className={attachWidgetClasses.list}>\r\n {list.length < 1 && (\r\n <Typography variant='body2' color='text.secondary' sx={{ paddingRight: 3 }}>\r\n No files, drag and drop here\r\n </Typography>\r\n )}\r\n {list.map((item, index) => (\r\n <IconButton key={index} component='a' href={item.url} target='_blank' className={attachWidgetClasses.listItem}>\r\n <img src={item.thumbnail || item.url} alt={item.name} />\r\n </IconButton>\r\n ))}\r\n </div>\r\n {this.renderMoreButton()}\r\n </div>\r\n <div className={attachWidgetClasses.dragPanel}>\r\n <div>\r\n <Typography variant='body2' color='primary' sx={{ fontWeight: 600 }}>\r\n Drop files here to upload\r\n </Typography>\r\n </div>\r\n </div>\r\n <div className={attachWidgetClasses.overlay}>\r\n <CircularProgress size={24} />\r\n </div>\r\n </AttachWidgetStyled>\r\n </GlobalModal>\r\n )\r\n }\r\n\r\n renderMoreButton() {\r\n return mapGlobalModalContext((context) => {\r\n const { value, onChange } = this.props\r\n const handleClick = () => {\r\n context.show({\r\n backdropActivated: true,\r\n renderContent: () => <AttachModal value={value} onChange={onChange} uploadFile={this.props.uploadFile} onClose={context.close} />\r\n })\r\n }\r\n return (\r\n <Tooltip title='More details' placement='top' arrow>\r\n <IconButton className={attachWidgetClasses.moreButton} onClick={handleClick}>\r\n <OpenInFullIcon />\r\n </IconButton>\r\n </Tooltip>\r\n )\r\n })\r\n }\r\n\r\n onChangeHandler = async (files: File[]) => {\r\n const validFiles = files.filter((f) => isValidFileType(f.type))\r\n if (!this.props.onChange || validFiles.length < 1) return\r\n this.setState({ isLoading: true })\r\n const items = validFiles.map((x) => fileToAttachItem(x, { status: 'new' }))\r\n let updatedItems = [...items, ...this.attachItems]\r\n\r\n if (this.props.uploadFile) {\r\n updatedItems = await fetchUploadNewFiles(updatedItems, this.props.uploadFile)\r\n }\r\n\r\n this.setState({ isLoading: false })\r\n this.props.onChange(updatedItems, { isSave: true })\r\n }\r\n\r\n fileInputRef = createRef<HTMLInputElement>()\r\n handleIconClick = () => {\r\n this.fileInputRef.current?.click()\r\n }\r\n\r\n handleFileChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n const files = e.target.files\r\n if (files && files.length > 0) {\r\n this.onChangeHandler(Array.from(files))\r\n }\r\n }\r\n\r\n dragCounter = 0\r\n handleDragEnter = () => {\r\n this.dragCounter++\r\n this.setState({ isDragging: true })\r\n }\r\n\r\n handleDragLeave = () => {\r\n this.dragCounter--\r\n if (this.dragCounter === 0) {\r\n this.setState({ isDragging: false })\r\n }\r\n }\r\n\r\n handleDragOver = (e: DragEvent) => {\r\n e.preventDefault()\r\n }\r\n\r\n handleDrop = (e: DragEvent) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (!this.state.isDragging) return // If not dragging, do nothing\r\n this.setState({ isDragging: false })\r\n const files = Array.from(e.dataTransfer.files)\r\n this.onChangeHandler(files)\r\n }\r\n}\r\n\r\nexport default AttachWidget\r\n"],"names":["AttachWidget","props","_this","_classCallCheck","_callSuper","_defineProperty","_ref","_asyncToGenerator","_regenerator","m","_callee","files","validFiles","items","updatedItems","w","_context","n","filter","f","isValidFileType","type","onChange","length","a","setState","isLoading","map","x","fileToAttachItem","status","concat","_toConsumableArray","attachItems","uploadFile","fetchUploadNewFiles","v","isSave","_x","apply","this","arguments","createRef","_this$fileInputRef$cu","fileInputRef","current","click","e","target","onChangeHandler","Array","from","dragCounter","isDragging","preventDefault","stopPropagation","state","dataTransfer","_inherits","Component","_createClass","key","get","value","_this$state","rootClasses","attachWidgetClasses","root","push","dragging","loading","list","slice","maxDisplayFiles","_jsx","GlobalModal","children","_jsxs","AttachWidgetStyled","className","join","onDragEnter","handleDragEnter","onDragLeave","handleDragLeave","onDragOver","handleDragOver","onDrop","handleDrop","content","ref","hidden","multiple","handleFileChange","accept","allowFileTypes","IconButton","color","inputButton","onClick","handleIconClick","AttachFileIcon","Typography","variant","sx","paddingRight","item","index","component","href","url","listItem","src","thumbnail","alt","name","renderMoreButton","dragPanel","fontWeight","overlay","CircularProgress","size","_this2","mapGlobalModalContext","context","_this2$props","Tooltip","title","placement","arrow","moreButton","show","backdropActivated","renderContent","AttachModal","onClose","close","OpenInFullIcon"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configs.js","sources":["../../../../src/lab/input.social-links/configs.ts"],"sourcesContent":["export const structureVersion: string = '1.0.0'\r\n"],"names":["structureVersion"],"mappings":"AAAO,IAAMA,EAA2B"}
@@ -0,0 +1,2 @@
1
+ import{defineProperty as e,inherits as n,createClass as r,classCallCheck as t,callSuper as i,toConsumableArray as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,jsx as a}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Grid as u,textFieldClasses as p,colors as m,Box as d,FormControl as h,InputLabel as f,Select as k,MenuItem as g,Typography as v,TextField as y,InputAdornment as x,Tooltip as w,IconButton as L}from"@mui/material";import b from"@mui/icons-material/Add";import C from"@mui/icons-material/Remove";import I from"@mui/icons-material/OpenInNew";import{WrapIcon as R}from"./units.js";import{getSocialLinkConfig as S}from"./unit.icons.js";import{ESocialLinkType as T}from"./types.js";import{CopyToClipboard as j}from"../../components/copy-to-clipboard.js";import{tryParseObject as A,isValidURL as U}from"../../utils/helpers.js";import{getErrorMessage as D}from"../../form/helpers.js";import{structureVersion as N}from"./configs.js";var z={root:"inputSocialLinks-root",linkRows:"inputSocialLinks-linkRows",linkRow:"inputSocialLinks-linkRow",titleLinkRow:"inputSocialLinks-titleLinkRow",input:"inputSocialLinks-input"};function W(){return function(){function c(n){var r;return t(this,c),r=i(this,c,[n]),e(r,"getInputValue",(function(){var e=r.state.links;return JSON.stringify({StructureVersion:N,Items:e})})),e(r,"getDefaultLinks",(function(){var e=r.props,n=e.data,t=e.name,i=t?null==n?void 0:n[t]:"",l=A(i,{StructureVersion:N,Items:[]});return Array.isArray(null==l?void 0:l.Items)?l.Items:[]})),e(r,"handleInputChange",(function(e){r.setState({currentInput:e.target.value})})),e(r,"handleTypeChange",(function(e){r.setState({currentType:e.target.value})})),e(r,"handleAddLink",(function(){var e=r.state,n=e.currentInput,t=e.links,i=e.currentType,o=n.trim();if(o)if(t.some((function(e){return e.Url===o}))){var a=r.props,s=a.formContext,c=a.name;c&&(null==s||s.setError(c,"This link already exists"))}else if(U(o)){var u={Url:o,Type:i},p=[].concat(l(t),[u]);r.setState({links:p,currentInput:""},(function(){var e=r.props,n=e.formContext,t=e.name;t&&(null==n||n.removeError(t))}))}else{var m=r.props,d=m.formContext,h=m.name;h&&(null==d||d.setError(h,"Invalid URL"))}})),e(r,"handleDeleteLink",(function(e){var n=r.state.links.filter((function(n){return n.Url!==e.Url}));r.setState({links:n})})),r.state={links:r.getDefaultLinks(),currentInput:"",currentType:T.Website},r}return n(c,s),r(c,[{key:"render",value:function(){var e=this,n=this.state,r=n.links,t=n.currentInput,i=this.props,l=i.name,s=i.label,c=i.messageErrors,p=D(c,l);return o(E,{container:!0,spacing:2,className:z.root,children:[a("input",{type:"hidden",name:null==l?void 0:l.toString(),value:this.getInputValue()}),a(u,{item:!0,xs:3,children:o(h,{fullWidth:!0,children:[a(f,{id:"social-link-type-label",children:"Link Type"}),a(k,{labelId:"social-link-type-label",value:this.state.currentType,label:"Link Type",onChange:this.handleTypeChange,children:Object.values(T).map((function(e){var n,r,t=S(e),i=t.Icon;return a(g,{value:e,children:o(O,{children:[a(R,{size:24,sx:{bgcolor:t.primaryColor},children:a(i,{fontSize:"small",sx:{color:null!==(n=t.secondaryColor)&&void 0!==n?n:m.common.white}})}),a(v,{variant:"body2",noWrap:!0,children:null!==(r=t.label)&&void 0!==r?r:e})]})},e)}))})]})}),a(u,{item:!0,xs:9,children:a(y,{fullWidth:!0,className:z.input,label:s,error:!!p.error,helperText:p.message,value:t,onChange:this.handleInputChange,onKeyDown:function(n){"Enter"===n.key&&(n.preventDefault(),e.handleAddLink())},InputProps:{endAdornment:a(x,{position:"end",children:a(w,{title:"Add Link",arrow:!0,children:a(L,{size:"small",onClick:this.handleAddLink,children:a(b,{})})})})}})}),a(u,{item:!0,xs:12,children:a(d,{className:z.linkRows,children:r.map((function(n,r){var t,i=S(n.Type),l=i.Icon;return o("div",{className:z.linkRow,children:[a(R,{sx:{bgcolor:i.primaryColor},children:a(l,{sx:{color:null!==(t=i.secondaryColor)&&void 0!==t?t:m.common.white}})}),a(v,{variant:"body2",noWrap:!0,className:z.titleLinkRow,children:n.Url}),a(w,{title:"Open Link",arrow:!0,children:a(L,{size:"small",href:n.Url,target:"_blank",rel:"noopener noreferrer",children:a(I,{fontSize:"small"})})}),a(j,{value:n.Url}),a(w,{title:"Delete Link",arrow:!0,children:a(L,{size:"small",onClick:function(){return e.handleDeleteLink(n)},children:a(C,{})})})]},r)}))})})]})}}])}()}var E=c(u)((function(n){var r=n.theme;return e(e(e(e({},"& .".concat(z.linkRows),{overflowY:"auto",maxHeight:"calc(var(--isl-row-height, 40px) * 5)"}),"& .".concat(z.linkRow),{display:"flex",alignItems:"center",gap:"4px",padding:"0 12px",marginBottom:"8px",backgroundColor:m.grey[50],borderRadius:r.shape.borderRadius,height:"var(--isl-row-height, 40px)","&:hover":{backgroundColor:m.grey[100]}}),"& .".concat(z.titleLinkRow),{marginLeft:"6px",flex:1,minWidth:0,overflow:"hidden"}),"& .".concat(z.input," .").concat(p.root),{paddingRight:r.spacing(1)})})),O=c(d)({display:"flex",alignItems:"center",gap:"8px",".MuiTypography-root":{lineHeight:1,marginTop:"2px"}});export{W as createInputSocialLinks,W as default,z as inputSocialLinksClasses};
2
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sources":["../../../../src/lab/input.social-links/create.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { IconButton, InputAdornment, TextField, FormControl, InputLabel, Grid } from '@mui/material'\r\nimport { styled, textFieldClasses, Box, Select, MenuItem, Typography, colors, Tooltip } from '@mui/material'\r\nimport AddIcon from '@mui/icons-material/Add'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { WrapIcon } from './units'\r\nimport { getSocialLinkConfig } from './unit.icons'\r\nimport { ESocialLinkType, ISocialLink, ISocialLinkData } from './types'\r\nimport { CopyToClipboard } from '../../components/copy-to-clipboard'\r\nimport { isValidURL, tryParseObject } from '../../utils/helpers'\r\nimport { IFormInputBase } from '../../form/types'\r\nimport { getErrorMessage } from '../../form/helpers'\r\nimport { structureVersion } from './configs'\r\n\r\nexport const inputSocialLinksClasses = {\r\n root: 'inputSocialLinks-root',\r\n linkRows: 'inputSocialLinks-linkRows',\r\n linkRow: 'inputSocialLinks-linkRow',\r\n titleLinkRow: 'inputSocialLinks-titleLinkRow',\r\n input: 'inputSocialLinks-input'\r\n}\r\n\r\nexport interface IInputSocialLinksProps<T> extends IFormInputBase<T> {}\r\n\r\nexport interface IInputSocialLinksState {\r\n links: ISocialLink[]\r\n currentType: ESocialLinkType\r\n currentInput: string\r\n}\r\n\r\nexport function createInputSocialLinks<T>() {\r\n class InputSocialLinks extends Component<IInputSocialLinksProps<T>, IInputSocialLinksState> {\r\n constructor(props: IInputSocialLinksProps<T>) {\r\n super(props)\r\n // Initialize state with existing links from props or empty array\r\n // Make sure we adapt incoming links to our ISocialLink interface\r\n this.state = { links: this.getDefaultLinks(), currentInput: '', currentType: ESocialLinkType.Website }\r\n }\r\n\r\n render() {\r\n const { links, currentInput } = this.state\r\n const { name, label, messageErrors } = this.props\r\n const errorMessage = getErrorMessage(messageErrors, name)\r\n\r\n return (\r\n <Wrap container spacing={2} className={inputSocialLinksClasses.root}>\r\n <input type='hidden' name={name?.toString()} value={this.getInputValue()} />\r\n <Grid item xs={3}>\r\n <FormControl fullWidth>\r\n <InputLabel id='social-link-type-label'>Link Type</InputLabel>\r\n <Select labelId='social-link-type-label' value={this.state.currentType} label='Link Type' onChange={this.handleTypeChange}>\r\n {Object.values(ESocialLinkType).map((type) => {\r\n const config = getSocialLinkConfig(type)\r\n const IconComp = config.Icon\r\n return (\r\n <MenuItem key={type} value={type}>\r\n <MenuItemCustom>\r\n <WrapIcon size={24} sx={{ bgcolor: config.primaryColor }}>\r\n <IconComp fontSize='small' sx={{ color: config.secondaryColor ?? colors.common.white }} />\r\n </WrapIcon>\r\n <Typography variant='body2' noWrap>\r\n {config.label ?? type}\r\n </Typography>\r\n </MenuItemCustom>\r\n </MenuItem>\r\n )\r\n })}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n <Grid item xs={9}>\r\n <TextField\r\n fullWidth\r\n className={inputSocialLinksClasses.input}\r\n label={label}\r\n error={!!errorMessage.error}\r\n helperText={errorMessage.message}\r\n value={currentInput}\r\n onChange={this.handleInputChange}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault()\r\n this.handleAddLink()\r\n }\r\n }}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position='end'>\r\n <Tooltip title='Add Link' arrow>\r\n <IconButton size='small' onClick={this.handleAddLink}>\r\n <AddIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </InputAdornment>\r\n )\r\n }}\r\n />\r\n </Grid>\r\n <Grid item xs={12}>\r\n <Box className={inputSocialLinksClasses.linkRows}>\r\n {links.map((link, index) => {\r\n const config = getSocialLinkConfig(link.Type)\r\n const IconComp = config.Icon\r\n return (\r\n <div className={inputSocialLinksClasses.linkRow} key={index}>\r\n <WrapIcon sx={{ bgcolor: config.primaryColor }}>\r\n <IconComp sx={{ color: config.secondaryColor ?? colors.common.white }} />\r\n </WrapIcon>\r\n <Typography variant='body2' noWrap className={inputSocialLinksClasses.titleLinkRow}>\r\n {link.Url}\r\n </Typography>\r\n <Tooltip title='Open Link' arrow>\r\n <IconButton size='small' href={link.Url} target='_blank' rel='noopener noreferrer'>\r\n <OpenInNewIcon fontSize='small' />\r\n </IconButton>\r\n </Tooltip>\r\n <CopyToClipboard value={link.Url} />\r\n <Tooltip title='Delete Link' arrow>\r\n <IconButton size='small' onClick={() => this.handleDeleteLink(link)}>\r\n <RemoveIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n )\r\n })}\r\n </Box>\r\n </Grid>\r\n </Wrap>\r\n )\r\n }\r\n\r\n getInputValue = () => {\r\n const { links } = this.state\r\n return JSON.stringify({ StructureVersion: structureVersion, Items: links })\r\n }\r\n\r\n getDefaultLinks = () => {\r\n const { data, name } = this.props\r\n const val = name ? data?.[name] : ''\r\n const obj = tryParseObject<ISocialLinkData>(val, { StructureVersion: structureVersion, Items: [] })\r\n return Array.isArray(obj?.Items) ? obj.Items : []\r\n }\r\n\r\n handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState({ currentInput: e.target.value })\r\n }\r\n\r\n handleTypeChange = (event: any) => {\r\n this.setState({ currentType: event.target.value as ESocialLinkType })\r\n }\r\n\r\n handleAddLink = () => {\r\n const { currentInput, links, currentType } = this.state\r\n const trimmedInput = currentInput.trim()\r\n\r\n if (!trimmedInput) return\r\n\r\n // Check if link already exists\r\n if (links.some((link) => link.Url === trimmedInput)) {\r\n // Could add error state here if needed\r\n const { formContext, name } = this.props\r\n if (name) formContext?.setError(name, 'This link already exists')\r\n return\r\n }\r\n\r\n // Validate URL\r\n if (!isValidURL(trimmedInput)) {\r\n // Set error state or show message\r\n const { formContext, name } = this.props\r\n if (name) formContext?.setError(name, 'Invalid URL')\r\n return\r\n }\r\n\r\n const newLink: ISocialLink = { Url: trimmedInput, Type: currentType }\r\n\r\n const newLinks = [...links, newLink]\r\n this.setState({ links: newLinks, currentInput: '' }, () => {\r\n const { formContext, name } = this.props\r\n if (name) formContext?.removeError(name)\r\n })\r\n }\r\n\r\n handleDeleteLink = (linkToDelete: ISocialLink) => {\r\n const newLinks = this.state.links.filter((link) => link.Url !== linkToDelete.Url)\r\n this.setState({ links: newLinks })\r\n }\r\n }\r\n\r\n return InputSocialLinks\r\n}\r\nexport default createInputSocialLinks\r\n\r\nconst Wrap = styled(Grid)(({ theme }) => ({\r\n // [`& .${inputSocialLinksClasses.root}`]: {}\r\n [`& .${inputSocialLinksClasses.linkRows}`]: {\r\n overflowY: 'auto',\r\n maxHeight: 'calc(var(--isl-row-height, 40px) * 5)'\r\n },\r\n [`& .${inputSocialLinksClasses.linkRow}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n padding: '0 12px',\r\n marginBottom: '8px',\r\n backgroundColor: colors.grey[50],\r\n borderRadius: theme.shape.borderRadius,\r\n height: 'var(--isl-row-height, 40px)',\r\n '&:hover': {\r\n backgroundColor: colors.grey[100]\r\n }\r\n },\r\n [`& .${inputSocialLinksClasses.titleLinkRow}`]: {\r\n marginLeft: '6px',\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden'\r\n },\r\n [`& .${inputSocialLinksClasses.input} .${textFieldClasses.root}`]: {\r\n paddingRight: theme.spacing(1)\r\n }\r\n}))\r\n\r\nconst MenuItemCustom = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n '.MuiTypography-root': {\r\n lineHeight: 1,\r\n marginTop: '2px'\r\n }\r\n})\r\n"],"names":["inputSocialLinksClasses","root","linkRows","linkRow","titleLinkRow","input","createInputSocialLinks","InputSocialLinks","props","_this","_classCallCheck","_callSuper","_defineProperty","links","state","JSON","stringify","StructureVersion","structureVersion","Items","_this$props","data","name","val","obj","tryParseObject","Array","isArray","e","setState","currentInput","target","value","event","currentType","_this$state","trimmedInput","trim","some","link","Url","_this$props2","formContext","setError","isValidURL","newLink","Type","newLinks","concat","_toConsumableArray","_this$props4","removeError","_this$props3","linkToDelete","filter","getDefaultLinks","ESocialLinkType","Website","_inherits","Component","_createClass","key","_this2","this","_this$state2","_this$props5","label","messageErrors","errorMessage","getErrorMessage","_jsxs","Wrap","container","spacing","className","children","_jsx","type","toString","getInputValue","Grid","item","xs","FormControl","fullWidth","InputLabel","id","Select","labelId","onChange","handleTypeChange","Object","values","map","_config$secondaryColo","_config$label","config","getSocialLinkConfig","IconComp","Icon","MenuItem","MenuItemCustom","WrapIcon","size","sx","bgcolor","primaryColor","fontSize","color","secondaryColor","colors","common","white","Typography","variant","noWrap","TextField","error","helperText","message","handleInputChange","onKeyDown","preventDefault","handleAddLink","InputProps","endAdornment","InputAdornment","position","Tooltip","title","arrow","IconButton","onClick","AddIcon","Box","index","_config$secondaryColo2","href","rel","OpenInNewIcon","CopyToClipboard","handleDeleteLink","RemoveIcon","styled","_ref","theme","overflowY","maxHeight","display","alignItems","gap","padding","marginBottom","backgroundColor","grey","borderRadius","shape","height","marginLeft","flex","minWidth","overflow","textFieldClasses","paddingRight","lineHeight","marginTop"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../src/lab/input.social-links/types.ts"],"sourcesContent":["import type { ComponentType } from 'react'\r\nimport type { SvgIconProps } from '@mui/material'\r\n\r\nexport enum ESocialLinkType {\r\n Website = 'Website',\r\n Spotify = 'Spotify',\r\n AppleMusic = 'AppleMusic',\r\n AmazonMusic = 'AmazonMusic',\r\n YouTube = 'YouTube',\r\n Deezer = 'Deezer',\r\n Tidal = 'Tidal',\r\n SoundCloud = 'SoundCloud'\r\n // Facebook = 'Facebook',\r\n // Twitter = 'Twitter',\r\n // Instagram = 'Instagram',\r\n // TikTok = 'TikTok',\r\n // Bandcamp = 'Bandcamp',\r\n}\r\n\r\nexport interface ISocialLinkConfig {\r\n label?: string\r\n primaryColor: string\r\n secondaryColor?: string\r\n Icon: ComponentType<SvgIconProps>\r\n}\r\n\r\n// Define our own ISocialLink to ensure compatibility with IArtist\r\nexport interface ISocialLink {\r\n Url: string\r\n Type?: ESocialLinkType\r\n Color?: string\r\n}\r\n\r\nexport interface ISocialLinkData {\r\n StructureVersion: string\r\n Items: ISocialLink[]\r\n}\r\n"],"names":["ESocialLinkType"],"mappings":"IAGYA,GAAZ,SAAYA,GACVA,EAAA,QAAA,UACAA,EAAA,QAAA,UACAA,EAAA,WAAA,aACAA,EAAA,YAAA,cACAA,EAAA,QAAA,UACAA,EAAA,OAAA,SACAA,EAAA,MAAA,QACAA,EAAA,WAAA,YAMD,CAdD,CAAYA,IAAAA,EAcX,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{defineProperty as c,objectSpread2 as C}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as r,jsx as o}from"react/jsx-runtime";import{SvgIcon as a}from"@mui/material";import e from"@mui/icons-material/Language";import i from"@mui/icons-material/YouTube";import{ESocialLinkType as l}from"./types.js";var n=function(c){return o(a,C(C({viewBox:"0 0 496 512"},c),{},{children:o("path",{d:"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"})}))},t=function(c){return o(a,C(C({viewBox:"0 0 640 640"},c),{},{children:o("path",{d:"M447.1 332.7C446.9 296 463.5 268.3 497.1 247.9C478.3 221 449.9 206.2 412.4 203.3C376.9 200.5 338.1 224 323.9 224C308.9 224 274.5 204.3 247.5 204.3C191.7 205.2 132.4 248.8 132.4 337.5C132.4 363.7 137.2 390.8 146.8 418.7C159.6 455.4 205.8 545.4 254 543.9C279.2 543.3 297 526 329.8 526C361.6 526 378.1 543.9 406.2 543.9C454.8 543.2 496.6 461.4 508.8 424.6C443.6 393.9 447.1 334.6 447.1 332.7zM390.5 168.5C417.8 136.1 415.3 106.6 414.5 96C390.4 97.4 362.5 112.4 346.6 130.9C329.1 150.7 318.8 175.2 321 202.8C347.1 204.8 370.9 191.4 390.5 168.5z"})}))},m=function(c){return o(a,C(C({viewBox:"0 0 448 512"},c),{},{children:o("path",{d:"M448 209.9a210.1 210.1 0 0 1 -122.8-39.3V349.4A162.6 162.6 0 1 1 185 188.3V278.2a74.6 74.6 0 1 0 52.2 71.2V0l88 0a121.2 121.2 0 0 0 1.9 22.2h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.1z"})}))},h=function(c){return o(a,C(C({viewBox:"0 0 278 278"},c),{},{children:o("g",{transform:"translate(24, 24) scale(0.85)",children:o("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M232.97 42.8737C235.539 27.9837 239.309 18.6204 243.485 18.6026H243.493C251.28 18.6294 257.592 51.1012 257.592 91.1924C257.592 131.284 251.271 163.782 243.476 163.782C240.28 163.782 237.331 158.264 234.957 149.017C231.205 182.867 223.419 206.136 214.405 206.136C207.431 206.136 201.172 192.158 196.97 170.114C194.101 212.038 186.88 241.783 178.44 241.783C173.143 241.783 168.314 229.996 164.739 210.804C160.44 250.421 150.508 278.18 138.926 278.18C127.344 278.18 117.394 250.43 113.113 210.804C109.564 229.996 104.735 241.783 99.4118 241.783C90.9722 241.783 83.7686 212.038 80.8818 170.114C76.6797 192.158 70.4383 206.136 63.4465 206.136C54.442 206.136 46.6469 182.875 42.895 149.017C40.5379 158.291 37.5717 163.782 34.376 163.782C26.5809 163.782 20.26 131.284 20.26 91.1924C20.26 51.1012 26.5809 18.6026 34.376 18.6026C38.5604 18.6026 42.3035 27.9926 44.8989 42.8737C49.0569 17.1985 55.8103 0.510986 63.4465 0.510986C72.5129 0.510986 80.3698 24.1114 84.0864 58.3808C87.7235 33.4389 93.241 17.5383 99.4206 17.5383C108.081 17.5383 115.443 48.8118 118.171 92.4355C123.3 70.0692 130.725 56.0377 138.944 56.0377C147.162 56.0377 154.587 70.0781 159.707 92.4355C162.444 48.8118 169.797 17.5383 178.458 17.5383C184.628 17.5383 190.137 33.4389 193.792 58.3808C197.5 24.1114 205.357 0.510986 214.423 0.510986C222.033 0.510986 228.812 17.2075 232.97 42.8737ZM0.0891113 84.0528C0.0891113 66.1311 3.67328 51.5989 8.0961 51.5989C12.5189 51.5989 16.1031 66.1311 16.1031 84.0528C16.1031 101.974 12.5189 116.507 8.0961 116.507C3.67328 116.507 0.0891113 101.974 0.0891113 84.0528ZM261.743 84.0528C261.743 66.1311 265.327 51.5989 269.75 51.5989C274.172 51.5989 277.757 66.1311 277.757 84.0528C277.757 101.974 274.172 116.507 269.75 116.507C265.327 116.507 261.743 101.974 261.743 84.0528Z"})})}))},v=function(c){return o(a,C(C({viewBox:"0 0 24 24"},c),{},{children:o("path",{d:"M12.012 3.992L8.008 7.996 4.004 3.992 0 7.996 4.004 12l4.004-4.004L12.012 12l-4.004 4.004 4.004 4.004 4.004-4.004L12.012 12l4.004-4.004-4.004-4.004zM16.042 7.996l3.979-3.979L24 7.996l-3.979 3.979z"})}))},p=function(c){return o(a,C(C({viewBox:"0 0 117 80"},c),{},{children:r("g",{xmlns:"http://www.w3.org/2000/svg",fill:"none","fill-rule":"evenodd",children:[o("path",{d:"M-32 112h181V-32H-32z"}),o("path",{fill:"#FFF",d:"M72.37 27.38C65.59 32.35 55.77 35 47.3 35A45.5 45.5 0 0 1 16.7 23.38c-.64-.57-.07-1.35.69-.9a61.88 61.88 0 0 0 30.64 8.08c7.5 0 15.77-1.55 23.36-4.76 1.15-.48 2.11.75.99 1.58zm2.82-3.2c-.87-1.1-5.73-.53-7.91-.27-.67.08-.77-.5-.17-.91 3.88-2.71 10.23-1.93 10.97-1.02.75.91-.2 7.25-3.83 10.28-.56.47-1.09.22-.84-.4.82-2.03 2.65-6.58 1.78-7.68zM67.43 3.85V1.22c0-.4.3-.67.67-.67h11.87c.38 0 .68.27.68.66v2.26c0 .38-.32.88-.9 1.66l-6.14 8.73c2.28-.05 4.7.29 6.77 1.45.47.26.6.65.63 1.03v2.8c0 .4-.43.84-.87.6a13.73 13.73 0 0 0-12.54.03c-.42.22-.85-.22-.85-.61v-2.67c0-.43.01-1.16.44-1.81L74.32 4.5h-6.2c-.38 0-.69-.26-.7-.66zM90.87.21c5.36 0 8.26 4.58 8.26 10.4 0 5.62-3.2 10.08-8.26 10.08-5.26 0-8.12-4.58-8.12-10.28 0-5.74 2.9-10.2 8.12-10.2zm.03 3.76c-2.66 0-2.83 3.6-2.83 5.86 0 2.25-.03 7.06 2.8 7.06 2.8 0 2.93-3.88 2.93-6.25 0-1.55-.07-3.41-.54-4.88-.4-1.28-1.21-1.79-2.36-1.79zM61.61 20.26c-.24.2-.68.22-.85.08-1.24-.95-2.07-2.4-2.07-2.4-1.98 2.01-3.39 2.62-5.96 2.62-3.03 0-5.4-1.87-5.4-5.6a6.1 6.1 0 0 1 3.85-5.87c1.96-.86 4.7-1.01 6.79-1.25 0 0 .17-2.25-.44-3.07a2.54 2.54 0 0 0-2.03-.93c-1.33 0-2.63.72-2.89 2.11-.07.4-.36.74-.68.7l-3.45-.37a.63.63 0 0 1-.54-.75c.8-4.22 4.63-5.5 8.07-5.5 1.76 0 4.05.47 5.44 1.79 1.75 1.63 1.59 3.8 1.59 6.18v5.6c0 1.68.7 2.42 1.36 3.32.23.33.28.72-.01.96-.74.61-2.78 2.38-2.78 2.38zm-3.64-8.76v-.78c-2.61 0-5.37.56-5.37 3.62 0 1.55.81 2.6 2.2 2.6 1 0 1.92-.62 2.5-1.63.7-1.25.67-2.41.67-3.81zm-43.7 8.76c-.23.2-.67.22-.84.08-1.24-.95-2.07-2.4-2.07-2.4-1.99 2.01-3.39 2.62-5.96 2.62-3.04 0-5.4-1.87-5.4-5.6a6.1 6.1 0 0 1 3.85-5.87c1.96-.86 4.7-1.01 6.79-1.25 0 0 .17-2.25-.44-3.07a2.54 2.54 0 0 0-2.03-.93c-1.34 0-2.63.72-2.89 2.11-.07.4-.37.74-.68.7l-3.46-.37a.63.63 0 0 1-.53-.75C1.4 1.31 5.24.03 8.68.03c1.76 0 4.05.47 5.44 1.79C15.87 3.45 15.7 5.62 15.7 8v5.6c0 1.68.7 2.42 1.36 3.32.23.33.28.72-.01.96-.74.61-2.78 2.38-2.78 2.38zm-3.63-8.76v-.78c-2.61 0-5.37.56-5.37 3.62 0 1.55.8 2.6 2.2 2.6 1 0 1.92-.62 2.5-1.63.7-1.25.67-2.41.67-3.81zm14.2-1.63v9.76c0 .37-.3.67-.68.67h-3.6a.67.67 0 0 1-.68-.67V1.27c0-.37.3-.67.68-.67h3.37c.37 0 .67.3.67.67v2.35h.07C25.55 1.3 27.2.21 29.42.21c2.26 0 3.67 1.09 4.69 3.41A5.13 5.13 0 0 1 39.09.21c1.52 0 3.17.62 4.18 2.02 1.15 1.55.91 3.8.91 5.78v11.63c0 .37-.31.66-.7.66h-3.6a.67.67 0 0 1-.65-.66V9.87c0-.78.07-2.72-.1-3.45-.27-1.25-1.08-1.6-2.13-1.6a2.4 2.4 0 0 0-2.15 1.52c-.37.93-.34 2.48-.34 3.53v9.77c0 .37-.31.66-.7.66h-3.6a.67.67 0 0 1-.65-.66V9.87c0-2.06.33-5.08-2.23-5.08-2.6 0-2.5 2.94-2.5 5.08zm81.94 9.76c0 .37-.3.67-.67.67h-3.61a.67.67 0 0 1-.67-.67V1.27c0-.37.3-.67.67-.67h3.33c.4 0 .68.31.68.52v2.81h.07c1-2.52 2.42-3.72 4.92-3.72 1.62 0 3.2.58 4.21 2.17.94 1.48.94 3.96.94 5.74v11.6a.68.68 0 0 1-.69.58h-3.62a.68.68 0 0 1-.64-.58V8.58c0-3.72-1.43-3.83-2.26-3.83-.96 0-1.74.75-2.07 1.44a8.3 8.3 0 0 0-.6 3.52l.01 9.92zM.93 79.3c-.62 0-.93-.3-.93-.93V56.68c0-.62.31-.93.93-.93H3c.3 0 .55.07.72.19.17.12.29.36.35.7l.28 1.48c2.99-2.04 5.9-3.06 8.73-3.06 2.9 0 4.86 1.1 5.89 3.3 3.08-2.2 6.16-3.3 9.24-3.3 2.15 0 3.8.6 4.95 1.8 1.15 1.22 1.73 2.94 1.73 5.16v16.35c0 .62-.32.93-.94.93H31.2c-.62 0-.94-.3-.94-.93V63.33c0-1.55-.3-2.7-.88-3.44-.6-.75-1.53-1.12-2.8-1.12-2.28 0-4.56.7-6.87 2.1.03.21.05.44.05.69v16.81c0 .62-.31.93-.93.93h-2.76c-.62 0-.93-.3-.93-.93V63.33c0-1.55-.3-2.7-.89-3.44-.6-.75-1.53-1.12-2.8-1.12-2.37 0-4.64.68-6.82 2.05v17.55c0 .62-.3.93-.93.93H.93zm47.44.7c-2.21 0-3.9-.62-5.09-1.86-1.18-1.24-1.77-2.99-1.77-5.25V56.7c0-.63.3-.94.93-.94h2.75c.63 0 .94.31.94.93v14.73c0 1.67.32 2.9.98 3.69.65.79 1.7 1.18 3.13 1.18 2.24 0 4.5-.74 6.77-2.23V56.68c0-.62.3-.93.93-.93h2.75c.63 0 .94.31.94.93v21.7c0 .61-.31.92-.94.92h-2c-.31 0-.56-.06-.73-.18-.17-.13-.28-.36-.35-.7l-.32-1.62c-2.9 2.13-5.87 3.2-8.92 3.2zm26.52 0c-2.62 0-4.97-.43-7.05-1.3a1.83 1.83 0 0 1-.77-.51c-.14-.19-.21-.48-.21-.88V76c0-.56.18-.84.56-.84.22 0 .6.1 1.16.28 2.06.65 4.2.97 6.4.97 1.53 0 2.69-.3 3.48-.88.8-.59 1.19-1.44 1.19-2.55a2.4 2.4 0 0 0-.72-1.82 7.83 7.83 0 0 0-2.64-1.39l-3.97-1.48c-3.46-1.27-5.18-3.44-5.18-6.5 0-2.02.78-3.65 2.36-4.88 1.57-1.24 3.63-1.86 6.18-1.86a17 17 0 0 1 5.93 1.07c.37.12.64.28.8.48.15.2.23.5.23.9v1.26c0 .56-.2.84-.6.84a4.2 4.2 0 0 1-1.08-.23c-1.65-.5-3.33-.75-5.05-.75-2.98 0-4.48 1.01-4.48 3.02 0 .8.25 1.44.75 1.9.5.47 1.48.98 2.94 1.54l3.64 1.4c1.84.7 3.16 1.55 3.97 2.53.81.97 1.21 2.23 1.21 3.78 0 2.2-.82 3.95-2.47 5.25-1.65 1.3-3.84 1.95-6.58 1.95zm14.94-.7c-.62 0-.94-.3-.94-.93V56.68c0-.62.32-.93.94-.93h2.75c.62 0 .94.31.94.93v21.7c0 .61-.32.92-.94.92h-2.75zm1.4-27.73c-.9 0-1.61-.25-2.13-.76a2.72 2.72 0 0 1-.77-2.02c0-.84.26-1.51.77-2.02a2.88 2.88 0 0 1 2.13-.77c.9 0 1.6.26 2.12.77.52.5.77 1.18.77 2.02 0 .83-.25 1.5-.77 2.02-.51.5-1.22.76-2.12.76zm19.51 28.24c-3.67 0-6.48-1.04-8.42-3.13-1.95-2.1-2.92-5.12-2.92-9.08 0-3.93 1-6.98 3.01-9.13 2-2.15 4.85-3.23 8.52-3.23 1.68 0 3.33.3 4.95.89.34.12.58.27.72.46s.21.5.21.93v1.25c0 .62-.2.93-.6.93-.16 0-.4-.04-.75-.14a13.8 13.8 0 0 0-3.88-.55c-2.61 0-4.5.65-5.65 1.97-1.15 1.32-1.72 3.41-1.72 6.3v.6c0 2.81.58 4.88 1.75 6.2 1.17 1.31 3.01 1.97 5.53 1.97 1.3 0 2.7-.21 4.2-.65.35-.1.58-.14.7-.14.4 0 .61.31.61.93v1.26c0 .4-.06.7-.19.88-.12.18-.37.35-.74.5-1.53.66-3.3.98-5.33.98z"})]})}))},u=function(c){return o(a,C(C({viewBox:"0 0 50 50"},c),{},{children:o("path",{d:"M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z"})}))},d=function(c){return r(a,C(C({viewBox:"0 0 100 100"},c),{},{children:[o("path",{d:"M16.569,39.37c-1.705-0.045-3.238,1.488-3.193,3.193c0,0,0,29.566,0,29.566c-0.015,1.821,1.503,2.531,3.193,2.537c1.725-0.005,3.245-0.694,3.237-2.537V42.563C19.844,40.832,18.311,39.322,16.569,39.37z"}),o("path",{d:"M92.322,50.873c-4.128-4.284-10.743-5.494-16.161-3.193c-0.888-13.158-12.729-24.001-25.936-23.749c-1.924,0-3.863,0.233-5.817,0.7c-0.904,0.292-1.356,1.196-1.356,2.712v47.585c0.017,0.393,0.319,0.981,0.787,1.094l38.051,0.044C94.867,76.231,101.723,59.947,92.322,50.873z"}),o("path",{d:"M9.746,54.021c-0.084-4.274-6.341-4.292-6.43,0c0,0,0,12.683,0,12.683c-0.13,4.255,6.914,4.617,6.429,0C9.746,66.705,9.746,54.021,9.746,54.021z"}),o("path",{d:"M37.061,25.768c-2.225-0.505-4.384,1.741-4.242,4.155v43.737c0,1.603,1.079,2.406,3.237,2.406c2.158,0,3.236-0.802,3.236-2.406V29.923C39.291,27.473,38.548,26.088,37.061,25.768z"}),o("path",{d:"M26.672,43.262c-1.764-0.045-3.325,1.517-3.28,3.28v26.985c0,0.845,0.306,1.48,0.919,1.903c1.718,1.174,5.653,0.851,5.555-1.903V46.543C29.913,44.808,28.407,43.221,26.672,43.262z"})]}))},z=c(c(c(c(c(c(c(c({},l.Website,{primaryColor:"#0066cc",Icon:e}),l.Spotify,{primaryColor:"#1DB954",Icon:n}),l.AppleMusic,{label:"Apple Music",primaryColor:"#FA243C",Icon:t}),l.AmazonMusic,{label:"Amazon Music",primaryColor:"#26d2dc",Icon:u}),l.YouTube,{primaryColor:"#FF0000",Icon:i}),l.Deezer,{primaryColor:"#A238FF",Icon:h}),l.Tidal,{primaryColor:"#000000",Icon:v}),l.SoundCloud,{primaryColor:"#FF5500",Icon:d}),M=function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.Website;return z[c]||{primaryColor:"#0066cc",Icon:e}};export{p as AmazonMusicIcon,u as AmazonMusicVectorIcon,t as AppleMusicIcon,h as DeezerIcon,d as SoundCloudIcon,n as SpotifyIcon,v as TidalIcon,m as TiktokIcon,M as getSocialLinkConfig};
2
+ //# sourceMappingURL=unit.icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit.icons.js","sources":["../../../../src/lab/input.social-links/unit.icons.tsx"],"sourcesContent":["import { SvgIcon } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { SvgIconProps } from '@mui/material'\r\nimport LanguageIcon from '@mui/icons-material/Language'\r\nimport YouTubeIcon from '@mui/icons-material/YouTube'\r\nimport { ESocialLinkType, ISocialLinkConfig } from './types'\r\n// import FacebookIcon from '@mui/icons-material/Facebook'\r\n// import TwitterIcon from '@mui/icons-material/Twitter'\r\n// import InstagramIcon from '@mui/icons-material/Instagram'\r\n// import AlbumIcon from '@mui/icons-material/Album'\r\n\r\nexport const SpotifyIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 496 512' {...props}>\r\n <path d='M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z' />\r\n </SvgIcon>\r\n)\r\n\r\nexport const AppleMusicIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 640 640' {...props}>\r\n <path d='M447.1 332.7C446.9 296 463.5 268.3 497.1 247.9C478.3 221 449.9 206.2 412.4 203.3C376.9 200.5 338.1 224 323.9 224C308.9 224 274.5 204.3 247.5 204.3C191.7 205.2 132.4 248.8 132.4 337.5C132.4 363.7 137.2 390.8 146.8 418.7C159.6 455.4 205.8 545.4 254 543.9C279.2 543.3 297 526 329.8 526C361.6 526 378.1 543.9 406.2 543.9C454.8 543.2 496.6 461.4 508.8 424.6C443.6 393.9 447.1 334.6 447.1 332.7zM390.5 168.5C417.8 136.1 415.3 106.6 414.5 96C390.4 97.4 362.5 112.4 346.6 130.9C329.1 150.7 318.8 175.2 321 202.8C347.1 204.8 370.9 191.4 390.5 168.5z' />\r\n </SvgIcon>\r\n)\r\n\r\nexport const TiktokIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 448 512' {...props}>\r\n <path d='M448 209.9a210.1 210.1 0 0 1 -122.8-39.3V349.4A162.6 162.6 0 1 1 185 188.3V278.2a74.6 74.6 0 1 0 52.2 71.2V0l88 0a121.2 121.2 0 0 0 1.9 22.2h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.1z' />\r\n </SvgIcon>\r\n)\r\n\r\nexport const DeezerIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 278 278' {...props}>\r\n <g transform='translate(24, 24) scale(0.85)'>\r\n <path\r\n fillRule='evenodd'\r\n clipRule='evenodd'\r\n d='M232.97 42.8737C235.539 27.9837 239.309 18.6204 243.485 18.6026H243.493C251.28 18.6294 257.592 51.1012 257.592 91.1924C257.592 131.284 251.271 163.782 243.476 163.782C240.28 163.782 237.331 158.264 234.957 149.017C231.205 182.867 223.419 206.136 214.405 206.136C207.431 206.136 201.172 192.158 196.97 170.114C194.101 212.038 186.88 241.783 178.44 241.783C173.143 241.783 168.314 229.996 164.739 210.804C160.44 250.421 150.508 278.18 138.926 278.18C127.344 278.18 117.394 250.43 113.113 210.804C109.564 229.996 104.735 241.783 99.4118 241.783C90.9722 241.783 83.7686 212.038 80.8818 170.114C76.6797 192.158 70.4383 206.136 63.4465 206.136C54.442 206.136 46.6469 182.875 42.895 149.017C40.5379 158.291 37.5717 163.782 34.376 163.782C26.5809 163.782 20.26 131.284 20.26 91.1924C20.26 51.1012 26.5809 18.6026 34.376 18.6026C38.5604 18.6026 42.3035 27.9926 44.8989 42.8737C49.0569 17.1985 55.8103 0.510986 63.4465 0.510986C72.5129 0.510986 80.3698 24.1114 84.0864 58.3808C87.7235 33.4389 93.241 17.5383 99.4206 17.5383C108.081 17.5383 115.443 48.8118 118.171 92.4355C123.3 70.0692 130.725 56.0377 138.944 56.0377C147.162 56.0377 154.587 70.0781 159.707 92.4355C162.444 48.8118 169.797 17.5383 178.458 17.5383C184.628 17.5383 190.137 33.4389 193.792 58.3808C197.5 24.1114 205.357 0.510986 214.423 0.510986C222.033 0.510986 228.812 17.2075 232.97 42.8737ZM0.0891113 84.0528C0.0891113 66.1311 3.67328 51.5989 8.0961 51.5989C12.5189 51.5989 16.1031 66.1311 16.1031 84.0528C16.1031 101.974 12.5189 116.507 8.0961 116.507C3.67328 116.507 0.0891113 101.974 0.0891113 84.0528ZM261.743 84.0528C261.743 66.1311 265.327 51.5989 269.75 51.5989C274.172 51.5989 277.757 66.1311 277.757 84.0528C277.757 101.974 274.172 116.507 269.75 116.507C265.327 116.507 261.743 101.974 261.743 84.0528Z'\r\n />\r\n </g>\r\n </SvgIcon>\r\n)\r\n\r\nexport const TidalIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 24 24' {...props}>\r\n <path d='M12.012 3.992L8.008 7.996 4.004 3.992 0 7.996 4.004 12l4.004-4.004L12.012 12l-4.004 4.004 4.004 4.004 4.004-4.004L12.012 12l4.004-4.004-4.004-4.004zM16.042 7.996l3.979-3.979L24 7.996l-3.979 3.979z'></path>\r\n </SvgIcon>\r\n)\r\n\r\nexport const AmazonMusicIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 117 80' {...props}>\r\n <g xmlns='http://www.w3.org/2000/svg' fill='none' fill-rule='evenodd'>\r\n <path d='M-32 112h181V-32H-32z' />\r\n <path\r\n fill='#FFF'\r\n d='M72.37 27.38C65.59 32.35 55.77 35 47.3 35A45.5 45.5 0 0 1 16.7 23.38c-.64-.57-.07-1.35.69-.9a61.88 61.88 0 0 0 30.64 8.08c7.5 0 15.77-1.55 23.36-4.76 1.15-.48 2.11.75.99 1.58zm2.82-3.2c-.87-1.1-5.73-.53-7.91-.27-.67.08-.77-.5-.17-.91 3.88-2.71 10.23-1.93 10.97-1.02.75.91-.2 7.25-3.83 10.28-.56.47-1.09.22-.84-.4.82-2.03 2.65-6.58 1.78-7.68zM67.43 3.85V1.22c0-.4.3-.67.67-.67h11.87c.38 0 .68.27.68.66v2.26c0 .38-.32.88-.9 1.66l-6.14 8.73c2.28-.05 4.7.29 6.77 1.45.47.26.6.65.63 1.03v2.8c0 .4-.43.84-.87.6a13.73 13.73 0 0 0-12.54.03c-.42.22-.85-.22-.85-.61v-2.67c0-.43.01-1.16.44-1.81L74.32 4.5h-6.2c-.38 0-.69-.26-.7-.66zM90.87.21c5.36 0 8.26 4.58 8.26 10.4 0 5.62-3.2 10.08-8.26 10.08-5.26 0-8.12-4.58-8.12-10.28 0-5.74 2.9-10.2 8.12-10.2zm.03 3.76c-2.66 0-2.83 3.6-2.83 5.86 0 2.25-.03 7.06 2.8 7.06 2.8 0 2.93-3.88 2.93-6.25 0-1.55-.07-3.41-.54-4.88-.4-1.28-1.21-1.79-2.36-1.79zM61.61 20.26c-.24.2-.68.22-.85.08-1.24-.95-2.07-2.4-2.07-2.4-1.98 2.01-3.39 2.62-5.96 2.62-3.03 0-5.4-1.87-5.4-5.6a6.1 6.1 0 0 1 3.85-5.87c1.96-.86 4.7-1.01 6.79-1.25 0 0 .17-2.25-.44-3.07a2.54 2.54 0 0 0-2.03-.93c-1.33 0-2.63.72-2.89 2.11-.07.4-.36.74-.68.7l-3.45-.37a.63.63 0 0 1-.54-.75c.8-4.22 4.63-5.5 8.07-5.5 1.76 0 4.05.47 5.44 1.79 1.75 1.63 1.59 3.8 1.59 6.18v5.6c0 1.68.7 2.42 1.36 3.32.23.33.28.72-.01.96-.74.61-2.78 2.38-2.78 2.38zm-3.64-8.76v-.78c-2.61 0-5.37.56-5.37 3.62 0 1.55.81 2.6 2.2 2.6 1 0 1.92-.62 2.5-1.63.7-1.25.67-2.41.67-3.81zm-43.7 8.76c-.23.2-.67.22-.84.08-1.24-.95-2.07-2.4-2.07-2.4-1.99 2.01-3.39 2.62-5.96 2.62-3.04 0-5.4-1.87-5.4-5.6a6.1 6.1 0 0 1 3.85-5.87c1.96-.86 4.7-1.01 6.79-1.25 0 0 .17-2.25-.44-3.07a2.54 2.54 0 0 0-2.03-.93c-1.34 0-2.63.72-2.89 2.11-.07.4-.37.74-.68.7l-3.46-.37a.63.63 0 0 1-.53-.75C1.4 1.31 5.24.03 8.68.03c1.76 0 4.05.47 5.44 1.79C15.87 3.45 15.7 5.62 15.7 8v5.6c0 1.68.7 2.42 1.36 3.32.23.33.28.72-.01.96-.74.61-2.78 2.38-2.78 2.38zm-3.63-8.76v-.78c-2.61 0-5.37.56-5.37 3.62 0 1.55.8 2.6 2.2 2.6 1 0 1.92-.62 2.5-1.63.7-1.25.67-2.41.67-3.81zm14.2-1.63v9.76c0 .37-.3.67-.68.67h-3.6a.67.67 0 0 1-.68-.67V1.27c0-.37.3-.67.68-.67h3.37c.37 0 .67.3.67.67v2.35h.07C25.55 1.3 27.2.21 29.42.21c2.26 0 3.67 1.09 4.69 3.41A5.13 5.13 0 0 1 39.09.21c1.52 0 3.17.62 4.18 2.02 1.15 1.55.91 3.8.91 5.78v11.63c0 .37-.31.66-.7.66h-3.6a.67.67 0 0 1-.65-.66V9.87c0-.78.07-2.72-.1-3.45-.27-1.25-1.08-1.6-2.13-1.6a2.4 2.4 0 0 0-2.15 1.52c-.37.93-.34 2.48-.34 3.53v9.77c0 .37-.31.66-.7.66h-3.6a.67.67 0 0 1-.65-.66V9.87c0-2.06.33-5.08-2.23-5.08-2.6 0-2.5 2.94-2.5 5.08zm81.94 9.76c0 .37-.3.67-.67.67h-3.61a.67.67 0 0 1-.67-.67V1.27c0-.37.3-.67.67-.67h3.33c.4 0 .68.31.68.52v2.81h.07c1-2.52 2.42-3.72 4.92-3.72 1.62 0 3.2.58 4.21 2.17.94 1.48.94 3.96.94 5.74v11.6a.68.68 0 0 1-.69.58h-3.62a.68.68 0 0 1-.64-.58V8.58c0-3.72-1.43-3.83-2.26-3.83-.96 0-1.74.75-2.07 1.44a8.3 8.3 0 0 0-.6 3.52l.01 9.92zM.93 79.3c-.62 0-.93-.3-.93-.93V56.68c0-.62.31-.93.93-.93H3c.3 0 .55.07.72.19.17.12.29.36.35.7l.28 1.48c2.99-2.04 5.9-3.06 8.73-3.06 2.9 0 4.86 1.1 5.89 3.3 3.08-2.2 6.16-3.3 9.24-3.3 2.15 0 3.8.6 4.95 1.8 1.15 1.22 1.73 2.94 1.73 5.16v16.35c0 .62-.32.93-.94.93H31.2c-.62 0-.94-.3-.94-.93V63.33c0-1.55-.3-2.7-.88-3.44-.6-.75-1.53-1.12-2.8-1.12-2.28 0-4.56.7-6.87 2.1.03.21.05.44.05.69v16.81c0 .62-.31.93-.93.93h-2.76c-.62 0-.93-.3-.93-.93V63.33c0-1.55-.3-2.7-.89-3.44-.6-.75-1.53-1.12-2.8-1.12-2.37 0-4.64.68-6.82 2.05v17.55c0 .62-.3.93-.93.93H.93zm47.44.7c-2.21 0-3.9-.62-5.09-1.86-1.18-1.24-1.77-2.99-1.77-5.25V56.7c0-.63.3-.94.93-.94h2.75c.63 0 .94.31.94.93v14.73c0 1.67.32 2.9.98 3.69.65.79 1.7 1.18 3.13 1.18 2.24 0 4.5-.74 6.77-2.23V56.68c0-.62.3-.93.93-.93h2.75c.63 0 .94.31.94.93v21.7c0 .61-.31.92-.94.92h-2c-.31 0-.56-.06-.73-.18-.17-.13-.28-.36-.35-.7l-.32-1.62c-2.9 2.13-5.87 3.2-8.92 3.2zm26.52 0c-2.62 0-4.97-.43-7.05-1.3a1.83 1.83 0 0 1-.77-.51c-.14-.19-.21-.48-.21-.88V76c0-.56.18-.84.56-.84.22 0 .6.1 1.16.28 2.06.65 4.2.97 6.4.97 1.53 0 2.69-.3 3.48-.88.8-.59 1.19-1.44 1.19-2.55a2.4 2.4 0 0 0-.72-1.82 7.83 7.83 0 0 0-2.64-1.39l-3.97-1.48c-3.46-1.27-5.18-3.44-5.18-6.5 0-2.02.78-3.65 2.36-4.88 1.57-1.24 3.63-1.86 6.18-1.86a17 17 0 0 1 5.93 1.07c.37.12.64.28.8.48.15.2.23.5.23.9v1.26c0 .56-.2.84-.6.84a4.2 4.2 0 0 1-1.08-.23c-1.65-.5-3.33-.75-5.05-.75-2.98 0-4.48 1.01-4.48 3.02 0 .8.25 1.44.75 1.9.5.47 1.48.98 2.94 1.54l3.64 1.4c1.84.7 3.16 1.55 3.97 2.53.81.97 1.21 2.23 1.21 3.78 0 2.2-.82 3.95-2.47 5.25-1.65 1.3-3.84 1.95-6.58 1.95zm14.94-.7c-.62 0-.94-.3-.94-.93V56.68c0-.62.32-.93.94-.93h2.75c.62 0 .94.31.94.93v21.7c0 .61-.32.92-.94.92h-2.75zm1.4-27.73c-.9 0-1.61-.25-2.13-.76a2.72 2.72 0 0 1-.77-2.02c0-.84.26-1.51.77-2.02a2.88 2.88 0 0 1 2.13-.77c.9 0 1.6.26 2.12.77.52.5.77 1.18.77 2.02 0 .83-.25 1.5-.77 2.02-.51.5-1.22.76-2.12.76zm19.51 28.24c-3.67 0-6.48-1.04-8.42-3.13-1.95-2.1-2.92-5.12-2.92-9.08 0-3.93 1-6.98 3.01-9.13 2-2.15 4.85-3.23 8.52-3.23 1.68 0 3.33.3 4.95.89.34.12.58.27.72.46s.21.5.21.93v1.25c0 .62-.2.93-.6.93-.16 0-.4-.04-.75-.14a13.8 13.8 0 0 0-3.88-.55c-2.61 0-4.5.65-5.65 1.97-1.15 1.32-1.72 3.41-1.72 6.3v.6c0 2.81.58 4.88 1.75 6.2 1.17 1.31 3.01 1.97 5.53 1.97 1.3 0 2.7-.21 4.2-.65.35-.1.58-.14.7-.14.4 0 .61.31.61.93v1.26c0 .4-.06.7-.19.88-.12.18-.37.35-.74.5-1.53.66-3.3.98-5.33.98z'\r\n />\r\n </g>\r\n </SvgIcon>\r\n)\r\n\r\nexport const AmazonMusicVectorIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 50 50' {...props}>\r\n <path d='M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z' />\r\n </SvgIcon>\r\n)\r\n\r\nexport const SoundCloudIcon: FC<SvgIconProps> = (props) => (\r\n <SvgIcon viewBox='0 0 100 100' {...props}>\r\n <path d='M16.569,39.37c-1.705-0.045-3.238,1.488-3.193,3.193c0,0,0,29.566,0,29.566c-0.015,1.821,1.503,2.531,3.193,2.537c1.725-0.005,3.245-0.694,3.237-2.537V42.563C19.844,40.832,18.311,39.322,16.569,39.37z' />\r\n <path d='M92.322,50.873c-4.128-4.284-10.743-5.494-16.161-3.193c-0.888-13.158-12.729-24.001-25.936-23.749c-1.924,0-3.863,0.233-5.817,0.7c-0.904,0.292-1.356,1.196-1.356,2.712v47.585c0.017,0.393,0.319,0.981,0.787,1.094l38.051,0.044C94.867,76.231,101.723,59.947,92.322,50.873z' />\r\n <path d='M9.746,54.021c-0.084-4.274-6.341-4.292-6.43,0c0,0,0,12.683,0,12.683c-0.13,4.255,6.914,4.617,6.429,0C9.746,66.705,9.746,54.021,9.746,54.021z' />\r\n <path d='M37.061,25.768c-2.225-0.505-4.384,1.741-4.242,4.155v43.737c0,1.603,1.079,2.406,3.237,2.406c2.158,0,3.236-0.802,3.236-2.406V29.923C39.291,27.473,38.548,26.088,37.061,25.768z' />\r\n <path d='M26.672,43.262c-1.764-0.045-3.325,1.517-3.28,3.28v26.985c0,0.845,0.306,1.48,0.919,1.903c1.718,1.174,5.653,0.851,5.555-1.903V46.543C29.913,44.808,28.407,43.221,26.672,43.262z' />\r\n </SvgIcon>\r\n)\r\n\r\nconst mapSocialLinkConfig: Record<ESocialLinkType, ISocialLinkConfig> = {\r\n [ESocialLinkType.Website]: { primaryColor: '#0066cc', Icon: LanguageIcon },\r\n [ESocialLinkType.Spotify]: { primaryColor: '#1DB954', Icon: SpotifyIcon },\r\n [ESocialLinkType.AppleMusic]: { label: 'Apple Music', primaryColor: '#FA243C', Icon: AppleMusicIcon },\r\n [ESocialLinkType.AmazonMusic]: { label: 'Amazon Music', primaryColor: '#26d2dc', Icon: AmazonMusicVectorIcon },\r\n [ESocialLinkType.YouTube]: { primaryColor: '#FF0000', Icon: YouTubeIcon },\r\n [ESocialLinkType.Deezer]: { primaryColor: '#A238FF', Icon: DeezerIcon },\r\n [ESocialLinkType.Tidal]: { primaryColor: '#000000', Icon: TidalIcon },\r\n [ESocialLinkType.SoundCloud]: { primaryColor: '#FF5500', Icon: SoundCloudIcon }\r\n // [ESocialLinkType.Facebook]: { primaryColor: '#1877F2', Icon: FacebookIcon }\r\n // [ESocialLinkType.Twitter]: { primaryColor: '#1DA1F2', Icon: TwitterIcon },\r\n // [ESocialLinkType.Instagram]: { primaryColor: '#E4405F', Icon: InstagramIcon },\r\n // [ESocialLinkType.TikTok]: { primaryColor: '#00F2EA', Icon: TiktokIcon },\r\n // [ESocialLinkType.Bandcamp]: { primaryColor: '#1DA0C3', Icon: AlbumIcon },\r\n}\r\n\r\nexport const getSocialLinkConfig = (type: ESocialLinkType = ESocialLinkType.Website): ISocialLinkConfig => {\r\n return mapSocialLinkConfig[type] || { primaryColor: '#0066cc', Icon: LanguageIcon }\r\n}\r\n"],"names":["SpotifyIcon","props","_jsx","SvgIcon","_objectSpread","viewBox","children","d","AppleMusicIcon","TiktokIcon","DeezerIcon","transform","fillRule","clipRule","TidalIcon","AmazonMusicIcon","_jsxs","xmlns","fill","AmazonMusicVectorIcon","SoundCloudIcon","mapSocialLinkConfig","_defineProperty","ESocialLinkType","Website","primaryColor","Icon","LanguageIcon","Spotify","AppleMusic","label","AmazonMusic","YouTube","YouTubeIcon","Deezer","Tidal","SoundCloud","getSocialLinkConfig","type"],"mappings":"qUAWaA,EAAgC,SAACC,GAAK,OACjDC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,eAAkBJ,GAAK,GAAA,CACtCK,SAAAJ,EAAA,OAAA,CAAMK,EAAE,4xBACA,EAGCC,EAAmC,SAACP,GAAK,OACpDC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,eAAkBJ,GAAK,GAAA,CACtCK,SAAAJ,EAAA,OAAA,CAAMK,EAAE,miBACA,EAGCE,EAA+B,SAACR,GAAK,OAChDC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,eAAkBJ,GAAK,GAAA,CACtCK,SAAAJ,EAAA,OAAA,CAAMK,EAAE,4MACA,EAGCG,EAA+B,SAACT,GAAK,OAChDC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,eAAkBJ,GAAK,GAAA,CACtCK,SAAAJ,EAAA,IAAA,CAAGS,UAAU,gCACXL,SAAAJ,EAAA,OAAA,CACEU,SAAS,UACTC,SAAS,UACTN,EAAE,mvDAGE,EAGCO,EAA8B,SAACb,GAAK,OAC/CC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,aAAgBJ,GAAK,GAAA,CACpCK,SAAAJ,EAAA,OAAA,CAAMK,EAAE,2MACA,EAGCQ,EAAoC,SAACd,GAAK,OACrDC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,cAAiBJ,GAAK,GAAA,CACrCK,SAAAU,EAAA,IAAA,CAAGC,MAAM,6BAA6BC,KAAK,mBAAiB,UAASZ,SAAA,CACnEJ,UAAMK,EAAE,0BACRL,EAAA,OAAA,CACEgB,KAAK,OACLX,EAAE,+iKAGE,EAGCY,EAA0C,SAAClB,GAAK,OAC3DC,EAACC,EAAOC,EAAAA,EAAA,CAACC,QAAQ,aAAgBJ,GAAK,GAAA,CACpCK,SAAAJ,EAAA,OAAA,CAAMK,EAAE,i7DACA,EAGCa,EAAmC,SAACnB,GAAK,OACpDe,EAACb,EAAOC,EAAAA,EAAA,CAACC,QAAQ,eAAkBJ,GAAK,GAAA,WACtCC,EAAM,OAAA,CAAAK,EAAE,uMACRL,UAAMK,EAAE,4QACRL,UAAMK,EAAE,gJACRL,EAAA,OAAA,CAAMK,EAAE,iLACRL,EAAM,OAAA,CAAAK,EAAE,qLACA,EAGNc,EAAmBC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EACtBC,GAAAA,EAAgBC,QAAU,CAAEC,aAAc,UAAWC,KAAMC,IAC3DJ,EAAgBK,QAAU,CAAEH,aAAc,UAAWC,KAAM1B,IAC3DuB,EAAgBM,WAAa,CAAEC,MAAO,cAAeL,aAAc,UAAWC,KAAMlB,IACpFe,EAAgBQ,YAAc,CAAED,MAAO,eAAgBL,aAAc,UAAWC,KAAMP,IACtFI,EAAgBS,QAAU,CAAEP,aAAc,UAAWC,KAAMO,IAC3DV,EAAgBW,OAAS,CAAET,aAAc,UAAWC,KAAMhB,IAC1Da,EAAgBY,MAAQ,CAAEV,aAAc,UAAWC,KAAMZ,IACzDS,EAAgBa,WAAa,CAAEX,aAAc,UAAWC,KAAMN,IAQpDiB,EAAsB,WAAuE,IAAtEC,sDAAwBf,GAAAA,EAAgBC,QAC1E,OAAOH,EAAoBiB,IAAS,CAAEb,aAAc,UAAWC,KAAMC,EACvE"}
@@ -0,0 +1,2 @@
1
+ import{objectSpread2 as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t}from"react/jsx-runtime";import{styled as i,Avatar as o}from"@mui/material";import"./unit.icons.js";import"dayjs";var e=i((function(i){return t(o,r({},i))}))((function(r){var t=r.size;return{width:t||28,height:t||28}}));export{e as WrapIcon};
2
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sources":["../../../../src/lab/input.social-links/units.tsx"],"sourcesContent":["import { Avatar, AvatarGroup, AvatarProps, colors, styled } from '@mui/material'\r\nimport { GridRenderCellParams, GridTreeNodeWithRender } from '@mui/x-data-grid'\r\nimport { ISocialLinkData } from './types'\r\nimport { structureVersion } from './configs'\r\nimport { getSocialLinkConfig } from './unit.icons'\r\nimport { tryParseObject } from '../../utils/helpers'\r\n\r\ninterface IWrapIconProps extends AvatarProps {\r\n size?: string | number\r\n [key: string]: any\r\n}\r\n\r\nexport const WrapIcon = styled((props: IWrapIconProps) => <Avatar {...props} />)(({ size }) => ({\r\n width: size || 28,\r\n height: size || 28\r\n}))\r\n\r\nexport const renderCellSocials = () => {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const obj = tryParseObject<ISocialLinkData>(tableRow.value, { StructureVersion: structureVersion, Items: [] })\r\n const val = Array.isArray(obj?.Items) ? obj.Items : []\r\n return (\r\n <AvatarGroup spacing='medium' max={5}>\r\n {val.map((item, i) => {\r\n const config = getSocialLinkConfig(item.Type)\r\n const IconComp = config.Icon\r\n return (\r\n <WrapIcon\r\n key={i.toString()}\r\n sx={{ bgcolor: config.primaryColor }}\r\n component='a'\r\n href={item.Url}\r\n target='_blank'\r\n rel='noopener noreferrer'\r\n >\r\n <IconComp sx={{ color: config.secondaryColor ?? colors.common.white }} />\r\n </WrapIcon>\r\n )\r\n })}\r\n </AvatarGroup>\r\n )\r\n }\r\n}\r\n"],"names":["WrapIcon","styled","props","_jsx","Avatar","_objectSpread","_ref","size","width","height"],"mappings":"oNAYaA,EAAWC,GAAO,SAACC,GAAqB,OAAKC,EAACC,EAAMC,EAAKH,CAAAA,EAAAA,GAAS,GAAvDD,EAAyD,SAAAK,GAAA,IAAGC,EAAID,EAAJC,KAAI,MAAQ,CAC9FC,MAAOD,GAAQ,GACfE,OAAQF,GAAQ,GACjB"}
@@ -0,0 +1,2 @@
1
+ import{inherits as e,createClass as t,superPropGet as r,typeof as n,objectWithoutProperties as i,objectSpread2 as o,classCallCheck as a,callSuper as s,defineProperty as u}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as c,Fragment as l}from"react/jsx-runtime";import f from"events";import{forwardRef as v,useEffect as p}from"react";var g=["onClick","routeKey"],d=function(){function n(){var e;return a(this,n),e=s(this,n),u(e,"_createWrapListener",(function(e){return function(){try{e.apply(void 0,arguments)}catch(e){console.error("Error in MfeBridge listener:",e)}}})),e}return e(n,f),t(n,[{key:"subscribe",value:function(e,t){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(t):t;return r(n,"addListener",this)([e,o]),function(){r(n,"removeListener",i)([e,o])}}}])}();function h(){if(void 0===("undefined"==typeof globalThis?"undefined":n(globalThis)))return null;void 0===globalThis.MfeNavigationEventStore&&(globalThis.MfeNavigationEventStore=new d);var e=globalThis.MfeNavigationEventStore;return e.setMaxListeners(50),e}var m=function(e){return p((function(){var t=h();if(t){var r=t.subscribe("navigation",(function(t){e.navigation&&e.navigation(t.routeKey)}));return function(){r()}}}),[]),c(l,{})},b=v((function(e,t){var r=e.onClick,n=e.routeKey,a=i(e,g);return c("a",o(o({},a),{},{ref:t,onClick:function(e){if(r&&r(e),!e.defaultPrevented){var t=h();t&&n&&(e.preventDefault(),e.stopPropagation(),t.emit("navigation",{routeKey:n,options:{message:"Link clicked"}}))}}}))})),y=function(e){var t=h();t&&t.emit("navigation",{routeKey:e,options:{message:"Navigating to ".concat(e)}})};export{b as MfeLink,d as MfeNavigationEventStore,m as MfeNavigationProvider,h as getMfeNavigationEventStore,y as mfeNavigation};
2
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sources":["../../../src/mfe-shared/navigation.tsx"],"sourcesContent":["import EventEmitter from 'events'\r\nimport { FC, forwardRef, useEffect } from 'react'\r\n\r\ninterface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface IMfeNavigationEventConfigs {\r\n navigation: [{ routeKey?: string; options?: IEventOptions }]\r\n}\r\n\r\nexport class MfeNavigationEventStore extends EventEmitter<IMfeNavigationEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n /**\r\n * Subscribe to a specific channel\r\n * @param channel The channel to subscribe to\r\n * @param callback Function to call when an event occurs on this channel\r\n * @returns Unsubscribe function to remove the event listener\r\n */\r\n _createWrapListener = (callback: (...payload: any[]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...payload)\r\n } catch (error) {\r\n console.error('Error in MfeBridge listener:', error)\r\n }\r\n }\r\n }\r\n subscribe<K extends keyof IMfeNavigationEventConfigs>(\r\n eventName: K,\r\n listener: K extends keyof IMfeNavigationEventConfigs\r\n ? IMfeNavigationEventConfigs[K] extends unknown[]\r\n ? (...args: IMfeNavigationEventConfigs[K]) => void\r\n : never\r\n : never,\r\n isTry: boolean = true\r\n ) {\r\n const action = isTry ? this._createWrapListener(listener) : listener\r\n super.addListener(eventName, action as any)\r\n return () => {\r\n super.removeListener(eventName, action as any)\r\n }\r\n }\r\n}\r\n\r\nexport function getMfeNavigationEventStore() {\r\n if (typeof globalThis === undefined) return null\r\n\r\n if (typeof (globalThis as any).MfeNavigationEventStore === 'undefined') {\r\n // If MfeNavigationEventStore is not defined globally, define it\r\n // This allows it to be used in other parts of the application\r\n // without needing to import it explicitly\r\n ;(globalThis as any).MfeNavigationEventStore = new MfeNavigationEventStore()\r\n }\r\n const eventEmitter = (globalThis as any).MfeNavigationEventStore as MfeNavigationEventStore\r\n eventEmitter.setMaxListeners(50)\r\n return eventEmitter\r\n}\r\n\r\ntype INavigationFunction = (routeKey?: string) => void\r\n\r\nexport interface IMfeNavigationProviderProps {\r\n navigation?: INavigationFunction\r\n}\r\n\r\nexport const MfeNavigationProvider: FC<IMfeNavigationProviderProps> = (props) => {\r\n useEffect(() => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (!eventStore) return\r\n\r\n const unsubscribe = eventStore.subscribe('navigation', (payload) => {\r\n if (props.navigation) {\r\n props.navigation(payload.routeKey)\r\n }\r\n })\r\n\r\n return () => {\r\n unsubscribe()\r\n }\r\n }, [])\r\n\r\n return <></>\r\n}\r\n\r\nexport interface IMfeLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\r\n routeKey?: string\r\n}\r\n\r\nexport const MfeLink = forwardRef<HTMLAnchorElement, IMfeLinkProps>(({ onClick, routeKey, ...props }, ref) => {\r\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\r\n if (onClick) {\r\n onClick(event)\r\n }\r\n if (event.defaultPrevented) {\r\n return // nothing to do if event already handled\r\n }\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore && !!routeKey) {\r\n event.preventDefault() // Prevent default link behavior\r\n event.stopPropagation() // Stop the event from bubbling up\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: 'Link clicked' } })\r\n }\r\n }\r\n return <a {...props} ref={ref} onClick={handleClick} />\r\n})\r\n\r\nexport const mfeNavigation = (routeKey: string) => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore) {\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: `Navigating to ${routeKey}` } })\r\n }\r\n}\r\n"],"names":["MfeNavigationEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getMfeNavigationEventStore","undefined","globalThis","_typeof","eventEmitter","setMaxListeners","MfeNavigationProvider","props","useEffect","eventStore","unsubscribe","subscribe","payload","navigation","routeKey","_jsx","MfeLink","forwardRef","_ref","ref","onClick","_objectWithoutProperties","_excluded","_objectSpread","event","defaultPrevented","preventDefault","stopPropagation","emit","options","message","mfeNavigation","concat"],"mappings":"wXAWaA,aACX,SAAAA,IAAA,IAAAC,EAiBC,OAjBDC,OAAAF,GACEC,EAAAE,EAAAC,KAAAJ,GAEFK,EAAAJ,EAMsB,uBAAA,SAACK,GACrB,OAAO,WACL,IACEA,EAAQC,WAAAC,EAAAA,UACT,CAAC,MAAOC,GACPC,QAAQD,MAAM,+BAAgCA,EAC/C,CACF,KACFR,CAfD,CAAC,OAAAU,EAAAX,EAH0CY,GAG1CC,EAAAb,EAAA,CAAA,CAAAc,IAAA,YAAAC,MAgBD,SACEC,EACAC,GAKqB,IAAAC,EAAAd,KAEfe,6DAAiBf,KAAKgB,oBAAoBH,GAAYA,EAE5D,OADAI,EAAArB,EAAkBgB,cAAAA,KAAlBK,CAAkBL,CAAAA,EAAWG,IACtB,WACLE,EAAArB,EAAA,iBAAAkB,EAAAG,CAAqBL,CAAAA,EAAWG,GACjC,CACH,IAAC,aAGaG,IACd,QAA0BC,KAAL,oBAAVC,WAAU,YAAAC,EAAVD,aAA0B,OAAO,UAEe,IAA/CA,WAAmBxB,0BAI3BwB,WAAmBxB,wBAA0B,IAAIA,GAErD,IAAM0B,EAAgBF,WAAmBxB,wBAEzC,OADA0B,EAAaC,gBAAgB,IACtBD,CACT,KAQaE,EAAyD,SAACC,GAgBrE,OAfAC,GAAU,WACR,IAAMC,EAAaT,IACnB,GAAKS,EAAL,CAEA,IAAMC,EAAcD,EAAWE,UAAU,cAAc,SAACC,GAClDL,EAAMM,YACRN,EAAMM,WAAWD,EAAQE,SAE7B,IAEA,OAAO,WACLJ,GACD,CAVgB,CAWlB,GAAE,IAEIK,OACT,EAMaC,EAAUC,GAA6C,SAAAC,EAAkCC,GAAO,IAAtCC,EAAOF,EAAPE,QAASN,EAAQI,EAARJ,SAAaP,EAAKc,EAAAH,EAAAI,GAehG,OAAOP,EAAA,IAAAQ,EAAAA,KAAOhB,GAAK,GAAA,CAAEY,IAAKA,EAAKC,QAdX,SAACI,GAInB,GAHIJ,GACFA,EAAQI,IAENA,EAAMC,iBAAV,CAGA,IAAMhB,EAAaT,IACfS,GAAgBK,IAClBU,EAAME,iBACNF,EAAMG,kBACNlB,EAAWmB,KAAK,aAAc,CAAEd,SAAUA,EAAUe,QAAS,CAAEC,QAAS,kBALzE,CAOF,IAEH,IAEaC,EAAgB,SAACjB,GAC5B,IAAML,EAAaT,IACfS,GACFA,EAAWmB,KAAK,aAAc,CAAEd,SAAUA,EAAUe,QAAS,CAAEC,QAAO,iBAAAE,OAAmBlB,KAE7F"}
@@ -0,0 +1,2 @@
1
+ import{inherits as r,createClass as t,objectSpread2 as e,classCallCheck as o,callSuper as n,defineProperty as a}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,Fragment as s}from"react/jsx-runtime";import{Component as u}from"react";import{ELazyStatus as l}from"./types.js";import c from"./ui.error-page.js";var p=function(r){var t=r.children;return i(s,{children:t})},d={LazySpinner:p},f=function(s,p){return function(){function f(r){var t;return o(this,f),t=n(this,f,[r]),a(t,"initialParam",(function(){var r,e,o,n=null!==(r=null==p?void 0:p.param)&&void 0!==r?r:{},a=null!==(e=null===(o=t.props)||void 0===o?void 0:o.param)&&void 0!==e?e:{};return Object.assign({},n,a)})),a(t,"componentDidMount",(function(){if(t.props.fetchData){var r,e=t.initialParam();null===(r=t.tokenSources)||void 0===r||r.abort(),t.tokenSources=new AbortController,t.fetchSource=t.props.fetchData(e,t.tokenSources.signal)}})),t.optionsMerge=Object.assign({},d,p),t}return r(f,u),t(f,[{key:"render",value:function(){var r=this.optionsMerge;switch(this.props.status){case l.Loading:case l.Loaded:return i(r.LazySpinner,{loading:this.props.status===l.Loading,children:i(s,e({},this.props))});case l.Error:var t=r.ErrorScreen||c;return i(t,{});default:return i("div",{})}}},{key:"componentWillUnmount",value:function(){var r,t;null===(r=this.tokenSources)||void 0===r||r.abort(),(null===(t=this.fetchSource)||void 0===t?void 0:t.abort)&&this.fetchSource.abort()}}])}()};export{p as EmptyComponent,f as default,d as defaultOptionHocLazy};
2
+ //# sourceMappingURL=create.hoc-lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.hoc-lazy.js","sources":["../../../src/redux/create.hoc-lazy.tsx"],"sourcesContent":["import React, { Component, ComponentType, PropsWithChildren } from 'react'\r\nimport { IErrorViewDefaultProps, IHocLazyWrapperProps } from './ui.units'\r\nimport { ELazyStatus, IDinoReduxDispatch, IDinoReduxState, IReturnDispatch } from './types'\r\nimport UIErrorPage from './ui.error-page'\r\n\r\nexport interface IHocLazyBase<T> extends IDinoReduxState, IDinoReduxDispatch<T> {}\r\n\r\nexport interface IHocLazyBaseOptions {\r\n ErrorScreen?: React.ComponentType<IErrorViewDefaultProps>\r\n LazySpinner: React.ComponentType<PropsWithChildren<IHocLazyWrapperProps>>\r\n}\r\n\r\nexport interface IHocLazyOtherProps<T> {\r\n param?: T\r\n}\r\n\r\nexport interface IHocLazyOptions<T> extends IHocLazyOtherProps<T>, Omit<IHocLazyBaseOptions, 'LazySpinner'> {\r\n LazySpinner?: React.ComponentType<PropsWithChildren<IHocLazyWrapperProps>>\r\n}\r\n\r\nexport const EmptyComponent: React.FC<React.PropsWithChildren<any>> = ({ children }) => <>{children}</>\r\n\r\nexport const defaultOptionHocLazy: IHocLazyBaseOptions = {\r\n LazySpinner: EmptyComponent\r\n}\r\n\r\nconst CreateHocLazy = function <P extends IHocLazyBase<T>, T = any>(\r\n ChildComponent: React.ComponentType<P>,\r\n options?: IHocLazyOptions<T>\r\n): ComponentType<P> {\r\n type TProps = P & IHocLazyOtherProps<T>\r\n class HocComponent extends Component<TProps> {\r\n optionsMerge: IHocLazyBaseOptions\r\n tokenSources?: AbortController\r\n fetchSource?: IReturnDispatch\r\n constructor(props: TProps) {\r\n super(props)\r\n this.optionsMerge = Object.assign({}, defaultOptionHocLazy, options) as IHocLazyBaseOptions\r\n }\r\n\r\n render() {\r\n const { optionsMerge: OptionsMerge } = this\r\n switch (this.props.status) {\r\n case ELazyStatus.Loading:\r\n case ELazyStatus.Loaded:\r\n return (\r\n <OptionsMerge.LazySpinner loading={this.props.status === ELazyStatus.Loading}>\r\n <ChildComponent {...this.props} />\r\n </OptionsMerge.LazySpinner>\r\n )\r\n case ELazyStatus.Error:\r\n const ErrorScreen = OptionsMerge.ErrorScreen || UIErrorPage\r\n return <ErrorScreen />\r\n default:\r\n return <div></div>\r\n }\r\n }\r\n\r\n initialParam = (): T => {\r\n const oData = options?.param ?? {}\r\n const pData = this.props?.param ?? {}\r\n return Object.assign({}, oData, pData) as T\r\n }\r\n\r\n componentDidMount = () => {\r\n if (this.props.fetchData) {\r\n const param = this.initialParam()\r\n this.tokenSources?.abort()\r\n this.tokenSources = new AbortController()\r\n this.fetchSource = this.props.fetchData(param, this.tokenSources.signal)\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.tokenSources?.abort()\r\n this.fetchSource?.abort && this.fetchSource.abort()\r\n }\r\n }\r\n return HocComponent\r\n}\r\nexport default CreateHocLazy\r\n"],"names":["EmptyComponent","_ref","children","_jsx","_Fragment","defaultOptionHocLazy","LazySpinner","CreateHocLazy","ChildComponent","options","HocComponent","props","_this","_classCallCheck","_callSuper","_defineProperty","_options$param","_this$props$param","_this$props","oData","param","pData","Object","assign","fetchData","_this$tokenSources","initialParam","tokenSources","abort","AbortController","fetchSource","signal","optionsMerge","_inherits","Component","_createClass","key","value","OptionsMerge","this","status","ELazyStatus","Loading","Loaded","loading","_objectSpread","Error","ErrorScreen","UIErrorPage","_this$tokenSources2","_this$fetchSource"],"mappings":"yUAoBaA,EAAyD,SAA3CC,GAAA,IAA8CC,EAAQD,EAARC,SAAQ,OAAOC,EAAGC,EAAA,CAAAF,SAAAA,GAAY,EAE1FG,EAA4C,CACvDC,YAAaN,GAGTO,EAAgB,SACpBC,EACAC,GAkDA,kBA3CE,SAAAC,EAAYC,GAAa,IAAAC,EAEoE,OAFpEC,OAAAH,GACvBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAAA,gBAsBC,WAAQ,IAAAI,EAAAC,EAAAC,EACfC,EAAsBH,QAAjBA,EAAGP,aAAO,EAAPA,EAASW,iBAAKJ,EAAAA,EAAI,CAAE,EAC5BK,EAAyB,QAApBJ,EAAa,QAAbC,EAAGN,EAAKD,aAALO,IAAUA,OAAVA,EAAAA,EAAYE,aAAKH,IAAAA,EAAAA,EAAI,CAAE,EACrC,OAAOK,OAAOC,OAAO,GAAIJ,EAAOE,MACjCN,EAAAH,EAAA,qBAEmB,WAClB,GAAIA,EAAKD,MAAMa,UAAW,CAAA,IAAAC,EAClBL,EAAQR,EAAKc,eACF,QAAjBD,EAAAb,EAAKe,oBAAY,IAAAF,GAAjBA,EAAmBG,QACnBhB,EAAKe,aAAe,IAAIE,gBACxBjB,EAAKkB,YAAclB,EAAKD,MAAMa,UAAUJ,EAAOR,EAAKe,aAAaI,OAClE,KAjCDnB,EAAKoB,aAAeV,OAAOC,OAAO,CAAE,EAAElB,EAAsBI,GAA+BG,CAC7F,CAAC,OAAAqB,EAAAvB,EAPwBwB,GAOxBC,EAAAzB,EAAA,CAAA,CAAA0B,IAAA,SAAAC,MAED,WACE,IAAsBC,EAAiBC,KAA/BP,aACR,OAAQO,KAAK5B,MAAM6B,QACjB,KAAKC,EAAYC,QACjB,KAAKD,EAAYE,OACf,OACExC,EAACmC,EAAahC,YAAY,CAAAsC,QAASL,KAAK5B,MAAM6B,SAAWC,EAAYC,QACnExC,SAAAC,EAACK,EAAcqC,EAAK,CAAA,EAAAN,KAAK5B,UAG/B,KAAK8B,EAAYK,MACf,IAAMC,EAAcT,EAAaS,aAAeC,EAChD,OAAO7C,EAAC4C,EAAW,IACrB,QACE,OAAO5C,YAEb,GAAC,CAAAiC,IAAA,uBAAAC,MAiBD,WAAoB,IAAAY,EAAAC,EACD,QAAjBD,EAAIV,KAACZ,oBAAY,IAAAsB,GAAjBA,EAAmBrB,SACH,QAAhBsB,EAAIX,KAACT,mBAALoB,IAAgBA,OAAhBA,EAAAA,EAAkBtB,QAASW,KAAKT,YAAYF,OAC9C,IAAC,GAGL"}
@@ -0,0 +1,2 @@
1
+ import{createClass as a,classCallCheck as e,defineProperty as r}from"../../_virtual/_rollupPluginBabelHelpers.js";import s from"./create.hoc-lazy.js";var l=new(a((function a(){e(this,a),r(this,"createHocLazy",s)})));export{l as default};
2
+ //# sourceMappingURL=dino.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dino.js","sources":["../../../src/redux/dino.ts"],"sourcesContent":["import CreateHocLazy from './create.hoc-lazy'\r\n\r\nclass DinoReduxBase {\r\n createHocLazy = CreateHocLazy\r\n}\r\n\r\nconst DinoRedux = new DinoReduxBase()\r\n\r\nexport default DinoRedux\r\n"],"names":["DinoRedux","_createClass","DinoReduxBase","_classCallCheck","_defineProperty","CreateHocLazy"],"mappings":"sJAA6C,IAMvCA,EAAY,IAJCC,GAAA,SAAAC,IAAAC,OAAAD,GAAAE,uBACDC,EAAa"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../src/redux/types.ts"],"sourcesContent":["export enum ELazyStatus {\r\n Loading = 'Loading',\r\n Loaded = 'Loaded',\r\n Error = 'Error'\r\n}\r\n\r\nexport interface IDinoReduxState {\r\n status: ELazyStatus\r\n requestedId?: string\r\n}\r\n\r\nexport interface IReturnDispatch {\r\n abort?: () => void\r\n}\r\n\r\nexport interface IDinoReduxDispatch<P = any> {\r\n fetchData?: (params?: P, signal?: AbortSignal) => IReturnDispatch\r\n setStatus: (status: ELazyStatus) => void\r\n}\r\n\r\nexport interface IBaseActions<T, Id extends keyof T> {\r\n create: (value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n update: (id: T[Id], value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n updatePatch: (oldValue: T, value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n delete: (id: T[Id], value?: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n}\r\n\r\nexport type IDinoReduxActions<T, Id extends keyof T, K extends keyof IBaseActions<T, Id> = keyof IBaseActions<T, Id>> = Pick<IBaseActions<T, Id>, K>\r\n"],"names":["ELazyStatus"],"mappings":"IAAYA,GAAZ,SAAYA,GACVA,EAAA,QAAA,UACAA,EAAA,OAAA,SACAA,EAAA,MAAA,OACD,CAJD,CAAYA,IAAAA,EAIX,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{objectWithoutProperties as t,objectSpread2 as o}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{styled as i,Box as n,Button as a,Stack as l,Typography as c}from"@mui/material";import m from"@mui/icons-material/ArrowRightAlt";var d=["children"],p=function(){return e(l,{sx:{alignItems:"center",paddingBottom:"64px"},children:[r(u,{children:r("img",{src:"images/vector-404.webp",alt:"error-404-vector"})}),r(c,{variant:"subtitle1",component:"p",sx:{textAlign:"center",mt:"20px"},children:"Sorry, page not found or connection to server lost. Please come back later...."}),r(h,{href:"/",children:"Back to home page"})]})},u=i((function(e){var i=e.children,a=t(e,d);return r(n,o(o({},a),{},{children:r("div",{children:i})}))}))({width:"100%",maxWidth:"560px",flex:"0 0 auto","& > div":{width:"100%",paddingBottom:"100%",position:"relative"},"& img":{position:"absolute",top:0,left:0,width:"100%",height:"100%"}}),h=i((function(t){return r(a,o({component:"a",color:"inherit",variant:"contained",size:"large",endIcon:r(m,{fontSize:"small"})},t))}))({backgroundColor:"var(--color-black)",color:"var(--color-text-light)",minWidth:"250px",marginTop:"24px",height:"56px",textTransform:"none",fontWeight:600,transition:"0.3s","&:hover":{backgroundColor:"var(--color-black2)",color:"var(--color-text-light)"},"& .MuiButton-icon.MuiButton-endIcon":{transition:"0.3s"},"&:hover .MuiButton-icon.MuiButton-endIcon":{marginLeft:"16px"}});export{p as default};
2
+ //# sourceMappingURL=ui.error-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.error-page.js","sources":["../../../src/redux/ui.error-page.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, Stack, styled, Typography } from '@mui/material'\r\nimport ArrowRightAltIcon from '@mui/icons-material/ArrowRightAlt'\r\n\r\nconst UIErrorPage: FC = () => (\r\n <Stack sx={{ alignItems: 'center', paddingBottom: '64px' }}>\r\n <WrapImage>\r\n <img src='images/vector-404.webp' alt='error-404-vector' />\r\n </WrapImage>\r\n <Typography variant='subtitle1' component='p' sx={{ textAlign: 'center', mt: '20px' }}>\r\n Sorry, page not found or connection to server lost. Please come back later....\r\n </Typography>\r\n <CustomButton href='/'>Back to home page</CustomButton>\r\n </Stack>\r\n)\r\nexport default UIErrorPage\r\n\r\nconst WrapImage = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n width: '100%',\r\n maxWidth: '560px',\r\n flex: '0 0 auto',\r\n '& > div': {\r\n width: '100%',\r\n paddingBottom: '100%',\r\n position: 'relative'\r\n },\r\n '& img': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n }\r\n})\r\n\r\nconst CustomButton = styled((p: ButtonProps & { href: string }) => {\r\n return <Button component='a' color='inherit' variant='contained' size='large' endIcon={<ArrowRightAltIcon fontSize='small' />} {...p} />\r\n})({\r\n backgroundColor: 'var(--color-black)',\r\n color: 'var(--color-text-light)',\r\n minWidth: '250px',\r\n marginTop: '24px',\r\n height: '56px',\r\n textTransform: 'none',\r\n fontWeight: 600,\r\n transition: '0.3s',\r\n '&:hover': {\r\n backgroundColor: 'var(--color-black2)',\r\n color: 'var(--color-text-light)'\r\n },\r\n '& .MuiButton-icon.MuiButton-endIcon': {\r\n transition: '0.3s'\r\n },\r\n '&:hover .MuiButton-icon.MuiButton-endIcon': {\r\n marginLeft: '16px'\r\n }\r\n})\r\n"],"names":["UIErrorPage","_jsxs","Stack","sx","alignItems","paddingBottom","children","_jsx","WrapImage","src","alt","Typography","variant","component","textAlign","mt","CustomButton","href","styled","_ref","props","_objectWithoutProperties","_excluded","Box","_objectSpread","width","maxWidth","flex","position","top","left","height","p","Button","color","size","endIcon","ArrowRightAltIcon","fontSize","backgroundColor","minWidth","marginTop","textTransform","fontWeight","transition","marginLeft"],"mappings":"sTAIMA,EAAkB,WAAP,OACfC,EAACC,EAAK,CAACC,GAAI,CAAEC,WAAY,SAAUC,cAAe,QAChDC,SAAA,CAAAC,EAACC,EACC,CAAAF,SAAAC,EAAA,MAAA,CAAKE,IAAI,yBAAyBC,IAAI,uBAExCH,EAACI,EAAU,CAACC,QAAQ,YAAYC,UAAU,IAAIV,GAAI,CAAEW,UAAW,SAAUC,GAAI,QAAQT,SAAA,mFAGrFC,EAACS,EAAa,CAAAC,KAAK,IAAoCX,SAAA,wBACjD,EAIJE,EAAYU,GAAO,SAAAC,GAAA,IAAGb,EAAQa,EAARb,SAAac,EAAKC,EAAAF,EAAAG,GAAA,OAC5Cf,EAACgB,EAAGC,EAAAA,KAAKJ,GAAK,GAAA,CAAAd,SACZC,EAAM,MAAA,CAAAD,SAAAA,MACF,GAHUY,CAIf,CACDO,MAAO,OACPC,SAAU,QACVC,KAAM,WACN,UAAW,CACTF,MAAO,OACPpB,cAAe,OACfuB,SAAU,YAEZ,QAAS,CACPA,SAAU,WACVC,IAAK,EACLC,KAAM,EACNL,MAAO,OACPM,OAAQ,UAINf,EAAeE,GAAO,SAACc,GAC3B,OAAOzB,EAAC0B,EAAMT,EAAA,CAACX,UAAU,IAAIqB,MAAM,UAAUtB,QAAQ,YAAYuB,KAAK,QAAQC,QAAS7B,EAAC8B,EAAiB,CAACC,SAAS,WAAgBN,GACrI,GAFqBd,CAElB,CACDqB,gBAAiB,qBACjBL,MAAO,0BACPM,SAAU,QACVC,UAAW,OACXV,OAAQ,OACRW,cAAe,OACfC,WAAY,IACZC,WAAY,OACZ,UAAW,CACTL,gBAAiB,sBACjBL,MAAO,2BAET,sCAAuC,CACrCU,WAAY,QAEd,4CAA6C,CAC3CC,WAAY"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../src/table/context.tsx"],"sourcesContent":["import React, { createContext } from 'react'\r\nimport { TCloseModal, TShowModal } from '../api-context'\r\n\r\nexport interface ITableBaseContext {\r\n showModal: TShowModal\r\n closeModal: TCloseModal\r\n}\r\n\r\nexport const TableBaseContext = createContext<ITableBaseContext>({\r\n showModal: () => {},\r\n closeModal: () => {}\r\n})\r\n\r\nexport const MapTableBaseContext = (context: (context: ITableBaseContext) => React.ReactNode) => (\r\n <TableBaseContext.Consumer>{context}</TableBaseContext.Consumer>\r\n)\r\n"],"names":["TableBaseContext","createContext","showModal","closeModal","MapTableBaseContext","context","_jsx","Consumer"],"mappings":"8EAQaA,IAAAA,EAAmBC,EAAiC,CAC/DC,UAAW,WAAQ,EACnBC,WAAY,WAAK,IAGNC,EAAsB,SAACC,GAAwD,OAC1FC,EAACN,EAAiBO,mBAAUF,GAAoC"}
@@ -0,0 +1,2 @@
1
+ import{inherits as r,createClass as e,objectSpread2 as t,classCallCheck as n,callSuper as o,defineProperty as i,regenerator as l}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a}from"react/jsx-runtime";import s,{Component as u}from"react";import{Box as c,Tooltip as p,IconButton as d}from"@mui/material";import f from"@mui/icons-material/Edit";import m from"@mui/icons-material/Delete";import{mergeObjects as v}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{MapTableBaseContext as g}from"./context.js";function h(h){var b=function(){function b(){var r;n(this,b);for(var e=arguments.length,u=new Array(e),c=0;c<e;c++)u[c]=arguments[c];return r=o(this,b,[].concat(u)),i(r,"getButtons",l().m((function r(e,n,o){var i,u,c,v,g,b,y,j,k,C,x,w,D,E;return l().w((function(r){for(;;)switch(r.n){case 0:if(!(k=null!==(i=null===(u=e.props)||void 0===u?void 0:u.before)&&void 0!==i?i:null==n?void 0:n.before)){r.n=1;break}return r.n=1,a(s.Fragment,{children:k(e.props.value,o)},"Before");case 1:if(C=null!==(c=null===(v=e.props)||void 0===v?void 0:v.formEdit)&&void 0!==c?c:null==n?void 0:n.formEdit,x=C?C(e.props.value,o):void 0,!C||!x){r.n=2;break}return r.n=2,a(p,{title:"Edit",arrow:!0,children:a(d,{color:"primary",onClick:function(){null==o||o.showModal(t({renderContent:function(){return x||a(s.Fragment,{})},sx:{display:"flex",justifyContent:"center",alignItems:"center"},backdropActivated:!0},null==h?void 0:h.buttonEditConfig))},children:a(f,{fontSize:"small"})})},"Edit");case 2:if(w=null!==(g=null===(b=e.props)||void 0===b?void 0:b.formDelete)&&void 0!==g?g:null==n?void 0:n.formDelete,D=w?w(e.props.value,o):void 0,!w||!D){r.n=3;break}return r.n=3,a(p,{title:"Delete",arrow:!0,children:a(d,{color:"error",onClick:function(){null==o||o.showModal(t({renderContent:function(){return D||a(s.Fragment,{})},sx:{display:"flex",justifyContent:"center",alignItems:"center"},backdropActivated:!0},null==h?void 0:h.buttonDeleteConfig))},children:a(m,{fontSize:"small"})})},"Delete");case 3:if(!(E=null!==(y=null===(j=e.props)||void 0===j?void 0:j.after)&&void 0!==y?y:null==n?void 0:n.after)){r.n=4;break}return r.n=4,a(s.Fragment,{children:E(e.props.value,o)},"After");case 4:return r.a(2)}}),r)}))),r}return r(b,u),e(b,[{key:"propsMerge",get:function(){return v(h,this.props)}},{key:"render",value:function(){var r=this;return g((function(e){return a(c,t(t({sx:{display:"flex",alignItems:"center",height:"100%"}},r.propsMerge.wrapProps),{},{children:Array.from(r.getButtons(r,r.propsMerge,e))}))}))}}])}();return b}export{h as default};
2
+ //# sourceMappingURL=create.action-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.action-row.js","sources":["../../../src/table/create.action-row.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, IconButton, Tooltip } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport DeleteIcon from '@mui/icons-material/Delete'\r\nimport { mergeObjects } from '../utils'\r\nimport { GlobalModalState } from '../api-context'\r\nimport { ITableBaseContext, MapTableBaseContext } from './context'\r\n\r\nexport interface IActionRowProps<T> {\r\n value: T\r\n formEdit?: (value: T, tableContext: ITableBaseContext) => React.ReactNode\r\n formDelete?: (value: T, tableContext: ITableBaseContext) => React.ReactNode\r\n after?: (value: T, tableContext: ITableBaseContext) => React.ReactNode\r\n before?: (value: T, tableContext: ITableBaseContext) => React.ReactNode\r\n wrapProps?: BoxProps\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n}\r\n\r\nfunction CreateActionRow<T>(params?: Omit<IActionRowProps<T>, 'value'>): ComponentType<IActionRowProps<T>> {\r\n class ActionRow extends Component<IActionRowProps<T>> {\r\n get propsMerge() {\r\n return mergeObjects<IActionRowProps<T>>(params, this.props)\r\n }\r\n\r\n getButtons = function* (that: ActionRow, thatProps: Omit<IActionRowProps<T>, 'value'>, tableContext: ITableBaseContext) {\r\n const beforeFunc = that.props?.before ?? thatProps?.before\r\n if (beforeFunc) {\r\n yield <React.Fragment key='Before'>{beforeFunc(that.props.value, tableContext)}</React.Fragment>\r\n }\r\n const editFunc = that.props?.formEdit ?? thatProps?.formEdit\r\n const editContent = editFunc ? editFunc(that.props.value, tableContext) : undefined\r\n if (editFunc && !!editContent) {\r\n yield (\r\n <Tooltip title='Edit' arrow key='Edit'>\r\n <IconButton\r\n color='primary'\r\n onClick={() => {\r\n tableContext?.showModal({\r\n renderContent: () => editContent || <React.Fragment />,\r\n sx: { display: 'flex', justifyContent: 'center', alignItems: 'center' },\r\n backdropActivated: true,\r\n ...params?.buttonEditConfig\r\n })\r\n }}\r\n >\r\n <EditIcon fontSize='small' />\r\n </IconButton>\r\n </Tooltip>\r\n )\r\n }\r\n const deleteFunc = that.props?.formDelete ?? thatProps?.formDelete\r\n const deleteContent = deleteFunc ? deleteFunc(that.props.value, tableContext) : undefined\r\n if (deleteFunc && !!deleteContent) {\r\n yield (\r\n <Tooltip title='Delete' arrow key='Delete'>\r\n <IconButton\r\n color='error'\r\n onClick={() => {\r\n tableContext?.showModal({\r\n renderContent: () => deleteContent || <React.Fragment />,\r\n sx: { display: 'flex', justifyContent: 'center', alignItems: 'center' },\r\n backdropActivated: true,\r\n ...params?.buttonDeleteConfig\r\n })\r\n }}\r\n >\r\n <DeleteIcon fontSize='small' />\r\n </IconButton>\r\n </Tooltip>\r\n )\r\n }\r\n const afterFunc = that.props?.after ?? thatProps?.after\r\n if (afterFunc) {\r\n yield <React.Fragment key='After'>{afterFunc(that.props.value, tableContext)}</React.Fragment>\r\n }\r\n }\r\n\r\n render() {\r\n return MapTableBaseContext((context) => (\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%' }} {...this.propsMerge.wrapProps}>\r\n {Array.from(this.getButtons(this, this.propsMerge, context))}\r\n </Box>\r\n ))\r\n }\r\n }\r\n\r\n return ActionRow\r\n}\r\nexport default CreateActionRow\r\n"],"names":["CreateActionRow","params","ActionRow","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_regenerator","m","_callee","that","thatProps","tableContext","_that$props$before","_that$props","_that$props$formEdit","_that$props2","_that$props$formDelet","_that$props3","_that$props$after","_that$props4","beforeFunc","editFunc","editContent","deleteFunc","deleteContent","afterFunc","w","_context","n","props","before","_jsx","React","Fragment","children","value","formEdit","undefined","Tooltip","title","arrow","IconButton","color","onClick","showModal","_objectSpread","renderContent","sx","display","justifyContent","alignItems","backdropActivated","buttonEditConfig","EditIcon","fontSize","formDelete","buttonDeleteConfig","DeleteIcon","after","a","_inherits","Component","_createClass","key","get","mergeObjects","_this2","MapTableBaseContext","context","Box","height","propsMerge","wrapProps","from","getButtons"],"mappings":"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"}