@webiny/app-aco 6.3.0 → 6.4.0-beta.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.
- package/app.js +3 -4
- package/app.js.map +1 -1
- package/components/Actions/DeleteFolder/DeleteFolder.js +21 -26
- package/components/Actions/DeleteFolder/DeleteFolder.js.map +1 -1
- package/components/Actions/DeleteFolder/index.js +0 -2
- package/components/Actions/EditFolder/EditFolder.js +20 -25
- package/components/Actions/EditFolder/EditFolder.js.map +1 -1
- package/components/Actions/EditFolder/index.js +0 -2
- package/components/Actions/SetFolderPemissions/SetFolderPermissions.js +20 -25
- package/components/Actions/SetFolderPemissions/SetFolderPermissions.js.map +1 -1
- package/components/Actions/SetFolderPemissions/index.js +0 -2
- package/components/Actions/index.js +0 -2
- package/components/AdvancedSearch/AdvancedSearch.js +67 -75
- package/components/AdvancedSearch/AdvancedSearch.js.map +1 -1
- package/components/AdvancedSearch/AdvancedSearchConfigs.js +37 -40
- package/components/AdvancedSearch/AdvancedSearchConfigs.js.map +1 -1
- package/components/AdvancedSearch/AdvancedSearchPresenter.js +178 -199
- package/components/AdvancedSearch/AdvancedSearchPresenter.js.map +1 -1
- package/components/AdvancedSearch/AdvancedSearchPresenter.test.js +653 -720
- package/components/AdvancedSearch/AdvancedSearchPresenter.test.js.map +1 -1
- package/components/AdvancedSearch/Button/Button.js +13 -16
- package/components/AdvancedSearch/Button/Button.js.map +1 -1
- package/components/AdvancedSearch/Button/index.js +0 -2
- package/components/AdvancedSearch/GraphQLInputMapper.js +29 -40
- package/components/AdvancedSearch/GraphQLInputMapper.js.map +1 -1
- package/components/AdvancedSearch/GraphQLInputMapper.test.js +179 -139
- package/components/AdvancedSearch/GraphQLInputMapper.test.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js +57 -58
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/QueryBuilder.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js +25 -26
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Details.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js +51 -71
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/Filter.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js +9 -13
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/FilterOperationLabel.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js +14 -14
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/GroupOperationLabel.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js +11 -20
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/InputField.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js +15 -25
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/OperationSelector.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js +14 -17
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddFilter.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js +11 -14
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/AddGroup.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js +14 -18
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/RemoveFilter.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js +0 -2
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js +0 -2
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js +0 -2
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js +65 -67
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js +110 -139
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js +345 -328
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.test.js.map +1 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/index.js +0 -2
- package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js +23 -27
- package/components/AdvancedSearch/QueryManagerDialog/QueryManagerDialog.js.map +1 -1
- package/components/AdvancedSearch/QueryManagerDialog/components/Description.js +8 -10
- package/components/AdvancedSearch/QueryManagerDialog/components/Description.js.map +1 -1
- package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js +16 -17
- package/components/AdvancedSearch/QueryManagerDialog/components/Empty.js.map +1 -1
- package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js +41 -42
- package/components/AdvancedSearch/QueryManagerDialog/components/FilterList.js.map +1 -1
- package/components/AdvancedSearch/QueryManagerDialog/components/index.js +0 -2
- package/components/AdvancedSearch/QueryManagerDialog/index.js +0 -2
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js +52 -59
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialog.js.map +1 -1
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js +39 -52
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.js.map +1 -1
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js +58 -66
- package/components/AdvancedSearch/QuerySaverDialog/QuerySaverDialogPresenter.test.js.map +1 -1
- package/components/AdvancedSearch/QuerySaverDialog/index.js +0 -2
- package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js +18 -19
- package/components/AdvancedSearch/SelectedFilter/SelectedFilter.js.map +1 -1
- package/components/AdvancedSearch/SelectedFilter/index.js +0 -2
- package/components/AdvancedSearch/domain/Feedback.js +12 -11
- package/components/AdvancedSearch/domain/Feedback.js.map +1 -1
- package/components/AdvancedSearch/domain/Field.js +206 -190
- package/components/AdvancedSearch/domain/Field.js.map +1 -1
- package/components/AdvancedSearch/domain/FieldMapper.js +40 -41
- package/components/AdvancedSearch/domain/FieldMapper.js.map +1 -1
- package/components/AdvancedSearch/domain/Filter.js +64 -47
- package/components/AdvancedSearch/domain/Filter.js.map +1 -1
- package/components/AdvancedSearch/domain/FilterMapper.js +35 -34
- package/components/AdvancedSearch/domain/FilterMapper.js.map +1 -1
- package/components/AdvancedSearch/domain/FilterRepository.js +84 -85
- package/components/AdvancedSearch/domain/FilterRepository.js.map +1 -1
- package/components/AdvancedSearch/domain/FilterRepositoryFactory.js +8 -9
- package/components/AdvancedSearch/domain/FilterRepositoryFactory.js.map +1 -1
- package/components/AdvancedSearch/domain/Loading.js +47 -46
- package/components/AdvancedSearch/domain/Loading.js.map +1 -1
- package/components/AdvancedSearch/domain/Operation.js +5 -4
- package/components/AdvancedSearch/domain/Operation.js.map +1 -1
- package/components/AdvancedSearch/domain/Sorter.js +17 -16
- package/components/AdvancedSearch/domain/Sorter.js.map +1 -1
- package/components/AdvancedSearch/domain/index.js +0 -2
- package/components/AdvancedSearch/fields/Boolean.js +23 -25
- package/components/AdvancedSearch/fields/Boolean.js.map +1 -1
- package/components/AdvancedSearch/fields/DateWithTimezone.js +47 -52
- package/components/AdvancedSearch/fields/DateWithTimezone.js.map +1 -1
- package/components/AdvancedSearch/fields/DateWithoutTimezone.js +26 -30
- package/components/AdvancedSearch/fields/DateWithoutTimezone.js.map +1 -1
- package/components/AdvancedSearch/fields/Input.js +12 -14
- package/components/AdvancedSearch/fields/Input.js.map +1 -1
- package/components/AdvancedSearch/fields/PredefinedValues.js +17 -23
- package/components/AdvancedSearch/fields/PredefinedValues.js.map +1 -1
- package/components/AdvancedSearch/fields/index.js +0 -2
- package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js +0 -3
- package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js +69 -121
- package/components/AdvancedSearch/gateways/FiltersGraphQLGateway.js.map +1 -1
- package/components/AdvancedSearch/gateways/filters.gql.js +9 -8
- package/components/AdvancedSearch/gateways/filters.gql.js.map +1 -1
- package/components/AdvancedSearch/gateways/filters.types.js +0 -3
- package/components/AdvancedSearch/gateways/index.js +0 -2
- package/components/AdvancedSearch/index.js +22 -24
- package/components/AdvancedSearch/index.js.map +1 -1
- package/components/AdvancedSearch/useFilterRepository.js +4 -3
- package/components/AdvancedSearch/useFilterRepository.js.map +1 -1
- package/components/AdvancedSearch/useInputField.js +4 -6
- package/components/AdvancedSearch/useInputField.js.map +1 -1
- package/components/Extensions/Extensions.js +23 -26
- package/components/Extensions/Extensions.js.map +1 -1
- package/components/Extensions/index.js +0 -2
- package/components/FolderGrid/FolderGridItem.js +67 -62
- package/components/FolderGrid/FolderGridItem.js.map +1 -1
- package/components/FolderGrid/index.js +0 -2
- package/components/FolderIcons/assets/folder-shared-icon.js +25 -0
- package/components/FolderIcons/assets/folder-shared-icon.js.map +1 -0
- package/components/FolderIcons/assets/folder.js +21 -0
- package/components/FolderIcons/assets/folder.js.map +1 -0
- package/components/FolderIcons/index.js +2 -5
- package/components/FolderPicker/FolderPicker.js +23 -20
- package/components/FolderPicker/FolderPicker.js.map +1 -1
- package/components/FolderTree/ButtonCreate/ButtonCreate.d.ts +1 -0
- package/components/FolderTree/ButtonCreate/ButtonCreate.js +17 -14
- package/components/FolderTree/ButtonCreate/ButtonCreate.js.map +1 -1
- package/components/FolderTree/ButtonCreate/index.js +0 -2
- package/components/FolderTree/Empty/Empty.js +5 -6
- package/components/FolderTree/Empty/Empty.js.map +1 -1
- package/components/FolderTree/Empty/index.js +0 -2
- package/components/FolderTree/List/List.js +120 -135
- package/components/FolderTree/List/List.js.map +1 -1
- package/components/FolderTree/List/index.js +0 -2
- package/components/FolderTree/List/utils.js +31 -64
- package/components/FolderTree/List/utils.js.map +1 -1
- package/components/FolderTree/Loader/Loader.js +15 -18
- package/components/FolderTree/Loader/Loader.js.map +1 -1
- package/components/FolderTree/Loader/index.js +0 -2
- package/components/FolderTree/MenuActions/MenuActions.js +19 -27
- package/components/FolderTree/MenuActions/MenuActions.js.map +1 -1
- package/components/FolderTree/MenuActions/index.js +0 -2
- package/components/FolderTree/Node/Node.js +27 -47
- package/components/FolderTree/Node/Node.js.map +1 -1
- package/components/FolderTree/Node/index.js +0 -2
- package/components/FolderTree/NodePreview/NodePreview.js +11 -14
- package/components/FolderTree/NodePreview/NodePreview.js.map +1 -1
- package/components/FolderTree/NodePreview/index.js +0 -2
- package/components/FolderTree/index.d.ts +2 -1
- package/components/FolderTree/index.js +47 -57
- package/components/FolderTree/index.js.map +1 -1
- package/components/Search/Search.js +15 -20
- package/components/Search/Search.js.map +1 -1
- package/components/Search/index.js +0 -2
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js +19 -20
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityDecorator.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js +17 -18
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js +113 -130
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityPresenter.test.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js +26 -25
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepository.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js +12 -11
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityRepositoryFactory.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js +11 -12
- package/components/Table/components/Table/ColumnVisibility/ColumnsVisibilityUpdater.js.map +1 -1
- package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js +0 -3
- package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js +0 -3
- package/components/Table/components/Table/ColumnVisibility/index.js +0 -2
- package/components/Table/components/Table/Columns/Column.js +18 -17
- package/components/Table/components/Table/Columns/Column.js.map +1 -1
- package/components/Table/components/Table/Columns/ColumnMapper.js +31 -31
- package/components/Table/components/Table/Columns/ColumnMapper.js.map +1 -1
- package/components/Table/components/Table/Columns/ColumnsPresenter.js +14 -13
- package/components/Table/components/Table/Columns/ColumnsPresenter.js.map +1 -1
- package/components/Table/components/Table/Columns/ColumnsPresenter.test.js +66 -60
- package/components/Table/components/Table/Columns/ColumnsPresenter.test.js.map +1 -1
- package/components/Table/components/Table/Columns/ColumnsRepository.js +15 -14
- package/components/Table/components/Table/Columns/ColumnsRepository.js.map +1 -1
- package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js +15 -11
- package/components/Table/components/Table/Columns/ColumnsRepositoryFactory.js.map +1 -1
- package/components/Table/components/Table/Columns/IColumnsRepository.js +0 -3
- package/components/Table/components/Table/Columns/index.js +0 -2
- package/components/Table/components/Table/Table.js +38 -32
- package/components/Table/components/Table/Table.js.map +1 -1
- package/components/Table/components/Table/TableInner.js +33 -40
- package/components/Table/components/Table/TableInner.js.map +1 -1
- package/components/Table/components/Table/TablePresenter.js +12 -9
- package/components/Table/components/Table/TablePresenter.js.map +1 -1
- package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js +12 -11
- package/components/Table/components/Table/gateways/ColumnsVisibilityLocalStorageGateway.js.map +1 -1
- package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js +0 -3
- package/components/Table/components/Table/gateways/index.js +0 -2
- package/components/Table/components/Table/index.js +0 -2
- package/components/Table/components/index.js +0 -2
- package/components/Table/createTableData.js +13 -16
- package/components/Table/createTableData.js.map +1 -1
- package/components/Table/index.js +0 -2
- package/components/Table/useTableRow.js +17 -29
- package/components/Table/useTableRow.js.map +1 -1
- package/components/index.js +0 -2
- package/config/AcoConfig.js +43 -30
- package/config/AcoConfig.js.map +1 -1
- package/config/advanced-search/FieldRenderer.js +27 -30
- package/config/advanced-search/FieldRenderer.js.map +1 -1
- package/config/advanced-search/index.js +3 -2
- package/config/advanced-search/index.js.map +1 -1
- package/config/folder/Action.js +27 -32
- package/config/folder/Action.js.map +1 -1
- package/config/folder/DropConfirmation.js +12 -13
- package/config/folder/DropConfirmation.js.map +1 -1
- package/config/folder/createFolderFieldDecoratorFactory.js +14 -18
- package/config/folder/createFolderFieldDecoratorFactory.js.map +1 -1
- package/config/folder/index.js +4 -3
- package/config/folder/index.js.map +1 -1
- package/config/index.js +0 -2
- package/config/record/Action.js +28 -33
- package/config/record/Action.js.map +1 -1
- package/config/record/index.js +3 -2
- package/config/record/index.js.map +1 -1
- package/config/table/Column.js +65 -81
- package/config/table/Column.js.map +1 -1
- package/config/table/Sorting.js +24 -27
- package/config/table/Sorting.js.map +1 -1
- package/config/table/index.js +4 -3
- package/config/table/index.js.map +1 -1
- package/constants.js +0 -2
- package/contexts/acoList.js +283 -384
- package/contexts/acoList.js.map +1 -1
- package/contexts/app.js +40 -53
- package/contexts/app.js.map +1 -1
- package/contexts/folder.js +11 -15
- package/contexts/folder.js.map +1 -1
- package/contexts/folders.js +27 -32
- package/contexts/folders.js.map +1 -1
- package/contexts/index.js +0 -2
- package/contexts/navigateFolder.js +49 -57
- package/contexts/navigateFolder.js.map +1 -1
- package/contexts/records.js +299 -422
- package/contexts/records.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js +22 -29
- package/dialogs/DialogSetPermissions/UsersTeamsMultiAutocomplete.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js +18 -21
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemGraphic.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js +105 -107
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemMeta.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js +11 -16
- package/dialogs/DialogSetPermissions/UsersTeamsSelection/ListItemText.js.map +1 -1
- package/dialogs/DialogSetPermissions/UsersTeamsSelection.js +29 -34
- package/dialogs/DialogSetPermissions/UsersTeamsSelection.js.map +1 -1
- package/dialogs/DialogSetPermissions/graphql.js +3 -2
- package/dialogs/DialogSetPermissions/graphql.js.map +1 -1
- package/dialogs/ParentFolderField.js +12 -13
- package/dialogs/ParentFolderField.js.map +1 -1
- package/dialogs/index.js +0 -2
- package/dialogs/useConfirmMoveFolderDialog.js +16 -19
- package/dialogs/useConfirmMoveFolderDialog.js.map +1 -1
- package/dialogs/useCreateDialog.js +78 -93
- package/dialogs/useCreateDialog.js.map +1 -1
- package/dialogs/useDeleteDialog.js +27 -33
- package/dialogs/useDeleteDialog.js.map +1 -1
- package/dialogs/useEditDialog.js +77 -80
- package/dialogs/useEditDialog.js.map +1 -1
- package/dialogs/useMoveToFolderDialog.d.ts +1 -1
- package/dialogs/useMoveToFolderDialog.js +33 -49
- package/dialogs/useMoveToFolderDialog.js.map +1 -1
- package/dialogs/useSetPermissionsDialog.js +85 -87
- package/dialogs/useSetPermissionsDialog.js.map +1 -1
- package/domain/folder/Folder.js +25 -24
- package/domain/folder/Folder.js.map +1 -1
- package/domain/folder/FolderDto.js +0 -3
- package/domain/folder/FolderDtoMapper.js +24 -25
- package/domain/folder/FolderDtoMapper.js.map +1 -1
- package/domain/folder/FolderIdentity.js +16 -17
- package/domain/folder/FolderIdentity.js.map +1 -1
- package/domain/folder/RootFolder.js +24 -23
- package/domain/folder/RootFolder.js.map +1 -1
- package/exports/admin/aco.js +0 -2
- package/exports/admin/ui.js +0 -2
- package/features/folders/abstractions.js +6 -5
- package/features/folders/abstractions.js.map +1 -1
- package/features/folders/cache/FoldersCacheFactory.js +13 -12
- package/features/folders/cache/FoldersCacheFactory.js.map +1 -1
- package/features/folders/cache/ListCache.d.ts +2 -29
- package/features/folders/cache/ListCache.js +1 -43
- package/features/folders/cache/LoadedCache.js +33 -27
- package/features/folders/cache/LoadedCache.js.map +1 -1
- package/features/folders/cache/LoadedFoldersCacheFactory.js +13 -12
- package/features/folders/cache/LoadedFoldersCacheFactory.js.map +1 -1
- package/features/folders/cache/index.js +0 -2
- package/features/folders/createFolder/CreateFolder.test.js +44 -48
- package/features/folders/createFolder/CreateFolder.test.js.map +1 -1
- package/features/folders/createFolder/CreateFolderGqlGateway.js +27 -32
- package/features/folders/createFolder/CreateFolderGqlGateway.js.map +1 -1
- package/features/folders/createFolder/CreateFolderRepository.js +29 -24
- package/features/folders/createFolder/CreateFolderRepository.js.map +1 -1
- package/features/folders/createFolder/CreateFolderUseCase.js +20 -17
- package/features/folders/createFolder/CreateFolderUseCase.js.map +1 -1
- package/features/folders/createFolder/abstractions.js +4 -12
- package/features/folders/createFolder/abstractions.js.map +1 -1
- package/features/folders/createFolder/feature.js +15 -14
- package/features/folders/createFolder/feature.js.map +1 -1
- package/features/folders/createFolder/index.js +0 -2
- package/features/folders/createFolder/useCreateFolder.js +6 -9
- package/features/folders/createFolder/useCreateFolder.js.map +1 -1
- package/features/folders/deleteFolder/DeleteFolder.test.js +38 -39
- package/features/folders/deleteFolder/DeleteFolder.test.js.map +1 -1
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js +21 -28
- package/features/folders/deleteFolder/DeleteFolderGqlGateway.js.map +1 -1
- package/features/folders/deleteFolder/DeleteFolderRepository.js +16 -13
- package/features/folders/deleteFolder/DeleteFolderRepository.js.map +1 -1
- package/features/folders/deleteFolder/DeleteFolderUseCase.js +13 -10
- package/features/folders/deleteFolder/DeleteFolderUseCase.js.map +1 -1
- package/features/folders/deleteFolder/abstractions.js +4 -12
- package/features/folders/deleteFolder/abstractions.js.map +1 -1
- package/features/folders/deleteFolder/feature.js +15 -14
- package/features/folders/deleteFolder/feature.js.map +1 -1
- package/features/folders/deleteFolder/index.js +0 -2
- package/features/folders/deleteFolder/useDeleteFolder.js +6 -9
- package/features/folders/deleteFolder/useDeleteFolder.js.map +1 -1
- package/features/folders/feature.js +23 -29
- package/features/folders/feature.js.map +1 -1
- package/features/folders/folderModelProvider/FolderModelContext.js +17 -24
- package/features/folders/folderModelProvider/FolderModelContext.js.map +1 -1
- package/features/folders/folderModelProvider/FolderModelDto.js +0 -3
- package/features/folders/folderModelProvider/FolderModelProvider.js +23 -23
- package/features/folders/folderModelProvider/FolderModelProvider.js.map +1 -1
- package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js +20 -26
- package/features/folders/folderModelProvider/GetFolderModelGqlGateway.js.map +1 -1
- package/features/folders/folderModelProvider/GetFolderModelRepository.js +25 -22
- package/features/folders/folderModelProvider/GetFolderModelRepository.js.map +1 -1
- package/features/folders/folderModelProvider/abstractions.js +3 -2
- package/features/folders/folderModelProvider/abstractions.js.map +1 -1
- package/features/folders/folderModelProvider/feature.js +15 -14
- package/features/folders/folderModelProvider/feature.js.map +1 -1
- package/features/folders/folderModelProvider/index.js +0 -2
- package/features/folders/getDescendantFolders/GetDescendantFolders.test.js +116 -110
- package/features/folders/getDescendantFolders/GetDescendantFolders.test.js.map +1 -1
- package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js +35 -35
- package/features/folders/getDescendantFolders/GetDescendantFoldersRepository.js.map +1 -1
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js +13 -10
- package/features/folders/getDescendantFolders/GetDescendantFoldersUseCase.js.map +1 -1
- package/features/folders/getDescendantFolders/abstractions.js +3 -10
- package/features/folders/getDescendantFolders/abstractions.js.map +1 -1
- package/features/folders/getDescendantFolders/feature.js +14 -13
- package/features/folders/getDescendantFolders/feature.js.map +1 -1
- package/features/folders/getDescendantFolders/index.js +0 -2
- package/features/folders/getDescendantFolders/useGetDescendantFolders.js +6 -9
- package/features/folders/getDescendantFolders/useGetDescendantFolders.js.map +1 -1
- package/features/folders/getFolder/GetFolderGqlGateway.js +26 -31
- package/features/folders/getFolder/GetFolderGqlGateway.js.map +1 -1
- package/features/folders/getFolder/GetFolderRepository.js +18 -13
- package/features/folders/getFolder/GetFolderRepository.js.map +1 -1
- package/features/folders/getFolder/GetFolderUseCase.js +13 -10
- package/features/folders/getFolder/GetFolderUseCase.js.map +1 -1
- package/features/folders/getFolder/abstractions.js +4 -12
- package/features/folders/getFolder/abstractions.js.map +1 -1
- package/features/folders/getFolder/feature.js +15 -14
- package/features/folders/getFolder/feature.js.map +1 -1
- package/features/folders/getFolder/index.js +0 -2
- package/features/folders/getFolder/useGetFolder.js +6 -9
- package/features/folders/getFolder/useGetFolder.js.map +1 -1
- package/features/folders/getFolderAncestors/GetFolderAncestors.test.js +108 -103
- package/features/folders/getFolderAncestors/GetFolderAncestors.test.js.map +1 -1
- package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js +32 -30
- package/features/folders/getFolderAncestors/GetFolderAncestorsRepository.js.map +1 -1
- package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js +13 -10
- package/features/folders/getFolderAncestors/GetFolderAncestorsUseCase.js.map +1 -1
- package/features/folders/getFolderAncestors/abstractions.js +3 -10
- package/features/folders/getFolderAncestors/abstractions.js.map +1 -1
- package/features/folders/getFolderAncestors/feature.js +14 -13
- package/features/folders/getFolderAncestors/feature.js.map +1 -1
- package/features/folders/getFolderAncestors/index.js +0 -2
- package/features/folders/getFolderAncestors/useGetFolderAncestors.js +6 -9
- package/features/folders/getFolderAncestors/useGetFolderAncestors.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js +190 -160
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFields.test.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js +30 -29
- package/features/folders/getFolderExtensionsFields/GetFolderExtensionsFieldsUseCase.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/abstractions.js +3 -8
- package/features/folders/getFolderExtensionsFields/abstractions.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/feature.js +16 -18
- package/features/folders/getFolderExtensionsFields/feature.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js +16 -17
- package/features/folders/getFolderExtensionsFields/filters/CmsNamespaceFilter.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js +13 -16
- package/features/folders/getFolderExtensionsFields/filters/FmFileNamespaceFilter.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js +7 -8
- package/features/folders/getFolderExtensionsFields/filters/GlobalNamespaceFilter.js.map +1 -1
- package/features/folders/getFolderExtensionsFields/index.js +0 -2
- package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js +13 -14
- package/features/folders/getFolderExtensionsFields/useFolderExtensionsFields.js.map +1 -1
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js +135 -164
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermission.test.js.map +1 -1
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js +8 -7
- package/features/folders/getFolderLevelPermission/GetFolderLevelPermissionUseCase.js.map +1 -1
- package/features/folders/getFolderLevelPermission/abstractions.js +2 -1
- package/features/folders/getFolderLevelPermission/abstractions.js.map +1 -1
- package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js +17 -20
- package/features/folders/getFolderLevelPermission/decorators/GetFolderLevelPermissionWithFlpDecorator.js.map +1 -1
- package/features/folders/getFolderLevelPermission/feature.js +14 -16
- package/features/folders/getFolderLevelPermission/feature.js.map +1 -1
- package/features/folders/getFolderLevelPermission/index.js +0 -2
- package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js +9 -10
- package/features/folders/getFolderLevelPermission/useGetFolderLevelPermission.js.map +1 -1
- package/features/folders/listFolders/ListFolders.test.js +98 -111
- package/features/folders/listFolders/ListFolders.test.js.map +1 -1
- package/features/folders/listFolders/ListFoldersGqlGateway.js +29 -27
- package/features/folders/listFolders/ListFoldersGqlGateway.js.map +1 -1
- package/features/folders/listFolders/ListFoldersRepository.js +19 -14
- package/features/folders/listFolders/ListFoldersRepository.js.map +1 -1
- package/features/folders/listFolders/ListFoldersUseCase.js +13 -10
- package/features/folders/listFolders/ListFoldersUseCase.js.map +1 -1
- package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js +14 -11
- package/features/folders/listFolders/ListFoldersUseCaseWithLoading.js.map +1 -1
- package/features/folders/listFolders/abstractions.js +4 -3
- package/features/folders/listFolders/abstractions.js.map +1 -1
- package/features/folders/listFolders/feature.js +17 -23
- package/features/folders/listFolders/feature.js.map +1 -1
- package/features/folders/listFolders/index.js +0 -2
- package/features/folders/listFolders/useListFolders.js +35 -37
- package/features/folders/listFolders/useListFolders.js.map +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js +218 -203
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js.map +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +31 -33
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js +18 -13
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -1
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js +18 -15
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -1
- package/features/folders/listFoldersByParentIds/abstractions.js +4 -3
- package/features/folders/listFoldersByParentIds/abstractions.js.map +1 -1
- package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js +20 -22
- package/features/folders/listFoldersByParentIds/decorators/RepositoryWithLoadedCache.js.map +1 -1
- package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js +17 -18
- package/features/folders/listFoldersByParentIds/decorators/UseCaseWithLoading.js.map +1 -1
- package/features/folders/listFoldersByParentIds/feature.js +18 -26
- package/features/folders/listFoldersByParentIds/feature.js.map +1 -1
- package/features/folders/listFoldersByParentIds/index.js +0 -2
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js +40 -42
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -1
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js +134 -136
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchy.test.js.map +1 -1
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js +31 -31
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyGqlGateway.js.map +1 -1
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js +35 -40
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyRepository.js.map +1 -1
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js +13 -10
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCase.js.map +1 -1
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js +14 -11
- package/features/folders/loadFolderHierarchy/LoadFolderHierarchyUseCaseWithLoading.js.map +1 -1
- package/features/folders/loadFolderHierarchy/abstractions.js +4 -3
- package/features/folders/loadFolderHierarchy/abstractions.js.map +1 -1
- package/features/folders/loadFolderHierarchy/feature.js +17 -23
- package/features/folders/loadFolderHierarchy/feature.js.map +1 -1
- package/features/folders/loadFolderHierarchy/index.js +0 -2
- package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js +37 -42
- package/features/folders/loadFolderHierarchy/useLoadFolderHierarchy.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolder.test.js +372 -384
- package/features/folders/updateFolder/UpdateFolder.test.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js +33 -45
- package/features/folders/updateFolder/UpdateFolderGqlGateway.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolderRepository.js +26 -24
- package/features/folders/updateFolder/UpdateFolderRepository.js.map +1 -1
- package/features/folders/updateFolder/UpdateFolderUseCase.js +13 -10
- package/features/folders/updateFolder/UpdateFolderUseCase.js.map +1 -1
- package/features/folders/updateFolder/abstractions.js +4 -3
- package/features/folders/updateFolder/abstractions.js.map +1 -1
- package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js +43 -64
- package/features/folders/updateFolder/decorators/RepositoryWithPathChange.js.map +1 -1
- package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js +44 -56
- package/features/folders/updateFolder/decorators/RepositoryWithPermissionsChange.js.map +1 -1
- package/features/folders/updateFolder/decorators/UseCaseWithLoading.js +14 -11
- package/features/folders/updateFolder/decorators/UseCaseWithLoading.js.map +1 -1
- package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js +15 -15
- package/features/folders/updateFolder/decorators/UseCaseWithoutInheritedPermissions.js.map +1 -1
- package/features/folders/updateFolder/feature.js +20 -28
- package/features/folders/updateFolder/feature.js.map +1 -1
- package/features/folders/updateFolder/index.js +0 -2
- package/features/folders/updateFolder/useUpdateFolder.js +17 -19
- package/features/folders/updateFolder/useUpdateFolder.js.map +1 -1
- package/graphql/app.gql.js +3 -4
- package/graphql/app.gql.js.map +1 -1
- package/graphql/records/common.js +41 -39
- package/graphql/records/common.js.map +1 -1
- package/graphql/records/getRecord.js +2 -3
- package/graphql/records/getRecord.js.map +1 -1
- package/graphql/records/listRecords.js +22 -13
- package/graphql/records/listRecords.js.map +1 -1
- package/graphql/records/moveRecord.js +5 -6
- package/graphql/records/moveRecord.js.map +1 -1
- package/graphql/records/types.js +0 -3
- package/graphql/records.gql.js +0 -2
- package/handlers.js +17 -40
- package/handlers.js.map +1 -1
- package/hooks/index.js +0 -2
- package/hooks/useAcoApp.js +11 -12
- package/hooks/useAcoApp.js.map +1 -1
- package/hooks/useAcoList.js +5 -6
- package/hooks/useAcoList.js.map +1 -1
- package/hooks/useFolder.js +6 -7
- package/hooks/useFolder.js.map +1 -1
- package/hooks/useFolderModel.js +11 -13
- package/hooks/useFolderModel.js.map +1 -1
- package/hooks/useFoldersType.js +7 -12
- package/hooks/useFoldersType.js.map +1 -1
- package/hooks/useNavigateFolder.js +5 -6
- package/hooks/useNavigateFolder.js.map +1 -1
- package/hooks/useRecords.js +56 -77
- package/hooks/useRecords.js.map +1 -1
- package/hooks/useTags.js +21 -30
- package/hooks/useTags.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +3 -8
- package/package.json +22 -22
- package/presentation/folderTree/FolderTree.d.ts +19 -0
- package/presentation/folderTree/FolderTree.js +252 -0
- package/presentation/folderTree/FolderTree.js.map +1 -0
- package/presentation/folderTree/FolderTreeFieldRenderer.d.ts +13 -0
- package/presentation/folderTree/FolderTreeFieldRenderer.js +23 -0
- package/presentation/folderTree/FolderTreeFieldRenderer.js.map +1 -0
- package/presentation/folderTree/FolderTreePresenter.d.ts +51 -0
- package/presentation/folderTree/FolderTreePresenter.js +303 -0
- package/presentation/folderTree/FolderTreePresenter.js.map +1 -0
- package/presentation/folderTree/FolderTreePresenter.test.d.ts +1 -0
- package/presentation/folderTree/FolderTreePresenter.test.js +517 -0
- package/presentation/folderTree/FolderTreePresenter.test.js.map +1 -0
- package/presentation/folderTree/abstractions.d.ts +65 -0
- package/presentation/folderTree/abstractions.js +5 -0
- package/presentation/folderTree/abstractions.js.map +1 -0
- package/presentation/folderTree/feature.d.ts +3 -0
- package/presentation/folderTree/feature.js +17 -0
- package/presentation/folderTree/feature.js.map +1 -0
- package/presentation/folderTree/index.d.ts +5 -0
- package/presentation/folderTree/index.js +3 -0
- package/sorting.js +25 -28
- package/sorting.js.map +1 -1
- package/static/svg/folder-shared-icon.5d947e49.svg +5 -0
- package/static/svg/folder.f3d5c400.svg +4 -0
- package/table.types.js +0 -3
- package/types.js +10 -13
- package/types.js.map +1 -1
- package/components/Actions/DeleteFolder/index.js.map +0 -1
- package/components/Actions/EditFolder/index.js.map +0 -1
- package/components/Actions/SetFolderPemissions/index.js.map +0 -1
- package/components/Actions/index.js.map +0 -1
- package/components/AdvancedSearch/Button/index.js.map +0 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/controls/index.js.map +0 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/components/index.js.map +0 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilder/index.js.map +0 -1
- package/components/AdvancedSearch/QueryBuilderDrawer/index.js.map +0 -1
- package/components/AdvancedSearch/QueryManagerDialog/components/index.js.map +0 -1
- package/components/AdvancedSearch/QueryManagerDialog/index.js.map +0 -1
- package/components/AdvancedSearch/QuerySaverDialog/index.js.map +0 -1
- package/components/AdvancedSearch/SelectedFilter/index.js.map +0 -1
- package/components/AdvancedSearch/domain/index.js.map +0 -1
- package/components/AdvancedSearch/fields/index.js.map +0 -1
- package/components/AdvancedSearch/gateways/FiltersGatewayInterface.js.map +0 -1
- package/components/AdvancedSearch/gateways/filters.types.js.map +0 -1
- package/components/AdvancedSearch/gateways/index.js.map +0 -1
- package/components/Extensions/index.js.map +0 -1
- package/components/FolderGrid/index.js.map +0 -1
- package/components/FolderIcons/index.js.map +0 -1
- package/components/FolderTree/ButtonCreate/index.js.map +0 -1
- package/components/FolderTree/Empty/index.js.map +0 -1
- package/components/FolderTree/List/index.js.map +0 -1
- package/components/FolderTree/Loader/index.js.map +0 -1
- package/components/FolderTree/MenuActions/index.js.map +0 -1
- package/components/FolderTree/Node/index.js.map +0 -1
- package/components/FolderTree/NodePreview/index.js.map +0 -1
- package/components/Search/index.js.map +0 -1
- package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityRepository.js.map +0 -1
- package/components/Table/components/Table/ColumnVisibility/IColumnsVisibilityUpdater.js.map +0 -1
- package/components/Table/components/Table/ColumnVisibility/index.js.map +0 -1
- package/components/Table/components/Table/Columns/IColumnsRepository.js.map +0 -1
- package/components/Table/components/Table/Columns/index.js.map +0 -1
- package/components/Table/components/Table/gateways/IColumnsVisibilityGateway.js.map +0 -1
- package/components/Table/components/Table/gateways/index.js.map +0 -1
- package/components/Table/components/Table/index.js.map +0 -1
- package/components/Table/components/index.js.map +0 -1
- package/components/Table/index.js.map +0 -1
- package/components/index.js.map +0 -1
- package/config/index.js.map +0 -1
- package/constants.js.map +0 -1
- package/contexts/index.js.map +0 -1
- package/dialogs/index.js.map +0 -1
- package/domain/folder/FolderDto.js.map +0 -1
- package/exports/admin/aco.js.map +0 -1
- package/exports/admin/ui.js.map +0 -1
- package/features/folders/cache/ListCache.js.map +0 -1
- package/features/folders/cache/index.js.map +0 -1
- package/features/folders/createFolder/index.js.map +0 -1
- package/features/folders/deleteFolder/index.js.map +0 -1
- package/features/folders/folderModelProvider/FolderModelDto.js.map +0 -1
- package/features/folders/folderModelProvider/index.js.map +0 -1
- package/features/folders/getDescendantFolders/index.js.map +0 -1
- package/features/folders/getFolder/index.js.map +0 -1
- package/features/folders/getFolderAncestors/index.js.map +0 -1
- package/features/folders/getFolderExtensionsFields/index.js.map +0 -1
- package/features/folders/getFolderLevelPermission/index.js.map +0 -1
- package/features/folders/listFolders/index.js.map +0 -1
- package/features/folders/listFoldersByParentIds/index.js.map +0 -1
- package/features/folders/loadFolderHierarchy/index.js.map +0 -1
- package/features/folders/updateFolder/index.js.map +0 -1
- package/graphql/records/types.js.map +0 -1
- package/graphql/records.gql.js.map +0 -1
- package/hooks/index.js.map +0 -1
- package/index.js.map +0 -1
- package/table.types.js.map +0 -1
|
@@ -1,76 +1,74 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react, { useEffect, useMemo, useRef } from "react";
|
|
2
2
|
import { observer } from "mobx-react-lite";
|
|
3
3
|
import { Button, Drawer } from "@webiny/admin-ui";
|
|
4
4
|
import { useHotkeys } from "@webiny/app-admin";
|
|
5
5
|
import { QueryBuilder } from "./QueryBuilder/index.js";
|
|
6
6
|
import { QueryBuilderDrawerPresenter } from "./QueryBuilderDrawerPresenter.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
7
|
+
const QueryBuilderDrawer = observer(({ filter, ...props })=>{
|
|
8
|
+
const presenter = useMemo(()=>new QueryBuilderDrawerPresenter(), []);
|
|
9
|
+
useEffect(()=>{
|
|
10
|
+
presenter.load(filter);
|
|
11
|
+
}, [
|
|
12
|
+
filter
|
|
13
|
+
]);
|
|
14
|
+
const onChange = (data)=>{
|
|
15
|
+
presenter.setFilter(data);
|
|
16
|
+
};
|
|
17
|
+
const onApply = ()=>{
|
|
18
|
+
presenter.onApply((filter)=>{
|
|
19
|
+
props.onApply(filter);
|
|
20
|
+
}, ()=>{
|
|
21
|
+
props.onValidationError(presenter.vm.invalidMessage);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const onSave = ()=>{
|
|
25
|
+
presenter.onSave((filter)=>{
|
|
26
|
+
props.onSave(filter);
|
|
27
|
+
}, ()=>{
|
|
28
|
+
props.onValidationError(presenter.vm.invalidMessage);
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
useHotkeys({
|
|
32
|
+
zIndex: 55,
|
|
33
|
+
disabled: !props.vm.isOpen,
|
|
34
|
+
keys: {
|
|
35
|
+
esc: props.onClose
|
|
36
|
+
}
|
|
25
37
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
})),
|
|
60
|
-
headerSeparator: true,
|
|
61
|
-
footerSeparator: true
|
|
62
|
-
}, /*#__PURE__*/React.createElement(QueryBuilder, {
|
|
63
|
-
onForm: form => ref.current = form,
|
|
64
|
-
onSubmit: onApply,
|
|
65
|
-
onChange: data => onChange(data),
|
|
66
|
-
onDeleteGroup: groupIndex => presenter.deleteGroup(groupIndex),
|
|
67
|
-
onSetFilterFieldData: (groupIndex, filterIndex, data) => presenter.setFilterFieldData(groupIndex, filterIndex, data),
|
|
68
|
-
onDeleteFilterFromGroup: (groupIndex, filterIndex) => presenter.deleteFilterFromGroup(groupIndex, filterIndex),
|
|
69
|
-
onAddNewFilterToGroup: groupIndex => presenter.addNewFilterToGroup(groupIndex),
|
|
70
|
-
onAddGroup: () => presenter.addGroup(),
|
|
71
|
-
fields: props.fields,
|
|
72
|
-
vm: presenter.vm
|
|
73
|
-
}));
|
|
38
|
+
const ref = useRef(null);
|
|
39
|
+
return /*#__PURE__*/ react.createElement(Drawer, {
|
|
40
|
+
open: props.vm.isOpen,
|
|
41
|
+
onClose: props.onClose,
|
|
42
|
+
modal: true,
|
|
43
|
+
width: 1000,
|
|
44
|
+
title: "Advanced search filter",
|
|
45
|
+
description: "Create a filter to search for specific content.",
|
|
46
|
+
info: /*#__PURE__*/ react.createElement(Button, {
|
|
47
|
+
onClick: onSave,
|
|
48
|
+
text: "Save filter",
|
|
49
|
+
variant: "secondary"
|
|
50
|
+
}),
|
|
51
|
+
actions: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Drawer.CancelButton, {
|
|
52
|
+
text: "Cancel"
|
|
53
|
+
}), /*#__PURE__*/ react.createElement(Drawer.ConfirmButton, {
|
|
54
|
+
onClick: ()=>ref.current?.submit(),
|
|
55
|
+
text: "Apply filter"
|
|
56
|
+
})),
|
|
57
|
+
headerSeparator: true,
|
|
58
|
+
footerSeparator: true
|
|
59
|
+
}, /*#__PURE__*/ react.createElement(QueryBuilder, {
|
|
60
|
+
onForm: (form)=>ref.current = form,
|
|
61
|
+
onSubmit: onApply,
|
|
62
|
+
onChange: (data)=>onChange(data),
|
|
63
|
+
onDeleteGroup: (groupIndex)=>presenter.deleteGroup(groupIndex),
|
|
64
|
+
onSetFilterFieldData: (groupIndex, filterIndex, data)=>presenter.setFilterFieldData(groupIndex, filterIndex, data),
|
|
65
|
+
onDeleteFilterFromGroup: (groupIndex, filterIndex)=>presenter.deleteFilterFromGroup(groupIndex, filterIndex),
|
|
66
|
+
onAddNewFilterToGroup: (groupIndex)=>presenter.addNewFilterToGroup(groupIndex),
|
|
67
|
+
onAddGroup: ()=>presenter.addGroup(),
|
|
68
|
+
fields: props.fields,
|
|
69
|
+
vm: presenter.vm
|
|
70
|
+
}));
|
|
74
71
|
});
|
|
72
|
+
export { QueryBuilderDrawer };
|
|
75
73
|
|
|
76
74
|
//# sourceMappingURL=QueryBuilderDrawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.js","sources":["../../../../src/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawer.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Button, Drawer } from \"@webiny/admin-ui\";\nimport { useHotkeys } from \"@webiny/app-admin\";\nimport type { FormAPI } from \"@webiny/form\";\nimport { QueryBuilder } from \"./QueryBuilder/index.js\";\n\nimport type { FieldDTOWithElement, FilterDTO } from \"~/components/AdvancedSearch/domain/index.js\";\n\nimport type { QueryBuilderFormData } from \"./QueryBuilderDrawerPresenter.js\";\nimport { QueryBuilderDrawerPresenter } from \"./QueryBuilderDrawerPresenter.js\";\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"],"names":["QueryBuilderDrawer","observer","filter","props","presenter","useMemo","QueryBuilderDrawerPresenter","useEffect","onChange","data","onApply","onSave","useHotkeys","ref","useRef","Drawer","Button","QueryBuilder","form","groupIndex","filterIndex"],"mappings":";;;;;;AAwBO,MAAMA,qBAAqBC,SAAS,CAAC,EAAEC,MAAM,EAAE,GAAGC,OAAgC;IACrF,MAAMC,YAAYC,QAAqC,IAC5C,IAAIC,+BACZ,EAAE;IAELC,UAAU;QACNH,UAAU,IAAI,CAACF;IACnB,GAAG;QAACA;KAAO;IAEX,MAAMM,WAAW,CAACC;QACdL,UAAU,SAAS,CAACK;IACxB;IAEA,MAAMC,UAAU;QACZN,UAAU,OAAO,CACbF,CAAAA;YACIC,MAAM,OAAO,CAACD;QAClB,GACA;YACIC,MAAM,iBAAiB,CAACC,UAAU,EAAE,CAAC,cAAc;QACvD;IAER;IAEA,MAAMO,SAAS;QACXP,UAAU,MAAM,CACZF,CAAAA;YACIC,MAAM,MAAM,CAACD;QACjB,GACA;YACIC,MAAM,iBAAiB,CAACC,UAAU,EAAE,CAAC,cAAc;QACvD;IAER;IAEAQ,WAAW;QACP,QAAQ;QACR,UAAU,CAACT,MAAM,EAAE,CAAC,MAAM;QAC1B,MAAM;YACF,KAAKA,MAAM,OAAO;QACtB;IACJ;IAEA,MAAMU,MAAMC,OAAuB;IAEnC,OAAO,WAAP,GACI,oBAACC,QAAMA;QACH,MAAMZ,MAAM,EAAE,CAAC,MAAM;QACrB,SAASA,MAAM,OAAO;QACtB,OAAO;QACP,OAAO;QACP,OAAO;QACP,aAAa;QACb,oBAAM,oBAACa,QAAMA;YAAC,SAASL;YAAQ,MAAM;YAAe,SAAS;;QAC7D,uBACI,wDACI,oBAACI,OAAO,YAAY;YAAC,MAAM;0BAC3B,oBAACA,OAAO,aAAa;YACjB,SAAS,IAAMF,IAAI,OAAO,EAAE;YAC5B,MAAM;;QAIlB,iBAAiB;QACjB,iBAAiB;qBAEjB,oBAACI,cAAYA;QACT,QAAQC,CAAAA,OAASL,IAAI,OAAO,GAAGK;QAC/B,UAAUR;QACV,UAAUD,CAAAA,OAAQD,SAASC;QAC3B,eAAeU,CAAAA,aAAcf,UAAU,WAAW,CAACe;QACnD,sBAAsB,CAACA,YAAYC,aAAaX,OAC5CL,UAAU,kBAAkB,CAACe,YAAYC,aAAaX;QAE1D,yBAAyB,CAACU,YAAYC,cAClChB,UAAU,qBAAqB,CAACe,YAAYC;QAEhD,uBAAuBD,CAAAA,aAAcf,UAAU,mBAAmB,CAACe;QACnE,YAAY,IAAMf,UAAU,QAAQ;QACpC,QAAQD,MAAM,MAAM;QACpB,IAAIC,UAAU,EAAE;;AAIhC"}
|
|
@@ -1,156 +1,127 @@
|
|
|
1
1
|
import { makeAutoObservable } from "mobx";
|
|
2
2
|
import { Filter, Operation } from "../domain/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
load(filter) {
|
|
12
|
-
this.filter = filter;
|
|
13
|
-
}
|
|
14
|
-
get vm() {
|
|
15
|
-
return {
|
|
16
|
-
name: this.filter?.name || "",
|
|
17
|
-
description: this.filter?.description || "",
|
|
18
|
-
invalidFields: this.invalidFields,
|
|
19
|
-
invalidMessage: this.invalidMessage,
|
|
20
|
-
data: {
|
|
21
|
-
operation: this.filter?.operation || Operation.AND,
|
|
22
|
-
groups: this.filter?.groups.map((group, groupIndex) => {
|
|
23
|
-
return {
|
|
24
|
-
title: `Filter group #${groupIndex + 1}`,
|
|
25
|
-
open: true,
|
|
26
|
-
operation: group.operation,
|
|
27
|
-
canDelete: groupIndex !== 0,
|
|
28
|
-
filters: group.filters.map((filter, filterIndex) => ({
|
|
29
|
-
field: filter.field,
|
|
30
|
-
condition: filter.condition,
|
|
31
|
-
value: filter.value,
|
|
32
|
-
canDelete: filterIndex !== 0
|
|
33
|
-
}))
|
|
34
|
-
};
|
|
35
|
-
}) || []
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
addGroup() {
|
|
40
|
-
if (!this.filter) {
|
|
41
|
-
return;
|
|
3
|
+
class QueryBuilderDrawerPresenter {
|
|
4
|
+
constructor(){
|
|
5
|
+
this.formWasSubmitted = false;
|
|
6
|
+
this.invalidFields = {};
|
|
7
|
+
this.invalidMessage = "";
|
|
8
|
+
this.filter = void 0;
|
|
9
|
+
makeAutoObservable(this);
|
|
42
10
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
filters: [{
|
|
46
|
-
field: "",
|
|
47
|
-
value: "",
|
|
48
|
-
condition: ""
|
|
49
|
-
}]
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
deleteGroup(groupIndex) {
|
|
53
|
-
if (!this.filter) {
|
|
54
|
-
return;
|
|
11
|
+
load(filter) {
|
|
12
|
+
this.filter = filter;
|
|
55
13
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
14
|
+
get vm() {
|
|
15
|
+
return {
|
|
16
|
+
name: this.filter?.name || "",
|
|
17
|
+
description: this.filter?.description || "",
|
|
18
|
+
invalidFields: this.invalidFields,
|
|
19
|
+
invalidMessage: this.invalidMessage,
|
|
20
|
+
data: {
|
|
21
|
+
operation: this.filter?.operation || Operation.AND,
|
|
22
|
+
groups: this.filter?.groups.map((group, groupIndex)=>({
|
|
23
|
+
title: `Filter group #${groupIndex + 1}`,
|
|
24
|
+
open: true,
|
|
25
|
+
operation: group.operation,
|
|
26
|
+
canDelete: 0 !== groupIndex,
|
|
27
|
+
filters: group.filters.map((filter, filterIndex)=>({
|
|
28
|
+
field: filter.field,
|
|
29
|
+
condition: filter.condition,
|
|
30
|
+
value: filter.value,
|
|
31
|
+
canDelete: 0 !== filterIndex
|
|
32
|
+
}))
|
|
33
|
+
})) || []
|
|
34
|
+
}
|
|
35
|
+
};
|
|
66
36
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
37
|
+
addGroup() {
|
|
38
|
+
if (!this.filter) return;
|
|
39
|
+
this.filter.groups.push({
|
|
40
|
+
operation: Operation.AND,
|
|
41
|
+
filters: [
|
|
42
|
+
{
|
|
43
|
+
field: "",
|
|
44
|
+
value: "",
|
|
45
|
+
condition: ""
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
});
|
|
76
49
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (this.filter.groups[groupIndex].filters.length === 0) {
|
|
82
|
-
this.filter.groups[groupIndex].filters.push({
|
|
83
|
-
field: "",
|
|
84
|
-
value: "",
|
|
85
|
-
condition: ""
|
|
86
|
-
});
|
|
50
|
+
deleteGroup(groupIndex) {
|
|
51
|
+
if (!this.filter) return;
|
|
52
|
+
this.filter.groups = this.filter.groups.filter((_, index)=>index !== groupIndex);
|
|
53
|
+
if (0 === this.filter.groups.length) this.addGroup();
|
|
87
54
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
55
|
+
addNewFilterToGroup(groupIndex) {
|
|
56
|
+
if (!this.filter) return;
|
|
57
|
+
this.filter.groups[groupIndex].filters.push({
|
|
58
|
+
field: "",
|
|
59
|
+
value: "",
|
|
60
|
+
condition: ""
|
|
61
|
+
});
|
|
92
62
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
63
|
+
deleteFilterFromGroup(groupIndex, filterIndex) {
|
|
64
|
+
if (!this.filter) return;
|
|
65
|
+
const filters = this.filter.groups[groupIndex].filters;
|
|
66
|
+
this.filter.groups[groupIndex].filters = filters.filter((_, index)=>index !== filterIndex);
|
|
67
|
+
if (0 === this.filter.groups[groupIndex].filters.length) this.filter.groups[groupIndex].filters.push({
|
|
68
|
+
field: "",
|
|
69
|
+
value: "",
|
|
70
|
+
condition: ""
|
|
71
|
+
});
|
|
102
72
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
73
|
+
setFilterFieldData(groupIndex, filterIndex, data) {
|
|
74
|
+
if (!this.filter) return;
|
|
75
|
+
this.filter.groups[groupIndex].filters = [
|
|
76
|
+
...this.filter.groups[groupIndex].filters.slice(0, filterIndex),
|
|
77
|
+
{
|
|
78
|
+
field: data,
|
|
79
|
+
value: "",
|
|
80
|
+
condition: ""
|
|
81
|
+
},
|
|
82
|
+
...this.filter.groups[groupIndex].filters.slice(filterIndex + 1)
|
|
83
|
+
];
|
|
113
84
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
85
|
+
setFilter(data) {
|
|
86
|
+
if (!this.filter) return;
|
|
87
|
+
this.filter = {
|
|
88
|
+
...this.filter,
|
|
89
|
+
operation: data.operation,
|
|
90
|
+
groups: data.groups.map((group)=>({
|
|
91
|
+
operation: group.operation,
|
|
92
|
+
filters: group.filters
|
|
93
|
+
}))
|
|
94
|
+
};
|
|
95
|
+
if (this.formWasSubmitted) this.validateFilter(this.filter);
|
|
124
96
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
97
|
+
onApply(onSuccess, onError) {
|
|
98
|
+
if (!this.filter) return;
|
|
99
|
+
const result = this.validateFilter(this.filter);
|
|
100
|
+
if (result.success) onSuccess && onSuccess(this.filter);
|
|
101
|
+
else onError && onError(this.filter);
|
|
129
102
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
103
|
+
onSave(onSuccess, onError) {
|
|
104
|
+
if (!this.filter) return;
|
|
105
|
+
const result = this.validateFilter(this.filter);
|
|
106
|
+
if (result.success) onSuccess && onSuccess(this.filter);
|
|
107
|
+
else onError && onError(this.filter);
|
|
135
108
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.invalidFields = {};
|
|
109
|
+
validateFilter(data) {
|
|
110
|
+
this.formWasSubmitted = true;
|
|
111
|
+
const validation = Filter.validate(data);
|
|
112
|
+
if (validation.success) {
|
|
113
|
+
this.invalidMessage = "";
|
|
114
|
+
this.invalidFields = {};
|
|
115
|
+
} else {
|
|
116
|
+
this.invalidMessage = "Error during the validation: check the filter configuration.";
|
|
117
|
+
this.invalidFields = validation.error.issues.reduce((acc, issue)=>({
|
|
118
|
+
...acc,
|
|
119
|
+
[issue.path.join(".")]: issue.message
|
|
120
|
+
}), {});
|
|
121
|
+
}
|
|
122
|
+
return validation;
|
|
151
123
|
}
|
|
152
|
-
return validation;
|
|
153
|
-
}
|
|
154
124
|
}
|
|
125
|
+
export { QueryBuilderDrawerPresenter };
|
|
155
126
|
|
|
156
127
|
//# sourceMappingURL=QueryBuilderDrawerPresenter.js.map
|
|
@@ -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 type { FilterDTO, FilterGroupDTO, FilterGroupFilterDTO } from \"../domain/index.js\";\nimport { Filter, Operation } from \"../domain/index.js\";\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
|
+
{"version":3,"file":"components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.js","sources":["../../../../src/components/AdvancedSearch/QueryBuilderDrawer/QueryBuilderDrawerPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport type { FilterDTO, FilterGroupDTO, FilterGroupFilterDTO } from \"../domain/index.js\";\nimport { Filter, Operation } from \"../domain/index.js\";\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"],"names":["QueryBuilderDrawerPresenter","undefined","makeAutoObservable","filter","Operation","group","groupIndex","filterIndex","_","index","filters","data","onSuccess","onError","result","validation","Filter","acc","issue"],"mappings":"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"}
|