@wix/auto-patterns 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/dist/cjs/components/AutoPatternsApp/AutoPatternsApp.js +10 -25
  2. package/dist/cjs/components/AutoPatternsApp/AutoPatternsApp.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +11 -25
  4. package/dist/cjs/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  5. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +3 -2
  6. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  7. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +255 -77
  8. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  9. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateInput.js +66 -21
  10. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
  11. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js +100 -29
  12. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  13. package/dist/cjs/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +9 -4
  14. package/dist/cjs/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
  15. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ImageInput.js +83 -0
  16. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -0
  17. package/dist/cjs/components/AutoPatternsEntityPage/Fields/LongText.js +34 -6
  18. package/dist/cjs/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
  19. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Number.js +49 -6
  20. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
  21. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ShortText.js +48 -6
  22. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
  23. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Url.js +47 -34
  24. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
  25. package/dist/cjs/components/AutoPatternsEntityPage/Fields/types.js.map +1 -1
  26. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js +8 -10
  27. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  28. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsRoutes.js +84 -0
  29. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsRoutes.js.map +1 -0
  30. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js +8 -10
  31. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  32. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js +7 -8
  33. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js.map +1 -1
  34. package/dist/cjs/components/DynamicIcon.js +71 -0
  35. package/dist/cjs/components/DynamicIcon.js.map +1 -0
  36. package/dist/cjs/components/ModalRenderer.js +40 -0
  37. package/dist/cjs/components/ModalRenderer.js.map +1 -0
  38. package/dist/cjs/components/filters/DynamicCollectionFilter.js +63 -0
  39. package/dist/cjs/components/filters/DynamicCollectionFilter.js.map +1 -0
  40. package/dist/cjs/components/filters/StaticCollectionFilter.js +31 -0
  41. package/dist/cjs/components/filters/StaticCollectionFilter.js.map +1 -0
  42. package/dist/cjs/components/filters/index.js +9 -0
  43. package/dist/cjs/components/filters/index.js.map +1 -0
  44. package/dist/cjs/components/modals/actions/BulkDeleteModal.js +97 -0
  45. package/dist/cjs/components/modals/actions/BulkDeleteModal.js.map +1 -0
  46. package/dist/cjs/components/modals/actions/CreateModal.js +138 -0
  47. package/dist/cjs/components/modals/actions/CreateModal.js.map +1 -0
  48. package/dist/cjs/components/modals/actions/EditModal.js +140 -0
  49. package/dist/cjs/components/modals/actions/EditModal.js.map +1 -0
  50. package/dist/cjs/components/modals/actions/index.js +22 -0
  51. package/dist/cjs/components/modals/actions/index.js.map +1 -0
  52. package/dist/cjs/{collectionData/CollectionData.js → components/modals/actions/types.js} +1 -1
  53. package/dist/cjs/components/modals/actions/types.js.map +1 -0
  54. package/dist/cjs/components/modals/index.js +10 -0
  55. package/dist/cjs/components/modals/index.js.map +1 -0
  56. package/dist/cjs/{collectionData/cms/CmsCollectionData.js → dataSourceAdapters/cms/cmsAdapter.js} +58 -18
  57. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -0
  58. package/dist/cjs/{collectionData → dataSourceAdapters}/cms/filterUtils.js +18 -11
  59. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -0
  60. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js.map +1 -0
  61. package/dist/cjs/dataSourceAdapters/constants.js.map +1 -0
  62. package/dist/cjs/dataSourceAdapters/factory.js +34 -0
  63. package/dist/cjs/dataSourceAdapters/factory.js.map +1 -0
  64. package/dist/cjs/exports/form.js +10 -0
  65. package/dist/cjs/exports/form.js.map +1 -0
  66. package/dist/cjs/hooks/index.js +18 -0
  67. package/dist/cjs/hooks/index.js.map +1 -1
  68. package/dist/cjs/hooks/useActionCell.js +107 -0
  69. package/dist/cjs/hooks/useActionCell.js.map +1 -0
  70. package/dist/cjs/hooks/useActionsSDK.js +34 -0
  71. package/dist/cjs/hooks/useActionsSDK.js.map +1 -0
  72. package/dist/cjs/hooks/useAutoPatternsOptimisticActions.js +25 -0
  73. package/dist/cjs/hooks/useAutoPatternsOptimisticActions.js.map +1 -0
  74. package/dist/cjs/hooks/useBaseSDK.js +35 -0
  75. package/dist/cjs/hooks/useBaseSDK.js.map +1 -0
  76. package/dist/cjs/hooks/useBulkActionToolbar.js +86 -0
  77. package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -0
  78. package/dist/cjs/hooks/useCollectionPageActions.js +124 -0
  79. package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -0
  80. package/dist/cjs/hooks/useColumns.js +90 -37
  81. package/dist/cjs/hooks/useColumns.js.map +1 -1
  82. package/dist/cjs/hooks/useCommonCollectionFeatures.js +24 -35
  83. package/dist/cjs/hooks/useCommonCollectionFeatures.js.map +1 -1
  84. package/dist/cjs/hooks/useEntityPageHeaderTexts.js +27 -0
  85. package/dist/cjs/hooks/useEntityPageHeaderTexts.js.map +1 -0
  86. package/dist/cjs/hooks/useFetchData.js +33 -9
  87. package/dist/cjs/hooks/useFetchData.js.map +1 -1
  88. package/dist/cjs/hooks/useFilters.js +83 -92
  89. package/dist/cjs/hooks/useFilters.js.map +1 -1
  90. package/dist/cjs/hooks/useGridFeatures.js +32 -21
  91. package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
  92. package/dist/cjs/hooks/useNavigationUtils.js +55 -0
  93. package/dist/cjs/hooks/useNavigationUtils.js.map +1 -0
  94. package/dist/cjs/hooks/usePagePath.js +35 -0
  95. package/dist/cjs/hooks/usePagePath.js.map +1 -0
  96. package/dist/cjs/hooks/useTableFeatures.js +23 -15
  97. package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
  98. package/dist/cjs/providers/AppConfigContext.js +33 -0
  99. package/dist/cjs/providers/AppConfigContext.js.map +1 -0
  100. package/dist/cjs/providers/ModalContext.js +58 -0
  101. package/dist/cjs/providers/ModalContext.js.map +1 -0
  102. package/dist/cjs/providers/OptimisticActionsContext.js +43 -0
  103. package/dist/cjs/providers/OptimisticActionsContext.js.map +1 -0
  104. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  105. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  106. package/dist/cjs/providers/RootAppProvider.js +48 -0
  107. package/dist/cjs/providers/RootAppProvider.js.map +1 -0
  108. package/dist/cjs/providers/SchemaContext.js +49 -5
  109. package/dist/cjs/providers/SchemaContext.js.map +1 -1
  110. package/dist/cjs/providers/SchemaRegistryContext.js +49 -0
  111. package/dist/cjs/providers/SchemaRegistryContext.js.map +1 -0
  112. package/dist/cjs/providers/index.js +22 -4
  113. package/dist/cjs/providers/index.js.map +1 -1
  114. package/dist/cjs/types/BaseSDK.js +4 -0
  115. package/dist/cjs/types/BaseSDK.js.map +1 -0
  116. package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
  117. package/dist/cjs/types/EntityPageConfig.js.map +1 -1
  118. package/dist/cjs/types/actions/actionCell.js +4 -0
  119. package/dist/cjs/types/actions/actionCell.js.map +1 -0
  120. package/dist/cjs/types/actions/base.js +4 -0
  121. package/dist/cjs/types/actions/base.js.map +1 -0
  122. package/dist/cjs/types/actions/bulkActions.js +4 -0
  123. package/dist/cjs/types/actions/bulkActions.js.map +1 -0
  124. package/dist/cjs/types/actions/collectionPageActions.js +4 -0
  125. package/dist/cjs/types/actions/collectionPageActions.js.map +1 -0
  126. package/dist/cjs/types/actions/index.js +28 -0
  127. package/dist/cjs/types/actions/index.js.map +1 -0
  128. package/dist/cjs/types/index.js +18 -0
  129. package/dist/cjs/types/index.js.map +1 -1
  130. package/dist/cjs/types/types.js.map +1 -1
  131. package/dist/cjs/utils/actions/bulkDeleteAction.js +26 -0
  132. package/dist/cjs/utils/actions/bulkDeleteAction.js.map +1 -0
  133. package/dist/cjs/utils/actions/createAction.js +38 -0
  134. package/dist/cjs/utils/actions/createAction.js.map +1 -0
  135. package/dist/cjs/utils/actions/customAction.js +23 -0
  136. package/dist/cjs/utils/actions/customAction.js.map +1 -0
  137. package/dist/cjs/utils/actions/customModalAction.js +22 -0
  138. package/dist/cjs/utils/actions/customModalAction.js.map +1 -0
  139. package/dist/cjs/utils/actions/deleteAction.js +63 -0
  140. package/dist/cjs/utils/actions/deleteAction.js.map +1 -0
  141. package/dist/cjs/utils/actions/index.js +46 -0
  142. package/dist/cjs/utils/actions/index.js.map +1 -0
  143. package/dist/cjs/utils/actions/resolveAction.js +27 -0
  144. package/dist/cjs/utils/actions/resolveAction.js.map +1 -0
  145. package/dist/cjs/utils/actions/types.js +4 -0
  146. package/dist/cjs/utils/actions/types.js.map +1 -0
  147. package/dist/cjs/utils/actions/updateAction.js +40 -0
  148. package/dist/cjs/utils/actions/updateAction.js.map +1 -0
  149. package/dist/cjs/utils/filterCreators.js +137 -0
  150. package/dist/cjs/utils/filterCreators.js.map +1 -0
  151. package/dist/cjs/utils/media/getImageUrl.js +22 -0
  152. package/dist/cjs/utils/media/getImageUrl.js.map +1 -0
  153. package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js +6 -14
  154. package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js.map +1 -1
  155. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js +6 -5
  156. package/dist/esm/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.js.map +1 -1
  157. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -0
  158. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  159. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +168 -40
  160. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  161. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js +66 -21
  162. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
  163. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +96 -25
  164. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  165. package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +9 -4
  166. package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
  167. package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js +64 -0
  168. package/dist/esm/components/AutoPatternsEntityPage/Fields/ImageInput.js.map +1 -0
  169. package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js +33 -5
  170. package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
  171. package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js +48 -5
  172. package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
  173. package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js +48 -6
  174. package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
  175. package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js +43 -27
  176. package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
  177. package/dist/esm/components/AutoPatternsEntityPage/Fields/types.js.map +1 -1
  178. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js +5 -6
  179. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  180. package/dist/esm/components/AutoPatternsRoute/AutoPatternsRoutes.js +47 -0
  181. package/dist/esm/components/AutoPatternsRoute/AutoPatternsRoutes.js.map +1 -0
  182. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js +5 -6
  183. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  184. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js +9 -10
  185. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js.map +1 -1
  186. package/dist/esm/components/DynamicIcon.js +33 -0
  187. package/dist/esm/components/DynamicIcon.js.map +1 -0
  188. package/dist/esm/components/ModalRenderer.js +25 -0
  189. package/dist/esm/components/ModalRenderer.js.map +1 -0
  190. package/dist/esm/components/filters/DynamicCollectionFilter.js +50 -0
  191. package/dist/esm/components/filters/DynamicCollectionFilter.js.map +1 -0
  192. package/dist/esm/components/filters/StaticCollectionFilter.js +18 -0
  193. package/dist/esm/components/filters/StaticCollectionFilter.js.map +1 -0
  194. package/dist/esm/components/filters/index.js +3 -0
  195. package/dist/esm/components/filters/index.js.map +1 -0
  196. package/dist/esm/components/modals/actions/BulkDeleteModal.js +59 -0
  197. package/dist/esm/components/modals/actions/BulkDeleteModal.js.map +1 -0
  198. package/dist/esm/components/modals/actions/CreateModal.js +80 -0
  199. package/dist/esm/components/modals/actions/CreateModal.js.map +1 -0
  200. package/dist/esm/components/modals/actions/EditModal.js +82 -0
  201. package/dist/esm/components/modals/actions/EditModal.js.map +1 -0
  202. package/dist/esm/components/modals/actions/index.js +4 -0
  203. package/dist/esm/components/modals/actions/index.js.map +1 -0
  204. package/dist/esm/components/modals/actions/types.js +2 -0
  205. package/dist/esm/components/modals/actions/types.js.map +1 -0
  206. package/dist/esm/components/modals/index.js +2 -0
  207. package/dist/esm/components/modals/index.js.map +1 -0
  208. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +132 -0
  209. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -0
  210. package/dist/esm/{collectionData → dataSourceAdapters}/cms/filterUtils.js +18 -11
  211. package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -0
  212. package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -0
  213. package/dist/esm/dataSourceAdapters/constants.js.map +1 -0
  214. package/dist/esm/dataSourceAdapters/factory.js +30 -0
  215. package/dist/esm/dataSourceAdapters/factory.js.map +1 -0
  216. package/dist/esm/exports/form.js +2 -0
  217. package/dist/esm/exports/form.js.map +1 -0
  218. package/dist/esm/hooks/index.js +3 -0
  219. package/dist/esm/hooks/index.js.map +1 -1
  220. package/dist/esm/hooks/useActionCell.js +103 -0
  221. package/dist/esm/hooks/useActionCell.js.map +1 -0
  222. package/dist/esm/hooks/useActionsSDK.js +30 -0
  223. package/dist/esm/hooks/useActionsSDK.js.map +1 -0
  224. package/dist/esm/hooks/useAutoPatternsOptimisticActions.js +23 -0
  225. package/dist/esm/hooks/useAutoPatternsOptimisticActions.js.map +1 -0
  226. package/dist/esm/hooks/useBaseSDK.js +30 -0
  227. package/dist/esm/hooks/useBaseSDK.js.map +1 -0
  228. package/dist/esm/hooks/useBulkActionToolbar.js +73 -0
  229. package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -0
  230. package/dist/esm/hooks/useCollectionPageActions.js +101 -0
  231. package/dist/esm/hooks/useCollectionPageActions.js.map +1 -0
  232. package/dist/esm/hooks/useColumns.js +70 -38
  233. package/dist/esm/hooks/useColumns.js.map +1 -1
  234. package/dist/esm/hooks/useCommonCollectionFeatures.js +20 -24
  235. package/dist/esm/hooks/useCommonCollectionFeatures.js.map +1 -1
  236. package/dist/esm/hooks/useEntityPageHeaderTexts.js +23 -0
  237. package/dist/esm/hooks/useEntityPageHeaderTexts.js.map +1 -0
  238. package/dist/esm/hooks/useFetchData.js +34 -10
  239. package/dist/esm/hooks/useFetchData.js.map +1 -1
  240. package/dist/esm/hooks/useFilters.js +75 -85
  241. package/dist/esm/hooks/useFilters.js.map +1 -1
  242. package/dist/esm/hooks/useGridFeatures.js +32 -21
  243. package/dist/esm/hooks/useGridFeatures.js.map +1 -1
  244. package/dist/esm/hooks/useNavigationUtils.js +51 -0
  245. package/dist/esm/hooks/useNavigationUtils.js.map +1 -0
  246. package/dist/esm/hooks/usePagePath.js +30 -0
  247. package/dist/esm/hooks/usePagePath.js.map +1 -0
  248. package/dist/esm/hooks/useTableFeatures.js +20 -13
  249. package/dist/esm/hooks/useTableFeatures.js.map +1 -1
  250. package/dist/esm/providers/AppConfigContext.js +19 -0
  251. package/dist/esm/providers/AppConfigContext.js.map +1 -0
  252. package/dist/esm/providers/ModalContext.js +37 -0
  253. package/dist/esm/providers/ModalContext.js.map +1 -0
  254. package/dist/esm/providers/OptimisticActionsContext.js +29 -0
  255. package/dist/esm/providers/OptimisticActionsContext.js.map +1 -0
  256. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  257. package/dist/esm/providers/RootAppProvider.js +15 -0
  258. package/dist/esm/providers/RootAppProvider.js.map +1 -0
  259. package/dist/esm/providers/SchemaContext.js +48 -4
  260. package/dist/esm/providers/SchemaContext.js.map +1 -1
  261. package/dist/esm/providers/SchemaRegistryContext.js +35 -0
  262. package/dist/esm/providers/SchemaRegistryContext.js.map +1 -0
  263. package/dist/esm/providers/index.js +4 -1
  264. package/dist/esm/providers/index.js.map +1 -1
  265. package/dist/esm/types/BaseSDK.js +2 -0
  266. package/dist/esm/types/BaseSDK.js.map +1 -0
  267. package/dist/esm/types/CollectionPageConfig.js.map +1 -1
  268. package/dist/esm/types/EntityPageConfig.js.map +1 -1
  269. package/dist/esm/types/actions/actionCell.js +2 -0
  270. package/dist/esm/types/actions/actionCell.js.map +1 -0
  271. package/dist/esm/types/actions/base.js +2 -0
  272. package/dist/esm/types/actions/base.js.map +1 -0
  273. package/dist/esm/types/actions/bulkActions.js +2 -0
  274. package/dist/esm/types/actions/bulkActions.js.map +1 -0
  275. package/dist/esm/types/actions/collectionPageActions.js +2 -0
  276. package/dist/esm/types/actions/collectionPageActions.js.map +1 -0
  277. package/dist/esm/types/actions/index.js +5 -0
  278. package/dist/esm/types/actions/index.js.map +1 -0
  279. package/dist/esm/types/index.js +3 -0
  280. package/dist/esm/types/index.js.map +1 -1
  281. package/dist/esm/types/types.js.map +1 -1
  282. package/dist/esm/utils/actions/bulkDeleteAction.js +21 -0
  283. package/dist/esm/utils/actions/bulkDeleteAction.js.map +1 -0
  284. package/dist/esm/utils/actions/createAction.js +33 -0
  285. package/dist/esm/utils/actions/createAction.js.map +1 -0
  286. package/dist/esm/utils/actions/customAction.js +18 -0
  287. package/dist/esm/utils/actions/customAction.js.map +1 -0
  288. package/dist/esm/utils/actions/customModalAction.js +17 -0
  289. package/dist/esm/utils/actions/customModalAction.js.map +1 -0
  290. package/dist/esm/utils/actions/deleteAction.js +58 -0
  291. package/dist/esm/utils/actions/deleteAction.js.map +1 -0
  292. package/dist/esm/utils/actions/index.js +9 -0
  293. package/dist/esm/utils/actions/index.js.map +1 -0
  294. package/dist/esm/utils/actions/resolveAction.js +13 -0
  295. package/dist/esm/utils/actions/resolveAction.js.map +1 -0
  296. package/dist/esm/utils/actions/types.js +2 -0
  297. package/dist/esm/utils/actions/types.js.map +1 -0
  298. package/dist/esm/utils/actions/updateAction.js +35 -0
  299. package/dist/esm/utils/actions/updateAction.js.map +1 -0
  300. package/dist/esm/utils/filterCreators.js +139 -0
  301. package/dist/esm/utils/filterCreators.js.map +1 -0
  302. package/dist/esm/utils/media/getImageUrl.js +16 -0
  303. package/dist/esm/utils/media/getImageUrl.js.map +1 -0
  304. package/dist/types/components/AutoPatternsApp/AutoPatternsApp.d.ts +2 -2
  305. package/dist/types/components/AutoPatternsApp/AutoPatternsApp.d.ts.map +1 -1
  306. package/dist/types/components/AutoPatternsCollectionPage/AutoPatternsCollectionPage.d.ts.map +1 -1
  307. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  308. package/dist/types/components/AutoPatternsEntityPage/AutoPatternsEntityPage.d.ts.map +1 -1
  309. package/dist/types/components/AutoPatternsEntityPage/Fields/Checkbox.d.ts.map +1 -1
  310. package/dist/types/components/AutoPatternsEntityPage/Fields/DateInput.d.ts.map +1 -1
  311. package/dist/types/components/AutoPatternsEntityPage/Fields/DateTime.d.ts.map +1 -1
  312. package/dist/types/components/AutoPatternsEntityPage/Fields/FormFieldInput.d.ts +3 -1
  313. package/dist/types/components/AutoPatternsEntityPage/Fields/FormFieldInput.d.ts.map +1 -1
  314. package/dist/types/components/AutoPatternsEntityPage/Fields/ImageInput.d.ts +6 -0
  315. package/dist/types/components/AutoPatternsEntityPage/Fields/ImageInput.d.ts.map +1 -0
  316. package/dist/types/components/AutoPatternsEntityPage/Fields/LongText.d.ts.map +1 -1
  317. package/dist/types/components/AutoPatternsEntityPage/Fields/Number.d.ts.map +1 -1
  318. package/dist/types/components/AutoPatternsEntityPage/Fields/ShortText.d.ts.map +1 -1
  319. package/dist/types/components/AutoPatternsEntityPage/Fields/Url.d.ts.map +1 -1
  320. package/dist/types/components/AutoPatternsEntityPage/Fields/types.d.ts +2 -0
  321. package/dist/types/components/AutoPatternsEntityPage/Fields/types.d.ts.map +1 -1
  322. package/dist/types/components/AutoPatternsEntityPage/Fields/utils/dates.d.ts.map +1 -1
  323. package/dist/types/components/AutoPatternsGrid/AutoPatternsGrid.d.ts.map +1 -1
  324. package/dist/types/components/AutoPatternsGrid/AutoPatternsGridContent.d.ts.map +1 -1
  325. package/dist/types/components/AutoPatternsRoute/AutoPatternsPage.d.ts.map +1 -1
  326. package/dist/types/components/AutoPatternsRoute/AutoPatternsRoutes.d.ts +6 -0
  327. package/dist/types/components/AutoPatternsRoute/AutoPatternsRoutes.d.ts.map +1 -0
  328. package/dist/types/components/AutoPatternsTable/AutoPatternsTable.d.ts.map +1 -1
  329. package/dist/types/components/AutoPatternsTable/AutoPatternsTableContent.d.ts.map +1 -1
  330. package/dist/types/components/DynamicIcon.d.ts +6 -0
  331. package/dist/types/components/DynamicIcon.d.ts.map +1 -0
  332. package/dist/types/components/ModalRenderer.d.ts +3 -0
  333. package/dist/types/components/ModalRenderer.d.ts.map +1 -0
  334. package/dist/types/components/filters/DynamicCollectionFilter.d.ts +12 -0
  335. package/dist/types/components/filters/DynamicCollectionFilter.d.ts.map +1 -0
  336. package/dist/types/components/filters/StaticCollectionFilter.d.ts +14 -0
  337. package/dist/types/components/filters/StaticCollectionFilter.d.ts.map +1 -0
  338. package/dist/types/components/filters/index.d.ts +3 -0
  339. package/dist/types/components/filters/index.d.ts.map +1 -0
  340. package/dist/types/components/modals/actions/BulkDeleteModal.d.ts +9 -0
  341. package/dist/types/components/modals/actions/BulkDeleteModal.d.ts.map +1 -0
  342. package/dist/types/components/modals/actions/CreateModal.d.ts +8 -0
  343. package/dist/types/components/modals/actions/CreateModal.d.ts.map +1 -0
  344. package/dist/types/components/modals/actions/EditModal.d.ts +11 -0
  345. package/dist/types/components/modals/actions/EditModal.d.ts.map +1 -0
  346. package/dist/types/components/modals/actions/index.d.ts +4 -0
  347. package/dist/types/components/modals/actions/index.d.ts.map +1 -0
  348. package/dist/types/components/modals/actions/types.d.ts +7 -0
  349. package/dist/types/components/modals/actions/types.d.ts.map +1 -0
  350. package/dist/types/components/modals/index.d.ts +2 -0
  351. package/dist/types/components/modals/index.d.ts.map +1 -0
  352. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts +14 -0
  353. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -0
  354. package/dist/types/{collectionData → dataSourceAdapters}/cms/filterUtils.d.ts +3 -2
  355. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -0
  356. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts.map +1 -0
  357. package/dist/types/dataSourceAdapters/constants.d.ts.map +1 -0
  358. package/dist/types/dataSourceAdapters/factory.d.ts +13 -0
  359. package/dist/types/dataSourceAdapters/factory.d.ts.map +1 -0
  360. package/dist/types/exports/form.d.ts +2 -0
  361. package/dist/types/exports/form.d.ts.map +1 -0
  362. package/dist/types/hooks/index.d.ts +3 -0
  363. package/dist/types/hooks/index.d.ts.map +1 -1
  364. package/dist/types/hooks/useActionCell.d.ts +9 -0
  365. package/dist/types/hooks/useActionCell.d.ts.map +1 -0
  366. package/dist/types/hooks/useActionsSDK.d.ts +6 -0
  367. package/dist/types/hooks/useActionsSDK.d.ts.map +1 -0
  368. package/dist/types/hooks/useAutoPatternsOptimisticActions.d.ts +3 -0
  369. package/dist/types/hooks/useAutoPatternsOptimisticActions.d.ts.map +1 -0
  370. package/dist/types/hooks/useBaseSDK.d.ts +3 -0
  371. package/dist/types/hooks/useBaseSDK.d.ts.map +1 -0
  372. package/dist/types/hooks/useBulkActionToolbar.d.ts +10 -0
  373. package/dist/types/hooks/useBulkActionToolbar.d.ts.map +1 -0
  374. package/dist/types/hooks/useCollectionPageActions.d.ts +10 -0
  375. package/dist/types/hooks/useCollectionPageActions.d.ts.map +1 -0
  376. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  377. package/dist/types/hooks/useCommonCollectionFeatures.d.ts +9 -9
  378. package/dist/types/hooks/useCommonCollectionFeatures.d.ts.map +1 -1
  379. package/dist/types/hooks/useEmptyStates.d.ts.map +1 -1
  380. package/dist/types/hooks/useEntityPageHeaderTexts.d.ts +18 -0
  381. package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -0
  382. package/dist/types/hooks/useFetchData.d.ts +6 -2
  383. package/dist/types/hooks/useFetchData.d.ts.map +1 -1
  384. package/dist/types/hooks/useFilters.d.ts +5 -1
  385. package/dist/types/hooks/useFilters.d.ts.map +1 -1
  386. package/dist/types/hooks/useGridFeatures.d.ts +3 -8
  387. package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
  388. package/dist/types/hooks/useNavigationUtils.d.ts +10 -0
  389. package/dist/types/hooks/useNavigationUtils.d.ts.map +1 -0
  390. package/dist/types/hooks/usePagePath.d.ts +5 -0
  391. package/dist/types/hooks/usePagePath.d.ts.map +1 -0
  392. package/dist/types/hooks/useTableFeatures.d.ts +3 -7
  393. package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
  394. package/dist/types/providers/AppConfigContext.d.ts +8 -0
  395. package/dist/types/providers/AppConfigContext.d.ts.map +1 -0
  396. package/dist/types/providers/ModalContext.d.ts +20 -0
  397. package/dist/types/providers/ModalContext.d.ts.map +1 -0
  398. package/dist/types/providers/OptimisticActionsContext.d.ts +12 -0
  399. package/dist/types/providers/OptimisticActionsContext.d.ts.map +1 -0
  400. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +5 -4
  401. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  402. package/dist/types/providers/RootAppProvider.d.ts +7 -0
  403. package/dist/types/providers/RootAppProvider.d.ts.map +1 -0
  404. package/dist/types/providers/SchemaContext.d.ts.map +1 -1
  405. package/dist/types/providers/SchemaRegistryContext.d.ts +13 -0
  406. package/dist/types/providers/SchemaRegistryContext.d.ts.map +1 -0
  407. package/dist/types/providers/index.d.ts +4 -1
  408. package/dist/types/providers/index.d.ts.map +1 -1
  409. package/dist/types/types/BaseSDK.d.ts +12 -0
  410. package/dist/types/types/BaseSDK.d.ts.map +1 -0
  411. package/dist/types/types/CollectionPageConfig.d.ts +37 -32
  412. package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
  413. package/dist/types/types/EntityPageConfig.d.ts +51 -2
  414. package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
  415. package/dist/types/types/actions/actionCell.d.ts +24 -0
  416. package/dist/types/types/actions/actionCell.d.ts.map +1 -0
  417. package/dist/types/types/actions/base.d.ts +102 -0
  418. package/dist/types/types/actions/base.d.ts.map +1 -0
  419. package/dist/types/types/actions/bulkActions.d.ts +28 -0
  420. package/dist/types/types/actions/bulkActions.d.ts.map +1 -0
  421. package/dist/types/types/actions/collectionPageActions.d.ts +27 -0
  422. package/dist/types/types/actions/collectionPageActions.d.ts.map +1 -0
  423. package/dist/types/types/actions/index.d.ts +5 -0
  424. package/dist/types/types/actions/index.d.ts.map +1 -0
  425. package/dist/types/types/index.d.ts +3 -0
  426. package/dist/types/types/index.d.ts.map +1 -1
  427. package/dist/types/types/types.d.ts +47 -12
  428. package/dist/types/types/types.d.ts.map +1 -1
  429. package/dist/types/utils/actions/bulkDeleteAction.d.ts +7 -0
  430. package/dist/types/utils/actions/bulkDeleteAction.d.ts.map +1 -0
  431. package/dist/types/utils/actions/createAction.d.ts +7 -0
  432. package/dist/types/utils/actions/createAction.d.ts.map +1 -0
  433. package/dist/types/utils/actions/customAction.d.ts +3 -0
  434. package/dist/types/utils/actions/customAction.d.ts.map +1 -0
  435. package/dist/types/utils/actions/customModalAction.d.ts +5 -0
  436. package/dist/types/utils/actions/customModalAction.d.ts.map +1 -0
  437. package/dist/types/utils/actions/deleteAction.d.ts +7 -0
  438. package/dist/types/utils/actions/deleteAction.d.ts.map +1 -0
  439. package/dist/types/utils/actions/index.d.ts +9 -0
  440. package/dist/types/utils/actions/index.d.ts.map +1 -0
  441. package/dist/types/utils/actions/resolveAction.d.ts +11 -0
  442. package/dist/types/utils/actions/resolveAction.d.ts.map +1 -0
  443. package/dist/types/utils/actions/types.d.ts +61 -0
  444. package/dist/types/utils/actions/types.d.ts.map +1 -0
  445. package/dist/types/utils/actions/updateAction.d.ts +7 -0
  446. package/dist/types/utils/actions/updateAction.d.ts.map +1 -0
  447. package/dist/types/utils/filterCreators.d.ts +48 -0
  448. package/dist/types/utils/filterCreators.d.ts.map +1 -0
  449. package/dist/types/utils/media/getImageUrl.d.ts +3 -0
  450. package/dist/types/utils/media/getImageUrl.d.ts.map +1 -0
  451. package/form/package.json +6 -0
  452. package/package.json +11 -8
  453. package/dist/cjs/collectionData/CollectionData.js.map +0 -1
  454. package/dist/cjs/collectionData/CollectionDataFactory.js +0 -12
  455. package/dist/cjs/collectionData/CollectionDataFactory.js.map +0 -1
  456. package/dist/cjs/collectionData/SchemaFactory.js +0 -12
  457. package/dist/cjs/collectionData/SchemaFactory.js.map +0 -1
  458. package/dist/cjs/collectionData/cms/CmsCollectionData.js.map +0 -1
  459. package/dist/cjs/collectionData/cms/filterUtils.js.map +0 -1
  460. package/dist/cjs/collectionData/cms/sortUtils.js.map +0 -1
  461. package/dist/cjs/collectionData/constants.js.map +0 -1
  462. package/dist/cjs/collectionData/index.js +0 -10
  463. package/dist/cjs/collectionData/index.js.map +0 -1
  464. package/dist/cjs/providers/CollectionDataContext.js +0 -44
  465. package/dist/cjs/providers/CollectionDataContext.js.map +0 -1
  466. package/dist/cjs/utils/filters.js +0 -53
  467. package/dist/cjs/utils/filters.js.map +0 -1
  468. package/dist/esm/collectionData/CollectionData.js +0 -2
  469. package/dist/esm/collectionData/CollectionData.js.map +0 -1
  470. package/dist/esm/collectionData/CollectionDataFactory.js +0 -8
  471. package/dist/esm/collectionData/CollectionDataFactory.js.map +0 -1
  472. package/dist/esm/collectionData/SchemaFactory.js +0 -8
  473. package/dist/esm/collectionData/SchemaFactory.js.map +0 -1
  474. package/dist/esm/collectionData/cms/CmsCollectionData.js +0 -91
  475. package/dist/esm/collectionData/cms/CmsCollectionData.js.map +0 -1
  476. package/dist/esm/collectionData/cms/filterUtils.js.map +0 -1
  477. package/dist/esm/collectionData/cms/sortUtils.js.map +0 -1
  478. package/dist/esm/collectionData/constants.js.map +0 -1
  479. package/dist/esm/collectionData/index.js +0 -2
  480. package/dist/esm/collectionData/index.js.map +0 -1
  481. package/dist/esm/providers/CollectionDataContext.js +0 -30
  482. package/dist/esm/providers/CollectionDataContext.js.map +0 -1
  483. package/dist/esm/utils/filters.js +0 -49
  484. package/dist/esm/utils/filters.js.map +0 -1
  485. package/dist/types/collectionData/CollectionData.d.ts +0 -9
  486. package/dist/types/collectionData/CollectionData.d.ts.map +0 -1
  487. package/dist/types/collectionData/CollectionDataFactory.d.ts +0 -4
  488. package/dist/types/collectionData/CollectionDataFactory.d.ts.map +0 -1
  489. package/dist/types/collectionData/SchemaFactory.d.ts +0 -3
  490. package/dist/types/collectionData/SchemaFactory.d.ts.map +0 -1
  491. package/dist/types/collectionData/cms/CmsCollectionData.d.ts +0 -8
  492. package/dist/types/collectionData/cms/CmsCollectionData.d.ts.map +0 -1
  493. package/dist/types/collectionData/cms/filterUtils.d.ts.map +0 -1
  494. package/dist/types/collectionData/cms/sortUtils.d.ts.map +0 -1
  495. package/dist/types/collectionData/constants.d.ts.map +0 -1
  496. package/dist/types/collectionData/index.d.ts +0 -2
  497. package/dist/types/collectionData/index.d.ts.map +0 -1
  498. package/dist/types/providers/CollectionDataContext.d.ts +0 -12
  499. package/dist/types/providers/CollectionDataContext.d.ts.map +0 -1
  500. package/dist/types/utils/filters.d.ts +0 -7
  501. package/dist/types/utils/filters.d.ts.map +0 -1
  502. /package/dist/cjs/{collectionData → dataSourceAdapters}/cms/sortUtils.js +0 -0
  503. /package/dist/cjs/{collectionData → dataSourceAdapters}/constants.js +0 -0
  504. /package/dist/esm/{collectionData → dataSourceAdapters}/cms/sortUtils.js +0 -0
  505. /package/dist/esm/{collectionData → dataSourceAdapters}/constants.js +0 -0
  506. /package/dist/types/{collectionData → dataSourceAdapters}/cms/sortUtils.d.ts +0 -0
  507. /package/dist/types/{collectionData → dataSourceAdapters}/constants.d.ts +0 -0
