@webiny/app-aco 6.0.0-alpha.0 → 6.0.0-alpha.1

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 (395) hide show
  1. package/components/AdvancedSearch/AdvancedSearch.d.ts +1 -1
  2. package/components/AdvancedSearch/AdvancedSearch.js.map +1 -1
  3. package/components/AdvancedSearch/AdvancedSearchPresenter.d.ts +1 -1
  4. package/components/AdvancedSearch/AdvancedSearchPresenter.js.map +1 -1
  5. package/components/AdvancedSearch/AdvancedSearchPresenter.test.js.map +1 -1
  6. package/components/AdvancedSearch/GraphQLInputMapper.d.ts +1 -1
  7. package/components/AdvancedSearch/GraphQLInputMapper.js.map +1 -1
  8. package/components/AdvancedSearch/GraphQLInputMapper.test.js.map +1 -1
  9. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.d.ts +3 -3
  10. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js.map +1 -1
  11. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.d.ts +1 -1
  12. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js.map +1 -1
  13. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.d.ts +1 -1
  14. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js.map +1 -1
  15. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.d.ts +1 -1
  16. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js.map +1 -1
  17. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.d.ts +3 -2
  18. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js.map +1 -1
  19. package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js.map +1 -1
  20. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.d.ts +1 -1
  21. package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js.map +1 -1
  22. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.d.ts +1 -1
  23. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js.map +1 -1
  24. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.d.ts +2 -2
  25. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js.map +1 -1
  26. package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js.map +1 -1
  27. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.d.ts +1 -1
  28. package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js.map +1 -1
  29. package/components/AdvancedSearch/domain/Field.d.ts +1 -1
  30. package/components/AdvancedSearch/domain/Field.js.map +1 -1
  31. package/components/AdvancedSearch/domain/FieldMapper.d.ts +1 -1
  32. package/components/AdvancedSearch/domain/FieldMapper.js.map +1 -1
  33. package/components/AdvancedSearch/domain/FilterMapper.d.ts +1 -1
  34. package/components/AdvancedSearch/domain/FilterMapper.js.map +1 -1
  35. package/components/AdvancedSearch/domain/FilterRepository.d.ts +2 -2
  36. package/components/AdvancedSearch/domain/FilterRepository.js.map +1 -1
  37. package/components/AdvancedSearch/domain/FilterRepositoryFactory.d.ts +1 -1
  38. package/components/AdvancedSearch/domain/FilterRepositoryFactory.js.map +1 -1
  39. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.d.ts +2 -2
  40. package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js.map +1 -1
  41. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.d.ts +3 -3
  42. package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js.map +1 -1
  43. package/components/AdvancedSearch/gateways/filters.types.d.ts +2 -2
  44. package/components/AdvancedSearch/gateways/filters.types.js.map +1 -1
  45. package/components/AdvancedSearch/index.d.ts +2 -2
  46. package/components/AdvancedSearch/index.js.map +1 -1
  47. package/components/AdvancedSearch/useInputField.d.ts +1 -1
  48. package/components/AdvancedSearch/useInputField.js.map +1 -1
  49. package/components/FolderTree/List/List.d.ts +1 -1
  50. package/components/FolderTree/List/List.js +15 -1
  51. package/components/FolderTree/List/List.js.map +1 -1
  52. package/components/FolderTree/List/utils.d.ts +1 -1
  53. package/components/FolderTree/List/utils.js.map +1 -1
  54. package/components/FolderTree/MenuActions/MenuActions.js +2 -0
  55. package/components/FolderTree/MenuActions/MenuActions.js.map +1 -1
  56. package/components/FolderTree/index.d.ts +1 -1
  57. package/components/FolderTree/index.js.map +1 -1
  58. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.d.ts +2 -2
  59. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -1
  60. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.d.ts +1 -1
  61. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -1
  62. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -1
  63. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.d.ts +2 -2
  64. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -1
  65. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.d.ts +1 -1
  66. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -1
  67. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.d.ts +2 -2
  68. package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -1
  69. package/components/Table/components/Table/Columns/Column.d.ts +2 -2
  70. package/components/Table/components/Table/Columns/Column.js.map +1 -1
  71. package/components/Table/components/Table/Columns/ColumnMapper.d.ts +2 -2
  72. package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -1
  73. package/components/Table/components/Table/Columns/ColumnsPresenter.d.ts +1 -1
  74. package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -1
  75. package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -1
  76. package/components/Table/components/Table/Columns/ColumnsRepository.d.ts +2 -2
  77. package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -1
  78. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.d.ts +1 -1
  79. package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -1
  80. package/components/Table/components/Table/Columns/IColumnsRepository.d.ts +1 -1
  81. package/components/Table/components/Table/Columns/IColumnsRepository.js.map +1 -1
  82. package/components/Table/components/Table/Table.d.ts +4 -3
  83. package/components/Table/components/Table/Table.js.map +1 -1
  84. package/components/Table/components/Table/TableInner.d.ts +8 -6
  85. package/components/Table/components/Table/TableInner.js.map +1 -1
  86. package/components/Table/components/Table/TablePresenter.d.ts +1 -1
  87. package/components/Table/components/Table/TablePresenter.js.map +1 -1
  88. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.d.ts +1 -1
  89. package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -1
  90. package/components/Table/createTableData.d.ts +6 -6
  91. package/components/Table/createTableData.js +8 -8
  92. package/components/Table/createTableData.js.map +1 -1
  93. package/components/Table/useTableRow.d.ts +9 -4
  94. package/components/Table/useTableRow.js +10 -3
  95. package/components/Table/useTableRow.js.map +1 -1
  96. package/config/AcoConfig.d.ts +12 -7
  97. package/config/AcoConfig.js +0 -5
  98. package/config/AcoConfig.js.map +1 -1
  99. package/config/advanced-search/index.d.ts +1 -1
  100. package/config/advanced-search/index.js.map +1 -1
  101. package/config/folder/createFolderFieldDecoratorFactory.d.ts +1 -1
  102. package/config/folder/createFolderFieldDecoratorFactory.js.map +1 -1
  103. package/config/folder/index.d.ts +1 -1
  104. package/config/folder/index.js.map +1 -1
  105. package/config/record/index.d.ts +1 -1
  106. package/config/record/index.js.map +1 -1
  107. package/config/table/Column.d.ts +10 -4
  108. package/config/table/Column.js.map +1 -1
  109. package/config/table/index.d.ts +9 -4
  110. package/config/table/index.js.map +1 -1
  111. package/contexts/acoList.d.ts +1 -1
  112. package/contexts/acoList.js.map +1 -1
  113. package/contexts/app.d.ts +2 -2
  114. package/contexts/app.js.map +1 -1
  115. package/contexts/folder.d.ts +1 -1
  116. package/contexts/folder.js.map +1 -1
  117. package/contexts/folders.d.ts +2 -1
  118. package/contexts/folders.js.map +1 -1
  119. package/contexts/index.d.ts +1 -1
  120. package/contexts/index.js +1 -1
  121. package/contexts/index.js.map +1 -1
  122. package/contexts/records.d.ts +3 -2
  123. package/contexts/records.js.map +1 -1
  124. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.d.ts +1 -1
  125. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js.map +1 -1
  126. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.d.ts +1 -1
  127. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
  128. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.d.ts +1 -1
  129. package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js.map +1 -1
  130. package/dialogs/DialogSetPermissions/UsersTeamsSelection.d.ts +1 -1
  131. package/dialogs/DialogSetPermissions/UsersTeamsSelection.js.map +1 -1
  132. package/dialogs/useCreateDialog.js.map +1 -1
  133. package/dialogs/useDeleteDialog.d.ts +1 -1
  134. package/dialogs/useDeleteDialog.js.map +1 -1
  135. package/dialogs/useEditDialog.d.ts +1 -1
  136. package/dialogs/useEditDialog.js.map +1 -1
  137. package/dialogs/useMoveToFolderDialog.d.ts +3 -2
  138. package/dialogs/useMoveToFolderDialog.js.map +1 -1
  139. package/dialogs/useSetPermissionsDialog.d.ts +1 -1
  140. package/dialogs/useSetPermissionsDialog.js.map +1 -1
  141. package/features/folders/Folder.d.ts +1 -1
  142. package/features/folders/Folder.js.map +1 -1
  143. package/features/folders/cache/FoldersCacheFactory.d.ts +1 -1
  144. package/features/folders/cache/FoldersCacheFactory.js.map +1 -1
  145. package/features/folders/createFolder/CreateFolder.d.ts +2 -2
  146. package/features/folders/createFolder/CreateFolder.js.map +1 -1
  147. package/features/folders/createFolder/CreateFolderGqlGateway.d.ts +4 -4
  148. package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
  149. package/features/folders/createFolder/CreateFolderRepository.d.ts +3 -3
  150. package/features/folders/createFolder/CreateFolderRepository.js.map +1 -1
  151. package/features/folders/createFolder/CreateFolderUseCase.d.ts +2 -2
  152. package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -1
  153. package/features/folders/createFolder/CreateFolderUseCaseWithLoading.d.ts +2 -2
  154. package/features/folders/createFolder/CreateFolderUseCaseWithLoading.js.map +1 -1
  155. package/features/folders/createFolder/FolderDto.d.ts +1 -1
  156. package/features/folders/createFolder/FolderDto.js.map +1 -1
  157. package/features/folders/createFolder/FolderGqlDto.d.ts +1 -1
  158. package/features/folders/createFolder/FolderGqlDto.js.map +1 -1
  159. package/features/folders/createFolder/ICreateFolderGateway.d.ts +2 -2
  160. package/features/folders/createFolder/ICreateFolderGateway.js.map +1 -1
  161. package/features/folders/createFolder/ICreateFolderRepository.d.ts +1 -1
  162. package/features/folders/createFolder/ICreateFolderRepository.js.map +1 -1
  163. package/features/folders/createFolder/ICreateFolderUseCase.d.ts +1 -1
  164. package/features/folders/createFolder/ICreateFolderUseCase.js.map +1 -1
  165. package/features/folders/createFolder/useCreateFolder.d.ts +1 -1
  166. package/features/folders/createFolder/useCreateFolder.js.map +1 -1
  167. package/features/folders/deleteFolder/DeleteFolder.d.ts +2 -2
  168. package/features/folders/deleteFolder/DeleteFolder.js.map +1 -1
  169. package/features/folders/deleteFolder/DeleteFolderGqlGateway.d.ts +3 -3
  170. package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -1
  171. package/features/folders/deleteFolder/DeleteFolderRepository.d.ts +4 -4
  172. package/features/folders/deleteFolder/DeleteFolderRepository.js.map +1 -1
  173. package/features/folders/deleteFolder/DeleteFolderUseCase.d.ts +2 -2
  174. package/features/folders/deleteFolder/DeleteFolderUseCase.js.map +1 -1
  175. package/features/folders/deleteFolder/DeleteFolderUseCaseWithLoading.d.ts +2 -2
  176. package/features/folders/deleteFolder/DeleteFolderUseCaseWithLoading.js.map +1 -1
  177. package/features/folders/deleteFolder/IDeleteFolderRepository.d.ts +1 -1
  178. package/features/folders/deleteFolder/IDeleteFolderRepository.js.map +1 -1
  179. package/features/folders/deleteFolder/IDeleteFolderUseCase.d.ts +1 -1
  180. package/features/folders/deleteFolder/IDeleteFolderUseCase.js.map +1 -1
  181. package/features/folders/deleteFolder/useDeleteFolder.d.ts +1 -1
  182. package/features/folders/deleteFolder/useDeleteFolder.js.map +1 -1
  183. package/features/folders/getDescendantFolders/FolderDto.d.ts +1 -1
  184. package/features/folders/getDescendantFolders/FolderDto.js.map +1 -1
  185. package/features/folders/getDescendantFolders/GetDescendantFolders.d.ts +1 -1
  186. package/features/folders/getDescendantFolders/GetDescendantFolders.js.map +1 -1
  187. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.d.ts +3 -3
  188. package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js.map +1 -1
  189. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.d.ts +2 -2
  190. package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js.map +1 -1
  191. package/features/folders/getDescendantFolders/IGetDescendantFoldersRepository.d.ts +1 -1
  192. package/features/folders/getDescendantFolders/IGetDescendantFoldersRepository.js.map +1 -1
  193. package/features/folders/getDescendantFolders/IGetDescendantFoldersUseCase.d.ts +1 -1
  194. package/features/folders/getDescendantFolders/IGetDescendantFoldersUseCase.js.map +1 -1
  195. package/features/folders/getFolder/GetFolder.d.ts +2 -2
  196. package/features/folders/getFolder/GetFolder.js.map +1 -1
  197. package/features/folders/getFolder/GetFolderGqlGateway.d.ts +3 -3
  198. package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
  199. package/features/folders/getFolder/GetFolderRepository.d.ts +3 -3
  200. package/features/folders/getFolder/GetFolderRepository.js.map +1 -1
  201. package/features/folders/getFolder/GetFolderUseCase.d.ts +2 -2
  202. package/features/folders/getFolder/GetFolderUseCase.js.map +1 -1
  203. package/features/folders/getFolder/GetFolderUseCaseWithLoading.d.ts +2 -2
  204. package/features/folders/getFolder/GetFolderUseCaseWithLoading.js.map +1 -1
  205. package/features/folders/getFolder/IGetFolderGateway.d.ts +1 -1
  206. package/features/folders/getFolder/IGetFolderGateway.js.map +1 -1
  207. package/features/folders/getFolder/useGetFolder.d.ts +1 -1
  208. package/features/folders/getFolder/useGetFolder.js.map +1 -1
  209. package/features/folders/getFolderAncestors/FolderDto.d.ts +9 -0
  210. package/features/folders/getFolderAncestors/FolderDto.js +3 -0
  211. package/features/folders/getFolderAncestors/FolderDto.js.map +1 -0
  212. package/features/folders/getFolderAncestors/GetFolderAncestors.d.ts +4 -0
  213. package/features/folders/getFolderAncestors/GetFolderAncestors.js +12 -0
  214. package/features/folders/getFolderAncestors/GetFolderAncestors.js.map +1 -0
  215. package/features/folders/getFolderAncestors/GetFolderAncestors.test.d.ts +1 -0
  216. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js +97 -0
  217. package/features/folders/getFolderAncestors/GetFolderAncestors.test.js.map +1 -0
  218. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.d.ts +7 -0
  219. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js +25 -0
  220. package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js.map +1 -0
  221. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.d.ts +14 -0
  222. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js +18 -0
  223. package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js.map +1 -0
  224. package/features/folders/getFolderAncestors/IGetFolderAncestorsRepository.d.ts +4 -0
  225. package/features/folders/getFolderAncestors/IGetFolderAncestorsRepository.js +3 -0
  226. package/features/folders/getFolderAncestors/IGetFolderAncestorsRepository.js.map +1 -0
  227. package/features/folders/getFolderAncestors/IGetFolderAncestorsUseCase.d.ts +7 -0
  228. package/features/folders/getFolderAncestors/IGetFolderAncestorsUseCase.js +3 -0
  229. package/features/folders/getFolderAncestors/IGetFolderAncestorsUseCase.js.map +1 -0
  230. package/features/folders/getFolderAncestors/index.d.ts +1 -0
  231. package/features/folders/getFolderAncestors/index.js +3 -0
  232. package/features/folders/getFolderAncestors/index.js.map +1 -0
  233. package/features/folders/getFolderAncestors/useGetFolderAncestors.d.ts +3 -0
  234. package/features/folders/getFolderAncestors/useGetFolderAncestors.js +17 -0
  235. package/features/folders/getFolderAncestors/useGetFolderAncestors.js.map +1 -0
  236. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsRepository.d.ts +1 -1
  237. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsRepository.js.map +1 -1
  238. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsUseCase.d.ts +1 -1
  239. package/features/folders/getFolderExtensionsFields/IGetFolderExtensionsFieldsUseCase.js.map +1 -1
  240. package/features/folders/getFolderHierarchy/FolderDto.d.ts +2 -2
  241. package/features/folders/getFolderHierarchy/FolderDto.js.map +1 -1
  242. package/features/folders/getFolderHierarchy/FolderGqlDto.d.ts +1 -1
  243. package/features/folders/getFolderHierarchy/FolderGqlDto.js.map +1 -1
  244. package/features/folders/getFolderHierarchy/GetFolderHierarchy.d.ts +5 -5
  245. package/features/folders/getFolderHierarchy/GetFolderHierarchy.js.map +1 -1
  246. package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.d.ts +3 -3
  247. package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js.map +1 -1
  248. package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.d.ts +3 -3
  249. package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -1
  250. package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.d.ts +2 -2
  251. package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -1
  252. package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.d.ts +2 -2
  253. package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.js.map +1 -1
  254. package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.d.ts +1 -1
  255. package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.js.map +1 -1
  256. package/features/folders/getFolderHierarchy/useGetFolderHierarchy.d.ts +1 -1
  257. package/features/folders/getFolderHierarchy/useGetFolderHierarchy.js.map +1 -1
  258. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.d.ts +2 -2
  259. package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.js.map +1 -1
  260. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionRepository.d.ts +4 -4
  261. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionRepository.js.map +1 -1
  262. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.d.ts +1 -1
  263. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js.map +1 -1
  264. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionWithFlpUseCase.d.ts +2 -2
  265. package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionWithFlpUseCase.js.map +1 -1
  266. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.d.ts +1 -1
  267. package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js.map +1 -1
  268. package/features/folders/getFolderModel/FolderModelContext.js.map +1 -1
  269. package/features/folders/getFolderModel/FolderModelDto.d.ts +1 -1
  270. package/features/folders/getFolderModel/FolderModelDto.js.map +1 -1
  271. package/features/folders/getFolderModel/GetFolderModel.d.ts +3 -3
  272. package/features/folders/getFolderModel/GetFolderModel.js.map +1 -1
  273. package/features/folders/getFolderModel/GetFolderModelGqlGateway.d.ts +4 -4
  274. package/features/folders/getFolderModel/GetFolderModelGqlGateway.js.map +1 -1
  275. package/features/folders/getFolderModel/GetFolderModelRepository.d.ts +2 -2
  276. package/features/folders/getFolderModel/GetFolderModelRepository.js.map +1 -1
  277. package/features/folders/getFolderModel/GetFolderModelUseCase.d.ts +2 -2
  278. package/features/folders/getFolderModel/GetFolderModelUseCase.js.map +1 -1
  279. package/features/folders/getFolderModel/IGetFolderModelGateway.d.ts +1 -1
  280. package/features/folders/getFolderModel/IGetFolderModelGateway.js.map +1 -1
  281. package/features/folders/getFolderModel/IGetFolderModelRepository.d.ts +1 -1
  282. package/features/folders/getFolderModel/IGetFolderModelRepository.js.map +1 -1
  283. package/features/folders/index.d.ts +1 -0
  284. package/features/folders/index.js +1 -0
  285. package/features/folders/index.js.map +1 -1
  286. package/features/folders/listFolders/FolderDto.d.ts +2 -2
  287. package/features/folders/listFolders/FolderDto.js.map +1 -1
  288. package/features/folders/listFolders/FolderGqlDto.d.ts +1 -1
  289. package/features/folders/listFolders/FolderGqlDto.js.map +1 -1
  290. package/features/folders/listFolders/IListFoldersGateway.d.ts +1 -1
  291. package/features/folders/listFolders/IListFoldersGateway.js.map +1 -1
  292. package/features/folders/listFolders/ListFolders.d.ts +5 -5
  293. package/features/folders/listFolders/ListFolders.js.map +1 -1
  294. package/features/folders/listFolders/ListFoldersCompressedGqlGateway.d.ts +3 -3
  295. package/features/folders/listFolders/ListFoldersCompressedGqlGateway.js.map +1 -1
  296. package/features/folders/listFolders/ListFoldersGqlGateway.d.ts +3 -3
  297. package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
  298. package/features/folders/listFolders/ListFoldersRepository.d.ts +3 -3
  299. package/features/folders/listFolders/ListFoldersRepository.js.map +1 -1
  300. package/features/folders/listFolders/ListFoldersUseCase.d.ts +2 -2
  301. package/features/folders/listFolders/ListFoldersUseCase.js.map +1 -1
  302. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.d.ts +2 -2
  303. package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js.map +1 -1
  304. package/features/folders/listFolders/useListFolders.d.ts +1 -1
  305. package/features/folders/listFolders/useListFolders.js.map +1 -1
  306. package/features/folders/listFoldersByParentIds/FolderDto.d.ts +2 -2
  307. package/features/folders/listFoldersByParentIds/FolderDto.js.map +1 -1
  308. package/features/folders/listFoldersByParentIds/FolderGqlDto.d.ts +1 -1
  309. package/features/folders/listFoldersByParentIds/FolderGqlDto.js.map +1 -1
  310. package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.d.ts +1 -1
  311. package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.js.map +1 -1
  312. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.d.ts +5 -5
  313. package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.js.map +1 -1
  314. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.d.ts +3 -3
  315. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
  316. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.d.ts +3 -3
  317. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -1
  318. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.d.ts +2 -2
  319. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.js.map +1 -1
  320. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.d.ts +2 -2
  321. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -1
  322. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.d.ts +3 -3
  323. package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.js.map +1 -1
  324. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.d.ts +1 -1
  325. package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -1
  326. package/features/folders/updateFolder/FolderDto.d.ts +1 -1
  327. package/features/folders/updateFolder/FolderDto.js.map +1 -1
  328. package/features/folders/updateFolder/FolderGqlDto.d.ts +1 -1
  329. package/features/folders/updateFolder/FolderGqlDto.js.map +1 -1
  330. package/features/folders/updateFolder/IUpdateFolderGateway.d.ts +2 -2
  331. package/features/folders/updateFolder/IUpdateFolderGateway.js.map +1 -1
  332. package/features/folders/updateFolder/IUpdateFolderRepository.d.ts +1 -1
  333. package/features/folders/updateFolder/IUpdateFolderRepository.js.map +1 -1
  334. package/features/folders/updateFolder/IUpdateFolderUseCase.d.ts +1 -1
  335. package/features/folders/updateFolder/IUpdateFolderUseCase.js.map +1 -1
  336. package/features/folders/updateFolder/UpdateFolder.d.ts +2 -2
  337. package/features/folders/updateFolder/UpdateFolder.js.map +1 -1
  338. package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -1
  339. package/features/folders/updateFolder/UpdateFolderGqlGateway.d.ts +4 -4
  340. package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
  341. package/features/folders/updateFolder/UpdateFolderRepository.d.ts +3 -3
  342. package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -1
  343. package/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange.d.ts +2 -2
  344. package/features/folders/updateFolder/UpdateFolderRepositoryWithPathChange.js.map +1 -1
  345. package/features/folders/updateFolder/UpdateFolderRepositoryWithPermissionsChange.d.ts +2 -2
  346. package/features/folders/updateFolder/UpdateFolderRepositoryWithPermissionsChange.js.map +1 -1
  347. package/features/folders/updateFolder/UpdateFolderUseCase.d.ts +2 -2
  348. package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -1
  349. package/features/folders/updateFolder/UpdateFolderUseCaseWithLoading.d.ts +2 -2
  350. package/features/folders/updateFolder/UpdateFolderUseCaseWithLoading.js.map +1 -1
  351. package/features/folders/updateFolder/UpdateFolderUseCaseWithoutInheritedPermissions.d.ts +1 -1
  352. package/features/folders/updateFolder/UpdateFolderUseCaseWithoutInheritedPermissions.js.map +1 -1
  353. package/features/folders/updateFolder/useUpdateFolder.d.ts +1 -1
  354. package/features/folders/updateFolder/useUpdateFolder.js.map +1 -1
  355. package/graphql/app.gql.d.ts +1 -1
  356. package/graphql/app.gql.js.map +1 -1
  357. package/graphql/records/common.d.ts +1 -1
  358. package/graphql/records/common.js.map +1 -1
  359. package/graphql/records/createRecord.d.ts +1 -1
  360. package/graphql/records/createRecord.js.map +1 -1
  361. package/graphql/records/deleteRecord.d.ts +1 -1
  362. package/graphql/records/deleteRecord.js.map +1 -1
  363. package/graphql/records/getRecord.d.ts +1 -1
  364. package/graphql/records/getRecord.js.map +1 -1
  365. package/graphql/records/listRecords.d.ts +1 -1
  366. package/graphql/records/listRecords.js.map +1 -1
  367. package/graphql/records/listTags.d.ts +1 -1
  368. package/graphql/records/listTags.js.map +1 -1
  369. package/graphql/records/moveRecord.d.ts +1 -1
  370. package/graphql/records/moveRecord.js.map +1 -1
  371. package/graphql/records/types.d.ts +1 -1
  372. package/graphql/records/types.js.map +1 -1
  373. package/graphql/records/updateRecord.d.ts +1 -1
  374. package/graphql/records/updateRecord.js.map +1 -1
  375. package/handlers.d.ts +4 -4
  376. package/handlers.js.map +1 -1
  377. package/hooks/useAcoApp.d.ts +1 -1
  378. package/hooks/useAcoApp.js.map +1 -1
  379. package/hooks/useAcoList.d.ts +2 -2
  380. package/hooks/useAcoList.js.map +1 -1
  381. package/hooks/useRecords.d.ts +2 -2
  382. package/hooks/useRecords.js.map +1 -1
  383. package/hooks/useTags.d.ts +1 -1
  384. package/hooks/useTags.js.map +1 -1
  385. package/index.d.ts +2 -0
  386. package/index.js +1 -0
  387. package/index.js.map +1 -1
  388. package/package.json +18 -18
  389. package/sorting.d.ts +1 -1
  390. package/sorting.js.map +1 -1
  391. package/table.types.d.ts +6 -4
  392. package/table.types.js.map +1 -1
  393. package/types.d.ts +2 -2
  394. package/types.js +0 -1
  395. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useRef","observer","Button","Drawer","useHotkeys","QueryBuilder","QueryBuilderDrawerPresenter","QueryBuilderDrawer","filter","props","presenter","load","onChange","data","setFilter","onApply","onValidationError","vm","invalidMessage","onSave","zIndex","disabled","isOpen","keys","esc","onClose","ref","createElement","open","modal","width","title","description","info","onClick","text","variant","actions","Fragment","CancelButton","ConfirmButton","current","submit","headerSeparator","footerSeparator","onForm","form","onSubmit","onDeleteGroup","groupIndex","deleteGroup","onSetFilterFieldData","filterIndex","setFilterFieldData","onDeleteFilterFromGroup","deleteFilterFromGroup","onAddNewFilterToGroup","addNewFilterToGroup","onAddGroup","addGroup","fields"],"sources":["QueryBuilderDrawer.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Drawer } from \"@webiny/admin-ui\";\nimport { FormAPI } from \"@webiny/form\";\n// @ts-expect-error\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { QueryBuilder } from \"./QueryBuilder\";\n\nimport { FieldDTOWithElement, FilterDTO } from \"~/components/AdvancedSearch/domain\";\n\nimport { QueryBuilderDrawerPresenter, QueryBuilderFormData } from \"./QueryBuilderDrawerPresenter\";\n\ninterface QueryBuilderDrawerProps {\n fields: FieldDTOWithElement[];\n onClose: () => void;\n onSave: (data: FilterDTO) => void;\n onApply: (data: FilterDTO) => void;\n onValidationError: (message: string) => void;\n filter: FilterDTO;\n vm: {\n isOpen: boolean;\n };\n}\n\nexport const QueryBuilderDrawer = observer(({ filter, ...props }: QueryBuilderDrawerProps) => {\n const presenter = useMemo<QueryBuilderDrawerPresenter>(() => {\n return new QueryBuilderDrawerPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(filter);\n }, [filter]);\n\n const onChange = (data: QueryBuilderFormData) => {\n presenter.setFilter(data);\n };\n\n const onApply = () => {\n presenter.onApply(\n filter => {\n props.onApply(filter);\n },\n () => {\n props.onValidationError(presenter.vm.invalidMessage);\n }\n );\n };\n\n const onSave = () => {\n presenter.onSave(\n filter => {\n props.onSave(filter);\n },\n () => {\n props.onValidationError(presenter.vm.invalidMessage);\n }\n );\n };\n\n useHotkeys({\n zIndex: 55,\n disabled: !props.vm.isOpen,\n keys: {\n esc: props.onClose\n }\n });\n\n const ref = useRef<FormAPI | null>(null);\n\n return (\n <Drawer\n open={props.vm.isOpen}\n onClose={props.onClose}\n modal={true}\n width={1000}\n title={\"Advanced search filter\"}\n description={\"Create a filter to search for specific content.\"}\n info={<Button onClick={onSave} text={\"Save filter\"} variant={\"secondary\"} />}\n actions={\n <>\n <Drawer.CancelButton text={\"Cancel\"} />\n <Drawer.ConfirmButton\n onClick={() => ref.current?.submit()}\n text={\"Apply filter\"}\n />\n </>\n }\n headerSeparator={true}\n footerSeparator={true}\n >\n <QueryBuilder\n onForm={form => (ref.current = form)}\n onSubmit={onApply}\n onChange={data => onChange(data)}\n onDeleteGroup={groupIndex => presenter.deleteGroup(groupIndex)}\n onSetFilterFieldData={(groupIndex, filterIndex, data) =>\n presenter.setFilterFieldData(groupIndex, filterIndex, data)\n }\n onDeleteFilterFromGroup={(groupIndex, filterIndex) =>\n presenter.deleteFilterFromGroup(groupIndex, filterIndex)\n }\n onAddNewFilterToGroup={groupIndex => presenter.addNewFilterToGroup(groupIndex)}\n onAddGroup={() => presenter.addGroup()}\n fields={props.fields}\n vm={presenter.vm}\n />\n </Drawer>\n );\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","observer","Button","Drawer","useHotkeys","QueryBuilder","QueryBuilderDrawerPresenter","QueryBuilderDrawer","filter","props","presenter","load","onChange","data","setFilter","onApply","onValidationError","vm","invalidMessage","onSave","zIndex","disabled","isOpen","keys","esc","onClose","ref","createElement","open","modal","width","title","description","info","onClick","text","variant","actions","Fragment","CancelButton","ConfirmButton","current","submit","headerSeparator","footerSeparator","onForm","form","onSubmit","onDeleteGroup","groupIndex","deleteGroup","onSetFilterFieldData","filterIndex","setFilterFieldData","onDeleteFilterFromGroup","deleteFilterFromGroup","onAddNewFilterToGroup","addNewFilterToGroup","onAddGroup","addGroup","fields"],"sources":["QueryBuilderDrawer.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Drawer } from \"@webiny/admin-ui\";\nimport type { FormAPI } from \"@webiny/form\";\n// @ts-expect-error\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { QueryBuilder } from \"./QueryBuilder\";\n\nimport type { FieldDTOWithElement, FilterDTO } from \"~/components/AdvancedSearch/domain\";\n\nimport type { QueryBuilderFormData } from \"./QueryBuilderDrawerPresenter\";\nimport { QueryBuilderDrawerPresenter } from \"./QueryBuilderDrawerPresenter\";\n\ninterface QueryBuilderDrawerProps {\n fields: FieldDTOWithElement[];\n onClose: () => void;\n onSave: (data: FilterDTO) => void;\n onApply: (data: FilterDTO) => void;\n onValidationError: (message: string) => void;\n filter: FilterDTO;\n vm: {\n isOpen: boolean;\n };\n}\n\nexport const QueryBuilderDrawer = observer(({ filter, ...props }: QueryBuilderDrawerProps) => {\n const presenter = useMemo<QueryBuilderDrawerPresenter>(() => {\n return new QueryBuilderDrawerPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(filter);\n }, [filter]);\n\n const onChange = (data: QueryBuilderFormData) => {\n presenter.setFilter(data);\n };\n\n const onApply = () => {\n presenter.onApply(\n filter => {\n props.onApply(filter);\n },\n () => {\n props.onValidationError(presenter.vm.invalidMessage);\n }\n );\n };\n\n const onSave = () => {\n presenter.onSave(\n filter => {\n props.onSave(filter);\n },\n () => {\n props.onValidationError(presenter.vm.invalidMessage);\n }\n );\n };\n\n useHotkeys({\n zIndex: 55,\n disabled: !props.vm.isOpen,\n keys: {\n esc: props.onClose\n }\n });\n\n const ref = useRef<FormAPI | null>(null);\n\n return (\n <Drawer\n open={props.vm.isOpen}\n onClose={props.onClose}\n modal={true}\n width={1000}\n title={\"Advanced search filter\"}\n description={\"Create a filter to search for specific content.\"}\n info={<Button onClick={onSave} text={\"Save filter\"} variant={\"secondary\"} />}\n actions={\n <>\n <Drawer.CancelButton text={\"Cancel\"} />\n <Drawer.ConfirmButton\n onClick={() => ref.current?.submit()}\n text={\"Apply filter\"}\n />\n </>\n }\n headerSeparator={true}\n footerSeparator={true}\n >\n <QueryBuilder\n onForm={form => (ref.current = form)}\n onSubmit={onApply}\n onChange={data => onChange(data)}\n onDeleteGroup={groupIndex => presenter.deleteGroup(groupIndex)}\n onSetFilterFieldData={(groupIndex, filterIndex, data) =>\n presenter.setFilterFieldData(groupIndex, filterIndex, data)\n }\n onDeleteFilterFromGroup={(groupIndex, filterIndex) =>\n presenter.deleteFilterFromGroup(groupIndex, filterIndex)\n }\n onAddNewFilterToGroup={groupIndex => presenter.addNewFilterToGroup(groupIndex)}\n onAddGroup={() => presenter.addGroup()}\n fields={props.fields}\n vm={presenter.vm}\n />\n </Drawer>\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
- import { FilterDTO, FilterGroupFilterDTO, Operation } from "../domain";
2
- import { FormInvalidFields } from "@webiny/form";
1
+ import type { FilterDTO, FilterGroupFilterDTO } from "../domain";
2
+ import { Operation } from "../domain";
3
+ import type { FormInvalidFields } from "@webiny/form";
3
4
  export interface QueryBuilderDrawerPresenterInterface {
4
5
  load(filter: FilterDTO): void;
5
6
  addGroup(): void;
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","Filter","Operation","QueryBuilderDrawerPresenter","formWasSubmitted","invalidFields","invalidMessage","constructor","filter","undefined","load","vm","name","description","data","operation","AND","groups","map","group","groupIndex","title","open","canDelete","filters","filterIndex","field","condition","value","addGroup","push","deleteGroup","_","index","length","addNewFilterToGroup","deleteFilterFromGroup","setFilterFieldData","slice","setFilter","validateFilter","onApply","onSuccess","onError","result","success","onSave","validation","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QueryBuilderDrawerPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { Filter, FilterDTO, FilterGroupDTO, FilterGroupFilterDTO, Operation } from \"../domain\";\nimport { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QueryBuilderDrawerPresenterInterface {\n load(filter: FilterDTO): void;\n addGroup(): void;\n deleteGroup(groupIndex: number): void;\n addNewFilterToGroup(groupIndex: number): void;\n deleteFilterFromGroup(groupIndex: number, filterIndex: number): void;\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string): void;\n setFilter(data: QueryBuilderFormData): void;\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n get vm(): QueryBuilderViewModel;\n}\n\nexport interface QueryBuilderViewModel {\n name: string;\n description: string;\n invalidFields: FormInvalidFields;\n invalidMessage: string;\n data: QueryBuilderFormData;\n}\n\nexport interface QueryBuilderFormData {\n operation: Operation;\n groups: {\n operation: Operation;\n title: string;\n open: boolean;\n canDelete: boolean;\n filters: (FilterGroupFilterDTO & { canDelete: boolean })[];\n }[];\n}\n\nexport class QueryBuilderDrawerPresenter implements QueryBuilderDrawerPresenterInterface {\n private formWasSubmitted = false;\n private invalidFields: QueryBuilderViewModel[\"invalidFields\"] = {};\n private invalidMessage = \"\";\n private filter: FilterDTO | undefined;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\",\n invalidFields: this.invalidFields,\n invalidMessage: this.invalidMessage,\n data: {\n operation: this.filter?.operation || Operation.AND,\n groups:\n this.filter?.groups.map((group: FilterGroupDTO, groupIndex) => {\n return {\n title: `Filter group #${groupIndex + 1}`,\n open: true,\n operation: group.operation,\n canDelete: groupIndex !== 0,\n filters: group.filters.map((filter, filterIndex) => ({\n field: filter.field,\n condition: filter.condition,\n value: filter.value,\n canDelete: filterIndex !== 0\n }))\n };\n }) || []\n }\n };\n }\n\n addGroup() {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups.push({\n operation: Operation.AND,\n filters: [{ field: \"\", value: \"\", condition: \"\" }]\n });\n }\n\n deleteGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups = this.filter.groups.filter((_, index) => index !== groupIndex);\n\n // Make sure we always have at least 1 group!\n if (this.filter.groups.length === 0) {\n this.addGroup();\n }\n }\n\n addNewFilterToGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n\n deleteFilterFromGroup(groupIndex: number, filterIndex: number) {\n if (!this.filter) {\n return;\n }\n\n const filters = this.filter.groups[groupIndex].filters;\n this.filter.groups[groupIndex].filters = filters.filter(\n (_, index) => index !== filterIndex\n );\n\n // Make sure we always have at least 1 filter!\n if (this.filter.groups[groupIndex].filters.length === 0) {\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n }\n\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters = [\n ...this.filter.groups[groupIndex].filters.slice(0, filterIndex),\n {\n field: data,\n value: \"\",\n condition: \"\"\n },\n ...this.filter.groups[groupIndex].filters.slice(filterIndex + 1)\n ];\n }\n\n setFilter(data: QueryBuilderFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n operation: data.operation,\n groups: data.groups.map(group => ({\n operation: group.operation,\n filters: group.filters\n }))\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidMessage = \"Error during the validation: check the filter configuration.\";\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidMessage = \"\";\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","Filter","Operation","QueryBuilderDrawerPresenter","formWasSubmitted","invalidFields","invalidMessage","constructor","filter","undefined","load","vm","name","description","data","operation","AND","groups","map","group","groupIndex","title","open","canDelete","filters","filterIndex","field","condition","value","addGroup","push","deleteGroup","_","index","length","addNewFilterToGroup","deleteFilterFromGroup","setFilterFieldData","slice","setFilter","validateFilter","onApply","onSuccess","onError","result","success","onSave","validation","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QueryBuilderDrawerPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport type { FilterDTO, FilterGroupDTO, FilterGroupFilterDTO } from \"../domain\";\nimport { Filter, Operation } from \"../domain\";\nimport type { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QueryBuilderDrawerPresenterInterface {\n load(filter: FilterDTO): void;\n addGroup(): void;\n deleteGroup(groupIndex: number): void;\n addNewFilterToGroup(groupIndex: number): void;\n deleteFilterFromGroup(groupIndex: number, filterIndex: number): void;\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string): void;\n setFilter(data: QueryBuilderFormData): void;\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n get vm(): QueryBuilderViewModel;\n}\n\nexport interface QueryBuilderViewModel {\n name: string;\n description: string;\n invalidFields: FormInvalidFields;\n invalidMessage: string;\n data: QueryBuilderFormData;\n}\n\nexport interface QueryBuilderFormData {\n operation: Operation;\n groups: {\n operation: Operation;\n title: string;\n open: boolean;\n canDelete: boolean;\n filters: (FilterGroupFilterDTO & { canDelete: boolean })[];\n }[];\n}\n\nexport class QueryBuilderDrawerPresenter implements QueryBuilderDrawerPresenterInterface {\n private formWasSubmitted = false;\n private invalidFields: QueryBuilderViewModel[\"invalidFields\"] = {};\n private invalidMessage = \"\";\n private filter: FilterDTO | undefined;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\",\n invalidFields: this.invalidFields,\n invalidMessage: this.invalidMessage,\n data: {\n operation: this.filter?.operation || Operation.AND,\n groups:\n this.filter?.groups.map((group: FilterGroupDTO, groupIndex) => {\n return {\n title: `Filter group #${groupIndex + 1}`,\n open: true,\n operation: group.operation,\n canDelete: groupIndex !== 0,\n filters: group.filters.map((filter, filterIndex) => ({\n field: filter.field,\n condition: filter.condition,\n value: filter.value,\n canDelete: filterIndex !== 0\n }))\n };\n }) || []\n }\n };\n }\n\n addGroup() {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups.push({\n operation: Operation.AND,\n filters: [{ field: \"\", value: \"\", condition: \"\" }]\n });\n }\n\n deleteGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups = this.filter.groups.filter((_, index) => index !== groupIndex);\n\n // Make sure we always have at least 1 group!\n if (this.filter.groups.length === 0) {\n this.addGroup();\n }\n }\n\n addNewFilterToGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n\n deleteFilterFromGroup(groupIndex: number, filterIndex: number) {\n if (!this.filter) {\n return;\n }\n\n const filters = this.filter.groups[groupIndex].filters;\n this.filter.groups[groupIndex].filters = filters.filter(\n (_, index) => index !== filterIndex\n );\n\n // Make sure we always have at least 1 filter!\n if (this.filter.groups[groupIndex].filters.length === 0) {\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n }\n\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters = [\n ...this.filter.groups[groupIndex].filters.slice(0, filterIndex),\n {\n field: data,\n value: \"\",\n condition: \"\"\n },\n ...this.filter.groups[groupIndex].filters.slice(filterIndex + 1)\n ];\n }\n\n setFilter(data: QueryBuilderFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n operation: data.operation,\n groups: data.groups.map(group => ({\n operation: group.operation,\n filters: group.filters\n }))\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidMessage = \"Error during the validation: check the filter configuration.\";\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidMessage = \"\";\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["QueryBuilderDrawerPresenter","Operation","describe","defaultFilter","field","value","condition","testFilter","testGroup","operation","AND","filters","filter","id","name","description","groups","presenter","beforeEach","it","load","expect","vm","toEqual","data","title","open","canDelete","invalidFields","invalidMessage","length","toBe","addGroup","deleteGroup","addNewFilterToGroup","resultFilter","deleteFilterFromGroup","setFilter","OR","onSuccess","jest","fn","onError","onApply","toBeCalledTimes","Object","keys","toBeGreaterThanOrEqual","onSave","setFilterFieldData"],"sources":["QueryBuilderDrawerPresenter.test.tsx"],"sourcesContent":["import { QueryBuilderDrawerPresenter } from \"./QueryBuilderDrawerPresenter\";\nimport { FilterDTO, Operation } from \"~/components/AdvancedSearch/domain\";\n\ndescribe(\"QueryBuilderDrawerPresenter\", () => {\n const defaultFilter = { field: \"\", value: \"\", condition: \"\" };\n\n const testFilter = {\n field: \"\",\n condition: \"\",\n value: \"\"\n };\n\n const testGroup = {\n operation: Operation.AND,\n filters: [testFilter]\n };\n\n const filter: FilterDTO = {\n id: \"\",\n name: \"Filter name\",\n description: \"Filter description\",\n operation: Operation.AND,\n groups: [testGroup]\n };\n\n let presenter: QueryBuilderDrawerPresenter;\n\n beforeEach(() => {\n presenter = new QueryBuilderDrawerPresenter();\n });\n\n it(\"should create QueryBuilderDrawerPresenter with `vm` definition\", () => {\n presenter.load(filter);\n\n // `vm` should have the expected `name` and `description` definition\n expect(presenter.vm.name).toEqual(filter.name);\n expect(presenter.vm.description).toEqual(filter.description);\n\n // `vm` should have the expected `data` definition\n expect(presenter.vm.data).toEqual({\n operation: \"AND\",\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n // `vm` should have the expected `invalidFields` and `invalidMessage` definition\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage).toEqual(\"\");\n });\n\n it(\"should be able to add and delete groups\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // should only have 1 group, created by default\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n presenter.addGroup();\n\n // should have 2 groups\n expect(presenter.vm.data.groups.length).toBe(2);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n },\n {\n title: \"Filter group #2\",\n open: true,\n operation: Operation.AND,\n canDelete: true,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n // let's delete the first group\n presenter.deleteGroup(1);\n\n // should have 1 group only\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n // let's delete the remaining group\n presenter.deleteGroup(0);\n\n // should still have 1 default group\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n });\n\n it(\"should be able to add and delete filters from a group\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // let's load a new filter to the first group\n presenter.addNewFilterToGroup(0);\n\n // should have 2 filters inside the only existing group\n expect(presenter.vm.data.groups[0].filters.length).toBe(2);\n expect(presenter.vm.data.groups[0].filters).toEqual([\n {\n ...testFilter,\n canDelete: false\n },\n {\n ...testFilter,\n canDelete: true\n }\n ]);\n\n const resultFilter = presenter.vm.data.groups[0].filters[0];\n\n // let's delete the second filter\n presenter.deleteFilterFromGroup(0, 1);\n\n // should have 1 group only\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups[0].filters).toEqual([resultFilter]);\n\n // let's delete the remaining filter\n presenter.deleteFilterFromGroup(0, 0);\n\n // should still have 1 default filter\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups[0].filters).toEqual([\n {\n ...defaultFilter,\n canDelete: false\n }\n ]);\n });\n\n it(\"should be able to set data back to the filter\", () => {\n // let's load a filter\n presenter.load(filter);\n\n {\n // should be able to set the `data` operation\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.operation).toEqual(Operation.OR);\n }\n\n {\n // should be able to set the `data` group\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.groups[0].operation).toEqual(Operation.OR);\n }\n\n {\n // should be able to change the `data` filter definition\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false,\n field: \"any-field\"\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.groups[0].filters[0].field).toEqual(\"any-field\");\n }\n });\n\n it(\"should perform validation and call provided callbacks `onApply`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"\" // empty value -> this should trigger the error\n }\n ]\n }\n ]\n });\n\n presenter.onApply(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n expect(presenter.vm.invalidMessage.length).toBeGreaterThanOrEqual(1);\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\",\n canDelete: false\n }\n ]\n }\n ]\n });\n\n presenter.onApply(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage.length).toBe(0);\n });\n\n it(\"should perform validation and call provided callbacks `onSave`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"\" // empty value -> this should trigger the error\n }\n ]\n }\n ]\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n expect(presenter.vm.invalidMessage.length).toBeGreaterThanOrEqual(1);\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\"\n }\n ]\n }\n ]\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage.length).toBe(0);\n });\n\n it(\"should able to set the filter `field` data\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // Let's change the filter and change the only exising filter\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\",\n canDelete: false\n }\n ]\n }\n ]\n });\n\n // let's empty the filter\n presenter.setFilterFieldData(0, 0, \"new-field\");\n\n // should have a filter with default definition and new field value\n expect(presenter.vm.data.groups[0].filters).toEqual([\n { ...defaultFilter, field: \"new-field\", canDelete: false }\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["QueryBuilderDrawerPresenter","Operation","describe","defaultFilter","field","value","condition","testFilter","testGroup","operation","AND","filters","filter","id","name","description","groups","presenter","beforeEach","it","load","expect","vm","toEqual","data","title","open","canDelete","invalidFields","invalidMessage","length","toBe","addGroup","deleteGroup","addNewFilterToGroup","resultFilter","deleteFilterFromGroup","setFilter","OR","onSuccess","jest","fn","onError","onApply","toBeCalledTimes","Object","keys","toBeGreaterThanOrEqual","onSave","setFilterFieldData"],"sources":["QueryBuilderDrawerPresenter.test.tsx"],"sourcesContent":["import { QueryBuilderDrawerPresenter } from \"./QueryBuilderDrawerPresenter\";\nimport type { FilterDTO } from \"~/components/AdvancedSearch/domain\";\nimport { Operation } from \"~/components/AdvancedSearch/domain\";\n\ndescribe(\"QueryBuilderDrawerPresenter\", () => {\n const defaultFilter = { field: \"\", value: \"\", condition: \"\" };\n\n const testFilter = {\n field: \"\",\n condition: \"\",\n value: \"\"\n };\n\n const testGroup = {\n operation: Operation.AND,\n filters: [testFilter]\n };\n\n const filter: FilterDTO = {\n id: \"\",\n name: \"Filter name\",\n description: \"Filter description\",\n operation: Operation.AND,\n groups: [testGroup]\n };\n\n let presenter: QueryBuilderDrawerPresenter;\n\n beforeEach(() => {\n presenter = new QueryBuilderDrawerPresenter();\n });\n\n it(\"should create QueryBuilderDrawerPresenter with `vm` definition\", () => {\n presenter.load(filter);\n\n // `vm` should have the expected `name` and `description` definition\n expect(presenter.vm.name).toEqual(filter.name);\n expect(presenter.vm.description).toEqual(filter.description);\n\n // `vm` should have the expected `data` definition\n expect(presenter.vm.data).toEqual({\n operation: \"AND\",\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n // `vm` should have the expected `invalidFields` and `invalidMessage` definition\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage).toEqual(\"\");\n });\n\n it(\"should be able to add and delete groups\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // should only have 1 group, created by default\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n presenter.addGroup();\n\n // should have 2 groups\n expect(presenter.vm.data.groups.length).toBe(2);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n },\n {\n title: \"Filter group #2\",\n open: true,\n operation: Operation.AND,\n canDelete: true,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n // let's delete the first group\n presenter.deleteGroup(1);\n\n // should have 1 group only\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n\n // let's delete the remaining group\n presenter.deleteGroup(0);\n\n // should still have 1 default group\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups).toEqual([\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]);\n });\n\n it(\"should be able to add and delete filters from a group\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // let's load a new filter to the first group\n presenter.addNewFilterToGroup(0);\n\n // should have 2 filters inside the only existing group\n expect(presenter.vm.data.groups[0].filters.length).toBe(2);\n expect(presenter.vm.data.groups[0].filters).toEqual([\n {\n ...testFilter,\n canDelete: false\n },\n {\n ...testFilter,\n canDelete: true\n }\n ]);\n\n const resultFilter = presenter.vm.data.groups[0].filters[0];\n\n // let's delete the second filter\n presenter.deleteFilterFromGroup(0, 1);\n\n // should have 1 group only\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups[0].filters).toEqual([resultFilter]);\n\n // let's delete the remaining filter\n presenter.deleteFilterFromGroup(0, 0);\n\n // should still have 1 default filter\n expect(presenter.vm.data.groups.length).toBe(1);\n expect(presenter.vm.data.groups[0].filters).toEqual([\n {\n ...defaultFilter,\n canDelete: false\n }\n ]);\n });\n\n it(\"should be able to set data back to the filter\", () => {\n // let's load a filter\n presenter.load(filter);\n\n {\n // should be able to set the `data` operation\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.operation).toEqual(Operation.OR);\n }\n\n {\n // should be able to set the `data` group\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.groups[0].operation).toEqual(Operation.OR);\n }\n\n {\n // should be able to change the `data` filter definition\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n ...testFilter,\n canDelete: false,\n field: \"any-field\"\n }\n ]\n }\n ]\n });\n\n expect(presenter.vm.data.groups[0].filters[0].field).toEqual(\"any-field\");\n }\n });\n\n it(\"should perform validation and call provided callbacks `onApply`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"\" // empty value -> this should trigger the error\n }\n ]\n }\n ]\n });\n\n presenter.onApply(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n expect(presenter.vm.invalidMessage.length).toBeGreaterThanOrEqual(1);\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\",\n canDelete: false\n }\n ]\n }\n ]\n });\n\n presenter.onApply(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage.length).toBe(0);\n });\n\n it(\"should perform validation and call provided callbacks `onSave`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"\" // empty value -> this should trigger the error\n }\n ]\n }\n ]\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n expect(presenter.vm.invalidMessage.length).toBeGreaterThanOrEqual(1);\n\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.OR,\n canDelete: false,\n filters: [\n {\n canDelete: false,\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\"\n }\n ]\n }\n ]\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n expect(presenter.vm.invalidMessage.length).toBe(0);\n });\n\n it(\"should able to set the filter `field` data\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // Let's change the filter and change the only exising filter\n presenter.setFilter({\n operation: Operation.OR,\n groups: [\n {\n title: \"Filter group #1\",\n open: true,\n operation: Operation.AND,\n canDelete: false,\n filters: [\n {\n field: \"any-field\",\n condition: \"any-condition\",\n value: \"any-value\",\n canDelete: false\n }\n ]\n }\n ]\n });\n\n // let's empty the filter\n presenter.setFilterFieldData(0, 0, \"new-field\");\n\n // should have a filter with default definition and new field value\n expect(presenter.vm.data.groups[0].filters).toEqual([\n { ...defaultFilter, field: \"new-field\", canDelete: false }\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { QueryManagerFilter } from "../QueryManagerDialog";
2
+ import type { QueryManagerFilter } from "../QueryManagerDialog";
3
3
  type filterCallback = (filterId: string) => void;
4
4
  interface FilterListProps {
5
5
  onEdit: filterCallback;
@@ -1 +1 @@
1
- {"version":3,"names":["React","List","IconButton","Tooltip","DropdownMenu","ReactComponent","SavedSearchIcon","MoreIcon","Description","FilterList","props","createElement","filters","map","filter","Item","key","id","onClick","onSelect","title","name","description","createdOn","actions","Fragment","trigger","icon","size","variant","content","side","onEdit","text","onRename","onClone","onDelete"],"sources":["FilterList.tsx"],"sourcesContent":["import React from \"react\";\nimport { List, IconButton, Tooltip, DropdownMenu } from \"@webiny/admin-ui\";\nimport { ReactComponent as SavedSearchIcon } from \"@webiny/icons/saved_search.svg\";\nimport { ReactComponent as MoreIcon } from \"@webiny/icons/more_vert.svg\";\nimport { QueryManagerFilter } from \"../QueryManagerDialog\";\nimport { Description } from \"./Description\";\n\ntype filterCallback = (filterId: string) => void;\n\ninterface FilterListProps {\n onEdit: filterCallback;\n onRename: filterCallback;\n onDelete: filterCallback;\n onSelect: filterCallback;\n onClone: filterCallback;\n filters: QueryManagerFilter[];\n}\n\nexport const FilterList = (props: FilterListProps) => {\n return (\n <List>\n {props.filters.map(filter => (\n <List.Item\n key={filter.id}\n onClick={() => props.onSelect(filter.id)}\n title={filter.name}\n description={\n <Description createdOn={filter.createdOn}>{filter.description}</Description>\n }\n actions={\n <>\n <Tooltip\n trigger={\n <IconButton\n icon={<SavedSearchIcon />}\n onClick={() => props.onSelect(filter.id)}\n size={\"sm\"}\n variant={\"ghost\"}\n />\n }\n content={\"Apply filter\"}\n side={\"left\"}\n />\n <DropdownMenu\n trigger={\n <IconButton icon={<MoreIcon />} size={\"sm\"} variant={\"ghost\"} />\n }\n >\n <DropdownMenu.Item\n onClick={() => props.onEdit(filter.id)}\n text={\"Edit\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onRename(filter.id)}\n text={\"Rename\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onClone(filter.id)}\n text={\"Clone\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onDelete(filter.id)}\n text={\"Delete\"}\n />\n </DropdownMenu>\n </>\n }\n />\n ))}\n </List>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,EAAEC,OAAO,EAAEC,YAAY,QAAQ,kBAAkB;AAC1E,SAASC,cAAc,IAAIC,eAAe,QAAQ,gCAAgC;AAClF,SAASD,cAAc,IAAIE,QAAQ,QAAQ,6BAA6B;AAExE,SAASC,WAAW;AAapB,OAAO,MAAMC,UAAU,GAAIC,KAAsB,IAAK;EAClD,oBACIV,KAAA,CAAAW,aAAA,CAACV,IAAI,QACAS,KAAK,CAACE,OAAO,CAACC,GAAG,CAACC,MAAM,iBACrBd,KAAA,CAAAW,aAAA,CAACV,IAAI,CAACc,IAAI;IACNC,GAAG,EAAEF,MAAM,CAACG,EAAG;IACfC,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACS,QAAQ,CAACL,MAAM,CAACG,EAAE,CAAE;IACzCG,KAAK,EAAEN,MAAM,CAACO,IAAK;IACnBC,WAAW,eACPtB,KAAA,CAAAW,aAAA,CAACH,WAAW;MAACe,SAAS,EAAET,MAAM,CAACS;IAAU,GAAET,MAAM,CAACQ,WAAyB,CAC9E;IACDE,OAAO,eACHxB,KAAA,CAAAW,aAAA,CAAAX,KAAA,CAAAyB,QAAA,qBACIzB,KAAA,CAAAW,aAAA,CAACR,OAAO;MACJuB,OAAO,eACH1B,KAAA,CAAAW,aAAA,CAACT,UAAU;QACPyB,IAAI,eAAE3B,KAAA,CAAAW,aAAA,CAACL,eAAe,MAAE,CAAE;QAC1BY,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACS,QAAQ,CAACL,MAAM,CAACG,EAAE,CAAE;QACzCW,IAAI,EAAE,IAAK;QACXC,OAAO,EAAE;MAAQ,CACpB,CACJ;MACDC,OAAO,EAAE,cAAe;MACxBC,IAAI,EAAE;IAAO,CAChB,CAAC,eACF/B,KAAA,CAAAW,aAAA,CAACP,YAAY;MACTsB,OAAO,eACH1B,KAAA,CAAAW,aAAA,CAACT,UAAU;QAACyB,IAAI,eAAE3B,KAAA,CAAAW,aAAA,CAACJ,QAAQ,MAAE,CAAE;QAACqB,IAAI,EAAE,IAAK;QAACC,OAAO,EAAE;MAAQ,CAAE;IAClE,gBAED7B,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACsB,MAAM,CAAClB,MAAM,CAACG,EAAE,CAAE;MACvCgB,IAAI,EAAE;IAAO,CAChB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACwB,QAAQ,CAACpB,MAAM,CAACG,EAAE,CAAE;MACzCgB,IAAI,EAAE;IAAS,CAClB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACyB,OAAO,CAACrB,MAAM,CAACG,EAAE,CAAE;MACxCgB,IAAI,EAAE;IAAQ,CACjB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAAC0B,QAAQ,CAACtB,MAAM,CAACG,EAAE,CAAE;MACzCgB,IAAI,EAAE;IAAS,CAClB,CACS,CAChB;EACL,CACJ,CACJ,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","List","IconButton","Tooltip","DropdownMenu","ReactComponent","SavedSearchIcon","MoreIcon","Description","FilterList","props","createElement","filters","map","filter","Item","key","id","onClick","onSelect","title","name","description","createdOn","actions","Fragment","trigger","icon","size","variant","content","side","onEdit","text","onRename","onClone","onDelete"],"sources":["FilterList.tsx"],"sourcesContent":["import React from \"react\";\nimport { List, IconButton, Tooltip, DropdownMenu } from \"@webiny/admin-ui\";\nimport { ReactComponent as SavedSearchIcon } from \"@webiny/icons/saved_search.svg\";\nimport { ReactComponent as MoreIcon } from \"@webiny/icons/more_vert.svg\";\nimport type { QueryManagerFilter } from \"../QueryManagerDialog\";\nimport { Description } from \"./Description\";\n\ntype filterCallback = (filterId: string) => void;\n\ninterface FilterListProps {\n onEdit: filterCallback;\n onRename: filterCallback;\n onDelete: filterCallback;\n onSelect: filterCallback;\n onClone: filterCallback;\n filters: QueryManagerFilter[];\n}\n\nexport const FilterList = (props: FilterListProps) => {\n return (\n <List>\n {props.filters.map(filter => (\n <List.Item\n key={filter.id}\n onClick={() => props.onSelect(filter.id)}\n title={filter.name}\n description={\n <Description createdOn={filter.createdOn}>{filter.description}</Description>\n }\n actions={\n <>\n <Tooltip\n trigger={\n <IconButton\n icon={<SavedSearchIcon />}\n onClick={() => props.onSelect(filter.id)}\n size={\"sm\"}\n variant={\"ghost\"}\n />\n }\n content={\"Apply filter\"}\n side={\"left\"}\n />\n <DropdownMenu\n trigger={\n <IconButton icon={<MoreIcon />} size={\"sm\"} variant={\"ghost\"} />\n }\n >\n <DropdownMenu.Item\n onClick={() => props.onEdit(filter.id)}\n text={\"Edit\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onRename(filter.id)}\n text={\"Rename\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onClone(filter.id)}\n text={\"Clone\"}\n />\n <DropdownMenu.Item\n onClick={() => props.onDelete(filter.id)}\n text={\"Delete\"}\n />\n </DropdownMenu>\n </>\n }\n />\n ))}\n </List>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,EAAEC,OAAO,EAAEC,YAAY,QAAQ,kBAAkB;AAC1E,SAASC,cAAc,IAAIC,eAAe,QAAQ,gCAAgC;AAClF,SAASD,cAAc,IAAIE,QAAQ,QAAQ,6BAA6B;AAExE,SAASC,WAAW;AAapB,OAAO,MAAMC,UAAU,GAAIC,KAAsB,IAAK;EAClD,oBACIV,KAAA,CAAAW,aAAA,CAACV,IAAI,QACAS,KAAK,CAACE,OAAO,CAACC,GAAG,CAACC,MAAM,iBACrBd,KAAA,CAAAW,aAAA,CAACV,IAAI,CAACc,IAAI;IACNC,GAAG,EAAEF,MAAM,CAACG,EAAG;IACfC,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACS,QAAQ,CAACL,MAAM,CAACG,EAAE,CAAE;IACzCG,KAAK,EAAEN,MAAM,CAACO,IAAK;IACnBC,WAAW,eACPtB,KAAA,CAAAW,aAAA,CAACH,WAAW;MAACe,SAAS,EAAET,MAAM,CAACS;IAAU,GAAET,MAAM,CAACQ,WAAyB,CAC9E;IACDE,OAAO,eACHxB,KAAA,CAAAW,aAAA,CAAAX,KAAA,CAAAyB,QAAA,qBACIzB,KAAA,CAAAW,aAAA,CAACR,OAAO;MACJuB,OAAO,eACH1B,KAAA,CAAAW,aAAA,CAACT,UAAU;QACPyB,IAAI,eAAE3B,KAAA,CAAAW,aAAA,CAACL,eAAe,MAAE,CAAE;QAC1BY,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACS,QAAQ,CAACL,MAAM,CAACG,EAAE,CAAE;QACzCW,IAAI,EAAE,IAAK;QACXC,OAAO,EAAE;MAAQ,CACpB,CACJ;MACDC,OAAO,EAAE,cAAe;MACxBC,IAAI,EAAE;IAAO,CAChB,CAAC,eACF/B,KAAA,CAAAW,aAAA,CAACP,YAAY;MACTsB,OAAO,eACH1B,KAAA,CAAAW,aAAA,CAACT,UAAU;QAACyB,IAAI,eAAE3B,KAAA,CAAAW,aAAA,CAACJ,QAAQ,MAAE,CAAE;QAACqB,IAAI,EAAE,IAAK;QAACC,OAAO,EAAE;MAAQ,CAAE;IAClE,gBAED7B,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACsB,MAAM,CAAClB,MAAM,CAACG,EAAE,CAAE;MACvCgB,IAAI,EAAE;IAAO,CAChB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACwB,QAAQ,CAACpB,MAAM,CAACG,EAAE,CAAE;MACzCgB,IAAI,EAAE;IAAS,CAClB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAACyB,OAAO,CAACrB,MAAM,CAACG,EAAE,CAAE;MACxCgB,IAAI,EAAE;IAAQ,CACjB,CAAC,eACFjC,KAAA,CAAAW,aAAA,CAACP,YAAY,CAACW,IAAI;MACdG,OAAO,EAAEA,CAAA,KAAMR,KAAK,CAAC0B,QAAQ,CAACtB,MAAM,CAACG,EAAE,CAAE;MACzCgB,IAAI,EAAE;IAAS,CAClB,CACS,CAChB;EACL,CACJ,CACJ,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { FilterDTO } from "../domain";
2
+ import type { FilterDTO } from "../domain";
3
3
  interface QuerySaverDialogProps {
4
4
  onClose: () => void;
5
5
  onSave: (data: FilterDTO) => void;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","Dialog","Grid","Input","OverlayLoader","Textarea","Form","QuerySaverDialogPresenter","QuerySaverDialog","filter","props","presenter","load","onChange","data","setFilter","onSubmit","onSave","createElement","vm","invalidFields","Bind","form","open","isOpen","onClose","title","actions","Fragment","CancelButton","onClick","text","ConfirmButton","submit","isLoading","loadingLabel","Column","span","name","type","label","size","rows"],"sources":["QuerySaverDialog.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { Dialog, Grid, Input, OverlayLoader, Textarea } from \"@webiny/admin-ui\";\nimport { Form } from \"@webiny/form\";\nimport { QuerySaverDialogFormData, QuerySaverDialogPresenter } from \"./QuerySaverDialogPresenter\";\nimport { FilterDTO } from \"../domain\";\n\ninterface QuerySaverDialogProps {\n onClose: () => void;\n onSave: (data: FilterDTO) => void;\n filter: FilterDTO;\n vm: {\n isOpen: boolean;\n isLoading: boolean;\n loadingLabel: string;\n };\n}\n\nexport const QuerySaverDialog = ({ filter, ...props }: QuerySaverDialogProps) => {\n const presenter = useMemo<QuerySaverDialogPresenter>(() => {\n return new QuerySaverDialogPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(filter);\n }, [filter]);\n\n const onChange = (data: QuerySaverDialogFormData) => {\n presenter.setFilter(data);\n };\n\n const onSubmit = () => {\n presenter.onSave(filter => {\n props.onSave(filter);\n });\n };\n\n return (\n <Form\n data={presenter.vm.data}\n onChange={onChange}\n onSubmit={onSubmit}\n invalidFields={presenter.vm.invalidFields}\n >\n {({ Bind, form }) => {\n return (\n <Dialog\n open={props.vm.isOpen}\n onClose={props.onClose}\n title={\"Save search filter\"}\n actions={\n <>\n <Dialog.CancelButton onClick={props.onClose} text={\"Cancel\"} />\n <Dialog.ConfirmButton\n onClick={form.submit}\n text={\"Save and apply\"}\n />\n </>\n }\n >\n {props.vm.isOpen ? (\n <>\n {props.vm.isLoading && (\n <OverlayLoader text={props.vm.loadingLabel} />\n )}\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"name\"}>\n <Input type={\"text\"} label={\"Name\"} size={\"lg\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Textarea label={\"Description\"} rows={6} size={\"lg\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n </>\n ) : null}\n </Dialog>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","Dialog","Grid","Input","OverlayLoader","Textarea","Form","QuerySaverDialogPresenter","QuerySaverDialog","filter","props","presenter","load","onChange","data","setFilter","onSubmit","onSave","createElement","vm","invalidFields","Bind","form","open","isOpen","onClose","title","actions","Fragment","CancelButton","onClick","text","ConfirmButton","submit","isLoading","loadingLabel","Column","span","name","type","label","size","rows"],"sources":["QuerySaverDialog.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { Dialog, Grid, Input, OverlayLoader, Textarea } from \"@webiny/admin-ui\";\nimport { Form } from \"@webiny/form\";\nimport type { QuerySaverDialogFormData } from \"./QuerySaverDialogPresenter\";\nimport { QuerySaverDialogPresenter } from \"./QuerySaverDialogPresenter\";\nimport type { FilterDTO } from \"../domain\";\n\ninterface QuerySaverDialogProps {\n onClose: () => void;\n onSave: (data: FilterDTO) => void;\n filter: FilterDTO;\n vm: {\n isOpen: boolean;\n isLoading: boolean;\n loadingLabel: string;\n };\n}\n\nexport const QuerySaverDialog = ({ filter, ...props }: QuerySaverDialogProps) => {\n const presenter = useMemo<QuerySaverDialogPresenter>(() => {\n return new QuerySaverDialogPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(filter);\n }, [filter]);\n\n const onChange = (data: QuerySaverDialogFormData) => {\n presenter.setFilter(data);\n };\n\n const onSubmit = () => {\n presenter.onSave(filter => {\n props.onSave(filter);\n });\n };\n\n return (\n <Form\n data={presenter.vm.data}\n onChange={onChange}\n onSubmit={onSubmit}\n invalidFields={presenter.vm.invalidFields}\n >\n {({ Bind, form }) => {\n return (\n <Dialog\n open={props.vm.isOpen}\n onClose={props.onClose}\n title={\"Save search filter\"}\n actions={\n <>\n <Dialog.CancelButton onClick={props.onClose} text={\"Cancel\"} />\n <Dialog.ConfirmButton\n onClick={form.submit}\n text={\"Save and apply\"}\n />\n </>\n }\n >\n {props.vm.isOpen ? (\n <>\n {props.vm.isLoading && (\n <OverlayLoader text={props.vm.loadingLabel} />\n )}\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"name\"}>\n <Input type={\"text\"} label={\"Name\"} size={\"lg\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Textarea label={\"Description\"} rows={6} size={\"lg\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n </>\n ) : null}\n </Dialog>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { FilterDTO } from "../domain";
2
- import { FormInvalidFields } from "@webiny/form";
1
+ import type { FilterDTO } from "../domain";
2
+ import type { FormInvalidFields } from "@webiny/form";
3
3
  export interface QuerySaverDialogPresenterInterface {
4
4
  load(filter: FilterDTO): void;
5
5
  setFilter(data: QuerySaverDialogFormData): void;
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","Filter","QuerySaverDialogPresenter","invalidFields","formWasSubmitted","constructor","filter","undefined","load","vm","data","name","description","setFilter","validateFilter","onSave","onSuccess","onError","result","success","validation","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QuerySaverDialogPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport { Filter, FilterDTO } from \"../domain\";\nimport { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QuerySaverDialogPresenterInterface {\n load(filter: FilterDTO): void;\n setFilter(data: QuerySaverDialogFormData): void;\n onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ): Promise<void>;\n get vm(): {\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"];\n data: QuerySaverDialogFormData;\n };\n}\n\nexport interface QuerySaverDialogFormData {\n name: string;\n description?: string;\n}\n\nexport interface QuerySaverDialogViewModel {\n filter: FilterDTO | undefined;\n invalidFields: FormInvalidFields;\n}\n\nexport class QuerySaverDialogPresenter implements QuerySaverDialogPresenterInterface {\n private filter: QuerySaverDialogViewModel[\"filter\"];\n private invalidFields: QuerySaverDialogViewModel[\"invalidFields\"] = {};\n private formWasSubmitted = false;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n invalidFields: this.invalidFields,\n data: {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\"\n }\n };\n }\n\n setFilter(data: QuerySaverDialogFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n ...data\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n async onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter, this.invalidFields);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,MAAM;AAEzC,SAASC,MAAM;AA6Bf,OAAO,MAAMC,yBAAyB,CAA+C;EAEzEC,aAAa,GAA+C,CAAC,CAAC;EAC9DC,gBAAgB,GAAG,KAAK;EAEhCC,WAAWA,CAAA,EAAG;IACV,IAAI,CAACC,MAAM,GAAGC,SAAS;IACvBP,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAQ,IAAIA,CAACF,MAAiB,EAAE;IACpB,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,IAAIG,EAAEA,CAAA,EAAG;IACL,OAAO;MACHN,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCO,IAAI,EAAE;QACFC,IAAI,EAAE,IAAI,CAACL,MAAM,EAAEK,IAAI,IAAI,EAAE;QAC7BC,WAAW,EAAE,IAAI,CAACN,MAAM,EAAEM,WAAW,IAAI;MAC7C;IACJ,CAAC;EACL;EAEAC,SAASA,CAACH,IAA8B,EAAE;IACtC,IAAI,CAAC,IAAI,CAACJ,MAAM,EAAE;MACd;IACJ;IAEA,IAAI,CAACA,MAAM,GAAG;MACV,GAAG,IAAI,CAACA,MAAM;MACd,GAAGI;IACP,CAAC;IAED,IAAI,IAAI,CAACN,gBAAgB,EAAE;MACvB,IAAI,CAACU,cAAc,CAAC,IAAI,CAACR,MAAM,CAAC;IACpC;EACJ;EAEA,MAAMS,MAAMA,CACRC,SAAuC,EACvCC,OAGS,EACX;IACE,IAAI,CAAC,IAAI,CAACX,MAAM,EAAE;MACd;IACJ;IAEA,MAAMY,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAACR,MAAM,CAAC;IAC/C,IAAIY,MAAM,CAACC,OAAO,EAAE;MAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAACV,MAAM,CAAC;IACvC,CAAC,MAAM;MACHW,OAAO,IAAIA,OAAO,CAAC,IAAI,CAACX,MAAM,EAAE,IAAI,CAACH,aAAa,CAAC;IACvD;EACJ;EAEQW,cAAcA,CAACJ,IAAe,EAAE;IACpC,IAAI,CAACN,gBAAgB,GAAG,IAAI;IAC5B,MAAMgB,UAAU,GAAGnB,MAAM,CAACoB,QAAQ,CAACX,IAAI,CAAC;IAExC,IAAI,CAACU,UAAU,CAACD,OAAO,EAAE;MACrB,IAAI,CAAChB,aAAa,GAAGiB,UAAU,CAACE,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;QAChE,OAAO;UACH,GAAGD,GAAG;UACN,CAACC,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGF,KAAK,CAACG;QAClC,CAAC;MACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,MAAM;MACH,IAAI,CAAC1B,aAAa,GAAG,CAAC,CAAC;IAC3B;IAEA,OAAOiB,UAAU;EACrB;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","Filter","QuerySaverDialogPresenter","invalidFields","formWasSubmitted","constructor","filter","undefined","load","vm","data","name","description","setFilter","validateFilter","onSave","onSuccess","onError","result","success","validation","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QuerySaverDialogPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport type { FilterDTO } from \"../domain\";\nimport { Filter } from \"../domain\";\nimport type { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QuerySaverDialogPresenterInterface {\n load(filter: FilterDTO): void;\n setFilter(data: QuerySaverDialogFormData): void;\n onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ): Promise<void>;\n get vm(): {\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"];\n data: QuerySaverDialogFormData;\n };\n}\n\nexport interface QuerySaverDialogFormData {\n name: string;\n description?: string;\n}\n\nexport interface QuerySaverDialogViewModel {\n filter: FilterDTO | undefined;\n invalidFields: FormInvalidFields;\n}\n\nexport class QuerySaverDialogPresenter implements QuerySaverDialogPresenterInterface {\n private filter: QuerySaverDialogViewModel[\"filter\"];\n private invalidFields: QuerySaverDialogViewModel[\"invalidFields\"] = {};\n private formWasSubmitted = false;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n invalidFields: this.invalidFields,\n data: {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\"\n }\n };\n }\n\n setFilter(data: QuerySaverDialogFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n ...data\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n async onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter, this.invalidFields);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,MAAM;AAGzC,SAASC,MAAM;AA6Bf,OAAO,MAAMC,yBAAyB,CAA+C;EAEzEC,aAAa,GAA+C,CAAC,CAAC;EAC9DC,gBAAgB,GAAG,KAAK;EAEhCC,WAAWA,CAAA,EAAG;IACV,IAAI,CAACC,MAAM,GAAGC,SAAS;IACvBP,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAQ,IAAIA,CAACF,MAAiB,EAAE;IACpB,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,IAAIG,EAAEA,CAAA,EAAG;IACL,OAAO;MACHN,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCO,IAAI,EAAE;QACFC,IAAI,EAAE,IAAI,CAACL,MAAM,EAAEK,IAAI,IAAI,EAAE;QAC7BC,WAAW,EAAE,IAAI,CAACN,MAAM,EAAEM,WAAW,IAAI;MAC7C;IACJ,CAAC;EACL;EAEAC,SAASA,CAACH,IAA8B,EAAE;IACtC,IAAI,CAAC,IAAI,CAACJ,MAAM,EAAE;MACd;IACJ;IAEA,IAAI,CAACA,MAAM,GAAG;MACV,GAAG,IAAI,CAACA,MAAM;MACd,GAAGI;IACP,CAAC;IAED,IAAI,IAAI,CAACN,gBAAgB,EAAE;MACvB,IAAI,CAACU,cAAc,CAAC,IAAI,CAACR,MAAM,CAAC;IACpC;EACJ;EAEA,MAAMS,MAAMA,CACRC,SAAuC,EACvCC,OAGS,EACX;IACE,IAAI,CAAC,IAAI,CAACX,MAAM,EAAE;MACd;IACJ;IAEA,MAAMY,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAACR,MAAM,CAAC;IAC/C,IAAIY,MAAM,CAACC,OAAO,EAAE;MAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAACV,MAAM,CAAC;IACvC,CAAC,MAAM;MACHW,OAAO,IAAIA,OAAO,CAAC,IAAI,CAACX,MAAM,EAAE,IAAI,CAACH,aAAa,CAAC;IACvD;EACJ;EAEQW,cAAcA,CAACJ,IAAe,EAAE;IACpC,IAAI,CAACN,gBAAgB,GAAG,IAAI;IAC5B,MAAMgB,UAAU,GAAGnB,MAAM,CAACoB,QAAQ,CAACX,IAAI,CAAC;IAExC,IAAI,CAACU,UAAU,CAACD,OAAO,EAAE;MACrB,IAAI,CAAChB,aAAa,GAAGiB,UAAU,CAACE,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;QAChE,OAAO;UACH,GAAGD,GAAG;UACN,CAACC,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGF,KAAK,CAACG;QAClC,CAAC;MACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,MAAM;MACH,IAAI,CAAC1B,aAAa,GAAG,CAAC,CAAC;IAC3B;IAEA,OAAOiB,UAAU;EACrB;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Operation","QuerySaverDialogPresenter","describe","demoFilter","field","value","condition","demoGroup","operation","AND","filters","filter","id","name","description","groups","presenter","beforeEach","it","load","expect","vm","data","toEqual","invalidFields","setFilter","onSuccess","jest","fn","onError","onSave","toBeCalledTimes","Object","keys","length","toBe"],"sources":["QuerySaverDialogPresenter.test.ts"],"sourcesContent":["import {\n FilterDTO,\n FilterGroupDTO,\n FilterGroupFilterDTO,\n Operation\n} from \"~/components/AdvancedSearch/domain\";\nimport { QuerySaverDialogPresenter } from \"./QuerySaverDialogPresenter\";\n\ndescribe(\"QuerySaverDialogPresenter\", () => {\n const demoFilter: FilterGroupFilterDTO = {\n field: \"any-field\",\n value: \"any-value\",\n condition: \"any-condition\"\n };\n const demoGroup: FilterGroupDTO = {\n operation: Operation.AND,\n filters: [demoFilter]\n };\n\n const filter: FilterDTO = {\n id: \"\",\n name: \"QueryObject name\",\n description: \"QueryObject description\",\n operation: Operation.AND,\n groups: [demoGroup]\n };\n\n let presenter: QuerySaverDialogPresenter;\n\n beforeEach(() => {\n presenter = new QuerySaverDialogPresenter();\n });\n\n it(\"should create QuerySaverDialogPresenter with `vm` definition\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // `vm` should have the expected `data` definition\n expect(presenter.vm.data).toEqual({\n name: filter.name,\n description: filter.description\n });\n\n // `vm` should have the expected `invalidFields` definition\n expect(presenter.vm.invalidFields).toEqual({});\n });\n\n it(\"should be able to set data back to the filter\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // should be able to set the `queryObject` name and description\n presenter.setFilter({\n name: \"Any other name\",\n description: \"Any other description\"\n });\n\n expect(presenter.vm.data.name).toEqual(\"Any other name\");\n expect(presenter.vm.data.description).toEqual(\"Any other description\");\n });\n\n it(\"should perform validation and call provided callbacks `onSubmit`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n name: \"\", // empty value -> this should trigger the error\n description: \"\"\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n\n // let's change back `name` value so the validation will pass\n presenter.setFilter({\n name: \"Any name\",\n description: \"\"\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n });\n});\n"],"mappings":"AAAA,SAIIA,SAAS;AAEb,SAASC,yBAAyB;AAElCC,QAAQ,CAAC,2BAA2B,EAAE,MAAM;EACxC,MAAMC,UAAgC,GAAG;IACrCC,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAE,WAAW;IAClBC,SAAS,EAAE;EACf,CAAC;EACD,MAAMC,SAAyB,GAAG;IAC9BC,SAAS,EAAER,SAAS,CAACS,GAAG;IACxBC,OAAO,EAAE,CAACP,UAAU;EACxB,CAAC;EAED,MAAMQ,MAAiB,GAAG;IACtBC,EAAE,EAAE,EAAE;IACNC,IAAI,EAAE,kBAAkB;IACxBC,WAAW,EAAE,yBAAyB;IACtCN,SAAS,EAAER,SAAS,CAACS,GAAG;IACxBM,MAAM,EAAE,CAACR,SAAS;EACtB,CAAC;EAED,IAAIS,SAAoC;EAExCC,UAAU,CAAC,MAAM;IACbD,SAAS,GAAG,IAAIf,yBAAyB,CAAC,CAAC;EAC/C,CAAC,CAAC;EAEFiB,EAAE,CAAC,8DAA8D,EAAE,MAAM;IACrE;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;;IAEtB;IACAS,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAAC,CAACC,OAAO,CAAC;MAC9BV,IAAI,EAAEF,MAAM,CAACE,IAAI;MACjBC,WAAW,EAAEH,MAAM,CAACG;IACxB,CAAC,CAAC;;IAEF;IACAM,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC;EAClD,CAAC,CAAC;EAEFL,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACtD;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;;IAEtB;IACAK,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,gBAAgB;MACtBC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFM,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAACT,IAAI,CAAC,CAACU,OAAO,CAAC,gBAAgB,CAAC;IACxDH,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAACR,WAAW,CAAC,CAACS,OAAO,CAAC,uBAAuB,CAAC;EAC1E,CAAC,CAAC;EAEFL,EAAE,CAAC,kEAAkE,EAAE,MAAM;IACzE;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;IAEtB,MAAMe,SAAS,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IAC3B,MAAMC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;IAEzBZ,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,EAAE;MAAE;MACVC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFE,SAAS,CAACc,MAAM,CAACJ,SAAS,EAAEG,OAAO,CAAC;IAEpCT,MAAM,CAACS,OAAO,CAAC,CAACE,eAAe,CAAC,CAAC,CAAC;IAClCX,MAAM,CAACY,MAAM,CAACC,IAAI,CAACjB,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACU,MAAM,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;;IAE9D;IACAnB,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,UAAU;MAChBC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFE,SAAS,CAACc,MAAM,CAACJ,SAAS,EAAEG,OAAO,CAAC;IAEpCT,MAAM,CAACM,SAAS,CAAC,CAACK,eAAe,CAAC,CAAC,CAAC;IACpCX,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC;EAClD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Operation","QuerySaverDialogPresenter","describe","demoFilter","field","value","condition","demoGroup","operation","AND","filters","filter","id","name","description","groups","presenter","beforeEach","it","load","expect","vm","data","toEqual","invalidFields","setFilter","onSuccess","jest","fn","onError","onSave","toBeCalledTimes","Object","keys","length","toBe"],"sources":["QuerySaverDialogPresenter.test.ts"],"sourcesContent":["import type {\n FilterDTO,\n FilterGroupDTO,\n FilterGroupFilterDTO\n} from \"~/components/AdvancedSearch/domain\";\nimport { Operation } from \"~/components/AdvancedSearch/domain\";\nimport { QuerySaverDialogPresenter } from \"./QuerySaverDialogPresenter\";\n\ndescribe(\"QuerySaverDialogPresenter\", () => {\n const demoFilter: FilterGroupFilterDTO = {\n field: \"any-field\",\n value: \"any-value\",\n condition: \"any-condition\"\n };\n const demoGroup: FilterGroupDTO = {\n operation: Operation.AND,\n filters: [demoFilter]\n };\n\n const filter: FilterDTO = {\n id: \"\",\n name: \"QueryObject name\",\n description: \"QueryObject description\",\n operation: Operation.AND,\n groups: [demoGroup]\n };\n\n let presenter: QuerySaverDialogPresenter;\n\n beforeEach(() => {\n presenter = new QuerySaverDialogPresenter();\n });\n\n it(\"should create QuerySaverDialogPresenter with `vm` definition\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // `vm` should have the expected `data` definition\n expect(presenter.vm.data).toEqual({\n name: filter.name,\n description: filter.description\n });\n\n // `vm` should have the expected `invalidFields` definition\n expect(presenter.vm.invalidFields).toEqual({});\n });\n\n it(\"should be able to set data back to the filter\", () => {\n // let's load a filter\n presenter.load(filter);\n\n // should be able to set the `queryObject` name and description\n presenter.setFilter({\n name: \"Any other name\",\n description: \"Any other description\"\n });\n\n expect(presenter.vm.data.name).toEqual(\"Any other name\");\n expect(presenter.vm.data.description).toEqual(\"Any other description\");\n });\n\n it(\"should perform validation and call provided callbacks `onSubmit`\", () => {\n // let's load a filter\n presenter.load(filter);\n\n const onSuccess = jest.fn();\n const onError = jest.fn();\n\n presenter.setFilter({\n name: \"\", // empty value -> this should trigger the error\n description: \"\"\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onError).toBeCalledTimes(1);\n expect(Object.keys(presenter.vm.invalidFields).length).toBe(1);\n\n // let's change back `name` value so the validation will pass\n presenter.setFilter({\n name: \"Any name\",\n description: \"\"\n });\n\n presenter.onSave(onSuccess, onError);\n\n expect(onSuccess).toBeCalledTimes(1);\n expect(presenter.vm.invalidFields).toEqual({});\n });\n});\n"],"mappings":"AAKA,SAASA,SAAS;AAClB,SAASC,yBAAyB;AAElCC,QAAQ,CAAC,2BAA2B,EAAE,MAAM;EACxC,MAAMC,UAAgC,GAAG;IACrCC,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAE,WAAW;IAClBC,SAAS,EAAE;EACf,CAAC;EACD,MAAMC,SAAyB,GAAG;IAC9BC,SAAS,EAAER,SAAS,CAACS,GAAG;IACxBC,OAAO,EAAE,CAACP,UAAU;EACxB,CAAC;EAED,MAAMQ,MAAiB,GAAG;IACtBC,EAAE,EAAE,EAAE;IACNC,IAAI,EAAE,kBAAkB;IACxBC,WAAW,EAAE,yBAAyB;IACtCN,SAAS,EAAER,SAAS,CAACS,GAAG;IACxBM,MAAM,EAAE,CAACR,SAAS;EACtB,CAAC;EAED,IAAIS,SAAoC;EAExCC,UAAU,CAAC,MAAM;IACbD,SAAS,GAAG,IAAIf,yBAAyB,CAAC,CAAC;EAC/C,CAAC,CAAC;EAEFiB,EAAE,CAAC,8DAA8D,EAAE,MAAM;IACrE;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;;IAEtB;IACAS,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAAC,CAACC,OAAO,CAAC;MAC9BV,IAAI,EAAEF,MAAM,CAACE,IAAI;MACjBC,WAAW,EAAEH,MAAM,CAACG;IACxB,CAAC,CAAC;;IAEF;IACAM,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC;EAClD,CAAC,CAAC;EAEFL,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACtD;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;;IAEtB;IACAK,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,gBAAgB;MACtBC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFM,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAACT,IAAI,CAAC,CAACU,OAAO,CAAC,gBAAgB,CAAC;IACxDH,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACC,IAAI,CAACR,WAAW,CAAC,CAACS,OAAO,CAAC,uBAAuB,CAAC;EAC1E,CAAC,CAAC;EAEFL,EAAE,CAAC,kEAAkE,EAAE,MAAM;IACzE;IACAF,SAAS,CAACG,IAAI,CAACR,MAAM,CAAC;IAEtB,MAAMe,SAAS,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IAC3B,MAAMC,OAAO,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;IAEzBZ,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,EAAE;MAAE;MACVC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFE,SAAS,CAACc,MAAM,CAACJ,SAAS,EAAEG,OAAO,CAAC;IAEpCT,MAAM,CAACS,OAAO,CAAC,CAACE,eAAe,CAAC,CAAC,CAAC;IAClCX,MAAM,CAACY,MAAM,CAACC,IAAI,CAACjB,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACU,MAAM,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;;IAE9D;IACAnB,SAAS,CAACS,SAAS,CAAC;MAChBZ,IAAI,EAAE,UAAU;MAChBC,WAAW,EAAE;IACjB,CAAC,CAAC;IAEFE,SAAS,CAACc,MAAM,CAACJ,SAAS,EAAEG,OAAO,CAAC;IAEpCT,MAAM,CAACM,SAAS,CAAC,CAACK,eAAe,CAAC,CAAC,CAAC;IACpCX,MAAM,CAACJ,SAAS,CAACK,EAAE,CAACG,aAAa,CAAC,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC;EAClD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { FilterDTO } from "../domain";
2
+ import type { FilterDTO } from "../domain";
3
3
  interface SelectedFilterProps {
4
4
  filter: FilterDTO;
5
5
  onEdit: () => void;
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","IconButton","buttonVariants","ReactComponent","Close","SelectedFilter","props","createElement","role","className","variant","onClick","onEdit","filter","name","icon","onDelete","size"],"sources":["SelectedFilter.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, IconButton, buttonVariants } from \"@webiny/admin-ui\";\nimport { ReactComponent as Close } from \"@webiny/icons/close.svg\";\nimport { FilterDTO } from \"~/components/AdvancedSearch/domain\";\n\ninterface SelectedFilterProps {\n filter: FilterDTO;\n onEdit: () => void;\n onDelete: () => void;\n}\n\nexport const SelectedFilter = (props: SelectedFilterProps) => {\n return (\n <div\n role={\"button\"}\n className={cn(buttonVariants({ variant: \"tertiary\" }), \"wby-gap-xs wby-cursor-pointer\")}\n onClick={props.onEdit}\n >\n <span className={\"wby-truncate wby-max-w-[256px]\"}>{props.filter.name}</span>\n <IconButton icon={<Close />} onClick={props.onDelete} size={\"xs\"} variant={\"ghost\"} />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,UAAU,EAAEC,cAAc,QAAQ,kBAAkB;AACjE,SAASC,cAAc,IAAIC,KAAK,QAAQ,yBAAyB;AASjE,OAAO,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EAC1D,oBACIP,KAAA,CAAAQ,aAAA;IACIC,IAAI,EAAE,QAAS;IACfC,SAAS,EAAET,EAAE,CAACE,cAAc,CAAC;MAAEQ,OAAO,EAAE;IAAW,CAAC,CAAC,EAAE,+BAA+B,CAAE;IACxFC,OAAO,EAAEL,KAAK,CAACM;EAAO,gBAEtBb,KAAA,CAAAQ,aAAA;IAAME,SAAS,EAAE;EAAiC,GAAEH,KAAK,CAACO,MAAM,CAACC,IAAW,CAAC,eAC7Ef,KAAA,CAAAQ,aAAA,CAACN,UAAU;IAACc,IAAI,eAAEhB,KAAA,CAAAQ,aAAA,CAACH,KAAK,MAAE,CAAE;IAACO,OAAO,EAAEL,KAAK,CAACU,QAAS;IAACC,IAAI,EAAE,IAAK;IAACP,OAAO,EAAE;EAAQ,CAAE,CACpF,CAAC;AAEd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","IconButton","buttonVariants","ReactComponent","Close","SelectedFilter","props","createElement","role","className","variant","onClick","onEdit","filter","name","icon","onDelete","size"],"sources":["SelectedFilter.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, IconButton, buttonVariants } from \"@webiny/admin-ui\";\nimport { ReactComponent as Close } from \"@webiny/icons/close.svg\";\nimport type { FilterDTO } from \"~/components/AdvancedSearch/domain\";\n\ninterface SelectedFilterProps {\n filter: FilterDTO;\n onEdit: () => void;\n onDelete: () => void;\n}\n\nexport const SelectedFilter = (props: SelectedFilterProps) => {\n return (\n <div\n role={\"button\"}\n className={cn(buttonVariants({ variant: \"tertiary\" }), \"wby-gap-xs wby-cursor-pointer\")}\n onClick={props.onEdit}\n >\n <span className={\"wby-truncate wby-max-w-[256px]\"}>{props.filter.name}</span>\n <IconButton icon={<Close />} onClick={props.onDelete} size={\"xs\"} variant={\"ghost\"} />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,UAAU,EAAEC,cAAc,QAAQ,kBAAkB;AACjE,SAASC,cAAc,IAAIC,KAAK,QAAQ,yBAAyB;AASjE,OAAO,MAAMC,cAAc,GAAIC,KAA0B,IAAK;EAC1D,oBACIP,KAAA,CAAAQ,aAAA;IACIC,IAAI,EAAE,QAAS;IACfC,SAAS,EAAET,EAAE,CAACE,cAAc,CAAC;MAAEQ,OAAO,EAAE;IAAW,CAAC,CAAC,EAAE,+BAA+B,CAAE;IACxFC,OAAO,EAAEL,KAAK,CAACM;EAAO,gBAEtBb,KAAA,CAAAQ,aAAA;IAAME,SAAS,EAAE;EAAiC,GAAEH,KAAK,CAACO,MAAM,CAACC,IAAW,CAAC,eAC7Ef,KAAA,CAAAQ,aAAA,CAACN,UAAU;IAACc,IAAI,eAAEhB,KAAA,CAAAQ,aAAA,CAACH,KAAK,MAAE,CAAE;IAACO,OAAO,EAAEL,KAAK,CAACU,QAAS;IAACC,IAAI,EAAE,IAAK;IAACP,OAAO,EAAE;EAAQ,CAAE,CACpF,CAAC;AAEd,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { CmsModelField } from "@webiny/app-headless-cms-common/types/model";
2
+ import type { CmsModelField } from "@webiny/app-headless-cms-common/types/model";
3
3
  export type FieldRaw = Pick<CmsModelField, "id" | "type" | "label" | "multipleValues" | "predefinedValues" | "settings">;
4
4
  export declare enum FieldType {
5
5
  TEXT = "text",
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","Field","createFromRaw","fieldRaw","label","value","Value","createFromField","type","Type","conditions","Condition","predefined","Predefined","settings","Settings","constructor","rawData","REF","id","createFrom","field","createConditions","map","condition","predefinedValues","enabled","rawPredefined","values","DATETIME_WITH_TIMEZONE","DATETIME_WITHOUT_TIMEZONE","PREDEFINED_VALUES","TIME","DATE","BOOLEAN","NUMBER","TEXT","modelIds","models","model","modelId"],"sources":["Field.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/app-headless-cms-common/types/model\";\n\nexport type FieldRaw = Pick<\n CmsModelField,\n \"id\" | \"type\" | \"label\" | \"multipleValues\" | \"predefinedValues\" | \"settings\"\n>;\n\nexport enum FieldType {\n TEXT = \"text\",\n NUMBER = \"number\",\n BOOLEAN = \"boolean\",\n DATE = \"date\",\n TIME = \"time\",\n DATETIME_WITH_TIMEZONE = \"dateTimeWithTimezone\",\n DATETIME_WITHOUT_TIMEZONE = \"dateTimeWithoutTimezone\",\n PREDEFINED_VALUES = \"predefinedValues\",\n REF = \"ref\"\n}\n\nexport interface ConditionDTO {\n label: string;\n value: string;\n}\n\nexport interface PredefinedDTO {\n label: string;\n value: string;\n}\n\nexport interface SettingsDTO {\n modelIds: string[];\n}\n\nexport interface FieldDTO {\n label: string;\n value: string;\n conditions: ConditionDTO[];\n type: FieldType;\n predefined: PredefinedDTO[];\n settings: SettingsDTO;\n}\n\nexport interface FieldDTOWithElement extends FieldDTO {\n element: React.ReactElement | null;\n}\n\nexport class Field {\n public readonly label: string;\n public readonly value: Value;\n public readonly type: Type;\n public readonly conditions: Condition[];\n public readonly predefined: Predefined[];\n public readonly settings: Settings;\n\n static createFromRaw(fieldRaw: FieldRaw) {\n const label = fieldRaw.label;\n const value = Value.createFromField(fieldRaw);\n const type = Type.createFromField(fieldRaw);\n const conditions = Condition.createFromField(fieldRaw);\n const predefined = Predefined.createFromField(fieldRaw);\n const settings = Settings.createFromField(fieldRaw);\n\n return new Field(label, value, type, conditions, predefined, settings);\n }\n\n private constructor(\n label: string,\n value: Value,\n type: Type,\n conditions: Condition[],\n predefined: Predefined[],\n settings: Settings\n ) {\n this.label = label;\n this.value = value;\n this.type = type;\n this.predefined = predefined;\n this.conditions = conditions;\n this.settings = settings;\n }\n}\n\nexport class Value {\n public readonly value: string;\n\n static createFromField(rawData: FieldRaw) {\n if (rawData.type === FieldType.REF) {\n return new Value(`${rawData.id}.entryId`);\n }\n\n return new Value(rawData.id);\n }\n\n private constructor(value: string) {\n this.value = value;\n }\n}\n\nexport class Condition {\n public readonly label: string;\n public readonly value: string;\n\n static createFrom(rawData: ConditionDTO) {\n return new Condition(rawData.label, rawData.value);\n }\n\n static createFromField(field: FieldRaw) {\n const createConditions = (conditions: { label: string; value: string }[]) => {\n return conditions.map(condition => this.createFrom(condition));\n };\n\n switch (field.type) {\n case \"text\":\n if (field.predefinedValues?.enabled) {\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" }\n ]);\n }\n\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"contains\", value: \"_contains\" },\n { label: \"starts with\", value: \"_startsWith\" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"doesn't contain\", value: \"_not_contains\" },\n { label: \"doesn't start with\", value: \"_not_startsWith\" }\n ]);\n\n case \"long-text\":\n return createConditions([\n { label: \"contains\", value: \"_contains\" },\n { label: \"doesn't contain\", value: \"_not_contains\" }\n ]);\n\n case \"boolean\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" }\n ]);\n\n case \"number\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"is less than\", value: \"_lt\" },\n { label: \"is less or equal to\", value: \"_lte\" },\n { label: \"is greater than\", value: \"_gt\" },\n { label: \"is greater or equal to\", value: \"_gte\" }\n ]);\n\n case \"datetime\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"is before\", value: \"_lt\" },\n { label: \"is before or equal to\", value: \"_lte\" },\n { label: \"is after\", value: \"_gt\" },\n { label: \"is after or equal to\", value: \"_gte\" }\n ]);\n\n case \"ref\":\n return createConditions([\n { label: \"contains\", value: \" \" },\n { label: \"doesn't contain\", value: \"_not\" }\n ]);\n\n default:\n return [];\n }\n }\n\n private constructor(label: string, value: string) {\n this.label = label;\n this.value = value;\n }\n}\n\nexport class Predefined {\n public readonly label: string;\n public readonly value: string;\n\n static createFrom(rawData: PredefinedDTO) {\n return new Predefined(rawData.label, rawData.value);\n }\n\n static createFromField(field: FieldRaw) {\n const rawPredefined = field.predefinedValues?.values || [];\n return rawPredefined.map(predefined => this.createFrom(predefined));\n }\n\n private constructor(label: string, value: string) {\n this.label = label;\n this.value = value;\n }\n}\n\nexport class Type {\n public readonly value: FieldType;\n\n static createFromField(rawData: FieldRaw) {\n if (rawData.settings?.type === FieldType.DATETIME_WITH_TIMEZONE) {\n return new Type(FieldType.DATETIME_WITH_TIMEZONE);\n }\n\n if (rawData.settings?.type === FieldType.DATETIME_WITHOUT_TIMEZONE) {\n return new Type(FieldType.DATETIME_WITHOUT_TIMEZONE);\n }\n\n if (rawData.predefinedValues?.enabled) {\n return new Type(FieldType.PREDEFINED_VALUES);\n }\n\n if (rawData.type === \"datetime\") {\n const value =\n rawData.settings?.type === FieldType.TIME ? FieldType.TIME : FieldType.DATE;\n return new Type(value);\n }\n\n if (rawData.type === FieldType.BOOLEAN) {\n return new Type(FieldType.BOOLEAN);\n }\n\n if (rawData.type === FieldType.NUMBER) {\n return new Type(FieldType.NUMBER);\n }\n\n if (rawData.type === FieldType.REF) {\n return new Type(FieldType.REF);\n }\n\n return new Type(FieldType.TEXT);\n }\n\n private constructor(value: FieldType) {\n this.value = value;\n }\n}\n\nexport class Settings {\n public readonly modelIds: string[];\n\n static createFromField(rawData: FieldRaw) {\n const modelIds = rawData.settings?.models?.map(model => model.modelId) || [];\n return new Settings(modelIds);\n }\n\n private constructor(modelIds: string[]) {\n this.modelIds = modelIds;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","Field","createFromRaw","fieldRaw","label","value","Value","createFromField","type","Type","conditions","Condition","predefined","Predefined","settings","Settings","constructor","rawData","REF","id","createFrom","field","createConditions","map","condition","predefinedValues","enabled","rawPredefined","values","DATETIME_WITH_TIMEZONE","DATETIME_WITHOUT_TIMEZONE","PREDEFINED_VALUES","TIME","DATE","BOOLEAN","NUMBER","TEXT","modelIds","models","model","modelId"],"sources":["Field.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/app-headless-cms-common/types/model\";\n\nexport type FieldRaw = Pick<\n CmsModelField,\n \"id\" | \"type\" | \"label\" | \"multipleValues\" | \"predefinedValues\" | \"settings\"\n>;\n\nexport enum FieldType {\n TEXT = \"text\",\n NUMBER = \"number\",\n BOOLEAN = \"boolean\",\n DATE = \"date\",\n TIME = \"time\",\n DATETIME_WITH_TIMEZONE = \"dateTimeWithTimezone\",\n DATETIME_WITHOUT_TIMEZONE = \"dateTimeWithoutTimezone\",\n PREDEFINED_VALUES = \"predefinedValues\",\n REF = \"ref\"\n}\n\nexport interface ConditionDTO {\n label: string;\n value: string;\n}\n\nexport interface PredefinedDTO {\n label: string;\n value: string;\n}\n\nexport interface SettingsDTO {\n modelIds: string[];\n}\n\nexport interface FieldDTO {\n label: string;\n value: string;\n conditions: ConditionDTO[];\n type: FieldType;\n predefined: PredefinedDTO[];\n settings: SettingsDTO;\n}\n\nexport interface FieldDTOWithElement extends FieldDTO {\n element: React.ReactElement | null;\n}\n\nexport class Field {\n public readonly label: string;\n public readonly value: Value;\n public readonly type: Type;\n public readonly conditions: Condition[];\n public readonly predefined: Predefined[];\n public readonly settings: Settings;\n\n static createFromRaw(fieldRaw: FieldRaw) {\n const label = fieldRaw.label;\n const value = Value.createFromField(fieldRaw);\n const type = Type.createFromField(fieldRaw);\n const conditions = Condition.createFromField(fieldRaw);\n const predefined = Predefined.createFromField(fieldRaw);\n const settings = Settings.createFromField(fieldRaw);\n\n return new Field(label, value, type, conditions, predefined, settings);\n }\n\n private constructor(\n label: string,\n value: Value,\n type: Type,\n conditions: Condition[],\n predefined: Predefined[],\n settings: Settings\n ) {\n this.label = label;\n this.value = value;\n this.type = type;\n this.predefined = predefined;\n this.conditions = conditions;\n this.settings = settings;\n }\n}\n\nexport class Value {\n public readonly value: string;\n\n static createFromField(rawData: FieldRaw) {\n if (rawData.type === FieldType.REF) {\n return new Value(`${rawData.id}.entryId`);\n }\n\n return new Value(rawData.id);\n }\n\n private constructor(value: string) {\n this.value = value;\n }\n}\n\nexport class Condition {\n public readonly label: string;\n public readonly value: string;\n\n static createFrom(rawData: ConditionDTO) {\n return new Condition(rawData.label, rawData.value);\n }\n\n static createFromField(field: FieldRaw) {\n const createConditions = (conditions: { label: string; value: string }[]) => {\n return conditions.map(condition => this.createFrom(condition));\n };\n\n switch (field.type) {\n case \"text\":\n if (field.predefinedValues?.enabled) {\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" }\n ]);\n }\n\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"contains\", value: \"_contains\" },\n { label: \"starts with\", value: \"_startsWith\" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"doesn't contain\", value: \"_not_contains\" },\n { label: \"doesn't start with\", value: \"_not_startsWith\" }\n ]);\n\n case \"long-text\":\n return createConditions([\n { label: \"contains\", value: \"_contains\" },\n { label: \"doesn't contain\", value: \"_not_contains\" }\n ]);\n\n case \"boolean\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" }\n ]);\n\n case \"number\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"is less than\", value: \"_lt\" },\n { label: \"is less or equal to\", value: \"_lte\" },\n { label: \"is greater than\", value: \"_gt\" },\n { label: \"is greater or equal to\", value: \"_gte\" }\n ]);\n\n case \"datetime\":\n return createConditions([\n { label: \"is equal to\", value: \" \" },\n { label: \"is not equal to\", value: \"_not\" },\n { label: \"is before\", value: \"_lt\" },\n { label: \"is before or equal to\", value: \"_lte\" },\n { label: \"is after\", value: \"_gt\" },\n { label: \"is after or equal to\", value: \"_gte\" }\n ]);\n\n case \"ref\":\n return createConditions([\n { label: \"contains\", value: \" \" },\n { label: \"doesn't contain\", value: \"_not\" }\n ]);\n\n default:\n return [];\n }\n }\n\n private constructor(label: string, value: string) {\n this.label = label;\n this.value = value;\n }\n}\n\nexport class Predefined {\n public readonly label: string;\n public readonly value: string;\n\n static createFrom(rawData: PredefinedDTO) {\n return new Predefined(rawData.label, rawData.value);\n }\n\n static createFromField(field: FieldRaw) {\n const rawPredefined = field.predefinedValues?.values || [];\n return rawPredefined.map(predefined => this.createFrom(predefined));\n }\n\n private constructor(label: string, value: string) {\n this.label = label;\n this.value = value;\n }\n}\n\nexport class Type {\n public readonly value: FieldType;\n\n static createFromField(rawData: FieldRaw) {\n if (rawData.settings?.type === FieldType.DATETIME_WITH_TIMEZONE) {\n return new Type(FieldType.DATETIME_WITH_TIMEZONE);\n }\n\n if (rawData.settings?.type === FieldType.DATETIME_WITHOUT_TIMEZONE) {\n return new Type(FieldType.DATETIME_WITHOUT_TIMEZONE);\n }\n\n if (rawData.predefinedValues?.enabled) {\n return new Type(FieldType.PREDEFINED_VALUES);\n }\n\n if (rawData.type === \"datetime\") {\n const value =\n rawData.settings?.type === FieldType.TIME ? FieldType.TIME : FieldType.DATE;\n return new Type(value);\n }\n\n if (rawData.type === FieldType.BOOLEAN) {\n return new Type(FieldType.BOOLEAN);\n }\n\n if (rawData.type === FieldType.NUMBER) {\n return new Type(FieldType.NUMBER);\n }\n\n if (rawData.type === FieldType.REF) {\n return new Type(FieldType.REF);\n }\n\n return new Type(FieldType.TEXT);\n }\n\n private constructor(value: FieldType) {\n this.value = value;\n }\n}\n\nexport class Settings {\n public readonly modelIds: string[];\n\n static createFromField(rawData: FieldRaw) {\n const modelIds = rawData.settings?.models?.map(model => model.modelId) || [];\n return new Settings(modelIds);\n }\n\n private constructor(modelIds: string[]) {\n this.modelIds = modelIds;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Condition, ConditionDTO, Field, FieldDTO, Predefined, PredefinedDTO, Type, FieldType, Value, Settings, SettingsDTO } from "./Field";
1
+ import type { Condition, ConditionDTO, Field, FieldDTO, Predefined, PredefinedDTO, Type, FieldType, Value, Settings, SettingsDTO } from "./Field";
2
2
  export declare class FieldMapper {
3
3
  static toDTO(configuration: Field[]): FieldDTO[];
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":["FieldMapper","toDTO","configuration","map","field","label","value","ValueMapper","conditions","ConditionMapper","predefined","PredefinedMapper","type","TypeMapper","settings","SettingsMapper","condition","predefineds","modelIds"],"sources":["FieldMapper.ts"],"sourcesContent":["import {\n Condition,\n ConditionDTO,\n Field,\n FieldDTO,\n Predefined,\n PredefinedDTO,\n Type,\n FieldType,\n Value,\n Settings,\n SettingsDTO\n} from \"./Field\";\n\nexport class FieldMapper {\n static toDTO(configuration: Field[]): FieldDTO[] {\n return configuration.map(field => {\n return {\n label: field.label,\n value: ValueMapper.toDTO(field.value),\n conditions: ConditionMapper.toDTO(field.conditions),\n predefined: PredefinedMapper.toDTO(field.predefined),\n type: TypeMapper.toDTO(field.type),\n settings: SettingsMapper.toDTO(field.settings)\n };\n });\n }\n}\n\nexport class ValueMapper {\n static toDTO(value: Value): string {\n return value.value;\n }\n}\n\nexport class ConditionMapper {\n static toDTO(conditions: Condition[]): ConditionDTO[] {\n return conditions.map(condition => ({\n value: condition.value || \"\",\n label: condition.label || \"\"\n }));\n }\n}\n\nexport class PredefinedMapper {\n static toDTO(predefineds: Predefined[]): PredefinedDTO[] {\n return predefineds.map(predefined => ({\n value: predefined.value || \"\",\n label: predefined.label || \"\"\n }));\n }\n}\n\nexport class TypeMapper {\n static toDTO(type: Type): FieldType {\n return type.value;\n }\n}\n\nexport class SettingsMapper {\n static toDTO(settings: Settings): SettingsDTO {\n return {\n modelIds: settings.modelIds\n };\n }\n}\n"],"mappings":"AAcA,OAAO,MAAMA,WAAW,CAAC;EACrB,OAAOC,KAAKA,CAACC,aAAsB,EAAc;IAC7C,OAAOA,aAAa,CAACC,GAAG,CAACC,KAAK,IAAI;MAC9B,OAAO;QACHC,KAAK,EAAED,KAAK,CAACC,KAAK;QAClBC,KAAK,EAAEC,WAAW,CAACN,KAAK,CAACG,KAAK,CAACE,KAAK,CAAC;QACrCE,UAAU,EAAEC,eAAe,CAACR,KAAK,CAACG,KAAK,CAACI,UAAU,CAAC;QACnDE,UAAU,EAAEC,gBAAgB,CAACV,KAAK,CAACG,KAAK,CAACM,UAAU,CAAC;QACpDE,IAAI,EAAEC,UAAU,CAACZ,KAAK,CAACG,KAAK,CAACQ,IAAI,CAAC;QAClCE,QAAQ,EAAEC,cAAc,CAACd,KAAK,CAACG,KAAK,CAACU,QAAQ;MACjD,CAAC;IACL,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMP,WAAW,CAAC;EACrB,OAAON,KAAKA,CAACK,KAAY,EAAU;IAC/B,OAAOA,KAAK,CAACA,KAAK;EACtB;AACJ;AAEA,OAAO,MAAMG,eAAe,CAAC;EACzB,OAAOR,KAAKA,CAACO,UAAuB,EAAkB;IAClD,OAAOA,UAAU,CAACL,GAAG,CAACa,SAAS,KAAK;MAChCV,KAAK,EAAEU,SAAS,CAACV,KAAK,IAAI,EAAE;MAC5BD,KAAK,EAAEW,SAAS,CAACX,KAAK,IAAI;IAC9B,CAAC,CAAC,CAAC;EACP;AACJ;AAEA,OAAO,MAAMM,gBAAgB,CAAC;EAC1B,OAAOV,KAAKA,CAACgB,WAAyB,EAAmB;IACrD,OAAOA,WAAW,CAACd,GAAG,CAACO,UAAU,KAAK;MAClCJ,KAAK,EAAEI,UAAU,CAACJ,KAAK,IAAI,EAAE;MAC7BD,KAAK,EAAEK,UAAU,CAACL,KAAK,IAAI;IAC/B,CAAC,CAAC,CAAC;EACP;AACJ;AAEA,OAAO,MAAMQ,UAAU,CAAC;EACpB,OAAOZ,KAAKA,CAACW,IAAU,EAAa;IAChC,OAAOA,IAAI,CAACN,KAAK;EACrB;AACJ;AAEA,OAAO,MAAMS,cAAc,CAAC;EACxB,OAAOd,KAAKA,CAACa,QAAkB,EAAe;IAC1C,OAAO;MACHI,QAAQ,EAAEJ,QAAQ,CAACI;IACvB,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["FieldMapper","toDTO","configuration","map","field","label","value","ValueMapper","conditions","ConditionMapper","predefined","PredefinedMapper","type","TypeMapper","settings","SettingsMapper","condition","predefineds","modelIds"],"sources":["FieldMapper.ts"],"sourcesContent":["import type {\n Condition,\n ConditionDTO,\n Field,\n FieldDTO,\n Predefined,\n PredefinedDTO,\n Type,\n FieldType,\n Value,\n Settings,\n SettingsDTO\n} from \"./Field\";\n\nexport class FieldMapper {\n static toDTO(configuration: Field[]): FieldDTO[] {\n return configuration.map(field => {\n return {\n label: field.label,\n value: ValueMapper.toDTO(field.value),\n conditions: ConditionMapper.toDTO(field.conditions),\n predefined: PredefinedMapper.toDTO(field.predefined),\n type: TypeMapper.toDTO(field.type),\n settings: SettingsMapper.toDTO(field.settings)\n };\n });\n }\n}\n\nexport class ValueMapper {\n static toDTO(value: Value): string {\n return value.value;\n }\n}\n\nexport class ConditionMapper {\n static toDTO(conditions: Condition[]): ConditionDTO[] {\n return conditions.map(condition => ({\n value: condition.value || \"\",\n label: condition.label || \"\"\n }));\n }\n}\n\nexport class PredefinedMapper {\n static toDTO(predefineds: Predefined[]): PredefinedDTO[] {\n return predefineds.map(predefined => ({\n value: predefined.value || \"\",\n label: predefined.label || \"\"\n }));\n }\n}\n\nexport class TypeMapper {\n static toDTO(type: Type): FieldType {\n return type.value;\n }\n}\n\nexport class SettingsMapper {\n static toDTO(settings: Settings): SettingsDTO {\n return {\n modelIds: settings.modelIds\n };\n }\n}\n"],"mappings":"AAcA,OAAO,MAAMA,WAAW,CAAC;EACrB,OAAOC,KAAKA,CAACC,aAAsB,EAAc;IAC7C,OAAOA,aAAa,CAACC,GAAG,CAACC,KAAK,IAAI;MAC9B,OAAO;QACHC,KAAK,EAAED,KAAK,CAACC,KAAK;QAClBC,KAAK,EAAEC,WAAW,CAACN,KAAK,CAACG,KAAK,CAACE,KAAK,CAAC;QACrCE,UAAU,EAAEC,eAAe,CAACR,KAAK,CAACG,KAAK,CAACI,UAAU,CAAC;QACnDE,UAAU,EAAEC,gBAAgB,CAACV,KAAK,CAACG,KAAK,CAACM,UAAU,CAAC;QACpDE,IAAI,EAAEC,UAAU,CAACZ,KAAK,CAACG,KAAK,CAACQ,IAAI,CAAC;QAClCE,QAAQ,EAAEC,cAAc,CAACd,KAAK,CAACG,KAAK,CAACU,QAAQ;MACjD,CAAC;IACL,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMP,WAAW,CAAC;EACrB,OAAON,KAAKA,CAACK,KAAY,EAAU;IAC/B,OAAOA,KAAK,CAACA,KAAK;EACtB;AACJ;AAEA,OAAO,MAAMG,eAAe,CAAC;EACzB,OAAOR,KAAKA,CAACO,UAAuB,EAAkB;IAClD,OAAOA,UAAU,CAACL,GAAG,CAACa,SAAS,KAAK;MAChCV,KAAK,EAAEU,SAAS,CAACV,KAAK,IAAI,EAAE;MAC5BD,KAAK,EAAEW,SAAS,CAACX,KAAK,IAAI;IAC9B,CAAC,CAAC,CAAC;EACP;AACJ;AAEA,OAAO,MAAMM,gBAAgB,CAAC;EAC1B,OAAOV,KAAKA,CAACgB,WAAyB,EAAmB;IACrD,OAAOA,WAAW,CAACd,GAAG,CAACO,UAAU,KAAK;MAClCJ,KAAK,EAAEI,UAAU,CAACJ,KAAK,IAAI,EAAE;MAC7BD,KAAK,EAAEK,UAAU,CAACL,KAAK,IAAI;IAC/B,CAAC,CAAC,CAAC;EACP;AACJ;AAEA,OAAO,MAAMQ,UAAU,CAAC;EACpB,OAAOZ,KAAKA,CAACW,IAAU,EAAa;IAChC,OAAOA,IAAI,CAACN,KAAK;EACrB;AACJ;AAEA,OAAO,MAAMS,cAAc,CAAC;EACxB,OAAOd,KAAKA,CAACa,QAAkB,EAAe;IAC1C,OAAO;MACHI,QAAQ,EAAEJ,QAAQ,CAACI;IACvB,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Filter, FilterDTO, FilterStorage } from "../domain";
1
+ import type { Filter, FilterDTO, FilterStorage } from "../domain";
2
2
  export declare class FilterMapper {
3
3
  static toDTO(configuration: Filter | FilterDTO): FilterDTO;
4
4
  static toStorage(configuration: Filter | FilterDTO): FilterStorage;
@@ -1 +1 @@
1
- {"version":3,"names":["FilterMapper","toDTO","configuration","id","name","description","operation","createdOn","groups","map","group","filters","filter","field","value","toString","condition","toStorage"],"sources":["FilterMapper.ts"],"sourcesContent":["import { Filter, FilterDTO, FilterStorage } from \"../domain\";\n\nexport class FilterMapper {\n static toDTO(configuration: Filter | FilterDTO): FilterDTO {\n return {\n id: configuration.id,\n name: configuration.name,\n description: configuration.description || \"\",\n operation: configuration.operation,\n createdOn: configuration.createdOn || \"\",\n groups: configuration.groups.map(group => ({\n operation: group.operation,\n filters: group.filters.map(filter => ({\n field: filter.field || \"\",\n value: (filter.value ?? \"\").toString(),\n condition: filter.condition || \"\"\n }))\n }))\n };\n }\n\n static toStorage(configuration: Filter | FilterDTO): FilterStorage {\n return {\n id: configuration.id,\n name: configuration.name,\n description: configuration.description,\n operation: configuration.operation,\n groups: configuration.groups.map(group => ({\n operation: group.operation,\n filters: group.filters.map(filter => ({\n field: filter.field || \"\",\n value: (filter.value ?? \"\").toString(),\n condition: filter.condition || \"\"\n }))\n }))\n };\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,YAAY,CAAC;EACtB,OAAOC,KAAKA,CAACC,aAAiC,EAAa;IACvD,OAAO;MACHC,EAAE,EAAED,aAAa,CAACC,EAAE;MACpBC,IAAI,EAAEF,aAAa,CAACE,IAAI;MACxBC,WAAW,EAAEH,aAAa,CAACG,WAAW,IAAI,EAAE;MAC5CC,SAAS,EAAEJ,aAAa,CAACI,SAAS;MAClCC,SAAS,EAAEL,aAAa,CAACK,SAAS,IAAI,EAAE;MACxCC,MAAM,EAAEN,aAAa,CAACM,MAAM,CAACC,GAAG,CAACC,KAAK,KAAK;QACvCJ,SAAS,EAAEI,KAAK,CAACJ,SAAS;QAC1BK,OAAO,EAAED,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,MAAM,KAAK;UAClCC,KAAK,EAAED,MAAM,CAACC,KAAK,IAAI,EAAE;UACzBC,KAAK,EAAE,CAACF,MAAM,CAACE,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC;UACtCC,SAAS,EAAEJ,MAAM,CAACI,SAAS,IAAI;QACnC,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC;EACL;EAEA,OAAOC,SAASA,CAACf,aAAiC,EAAiB;IAC/D,OAAO;MACHC,EAAE,EAAED,aAAa,CAACC,EAAE;MACpBC,IAAI,EAAEF,aAAa,CAACE,IAAI;MACxBC,WAAW,EAAEH,aAAa,CAACG,WAAW;MACtCC,SAAS,EAAEJ,aAAa,CAACI,SAAS;MAClCE,MAAM,EAAEN,aAAa,CAACM,MAAM,CAACC,GAAG,CAACC,KAAK,KAAK;QACvCJ,SAAS,EAAEI,KAAK,CAACJ,SAAS;QAC1BK,OAAO,EAAED,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,MAAM,KAAK;UAClCC,KAAK,EAAED,MAAM,CAACC,KAAK,IAAI,EAAE;UACzBC,KAAK,EAAE,CAACF,MAAM,CAACE,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC;UACtCC,SAAS,EAAEJ,MAAM,CAACI,SAAS,IAAI;QACnC,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["FilterMapper","toDTO","configuration","id","name","description","operation","createdOn","groups","map","group","filters","filter","field","value","toString","condition","toStorage"],"sources":["FilterMapper.ts"],"sourcesContent":["import type { Filter, FilterDTO, FilterStorage } from \"../domain\";\n\nexport class FilterMapper {\n static toDTO(configuration: Filter | FilterDTO): FilterDTO {\n return {\n id: configuration.id,\n name: configuration.name,\n description: configuration.description || \"\",\n operation: configuration.operation,\n createdOn: configuration.createdOn || \"\",\n groups: configuration.groups.map(group => ({\n operation: group.operation,\n filters: group.filters.map(filter => ({\n field: filter.field || \"\",\n value: (filter.value ?? \"\").toString(),\n condition: filter.condition || \"\"\n }))\n }))\n };\n }\n\n static toStorage(configuration: Filter | FilterDTO): FilterStorage {\n return {\n id: configuration.id,\n name: configuration.name,\n description: configuration.description,\n operation: configuration.operation,\n groups: configuration.groups.map(group => ({\n operation: group.operation,\n filters: group.filters.map(filter => ({\n field: filter.field || \"\",\n value: (filter.value ?? \"\").toString(),\n condition: filter.condition || \"\"\n }))\n }))\n };\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,YAAY,CAAC;EACtB,OAAOC,KAAKA,CAACC,aAAiC,EAAa;IACvD,OAAO;MACHC,EAAE,EAAED,aAAa,CAACC,EAAE;MACpBC,IAAI,EAAEF,aAAa,CAACE,IAAI;MACxBC,WAAW,EAAEH,aAAa,CAACG,WAAW,IAAI,EAAE;MAC5CC,SAAS,EAAEJ,aAAa,CAACI,SAAS;MAClCC,SAAS,EAAEL,aAAa,CAACK,SAAS,IAAI,EAAE;MACxCC,MAAM,EAAEN,aAAa,CAACM,MAAM,CAACC,GAAG,CAACC,KAAK,KAAK;QACvCJ,SAAS,EAAEI,KAAK,CAACJ,SAAS;QAC1BK,OAAO,EAAED,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,MAAM,KAAK;UAClCC,KAAK,EAAED,MAAM,CAACC,KAAK,IAAI,EAAE;UACzBC,KAAK,EAAE,CAACF,MAAM,CAACE,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC;UACtCC,SAAS,EAAEJ,MAAM,CAACI,SAAS,IAAI;QACnC,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC;EACL;EAEA,OAAOC,SAASA,CAACf,aAAiC,EAAiB;IAC/D,OAAO;MACHC,EAAE,EAAED,aAAa,CAACC,EAAE;MACpBC,IAAI,EAAEF,aAAa,CAACE,IAAI;MACxBC,WAAW,EAAEH,aAAa,CAACG,WAAW;MACtCC,SAAS,EAAEJ,aAAa,CAACI,SAAS;MAClCE,MAAM,EAAEN,aAAa,CAACM,MAAM,CAACC,GAAG,CAACC,KAAK,KAAK;QACvCJ,SAAS,EAAEI,KAAK,CAACJ,SAAS;QAC1BK,OAAO,EAAED,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,MAAM,KAAK;UAClCC,KAAK,EAAED,MAAM,CAACC,KAAK,IAAI,EAAE;UACzBC,KAAK,EAAE,CAACF,MAAM,CAACE,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC;UACtCC,SAAS,EAAEJ,MAAM,CAACI,SAAS,IAAI;QACnC,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { FilterDTO } from "../domain";
2
- import { FiltersGatewayInterface } from "../gateways";
1
+ import type { FilterDTO } from "../domain";
2
+ import type { FiltersGatewayInterface } from "../gateways";
3
3
  export declare class FilterRepository {
4
4
  private gateway;
5
5
  private sorter;