@wix/bex-core 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_cs.json +4 -4
- package/dist/cjs/assets/locale/messages_da.json +1 -1
- package/dist/cjs/assets/locale/messages_de.json +1 -1
- package/dist/cjs/assets/locale/messages_en.json +1 -1
- package/dist/cjs/assets/locale/messages_es.json +1 -1
- package/dist/cjs/assets/locale/messages_fr.json +1 -1
- package/dist/cjs/assets/locale/messages_id.json +1 -1
- package/dist/cjs/assets/locale/messages_it.json +7 -7
- package/dist/cjs/assets/locale/messages_ja.json +3 -3
- package/dist/cjs/assets/locale/messages_ko.json +1 -1
- package/dist/cjs/assets/locale/messages_nl.json +3 -3
- package/dist/cjs/assets/locale/messages_no.json +1 -1
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +3 -3
- package/dist/cjs/assets/locale/messages_sv.json +1 -1
- package/dist/cjs/assets/locale/messages_th.json +1 -1
- package/dist/cjs/assets/locale/messages_tr.json +4 -4
- package/dist/cjs/assets/locale/messages_uk.json +1 -1
- package/dist/cjs/assets/locale/messages_vi.json +5 -5
- package/dist/cjs/assets/locale/messages_visuale2e.json +3 -1
- package/dist/cjs/assets/locale/messages_zh.json +2 -2
- package/dist/cjs/hooks/collectionConfig.js.map +1 -1
- package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
- package/dist/cjs/hooks/createCollection.js +1 -2
- package/dist/cjs/hooks/createCollection.js.map +1 -1
- package/dist/cjs/hooks/createCollectionConfig.js +4 -4
- package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
- package/dist/cjs/hooks/useAmbassadorCollection.js +8 -8
- package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/cjs/hooks/useOptimisticActions.js +1 -1
- package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
- package/dist/cjs/model/cairoEssentials.js.map +1 -1
- package/dist/cjs/model/commonTypes.js.map +1 -1
- package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
- package/dist/cjs/model/filter.js.map +1 -1
- package/dist/cjs/providers/CairoContainerOverridesContext.js +1 -6
- package/dist/cjs/providers/CairoContainerOverridesContext.js.map +1 -1
- package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js +1 -6
- package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
- package/dist/cjs/providers/CairoInitialPropsProvider.js +3 -3
- package/dist/cjs/providers/CairoInitialPropsProvider.js.map +1 -1
- package/dist/cjs/providers/CairoProvider/CairoProvider.js +2 -2
- package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +0 -4
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/cjs/state/BulkSelectState.js +13 -11
- package/dist/cjs/state/BulkSelectState.js.map +1 -1
- package/dist/cjs/state/CairoContainer.js +2 -13
- package/dist/cjs/state/CairoContainer.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +11 -93
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticExecutor.js +2 -2
- package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +0 -20
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js +0 -4
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/cjs/state/ExportState.js +7 -7
- package/dist/cjs/state/ExportState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js +0 -4
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
- package/dist/cjs/state/SortState.js +4 -4
- package/dist/cjs/state/SortState.js.map +1 -1
- package/dist/cjs/state/StringFilterState/StringFilterState.js +0 -4
- package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/cjs/state/buildCairoContainer.js +4 -10
- package/dist/cjs/state/buildCairoContainer.js.map +1 -1
- package/dist/cjs/state/index.js +0 -7
- package/dist/cjs/state/index.js.map +1 -1
- package/dist/cjs/testkit/CairoContainer.driver.js +3 -3
- package/dist/cjs/testkit/CairoContainer.driver.js.map +1 -1
- package/dist/cjs/testkit/ProductsCollectionState.driver.js +1 -1
- package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
- package/dist/cjs/util/assertKey.js +21 -1
- package/dist/cjs/util/assertKey.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +4 -4
- package/dist/esm/assets/locale/messages_da.json +1 -1
- package/dist/esm/assets/locale/messages_de.json +1 -1
- package/dist/esm/assets/locale/messages_en.json +1 -1
- package/dist/esm/assets/locale/messages_es.json +1 -1
- package/dist/esm/assets/locale/messages_fr.json +1 -1
- package/dist/esm/assets/locale/messages_id.json +1 -1
- package/dist/esm/assets/locale/messages_it.json +7 -7
- package/dist/esm/assets/locale/messages_ja.json +3 -3
- package/dist/esm/assets/locale/messages_ko.json +1 -1
- package/dist/esm/assets/locale/messages_nl.json +3 -3
- package/dist/esm/assets/locale/messages_no.json +1 -1
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +3 -3
- package/dist/esm/assets/locale/messages_sv.json +1 -1
- package/dist/esm/assets/locale/messages_th.json +1 -1
- package/dist/esm/assets/locale/messages_tr.json +4 -4
- package/dist/esm/assets/locale/messages_uk.json +1 -1
- package/dist/esm/assets/locale/messages_vi.json +5 -5
- package/dist/esm/assets/locale/messages_visuale2e.json +3 -1
- package/dist/esm/assets/locale/messages_zh.json +2 -2
- package/dist/esm/hooks/createCollection.js +2 -2
- package/dist/esm/hooks/createCollection.js.map +1 -1
- package/dist/esm/hooks/createCollectionConfig.js +7 -6
- package/dist/esm/hooks/createCollectionConfig.js.map +1 -1
- package/dist/esm/hooks/useAmbassadorCollection.js +9 -6
- package/dist/esm/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/esm/hooks/useOptimisticActions.js +5 -2
- package/dist/esm/hooks/useOptimisticActions.js.map +1 -1
- package/dist/esm/providers/CairoContainerOverridesContext.js +0 -5
- package/dist/esm/providers/CairoContainerOverridesContext.js.map +1 -1
- package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js +0 -5
- package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
- package/dist/esm/providers/CairoInitialPropsProvider.js +1 -1
- package/dist/esm/providers/CairoInitialPropsProvider.js.map +1 -1
- package/dist/esm/providers/CairoProvider/CairoProvider.js +4 -4
- package/dist/esm/providers/CairoProvider/CairoProvider.js.map +1 -1
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +5 -7
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/esm/state/BulkSelectState.js +9 -9
- package/dist/esm/state/BulkSelectState.js.map +1 -1
- package/dist/esm/state/CairoContainer.js +1 -7
- package/dist/esm/state/CairoContainer.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js +10 -58
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticExecutor.js +2 -2
- package/dist/esm/state/CollectionOptimisticExecutor.js.map +1 -1
- package/dist/esm/state/CollectionState.js +5 -19
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/CustomFilterState/CustomFilterState.js +4 -6
- package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/esm/state/ExportState.js +7 -7
- package/dist/esm/state/ExportState.js.map +1 -1
- package/dist/esm/state/RangeFilterState/RangeFilterState.js +8 -10
- package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/esm/state/SortState.js +4 -4
- package/dist/esm/state/SortState.js.map +1 -1
- package/dist/esm/state/StringFilterState/StringFilterState.js +5 -7
- package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/esm/state/buildCairoContainer.js +5 -4
- package/dist/esm/state/buildCairoContainer.js.map +1 -1
- package/dist/esm/state/index.js +0 -1
- package/dist/esm/state/index.js.map +1 -1
- package/dist/esm/testkit/CairoContainer.driver.js +1 -1
- package/dist/esm/testkit/CairoContainer.driver.js.map +1 -1
- package/dist/esm/testkit/ProductsCollectionState.driver.js +2 -2
- package/dist/esm/testkit/ProductsCollectionState.driver.js.map +1 -1
- package/dist/esm/util/assertKey.js +18 -1
- package/dist/esm/util/assertKey.js.map +1 -1
- package/dist/types/hooks/collectionConfig.d.ts +3 -7
- package/dist/types/hooks/collectionConfig.d.ts.map +1 -1
- package/dist/types/hooks/collectionConfigPartials.d.ts +6 -2
- package/dist/types/hooks/collectionConfigPartials.d.ts.map +1 -1
- package/dist/types/hooks/createCollection.d.ts.map +1 -1
- package/dist/types/hooks/createCollectionConfig.d.ts.map +1 -1
- package/dist/types/hooks/useAmbassadorCollection.d.ts +2 -2
- package/dist/types/hooks/useAmbassadorCollection.d.ts.map +1 -1
- package/dist/types/hooks/useOptimisticActions.d.ts.map +1 -1
- package/dist/types/model/cairoEssentials.d.ts +1 -14
- package/dist/types/model/cairoEssentials.d.ts.map +1 -1
- package/dist/types/model/commonTypes.d.ts +1 -1
- package/dist/types/model/commonTypes.d.ts.map +1 -1
- package/dist/types/model/computedQuery/computedQuery.d.ts +2 -2
- package/dist/types/model/computedQuery/computedQuery.d.ts.map +1 -1
- package/dist/types/model/filter.d.ts +0 -5
- package/dist/types/model/filter.d.ts.map +1 -1
- package/dist/types/providers/CairoContainerOverridesContext.d.ts +0 -5
- package/dist/types/providers/CairoContainerOverridesContext.d.ts.map +1 -1
- package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts +0 -5
- package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts.map +1 -1
- package/dist/types/providers/CairoInitialPropsProvider.d.ts +1 -1
- package/dist/types/providers/CairoInitialPropsProvider.d.ts.map +1 -1
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +0 -1
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
- package/dist/types/state/BulkSelectState.d.ts +1 -1
- package/dist/types/state/BulkSelectState.d.ts.map +1 -1
- package/dist/types/state/CairoContainer.d.ts +3 -19
- package/dist/types/state/CairoContainer.d.ts.map +1 -1
- package/dist/types/state/CollectionBIReporter.d.ts +1 -1
- package/dist/types/state/CollectionOptimisticActions.d.ts +3 -31
- package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +2 -32
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +0 -1
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
- package/dist/types/state/ExportState.d.ts +1 -1
- package/dist/types/state/ExportState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +0 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +1 -1
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -1
- package/dist/types/state/SortState.d.ts +5 -5
- package/dist/types/state/SortState.d.ts.map +1 -1
- package/dist/types/state/StringFilterState/StringFilterState.d.ts +0 -5
- package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
- package/dist/types/state/buildCairoContainer.d.ts +1 -1
- package/dist/types/state/buildCairoContainer.d.ts.map +1 -1
- package/dist/types/state/index.d.ts +0 -1
- package/dist/types/state/index.d.ts.map +1 -1
- package/dist/types/testkit/CairoContainer.driver.d.ts +3 -3
- package/dist/types/testkit/CairoContainer.driver.d.ts.map +1 -1
- package/dist/types/testkit/ProductsCollectionState.driver.d.ts +3 -3
- package/dist/types/testkit/ProductsCollectionState.driver.d.ts.map +1 -1
- package/dist/types/util/assertKey.d.ts +7 -1
- package/dist/types/util/assertKey.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/state/FiltersPanelModalCompatBridge.js +0 -33
- package/dist/cjs/state/FiltersPanelModalCompatBridge.js.map +0 -1
- package/dist/esm/state/FiltersPanelModalCompatBridge.js +0 -21
- package/dist/esm/state/FiltersPanelModalCompatBridge.js.map +0 -1
- package/dist/types/state/FiltersPanelModalCompatBridge.d.ts +0 -17
- package/dist/types/state/FiltersPanelModalCompatBridge.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_identity","_interopRequireDefault","require","_providers","_useCollection","_react","fetchData","config","
|
|
1
|
+
{"version":3,"names":["_identity","_interopRequireDefault","require","_providers","_useCollection","_react","fetchData","config","wixPatternsQuery","httpClient","ambassador","transformPlatformizedQuery","identity","platformizedQuery","defaultPlatformizedQuery","query","request","queryEntities","getOffsetConfig","queryName","fqdn","paginationMode","data","items","entities","total","metadata","getCursorConfig","cursor","cursors","next","useCreateAmbassadorCollection","createCollection","useCreateCollection","useWixPatternsContainer","collectionConfig","useAmbassadorCollection","createAmbassadorCollection","collection","useState","_wixPatternsQuery$sor","filter","sort","map","fieldName","order","toUpperCase","cursorPaging","limit"],"sources":["../../../src/hooks/useAmbassadorCollection.ts"],"sourcesContent":["import identity from 'lodash/identity';\nimport type { AutoCrudHttp } from '@wix/auto-crud';\nimport type { FiltersMap, OptionalFiltersMap } from '../model';\nimport type { CollectionState } from '../state';\nimport type { CollectionConfigWithConditionals } from './collectionConfigPartials';\nimport type { CursorQuery, OffsetQuery } from '.';\nimport { useWixPatternsContainer } from '../providers';\nimport { useCreateCollection } from './useCollection';\nimport { useState } from 'react';\nimport { WixPatternsContainerParams } from '../state';\n\nexport type TransformPlatformizedQuery = (\n platformizedQuery: PlatformizedQuery,\n wixPatternsQuery: CursorQuery,\n) => PlatformizedQuery | Promise<PlatformizedQuery>;\n\nexport type AmbassadorCollectionConfig<\n T,\n F extends FiltersMap = OptionalFiltersMap,\n> = Omit<\n CollectionConfigWithConditionals<T, F>,\n 'fetchData' | 'paginationMode' | 'queryName'\n> &\n AmbassadorCollectionConfigI<T>;\n\nexport interface AmbassadorCollectionConfigI<T> {\n /**\n * CRUD subpackage of a metro Ambassador package.\n */\n ambassador: Required<Pick<AutoCrudHttp<T>, 'queryEntities' | 'fqdn'>>;\n /**\n * A function to transform the cairo query to a PlatformizedQuery object (which will be used to fetch data from the server):\n * - `platformizedQuery`: PlatformizedQuery\n * - `wixPatternsQuery`: CursorQuery\n * The function should return a PlatformizedQuery instance or a promise of PlatformizedQuery\n */\n transformPlatformizedQuery?: TransformPlatformizedQuery;\n /**\n * The query name used for cache purposes. This should be a unique value per API endpoint.\n * @default ambassador.fqdn\n */\n queryName?: string;\n}\n\ntype PlatformizedFilter = {\n [filter: string]: any;\n};\n\ntype PlatformizedSorting = {\n fieldName: string;\n order: 'ASC' | 'DESC';\n};\n\ntype PlatformizedCursorPaging = {\n limit: number;\n cursor?: string | null;\n};\n\n// TODO: should be exposed by Ambassador\ntype PlatformizedQuery = {\n filter?: PlatformizedFilter;\n sort?: PlatformizedSorting[];\n cursorPaging?: PlatformizedCursorPaging;\n};\n\nexport type AmbassadorCollectionFactory = <\n T,\n F extends FiltersMap = OptionalFiltersMap,\n>(\n config: AmbassadorCollectionConfig<T, F>,\n) => CollectionState<T, F>;\n\nasync function fetchData<T, F extends FiltersMap = OptionalFiltersMap>(\n config: AmbassadorCollectionConfig<T, F>,\n wixPatternsQuery: CursorQuery<Partial<F>> | OffsetQuery<Partial<F>>,\n httpClient: WixPatternsContainerParams['httpClient'],\n) {\n const { ambassador } = config;\n const transformPlatformizedQuery =\n config.transformPlatformizedQuery || identity;\n const platformizedQuery = defaultPlatformizedQuery(wixPatternsQuery);\n const query = await transformPlatformizedQuery(\n platformizedQuery,\n wixPatternsQuery,\n );\n return httpClient.request(ambassador.queryEntities({ query }));\n}\n\nfunction getOffsetConfig<T, F extends FiltersMap = OptionalFiltersMap>(\n config: AmbassadorCollectionConfig<T, F>,\n httpClient: WixPatternsContainerParams['httpClient'],\n): CollectionConfigWithConditionals<T, F> {\n return {\n queryName: config.ambassador.fqdn,\n ...config,\n paginationMode: 'offset',\n fetchData: async (query: OffsetQuery<Partial<F>>) => {\n const { data } = await fetchData(config, query, httpClient);\n return {\n items: data.entities,\n total: data.metadata.total,\n };\n },\n };\n}\n\nfunction getCursorConfig<T, F extends FiltersMap = OptionalFiltersMap>(\n config: AmbassadorCollectionConfig<T, F>,\n httpClient: WixPatternsContainerParams['httpClient'],\n): CollectionConfigWithConditionals<T, F> {\n const { ambassador } = config;\n\n return {\n queryName: ambassador.fqdn,\n ...config,\n paginationMode: 'cursor',\n fetchData: async (query: CursorQuery<Partial<F>>) => {\n const { data } = await fetchData(config, query, httpClient);\n return {\n items: data.entities,\n cursor: data.metadata.cursors.next,\n total: data.metadata.total,\n };\n },\n };\n}\n\nexport function useCreateAmbassadorCollection(): AmbassadorCollectionFactory {\n const createCollection = useCreateCollection();\n const { httpClient } = useWixPatternsContainer();\n\n return <T, F extends FiltersMap = OptionalFiltersMap>(\n config: AmbassadorCollectionConfig<T, F>,\n ) => {\n const collectionConfig: CollectionConfigWithConditionals<T, F> =\n config.ambassador.queryEntities.paginationMode === 'offset'\n ? getOffsetConfig(config, httpClient)\n : getCursorConfig(config, httpClient);\n\n return createCollection(collectionConfig);\n };\n}\n\nexport function useAmbassadorCollection<\n T,\n F extends FiltersMap = OptionalFiltersMap,\n>(config: AmbassadorCollectionConfig<T, F>): CollectionState<T, F> {\n const createAmbassadorCollection = useCreateAmbassadorCollection();\n\n const [collection] = useState(() => createAmbassadorCollection<T, F>(config));\n\n return collection;\n}\n\nfunction defaultPlatformizedQuery(\n wixPatternsQuery: CursorQuery,\n): PlatformizedQuery {\n return {\n filter: {},\n sort: wixPatternsQuery.sort?.map((sort) => ({\n fieldName: sort.fieldName,\n order: sort.order.toUpperCase() as 'ASC' | 'DESC',\n })),\n cursorPaging: {\n cursor: wixPatternsQuery.cursor,\n limit: wixPatternsQuery.limit,\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var _state = require("../state");
|
|
|
8
8
|
var _providers = require("../providers");
|
|
9
9
|
function useCreateOptimisticActions() {
|
|
10
10
|
const container = (0, _providers.useWixPatternsContainer)();
|
|
11
|
-
return (0, _react.useCallback)((collection, params) => new _state.CollectionOptimisticActions({
|
|
11
|
+
return (0, _react.useCallback)((collection, params) => collection._optimisticActions ?? new _state.CollectionOptimisticActions({
|
|
12
12
|
container,
|
|
13
13
|
collection,
|
|
14
14
|
...params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_state","_providers","useCreateOptimisticActions","container","useWixPatternsContainer","useCallback","collection","params","CollectionOptimisticActions","useOptimisticActions","createOptimisticActions","optimisticActions","useState","useEffect","init"],"sources":["../../../src/hooks/useOptimisticActions.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport {\n CollectionOptimisticActions,\n CollectionOptimisticActionsBaseParams,\n CollectionState,\n} from '../state';\nimport { FiltersMap } from '../model';\nimport { useWixPatternsContainer } from '../providers';\n\nexport function useCreateOptimisticActions() {\n const container = useWixPatternsContainer();\n\n return useCallback(\n <T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n ) =>\n new CollectionOptimisticActions({\n container,\n collection,\n ...params,\n }),\n [],\n );\n}\n\nexport function useOptimisticActions<T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n) {\n const createOptimisticActions = useCreateOptimisticActions();\n\n const [optimisticActions] = useState(() =>\n createOptimisticActions(collection, params),\n );\n\n useEffect(() => optimisticActions.init(), []);\n\n return optimisticActions;\n}\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,UAAA,GAAAF,OAAA;AAEO,SAASG,0BAA0BA,CAAA,EAAG;EAC3C,MAAMC,SAAS,GAAG,IAAAC,kCAAuB,EAAC,CAAC;EAE3C,OAAO,IAAAC,kBAAW,EAChB,CACEC,UAAiC,EACjCC,MAA6D,
|
|
1
|
+
{"version":3,"names":["_react","require","_state","_providers","useCreateOptimisticActions","container","useWixPatternsContainer","useCallback","collection","params","_optimisticActions","CollectionOptimisticActions","useOptimisticActions","createOptimisticActions","optimisticActions","useState","useEffect","init"],"sources":["../../../src/hooks/useOptimisticActions.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport {\n CollectionOptimisticActions,\n CollectionOptimisticActionsBaseParams,\n CollectionState,\n} from '../state';\nimport { FiltersMap } from '../model';\nimport { useWixPatternsContainer } from '../providers';\n\nexport function useCreateOptimisticActions() {\n const container = useWixPatternsContainer();\n\n return useCallback(\n <T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n ) =>\n collection._optimisticActions ??\n new CollectionOptimisticActions({\n container,\n collection,\n ...params,\n }),\n [],\n );\n}\n\nexport function useOptimisticActions<T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n) {\n const createOptimisticActions = useCreateOptimisticActions();\n\n const [optimisticActions] = useState(() =>\n createOptimisticActions(collection, params),\n );\n\n useEffect(() => optimisticActions.init(), []);\n\n return optimisticActions;\n}\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,UAAA,GAAAF,OAAA;AAEO,SAASG,0BAA0BA,CAAA,EAAG;EAC3C,MAAMC,SAAS,GAAG,IAAAC,kCAAuB,EAAC,CAAC;EAE3C,OAAO,IAAAC,kBAAW,EAChB,CACEC,UAAiC,EACjCC,MAA6D,KAE7DD,UAAU,CAACE,kBAAkB,IAC7B,IAAIC,kCAA2B,CAAC;IAC9BN,SAAS;IACTG,UAAU;IACV,GAAGC;EACL,CAAC,CAAC,EACJ,EACF,CAAC;AACH;AAEO,SAASG,oBAAoBA,CAClCJ,UAAiC,EACjCC,MAA6D,EAC7D;EACA,MAAMI,uBAAuB,GAAGT,0BAA0B,CAAC,CAAC;EAE5D,MAAM,CAACU,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAC,MACnCF,uBAAuB,CAACL,UAAU,EAAEC,MAAM,CAC5C,CAAC;EAED,IAAAO,gBAAS,EAAC,MAAMF,iBAAiB,CAACG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;EAE7C,OAAOH,iBAAiB;AAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/model/cairoEssentials.ts"],"sourcesContent":["import type { Essentials, EssentialsOptions } from '@wix/fe-essentials/core';\nimport type { LogParams, ReportProps } from '@wix/fe-essentials/bi';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ShowToast } from './toast';\nimport type {\n Environment,\n ErrorMonitor,\n Experiments,\n MonitorLogger,\n OnlineManager,\n} from '../services';\nimport type { History } from 'history';\nimport type { QueryCache } from 'react-query/core';\nimport type { FunctionComponent } from 'react';\nimport { DataCapsule } from './dataCapsule';\nimport { HttpClient } from './httpClient';\n\nexport type
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/model/cairoEssentials.ts"],"sourcesContent":["import type { Essentials, EssentialsOptions } from '@wix/fe-essentials/core';\nimport type { LogParams, ReportProps } from '@wix/fe-essentials/bi';\nimport type { Trans, useTranslation } from '@wix/fe-essentials/react';\nimport type { ShowToast } from './toast';\nimport type {\n Environment,\n ErrorMonitor,\n Experiments,\n MonitorLogger,\n OnlineManager,\n} from '../services';\nimport type { History } from 'history';\nimport type { QueryCache } from 'react-query/core';\nimport type { FunctionComponent } from 'react';\nimport { DataCapsule } from './dataCapsule';\nimport { HttpClient } from './httpClient';\n\nexport type OnSidePanelOpen = (listener: () => void) => {\n remove(): void;\n};\n\nexport type CloseSidePanel = () => unknown;\n\nexport interface CairoBILoggerFactory {\n updateDefaults(params: LogParams): this;\n logger(): {\n report(reportProps: ReportProps): Promise<any>;\n };\n}\n\nexport type OnNavigationPause = () => { resume(): void };\nexport type OnNavigationCallback = (pause: OnNavigationPause) => void;\nexport type OnNavigation = (callback: OnNavigationCallback) => {\n remove(): void;\n};\n\nexport type BeforeUnloadResponse = {\n remove: () => void;\n};\nexport type OnBeforeUnload = (\n callback: (event: Event) => void,\n) => BeforeUnloadResponse;\n\nexport interface HostContainerExtension {\n appId?: string;\n componentId: string;\n title?: string;\n menuItem?: {\n IconComponent?: FunctionComponent;\n structuredAction: (params?: Record<string, any>) => unknown;\n };\n Extension?: React.ComponentType;\n}\nexport type GetExtensions = () =>\n | HostContainerExtension[]\n | Promise<HostContainerExtension[]>;\ninterface HostContainer {\n getExtensions: GetExtensions;\n}\n\nexport type GetHostContainer = (hostContainerId: string) => HostContainer;\n\ntype CreateEssentials = (options: EssentialsOptions) => {\n i18n: Essentials['i18n'];\n dataCapsule: Essentials['dataCapsule'];\n biLoggerFactory?: () => CairoBILoggerFactory;\n errorMonitor: ErrorMonitor;\n fedopsLogger?: MonitorLogger;\n experiments?: Experiments;\n};\nexport type CreateComponentSettings = (container: {\n httpClient: HttpClient;\n queryCache: QueryCache;\n environment: Environment;\n createEssentials: CreateEssentials;\n}) => (options: { namespace: string }) => DataCapsule;\n\nexport interface WixPatternsEssentials {\n httpClient: HttpClient;\n /** A `ErrorMonitor` instance `@wix/fe-essentials/error-monitor` */\n errorMonitor: ErrorMonitor;\n /** A `Experiments` instance `@wix/fe-essentials/experiments` */\n experiments: Experiments;\n /**\n * A function that returns the shape `{ i18n }` - should be compatible with `{createEssentials} from '@wix/fe-essentials'` */\n createEssentials: CreateEssentials;\n /** A `DataCapsule` to store component-level settings such as `Views` */\n createComponentSettings?: CreateComponentSettings;\n /** The user's environment\n * - `language` - preferable language for the user\n * - `artifactId` - App level identifier, usually the artifact ID\n * - `componentId` - Component/page level identifier (Optional)\n * - `componentName` - Readable component/page name (Optional)\n */\n environment: Pick<Environment, 'language'> &\n Partial<Omit<Environment, 'language'>> & { uiLibVersion?: string };\n /** `useTranslation` hook from `react-i18next` or `@wix/fe-essentials/react` */\n useTranslation: typeof useTranslation;\n /** `Trans` component from `react-i18next` or `@wix/fe-essentials/react */\n Trans: typeof Trans;\n user: {\n permissions: string[];\n };\n /** `useExperiments` hook from `@wix/yoshi-flow-bm` or `@wix/fe-essentials/react` */\n useExperiments: () => {\n ready: boolean;\n experiments: {\n enabled: (key: string) => boolean;\n };\n };\n /** A function that shows a global toast. For BM usage, it should be `showToast` from `business-manager-api` */\n showToast?: ShowToast;\n /** A function to perform a navigation to a given pageId */\n navigateTo?: (params: {\n pageId: string;\n appState?: string;\n referrer?: string;\n }) => void;\n useAppLoaded?: () => void;\n onSidePanelOpen?: OnSidePanelOpen;\n closeSidePanel?: CloseSidePanel;\n /** Custom [history](https://github.com/remix-run/history/tree/v5.3.0/packages/history) instance to sync custom consumer navigations with Cairo navigations */\n history?: History;\n /** An optional query cache instance for controlling the cache from other modules */\n queryCache?: QueryCache;\n /** A function that interrupts a navigation to another app inside wix platforms */\n onNavigation?: OnNavigation;\n getHostContainer?: GetHostContainer;\n onlineManager?: OnlineManager;\n /**\n * Deals with dirty state by setting up a listener that triggers a confirmation dialog when a user attempts to leave a page. The event listener is removed upon component unmount.\n * @param callback - called on navigation with an event object. Use event.preventDefault() within the callback to display the dialog.\n * @returns { remove: () => void } - object that includes a remove method. You can use this method to remove the listener whenever necessary.\n */\n onBeforeUnload?: OnBeforeUnload;\n}\n\nexport interface WixPatternsEssentialsOverrides\n extends Omit<Partial<WixPatternsEssentials>, 'environment'> {\n environment: Partial<WixPatternsEssentials['environment']>;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/model/commonTypes.ts"],"sourcesContent":["export type
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/model/commonTypes.ts"],"sourcesContent":["export type SortOrder = 'asc' | 'desc';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/model/computedQuery/computedQuery.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/model/computedQuery/computedQuery.ts"],"sourcesContent":["import { SortOrder } from '../commonTypes';\nimport { Filter, FiltersMap, OptionalFiltersMap } from '../filter';\n\nexport type ExtractFilterValue<T> = T extends Filter<infer U> ? U : undefined;\n\nexport type RawFilters<F extends FiltersMap> = Partial<{\n [P in keyof F]: ExtractFilterValue<F[P]>;\n}>;\n\nexport type FiltersKey<F extends FiltersMap> = Partial<{\n [P in keyof F]: string[] | undefined | null;\n}>;\n\nexport type AllFilters<F extends FiltersMap> = F & { search: Filter<string> };\n\nexport type FiltersValues<F extends FiltersMap> = {\n [P in keyof F]: {\n value?: ExtractFilterValue<F[P]>;\n };\n};\n\nexport interface Sort {\n field: string;\n direction: SortOrder;\n}\n\nexport interface ComputedQuery<F extends FiltersMap = OptionalFiltersMap> {\n /**\n * Number of items to fetch for each page\n */\n limit: number;\n /**\n * The index of the item to start fetching items from.<br>\n * Relevant for APIs that support offset pagination.<br>\n * Not available on `CursorQuery`\n */\n offset: number;\n page: number;\n /**\n * Current search term (defaults to `undefined` for empty search)\n */\n search?: string;\n /**\n * Current search term (defaults to `''` for empty search)\n */\n rawSearch: string;\n /**\n * The `cursor` returned from the server, to be sent back to it in the next call.<br>\n * Relevant for APIs that support cursor pagination.<br>\n * Not available on `OffsetQuery`\n */\n cursor?: string | null;\n /**\n * Current state of the filters. Each key holds the value of the filter, according to its type, defined in [CollectionConfig](./?path=/story/common-hooks--usecollection).\n */\n filters: RawFilters<F>;\n /**\n * Same as `filters` but defaults to `undefined` for empty filter values\n */\n rawFilters: RawFilters<F>;\n /**\n * Whether at least one filter is not empty\n */\n hasActiveFilters: boolean;\n /**\n * Whether at least one filter is not empty, not including tabs\n */\n hasNonPersistentActiveFilters: boolean;\n /**\n * Current sort applied to the collection.\n */\n sort?: { fieldName: string; order: 'asc' | 'desc' }[];\n\n /**\n * @deprecated Use `fields` instead\n */\n columns?: string[];\n /**\n * Array of projected fields. A list of specific field names to fetch. Use this to optimize your server query to load only needed columns. Note that a mapping between client-side columns to server-fields is usually required.\n * Use `refreshOnColumnsChange` of [useCollection](./?path=/story/common-hooks--usecollection) to control whether the collection should be refreshed when this value changes.\n */\n fields?: string[];\n}\n\nexport interface ComputedQueryFull<F extends FiltersMap = OptionalFiltersMap>\n extends ComputedQuery<F> {\n filtersKey: FiltersKey<F>;\n nonPersistentFiltersKey: FiltersKey<F>;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/model/filter.ts"],"sourcesContent":["import { TypedEmitter } from '../util';\n\n/*\nchange - whenever we want to notify that the value was changed, for additional side effects, i.e BI events. For example, when initializing the value, we don't want to emit this event.\nrefresh - the collection should be refreshed as a result of this change\nscheduleRefresh - the collection should schedule a refresh as a result of this change\n */\ntype FilterEvent = 'change' | 'refresh' | 'scheduleRefresh' | 'beforeRefresh';\n\nexport interface ChangeValueOptions {\n emitEvents?: FilterEvent[];\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\nexport type FilterItem<T> = T extends (infer V)[] ? V : T;\n\nexport interface FilterEventOptions {\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\ninterface FilterEventsSchema {\n refresh: (opt: FilterEventOptions | undefined) => unknown;\n beforeRefresh: (opt: FilterEventOptions | undefined) => unknown;\n change: (opt?: FilterEventOptions) => unknown;\n scheduleRefresh: (opt?: FilterEventOptions) => unknown;\n}\n\nexport type FilterEvents = TypedEmitter<FilterEventsSchema>;\n\nexport interface Filter<T> {\n events: TypedEmitter<FilterEventsSchema>;\n name: string;\n persistent?: boolean;\n readonly value: T;\n readonly toArray: FilterItem<T>[];\n readonly isEmpty: boolean;\n readonly toQueryString: string;\n readonly decode: (value: unknown) => T;\n readonly encode: (value: T) => unknown;\n readonly size: number;\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n readonly
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/model/filter.ts"],"sourcesContent":["import { TypedEmitter } from '../util';\n\n/*\nchange - whenever we want to notify that the value was changed, for additional side effects, i.e BI events. For example, when initializing the value, we don't want to emit this event.\nrefresh - the collection should be refreshed as a result of this change\nscheduleRefresh - the collection should schedule a refresh as a result of this change\n */\ntype FilterEvent = 'change' | 'refresh' | 'scheduleRefresh' | 'beforeRefresh';\n\nexport interface ChangeValueOptions {\n emitEvents?: FilterEvent[];\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\nexport type FilterItem<T> = T extends (infer V)[] ? V : T;\n\nexport interface FilterEventOptions {\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\ninterface FilterEventsSchema {\n refresh: (opt: FilterEventOptions | undefined) => unknown;\n beforeRefresh: (opt: FilterEventOptions | undefined) => unknown;\n change: (opt?: FilterEventOptions) => unknown;\n scheduleRefresh: (opt?: FilterEventOptions) => unknown;\n}\n\nexport type FilterEvents = TypedEmitter<FilterEventsSchema>;\n\nexport interface Filter<T> {\n events: TypedEmitter<FilterEventsSchema>;\n name: string;\n persistent?: boolean;\n readonly value: T;\n readonly toArray: FilterItem<T>[];\n readonly isEmpty: boolean;\n readonly toQueryString: string;\n readonly decode: (value: unknown) => T;\n readonly encode: (value: T) => unknown;\n readonly size: number;\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n readonly equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n\n applyFromQueryString(str: string): void;\n setValue(value: T, options?: ChangeValueOptions): void;\n changeValue(value: T, options?: ChangeValueOptions): void;\n refresh(value: T, options?: ChangeValueOptions): void;\n scheduleRefresh(value: T): void;\n reset(options?: ChangeValueOptions): void;\n remove(items: FilterItem<T>[], options?: ChangeValueOptions): void;\n clone(...args: any[]): Filter<T>;\n hasDiff(items: T): boolean;\n}\n\nexport interface FilterStateBaseParams<T> {\n name?: string;\n /**\n * Marks the filter as a \"context\" or \"scope\" filter. This makes the filter not be visible in the sub-toolbar tag list, not saved in views, not counted as \"X filters applied\".\n * @external\n */\n persistent?: boolean;\n /**\n * The value to initialize the filter with (Optional)\n * @external\n */\n initialValue?: T;\n\n /**\n * A callback function that accepts an item and returns a unique ID of it. typically `item.id`.\n * @external\n */\n itemKey: (item: FilterItem<T>) => string;\n /**\n * A callback function that accepts an item and returns the item name which is used in many messages through cairo\n * @external\n */\n itemName: (item: FilterItem<T>) => string;\n\n /**\n * A function which accepts 2 items and returns true if they are equal\n * @external\n */\n equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n}\n\nexport type FiltersMap = { [key: string]: Filter<any> | undefined };\nexport type OptionalFiltersMap = { [key: string]: undefined };\n"],"mappings":""}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.useWixPatternsContainerOverrides = exports.WixPatternsContainerOverridesProvider = exports.WixPatternsContainerOverridesContext = exports.WixPatternsContainerOverridesConsumer =
|
|
4
|
+
exports.useWixPatternsContainerOverrides = exports.WixPatternsContainerOverridesProvider = exports.WixPatternsContainerOverridesContext = exports.WixPatternsContainerOverridesConsumer = void 0;
|
|
5
5
|
var _react = require("react");
|
|
6
6
|
const Context = /*#__PURE__*/(0, _react.createContext)({});
|
|
7
7
|
const WixPatternsContainerOverridesContext = exports.WixPatternsContainerOverridesContext = Context;
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated
|
|
10
|
-
* use `WixPatternsContainerOverridesProvider`
|
|
11
|
-
*/
|
|
12
|
-
const CairoContainerOverridesProvider = exports.CairoContainerOverridesProvider = Context.Provider;
|
|
13
8
|
const WixPatternsContainerOverridesProvider = exports.WixPatternsContainerOverridesProvider = Context.Provider;
|
|
14
9
|
const WixPatternsContainerOverridesConsumer = exports.WixPatternsContainerOverridesConsumer = Context.Consumer;
|
|
15
10
|
const useWixPatternsContainerOverrides = () => (0, _react.useContext)(Context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","Context","createContext","WixPatternsContainerOverridesContext","exports","
|
|
1
|
+
{"version":3,"names":["_react","require","Context","createContext","WixPatternsContainerOverridesContext","exports","WixPatternsContainerOverridesProvider","Provider","WixPatternsContainerOverridesConsumer","Consumer","useWixPatternsContainerOverrides","useContext"],"sources":["../../../src/providers/CairoContainerOverridesContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { WixPatternsContainerParams } from '../state';\n\nconst Context = createContext<Partial<WixPatternsContainerParams>>({});\n\nexport const WixPatternsContainerOverridesContext = Context;\nexport const WixPatternsContainerOverridesProvider = Context.Provider;\nexport const WixPatternsContainerOverridesConsumer = Context.Consumer;\nexport const useWixPatternsContainerOverrides = () => useContext(Context);\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,MAAMC,OAAO,gBAAG,IAAAC,oBAAa,EAAsC,CAAC,CAAC,CAAC;AAE/D,MAAMC,oCAAoC,GAAAC,OAAA,CAAAD,oCAAA,GAAGF,OAAO;AACpD,MAAMI,qCAAqC,GAAAD,OAAA,CAAAC,qCAAA,GAAGJ,OAAO,CAACK,QAAQ;AAC9D,MAAMC,qCAAqC,GAAAH,OAAA,CAAAG,qCAAA,GAAGN,OAAO,CAACO,QAAQ;AAC9D,MAAMC,gCAAgC,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACT,OAAO,CAAC;AAACG,OAAA,CAAAK,gCAAA,GAAAA,gCAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.useWixPatternsContainer = exports.
|
|
4
|
+
exports.useWixPatternsContainer = exports.WixPatternsContainerProvider = exports.WixPatternsContainerContext = exports.WixPatternsContainerConsumer = void 0;
|
|
5
5
|
var _createContext = require("../createContext");
|
|
6
6
|
const {
|
|
7
7
|
useContext,
|
|
@@ -12,10 +12,5 @@ const {
|
|
|
12
12
|
const WixPatternsContainerProvider = exports.WixPatternsContainerProvider = Provider;
|
|
13
13
|
const WixPatternsContainerConsumer = exports.WixPatternsContainerConsumer = Consumer;
|
|
14
14
|
const WixPatternsContainerContext = exports.WixPatternsContainerContext = Context;
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated
|
|
17
|
-
* use `useWixPatternsContainer`
|
|
18
|
-
*/
|
|
19
|
-
const useCairoContainer = exports.useCairoContainer = useContext;
|
|
20
15
|
const useWixPatternsContainer = exports.useWixPatternsContainer = useContext;
|
|
21
16
|
//# sourceMappingURL=CairoContainerProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createContext","require","useContext","Provider","Context","Consumer","createContext","WixPatternsContainerProvider","exports","WixPatternsContainerConsumer","WixPatternsContainerContext","
|
|
1
|
+
{"version":3,"names":["_createContext","require","useContext","Provider","Context","Consumer","createContext","WixPatternsContainerProvider","exports","WixPatternsContainerConsumer","WixPatternsContainerContext","useWixPatternsContainer"],"sources":["../../../../src/providers/CairoContainerProvider/CairoContainerProvider.ts"],"sourcesContent":["import { WixPatternsContainer } from '../../state';\nimport { createContext } from '../createContext';\n\nconst { useContext, Provider, Context, Consumer } =\n createContext<WixPatternsContainer>('WixPatternsContainerProvider');\n\nexport const WixPatternsContainerProvider = Provider;\nexport const WixPatternsContainerConsumer = Consumer;\nexport const WixPatternsContainerContext = Context;\nexport const useWixPatternsContainer = useContext;\n"],"mappings":";;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC,UAAU;EAAEC,QAAQ;EAAEC,OAAO;EAAEC;AAAS,CAAC,GAC/C,IAAAC,4BAAa,EAAuB,8BAA8B,CAAC;AAE9D,MAAMC,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAGJ,QAAQ;AAC7C,MAAMM,4BAA4B,GAAAD,OAAA,CAAAC,4BAAA,GAAGJ,QAAQ;AAC7C,MAAMK,2BAA2B,GAAAF,OAAA,CAAAE,2BAAA,GAAGN,OAAO;AAC3C,MAAMO,uBAAuB,GAAAH,OAAA,CAAAG,uBAAA,GAAGT,UAAU"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
4
|
+
exports.useWixPatternsInitialProps = exports.WixPatternsInitialPropsProvider = void 0;
|
|
5
5
|
var _react = require("react");
|
|
6
6
|
const Context = /*#__PURE__*/(0, _react.createContext)({});
|
|
7
7
|
const WixPatternsInitialPropsProvider = exports.WixPatternsInitialPropsProvider = Context.Provider;
|
|
8
|
-
const
|
|
9
|
-
exports.
|
|
8
|
+
const useWixPatternsInitialProps = () => (0, _react.useContext)(Context);
|
|
9
|
+
exports.useWixPatternsInitialProps = useWixPatternsInitialProps;
|
|
10
10
|
//# sourceMappingURL=CairoInitialPropsProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","Context","createContext","WixPatternsInitialPropsProvider","exports","Provider","
|
|
1
|
+
{"version":3,"names":["_react","require","Context","createContext","WixPatternsInitialPropsProvider","exports","Provider","useWixPatternsInitialProps","useContext"],"sources":["../../../src/providers/CairoInitialPropsProvider.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { WixPatternsInitialProps } from '../model';\n\nconst Context = createContext<WixPatternsInitialProps>({});\nexport const WixPatternsInitialPropsProvider = Context.Provider;\nexport const useWixPatternsInitialProps = () => useContext(Context);\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,MAAMC,OAAO,gBAAG,IAAAC,oBAAa,EAA0B,CAAC,CAAC,CAAC;AACnD,MAAMC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,GAAGF,OAAO,CAACI,QAAQ;AACxD,MAAMC,0BAA0B,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACN,OAAO,CAAC;AAACG,OAAA,CAAAE,0BAAA,GAAAA,0BAAA"}
|
|
@@ -16,8 +16,8 @@ function CairoProvider({
|
|
|
16
16
|
localCache = true
|
|
17
17
|
}) {
|
|
18
18
|
const containerOverrides = (0, _CairoContainerOverridesContext.useWixPatternsContainerOverrides)();
|
|
19
|
-
const initialProps = (0, _CairoInitialPropsProvider.
|
|
20
|
-
const [container] = (0, _react.useState)(() => (0, _state.
|
|
19
|
+
const initialProps = (0, _CairoInitialPropsProvider.useWixPatternsInitialProps)();
|
|
20
|
+
const [container] = (0, _react.useState)(() => (0, _state.buildWixPatternsContainer)(value, {
|
|
21
21
|
containerOverrides,
|
|
22
22
|
initialProps,
|
|
23
23
|
localCache
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_CairoInitialPropsProvider","_CairoContainerProvider","_CairoContainerOverridesContext","_state","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CairoProvider","value","children","localCache","containerOverrides","useWixPatternsContainerOverrides","initialProps","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_CairoInitialPropsProvider","_CairoContainerProvider","_CairoContainerOverridesContext","_state","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","CairoProvider","value","children","localCache","containerOverrides","useWixPatternsContainerOverrides","initialProps","useWixPatternsInitialProps","container","useState","buildWixPatternsContainer","initialFetch","useEffect","init","createElement","WixPatternsContainerProvider","__self","__source","fileName","lineNumber","columnNumber"],"sources":["../../../../src/providers/CairoProvider/CairoProvider.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useState } from 'react';\nimport { useWixPatternsInitialProps } from '../CairoInitialPropsProvider';\nimport { WixPatternsContainerProvider } from '../CairoContainerProvider';\nimport { WixPatternsEssentials } from '../../model';\nimport { useWixPatternsContainerOverrides } from '../CairoContainerOverridesContext';\nimport { buildWixPatternsContainer } from '../../state';\n\nexport interface CairoProviderProps {\n value: WixPatternsEssentials;\n children?: ReactNode;\n localCache?: boolean;\n}\n\nexport function CairoProvider({\n value,\n children,\n localCache = true,\n}: CairoProviderProps) {\n const containerOverrides = useWixPatternsContainerOverrides();\n const initialProps = useWixPatternsInitialProps();\n\n const [container] = useState(() =>\n buildWixPatternsContainer(value, {\n containerOverrides,\n initialProps,\n localCache,\n }),\n );\n\n useState(() => {\n container.initialFetch();\n });\n\n useEffect(() => {\n return container.init();\n }, []);\n\n return (\n <WixPatternsContainerProvider value={container}>\n {children}\n </WixPatternsContainerProvider>\n );\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAEA,IAAAG,+BAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAwD,IAAAK,YAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAQjD,SAASY,aAAaA,CAAC;EAC5BC,KAAK;EACLC,QAAQ;EACRC,UAAU,GAAG;AACK,CAAC,EAAE;EACrB,MAAMC,kBAAkB,GAAG,IAAAC,gEAAgC,EAAC,CAAC;EAC7D,MAAMC,YAAY,GAAG,IAAAC,qDAA0B,EAAC,CAAC;EAEjD,MAAM,CAACC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAC3B,IAAAC,gCAAyB,EAACT,KAAK,EAAE;IAC/BG,kBAAkB;IAClBE,YAAY;IACZH;EACF,CAAC,CACH,CAAC;EAED,IAAAM,eAAQ,EAAC,MAAM;IACbD,SAAS,CAACG,YAAY,CAAC,CAAC;EAC1B,CAAC,CAAC;EAEF,IAAAC,gBAAS,EAAC,MAAM;IACd,OAAOJ,SAAS,CAACK,IAAI,CAAC,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE1C,MAAA,CAAAc,OAAA,CAAA6B,aAAA,CAACvC,uBAAA,CAAAwC,4BAA4B;IAACd,KAAK,EAAEO,SAAU;IAAAQ,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAxC,YAAA;MAAAyC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC5ClB,QAC2B,CAAC;AAEnC"}
|
|
@@ -16,7 +16,6 @@ class ArrayFilterState {
|
|
|
16
16
|
(0, _defineProperty2.default)(this, "simplify", void 0);
|
|
17
17
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
18
18
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
19
|
-
(0, _defineProperty2.default)(this, "entityName", void 0);
|
|
20
19
|
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
21
20
|
(0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
|
|
22
21
|
(0, _defineProperty2.default)(this, "matches", void 0);
|
|
@@ -27,7 +26,6 @@ class ArrayFilterState {
|
|
|
27
26
|
this.simplify = params.simplify ?? (value => value);
|
|
28
27
|
this.itemKey = params.itemKey;
|
|
29
28
|
this.itemName = params.itemName;
|
|
30
|
-
this.entityName = params.entityName ?? (() => '');
|
|
31
29
|
this._value = params.initialValue ?? this.defaultValue;
|
|
32
30
|
this.matches = params.matches ?? ((item, value) => {
|
|
33
31
|
const {
|
|
@@ -132,7 +130,6 @@ class ArrayFilterState {
|
|
|
132
130
|
}
|
|
133
131
|
clone(params) {
|
|
134
132
|
const {
|
|
135
|
-
entityName,
|
|
136
133
|
itemName,
|
|
137
134
|
itemKey,
|
|
138
135
|
simplify,
|
|
@@ -144,7 +141,6 @@ class ArrayFilterState {
|
|
|
144
141
|
name
|
|
145
142
|
} = this;
|
|
146
143
|
return new ArrayFilterState({
|
|
147
|
-
entityName,
|
|
148
144
|
itemName,
|
|
149
145
|
itemKey,
|
|
150
146
|
simplify,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","entityName","_value","initialValue","matches","item","key","length","some","v","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n * @external\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n\n readonly equals?: (item1: T, item2: T) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: T, item2: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","_value","initialValue","matches","item","key","length","some","v","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n * @external\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n\n readonly equals?: (item1: T, item2: T) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly equals?: (item1: T, item2: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var _snapshot = require("./snapshot");
|
|
|
10
10
|
var _util = require("../util");
|
|
11
11
|
var _events = require("events");
|
|
12
12
|
class BulkSelectState {
|
|
13
|
-
get
|
|
13
|
+
get allSelected() {
|
|
14
14
|
return this.select.defaultStatus.isChecked;
|
|
15
15
|
}
|
|
16
16
|
get hasUnchecked() {
|
|
@@ -32,12 +32,12 @@ class BulkSelectState {
|
|
|
32
32
|
});
|
|
33
33
|
(0, _defineProperty2.default)(this, "toggleIsSelectAll", (0, _mobx.action)(() => {
|
|
34
34
|
const {
|
|
35
|
-
|
|
35
|
+
allSelected,
|
|
36
36
|
select: {
|
|
37
37
|
isEmptyEnabledItems
|
|
38
38
|
}
|
|
39
39
|
} = this;
|
|
40
|
-
if (
|
|
40
|
+
if (allSelected || !isEmptyEnabledItems) {
|
|
41
41
|
this.deselectAll();
|
|
42
42
|
} else {
|
|
43
43
|
this.selectAll();
|
|
@@ -51,11 +51,11 @@ class BulkSelectState {
|
|
|
51
51
|
keyGetter: item => item.key
|
|
52
52
|
});
|
|
53
53
|
this.totalSnapshot = new _snapshot.Snapshot({
|
|
54
|
-
expression: () => this.
|
|
54
|
+
expression: () => this.allSelected,
|
|
55
55
|
effect: () => this.collection.result.total
|
|
56
56
|
});
|
|
57
57
|
(0, _mobx.makeObservable)(this, {
|
|
58
|
-
|
|
58
|
+
allSelected: _mobx.computed,
|
|
59
59
|
disableAutoSelectAllCount: _mobx.observable.ref,
|
|
60
60
|
selectAll: _mobx.action,
|
|
61
61
|
selectOne: _mobx.action,
|
|
@@ -201,7 +201,7 @@ class BulkSelectState {
|
|
|
201
201
|
}), (0, _mobx.reaction)(() => this.collection.result.keyedItems, keyedItems => {
|
|
202
202
|
const {
|
|
203
203
|
select,
|
|
204
|
-
|
|
204
|
+
allSelected,
|
|
205
205
|
disableAutoSelectAllCount,
|
|
206
206
|
collection: {
|
|
207
207
|
result: {
|
|
@@ -209,7 +209,7 @@ class BulkSelectState {
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
} = this;
|
|
212
|
-
if (
|
|
212
|
+
if (allSelected && !disableAutoSelectAllCount) {
|
|
213
213
|
select.syncValues(keyedItems);
|
|
214
214
|
} else {
|
|
215
215
|
select.syncValues(select.selectedKeys.map(key => _keyedItemsMap.get(key)).filter(e => e != null));
|
|
@@ -237,16 +237,18 @@ class BulkSelectState {
|
|
|
237
237
|
}
|
|
238
238
|
get selectedCountOrTotal() {
|
|
239
239
|
const {
|
|
240
|
-
|
|
240
|
+
allSelected,
|
|
241
241
|
disableAutoSelectAllCount,
|
|
242
242
|
selectedIds,
|
|
243
243
|
useNewSelectAllLogic,
|
|
244
244
|
uncheckedInCurrentCollection,
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
collection: {
|
|
246
|
+
result: {
|
|
247
|
+
total
|
|
248
|
+
}
|
|
247
249
|
}
|
|
248
250
|
} = this;
|
|
249
|
-
if (!
|
|
251
|
+
if (!allSelected || disableAutoSelectAllCount) {
|
|
250
252
|
return selectedIds.length;
|
|
251
253
|
}
|
|
252
254
|
if (useNewSelectAllLogic) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_SelectState","require","_mobx","_snapshot","_util","_events","BulkSelectState","isSelectAll","select","defaultStatus","isChecked","hasUnchecked","uncheckedValues","length","constructor","params","_defineProperty2","default","EventEmitter","events","emit","action","isEmptyEnabledItems","deselectAll","selectAll","collection","scrollToTop","disableAutoSelectAllCount","useNewSelectAllLogic","SelectState","keyGetter","item","key","totalSnapshot","Snapshot","expression","effect","result","total","makeObservable","computed","observable","ref","selectOne","selectOneItem","deselectOne","deselectOneItem","resetToDefaults","bound","selectedIds","uncheckedIds","selectedValues","selectedKeyedItems","uncheckedInCurrentCollection","selectedCountOrTotal","checkedSet","indeterminateSet","getCollectionItem","_keyedItemsMap","get","selectedKeys","toArray","filter","status","map","value","selectedCount","Set","isIndeterminate","final","keyedItems","finalizeMany","start","startAll","set","keyedItem","delete","clear","init","disposers","addEventListener","emitter","forceUpdate","reaction","syncValues","e","forEach","disposer","id","isEmpty","itemKey","has","toggle","exports"],"sources":["../../../src/state/BulkSelectState.ts"],"sourcesContent":["import { SelectState } from './SelectState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Snapshot } from './snapshot';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { EventEmitter } from 'events';\nimport { KeyedItem } from '../model';\n\nexport interface BulkSelectKeyedItem<T> {\n item: T;\n key: string;\n}\n\nexport interface BulkSelectStateParams<T> {\n collection: CollectionState<T, any>;\n disableAutoSelectAllCount?: boolean;\n maxSelection?: number;\n scrollToTop: () => unknown;\n useNewSelectAllLogic?: boolean;\n}\n\nexport class BulkSelectState<T> {\n readonly select: SelectState<BulkSelectKeyedItem<T>>;\n readonly events = new EventEmitter() as TypedEmitter<{\n openModal: () => unknown;\n closeModal: () => unknown;\n }>;\n readonly collection;\n readonly scrollToTop;\n useNewSelectAllLogic;\n disableAutoSelectAllCount?: boolean;\n totalSnapshot;\n\n get isSelectAll() {\n return this.select.defaultStatus.isChecked;\n }\n\n get hasUnchecked() {\n return !!this.uncheckedValues.length;\n }\n\n constructor(params: Readonly<BulkSelectStateParams<T>>) {\n this.collection = params.collection;\n this.scrollToTop = params.scrollToTop;\n this.disableAutoSelectAllCount = params.disableAutoSelectAllCount;\n this.useNewSelectAllLogic = params.useNewSelectAllLogic;\n\n this.select = new SelectState<BulkSelectKeyedItem<T>>({\n keyGetter: (item) => item.key,\n });\n\n this.totalSnapshot = new Snapshot({\n expression: () => this.isSelectAll,\n effect: () => this.collection.result.total,\n });\n\n makeObservable(this, {\n isSelectAll: computed,\n disableAutoSelectAllCount: observable.ref,\n selectAll: action,\n selectOne: action,\n selectOneItem: action,\n deselectOne: action,\n deselectOneItem: action,\n resetToDefaults: action.bound,\n hasUnchecked: computed,\n selectedIds: computed,\n uncheckedIds: computed,\n selectedValues: computed,\n selectedKeyedItems: computed,\n uncheckedValues: computed,\n uncheckedInCurrentCollection: computed,\n selectedCountOrTotal: computed,\n checkedSet: computed,\n indeterminateSet: computed,\n });\n }\n\n getCollectionItem(key: string) {\n return this.collection.result._keyedItemsMap.get(key);\n }\n\n get selectedIds() {\n return this.select.selectedKeys;\n }\n\n get uncheckedIds() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.key);\n }\n\n get selectedCount(): number {\n return this.select.selectedCount;\n }\n\n get selectedValues() {\n return this.select.selectedValues.map(({ item }) => item);\n }\n\n get checkedSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isChecked)\n .map(({ value }) => value.key),\n );\n }\n\n get indeterminateSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isIndeterminate)\n .map(({ value }) => value.key),\n );\n }\n\n get uncheckedValues() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.item);\n }\n\n isChecked(key: string) {\n const { select } = this;\n return select.isChecked(key);\n }\n\n selectAll() {\n const { select, collection } = this;\n select.defaultStatus = select.defaultStatus.final();\n const {\n result: { keyedItems },\n } = collection;\n select.finalizeMany(keyedItems);\n }\n\n deselectAll() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.startAll();\n }\n\n selectOneItem(item: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.set(item);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n selectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n if (keyedItem) {\n this.selectOneItem(keyedItem);\n }\n }\n\n deselectOneItem(keyedItem: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.delete(keyedItem);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n deselectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n\n if (keyedItem == null) {\n return;\n }\n\n this.deselectOneItem(keyedItem);\n }\n\n openModal = () => {\n this.events.emit('openModal');\n };\n\n closeModal = () => {\n this.events.emit('closeModal');\n };\n\n resetToDefaults() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.clear();\n }\n\n init() {\n const disposers = [\n this.totalSnapshot.init(),\n addEventListener(this.collection.emitter, 'ready', () => {\n this.totalSnapshot.forceUpdate();\n }),\n reaction(\n () => this.collection.result.keyedItems,\n (keyedItems) => {\n const {\n select,\n isSelectAll,\n disableAutoSelectAllCount,\n collection: {\n result: { _keyedItemsMap },\n },\n } = this;\n if (isSelectAll && !disableAutoSelectAllCount) {\n select.syncValues(keyedItems);\n } else {\n select.syncValues(\n select.selectedKeys\n .map(\n (key) =>\n _keyedItemsMap.get(key) as\n | BulkSelectKeyedItem<T>\n | null\n | undefined,\n )\n .filter((e): e is BulkSelectKeyedItem<T> => e != null),\n );\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get selectedKeyedItems() {\n return this.selectedIds\n .map((id) => this.collection.result.get(id))\n .filter((item): item is KeyedItem<T> => !!item);\n }\n\n get isEmpty() {\n return this.select.isEmpty;\n }\n\n get uncheckedInCurrentCollection() {\n const { uncheckedValues, collection } = this;\n const { itemKey } = collection;\n\n return uncheckedValues.filter((item) =>\n collection.result.has(itemKey(item)),\n );\n }\n\n get selectedCountOrTotal() {\n const {\n isSelectAll,\n disableAutoSelectAllCount,\n selectedIds,\n useNewSelectAllLogic,\n uncheckedInCurrentCollection,\n totalSnapshot: { value: total },\n } = this;\n\n if (!isSelectAll || disableAutoSelectAllCount) {\n return selectedIds.length;\n }\n\n if (useNewSelectAllLogic) {\n return total - uncheckedInCurrentCollection.length;\n }\n\n return total;\n }\n\n toggleIsSelectAll = action(() => {\n const {\n isSelectAll,\n select: { isEmptyEnabledItems },\n } = this;\n if (isSelectAll || !isEmptyEnabledItems) {\n this.deselectAll();\n } else {\n this.selectAll();\n }\n });\n\n toggle(keyedItem: BulkSelectKeyedItem<T>) {\n this.select.toggle(keyedItem);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_SelectState","require","_mobx","_snapshot","_util","_events","BulkSelectState","allSelected","select","defaultStatus","isChecked","hasUnchecked","uncheckedValues","length","constructor","params","_defineProperty2","default","EventEmitter","events","emit","action","isEmptyEnabledItems","deselectAll","selectAll","collection","scrollToTop","disableAutoSelectAllCount","useNewSelectAllLogic","SelectState","keyGetter","item","key","totalSnapshot","Snapshot","expression","effect","result","total","makeObservable","computed","observable","ref","selectOne","selectOneItem","deselectOne","deselectOneItem","resetToDefaults","bound","selectedIds","uncheckedIds","selectedValues","selectedKeyedItems","uncheckedInCurrentCollection","selectedCountOrTotal","checkedSet","indeterminateSet","getCollectionItem","_keyedItemsMap","get","selectedKeys","toArray","filter","status","map","value","selectedCount","Set","isIndeterminate","final","keyedItems","finalizeMany","start","startAll","set","keyedItem","delete","clear","init","disposers","addEventListener","emitter","forceUpdate","reaction","syncValues","e","forEach","disposer","id","isEmpty","itemKey","has","toggle","exports"],"sources":["../../../src/state/BulkSelectState.ts"],"sourcesContent":["import { SelectState } from './SelectState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Snapshot } from './snapshot';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { EventEmitter } from 'events';\nimport { KeyedItem } from '../model';\n\nexport interface BulkSelectKeyedItem<T> {\n item: T;\n key: string;\n}\n\nexport interface BulkSelectStateParams<T> {\n collection: CollectionState<T, any>;\n disableAutoSelectAllCount?: boolean;\n maxSelection?: number;\n scrollToTop: () => unknown;\n useNewSelectAllLogic?: boolean;\n}\n\nexport class BulkSelectState<T> {\n readonly select: SelectState<BulkSelectKeyedItem<T>>;\n readonly events = new EventEmitter() as TypedEmitter<{\n openModal: () => unknown;\n closeModal: () => unknown;\n }>;\n readonly collection;\n readonly scrollToTop;\n useNewSelectAllLogic;\n disableAutoSelectAllCount?: boolean;\n totalSnapshot;\n\n get allSelected() {\n return this.select.defaultStatus.isChecked;\n }\n\n get hasUnchecked() {\n return !!this.uncheckedValues.length;\n }\n\n constructor(params: Readonly<BulkSelectStateParams<T>>) {\n this.collection = params.collection;\n this.scrollToTop = params.scrollToTop;\n this.disableAutoSelectAllCount = params.disableAutoSelectAllCount;\n this.useNewSelectAllLogic = params.useNewSelectAllLogic;\n\n this.select = new SelectState<BulkSelectKeyedItem<T>>({\n keyGetter: (item) => item.key,\n });\n\n this.totalSnapshot = new Snapshot({\n expression: () => this.allSelected,\n effect: () => this.collection.result.total,\n });\n\n makeObservable(this, {\n allSelected: computed,\n disableAutoSelectAllCount: observable.ref,\n selectAll: action,\n selectOne: action,\n selectOneItem: action,\n deselectOne: action,\n deselectOneItem: action,\n resetToDefaults: action.bound,\n hasUnchecked: computed,\n selectedIds: computed,\n uncheckedIds: computed,\n selectedValues: computed,\n selectedKeyedItems: computed,\n uncheckedValues: computed,\n uncheckedInCurrentCollection: computed,\n selectedCountOrTotal: computed,\n checkedSet: computed,\n indeterminateSet: computed,\n });\n }\n\n getCollectionItem(key: string) {\n return this.collection.result._keyedItemsMap.get(key);\n }\n\n get selectedIds() {\n return this.select.selectedKeys;\n }\n\n get uncheckedIds() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.key);\n }\n\n get selectedCount(): number {\n return this.select.selectedCount;\n }\n\n get selectedValues() {\n return this.select.selectedValues.map(({ item }) => item);\n }\n\n get checkedSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isChecked)\n .map(({ value }) => value.key),\n );\n }\n\n get indeterminateSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isIndeterminate)\n .map(({ value }) => value.key),\n );\n }\n\n get uncheckedValues() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.item);\n }\n\n isChecked(key: string) {\n const { select } = this;\n return select.isChecked(key);\n }\n\n selectAll() {\n const { select, collection } = this;\n select.defaultStatus = select.defaultStatus.final();\n const {\n result: { keyedItems },\n } = collection;\n select.finalizeMany(keyedItems);\n }\n\n deselectAll() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.startAll();\n }\n\n selectOneItem(item: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.set(item);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n selectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n if (keyedItem) {\n this.selectOneItem(keyedItem);\n }\n }\n\n deselectOneItem(keyedItem: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.delete(keyedItem);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n deselectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n\n if (keyedItem == null) {\n return;\n }\n\n this.deselectOneItem(keyedItem);\n }\n\n openModal = () => {\n this.events.emit('openModal');\n };\n\n closeModal = () => {\n this.events.emit('closeModal');\n };\n\n resetToDefaults() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.clear();\n }\n\n init() {\n const disposers = [\n this.totalSnapshot.init(),\n addEventListener(this.collection.emitter, 'ready', () => {\n this.totalSnapshot.forceUpdate();\n }),\n reaction(\n () => this.collection.result.keyedItems,\n (keyedItems) => {\n const {\n select,\n allSelected,\n disableAutoSelectAllCount,\n collection: {\n result: { _keyedItemsMap },\n },\n } = this;\n if (allSelected && !disableAutoSelectAllCount) {\n select.syncValues(keyedItems);\n } else {\n select.syncValues(\n select.selectedKeys\n .map(\n (key) =>\n _keyedItemsMap.get(key) as\n | BulkSelectKeyedItem<T>\n | null\n | undefined,\n )\n .filter((e): e is BulkSelectKeyedItem<T> => e != null),\n );\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get selectedKeyedItems() {\n return this.selectedIds\n .map((id) => this.collection.result.get(id))\n .filter((item): item is KeyedItem<T> => !!item);\n }\n\n get isEmpty() {\n return this.select.isEmpty;\n }\n\n get uncheckedInCurrentCollection() {\n const { uncheckedValues, collection } = this;\n const { itemKey } = collection;\n\n return uncheckedValues.filter((item) =>\n collection.result.has(itemKey(item)),\n );\n }\n\n get selectedCountOrTotal() {\n const {\n allSelected,\n disableAutoSelectAllCount,\n selectedIds,\n useNewSelectAllLogic,\n uncheckedInCurrentCollection,\n collection: {\n result: { total },\n },\n } = this;\n\n if (!allSelected || disableAutoSelectAllCount) {\n return selectedIds.length;\n }\n\n if (useNewSelectAllLogic) {\n return total - uncheckedInCurrentCollection.length;\n }\n\n return total;\n }\n\n toggleIsSelectAll = action(() => {\n const {\n allSelected,\n select: { isEmptyEnabledItems },\n } = this;\n if (allSelected || !isEmptyEnabledItems) {\n this.deselectAll();\n } else {\n this.selectAll();\n }\n });\n\n toggle(keyedItem: BulkSelectKeyedItem<T>) {\n this.select.toggle(keyedItem);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAgBO,MAAMK,eAAe,CAAI;EAY9B,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,MAAM,CAACC,aAAa,CAACC,SAAS;EAC5C;EAEA,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,CAAC,CAAC,IAAI,CAACC,eAAe,CAACC,MAAM;EACtC;EAEAC,WAAWA,CAACC,MAA0C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAlBtC,IAAIC,oBAAY,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAgKxB,MAAM;MAChB,IAAI,CAACE,MAAM,CAACC,IAAI,CAAC,WAAW,CAAC;IAC/B,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,sBAEY,MAAM;MACjB,IAAI,CAACE,MAAM,CAACC,IAAI,CAAC,YAAY,CAAC;IAChC,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,6BA2FmB,IAAAI,YAAM,EAAC,MAAM;MAC/B,MAAM;QACJd,WAAW;QACXC,MAAM,EAAE;UAAEc;QAAoB;MAChC,CAAC,GAAG,IAAI;MACR,IAAIf,WAAW,IAAI,CAACe,mBAAmB,EAAE;QACvC,IAAI,CAACC,WAAW,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACC,SAAS,CAAC,CAAC;MAClB;IACF,CAAC,CAAC;IAxPA,IAAI,CAACC,UAAU,GAAGV,MAAM,CAACU,UAAU;IACnC,IAAI,CAACC,WAAW,GAAGX,MAAM,CAACW,WAAW;IACrC,IAAI,CAACC,yBAAyB,GAAGZ,MAAM,CAACY,yBAAyB;IACjE,IAAI,CAACC,oBAAoB,GAAGb,MAAM,CAACa,oBAAoB;IAEvD,IAAI,CAACpB,MAAM,GAAG,IAAIqB,wBAAW,CAAyB;MACpDC,SAAS,EAAGC,IAAI,IAAKA,IAAI,CAACC;IAC5B,CAAC,CAAC;IAEF,IAAI,CAACC,aAAa,GAAG,IAAIC,kBAAQ,CAAC;MAChCC,UAAU,EAAEA,CAAA,KAAM,IAAI,CAAC5B,WAAW;MAClC6B,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACX,UAAU,CAACY,MAAM,CAACC;IACvC,CAAC,CAAC;IAEF,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBhC,WAAW,EAAEiC,cAAQ;MACrBb,yBAAyB,EAAEc,gBAAU,CAACC,GAAG;MACzClB,SAAS,EAAEH,YAAM;MACjBsB,SAAS,EAAEtB,YAAM;MACjBuB,aAAa,EAAEvB,YAAM;MACrBwB,WAAW,EAAExB,YAAM;MACnByB,eAAe,EAAEzB,YAAM;MACvB0B,eAAe,EAAE1B,YAAM,CAAC2B,KAAK;MAC7BrC,YAAY,EAAE6B,cAAQ;MACtBS,WAAW,EAAET,cAAQ;MACrBU,YAAY,EAAEV,cAAQ;MACtBW,cAAc,EAAEX,cAAQ;MACxBY,kBAAkB,EAAEZ,cAAQ;MAC5B5B,eAAe,EAAE4B,cAAQ;MACzBa,4BAA4B,EAAEb,cAAQ;MACtCc,oBAAoB,EAAEd,cAAQ;MAC9Be,UAAU,EAAEf,cAAQ;MACpBgB,gBAAgB,EAAEhB;IACpB,CAAC,CAAC;EACJ;EAEAiB,iBAAiBA,CAACzB,GAAW,EAAE;IAC7B,OAAO,IAAI,CAACP,UAAU,CAACY,MAAM,CAACqB,cAAc,CAACC,GAAG,CAAC3B,GAAG,CAAC;EACvD;EAEA,IAAIiB,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACzC,MAAM,CAACoD,YAAY;EACjC;EAEA,IAAIV,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAAC1C,MAAM,CAACqD,OAAO,CACvBC,MAAM,CAAC,CAAC;MAAEC;IAAO,CAAC,KAAK,CAACA,MAAM,CAACrD,SAAS,CAAC,CACzCsD,GAAG,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,CAACjC,GAAG,CAAC;EAClC;EAEA,IAAIkC,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAAC1D,MAAM,CAAC0D,aAAa;EAClC;EAEA,IAAIf,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAAC3C,MAAM,CAAC2C,cAAc,CAACa,GAAG,CAAC,CAAC;MAAEjC;IAAK,CAAC,KAAKA,IAAI,CAAC;EAC3D;EAEA,IAAIwB,UAAUA,CAAA,EAAG;IACf,OAAO,IAAIY,GAAG,CACZ,IAAI,CAAC3D,MAAM,CAACqD,OAAO,CAChBC,MAAM,CAAC,CAAC;MAAEC;IAAO,CAAC,KAAKA,MAAM,CAACrD,SAAS,CAAC,CACxCsD,GAAG,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,CAACjC,GAAG,CACjC,CAAC;EACH;EAEA,IAAIwB,gBAAgBA,CAAA,EAAG;IACrB,OAAO,IAAIW,GAAG,CACZ,IAAI,CAAC3D,MAAM,CAACqD,OAAO,CAChBC,MAAM,CAAC,CAAC;MAAEC;IAAO,CAAC,KAAKA,MAAM,CAACK,eAAe,CAAC,CAC9CJ,GAAG,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,CAACjC,GAAG,CACjC,CAAC;EACH;EAEA,IAAIpB,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACJ,MAAM,CAACqD,OAAO,CACvBC,MAAM,CAAC,CAAC;MAAEC;IAAO,CAAC,KAAK,CAACA,MAAM,CAACrD,SAAS,CAAC,CACzCsD,GAAG,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,CAAClC,IAAI,CAAC;EACnC;EAEArB,SAASA,CAACsB,GAAW,EAAE;IACrB,MAAM;MAAExB;IAAO,CAAC,GAAG,IAAI;IACvB,OAAOA,MAAM,CAACE,SAAS,CAACsB,GAAG,CAAC;EAC9B;EAEAR,SAASA,CAAA,EAAG;IACV,MAAM;MAAEhB,MAAM;MAAEiB;IAAW,CAAC,GAAG,IAAI;IACnCjB,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC4D,KAAK,CAAC,CAAC;IACnD,MAAM;MACJhC,MAAM,EAAE;QAAEiC;MAAW;IACvB,CAAC,GAAG7C,UAAU;IACdjB,MAAM,CAAC+D,YAAY,CAACD,UAAU,CAAC;EACjC;EAEA/C,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEf;IAAO,CAAC,GAAG,IAAI;IACvBA,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC+D,KAAK,CAAC,CAAC;IACnDhE,MAAM,CAACiE,QAAQ,CAAC,CAAC;EACnB;EAEA7B,aAAaA,CAACb,IAA4B,EAAE;IAC1C,MAAM;MAAEvB,MAAM;MAAEoB;IAAqB,CAAC,GAAG,IAAI;IAE7CpB,MAAM,CAACkE,GAAG,CAAC3C,IAAI,CAAC;IAEhB,IAAI,CAACH,oBAAoB,EAAE;MACzBpB,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC+D,KAAK,CAAC,CAAC;IACrD;EACF;EAEA7B,SAASA,CAACX,GAAW,EAAE;IACrB,MAAM;MAAEP;IAAW,CAAC,GAAG,IAAI;IAC3B,MAAM;MAAEY;IAAO,CAAC,GAAGZ,UAAU;IAC7B,MAAMkD,SAAS,GAAGtC,MAAM,CAACsB,GAAG,CAAC3B,GAAG,CAAC;IACjC,IAAI2C,SAAS,EAAE;MACb,IAAI,CAAC/B,aAAa,CAAC+B,SAAS,CAAC;IAC/B;EACF;EAEA7B,eAAeA,CAAC6B,SAAiC,EAAE;IACjD,MAAM;MAAEnE,MAAM;MAAEoB;IAAqB,CAAC,GAAG,IAAI;IAE7CpB,MAAM,CAACoE,MAAM,CAACD,SAAS,CAAC;IAExB,IAAI,CAAC/C,oBAAoB,EAAE;MACzBpB,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC+D,KAAK,CAAC,CAAC;IACrD;EACF;EAEA3B,WAAWA,CAACb,GAAW,EAAE;IACvB,MAAM;MAAEP;IAAW,CAAC,GAAG,IAAI;IAC3B,MAAM;MAAEY;IAAO,CAAC,GAAGZ,UAAU;IAC7B,MAAMkD,SAAS,GAAGtC,MAAM,CAACsB,GAAG,CAAC3B,GAAG,CAAC;IAEjC,IAAI2C,SAAS,IAAI,IAAI,EAAE;MACrB;IACF;IAEA,IAAI,CAAC7B,eAAe,CAAC6B,SAAS,CAAC;EACjC;EAUA5B,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAEvC;IAAO,CAAC,GAAG,IAAI;IACvBA,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC+D,KAAK,CAAC,CAAC;IACnDhE,MAAM,CAACqE,KAAK,CAAC,CAAC;EAChB;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMC,SAAS,GAAG,CAChB,IAAI,CAAC9C,aAAa,CAAC6C,IAAI,CAAC,CAAC,EACzB,IAAAE,sBAAgB,EAAC,IAAI,CAACvD,UAAU,CAACwD,OAAO,EAAE,OAAO,EAAE,MAAM;MACvD,IAAI,CAAChD,aAAa,CAACiD,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,EACF,IAAAC,cAAQ,EACN,MAAM,IAAI,CAAC1D,UAAU,CAACY,MAAM,CAACiC,UAAU,EACtCA,UAAU,IAAK;MACd,MAAM;QACJ9D,MAAM;QACND,WAAW;QACXoB,yBAAyB;QACzBF,UAAU,EAAE;UACVY,MAAM,EAAE;YAAEqB;UAAe;QAC3B;MACF,CAAC,GAAG,IAAI;MACR,IAAInD,WAAW,IAAI,CAACoB,yBAAyB,EAAE;QAC7CnB,MAAM,CAAC4E,UAAU,CAACd,UAAU,CAAC;MAC/B,CAAC,MAAM;QACL9D,MAAM,CAAC4E,UAAU,CACf5E,MAAM,CAACoD,YAAY,CAChBI,GAAG,CACDhC,GAAG,IACF0B,cAAc,CAACC,GAAG,CAAC3B,GAAG,CAI1B,CAAC,CACA8B,MAAM,CAAEuB,CAAC,IAAkCA,CAAC,IAAI,IAAI,CACzD,CAAC;MACH;IACF,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXN,SAAS,CAACO,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;EACH;EAEA,IAAInC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACH,WAAW,CACpBe,GAAG,CAAEwB,EAAE,IAAK,IAAI,CAAC/D,UAAU,CAACY,MAAM,CAACsB,GAAG,CAAC6B,EAAE,CAAC,CAAC,CAC3C1B,MAAM,CAAE/B,IAAI,IAA2B,CAAC,CAACA,IAAI,CAAC;EACnD;EAEA,IAAI0D,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACjF,MAAM,CAACiF,OAAO;EAC5B;EAEA,IAAIpC,4BAA4BA,CAAA,EAAG;IACjC,MAAM;MAAEzC,eAAe;MAAEa;IAAW,CAAC,GAAG,IAAI;IAC5C,MAAM;MAAEiE;IAAQ,CAAC,GAAGjE,UAAU;IAE9B,OAAOb,eAAe,CAACkD,MAAM,CAAE/B,IAAI,IACjCN,UAAU,CAACY,MAAM,CAACsD,GAAG,CAACD,OAAO,CAAC3D,IAAI,CAAC,CACrC,CAAC;EACH;EAEA,IAAIuB,oBAAoBA,CAAA,EAAG;IACzB,MAAM;MACJ/C,WAAW;MACXoB,yBAAyB;MACzBsB,WAAW;MACXrB,oBAAoB;MACpByB,4BAA4B;MAC5B5B,UAAU,EAAE;QACVY,MAAM,EAAE;UAAEC;QAAM;MAClB;IACF,CAAC,GAAG,IAAI;IAER,IAAI,CAAC/B,WAAW,IAAIoB,yBAAyB,EAAE;MAC7C,OAAOsB,WAAW,CAACpC,MAAM;IAC3B;IAEA,IAAIe,oBAAoB,EAAE;MACxB,OAAOU,KAAK,GAAGe,4BAA4B,CAACxC,MAAM;IACpD;IAEA,OAAOyB,KAAK;EACd;EAcAsD,MAAMA,CAACjB,SAAiC,EAAE;IACxC,IAAI,CAACnE,MAAM,CAACoF,MAAM,CAACjB,SAAS,CAAC;EAC/B;AACF;AAACkB,OAAA,CAAAvF,eAAA,GAAAA,eAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.WixPatternsContainer =
|
|
5
|
+
exports.WixPatternsContainer = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _services = require("../services");
|
|
8
8
|
var _model = require("../model");
|
|
@@ -15,16 +15,7 @@ var _events = require("events");
|
|
|
15
15
|
var _useExperimentsCompat = require("./useExperimentsCompat");
|
|
16
16
|
var _uuid = require("uuid");
|
|
17
17
|
var _BeforeUnloadCompatState = require("./BeforeUnloadCompatState");
|
|
18
|
-
|
|
19
|
-
* @deprecated
|
|
20
|
-
* use `WixPatternsContainerParams`
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated
|
|
25
|
-
* use `WixPatternsContainer`
|
|
26
|
-
*/
|
|
27
|
-
class CairoContainer {
|
|
18
|
+
class WixPatternsContainer {
|
|
28
19
|
constructor(params) {
|
|
29
20
|
var _params$initialProps;
|
|
30
21
|
(0, _defineProperty2.default)(this, "createEssentials", void 0);
|
|
@@ -248,7 +239,5 @@ class CairoContainer {
|
|
|
248
239
|
};
|
|
249
240
|
}
|
|
250
241
|
}
|
|
251
|
-
exports.CairoContainer = CairoContainer;
|
|
252
|
-
class WixPatternsContainer extends CairoContainer {}
|
|
253
242
|
exports.WixPatternsContainer = WixPatternsContainer;
|
|
254
243
|
//# sourceMappingURL=CairoContainer.js.map
|