@@ -0,0 +1,103 @@
1
+ import { useCallback } from 'react';
2
+ import { useActionsSDK } from './useActionsSDK';
3
+ import { useWixPatternsContainer, useSelector } from '@wix/patterns';
4
+ import { updateAction, customModalAction, customAction, resolveAction, deleteAction } from '../utils/actions';
5
+ import { useNavigation } from './useNavigationUtils';
6
+ export const useActionCell = _ref => {
7
+ let {
8
+ config,
9
+ collectionId,
10
+ collectionType,
11
+ entityPageId
12
+ } = _ref;
13
+ const {
14
+ navigateToEntityPage
15
+ } = useNavigation();
16
+ const container = useWixPatternsContainer();
17
+ const editText = useSelector(() => container.translate('cairo.collectionsPage.edit.CTA'));
18
+ const sdk = useActionsSDK({
19
+ collectionId
20
+ });
21
+ const buildCellActions = useCallback((item, index, api) => {
22
+ var _config$primaryAction, _config$secondaryActi;
23
+ const buildAction = actionConfig => {
24
+ let actionToResolve = null;
25
+ const baseParams = {
26
+ actionParams: {
27
+ item,
28
+ index,
29
+ api
30
+ },
31
+ sdk
32
+ };
33
+ switch (actionConfig.type) {
34
+ case 'update':
35
+ actionToResolve = updateAction({
36
+ action: actionConfig,
37
+ ...baseParams
38
+ });
39
+ break;
40
+ case 'delete':
41
+ actionToResolve = deleteAction({
42
+ action: actionConfig,
43
+ ...baseParams
44
+ });
45
+ break;
46
+ case 'customModal':
47
+ actionToResolve = customModalAction({
48
+ action: actionConfig,
49
+ ...baseParams
50
+ });
51
+ break;
52
+ case 'custom':
53
+ actionToResolve = customAction({
54
+ action: actionConfig,
55
+ ...baseParams
56
+ });
57
+ break;
58
+ default:
59
+ return null;
60
+ }
61
+ if (!actionToResolve) {
62
+ return null;
63
+ }
64
+ const resolvedAction = resolveAction(actionConfig, actionToResolve);
65
+ const {
66
+ label,
67
+ tooltip,
68
+ ...resolvedActionProps
69
+ } = resolvedAction;
70
+ return {
71
+ ...resolvedActionProps,
72
+ text: resolvedAction.label,
73
+ disabledDescription: resolvedAction.tooltip
74
+ };
75
+ };
76
+ const primaryAction = config != null && (_config$primaryAction = config.primaryAction) != null && _config$primaryAction.item ? buildAction(config.primaryAction.item) : collectionType === 'Grid' && entityPageId ? {
77
+ text: editText,
78
+ icon: 'edit',
79
+ onClick: () => {
80
+ navigateToEntityPage({
81
+ item,
82
+ entityPageId
83
+ });
84
+ }
85
+ } : undefined;
86
+ const secondaryActions = config != null && (_config$secondaryActi = config.secondaryActions) != null && _config$secondaryActi.items.length ? config.secondaryActions.items.map(buildAction).filter(Boolean) : [];
87
+ if (!primaryAction && !secondaryActions.length) {
88
+ return {};
89
+ }
90
+ return {
91
+ ...(primaryAction ? {
92
+ primaryAction
93
+ } : {
94
+ primaryAction: undefined
95
+ }),
96
+ ...(secondaryActions.length && {
97
+ secondaryActions
98
+ })
99
+ };
100
+ }, [config, sdk, entityPageId, navigateToEntityPage, collectionType, editText]);
101
+ return buildCellActions;
102
+ };
103
+ //# sourceMappingURL=useActionCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useActionsSDK","useWixPatternsContainer","useSelector","updateAction","customModalAction","customAction","resolveAction","deleteAction","useNavigation","useActionCell","_ref","config","collectionId","collectionType","entityPageId","navigateToEntityPage","container","editText","translate","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$secondaryActi","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","icon","onClick","undefined","secondaryActions","items","length","map","filter","Boolean"],"sources":["../../../src/hooks/useActionCell.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ActionCellConfig,\n ActionCellItemConfig,\n ComponentConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport { useWixPatternsContainer, useSelector } from '@wix/patterns';\nimport {\n updateAction,\n customModalAction,\n customAction,\n resolveAction,\n deleteAction,\n} from '../utils/actions';\nimport { useNavigation } from './useNavigationUtils';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\n collectionType?: ComponentConfig['type'];\n entityPageId?: string;\n}\n\nexport const useActionCell = ({\n config,\n collectionId,\n collectionType,\n entityPageId,\n}: useActionCellParams) => {\n const { navigateToEntityPage } = useNavigation();\n const container = useWixPatternsContainer();\n const editText = useSelector(() =>\n container.translate('cairo.collectionsPage.edit.CTA'),\n );\n\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const buildCellActions = useCallback(\n (item, index, api) => {\n const buildAction = (actionConfig: ActionCellItemConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: { item, index, api },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'delete':\n actionToResolve = deleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { label, tooltip, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n text: resolvedAction.label,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const primaryAction = config?.primaryAction?.item\n ? buildAction(config.primaryAction.item)\n : collectionType === 'Grid' && entityPageId\n ? {\n text: editText,\n icon: 'edit',\n onClick: () => {\n navigateToEntityPage({\n item,\n entityPageId,\n });\n },\n }\n : undefined;\n\n const secondaryActions = config?.secondaryActions?.items.length\n ? config.secondaryActions.items.map(buildAction).filter(Boolean)\n : [];\n\n if (!primaryAction && !secondaryActions.length) {\n return {};\n }\n\n return {\n ...(primaryAction ? { primaryAction } : { primaryAction: undefined }),\n ...(secondaryActions.length && { secondaryActions }),\n };\n },\n [config, sdk, entityPageId, navigateToEntityPage, collectionType, editText],\n );\n\n return buildCellActions;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import { useMemo } from 'react';
2
+ import { useSchemaRegistry } from '../providers';
3
+ import { useBaseSDK } from './useBaseSDK';
4
+ import { useOptimisticActionsContext } from '../providers/OptimisticActionsContext';
5
+ export const useActionsSDK = _ref => {
6
+ let {
7
+ collectionId
8
+ } = _ref;
9
+ const {
10
+ getSchema
11
+ } = useSchemaRegistry();
12
+ const {
13
+ getOptimisticActions
14
+ } = useOptimisticActionsContext();
15
+ const baseSDK = useBaseSDK();
16
+ /* eslint-disable react-hooks/exhaustive-deps */
17
+ // disabled because bug in Patterns that navigateToEntityPage isn't wrapped with useCallback,
18
+ const sdk = useMemo(() => ({
19
+ ...baseSDK,
20
+ // TODO: Why spread and not sdk.app/base.openModal ... instead
21
+ getSchema,
22
+ collectionId,
23
+ getOptimisticActions
24
+ }), [getSchema, collectionId, getOptimisticActions, baseSDK]);
25
+
26
+ /* eslint-enable react-hooks/exhaustive-deps */
27
+
28
+ return sdk;
29
+ };
30
+ //# sourceMappingURL=useActionsSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useSchemaRegistry","useBaseSDK","useOptimisticActionsContext","useActionsSDK","_ref","collectionId","getSchema","getOptimisticActions","baseSDK","sdk"],"sources":["../../../src/hooks/useActionsSDK.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useSchemaRegistry } from '../providers';\nimport { ActionsSDK } from '../utils/actions/types';\nimport { useBaseSDK } from './useBaseSDK';\nimport { useOptimisticActionsContext } from '../providers/OptimisticActionsContext';\n\nexport interface ActionsSDKParams {\n collectionId: string;\n}\n\nexport const useActionsSDK = ({ collectionId }: ActionsSDKParams) => {\n const { getSchema } = useSchemaRegistry();\n\n const { getOptimisticActions } = useOptimisticActionsContext();\n\n const baseSDK = useBaseSDK();\n /* eslint-disable react-hooks/exhaustive-deps */\n // disabled because bug in Patterns that navigateToEntityPage isn't wrapped with useCallback,\n const sdk = useMemo<ActionsSDK>(\n () => ({\n ...baseSDK, // TODO: Why spread and not sdk.app/base.openModal ... instead\n getSchema,\n collectionId,\n getOptimisticActions,\n }),\n [getSchema, collectionId, getOptimisticActions, baseSDK],\n );\n\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return sdk;\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,iBAAiB,QAAQ,cAAc;AAEhD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,2BAA2B,QAAQ,uCAAuC;AAMnF,OAAO,MAAMC,aAAa,GAAGC,IAAA,IAAwC;EAAA,IAAvC;IAAEC;EAA+B,CAAC,GAAAD,IAAA;EAC9D,MAAM;IAAEE;EAAU,CAAC,GAAGN,iBAAiB,CAAC,CAAC;EAEzC,MAAM;IAAEO;EAAqB,CAAC,GAAGL,2BAA2B,CAAC,CAAC;EAE9D,MAAMM,OAAO,GAAGP,UAAU,CAAC,CAAC;EAC5B;EACA;EACA,MAAMQ,GAAG,GAAGV,OAAO,CACjB,OAAO;IACL,GAAGS,OAAO;IAAE;IACZF,SAAS;IACTD,YAAY;IACZE;EACF,CAAC,CAAC,EACF,CAACD,SAAS,EAAED,YAAY,EAAEE,oBAAoB,EAAEC,OAAO,CACzD,CAAC;;EAED;;EAEA,OAAOC,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { useOptimisticActions } from '@wix/patterns';
2
+ import { useEffect } from 'react';
3
+ import { useOptimisticActionsContext } from '../providers/OptimisticActionsContext';
4
+ export const useAutoPatternsOptimisticActions = (collectionId, collection) => {
5
+ const {
6
+ registerOptimisticActions
7
+ } = useOptimisticActionsContext();
8
+ const optimisticActions = useOptimisticActions(collection, {
9
+ orderBy: _ref => {
10
+ let {
11
+ sort
12
+ } = _ref;
13
+ return sort || [];
14
+ }
15
+ });
16
+ useEffect(() => {
17
+ if (optimisticActions && collectionId) {
18
+ registerOptimisticActions(collectionId, optimisticActions);
19
+ }
20
+ }, [optimisticActions, collectionId, registerOptimisticActions]);
21
+ return optimisticActions;
22
+ };
23
+ //# sourceMappingURL=useAutoPatternsOptimisticActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useOptimisticActions","useEffect","useOptimisticActionsContext","useAutoPatternsOptimisticActions","collectionId","collection","registerOptimisticActions","optimisticActions","orderBy","_ref","sort"],"sources":["../../../src/hooks/useAutoPatternsOptimisticActions.ts"],"sourcesContent":["import { CollectionState, useOptimisticActions } from '@wix/patterns';\nimport { useEffect } from 'react';\nimport { useOptimisticActionsContext } from '../providers/OptimisticActionsContext';\n\nexport const useAutoPatternsOptimisticActions = (\n collectionId: string,\n collection: CollectionState<any>,\n) => {\n const { registerOptimisticActions } = useOptimisticActionsContext();\n\n const optimisticActions = useOptimisticActions(collection, {\n orderBy: ({ sort }) => sort || [],\n });\n\n useEffect(() => {\n if (optimisticActions && collectionId) {\n registerOptimisticActions(collectionId, optimisticActions);\n }\n }, [optimisticActions, collectionId, registerOptimisticActions]);\n\n return optimisticActions;\n};\n"],"mappings":"AAAA,SAA0BA,oBAAoB,QAAQ,eAAe;AACrE,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,2BAA2B,QAAQ,uCAAuC;AAEnF,OAAO,MAAMC,gCAAgC,GAAGA,CAC9CC,YAAoB,EACpBC,UAAgC,KAC7B;EACH,MAAM;IAAEC;EAA0B,CAAC,GAAGJ,2BAA2B,CAAC,CAAC;EAEnE,MAAMK,iBAAiB,GAAGP,oBAAoB,CAACK,UAAU,EAAE;IACzDG,OAAO,EAAEC,IAAA;MAAA,IAAC;QAAEC;MAAK,CAAC,GAAAD,IAAA;MAAA,OAAKC,IAAI,IAAI,EAAE;IAAA;EACnC,CAAC,CAAC;EAEFT,SAAS,CAAC,MAAM;IACd,IAAIM,iBAAiB,IAAIH,YAAY,EAAE;MACrCE,yBAAyB,CAACF,YAAY,EAAEG,iBAAiB,CAAC;IAC5D;EACF,CAAC,EAAE,CAACA,iBAAiB,EAAEH,YAAY,EAAEE,yBAAyB,CAAC,CAAC;EAEhE,OAAOC,iBAAiB;AAC1B,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import { useMemo } from 'react';
2
+ import { useAppConfigContext, usePatternsWizardOverridesContext } from '../providers';
3
+ import { useModalContext } from '../providers/ModalContext';
4
+ import { useNavigation } from './useNavigationUtils';
5
+ export const useBaseSDK = () => {
6
+ const {
7
+ openModal,
8
+ closeModal
9
+ } = useModalContext();
10
+ const appConfig = useAppConfigContext();
11
+ const overrides = usePatternsWizardOverridesContext();
12
+ const {
13
+ navigateToEntityPage
14
+ } = useNavigation();
15
+
16
+ /* eslint-disable react-hooks/exhaustive-deps */
17
+ // disabled because bug in Patterns that navigateToEntityPage isn't wrapped with useCallback,
18
+ const baseSDK = useMemo(() => ({
19
+ appConfig,
20
+ overrides,
21
+ openModal,
22
+ closeModal,
23
+ navigateToEntityPage
24
+ }), [appConfig, overrides, openModal, closeModal, navigateToEntityPage]);
25
+
26
+ /* eslint-enable react-hooks/exhaustive-deps */
27
+
28
+ return baseSDK;
29
+ };
30
+ //# sourceMappingURL=useBaseSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useAppConfigContext","usePatternsWizardOverridesContext","useModalContext","useNavigation","useBaseSDK","openModal","closeModal","appConfig","overrides","navigateToEntityPage","baseSDK"],"sources":["../../../src/hooks/useBaseSDK.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n useAppConfigContext,\n usePatternsWizardOverridesContext,\n} from '../providers';\nimport { useModalContext } from '../providers/ModalContext';\nimport { useNavigation } from './useNavigationUtils';\nimport { BaseSDK } from '../types';\n\nexport const useBaseSDK = () => {\n const { openModal, closeModal } = useModalContext();\n const appConfig = useAppConfigContext();\n const overrides = usePatternsWizardOverridesContext();\n const { navigateToEntityPage } = useNavigation();\n\n /* eslint-disable react-hooks/exhaustive-deps */\n // disabled because bug in Patterns that navigateToEntityPage isn't wrapped with useCallback,\n const baseSDK = useMemo<BaseSDK>(\n () => ({\n appConfig,\n overrides,\n openModal,\n closeModal,\n navigateToEntityPage,\n }),\n [appConfig, overrides, openModal, closeModal, navigateToEntityPage],\n );\n\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return baseSDK;\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,mBAAmB,EACnBC,iCAAiC,QAC5B,cAAc;AACrB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,aAAa,QAAQ,sBAAsB;AAGpD,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGJ,eAAe,CAAC,CAAC;EACnD,MAAMK,SAAS,GAAGP,mBAAmB,CAAC,CAAC;EACvC,MAAMQ,SAAS,GAAGP,iCAAiC,CAAC,CAAC;EACrD,MAAM;IAAEQ;EAAqB,CAAC,GAAGN,aAAa,CAAC,CAAC;;EAEhD;EACA;EACA,MAAMO,OAAO,GAAGX,OAAO,CACrB,OAAO;IACLQ,SAAS;IACTC,SAAS;IACTH,SAAS;IACTC,UAAU;IACVG;EACF,CAAC,CAAC,EACF,CAACF,SAAS,EAAEC,SAAS,EAAEH,SAAS,EAAEC,UAAU,EAAEG,oBAAoB,CACpE,CAAC;;EAED;;EAEA,OAAOC,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import React, { useCallback } from 'react';
2
+ import { useActionsSDK } from './useActionsSDK';
3
+ import { MultiBulkActionToolbar } from '@wix/patterns';
4
+ import { bulkDeleteAction, customAction, customModalAction, resolveAction } from '../utils/actions';
5
+ export const useBulkActionToolbar = _ref => {
6
+ var _config$primaryAction2, _config$secondaryActi2;
7
+ let {
8
+ config,
9
+ collectionId
10
+ } = _ref;
11
+ const sdk = useActionsSDK({
12
+ collectionId
13
+ });
14
+ const bulkActionToolbar = useCallback(param => {
15
+ var _config$primaryAction, _config$secondaryActi;
16
+ const buildAction = actionConfig => {
17
+ let actionToResolve = null;
18
+ const baseParams = {
19
+ actionParams: param,
20
+ sdk
21
+ };
22
+ switch (actionConfig.type) {
23
+ case 'bulkDelete':
24
+ actionToResolve = bulkDeleteAction({
25
+ action: actionConfig,
26
+ ...baseParams
27
+ });
28
+ break;
29
+ case 'customModal':
30
+ actionToResolve = customModalAction({
31
+ action: actionConfig,
32
+ ...baseParams
33
+ });
34
+ break;
35
+ case 'custom':
36
+ actionToResolve = customAction({
37
+ action: actionConfig,
38
+ ...baseParams
39
+ });
40
+ break;
41
+ default:
42
+ return null;
43
+ }
44
+ if (!actionToResolve) {
45
+ return null;
46
+ }
47
+ const resolvedAction = resolveAction(actionConfig, actionToResolve);
48
+ const {
49
+ icon,
50
+ ...resolvedActionParams
51
+ } = resolvedAction;
52
+ return {
53
+ prefixIcon: /*#__PURE__*/React.isValidElement(icon) ? icon : undefined,
54
+ dataHook: actionConfig.id,
55
+ ...resolvedActionParams
56
+ };
57
+ };
58
+ const primaryActionItems = ((config == null || (_config$primaryAction = config.primaryActions) == null ? void 0 : _config$primaryAction.items) || []).map(buildAction).filter(action => Boolean(action));
59
+ const secondaryActionItems = ((config == null || (_config$secondaryActi = config.secondaryActions) == null ? void 0 : _config$secondaryActi.sections) || []).map(section => section.items.map(buildAction).filter(action => Boolean(action)));
60
+ return /*#__PURE__*/React.createElement(MultiBulkActionToolbar, {
61
+ primaryActionItems: primaryActionItems,
62
+ secondaryActionItems: secondaryActionItems
63
+ });
64
+ }, [config, sdk]);
65
+ if (!config) {
66
+ return undefined;
67
+ }
68
+ if (!((_config$primaryAction2 = config.primaryActions) != null && _config$primaryAction2.items.length) && !((_config$secondaryActi2 = config.secondaryActions) != null && _config$secondaryActi2.sections.length)) {
69
+ return undefined;
70
+ }
71
+ return bulkActionToolbar;
72
+ };
73
+ //# sourceMappingURL=useBulkActionToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useActionsSDK","MultiBulkActionToolbar","bulkDeleteAction","customAction","customModalAction","resolveAction","useBulkActionToolbar","_ref","_config$primaryAction2","_config$secondaryActi2","config","collectionId","sdk","bulkActionToolbar","param","_config$primaryAction","_config$secondaryActi","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","icon","resolvedActionParams","prefixIcon","isValidElement","undefined","dataHook","id","primaryActionItems","primaryActions","items","map","filter","Boolean","secondaryActionItems","secondaryActions","sections","section","createElement","length"],"sources":["../../../src/hooks/useBulkActionToolbar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n BulkActionItemConfig,\n BulkActionsConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n TableProps,\n MultiBulkActionToolbar,\n ActionSubitem,\n} from '@wix/patterns';\nimport {\n bulkDeleteAction,\n customAction,\n customModalAction,\n resolveAction,\n} from '../utils/actions';\n\nexport type BulkActionToolbarRenderProp = Parameters<\n NonNullable<TableProps<any, any>['bulkActionToolbar']>\n>[0];\n\nexport interface useBulkActionToolbarParams {\n config?: BulkActionsConfig;\n collectionId: string;\n}\n\nexport const useBulkActionToolbar = ({\n config,\n collectionId,\n}: useBulkActionToolbarParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const bulkActionToolbar = useCallback(\n (param: BulkActionToolbarRenderProp) => {\n const buildAction = (\n actionConfig: BulkActionItemConfig,\n ): ActionSubitem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: param,\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'bulkDelete':\n actionToResolve = bulkDeleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { icon, ...resolvedActionParams } = resolvedAction;\n\n return {\n prefixIcon: React.isValidElement(icon) ? icon : undefined,\n dataHook: actionConfig.id,\n ...resolvedActionParams,\n };\n };\n\n const primaryActionItems = (config?.primaryActions?.items || [])\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action));\n const secondaryActionItems = (\n config?.secondaryActions?.sections || []\n ).map((section) =>\n section.items\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action)),\n );\n\n return (\n <MultiBulkActionToolbar\n primaryActionItems={primaryActionItems}\n secondaryActionItems={secondaryActionItems}\n />\n );\n },\n [config, sdk],\n );\n\n if (!config) {\n return undefined;\n }\n\n if (\n !config.primaryActions?.items.length &&\n !config.secondaryActions?.sections.length\n ) {\n return undefined;\n }\n return bulkActionToolbar;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { useActionsSDK } from './useActionsSDK';
3
+ import { createAction, customAction, customModalAction, resolveAction, resolveIcon } from '../utils/actions';
4
+ import { PrimaryActions, SecondaryActions } from '@wix/patterns';
5
+ export const useCollectionPageActions = _ref => {
6
+ let {
7
+ collectionPageActions
8
+ } = _ref;
9
+ const sdk = useActionsSDK({
10
+ collectionId: ''
11
+ });
12
+ const buildCollectionPageActions = useCallback(() => {
13
+ if (!collectionPageActions) {
14
+ return;
15
+ }
16
+ const buildAction = actionConfig => {
17
+ let actionToResolve = null;
18
+ const baseParams = {
19
+ actionParams: {},
20
+ sdk
21
+ };
22
+ switch (actionConfig.type) {
23
+ case 'create':
24
+ actionToResolve = createAction({
25
+ action: actionConfig,
26
+ ...baseParams
27
+ });
28
+ break;
29
+ case 'customModal':
30
+ actionToResolve = customModalAction({
31
+ action: actionConfig,
32
+ ...baseParams
33
+ });
34
+ break;
35
+ case 'custom':
36
+ actionToResolve = customAction({
37
+ action: actionConfig,
38
+ ...baseParams
39
+ });
40
+ break;
41
+ default:
42
+ return null;
43
+ }
44
+ if (!actionToResolve) {
45
+ return null;
46
+ }
47
+ const resolvedAction = resolveAction(actionConfig, actionToResolve);
48
+ const {
49
+ tooltip,
50
+ icon,
51
+ ...resolvedActionProps
52
+ } = resolvedAction;
53
+ return {
54
+ ...resolvedActionProps,
55
+ prefixIcon: icon,
56
+ disabledDescription: resolvedAction.tooltip
57
+ };
58
+ };
59
+ const handleActionsType = actions => {
60
+ if (actions.type === 'single') {
61
+ return buildAction(actions.single.item);
62
+ }
63
+ if (actions.type === 'multi') {
64
+ const subItems = actions.multi.items.map(buildAction).filter(action => action !== null);
65
+ if (!subItems.length) {
66
+ return null;
67
+ }
68
+ return {
69
+ label: actions.multi.label,
70
+ prefixIcon: resolveIcon(actions.multi.icon),
71
+ subItems
72
+ };
73
+ }
74
+ return null;
75
+ };
76
+ const primaryActions = (collectionPageActions == null ? void 0 : collectionPageActions.primaryActions) && handleActionsType(collectionPageActions.primaryActions);
77
+ const secondaryActions = (collectionPageActions == null ? void 0 : collectionPageActions.secondaryActions) && handleActionsType(collectionPageActions.secondaryActions);
78
+ if (!primaryActions && !secondaryActions) {
79
+ return;
80
+ }
81
+ return {
82
+ primaryActions: primaryActions ? /*#__PURE__*/React.createElement(PrimaryActions, primaryActions) : undefined,
83
+ secondaryActions: secondaryActions ? /*#__PURE__*/React.createElement(SecondaryActions, secondaryActions) : undefined
84
+ };
85
+ }, [collectionPageActions, sdk]);
86
+ const actions = useMemo(() => {
87
+ return {
88
+ primaryActions: undefined,
89
+ secondaryActions: undefined
90
+ };
91
+ }, []);
92
+ if (!(collectionPageActions != null && collectionPageActions.primaryActions) && !(collectionPageActions != null && collectionPageActions.secondaryActions)) {
93
+ return {
94
+ ...actions
95
+ };
96
+ }
97
+ return buildCollectionPageActions() ?? {
98
+ ...actions
99
+ };
100
+ };
101
+ //# sourceMappingURL=useCollectionPageActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","customModalAction","resolveAction","resolveIcon","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","single","item","subItems","multi","items","map","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n customModalAction,\n resolveAction,\n resolveIcon,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {},\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'customModal':\n actionToResolve = customModalAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'single') {\n return buildAction(actions.single.item);\n }\n\n if (actions.type === 'multi') {\n const subItems = actions.multi.items\n .map(buildAction)\n .filter((action) => action !== null);\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.multi.label,\n prefixIcon: resolveIcon(actions.multi.icon) as IconElement,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,80 @@
1
- import { useCollectionData, usePatternsWizardOverridesContext } from '../providers';
1
+ import React from 'react';
2
+ import { usePatternsWizardOverridesContext, useSchema, useSchemaRegistry } from '../providers';
2
3
  import { camelCase, get } from 'lodash';
