@wix/auto-patterns 1.7.0 → 1.8.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 (453) 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/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +3 -2
  4. package/dist/cjs/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  5. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +242 -71
  6. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  7. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateInput.js +28 -5
  8. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
  9. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js +45 -10
  10. package/dist/cjs/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  11. package/dist/cjs/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +7 -5
  12. package/dist/cjs/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
  13. package/dist/cjs/components/AutoPatternsEntityPage/Fields/LongText.js +16 -5
  14. package/dist/cjs/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
  15. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Number.js +43 -5
  16. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
  17. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ShortText.js +30 -5
  18. package/dist/cjs/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
  19. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Url.js +27 -9
  20. package/dist/cjs/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
  21. package/dist/cjs/components/AutoPatternsEntityPage/Fields/types.js.map +1 -1
  22. package/dist/cjs/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.js +39 -0
  23. package/dist/cjs/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.js.map +1 -0
  24. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js +8 -10
  25. package/dist/cjs/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  26. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsRoutes.js +84 -0
  27. package/dist/cjs/components/AutoPatternsRoute/AutoPatternsRoutes.js.map +1 -0
  28. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js +8 -10
  29. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  30. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js +7 -8
  31. package/dist/cjs/components/AutoPatternsTable/AutoPatternsTableContent.js.map +1 -1
  32. package/dist/cjs/components/DynamicIcon.js +71 -0
  33. package/dist/cjs/components/DynamicIcon.js.map +1 -0
  34. package/dist/cjs/components/ModalRenderer.js +40 -0
  35. package/dist/cjs/components/ModalRenderer.js.map +1 -0
  36. package/dist/cjs/components/filters/DynamicCollectionFilter.js +63 -0
  37. package/dist/cjs/components/filters/DynamicCollectionFilter.js.map +1 -0
  38. package/dist/cjs/components/filters/StaticCollectionFilter.js +31 -0
  39. package/dist/cjs/components/filters/StaticCollectionFilter.js.map +1 -0
  40. package/dist/cjs/components/filters/index.js +9 -0
  41. package/dist/cjs/components/filters/index.js.map +1 -0
  42. package/dist/cjs/components/modals/actions/BulkDeleteModal.js +95 -0
  43. package/dist/cjs/components/modals/actions/BulkDeleteModal.js.map +1 -0
  44. package/dist/cjs/components/modals/actions/EditModal.js +136 -0
  45. package/dist/cjs/components/modals/actions/EditModal.js.map +1 -0
  46. package/dist/cjs/components/modals/actions/index.js +16 -0
  47. package/dist/cjs/components/modals/actions/index.js.map +1 -0
  48. package/dist/cjs/{collectionData/CollectionData.js → components/modals/actions/types.js} +1 -1
  49. package/dist/cjs/components/modals/actions/types.js.map +1 -0
  50. package/dist/cjs/components/modals/index.js +10 -0
  51. package/dist/cjs/components/modals/index.js.map +1 -0
  52. package/dist/cjs/{collectionData/cms/CmsCollectionData.js → dataSourceAdapters/cms/cmsAdapter.js} +57 -18
  53. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -0
  54. package/dist/cjs/{collectionData → dataSourceAdapters}/cms/filterUtils.js +18 -11
  55. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -0
  56. package/dist/cjs/dataSourceAdapters/cms/sortUtils.js.map +1 -0
  57. package/dist/cjs/dataSourceAdapters/constants.js.map +1 -0
  58. package/dist/cjs/dataSourceAdapters/factory.js +34 -0
  59. package/dist/cjs/dataSourceAdapters/factory.js.map +1 -0
  60. package/dist/cjs/exports/form.js +10 -0
  61. package/dist/cjs/exports/form.js.map +1 -0
  62. package/dist/cjs/hooks/index.js +12 -0
  63. package/dist/cjs/hooks/index.js.map +1 -1
  64. package/dist/cjs/hooks/useActionCell.js +109 -0
  65. package/dist/cjs/hooks/useActionCell.js.map +1 -0
  66. package/dist/cjs/hooks/useAutoPatternsOptimisticActions.js +15 -0
  67. package/dist/cjs/hooks/useAutoPatternsOptimisticActions.js.map +1 -0
  68. package/dist/cjs/hooks/useBulkActionToolbar.js +88 -0
  69. package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -0
  70. package/dist/cjs/hooks/useColumns.js +90 -37
  71. package/dist/cjs/hooks/useColumns.js.map +1 -1
  72. package/dist/cjs/hooks/useCommonCollectionFeatures.js +27 -35
  73. package/dist/cjs/hooks/useCommonCollectionFeatures.js.map +1 -1
  74. package/dist/cjs/hooks/useFetchData.js +33 -9
  75. package/dist/cjs/hooks/useFetchData.js.map +1 -1
  76. package/dist/cjs/hooks/useFilters.js +83 -92
  77. package/dist/cjs/hooks/useFilters.js.map +1 -1
  78. package/dist/cjs/hooks/useGridFeatures.js +31 -21
  79. package/dist/cjs/hooks/useGridFeatures.js.map +1 -1
  80. package/dist/cjs/hooks/useNavigationUtils.js +51 -0
  81. package/dist/cjs/hooks/useNavigationUtils.js.map +1 -0
  82. package/dist/cjs/hooks/usePagePath.js +35 -0
  83. package/dist/cjs/hooks/usePagePath.js.map +1 -0
  84. package/dist/cjs/hooks/useSharedDataForActions.js +44 -0
  85. package/dist/cjs/hooks/useSharedDataForActions.js.map +1 -0
  86. package/dist/cjs/hooks/useTableFeatures.js +23 -15
  87. package/dist/cjs/hooks/useTableFeatures.js.map +1 -1
  88. package/dist/cjs/providers/AppConfigContext.js +33 -0
  89. package/dist/cjs/providers/AppConfigContext.js.map +1 -0
  90. package/dist/cjs/providers/ModalContext.js +58 -0
  91. package/dist/cjs/providers/ModalContext.js.map +1 -0
  92. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  93. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  94. package/dist/cjs/providers/RootAppProvider.js +40 -0
  95. package/dist/cjs/providers/RootAppProvider.js.map +1 -0
  96. package/dist/cjs/providers/SchemaContext.js +49 -5
  97. package/dist/cjs/providers/SchemaContext.js.map +1 -1
  98. package/dist/cjs/providers/SchemaRegistryContext.js +49 -0
  99. package/dist/cjs/providers/SchemaRegistryContext.js.map +1 -0
  100. package/dist/cjs/providers/index.js +22 -4
  101. package/dist/cjs/providers/index.js.map +1 -1
  102. package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
  103. package/dist/cjs/types/EntityPageConfig.js.map +1 -1
  104. package/dist/cjs/types/actions/actionCell.js +4 -0
  105. package/dist/cjs/types/actions/actionCell.js.map +1 -0
  106. package/dist/cjs/types/actions/base.js +4 -0
  107. package/dist/cjs/types/actions/base.js.map +1 -0
  108. package/dist/cjs/types/actions/bulkActions.js +4 -0
  109. package/dist/cjs/types/actions/bulkActions.js.map +1 -0
  110. package/dist/cjs/types/actions/index.js +22 -0
  111. package/dist/cjs/types/actions/index.js.map +1 -0
  112. package/dist/cjs/types/index.js +12 -0
  113. package/dist/cjs/types/index.js.map +1 -1
  114. package/dist/cjs/types/types.js.map +1 -1
  115. package/dist/cjs/utils/actions/bulkDeleteAction.js +26 -0
  116. package/dist/cjs/utils/actions/bulkDeleteAction.js.map +1 -0
  117. package/dist/cjs/utils/actions/customAction.js +23 -0
  118. package/dist/cjs/utils/actions/customAction.js.map +1 -0
  119. package/dist/cjs/utils/actions/customModalAction.js +22 -0
  120. package/dist/cjs/utils/actions/customModalAction.js.map +1 -0
  121. package/dist/cjs/utils/actions/deleteAction.js +61 -0
  122. package/dist/cjs/utils/actions/deleteAction.js.map +1 -0
  123. package/dist/cjs/utils/actions/index.js +40 -0
  124. package/dist/cjs/utils/actions/index.js.map +1 -0
  125. package/dist/cjs/utils/actions/resolveAction.js +27 -0
  126. package/dist/cjs/utils/actions/resolveAction.js.map +1 -0
  127. package/dist/cjs/utils/actions/types.js +4 -0
  128. package/dist/cjs/utils/actions/types.js.map +1 -0
  129. package/dist/cjs/utils/actions/updateAction.js +46 -0
  130. package/dist/cjs/utils/actions/updateAction.js.map +1 -0
  131. package/dist/cjs/utils/filterCreators.js +137 -0
  132. package/dist/cjs/utils/filterCreators.js.map +1 -0
  133. package/dist/cjs/utils/media/getImageUrl.js +22 -0
  134. package/dist/cjs/utils/media/getImageUrl.js.map +1 -0
  135. package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js +6 -14
  136. package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js.map +1 -1
  137. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js +1 -0
  138. package/dist/esm/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.js.map +1 -1
  139. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +155 -34
  140. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  141. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js +27 -4
  142. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateInput.js.map +1 -1
  143. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js +41 -6
  144. package/dist/esm/components/AutoPatternsEntityPage/Fields/DateTime.js.map +1 -1
  145. package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js +7 -5
  146. package/dist/esm/components/AutoPatternsEntityPage/Fields/FormFieldInput.js.map +1 -1
  147. package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js +14 -4
  148. package/dist/esm/components/AutoPatternsEntityPage/Fields/LongText.js.map +1 -1
  149. package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js +41 -4
  150. package/dist/esm/components/AutoPatternsEntityPage/Fields/Number.js.map +1 -1
  151. package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js +28 -4
  152. package/dist/esm/components/AutoPatternsEntityPage/Fields/ShortText.js.map +1 -1
  153. package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js +23 -5
  154. package/dist/esm/components/AutoPatternsEntityPage/Fields/Url.js.map +1 -1
  155. package/dist/esm/components/AutoPatternsEntityPage/Fields/types.js.map +1 -1
  156. package/dist/esm/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.js +35 -0
  157. package/dist/esm/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.js.map +1 -0
  158. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js +5 -6
  159. package/dist/esm/components/AutoPatternsGrid/AutoPatternsGrid.js.map +1 -1
  160. package/dist/esm/components/AutoPatternsRoute/AutoPatternsRoutes.js +47 -0
  161. package/dist/esm/components/AutoPatternsRoute/AutoPatternsRoutes.js.map +1 -0
  162. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js +5 -6
  163. package/dist/esm/components/AutoPatternsTable/AutoPatternsTable.js.map +1 -1
  164. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js +9 -10
  165. package/dist/esm/components/AutoPatternsTable/AutoPatternsTableContent.js.map +1 -1
  166. package/dist/esm/components/DynamicIcon.js +33 -0
  167. package/dist/esm/components/DynamicIcon.js.map +1 -0
  168. package/dist/esm/components/ModalRenderer.js +25 -0
  169. package/dist/esm/components/ModalRenderer.js.map +1 -0
  170. package/dist/esm/components/filters/DynamicCollectionFilter.js +50 -0
  171. package/dist/esm/components/filters/DynamicCollectionFilter.js.map +1 -0
  172. package/dist/esm/components/filters/StaticCollectionFilter.js +18 -0
  173. package/dist/esm/components/filters/StaticCollectionFilter.js.map +1 -0
  174. package/dist/esm/components/filters/index.js +3 -0
  175. package/dist/esm/components/filters/index.js.map +1 -0
  176. package/dist/esm/components/modals/actions/BulkDeleteModal.js +57 -0
  177. package/dist/esm/components/modals/actions/BulkDeleteModal.js.map +1 -0
  178. package/dist/esm/components/modals/actions/EditModal.js +78 -0
  179. package/dist/esm/components/modals/actions/EditModal.js.map +1 -0
  180. package/dist/esm/components/modals/actions/index.js +3 -0
  181. package/dist/esm/components/modals/actions/index.js.map +1 -0
  182. package/dist/esm/components/modals/actions/types.js +2 -0
  183. package/dist/esm/components/modals/actions/types.js.map +1 -0
  184. package/dist/esm/components/modals/index.js +2 -0
  185. package/dist/esm/components/modals/index.js.map +1 -0
  186. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +131 -0
  187. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -0
  188. package/dist/esm/{collectionData → dataSourceAdapters}/cms/filterUtils.js +18 -11
  189. package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -0
  190. package/dist/esm/dataSourceAdapters/cms/sortUtils.js.map +1 -0
  191. package/dist/esm/dataSourceAdapters/constants.js.map +1 -0
  192. package/dist/esm/dataSourceAdapters/factory.js +30 -0
  193. package/dist/esm/dataSourceAdapters/factory.js.map +1 -0
  194. package/dist/esm/exports/form.js +2 -0
  195. package/dist/esm/exports/form.js.map +1 -0
  196. package/dist/esm/hooks/index.js +2 -0
  197. package/dist/esm/hooks/index.js.map +1 -1
  198. package/dist/esm/hooks/useActionCell.js +105 -0
  199. package/dist/esm/hooks/useActionCell.js.map +1 -0
  200. package/dist/esm/hooks/useAutoPatternsOptimisticActions.js +13 -0
  201. package/dist/esm/hooks/useAutoPatternsOptimisticActions.js.map +1 -0
  202. package/dist/esm/hooks/useBulkActionToolbar.js +75 -0
  203. package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -0
  204. package/dist/esm/hooks/useColumns.js +70 -38
  205. package/dist/esm/hooks/useColumns.js.map +1 -1
  206. package/dist/esm/hooks/useCommonCollectionFeatures.js +23 -24
  207. package/dist/esm/hooks/useCommonCollectionFeatures.js.map +1 -1
  208. package/dist/esm/hooks/useFetchData.js +34 -10
  209. package/dist/esm/hooks/useFetchData.js.map +1 -1
  210. package/dist/esm/hooks/useFilters.js +75 -85
  211. package/dist/esm/hooks/useFilters.js.map +1 -1
  212. package/dist/esm/hooks/useGridFeatures.js +31 -21
  213. package/dist/esm/hooks/useGridFeatures.js.map +1 -1
  214. package/dist/esm/hooks/useNavigationUtils.js +47 -0
  215. package/dist/esm/hooks/useNavigationUtils.js.map +1 -0
  216. package/dist/esm/hooks/usePagePath.js +30 -0
  217. package/dist/esm/hooks/usePagePath.js.map +1 -0
  218. package/dist/esm/hooks/useSharedDataForActions.js +40 -0
  219. package/dist/esm/hooks/useSharedDataForActions.js.map +1 -0
  220. package/dist/esm/hooks/useTableFeatures.js +20 -13
  221. package/dist/esm/hooks/useTableFeatures.js.map +1 -1
  222. package/dist/esm/providers/AppConfigContext.js +19 -0
  223. package/dist/esm/providers/AppConfigContext.js.map +1 -0
  224. package/dist/esm/providers/ModalContext.js +37 -0
  225. package/dist/esm/providers/ModalContext.js.map +1 -0
  226. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  227. package/dist/esm/providers/RootAppProvider.js +14 -0
  228. package/dist/esm/providers/RootAppProvider.js.map +1 -0
  229. package/dist/esm/providers/SchemaContext.js +48 -4
  230. package/dist/esm/providers/SchemaContext.js.map +1 -1
  231. package/dist/esm/providers/SchemaRegistryContext.js +35 -0
  232. package/dist/esm/providers/SchemaRegistryContext.js.map +1 -0
  233. package/dist/esm/providers/index.js +4 -1
  234. package/dist/esm/providers/index.js.map +1 -1
  235. package/dist/esm/types/CollectionPageConfig.js.map +1 -1
  236. package/dist/esm/types/EntityPageConfig.js.map +1 -1
  237. package/dist/esm/types/actions/actionCell.js +2 -0
  238. package/dist/esm/types/actions/actionCell.js.map +1 -0
  239. package/dist/esm/types/actions/base.js +2 -0
  240. package/dist/esm/types/actions/base.js.map +1 -0
  241. package/dist/esm/types/actions/bulkActions.js +2 -0
  242. package/dist/esm/types/actions/bulkActions.js.map +1 -0
  243. package/dist/esm/types/actions/index.js +4 -0
  244. package/dist/esm/types/actions/index.js.map +1 -0
  245. package/dist/esm/types/index.js +2 -0
  246. package/dist/esm/types/index.js.map +1 -1
  247. package/dist/esm/types/types.js.map +1 -1
  248. package/dist/esm/utils/actions/bulkDeleteAction.js +21 -0
  249. package/dist/esm/utils/actions/bulkDeleteAction.js.map +1 -0
  250. package/dist/esm/utils/actions/customAction.js +18 -0
  251. package/dist/esm/utils/actions/customAction.js.map +1 -0
  252. package/dist/esm/utils/actions/customModalAction.js +17 -0
  253. package/dist/esm/utils/actions/customModalAction.js.map +1 -0
  254. package/dist/esm/utils/actions/deleteAction.js +56 -0
  255. package/dist/esm/utils/actions/deleteAction.js.map +1 -0
  256. package/dist/esm/utils/actions/index.js +8 -0
  257. package/dist/esm/utils/actions/index.js.map +1 -0
  258. package/dist/esm/utils/actions/resolveAction.js +13 -0
  259. package/dist/esm/utils/actions/resolveAction.js.map +1 -0
  260. package/dist/esm/utils/actions/types.js +2 -0
  261. package/dist/esm/utils/actions/types.js.map +1 -0
  262. package/dist/esm/utils/actions/updateAction.js +41 -0
  263. package/dist/esm/utils/actions/updateAction.js.map +1 -0
  264. package/dist/esm/utils/filterCreators.js +139 -0
  265. package/dist/esm/utils/filterCreators.js.map +1 -0
  266. package/dist/esm/utils/media/getImageUrl.js +16 -0
  267. package/dist/esm/utils/media/getImageUrl.js.map +1 -0
  268. package/dist/types/components/AutoPatternsApp/AutoPatternsApp.d.ts.map +1 -1
  269. package/dist/types/components/AutoPatternsCollectionPageContent/AutoPatternsCollectionPageContent.d.ts.map +1 -1
  270. package/dist/types/components/AutoPatternsEntityPage/AutoPatternsEntityPage.d.ts.map +1 -1
  271. package/dist/types/components/AutoPatternsEntityPage/Fields/Checkbox.d.ts.map +1 -1
  272. package/dist/types/components/AutoPatternsEntityPage/Fields/DateInput.d.ts.map +1 -1
  273. package/dist/types/components/AutoPatternsEntityPage/Fields/DateTime.d.ts.map +1 -1
  274. package/dist/types/components/AutoPatternsEntityPage/Fields/FormFieldInput.d.ts +3 -1
  275. package/dist/types/components/AutoPatternsEntityPage/Fields/FormFieldInput.d.ts.map +1 -1
  276. package/dist/types/components/AutoPatternsEntityPage/Fields/LongText.d.ts.map +1 -1
  277. package/dist/types/components/AutoPatternsEntityPage/Fields/Number.d.ts.map +1 -1
  278. package/dist/types/components/AutoPatternsEntityPage/Fields/ShortText.d.ts.map +1 -1
  279. package/dist/types/components/AutoPatternsEntityPage/Fields/Url.d.ts.map +1 -1
  280. package/dist/types/components/AutoPatternsEntityPage/Fields/types.d.ts +2 -0
  281. package/dist/types/components/AutoPatternsEntityPage/Fields/types.d.ts.map +1 -1
  282. package/dist/types/components/AutoPatternsEntityPage/Fields/utils/dates.d.ts.map +1 -1
  283. package/dist/types/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.d.ts +12 -0
  284. package/dist/types/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.d.ts.map +1 -0
  285. package/dist/types/components/AutoPatternsGrid/AutoPatternsGrid.d.ts.map +1 -1
  286. package/dist/types/components/AutoPatternsGrid/AutoPatternsGridContent.d.ts.map +1 -1
  287. package/dist/types/components/AutoPatternsRoute/AutoPatternsPage.d.ts.map +1 -1
  288. package/dist/types/components/AutoPatternsRoute/AutoPatternsRoutes.d.ts +6 -0
  289. package/dist/types/components/AutoPatternsRoute/AutoPatternsRoutes.d.ts.map +1 -0
  290. package/dist/types/components/AutoPatternsTable/AutoPatternsTable.d.ts.map +1 -1
  291. package/dist/types/components/AutoPatternsTable/AutoPatternsTableContent.d.ts.map +1 -1
  292. package/dist/types/components/DynamicIcon.d.ts +6 -0
  293. package/dist/types/components/DynamicIcon.d.ts.map +1 -0
  294. package/dist/types/components/ModalRenderer.d.ts +3 -0
  295. package/dist/types/components/ModalRenderer.d.ts.map +1 -0
  296. package/dist/types/components/filters/DynamicCollectionFilter.d.ts +12 -0
  297. package/dist/types/components/filters/DynamicCollectionFilter.d.ts.map +1 -0
  298. package/dist/types/components/filters/StaticCollectionFilter.d.ts +14 -0
  299. package/dist/types/components/filters/StaticCollectionFilter.d.ts.map +1 -0
  300. package/dist/types/components/filters/index.d.ts +3 -0
  301. package/dist/types/components/filters/index.d.ts.map +1 -0
  302. package/dist/types/components/modals/actions/BulkDeleteModal.d.ts +9 -0
  303. package/dist/types/components/modals/actions/BulkDeleteModal.d.ts.map +1 -0
  304. package/dist/types/components/modals/actions/EditModal.d.ts +11 -0
  305. package/dist/types/components/modals/actions/EditModal.d.ts.map +1 -0
  306. package/dist/types/components/modals/actions/index.d.ts +3 -0
  307. package/dist/types/components/modals/actions/index.d.ts.map +1 -0
  308. package/dist/types/components/modals/actions/types.d.ts +7 -0
  309. package/dist/types/components/modals/actions/types.d.ts.map +1 -0
  310. package/dist/types/components/modals/index.d.ts +2 -0
  311. package/dist/types/components/modals/index.d.ts.map +1 -0
  312. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts +14 -0
  313. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -0
  314. package/dist/types/{collectionData → dataSourceAdapters}/cms/filterUtils.d.ts +3 -2
  315. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -0
  316. package/dist/types/dataSourceAdapters/cms/sortUtils.d.ts.map +1 -0
  317. package/dist/types/dataSourceAdapters/constants.d.ts.map +1 -0
  318. package/dist/types/dataSourceAdapters/factory.d.ts +13 -0
  319. package/dist/types/dataSourceAdapters/factory.d.ts.map +1 -0
  320. package/dist/types/exports/form.d.ts +2 -0
  321. package/dist/types/exports/form.d.ts.map +1 -0
  322. package/dist/types/hooks/index.d.ts +2 -0
  323. package/dist/types/hooks/index.d.ts.map +1 -1
  324. package/dist/types/hooks/useActionCell.d.ts +11 -0
  325. package/dist/types/hooks/useActionCell.d.ts.map +1 -0
  326. package/dist/types/hooks/useAutoPatternsOptimisticActions.d.ts +3 -0
  327. package/dist/types/hooks/useAutoPatternsOptimisticActions.d.ts.map +1 -0
  328. package/dist/types/hooks/useBulkActionToolbar.d.ts +11 -0
  329. package/dist/types/hooks/useBulkActionToolbar.d.ts.map +1 -0
  330. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  331. package/dist/types/hooks/useCommonCollectionFeatures.d.ts +9 -9
  332. package/dist/types/hooks/useCommonCollectionFeatures.d.ts.map +1 -1
  333. package/dist/types/hooks/useEmptyStates.d.ts.map +1 -1
  334. package/dist/types/hooks/useFetchData.d.ts +6 -2
  335. package/dist/types/hooks/useFetchData.d.ts.map +1 -1
  336. package/dist/types/hooks/useFilters.d.ts +5 -1
  337. package/dist/types/hooks/useFilters.d.ts.map +1 -1
  338. package/dist/types/hooks/useGridFeatures.d.ts +2 -8
  339. package/dist/types/hooks/useGridFeatures.d.ts.map +1 -1
  340. package/dist/types/hooks/useNavigationUtils.d.ts +10 -0
  341. package/dist/types/hooks/useNavigationUtils.d.ts.map +1 -0
  342. package/dist/types/hooks/usePagePath.d.ts +5 -0
  343. package/dist/types/hooks/usePagePath.d.ts.map +1 -0
  344. package/dist/types/hooks/useSharedDataForActions.d.ts +8 -0
  345. package/dist/types/hooks/useSharedDataForActions.d.ts.map +1 -0
  346. package/dist/types/hooks/useTableFeatures.d.ts +3 -7
  347. package/dist/types/hooks/useTableFeatures.d.ts.map +1 -1
  348. package/dist/types/providers/AppConfigContext.d.ts +8 -0
  349. package/dist/types/providers/AppConfigContext.d.ts.map +1 -0
  350. package/dist/types/providers/ModalContext.d.ts +20 -0
  351. package/dist/types/providers/ModalContext.d.ts.map +1 -0
  352. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +5 -2
  353. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  354. package/dist/types/providers/RootAppProvider.d.ts +7 -0
  355. package/dist/types/providers/RootAppProvider.d.ts.map +1 -0
  356. package/dist/types/providers/SchemaContext.d.ts.map +1 -1
  357. package/dist/types/providers/SchemaRegistryContext.d.ts +13 -0
  358. package/dist/types/providers/SchemaRegistryContext.d.ts.map +1 -0
  359. package/dist/types/providers/index.d.ts +4 -1
  360. package/dist/types/providers/index.d.ts.map +1 -1
  361. package/dist/types/types/CollectionPageConfig.d.ts +33 -32
  362. package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
  363. package/dist/types/types/EntityPageConfig.d.ts +51 -2
  364. package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
  365. package/dist/types/types/actions/actionCell.d.ts +24 -0
  366. package/dist/types/types/actions/actionCell.d.ts.map +1 -0
  367. package/dist/types/types/actions/base.d.ts +93 -0
  368. package/dist/types/types/actions/base.d.ts.map +1 -0
  369. package/dist/types/types/actions/bulkActions.d.ts +28 -0
  370. package/dist/types/types/actions/bulkActions.d.ts.map +1 -0
  371. package/dist/types/types/actions/index.d.ts +4 -0
  372. package/dist/types/types/actions/index.d.ts.map +1 -0
  373. package/dist/types/types/index.d.ts +2 -0
  374. package/dist/types/types/index.d.ts.map +1 -1
  375. package/dist/types/types/types.d.ts +47 -9
  376. package/dist/types/types/types.d.ts.map +1 -1
  377. package/dist/types/utils/actions/bulkDeleteAction.d.ts +7 -0
  378. package/dist/types/utils/actions/bulkDeleteAction.d.ts.map +1 -0
  379. package/dist/types/utils/actions/customAction.d.ts +3 -0
  380. package/dist/types/utils/actions/customAction.d.ts.map +1 -0
  381. package/dist/types/utils/actions/customModalAction.d.ts +5 -0
  382. package/dist/types/utils/actions/customModalAction.d.ts.map +1 -0
  383. package/dist/types/utils/actions/deleteAction.d.ts +7 -0
  384. package/dist/types/utils/actions/deleteAction.d.ts.map +1 -0
  385. package/dist/types/utils/actions/index.d.ts +8 -0
  386. package/dist/types/utils/actions/index.d.ts.map +1 -0
  387. package/dist/types/utils/actions/resolveAction.d.ts +11 -0
  388. package/dist/types/utils/actions/resolveAction.d.ts.map +1 -0
  389. package/dist/types/utils/actions/types.d.ts +65 -0
  390. package/dist/types/utils/actions/types.d.ts.map +1 -0
  391. package/dist/types/utils/actions/updateAction.d.ts +7 -0
  392. package/dist/types/utils/actions/updateAction.d.ts.map +1 -0
  393. package/dist/types/utils/filterCreators.d.ts +48 -0
  394. package/dist/types/utils/filterCreators.d.ts.map +1 -0
  395. package/dist/types/utils/media/getImageUrl.d.ts +3 -0
  396. package/dist/types/utils/media/getImageUrl.d.ts.map +1 -0
  397. package/form/package.json +6 -0
  398. package/package.json +10 -8
  399. package/dist/cjs/collectionData/CollectionData.js.map +0 -1
  400. package/dist/cjs/collectionData/CollectionDataFactory.js +0 -12
  401. package/dist/cjs/collectionData/CollectionDataFactory.js.map +0 -1
  402. package/dist/cjs/collectionData/SchemaFactory.js +0 -12
  403. package/dist/cjs/collectionData/SchemaFactory.js.map +0 -1
  404. package/dist/cjs/collectionData/cms/CmsCollectionData.js.map +0 -1
  405. package/dist/cjs/collectionData/cms/filterUtils.js.map +0 -1
  406. package/dist/cjs/collectionData/cms/sortUtils.js.map +0 -1
  407. package/dist/cjs/collectionData/constants.js.map +0 -1
  408. package/dist/cjs/collectionData/index.js +0 -10
  409. package/dist/cjs/collectionData/index.js.map +0 -1
  410. package/dist/cjs/providers/CollectionDataContext.js +0 -44
  411. package/dist/cjs/providers/CollectionDataContext.js.map +0 -1
  412. package/dist/cjs/utils/filters.js +0 -53
  413. package/dist/cjs/utils/filters.js.map +0 -1
  414. package/dist/esm/collectionData/CollectionData.js +0 -2
  415. package/dist/esm/collectionData/CollectionData.js.map +0 -1
  416. package/dist/esm/collectionData/CollectionDataFactory.js +0 -8
  417. package/dist/esm/collectionData/CollectionDataFactory.js.map +0 -1
  418. package/dist/esm/collectionData/SchemaFactory.js +0 -8
  419. package/dist/esm/collectionData/SchemaFactory.js.map +0 -1
  420. package/dist/esm/collectionData/cms/CmsCollectionData.js +0 -91
  421. package/dist/esm/collectionData/cms/CmsCollectionData.js.map +0 -1
  422. package/dist/esm/collectionData/cms/filterUtils.js.map +0 -1
  423. package/dist/esm/collectionData/cms/sortUtils.js.map +0 -1
  424. package/dist/esm/collectionData/constants.js.map +0 -1
  425. package/dist/esm/collectionData/index.js +0 -2
  426. package/dist/esm/collectionData/index.js.map +0 -1
  427. package/dist/esm/providers/CollectionDataContext.js +0 -30
  428. package/dist/esm/providers/CollectionDataContext.js.map +0 -1
  429. package/dist/esm/utils/filters.js +0 -49
  430. package/dist/esm/utils/filters.js.map +0 -1
  431. package/dist/types/collectionData/CollectionData.d.ts +0 -9
  432. package/dist/types/collectionData/CollectionData.d.ts.map +0 -1
  433. package/dist/types/collectionData/CollectionDataFactory.d.ts +0 -4
  434. package/dist/types/collectionData/CollectionDataFactory.d.ts.map +0 -1
  435. package/dist/types/collectionData/SchemaFactory.d.ts +0 -3
  436. package/dist/types/collectionData/SchemaFactory.d.ts.map +0 -1
  437. package/dist/types/collectionData/cms/CmsCollectionData.d.ts +0 -8
  438. package/dist/types/collectionData/cms/CmsCollectionData.d.ts.map +0 -1
  439. package/dist/types/collectionData/cms/filterUtils.d.ts.map +0 -1
  440. package/dist/types/collectionData/cms/sortUtils.d.ts.map +0 -1
  441. package/dist/types/collectionData/constants.d.ts.map +0 -1
  442. package/dist/types/collectionData/index.d.ts +0 -2
  443. package/dist/types/collectionData/index.d.ts.map +0 -1
  444. package/dist/types/providers/CollectionDataContext.d.ts +0 -12
  445. package/dist/types/providers/CollectionDataContext.d.ts.map +0 -1
  446. package/dist/types/utils/filters.d.ts +0 -7
  447. package/dist/types/utils/filters.d.ts.map +0 -1
  448. /package/dist/cjs/{collectionData → dataSourceAdapters}/cms/sortUtils.js +0 -0
  449. /package/dist/cjs/{collectionData → dataSourceAdapters}/constants.js +0 -0
  450. /package/dist/esm/{collectionData → dataSourceAdapters}/cms/sortUtils.js +0 -0
  451. /package/dist/esm/{collectionData → dataSourceAdapters}/constants.js +0 -0
  452. /package/dist/types/{collectionData → dataSourceAdapters}/cms/sortUtils.d.ts +0 -0
  453. /package/dist/types/{collectionData → dataSourceAdapters}/constants.d.ts +0 -0