4
+ import { Avatar, Box } from '@wix/design-system';
5
+ import { getImageUrl } from '../utils/media/getImageUrl';
3
6
  export const useColumns = columns => {
4
7
  const {
5
- schema: {
6
- fields
7
- }
8
- } = useCollectionData();
8
+ fields
9
+ } = useSchema();
10
+ const {
11
+ getSchema
12
+ } = useSchemaRegistry();
9
13
  const overrides = usePatternsWizardOverridesContext();
10
14
  const existingColumns = columns.filter(column => {
11
15
  return !!fields[column.id];
12
16
  });
17
+ const createRenderer = (fieldDefinition, itemValue) => {
18
+ if (itemValue == null) {
19
+ return '';
20
+ }
21
+ switch (fieldDefinition.type) {
22
+ case 'BOOLEAN':
23
+ return itemValue ? '✔' : '✖';
24
+ case 'DATE':
25
+ if (itemValue instanceof Date) {
26
+ return itemValue.toLocaleDateString();
27
+ }
28
+ if (typeof itemValue === 'string') {
29
+ const date = new Date(itemValue);
30
+ return date.toLocaleDateString();
31
+ }
32
+ return itemValue;
33
+ case 'DATETIME':
34
+ if (itemValue instanceof Date) {
35
+ return itemValue.toLocaleString();
36
+ }
37
+ if (typeof itemValue === 'string') {
38
+ const date = new Date(itemValue);
39
+ return date.toLocaleString();
40
+ }
41
+ return itemValue;
42
+ case 'ARRAY':
43
+ // We assume that the array contains strings
44
+ // If the array contains objects, we need to handle it differently
45
+ return itemValue.join(', ');
46
+ case 'REFERENCE':
47
+ if (fieldDefinition.referenceMetadata && getSchema) {
48
+ const {
49
+ referencedCollectionId
50
+ } = fieldDefinition.referenceMetadata;
51
+ const refSchema = getSchema(referencedCollectionId);
52
+ if (refSchema) {
53
+ let nameValue;
54
+ let imageValue;
55
+ const displayField = refSchema.displayField;
56
+ if (typeof itemValue === 'object' && itemValue !== null) {
57
+ nameValue = itemValue[displayField] || '';
58
+ imageValue = refSchema.imageField && itemValue[refSchema.imageField];
59
+ }
60
+ const imageUrl = imageValue && getImageUrl(imageValue);
61
+ return /*#__PURE__*/React.createElement(Box, {
62
+ gap: "SP2",
63
+ verticalAlign: "middle"
64
+ }, imageUrl && /*#__PURE__*/React.createElement(Avatar, {
65
+ size: "size24",
66
+ name: nameValue,
67
+ imgProps: {
68
+ src: imageUrl
69
+ }
70
+ }), /*#__PURE__*/React.createElement("div", null, nameValue));
71
+ }
72
+ }
73
+ return itemValue;
74
+ default:
75
+ return itemValue;
76
+ }
77
+ };
13
78
  return existingColumns.map(column => {
14
79
  var _fieldDefinition$capa;
15
80
  const fieldDefinition = fields[column.id];
@@ -36,39 +101,6 @@ export const useColumns = columns => {
36
101
  return baseColumnConfig;
37
102
  }).filter(Boolean);
38
103
  };
39
- const createRenderer = (fieldDefinition, itemValue) => {
40
- if (itemValue == null) {
41
- return '';
42
- }
43
- switch (fieldDefinition.type) {
44
- case 'BOOLEAN':
45
- return itemValue ? '✔' : '✖';
46
- case 'DATE':
47
- if (itemValue instanceof Date) {
48
- return itemValue.toLocaleDateString();
49
- }
50
- if (typeof itemValue === 'string') {
51
- const date = new Date(itemValue);
52
- return date.toLocaleDateString();
53
- }
54
- return itemValue;
55
- case 'DATETIME':
56
- if (itemValue instanceof Date) {
57
- return itemValue.toLocaleString();
58
- }
59
- if (typeof itemValue === 'string') {
60
- const date = new Date(itemValue);
61
- return date.toLocaleString();
62
- }
63
- return itemValue;
64
- case 'ARRAY':
65
- // We assume that the array contains strings
66
- // If the array contains objects, we need to handle it differently
67
- return itemValue.join(', ');
68
- default:
69
- return itemValue;
70
- }
71
- };
72
104
  const createSortConfiguration = (column, sortable) => {
73
105
  if (!sortable) {
74
106
  return {};
@@ -1 +1 @@
1
- {"version":3,"names":["useCollectionData","usePatternsWizardOverridesContext","camelCase","get","useColumns","columns","schema","fields","overrides","existingColumns","filter","column","id","map","_fieldDefinition$capa","fieldDefinition","sortable","capabilities","baseColumnConfig","title","name","displayName","width","createSortConfiguration","createCustomColumnConfiguration","render","item","_overrides$columns","_overrides$columns$ca","itemValue","call","value","createRenderer","Boolean","type","Date","toLocaleDateString","date","toLocaleString","join","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.ts"],"sourcesContent":["import { TableColumn } from '@wix/patterns';\nimport {\n useCollectionData,\n usePatternsWizardOverridesContext,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\n\nexport const useColumns = (columns: Column[]) => {\n const {\n schema: { fields },\n } = useCollectionData();\n\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id];\n });\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition) {\n return null;\n }\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition.displayName,\n ...(column.width ? { width: column.width } : {}),\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (item: any) => {\n const itemValue = get(item, column.id);\n return (\n overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n }) ?? createRenderer(fieldDefinition, itemValue)\n );\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createRenderer = (fieldDefinition: Field, itemValue: any): string => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n default:\n return itemValue;\n }\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","usePatternsWizardOverridesContext","useSchema","useSchemaRegistry","camelCase","get","Avatar","Box","getImageUrl","useColumns","columns","fields","getSchema","overrides","existingColumns","filter","column","id","createRenderer","fieldDefinition","itemValue","type","Date","toLocaleDateString","date","toLocaleString","join","referenceMetadata","referencedCollectionId","refSchema","nameValue","imageValue","displayField","imageField","imageUrl","createElement","gap","verticalAlign","size","name","imgProps","src","map","_fieldDefinition$capa","sortable","capabilities","baseColumnConfig","title","displayName","width","createSortConfiguration","createCustomColumnConfiguration","render","item","_overrides$columns","_overrides$columns$ca","call","value","Boolean","sortableColumnConfig","defaultSortOrder","sortMode","undefined","reorderDisabled","hiddenFromCustomColumnsSelection","hideable","defaultHidden"],"sources":["../../../src/hooks/useColumns.tsx"],"sourcesContent":["import React from 'react';\nimport { TableColumn } from '@wix/patterns';\nimport {\n usePatternsWizardOverridesContext,\n useSchema,\n useSchemaRegistry,\n} from '../providers';\nimport { Column, Field } from '../types';\nimport { camelCase, get } from 'lodash';\nimport { Avatar, Box } from '@wix/design-system';\nimport { getImageUrl } from '../utils/media/getImageUrl';\n\nexport const useColumns = (columns: Column[]) => {\n const { fields } = useSchema();\n const { getSchema } = useSchemaRegistry();\n const overrides = usePatternsWizardOverridesContext();\n\n const existingColumns = columns.filter((column) => {\n return !!fields[column.id];\n });\n\n const createRenderer = (fieldDefinition: Field, itemValue: any) => {\n if (itemValue == null) {\n return '';\n }\n\n switch (fieldDefinition.type) {\n case 'BOOLEAN':\n return itemValue ? '✔' : '✖';\n case 'DATE':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleDateString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleDateString();\n }\n return itemValue;\n case 'DATETIME':\n if (itemValue instanceof Date) {\n return itemValue.toLocaleString();\n }\n if (typeof itemValue === 'string') {\n const date = new Date(itemValue);\n return date.toLocaleString();\n }\n return itemValue;\n case 'ARRAY':\n // We assume that the array contains strings\n // If the array contains objects, we need to handle it differently\n return itemValue.join(', ');\n case 'REFERENCE':\n if (fieldDefinition.referenceMetadata && getSchema) {\n const { referencedCollectionId } = fieldDefinition.referenceMetadata;\n const refSchema = getSchema(referencedCollectionId);\n\n if (refSchema) {\n let nameValue: string | undefined;\n let imageValue: string | undefined;\n const displayField = refSchema.displayField;\n if (typeof itemValue === 'object' && itemValue !== null) {\n nameValue = itemValue[displayField] || '';\n imageValue =\n refSchema.imageField && itemValue[refSchema.imageField];\n }\n\n const imageUrl = imageValue && getImageUrl(imageValue);\n return (\n <Box gap=\"SP2\" verticalAlign=\"middle\">\n {imageUrl && (\n <Avatar\n size=\"size24\"\n name={nameValue}\n imgProps={{ src: imageUrl }}\n />\n )}\n <div>{nameValue}</div>\n </Box>\n );\n }\n }\n\n return itemValue;\n default:\n return itemValue;\n }\n };\n\n return existingColumns\n .map((column) => {\n const fieldDefinition = fields[column.id];\n if (!fieldDefinition) {\n return null;\n }\n const sortable =\n column.sortable && fieldDefinition?.capabilities?.sortable;\n\n const baseColumnConfig = {\n id: column.id,\n title: column.name || fieldDefinition.displayName,\n ...(column.width ? { width: column.width } : {}),\n ...createSortConfiguration(column, sortable),\n ...createCustomColumnConfiguration(column),\n render: (item: any) => {\n const itemValue = get(item, column.id);\n return (\n overrides?.columns?.[camelCase(column.id)]?.({\n value: itemValue,\n }) ?? createRenderer(fieldDefinition, itemValue)\n );\n },\n };\n\n return baseColumnConfig;\n })\n .filter(Boolean) as TableColumn<any>[];\n};\n\nconst createSortConfiguration = (\n column: Column,\n sortable?: boolean,\n): Partial<TableColumn<any>> => {\n if (!sortable) {\n return {};\n }\n const sortableColumnConfig = {\n sortable,\n defaultSortOrder: column.defaultSortOrder,\n };\n\n // default sort mode is ['asc', 'desc', undefined]\n // so if sort mode is 'desc' -> we want to override the default\n // and set it to ['desc', 'asc', undefined]\n if (column.sortMode && column.sortMode === 'desc') {\n return {\n ...sortableColumnConfig,\n sortMode: ['desc', 'asc', undefined],\n };\n }\n return {\n ...sortableColumnConfig,\n };\n};\n\nconst createCustomColumnConfiguration = (\n column: Column,\n): Partial<TableColumn<any>> => {\n const reorderDisabled = !!column.reorderDisabled;\n\n if (column.hiddenFromCustomColumnsSelection) {\n return { hiddenFromCustomColumnsSelection: true };\n }\n if (column.hideable === false) {\n return {\n hideable: false,\n reorderDisabled,\n };\n }\n return {\n defaultHidden: !!column.defaultHidden,\n reorderDisabled,\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SACEC,iCAAiC,EACjCC,SAAS,EACTC,iBAAiB,QACZ,cAAc;AAErB,SAASC,SAAS,EAAEC,GAAG,QAAQ,QAAQ;AACvC,SAASC,MAAM,EAAEC,GAAG,QAAQ,oBAAoB;AAChD,SAASC,WAAW,QAAQ,4BAA4B;AAExD,OAAO,MAAMC,UAAU,GAAIC,OAAiB,IAAK;EAC/C,MAAM;IAAEC;EAAO,CAAC,GAAGT,SAAS,CAAC,CAAC;EAC9B,MAAM;IAAEU;EAAU,CAAC,GAAGT,iBAAiB,CAAC,CAAC;EACzC,MAAMU,SAAS,GAAGZ,iCAAiC,CAAC,CAAC;EAErD,MAAMa,eAAe,GAAGJ,OAAO,CAACK,MAAM,CAAEC,MAAM,IAAK;IACjD,OAAO,CAAC,CAACL,MAAM,CAACK,MAAM,CAACC,EAAE,CAAC;EAC5B,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAGA,CAACC,eAAsB,EAAEC,SAAc,KAAK;IACjE,IAAIA,SAAS,IAAI,IAAI,EAAE;MACrB,OAAO,EAAE;IACX;IAEA,QAAQD,eAAe,CAACE,IAAI;MAC1B,KAAK,SAAS;QACZ,OAAOD,SAAS,GAAG,GAAG,GAAG,GAAG;MAC9B,KAAK,MAAM;QACT,IAAIA,SAAS,YAAYE,IAAI,EAAE;UAC7B,OAAOF,SAAS,CAACG,kBAAkB,CAAC,CAAC;QACvC;QACA,IAAI,OAAOH,SAAS,KAAK,QAAQ,EAAE;UACjC,MAAMI,IAAI,GAAG,IAAIF,IAAI,CAACF,SAAS,CAAC;UAChC,OAAOI,IAAI,CAACD,kBAAkB,CAAC,CAAC;QAClC;QACA,OAAOH,SAAS;MAClB,KAAK,UAAU;QACb,IAAIA,SAAS,YAAYE,IAAI,EAAE;UAC7B,OAAOF,SAAS,CAACK,cAAc,CAAC,CAAC;QACnC;QACA,IAAI,OAAOL,SAAS,KAAK,QAAQ,EAAE;UACjC,MAAMI,IAAI,GAAG,IAAIF,IAAI,CAACF,SAAS,CAAC;UAChC,OAAOI,IAAI,CAACC,cAAc,CAAC,CAAC;QAC9B;QACA,OAAOL,SAAS;MAClB,KAAK,OAAO;QACV;QACA;QACA,OAAOA,SAAS,CAACM,IAAI,CAAC,IAAI,CAAC;MAC7B,KAAK,WAAW;QACd,IAAIP,eAAe,CAACQ,iBAAiB,IAAIf,SAAS,EAAE;UAClD,MAAM;YAAEgB;UAAuB,CAAC,GAAGT,eAAe,CAACQ,iBAAiB;UACpE,MAAME,SAAS,GAAGjB,SAAS,CAACgB,sBAAsB,CAAC;UAEnD,IAAIC,SAAS,EAAE;YACb,IAAIC,SAA6B;YACjC,IAAIC,UAA8B;YAClC,MAAMC,YAAY,GAAGH,SAAS,CAACG,YAAY;YAC3C,IAAI,OAAOZ,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,IAAI,EAAE;cACvDU,SAAS,GAAGV,SAAS,CAACY,YAAY,CAAC,IAAI,EAAE;cACzCD,UAAU,GACRF,SAAS,CAACI,UAAU,IAAIb,SAAS,CAACS,SAAS,CAACI,UAAU,CAAC;YAC3D;YAEA,MAAMC,QAAQ,GAAGH,UAAU,IAAIvB,WAAW,CAACuB,UAAU,CAAC;YACtD,oBACE/B,KAAA,CAAAmC,aAAA,CAAC5B,GAAG;cAAC6B,GAAG,EAAC,KAAK;cAACC,aAAa,EAAC;YAAQ,GAClCH,QAAQ,iBACPlC,KAAA,CAAAmC,aAAA,CAAC7B,MAAM;cACLgC,IAAI,EAAC,QAAQ;cACbC,IAAI,EAAET,SAAU;cAChBU,QAAQ,EAAE;gBAAEC,GAAG,EAAEP;cAAS;YAAE,CAC7B,CACF,eACDlC,KAAA,CAAAmC,aAAA,cAAML,SAAe,CAClB,CAAC;UAEV;QACF;QAEA,OAAOV,SAAS;MAClB;QACE,OAAOA,SAAS;IACpB;EACF,CAAC;EAED,OAAON,eAAe,CACnB4B,GAAG,CAAE1B,MAAM,IAAK;IAAA,IAAA2B,qBAAA;IACf,MAAMxB,eAAe,GAAGR,MAAM,CAACK,MAAM,CAACC,EAAE,CAAC;IACzC,IAAI,CAACE,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IACA,MAAMyB,QAAQ,GACZ5B,MAAM,CAAC4B,QAAQ,KAAIzB,eAAe,aAAAwB,qBAAA,GAAfxB,eAAe,CAAE0B,YAAY,qBAA7BF,qBAAA,CAA+BC,QAAQ;IAE5D,MAAME,gBAAgB,GAAG;MACvB7B,EAAE,EAAED,MAAM,CAACC,EAAE;MACb8B,KAAK,EAAE/B,MAAM,CAACuB,IAAI,IAAIpB,eAAe,CAAC6B,WAAW;MACjD,IAAIhC,MAAM,CAACiC,KAAK,GAAG;QAAEA,KAAK,EAAEjC,MAAM,CAACiC;MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;MAChD,GAAGC,uBAAuB,CAAClC,MAAM,EAAE4B,QAAQ,CAAC;MAC5C,GAAGO,+BAA+B,CAACnC,MAAM,CAAC;MAC1CoC,MAAM,EAAGC,IAAS,IAAK;QAAA,IAAAC,kBAAA,EAAAC,qBAAA;QACrB,MAAMnC,SAAS,GAAGf,GAAG,CAACgD,IAAI,EAAErC,MAAM,CAACC,EAAE,CAAC;QACtC,OACE,CAAAJ,SAAS,aAAAyC,kBAAA,GAATzC,SAAS,CAAEH,OAAO,cAAA6C,qBAAA,GAAlBD,kBAAA,CAAqBlD,SAAS,CAACY,MAAM,CAACC,EAAE,CAAC,CAAC,qBAA1CsC,qBAAA,CAAAC,IAAA,CAAAF,kBAAA,EAA6C;UAC3CG,KAAK,EAAErC;QACT,CAAC,CAAC,KAAIF,cAAc,CAACC,eAAe,EAAEC,SAAS,CAAC;MAEpD;IACF,CAAC;IAED,OAAO0B,gBAAgB;EACzB,CAAC,CAAC,CACD/B,MAAM,CAAC2C,OAAO,CAAC;AACpB,CAAC;AAED,MAAMR,uBAAuB,GAAGA,CAC9BlC,MAAc,EACd4B,QAAkB,KACY;EAC9B,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,CAAC,CAAC;EACX;EACA,MAAMe,oBAAoB,GAAG;IAC3Bf,QAAQ;IACRgB,gBAAgB,EAAE5C,MAAM,CAAC4C;EAC3B,CAAC;;EAED;EACA;EACA;EACA,IAAI5C,MAAM,CAAC6C,QAAQ,IAAI7C,MAAM,CAAC6C,QAAQ,KAAK,MAAM,EAAE;IACjD,OAAO;MACL,GAAGF,oBAAoB;MACvBE,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAEC,SAAS;IACrC,CAAC;EACH;EACA,OAAO;IACL,GAAGH;EACL,CAAC;AACH,CAAC;AAED,MAAMR,+BAA+B,GACnCnC,MAAc,IACgB;EAC9B,MAAM+C,eAAe,GAAG,CAAC,CAAC/C,MAAM,CAAC+C,eAAe;EAEhD,IAAI/C,MAAM,CAACgD,gCAAgC,EAAE;IAC3C,OAAO;MAAEA,gCAAgC,EAAE;IAAK,CAAC;EACnD;EACA,IAAIhD,MAAM,CAACiD,QAAQ,KAAK,KAAK,EAAE;IAC7B,OAAO;MACLA,QAAQ,EAAE,KAAK;MACfF;IACF,CAAC;EACH;EACA,OAAO;IACLG,aAAa,EAAE,CAAC,CAAClD,MAAM,CAACkD,aAAa;IACrCH;EACF,CAAC;AACH,CAAC","ignoreList":[]}