@@ -1,11 +1,20 @@
1
- import React, { useRef, useMemo, useState } from 'react';
1
+ import React, { useRef, useMemo, useState, useEffect } from 'react';
2
2
  import { Cell, DatePicker, FormField, Layout, TimeInput } from '@wix/design-system';
3
+ import { useWixPatternsContainer, useSelector } from '@wix/patterns';
3
4
  export const DateTime = props => {
5
+ var _field$validation;
4
6
  const {
5
7
  field,
6
8
  value,
7
- onChange
9
+ onChange,
10
+ dataHook,
11
+ inputRef
8
12
  } = props;
13
+ const {
14
+ translate: t,
15
+ ...container
16
+ } = useWixPatternsContainer();
17
+ useSelector(() => container.initTask.status);
9
18
  const date = useMemo(() => {
10
19
  if (!value) {
11
20
  return undefined;
@@ -19,11 +28,31 @@ export const DateTime = props => {
19
28
  const timeRef = useRef({});
20
29
  const [dateValue, setDateValue] = useState(date == null ? void 0 : date.getDate());
21
30
  const [timeValue, setTimeValue] = useState(date == null ? void 0 : date.getTime());
31
+ useEffect(() => {
32
+ ref.current.focus = () => {
33
+ if (dateRef.current.invalid) {
34
+ return dateRef.current.focus == null ? void 0 : dateRef.current.focus();
35
+ }
36
+ return timeRef.current.focus == null ? void 0 : timeRef.current.focus();
37
+ };
38
+ inputRef == null || inputRef(ref.current);
39
+ }, [inputRef]);
22
40
  return /*#__PURE__*/React.createElement(FormField, {
23
- label: field.displayName
41
+ label: field.displayName,
42
+ required: (_field$validation = field.validation) == null ? void 0 : _field$validation.required,
43
+ dataHook: dataHook
24
44
  }, /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Cell, {
25
45
  span: 6
26
46
  }, /*#__PURE__*/React.createElement(DatePicker, {
47
+ ref: internalRef => {
48
+ dateRef.current.focus = () => {
49
+ var _internalRef$state;
50
+ return (// TODO: PR to WSR needed to expose as public API
51
+ // @ts-expect-error
52
+ internalRef == null || (_internalRef$state = internalRef.state) == null || (_internalRef$state = _internalRef$state.inputRef) == null || _internalRef$state.focus == null ? void 0 : _internalRef$state.focus()
53
+ );
54
+ };
55
+ },
27
56
  width: "100%",
28
57
  value: date
29
58
  // onChange is triggered only when you have valid, non-empty value. and onValidate is triggered on every change to we use onValidate
@@ -32,7 +61,8 @@ export const DateTime = props => {
32
61
  onValidate: _ref => {
33
62
  let {
34
63
  validationType,
35
- value: newValue
64
+ value: newValue,
65
+ format
36
66
  } = _ref;
37
67
  if (validationType === 'valid') {
38
68
  const dateWithNewDate = date ? new Date(date) : new Date(newValue);
@@ -52,7 +82,9 @@ export const DateTime = props => {
52
82
  onChange(null);
53
83
  }
54
84
  } else {
55
- setStatusMessage('Invalid date');
85
+ setStatusMessage(t('cairo.customFields.fieldType.date.invalid.value', {
86
+ dateFormat: format ?? ''
87
+ }));
56
88
  dateRef.current.invalid = true;
57
89
  }
58
90
  ref.current.invalid = dateRef.current.invalid || timeRef.current.invalid;
@@ -63,9 +95,12 @@ export const DateTime = props => {
63
95
  })), /*#__PURE__*/React.createElement(Cell, {
64
96
  span: 6
65
97
  }, /*#__PURE__*/React.createElement(TimeInput, {
98
+ ref: internalRef => {
99
+ timeRef.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
100
+ },
66
101
  dataHook: `datetime-time-${field.id}`,
67
102
  value: date ?? null,
68
- invalidMessage: "Invalid time",
103
+ invalidMessage: t('cairo.customFields.fieldType.dateAndTime.invalid.value'),
69
104
  onInvalid: () => {
70
105
  timeRef.current.invalid = true;
71
106
  ref.current.invalid = dateRef.current.invalid || timeRef.current.invalid;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useMemo","useState","Cell","DatePicker","FormField","Layout","TimeInput","DateTime","props","field","value","onChange","date","undefined","d","Date","isNaN","getTime","statusMessage","setStatusMessage","ref","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","createElement","label","displayName","span","width","onValidate","_ref","validationType","newValue","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","current","invalid","status","dataHook","id","invalidMessage","onInvalid","_ref2","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/DateTime.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\n\nexport interface DateTimeProps extends BaseInputProps<string | null> {}\nexport const DateTime = (props: DateTimeProps) => {\n const { field, value, onChange } = props;\n\n const date = useMemo(() => {\n if (!value) {\n return undefined;\n }\n const d = new Date(value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [value]);\n const [statusMessage, setStatusMessage] = useState('');\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n\n return (\n <FormField label={field.displayName}>\n <Layout>\n <Cell span={6}>\n <DatePicker\n width=\"100%\"\n value={date}\n // onChange is triggered only when you have valid, non-empty value. and onValidate is triggered on every change to we use onValidate\n onChange={() => {}}\n onValidate={({ validationType, value: newValue }) => {\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n onChange(dateWithNewDate.toISOString());\n setDateValue(new Date(newValue).getDate());\n setStatusMessage('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && value === '') {\n setStatusMessage('');\n dateRef.current.invalid = false;\n setDateValue(value);\n if (!timeValue) {\n onChange(null);\n }\n } else {\n setStatusMessage('Invalid date');\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n status={ref.current.invalid ? 'error' : undefined}\n statusMessage={statusMessage}\n dataHook={`datetime-date-${field.id}`}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n dataHook={`datetime-time-${field.id}`}\n value={date ?? null}\n invalidMessage=\"Invalid time\"\n onInvalid={() => {\n timeRef.current.invalid = true;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n onChange={({ date: newValue }) => {\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n onChange(dateWithNewTime.toISOString());\n } else if (!ref.current.invalid) {\n if (!newValue) {\n setTimeValue('');\n if (!dateValue) {\n onChange(null);\n }\n }\n }\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","useMemo","useState","useEffect","Cell","DatePicker","FormField","Layout","TimeInput","useWixPatternsContainer","useSelector","DateTime","props","_field$validation","field","value","onChange","dataHook","inputRef","translate","t","container","initTask","status","date","undefined","d","Date","isNaN","getTime","statusMessage","setStatusMessage","ref","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","current","focus","invalid","createElement","label","displayName","required","validation","span","internalRef","_internalRef$state","state","width","onValidate","_ref","validationType","newValue","format","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","dateFormat","id","invalidMessage","onInvalid","_ref2","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/DateTime.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport { useWixPatternsContainer, useSelector } from '@wix/patterns';\n\nexport interface DateTimeProps extends BaseInputProps<string | null> {}\nexport const DateTime = (props: DateTimeProps) => {\n const { field, value, onChange, dataHook, inputRef } = props;\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n\n const date = useMemo(() => {\n if (!value) {\n return undefined;\n }\n const d = new Date(value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [value]);\n const [statusMessage, setStatusMessage] = useState('');\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n\n useEffect(() => {\n ref.current.focus = () => {\n if (dateRef.current.invalid) {\n return dateRef.current.focus?.();\n }\n\n return timeRef.current.focus?.();\n };\n\n inputRef?.(ref.current);\n }, [inputRef]);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <Layout>\n <Cell span={6}>\n <DatePicker\n ref={(internalRef) => {\n dateRef.current.focus = () =>\n // TODO: PR to WSR needed to expose as public API\n // @ts-expect-error\n internalRef?.state?.inputRef?.focus?.();\n }}\n width=\"100%\"\n value={date}\n // onChange is triggered only when you have valid, non-empty value. and onValidate is triggered on every change to we use onValidate\n onChange={() => {}}\n onValidate={({ validationType, value: newValue, format }) => {\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n onChange(dateWithNewDate.toISOString());\n setDateValue(new Date(newValue).getDate());\n setStatusMessage('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && value === '') {\n setStatusMessage('');\n dateRef.current.invalid = false;\n setDateValue(value);\n if (!timeValue) {\n onChange(null);\n }\n } else {\n setStatusMessage(\n t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format ?? '',\n }),\n );\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n status={ref.current.invalid ? 'error' : undefined}\n statusMessage={statusMessage}\n dataHook={`datetime-date-${field.id}`}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n ref={(internalRef) => {\n timeRef.current.focus = () => internalRef?.focus();\n }}\n dataHook={`datetime-time-${field.id}`}\n value={date ?? null}\n invalidMessage={t(\n 'cairo.customFields.fieldType.dateAndTime.invalid.value',\n )}\n onInvalid={() => {\n timeRef.current.invalid = true;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n onChange={({ date: newValue }) => {\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n onChange(dateWithNewTime.toISOString());\n } else if (!ref.current.invalid) {\n if (!newValue) {\n setTimeValue('');\n if (!dateValue) {\n onChange(null);\n }\n }\n }\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -18,24 +18,26 @@ export const EDITABLE_INPUT_ELEMENTS = {
18
18
  URL: Url
19
19
  };
20
20
  export const FormFieldInput = props => {
21
- var _pageState$entity;
22
21
  const {
23
- field
22
+ field,
23
+ inputRef
24
24
  } = props;
25
25
  const pageState = useEntityPageContext();
26
26
  const controller = useController({
27
27
  name: (field == null ? void 0 : field.id) ?? '',
28
28
  control: pageState.form.control,
29
- defaultValue: (_pageState$entity = pageState.entity) == null ? void 0 : _pageState$entity[(field == null ? void 0 : field.id) ?? '']
29
+ defaultValue: pageState.entity[(field == null ? void 0 : field.id) ?? '']
30
30
  });
31
- if (!field || !EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type) || !pageState || !pageState.entity) {
31
+ if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type) || !pageState || !pageState.entity) {
32
32
  return null;
33
33
  }
34
34
  const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type];
35
35
  return /*#__PURE__*/React.createElement(FieldInput, {
36
36
  field: field,
37
37
  value: controller.field.value,
38
- onChange: controller.field.onChange
38
+ onChange: controller.field.onChange,
39
+ dataHook: `form-field-${field.id}`,
40
+ inputRef: inputRef
39
41
  });
40
42
  };
41
43
  //# sourceMappingURL=FormFieldInput.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ShortText","useEntityPageContext","useController","Checkbox","DateInput","DateTime","Number","LongText","Url","EDITABLE_INPUT_ELEMENTS","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","NUMBER","URL","FormFieldInput","props","_pageState$entity","field","pageState","controller","name","id","control","form","defaultValue","entity","hasOwnProperty","type","FieldInput","createElement","value","onChange"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/FormFieldInput.tsx"],"sourcesContent":["import React from 'react';\nimport { ShortText } from './ShortText';\nimport { useEntityPageContext } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../../types';\nimport { Checkbox } from './Checkbox';\nimport { DateInput } from './DateInput';\nimport { DateTime } from './DateTime';\nimport { Number } from './Number';\nimport { LongText } from './LongText';\nimport { Url } from './Url';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n NUMBER: Number,\n URL: Url,\n};\n\nexport interface FormFieldInputProps {\n field?: Field;\n}\n\nexport const FormFieldInput = (props: FormFieldInputProps) => {\n const { field } = props;\n\n const pageState = useEntityPageContext();\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)?.[field?.id ?? ''],\n });\n\n if (\n !field ||\n !EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type) ||\n !pageState ||\n !pageState.entity\n ) {\n return null;\n }\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,GAAG,QAAQ,OAAO;AAE3B,OAAO,MAAMC,uBAEZ,GAAG;EACFC,UAAU,EAAEV,SAAS;EACrBW,SAAS,EAAEJ,QAAQ;EACnBK,OAAO,EAAET,QAAQ;EACjBU,IAAI,EAAET,SAAS;EACfU,QAAQ,EAAET,QAAQ;EAClBU,MAAM,EAAET,MAAM;EACdU,GAAG,EAAER;AACP,CAAC;AAMD,OAAO,MAAMS,cAAc,GAAIC,KAA0B,IAAK;EAAA,IAAAC,iBAAA;EAC5D,MAAM;IAAEC;EAAM,CAAC,GAAGF,KAAK;EAEvB,MAAMG,SAAS,GAAGpB,oBAAoB,CAAC,CAAC;EACxC,MAAMqB,UAAU,GAAGpB,aAAa,CAAC;IAC/BqB,IAAI,EAAE,CAAAH,KAAK,oBAALA,KAAK,CAAEI,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEJ,SAAS,CAACK,IAAI,CAACD,OAAO;IAC/BE,YAAY,GAAAR,iBAAA,GAAGE,SAAS,CAACO,MAAM,qBAAjBT,iBAAA,CAA4B,CAAAC,KAAK,oBAALA,KAAK,CAAEI,EAAE,KAAI,EAAE;EAC3D,CAAC,CAAC;EAEF,IACE,CAACJ,KAAK,IACN,CAACX,uBAAuB,CAACoB,cAAc,CAACT,KAAK,CAACU,IAAI,CAAC,IACnD,CAACT,SAAS,IACV,CAACA,SAAS,CAACO,MAAM,EACjB;IACA,OAAO,IAAI;EACb;EACA,MAAMG,UAAU,GAAGtB,uBAAuB,CAACW,KAAK,CAACU,IAAI,CAAE;EAEvD,oBACE/B,KAAA,CAAAiC,aAAA,CAACD,UAAU;IACTX,KAAK,EAAEA,KAAM;IACba,KAAK,EAAEX,UAAU,CAACF,KAAK,CAACa,KAAM;IAC9BC,QAAQ,EAAEZ,UAAU,CAACF,KAAK,CAACc;EAAS,CACrC,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","ShortText","useEntityPageContext","useController","Checkbox","DateInput","DateTime","Number","LongText","Url","EDITABLE_INPUT_ELEMENTS","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","NUMBER","URL","FormFieldInput","props","field","inputRef","pageState","controller","name","id","control","form","defaultValue","entity","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/FormFieldInput.tsx"],"sourcesContent":["import React from 'react';\nimport { ShortText } from './ShortText';\nimport { useEntityPageContext } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../../types';\nimport { Checkbox } from './Checkbox';\nimport { DateInput } from './DateInput';\nimport { DateTime } from './DateTime';\nimport { Number } from './Number';\nimport { LongText } from './LongText';\nimport { Url } from './Url';\nimport { BaseInputProps } from './types';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n NUMBER: Number,\n URL: Url,\n};\n\nexport interface FormFieldInputProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n}\n\nexport const FormFieldInput = (props: FormFieldInputProps) => {\n const { field, inputRef } = props;\n\n const pageState = useEntityPageContext();\n\n const controller = useController({\n name: field?.id ?? '',\n control: pageState.form.control,\n defaultValue: (pageState.entity as any)[field?.id ?? ''],\n });\n\n if (\n !EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type) ||\n !pageState ||\n !pageState.entity\n ) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,GAAG,QAAQ,OAAO;AAG3B,OAAO,MAAMC,uBAEZ,GAAG;EACFC,UAAU,EAAEV,SAAS;EACrBW,SAAS,EAAEJ,QAAQ;EACnBK,OAAO,EAAET,QAAQ;EACjBU,IAAI,EAAET,SAAS;EACfU,QAAQ,EAAET,QAAQ;EAClBU,MAAM,EAAET,MAAM;EACdU,GAAG,EAAER;AACP,CAAC;AAOD,OAAO,MAAMS,cAAc,GAAIC,KAA0B,IAAK;EAC5D,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAEjC,MAAMG,SAAS,GAAGpB,oBAAoB,CAAC,CAAC;EAExC,MAAMqB,UAAU,GAAGpB,aAAa,CAAC;IAC/BqB,IAAI,EAAE,CAAAJ,KAAK,oBAALA,KAAK,CAAEK,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEJ,SAAS,CAACK,IAAI,CAACD,OAAO;IAC/BE,YAAY,EAAGN,SAAS,CAACO,MAAM,CAAS,CAAAT,KAAK,oBAALA,KAAK,CAAEK,EAAE,KAAI,EAAE;EACzD,CAAC,CAAC;EAEF,IACE,CAACf,uBAAuB,CAACoB,cAAc,CAACV,KAAK,CAACW,IAAI,CAAC,IACnD,CAACT,SAAS,IACV,CAACA,SAAS,CAACO,MAAM,EACjB;IACA,OAAO,IAAI;EACb;EAEA,MAAMG,UAAU,GAAGtB,uBAAuB,CAACU,KAAK,CAACW,IAAI,CAAE;EAEvD,oBACE/B,KAAA,CAAAiC,aAAA,CAACD,UAAU;IACTZ,KAAK,EAAEA,KAAM;IACbc,KAAK,EAAEX,UAAU,CAACH,KAAK,CAACc,KAAM;IAC9BC,QAAQ,EAAEZ,UAAU,CAACH,KAAK,CAACe,QAAS;IACpCC,QAAQ,EAAE,cAAchB,KAAK,CAACK,EAAE,EAAG;IACnCJ,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,17 +1,27 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { FormField, InputArea } from '@wix/design-system';
3
3
  export const LongText = props => {
4
+ var _field$validation;
4
5
  const {
5
6
  field,
6
7
  value,
7
- onChange
8
+ onChange,
9
+ dataHook,
10
+ inputRef
8
11
  } = props;
12
+ const ref = useRef({});
9
13
  return /*#__PURE__*/React.createElement(FormField, {
10
- label: field.displayName
14
+ label: field.displayName,
15
+ required: (_field$validation = field.validation) == null ? void 0 : _field$validation.required,
16
+ dataHook: dataHook
11
17
  }, /*#__PURE__*/React.createElement(InputArea, {
12
18
  value: value,
13
19
  onChange: e => onChange == null ? void 0 : onChange(e.target.value),
14
- dataHook: `long-text-${field.id}`
20
+ dataHook: `long-text-${field.id}`,
21
+ ref: internalRef => {
22
+ inputRef == null || inputRef(ref.current);
23
+ ref.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
24
+ }
15
25
  }));
16
26
  };
17
27
  //# sourceMappingURL=LongText.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","FormField","InputArea","LongText","props","field","value","onChange","createElement","label","displayName","e","target","dataHook","id"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/LongText.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, InputArea } from '@wix/design-system';\nimport { BaseInputProps } from './types';\n\nexport interface LongTextProps extends BaseInputProps<string> {}\n\nexport const LongText = (props: LongTextProps) => {\n const { field, value, onChange } = props;\n\n return (\n <FormField label={field.displayName}>\n <InputArea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n dataHook={`long-text-${field.id}`}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,SAAS,QAAQ,oBAAoB;AAKzD,OAAO,MAAMC,QAAQ,GAAIC,KAAoB,IAAK;EAChD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAExC,oBACEJ,KAAA,CAAAQ,aAAA,CAACP,SAAS;IAACQ,KAAK,EAAEJ,KAAK,CAACK;EAAY,gBAClCV,KAAA,CAAAQ,aAAA,CAACN,SAAS;IACRI,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGI,CAAC,IAAKJ,QAAQ,oBAARA,QAAQ,CAAGI,CAAC,CAACC,MAAM,CAACN,KAAK,CAAE;IAC5CO,QAAQ,EAAE,aAAaR,KAAK,CAACS,EAAE;EAAG,CACnC,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","FormField","InputArea","LongText","props","_field$validation","field","value","onChange","dataHook","inputRef","ref","createElement","label","displayName","required","validation","e","target","id","internalRef","current","focus"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/LongText.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { FormField, InputArea } from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\n\nexport interface LongTextProps extends BaseInputProps<string> {}\n\nexport const LongText = (props: LongTextProps) => {\n const { field, value, onChange, dataHook, inputRef } = props;\n\n const ref = useRef<BaseInputRef>({});\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <InputArea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n dataHook={`long-text-${field.id}`}\n ref={(internalRef) => {\n inputRef?.(ref.current);\n ref.current.focus = () => internalRef?.focus();\n }}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,SAAS,EAAEC,SAAS,QAAQ,oBAAoB;AAKzD,OAAO,MAAMC,QAAQ,GAAIC,KAAoB,IAAK;EAAA,IAAAC,iBAAA;EAChD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE5D,MAAMO,GAAG,GAAGX,MAAM,CAAe,CAAC,CAAC,CAAC;EAEpC,oBACED,KAAA,CAAAa,aAAA,CAACX,SAAS;IACRY,KAAK,EAAEP,KAAK,CAACQ,WAAY;IACzBC,QAAQ,GAAAV,iBAAA,GAAEC,KAAK,CAACU,UAAU,qBAAhBX,iBAAA,CAAkBU,QAAS;IACrCN,QAAQ,EAAEA;EAAS,gBAEnBV,KAAA,CAAAa,aAAA,CAACV,SAAS;IACRK,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGS,CAAC,IAAKT,QAAQ,oBAARA,QAAQ,CAAGS,CAAC,CAACC,MAAM,CAACX,KAAK,CAAE;IAC5CE,QAAQ,EAAE,aAAaH,KAAK,CAACa,EAAE,EAAG;IAClCR,GAAG,EAAGS,WAAW,IAAK;MACpBV,QAAQ,YAARA,QAAQ,CAAGC,GAAG,CAACU,OAAO,CAAC;MACvBV,GAAG,CAACU,OAAO,CAACC,KAAK,GAAG,MAAMF,WAAW,oBAAXA,WAAW,CAAEE,KAAK,CAAC,CAAC;IAChD;EAAE,CACH,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -1,17 +1,54 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { FormField, NumberInput } from '@wix/design-system';
3
+ import { useWixPatternsContainer, useSelector } from '@wix/patterns';
3
4
  export const Number = props => {
5
+ var _field$validation, _field$validation2;
4
6
  const {
5
7
  field,
6
8
  value,
7
- onChange
9
+ onChange,
10
+ dataHook,
11
+ inputRef
8
12
  } = props;
13
+ const ref = useRef({});
14
+ const {
15
+ translate: t,
16
+ ...container
17
+ } = useWixPatternsContainer();
18
+ useSelector(() => container.initTask.status);
19
+ const numberRange = (_field$validation = field.validation) == null ? void 0 : _field$validation.numberRange;
20
+ const min = (numberRange == null ? void 0 : numberRange.min) ?? undefined;
21
+ const max = (numberRange == null ? void 0 : numberRange.max) ?? undefined;
22
+ let invalidMessage;
23
+ if (value !== null) {
24
+ if (min !== undefined && value < min) {
25
+ invalidMessage = t('cairo.fieldValidation.minNumber', {
26
+ minAmount: min
27
+ });
28
+ ref.current.invalid = true;
29
+ } else if (max !== undefined && value > max) {
30
+ invalidMessage = t('cairo.fieldValidation.maxNumber', {
31
+ maxAmount: max
32
+ });
33
+ ref.current.invalid = true;
34
+ } else {
35
+ ref.current.invalid = false;
36
+ }
37
+ }
9
38
  return /*#__PURE__*/React.createElement(FormField, {
10
- label: field.displayName
39
+ label: field.displayName,
40
+ required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
41
+ status: invalidMessage ? 'error' : undefined,
42
+ statusMessage: invalidMessage,
43
+ dataHook: dataHook
11
44
  }, /*#__PURE__*/React.createElement(NumberInput, {
12
45
  value: value || undefined,
13
46
  onChange: e => onChange(e),
14
- dataHook: `number-${field.id}`
47
+ dataHook: `number-${field.id}`,
48
+ inputRef: internalRef => {
49
+ inputRef == null || inputRef(ref.current);
50
+ ref.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
51
+ }
15
52
  }));
16
53
  };
17
54
  //# sourceMappingURL=Number.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","FormField","NumberInput","Number","props","field","value","onChange","createElement","label","displayName","undefined","e","dataHook","id"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/Number.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, NumberInput } from '@wix/design-system';\nimport { BaseInputProps } from './types';\n\nexport interface NumberProps extends BaseInputProps<number | null> {}\n\nexport const Number = (props: NumberProps) => {\n const { field, value, onChange } = props;\n\n return (\n <FormField label={field.displayName}>\n <NumberInput\n value={value || undefined}\n onChange={(e) => onChange(e)}\n dataHook={`number-${field.id}`}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,WAAW,QAAQ,oBAAoB;AAK3D,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAC5C,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAExC,oBACEJ,KAAA,CAAAQ,aAAA,CAACP,SAAS;IAACQ,KAAK,EAAEJ,KAAK,CAACK;EAAY,gBAClCV,KAAA,CAAAQ,aAAA,CAACN,WAAW;IACVI,KAAK,EAAEA,KAAK,IAAIK,SAAU;IAC1BJ,QAAQ,EAAGK,CAAC,IAAKL,QAAQ,CAACK,CAAC,CAAE;IAC7BC,QAAQ,EAAE,UAAUR,KAAK,CAACS,EAAE;EAAG,CAChC,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","FormField","NumberInput","useWixPatternsContainer","useSelector","Number","props","_field$validation","_field$validation2","field","value","onChange","dataHook","inputRef","ref","translate","t","container","initTask","status","numberRange","validation","min","undefined","max","invalidMessage","minAmount","current","invalid","maxAmount","createElement","label","displayName","required","statusMessage","e","id","internalRef","focus"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/Number.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { FormField, NumberInput } from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport { useWixPatternsContainer, useSelector } from '@wix/patterns';\n\nexport interface NumberProps extends BaseInputProps<number | null> {}\n\nexport const Number = (props: NumberProps) => {\n const { field, value, onChange, dataHook, inputRef } = props;\n const ref = useRef<BaseInputRef>({});\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n const numberRange = field.validation?.numberRange;\n const min = numberRange?.min ?? undefined;\n const max = numberRange?.max ?? undefined;\n let invalidMessage: string | undefined;\n\n if (value !== null) {\n if (min !== undefined && value < min) {\n invalidMessage = t('cairo.fieldValidation.minNumber', {\n minAmount: min,\n });\n ref.current.invalid = true;\n } else if (max !== undefined && value > max) {\n invalidMessage = t('cairo.fieldValidation.maxNumber', {\n maxAmount: max,\n });\n ref.current.invalid = true;\n } else {\n ref.current.invalid = false;\n }\n }\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={invalidMessage ? 'error' : undefined}\n statusMessage={invalidMessage}\n dataHook={dataHook}\n >\n <NumberInput\n value={value || undefined}\n onChange={(e) => onChange(e)}\n dataHook={`number-${field.id}`}\n inputRef={(internalRef) => {\n inputRef?.(ref.current);\n ref.current.focus = () => internalRef?.focus();\n }}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,SAAS,EAAEC,WAAW,QAAQ,oBAAoB;AAE3D,SAASC,uBAAuB,EAAEC,WAAW,QAAQ,eAAe;AAIpE,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAAA,IAAAC,iBAAA,EAAAC,kBAAA;EAC5C,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAGP,KAAK;EAC5D,MAAMQ,GAAG,GAAGd,MAAM,CAAe,CAAC,CAAC,CAAC;EACpC,MAAM;IAAEe,SAAS,EAAEC,CAAC;IAAE,GAAGC;EAAU,CAAC,GAAGd,uBAAuB,CAAC,CAAC;EAChEC,WAAW,CAAC,MAAMa,SAAS,CAACC,QAAQ,CAACC,MAAM,CAAC;EAC5C,MAAMC,WAAW,IAAAb,iBAAA,GAAGE,KAAK,CAACY,UAAU,qBAAhBd,iBAAA,CAAkBa,WAAW;EACjD,MAAME,GAAG,GAAG,CAAAF,WAAW,oBAAXA,WAAW,CAAEE,GAAG,KAAIC,SAAS;EACzC,MAAMC,GAAG,GAAG,CAAAJ,WAAW,oBAAXA,WAAW,CAAEI,GAAG,KAAID,SAAS;EACzC,IAAIE,cAAkC;EAEtC,IAAIf,KAAK,KAAK,IAAI,EAAE;IAClB,IAAIY,GAAG,KAAKC,SAAS,IAAIb,KAAK,GAAGY,GAAG,EAAE;MACpCG,cAAc,GAAGT,CAAC,CAAC,iCAAiC,EAAE;QACpDU,SAAS,EAAEJ;MACb,CAAC,CAAC;MACFR,GAAG,CAACa,OAAO,CAACC,OAAO,GAAG,IAAI;IAC5B,CAAC,MAAM,IAAIJ,GAAG,KAAKD,SAAS,IAAIb,KAAK,GAAGc,GAAG,EAAE;MAC3CC,cAAc,GAAGT,CAAC,CAAC,iCAAiC,EAAE;QACpDa,SAAS,EAAEL;MACb,CAAC,CAAC;MACFV,GAAG,CAACa,OAAO,CAACC,OAAO,GAAG,IAAI;IAC5B,CAAC,MAAM;MACLd,GAAG,CAACa,OAAO,CAACC,OAAO,GAAG,KAAK;IAC7B;EACF;EAEA,oBACE7B,KAAA,CAAA+B,aAAA,CAAC7B,SAAS;IACR8B,KAAK,EAAEtB,KAAK,CAACuB,WAAY;IACzBC,QAAQ,GAAAzB,kBAAA,GAAEC,KAAK,CAACY,UAAU,qBAAhBb,kBAAA,CAAkByB,QAAS;IACrCd,MAAM,EAAEM,cAAc,GAAG,OAAO,GAAGF,SAAU;IAC7CW,aAAa,EAAET,cAAe;IAC9Bb,QAAQ,EAAEA;EAAS,gBAEnBb,KAAA,CAAA+B,aAAA,CAAC5B,WAAW;IACVQ,KAAK,EAAEA,KAAK,IAAIa,SAAU;IAC1BZ,QAAQ,EAAGwB,CAAC,IAAKxB,QAAQ,CAACwB,CAAC,CAAE;IAC7BvB,QAAQ,EAAE,UAAUH,KAAK,CAAC2B,EAAE,EAAG;IAC/BvB,QAAQ,EAAGwB,WAAW,IAAK;MACzBxB,QAAQ,YAARA,QAAQ,CAAGC,GAAG,CAACa,OAAO,CAAC;MACvBb,GAAG,CAACa,OAAO,CAACW,KAAK,GAAG,MAAMD,WAAW,oBAAXA,WAAW,CAAEC,KAAK,CAAC,CAAC;IAChD;EAAE,CACH,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -1,17 +1,41 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { FormField, Input } from '@wix/design-system';
3
+ import { useValidateTextLength } from './utils/validateTextLength';
3
4
  export const ShortText = props => {
5
+ var _field$validation, _field$validation2;
4
6
  const {
5
7
  field,
6
8
  onChange,
7
- value
9
+ value,
10
+ dataHook,
11
+ inputRef
8
12
  } = props;
13
+ const ref = useRef({});
14
+ const stringLengthRange = (_field$validation = field.validation) == null ? void 0 : _field$validation.stringLengthRange;
15
+ const {
16
+ charCount,
17
+ invalidMessage
18
+ } = useValidateTextLength({
19
+ value,
20
+ stringLengthRange,
21
+ onChange,
22
+ ref
23
+ });
9
24
  return /*#__PURE__*/React.createElement(FormField, {
10
- label: field.displayName
25
+ label: field.displayName,
26
+ required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
27
+ charCount: charCount,
28
+ status: invalidMessage ? 'error' : undefined,
29
+ statusMessage: invalidMessage,
30
+ dataHook: dataHook
11
31
  }, /*#__PURE__*/React.createElement(Input, {
12
32
  value: value,
13
33
  onChange: e => onChange == null ? void 0 : onChange(e.target.value),
14
- dataHook: `short-text-${field.id}`
34
+ dataHook: `short-text-${field.id}`,
35
+ ref: internalRef => {
36
+ inputRef == null || inputRef(ref.current);
37
+ ref.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
38
+ }
15
39
  }));
16
40
  };
17
41
  //# sourceMappingURL=ShortText.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","FormField","Input","ShortText","props","field","onChange","value","createElement","label","displayName","e","target","dataHook","id"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/ShortText.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, Input } from '@wix/design-system';\nimport { BaseInputProps } from './types';\n\nexport interface ShortTextProps extends BaseInputProps<string> {}\n\nexport const ShortText = (props: ShortTextProps) => {\n const { field, onChange, value } = props;\n return (\n <FormField label={field.displayName}>\n <Input\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n dataHook={`short-text-${field.id}`}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,KAAK,QAAQ,oBAAoB;AAKrD,OAAO,MAAMC,SAAS,GAAIC,KAAqB,IAAK;EAClD,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,KAAK;EACxC,oBACEJ,KAAA,CAAAQ,aAAA,CAACP,SAAS;IAACQ,KAAK,EAAEJ,KAAK,CAACK;EAAY,gBAClCV,KAAA,CAAAQ,aAAA,CAACN,KAAK;IACJK,KAAK,EAAEA,KAAM;IACbD,QAAQ,EAAGK,CAAC,IAAKL,QAAQ,oBAARA,QAAQ,CAAGK,CAAC,CAACC,MAAM,CAACL,KAAK,CAAE;IAC5CM,QAAQ,EAAE,cAAcR,KAAK,CAACS,EAAE;EAAG,CACpC,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","FormField","Input","useValidateTextLength","ShortText","props","_field$validation","_field$validation2","field","onChange","value","dataHook","inputRef","ref","stringLengthRange","validation","charCount","invalidMessage","createElement","label","displayName","required","status","undefined","statusMessage","e","target","id","internalRef","current","focus"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/ShortText.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { FormField, Input } from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport { useValidateTextLength } from './utils/validateTextLength';\n\nexport interface ShortTextProps extends BaseInputProps<string> {}\n\nexport const ShortText = (props: ShortTextProps) => {\n const { field, onChange, value, dataHook, inputRef } = props;\n\n const ref = useRef<BaseInputRef>({});\n\n const stringLengthRange = field.validation?.stringLengthRange;\n\n const { charCount, invalidMessage } = useValidateTextLength({\n value,\n stringLengthRange,\n onChange,\n ref,\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n charCount={charCount}\n status={invalidMessage ? 'error' : undefined}\n statusMessage={invalidMessage}\n dataHook={dataHook}\n >\n <Input\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n dataHook={`short-text-${field.id}`}\n ref={(internalRef) => {\n inputRef?.(ref.current);\n ref.current.focus = () => internalRef?.focus();\n }}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,SAAS,EAAEC,KAAK,QAAQ,oBAAoB;AAErD,SAASC,qBAAqB,QAAQ,4BAA4B;AAIlE,OAAO,MAAMC,SAAS,GAAIC,KAAqB,IAAK;EAAA,IAAAC,iBAAA,EAAAC,kBAAA;EAClD,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAGP,KAAK;EAE5D,MAAMQ,GAAG,GAAGb,MAAM,CAAe,CAAC,CAAC,CAAC;EAEpC,MAAMc,iBAAiB,IAAAR,iBAAA,GAAGE,KAAK,CAACO,UAAU,qBAAhBT,iBAAA,CAAkBQ,iBAAiB;EAE7D,MAAM;IAAEE,SAAS;IAAEC;EAAe,CAAC,GAAGd,qBAAqB,CAAC;IAC1DO,KAAK;IACLI,iBAAiB;IACjBL,QAAQ;IACRI;EACF,CAAC,CAAC;EAEF,oBACEd,KAAA,CAAAmB,aAAA,CAACjB,SAAS;IACRkB,KAAK,EAAEX,KAAK,CAACY,WAAY;IACzBC,QAAQ,GAAAd,kBAAA,GAAEC,KAAK,CAACO,UAAU,qBAAhBR,kBAAA,CAAkBc,QAAS;IACrCL,SAAS,EAAEA,SAAU;IACrBM,MAAM,EAAEL,cAAc,GAAG,OAAO,GAAGM,SAAU;IAC7CC,aAAa,EAAEP,cAAe;IAC9BN,QAAQ,EAAEA;EAAS,gBAEnBZ,KAAA,CAAAmB,aAAA,CAAChB,KAAK;IACJQ,KAAK,EAAEA,KAAM;IACbD,QAAQ,EAAGgB,CAAC,IAAKhB,QAAQ,oBAARA,QAAQ,CAAGgB,CAAC,CAACC,MAAM,CAAChB,KAAK,CAAE;IAC5CC,QAAQ,EAAE,cAAcH,KAAK,CAACmB,EAAE,EAAG;IACnCd,GAAG,EAAGe,WAAW,IAAK;MACpBhB,QAAQ,YAARA,QAAQ,CAAGC,GAAG,CAACgB,OAAO,CAAC;MACvBhB,GAAG,CAACgB,OAAO,CAACC,KAAK,GAAG,MAAMF,WAAW,oBAAXA,WAAW,CAAEE,KAAK,CAAC,CAAC;IAChD;EAAE,CACH,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -2,21 +2,35 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useRef, useState } from 'react';
3
3
  import { FormField, Input } from '@wix/design-system';
4
4
  import { Link } from '@wix/wix-ui-icons-common';
5
+ import { useSelector, useWixPatternsContainer } from '@wix/patterns';
5
6
  export const Url = props => {
7
+ var _field$validation;
6
8
  const {
7
9
  field,
8
10
  value,
9
- onChange
11
+ onChange,
12
+ dataHook,
13
+ inputRef
10
14
  } = props;
11
15
  const ref = useRef({});
12
16
  const [fieldsStatus, setFieldStatus] = useState({});
17
+ const {
18
+ translate: t,
19
+ ...container
20
+ } = useWixPatternsContainer();
21
+ useSelector(() => container.initTask.status);
22
+
13
23
  // Same regex as data-extensions https://github.com/wix-private/server-infra/blob/a6c3009d39bbb0312c929f68ee81c559e1eb5b4e/iptf/dataextensions/src/main/scala/com/wixpress/infra/dataextensions/runtime/validator/Formats.scala#L31
14
- const uriPattern = /^[A-Za-z][A-Za-z0-9+.-]*:(\/\/([A-Za-z0-9._~\-%!$&'()*+,;=:]*@)?[A-Za-z0-9._~\-!$&'()*+,;=%:\[\]]*(:[0-9]*)?)?[A-Za-z0-9._~\-%!$&'()*+,;=:@\/]*([?][A-Za-z0-9._~\-%!$&'()*+,;=:@\/?]*)?([#][A-Za-z0-9._~\-%!$&'()*+,;=:@\/?]*)?$/;
24
+ const uriPattern =
25
+ // eslint-disable-next-line no-useless-escape
26
+ /^[A-Za-z][A-Za-z0-9+.-]*:(\/\/([A-Za-z0-9._~\-%!$&'()*+,;=:]*@)?[A-Za-z0-9._~\-!$&'()*+,;=%:\[\]]*(:[0-9]*)?)?[A-Za-z0-9._~\-%!$&'()*+,;=:@\/]*([?][A-Za-z0-9._~\-%!$&'()*+,;=:@\/?]*)?([#][A-Za-z0-9._~\-%!$&'()*+,;=:@\/?]*)?$/;
15
27
  return /*#__PURE__*/React.createElement(FormField, _extends({
16
- label: field.displayName
28
+ label: field.displayName,
29
+ required: (_field$validation = field.validation) == null ? void 0 : _field$validation.required,
30
+ dataHook: dataHook
17
31
  }, fieldsStatus), /*#__PURE__*/React.createElement(Input, {
18
32
  prefix: /*#__PURE__*/React.createElement(Input.IconAffix, null, /*#__PURE__*/React.createElement(Link, null)),
19
- placeholder: "https://www.wix.com",
33
+ placeholder: t('cairo.customFields.url-input.placeholder'),
20
34
  dataHook: `url-${field.id}`,
21
35
  value: value,
22
36
  onChange: e => onChange == null ? void 0 : onChange(e.target.value),
@@ -25,7 +39,7 @@ export const Url = props => {
25
39
  if (ref.current.invalid) {
26
40
  setFieldStatus({
27
41
  status: 'error',
28
- statusMessage: 'Invalid URL'
42
+ statusMessage: t('cairo.customFields.url-input.error')
29
43
  });
30
44
  } else {
31
45
  setFieldStatus({
@@ -33,6 +47,10 @@ export const Url = props => {
33
47
  statusMessage: undefined
34
48
  });
35
49
  }
50
+ },
51
+ ref: internalRef => {
52
+ inputRef == null || inputRef(ref.current);
53
+ ref.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
36
54
  }
37
55
  }));
38
56
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useState","FormField","Input","Link","Url","props","field","value","onChange","ref","fieldsStatus","setFieldStatus","uriPattern","createElement","_extends","label","displayName","prefix","IconAffix","placeholder","dataHook","id","e","target","onBlur","current","invalid","test","status","statusMessage","undefined"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/Url.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { FormField, Input, StatusType } from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport { Link } from '@wix/wix-ui-icons-common';\n\nexport interface UrlProps extends BaseInputProps<string> {}\n\nexport const Url = (props: UrlProps) => {\n const { field, value, onChange } = props;\n const ref = useRef<BaseInputRef>({});\n const [fieldsStatus, setFieldStatus] = useState<{\n status?: StatusType;\n statusMessage?: string;\n }>({});\n // Same regex as data-extensions https://github.com/wix-private/server-infra/blob/a6c3009d39bbb0312c929f68ee81c559e1eb5b4e/iptf/dataextensions/src/main/scala/com/wixpress/infra/dataextensions/runtime/validator/Formats.scala#L31\n const uriPattern =\n /^[A-Za-z][A-Za-z0-9+.-]*:(\\/\\/([A-Za-z0-9._~\\-%!$&'()*+,;=:]*@)?[A-Za-z0-9._~\\-!$&'()*+,;=%:\\[\\]]*(:[0-9]*)?)?[A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/]*([?][A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/?]*)?([#][A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/?]*)?$/;\n\n return (\n <FormField label={field.displayName} {...fieldsStatus}>\n <Input\n prefix={\n <Input.IconAffix>\n <Link />\n </Input.IconAffix>\n }\n placeholder=\"https://www.wix.com\"\n dataHook={`url-${field.id}`}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n onBlur={() => {\n ref.current.invalid = value ? !uriPattern.test(value) : false;\n\n if (ref.current.invalid) {\n setFieldStatus({\n status: 'error',\n statusMessage: 'Invalid URL',\n });\n } else {\n setFieldStatus({ status: undefined, statusMessage: undefined });\n }\n }}\n />\n </FormField>\n );\n};\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/C,SAASC,SAAS,EAAEC,KAAK,QAAoB,oBAAoB;AAEjE,SAASC,IAAI,QAAQ,0BAA0B;AAI/C,OAAO,MAAMC,GAAG,GAAIC,KAAe,IAAK;EACtC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGH,KAAK;EACxC,MAAMI,GAAG,GAAGV,MAAM,CAAe,CAAC,CAAC,CAAC;EACpC,MAAM,CAACW,YAAY,EAAEC,cAAc,CAAC,GAAGX,QAAQ,CAG5C,CAAC,CAAC,CAAC;EACN;EACA,MAAMY,UAAU,GACd,kOAAkO;EAEpO,oBACEd,KAAA,CAAAe,aAAA,CAACZ,SAAS,EAAAa,QAAA;IAACC,KAAK,EAAET,KAAK,CAACU;EAAY,GAAKN,YAAY,gBACnDZ,KAAA,CAAAe,aAAA,CAACX,KAAK;IACJe,MAAM,eACJnB,KAAA,CAAAe,aAAA,CAACX,KAAK,CAACgB,SAAS,qBACdpB,KAAA,CAAAe,aAAA,CAACV,IAAI,MAAE,CACQ,CAClB;IACDgB,WAAW,EAAC,qBAAqB;IACjCC,QAAQ,EAAE,OAAOd,KAAK,CAACe,EAAE,EAAG;IAC5Bd,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGc,CAAC,IAAKd,QAAQ,oBAARA,QAAQ,CAAGc,CAAC,CAACC,MAAM,CAAChB,KAAK,CAAE;IAC5CiB,MAAM,EAAEA,CAAA,KAAM;MACZf,GAAG,CAACgB,OAAO,CAACC,OAAO,GAAGnB,KAAK,GAAG,CAACK,UAAU,CAACe,IAAI,CAACpB,KAAK,CAAC,GAAG,KAAK;MAE7D,IAAIE,GAAG,CAACgB,OAAO,CAACC,OAAO,EAAE;QACvBf,cAAc,CAAC;UACbiB,MAAM,EAAE,OAAO;UACfC,aAAa,EAAE;QACjB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLlB,cAAc,CAAC;UAAEiB,MAAM,EAAEE,SAAS;UAAED,aAAa,EAAEC;QAAU,CAAC,CAAC;MACjE;IACF;EAAE,CACH,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","useState","FormField","Input","Link","useSelector","useWixPatternsContainer","Url","props","_field$validation","field","value","onChange","dataHook","inputRef","ref","fieldsStatus","setFieldStatus","translate","t","container","initTask","status","uriPattern","createElement","_extends","label","displayName","required","validation","prefix","IconAffix","placeholder","id","e","target","onBlur","current","invalid","test","statusMessage","undefined","internalRef","focus"],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/Url.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { FormField, Input, StatusType } from '@wix/design-system';\nimport { BaseInputProps, BaseInputRef } from './types';\nimport { Link } from '@wix/wix-ui-icons-common';\nimport { useSelector, useWixPatternsContainer } from '@wix/patterns';\n\nexport interface UrlProps extends BaseInputProps<string> {}\n\nexport const Url = (props: UrlProps) => {\n const { field, value, onChange, dataHook, inputRef } = props;\n const ref = useRef<BaseInputRef>({});\n const [fieldsStatus, setFieldStatus] = useState<{\n status?: StatusType;\n statusMessage?: string;\n }>({});\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n\n // Same regex as data-extensions https://github.com/wix-private/server-infra/blob/a6c3009d39bbb0312c929f68ee81c559e1eb5b4e/iptf/dataextensions/src/main/scala/com/wixpress/infra/dataextensions/runtime/validator/Formats.scala#L31\n const uriPattern =\n // eslint-disable-next-line no-useless-escape\n /^[A-Za-z][A-Za-z0-9+.-]*:(\\/\\/([A-Za-z0-9._~\\-%!$&'()*+,;=:]*@)?[A-Za-z0-9._~\\-!$&'()*+,;=%:\\[\\]]*(:[0-9]*)?)?[A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/]*([?][A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/?]*)?([#][A-Za-z0-9._~\\-%!$&'()*+,;=:@\\/?]*)?$/;\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n {...fieldsStatus}\n >\n <Input\n prefix={\n <Input.IconAffix>\n <Link />\n </Input.IconAffix>\n }\n placeholder={t('cairo.customFields.url-input.placeholder')}\n dataHook={`url-${field.id}`}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n onBlur={() => {\n ref.current.invalid = value ? !uriPattern.test(value) : false;\n\n if (ref.current.invalid) {\n setFieldStatus({\n status: 'error',\n statusMessage: t('cairo.customFields.url-input.error'),\n });\n } else {\n setFieldStatus({ status: undefined, statusMessage: undefined });\n }\n }}\n ref={(internalRef) => {\n inputRef?.(ref.current);\n ref.current.focus = () => internalRef?.focus();\n }}\n />\n </FormField>\n );\n};\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/C,SAASC,SAAS,EAAEC,KAAK,QAAoB,oBAAoB;AAEjE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,WAAW,EAAEC,uBAAuB,QAAQ,eAAe;AAIpE,OAAO,MAAMC,GAAG,GAAIC,KAAe,IAAK;EAAA,IAAAC,iBAAA;EACtC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAC5D,MAAMO,GAAG,GAAGf,MAAM,CAAe,CAAC,CAAC,CAAC;EACpC,MAAM,CAACgB,YAAY,EAAEC,cAAc,CAAC,GAAGhB,QAAQ,CAG5C,CAAC,CAAC,CAAC;EACN,MAAM;IAAEiB,SAAS,EAAEC,CAAC;IAAE,GAAGC;EAAU,CAAC,GAAGd,uBAAuB,CAAC,CAAC;EAChED,WAAW,CAAC,MAAMe,SAAS,CAACC,QAAQ,CAACC,MAAM,CAAC;;EAE5C;EACA,MAAMC,UAAU;EACd;EACA,kOAAkO;EAEpO,oBACExB,KAAA,CAAAyB,aAAA,CAACtB,SAAS,EAAAuB,QAAA;IACRC,KAAK,EAAEhB,KAAK,CAACiB,WAAY;IACzBC,QAAQ,GAAAnB,iBAAA,GAAEC,KAAK,CAACmB,UAAU,qBAAhBpB,iBAAA,CAAkBmB,QAAS;IACrCf,QAAQ,EAAEA;EAAS,GACfG,YAAY,gBAEhBjB,KAAA,CAAAyB,aAAA,CAACrB,KAAK;IACJ2B,MAAM,eACJ/B,KAAA,CAAAyB,aAAA,CAACrB,KAAK,CAAC4B,SAAS,qBACdhC,KAAA,CAAAyB,aAAA,CAACpB,IAAI,MAAE,CACQ,CAClB;IACD4B,WAAW,EAAEb,CAAC,CAAC,0CAA0C,CAAE;IAC3DN,QAAQ,EAAE,OAAOH,KAAK,CAACuB,EAAE,EAAG;IAC5BtB,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGsB,CAAC,IAAKtB,QAAQ,oBAARA,QAAQ,CAAGsB,CAAC,CAACC,MAAM,CAACxB,KAAK,CAAE;IAC5CyB,MAAM,EAAEA,CAAA,KAAM;MACZrB,GAAG,CAACsB,OAAO,CAACC,OAAO,GAAG3B,KAAK,GAAG,CAACY,UAAU,CAACgB,IAAI,CAAC5B,KAAK,CAAC,GAAG,KAAK;MAE7D,IAAII,GAAG,CAACsB,OAAO,CAACC,OAAO,EAAE;QACvBrB,cAAc,CAAC;UACbK,MAAM,EAAE,OAAO;UACfkB,aAAa,EAAErB,CAAC,CAAC,oCAAoC;QACvD,CAAC,CAAC;MACJ,CAAC,MAAM;QACLF,cAAc,CAAC;UAAEK,MAAM,EAAEmB,SAAS;UAAED,aAAa,EAAEC;QAAU,CAAC,CAAC;MACjE;IACF,CAAE;IACF1B,GAAG,EAAG2B,WAAW,IAAK;MACpB5B,QAAQ,YAARA,QAAQ,CAAGC,GAAG,CAACsB,OAAO,CAAC;MACvBtB,GAAG,CAACsB,OAAO,CAACM,KAAK,GAAG,MAAMD,WAAW,oBAAXA,WAAW,CAAEC,KAAK,CAAC,CAAC;IAChD;EAAE,CACH,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/types.ts"],"sourcesContent":["import { Field } from '../../../types';\n\nexport interface BaseInputRef {\n focus?: () => void;\n invalid?: boolean;\n}\n\nexport interface BaseInputProps<T> {\n field: Field;\n value: T;\n onChange: (newValue: T) => void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../../../src/components/AutoPatternsEntityPage/Fields/types.ts"],"sourcesContent":["import { Field } from '../../../types';\n\nexport interface BaseInputRef {\n focus?: () => void;\n invalid?: boolean;\n}\n\nexport interface BaseInputProps<T> {\n field: Field;\n value: T;\n onChange: (newValue: T) => void;\n dataHook?: string;\n inputRef?: (ref: BaseInputRef) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { useWixPatternsContainer, useSelector } from '@wix/patterns';
2
+ export const useValidateTextLength = _ref => {
3
+ let {
4
+ value = '',
5
+ stringLengthRange,
6
+ ref
7
+ } = _ref;
8
+ const {
9
+ translate: t,
10
+ ...container
11
+ } = useWixPatternsContainer();
12
+ useSelector(() => container.initTask.status);
13
+ const minLength = stringLengthRange == null ? void 0 : stringLengthRange.minLength;
14
+ const maxLength = stringLengthRange == null ? void 0 : stringLengthRange.maxLength;
15
+ const charCount = maxLength ? maxLength - value.length : undefined;
16
+ let invalidMessage;
17
+ if (minLength && value && value.length < minLength) {
18
+ ref.current.invalid = true;
19
+ invalidMessage = t('cairo.fieldValidation.minCharacter', {
20
+ charMin: minLength
21
+ });
22
+ } else if (maxLength && value && value.length > maxLength) {
23
+ ref.current.invalid = true;
24
+ invalidMessage = t('cairo.fieldValidation.maxCharacter', {
25
+ charMax: maxLength
26
+ });
27
+ } else {
28
+ ref.current.invalid = false;
29
+ }
30
+ return {
31
+ charCount,
32
+ invalidMessage
33
+ };
34
+ };
35
+ //# sourceMappingURL=validateTextLength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useWixPatternsContainer","useSelector","useValidateTextLength","_ref","value","stringLengthRange","ref","translate","t","container","initTask","status","minLength","maxLength","charCount","length","undefined","invalidMessage","current","invalid","charMin","charMax"],"sources":["../../../../../../src/components/AutoPatternsEntityPage/Fields/utils/validateTextLength.ts"],"sourcesContent":["import { useWixPatternsContainer, useSelector } from '@wix/patterns';\nimport { StringLengthRange } from '../../../../types';\nimport { BaseInputRef } from '../types';\n\nexport const useValidateTextLength = ({\n value = '',\n stringLengthRange,\n ref,\n}: {\n value: string;\n stringLengthRange?: StringLengthRange;\n onChange: (value: string) => void;\n ref: React.MutableRefObject<BaseInputRef>;\n}) => {\n const { translate: t, ...container } = useWixPatternsContainer();\n useSelector(() => container.initTask.status);\n const minLength = stringLengthRange?.minLength;\n const maxLength = stringLengthRange?.maxLength;\n const charCount = maxLength ? maxLength - value.length : undefined;\n\n let invalidMessage: string | undefined;\n if (minLength && value && value.length < minLength) {\n ref.current.invalid = true;\n invalidMessage = t('cairo.fieldValidation.minCharacter', {\n charMin: minLength,\n });\n } else if (maxLength && value && value.length > maxLength) {\n ref.current.invalid = true;\n invalidMessage = t('cairo.fieldValidation.maxCharacter', {\n charMax: maxLength,\n });\n } else {\n ref.current.invalid = false;\n }\n\n return {\n charCount,\n invalidMessage,\n };\n};\n"],"mappings":"AAAA,SAASA,uBAAuB,EAAEC,WAAW,QAAQ,eAAe;AAIpE,OAAO,MAAMC,qBAAqB,GAAGC,IAAA,IAS/B;EAAA,IATgC;IACpCC,KAAK,GAAG,EAAE;IACVC,iBAAiB;IACjBC;EAMF,CAAC,GAAAH,IAAA;EACC,MAAM;IAAEI,SAAS,EAAEC,CAAC;IAAE,GAAGC;EAAU,CAAC,GAAGT,uBAAuB,CAAC,CAAC;EAChEC,WAAW,CAAC,MAAMQ,SAAS,CAACC,QAAQ,CAACC,MAAM,CAAC;EAC5C,MAAMC,SAAS,GAAGP,iBAAiB,oBAAjBA,iBAAiB,CAAEO,SAAS;EAC9C,MAAMC,SAAS,GAAGR,iBAAiB,oBAAjBA,iBAAiB,CAAEQ,SAAS;EAC9C,MAAMC,SAAS,GAAGD,SAAS,GAAGA,SAAS,GAAGT,KAAK,CAACW,MAAM,GAAGC,SAAS;EAElE,IAAIC,cAAkC;EACtC,IAAIL,SAAS,IAAIR,KAAK,IAAIA,KAAK,CAACW,MAAM,GAAGH,SAAS,EAAE;IAClDN,GAAG,CAACY,OAAO,CAACC,OAAO,GAAG,IAAI;IAC1BF,cAAc,GAAGT,CAAC,CAAC,oCAAoC,EAAE;MACvDY,OAAO,EAAER;IACX,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIC,SAAS,IAAIT,KAAK,IAAIA,KAAK,CAACW,MAAM,GAAGF,SAAS,EAAE;IACzDP,GAAG,CAACY,OAAO,CAACC,OAAO,GAAG,IAAI;IAC1BF,cAAc,GAAGT,CAAC,CAAC,oCAAoC,EAAE;MACvDa,OAAO,EAAER;IACX,CAAC,CAAC;EACJ,CAAC,MAAM;IACLP,GAAG,CAACY,OAAO,CAACC,OAAO,GAAG,KAAK;EAC7B;EAEA,OAAO;IACLL,SAAS;IACTG;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,14 +1,13 @@
1
- import React, { useMemo } from 'react';
2
- import { CollectionDataProvider } from '../../providers';
1
+ import React from 'react';
3
2
  import { AutoPatternsGridContent } from './AutoPatternsGridContent';
3
+ import { SchemaProvider } from '../../providers/SchemaContext';
4
4
  export const AutoPatternsGrid = _ref => {
5
5
  let {
6
6
  configuration
7
7
  } = _ref;
8
- const visibleFieldIds = useMemo(() => [configuration.item.title, configuration.item.subtitle].filter(value => value != null), [configuration]);
9
- return /*#__PURE__*/React.createElement(CollectionDataProvider, {
10
- collectionConfig: configuration.collection,
11
- visibleFieldIds: visibleFieldIds
8
+ return /*#__PURE__*/React.createElement(SchemaProvider, {
9
+ collectionId: configuration.collection.collectionId,
10
+ entityTypeSource: configuration.collection.entityTypeSource
12
11
  }, /*#__PURE__*/React.createElement(AutoPatternsGridContent, {
13
12
  configuration: configuration
14
13
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","CollectionDataProvider","AutoPatternsGridContent","AutoPatternsGrid","_ref","configuration","visibleFieldIds","item","title","subtitle","filter","value","createElement","collectionConfig","collection"],"sources":["../../../../src/components/AutoPatternsGrid/AutoPatternsGrid.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { CollectionDataProvider } from '../../providers';\nimport { GridConfig } from '../../types';\nimport { AutoPatternsGridContent } from './AutoPatternsGridContent';\n\nexport interface AutoPatternsGridProps {\n configuration: GridConfig;\n}\n\nexport const AutoPatternsGrid = ({ configuration }: AutoPatternsGridProps) => {\n const visibleFieldIds = useMemo(\n () =>\n [configuration.item.title, configuration.item.subtitle].filter(\n (value) => value != null,\n ) as string[],\n [configuration],\n );\n\n return (\n <CollectionDataProvider\n collectionConfig={configuration.collection}\n visibleFieldIds={visibleFieldIds}\n >\n <AutoPatternsGridContent configuration={configuration} />\n </CollectionDataProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,sBAAsB,QAAQ,iBAAiB;AAExD,SAASC,uBAAuB,QAAQ,2BAA2B;AAMnE,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAA8C;EAAA,IAA7C;IAAEC;EAAqC,CAAC,GAAAD,IAAA;EACvE,MAAME,eAAe,GAAGN,OAAO,CAC7B,MACE,CAACK,aAAa,CAACE,IAAI,CAACC,KAAK,EAAEH,aAAa,CAACE,IAAI,CAACE,QAAQ,CAAC,CAACC,MAAM,CAC3DC,KAAK,IAAKA,KAAK,IAAI,IACtB,CAAa,EACf,CAACN,aAAa,CAChB,CAAC;EAED,oBACEN,KAAA,CAAAa,aAAA,CAACX,sBAAsB;IACrBY,gBAAgB,EAAER,aAAa,CAACS,UAAW;IAC3CR,eAAe,EAAEA;EAAgB,gBAEjCP,KAAA,CAAAa,aAAA,CAACV,uBAAuB;IAACG,aAAa,EAAEA;EAAc,CAAE,CAClC,CAAC;AAE7B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AutoPatternsGridContent","SchemaProvider","AutoPatternsGrid","_ref","configuration","createElement","collectionId","collection","entityTypeSource"],"sources":["../../../../src/components/AutoPatternsGrid/AutoPatternsGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { GridConfig } from '../../types';\nimport { AutoPatternsGridContent } from './AutoPatternsGridContent';\nimport { SchemaProvider } from '../../providers/SchemaContext';\n\nexport interface AutoPatternsGridProps {\n configuration: GridConfig;\n}\n\nexport const AutoPatternsGrid = ({ configuration }: AutoPatternsGridProps) => {\n return (\n <SchemaProvider\n collectionId={configuration.collection.collectionId}\n entityTypeSource={configuration.collection.entityTypeSource}\n >\n <AutoPatternsGridContent configuration={configuration} />\n </SchemaProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,cAAc,QAAQ,+BAA+B;AAM9D,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAA8C;EAAA,IAA7C;IAAEC;EAAqC,CAAC,GAAAD,IAAA;EACvE,oBACEJ,KAAA,CAAAM,aAAA,CAACJ,cAAc;IACbK,YAAY,EAAEF,aAAa,CAACG,UAAU,CAACD,YAAa;IACpDE,gBAAgB,EAAEJ,aAAa,CAACG,UAAU,CAACC;EAAiB,gBAE5DT,KAAA,CAAAM,aAAA,CAACL,uBAAuB;IAACI,aAAa,EAAEA;EAAc,CAAE,CAC1C,CAAC;AAErB,CAAC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { usePagePath } from '../../hooks';
3
+ import { PatternsReactRoute, PatternsReactRouter } from '@wix/patterns';
4
+ import { AutoPatternsPage } from './AutoPatternsPage';
5
+ import { Navigate } from 'react-router-dom';
6
+ const pageTypeToRouteType = {
7
+ collectionPage: 'collection',
8
+ entityPage: 'editEntity'
9
+ };
10
+ export const AutoPatternsRoutes = _ref => {
11
+ let {
12
+ config
13
+ } = _ref;
14
+ const {
15
+ getPagePath
16
+ } = usePagePath(config);
17
+ const mainPage = config.pages.find(page => page.appMainPage);
18
+ const routes = config.pages.map(page => {
19
+ const routePath = getPagePath(page.id);
20
+ if (!routePath) {
21
+ return null;
22
+ }
23
+ return /*#__PURE__*/React.createElement(PatternsReactRoute, {
24
+ key: page.id,
25
+ type: pageTypeToRouteType[page.type] ?? 'other',
26
+ path: routePath,
27
+ element: /*#__PURE__*/React.createElement(AutoPatternsPage, {
28
+ pageConfig: page
29
+ })
30
+ });
31
+ }).filter(Boolean);
32
+ if (mainPage) {
33
+ const mainPagePath = getPagePath(mainPage.id);
34
+ if (mainPagePath) {
35
+ routes.push(/*#__PURE__*/React.createElement(PatternsReactRoute, {
36
+ key: "main-redirect",
37
+ type: "other",
38
+ path: "/",
39
+ element: /*#__PURE__*/React.createElement(Navigate, {
40
+ to: mainPagePath
41
+ })
42
+ }));
43
+ }
44
+ }
45
+ return /*#__PURE__*/React.createElement(PatternsReactRouter, null, routes);
46
+ };
47
+ //# sourceMappingURL=AutoPatternsRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","usePagePath","PatternsReactRoute","PatternsReactRouter","AutoPatternsPage","Navigate","pageTypeToRouteType","collectionPage","entityPage","AutoPatternsRoutes","_ref","config","getPagePath","mainPage","pages","find","page","appMainPage","routes","map","routePath","id","createElement","key","type","path","element","pageConfig","filter","Boolean","mainPagePath","push","to"],"sources":["../../../../src/components/AutoPatternsRoute/AutoPatternsRoutes.tsx"],"sourcesContent":["import React from 'react';\nimport { usePagePath } from '../../hooks';\nimport { PatternsReactRoute, PatternsReactRouter } from '@wix/patterns';\nimport { AutoPatternsPage } from './AutoPatternsPage';\nimport type { RouteType } from '@wix/patterns/dist/types/components/Router/types';\nimport { Navigate } from 'react-router-dom';\nimport { AppConfig } from '../../types';\n\nconst pageTypeToRouteType: Record<string, RouteType> = {\n collectionPage: 'collection',\n entityPage: 'editEntity',\n};\n\nexport const AutoPatternsRoutes = ({ config }: { config: AppConfig }) => {\n const { getPagePath } = usePagePath(config);\n const mainPage = config.pages.find((page) => page.appMainPage);\n\n const routes = config.pages\n .map((page) => {\n const routePath = getPagePath(page.id);\n\n if (!routePath) {\n return null;\n }\n\n return (\n <PatternsReactRoute\n key={page.id}\n type={pageTypeToRouteType[page.type] ?? 'other'}\n path={routePath}\n element={<AutoPatternsPage pageConfig={page} />}\n />\n );\n })\n .filter(Boolean);\n\n if (mainPage) {\n const mainPagePath = getPagePath(mainPage.id);\n\n if (mainPagePath) {\n routes.push(\n <PatternsReactRoute\n key=\"main-redirect\"\n type=\"other\"\n path=\"/\"\n element={<Navigate to={mainPagePath} />}\n />,\n );\n }\n }\n\n return <PatternsReactRouter>{routes}</PatternsReactRouter>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,eAAe;AACvE,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,QAAQ,QAAQ,kBAAkB;AAG3C,MAAMC,mBAA8C,GAAG;EACrDC,cAAc,EAAE,YAAY;EAC5BC,UAAU,EAAE;AACd,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGC,IAAA,IAAuC;EAAA,IAAtC;IAAEC;EAA8B,CAAC,GAAAD,IAAA;EAClE,MAAM;IAAEE;EAAY,CAAC,GAAGX,WAAW,CAACU,MAAM,CAAC;EAC3C,MAAME,QAAQ,GAAGF,MAAM,CAACG,KAAK,CAACC,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,WAAW,CAAC;EAE9D,MAAMC,MAAM,GAAGP,MAAM,CAACG,KAAK,CACxBK,GAAG,CAAEH,IAAI,IAAK;IACb,MAAMI,SAAS,GAAGR,WAAW,CAACI,IAAI,CAACK,EAAE,CAAC;IAEtC,IAAI,CAACD,SAAS,EAAE;MACd,OAAO,IAAI;IACb;IAEA,oBACEpB,KAAA,CAAAsB,aAAA,CAACpB,kBAAkB;MACjBqB,GAAG,EAAEP,IAAI,CAACK,EAAG;MACbG,IAAI,EAAElB,mBAAmB,CAACU,IAAI,CAACQ,IAAI,CAAC,IAAI,OAAQ;MAChDC,IAAI,EAAEL,SAAU;MAChBM,OAAO,eAAE1B,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB;QAACuB,UAAU,EAAEX;MAAK,CAAE;IAAE,CACjD,CAAC;EAEN,CAAC,CAAC,CACDY,MAAM,CAACC,OAAO,CAAC;EAElB,IAAIhB,QAAQ,EAAE;IACZ,MAAMiB,YAAY,GAAGlB,WAAW,CAACC,QAAQ,CAACQ,EAAE,CAAC;IAE7C,IAAIS,YAAY,EAAE;MAChBZ,MAAM,CAACa,IAAI,cACT/B,KAAA,CAAAsB,aAAA,CAACpB,kBAAkB;QACjBqB,GAAG,EAAC,eAAe;QACnBC,IAAI,EAAC,OAAO;QACZC,IAAI,EAAC,GAAG;QACRC,OAAO,eAAE1B,KAAA,CAAAsB,aAAA,CAACjB,QAAQ;UAAC2B,EAAE,EAAEF;QAAa,CAAE;MAAE,CACzC,CACH,CAAC;IACH;EACF;EAEA,oBAAO9B,KAAA,CAAAsB,aAAA,CAACnB,mBAAmB,QAAEe,MAA4B,CAAC;AAC5D,CAAC","ignoreList":[]}