@wix/bex-core 2.25.0 → 2.26.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/InMemoryBackend/InMemoryBackend.js.map +1 -1
- package/dist/cjs/assets/locale/messages_cs.json +2 -2
- package/dist/cjs/assets/locale/messages_da.json +2 -2
- package/dist/cjs/assets/locale/messages_de.json +2 -2
- package/dist/cjs/assets/locale/messages_es.json +2 -2
- package/dist/cjs/assets/locale/messages_fr.json +2 -2
- package/dist/cjs/assets/locale/messages_id.json +2 -2
- package/dist/cjs/assets/locale/messages_it.json +2 -2
- package/dist/cjs/assets/locale/messages_ja.json +2 -2
- package/dist/cjs/assets/locale/messages_ko.json +2 -2
- package/dist/cjs/assets/locale/messages_nl.json +2 -2
- package/dist/cjs/assets/locale/messages_no.json +2 -2
- package/dist/cjs/assets/locale/messages_pl.json +2 -2
- package/dist/cjs/assets/locale/messages_pt.json +2 -2
- package/dist/cjs/assets/locale/messages_ru.json +2 -2
- package/dist/cjs/assets/locale/messages_sv.json +2 -2
- package/dist/cjs/assets/locale/messages_th.json +2 -2
- package/dist/cjs/assets/locale/messages_tr.json +2 -2
- package/dist/cjs/assets/locale/messages_uk.json +3 -3
- package/dist/cjs/assets/locale/messages_vi.json +2 -2
- package/dist/cjs/assets/locale/messages_visuale2e.json +7 -1
- package/dist/cjs/assets/locale/messages_zh.json +2 -2
- package/dist/cjs/model/wixPatternsEssentials.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +2 -5
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticProcessor.js +2 -6
- package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/WixPatternsContainer.js +2 -0
- package/dist/cjs/state/WixPatternsContainer.js.map +1 -1
- package/dist/cjs/state/buildWixPatternsContainer.js +2 -0
- package/dist/cjs/state/buildWixPatternsContainer.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +2 -2
- package/dist/esm/assets/locale/messages_da.json +2 -2
- package/dist/esm/assets/locale/messages_de.json +2 -2
- package/dist/esm/assets/locale/messages_es.json +2 -2
- package/dist/esm/assets/locale/messages_fr.json +2 -2
- package/dist/esm/assets/locale/messages_id.json +2 -2
- package/dist/esm/assets/locale/messages_it.json +2 -2
- package/dist/esm/assets/locale/messages_ja.json +2 -2
- package/dist/esm/assets/locale/messages_ko.json +2 -2
- package/dist/esm/assets/locale/messages_nl.json +2 -2
- package/dist/esm/assets/locale/messages_no.json +2 -2
- package/dist/esm/assets/locale/messages_pl.json +2 -2
- package/dist/esm/assets/locale/messages_pt.json +2 -2
- package/dist/esm/assets/locale/messages_ru.json +2 -2
- package/dist/esm/assets/locale/messages_sv.json +2 -2
- package/dist/esm/assets/locale/messages_th.json +2 -2
- package/dist/esm/assets/locale/messages_tr.json +2 -2
- package/dist/esm/assets/locale/messages_uk.json +3 -3
- package/dist/esm/assets/locale/messages_vi.json +2 -2
- package/dist/esm/assets/locale/messages_visuale2e.json +7 -1
- package/dist/esm/assets/locale/messages_zh.json +2 -2
- package/dist/esm/state/CollectionOptimisticActions.js +2 -5
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticProcessor.js +2 -6
- package/dist/esm/state/CollectionOptimisticProcessor.js.map +1 -1
- package/dist/esm/state/WixPatternsContainer.js +1 -0
- package/dist/esm/state/WixPatternsContainer.js.map +1 -1
- package/dist/esm/state/buildWixPatternsContainer.js +2 -1
- package/dist/esm/state/buildWixPatternsContainer.js.map +1 -1
- package/dist/types/InMemoryBackend/InMemoryBackend.d.ts +3 -3
- package/dist/types/model/wixPatternsEssentials.d.ts +2 -0
- package/dist/types/model/wixPatternsEssentials.d.ts.map +1 -1
- package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
- package/dist/types/state/CollectionOptimisticProcessor.d.ts +1 -1
- package/dist/types/state/CollectionOptimisticProcessor.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +1 -1
- package/dist/types/state/WixPatternsContainer.d.ts +2 -0
- package/dist/types/state/WixPatternsContainer.d.ts.map +1 -1
- package/dist/types/state/buildWixPatternsContainer.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chance","require","_orderBy","_interopRequireDefault","_shuffle","_events","_core","InMemoryBackend","constructor","params","_defineProperty2","default","EventEmitter","Chance","query","fetchDataStartPromises","events","listeners","map","listener","length","Promise","all","simulateAsyncDelay","fetchDataSync","items","forEach","item","delete","itemKey","set","Map","index","values","predicate","_","Math","floor","random","available","shuffle","find","enableTotal","createOne","paginationMode","orderBy","projection","initialTotal","total","delay","min","max","newList","throwError","chance","resolve","setTimeout","integer","Array","fill","getOrderBy","ordinal","_getOrdinal","filters","allItems","orders","itemsAfterOrdering","fieldName","order","size","get","itemsAfterFiltering","filter","offset","cursor","findIndex","value","itemsAfterSlicing","slice","limit","cursorItem","itemsAfterFieldsProjection","deleteAll","isItemDeleted","emit","clear","updateMany","categoriesOrdinal","category","hashQueryKey","has","move","from","after","array","fromKey","toKey","fromIndex","splice","toIndex","i","len","updateAll","patch","patchedItems","unshift","newItems","key","entries","push","getRandomItems","count","page","pickset","undefined","exports"],"sources":["../../../src/InMemoryBackend/InMemoryBackend.ts"],"sourcesContent":["import { FiltersMap, RawFilters } from '../model';\nimport { Chance } from 'chance';\nimport orderBy from 'lodash/orderBy';\nimport shuffle from 'lodash/shuffle';\nimport { ListIteratee } from 'lodash';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\n\ninterface Order<T> {\n fieldName: ListIteratee<T>;\n order: 'asc' | 'desc';\n}\n\ninterface IndexedItem<T> {\n item: T;\n index: number;\n}\n\nexport type TransformPatch<T> = (item: T) => Partial<T>;\n\nexport interface BackendQuery<F extends FiltersMap = FiltersMap> {\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 * 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 /**\n * Current sort applied to the collection.\n */\n sort?: { fieldName: string; order: 'asc' | 'desc' }[];\n\n /**\n * Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.\n */\n fields?: string[];\n /**\n * Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.\n */\n fieldsset?: string[];\n}\n\nexport interface Delay {\n min: number;\n max: number;\n}\n\ninterface SubmitParams {\n delay?: Delay;\n throwError?: () => unknown;\n}\n\nexport interface InMemoryBackendParams<T, F extends FiltersMap = FiltersMap> {\n paginationMode?: 'offset' | 'cursor';\n /**\n * A callback function for each item creation\n */\n createOne: (index: number) => T;\n /**\n * A callback function that accepts an item and returns a unique ID of it. typically `item.id`.\n */\n itemKey: (item: T) => string;\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-models--computedquery) sent by the client and returns another function that accepts an item and should return a boolean that indicates whether the item passes the query filtering or not.\n */\n predicate?: (query: BackendQuery<F>) => (item: T) => boolean;\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-models--computedquery) sent by the client and returns another function that accepts an item and should returns a list of rules to order the items by\n */\n orderBy?: (query: BackendQuery<F>) => Order<T>[];\n\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-models--computedquery) sent by the client and returns a list of fields to project from the item\n */\n projection?: (query: BackendQuery<F>) => (item: T) => T;\n /**\n * Simulates API latency\n * @default { min: 0, max: 5 }\n */\n delay?: { min: number; max: number };\n /**\n * Total number of items to store in the backend\n */\n total: number;\n /**\n * Enable total for the backend. Defaults to \"true\"\n */\n enableTotal?: boolean;\n}\n\nexport class InMemoryBackend<T, F extends FiltersMap = FiltersMap> {\n readonly createOne: InMemoryBackendParams<T, F>['createOne'];\n readonly itemKey: InMemoryBackendParams<T, F>['itemKey'];\n readonly predicate: (query: BackendQuery<F>) => (item: T) => boolean;\n readonly orderBy?: (query: BackendQuery<F>) => Order<T>[];\n readonly projection;\n readonly initialTotal: number;\n readonly delay: { min: number; max: number };\n readonly paginationMode;\n readonly enableTotal?: boolean;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n updatedMany: () => void;\n updateAll: () => void;\n deleteAll: () => void;\n fetchDataStart: (query: BackendQuery<F>) => void | Promise<void>;\n }>;\n\n map: Map<string, T>;\n\n readonly chance = new Chance();\n\n constructor(params: InMemoryBackendParams<T, F>) {\n this.enableTotal = params.enableTotal ?? true;\n this.createOne = params.createOne;\n this.itemKey = params.itemKey;\n this.paginationMode = params.paginationMode;\n this.predicate = params.predicate ?? (() => () => true);\n this.orderBy = params.orderBy;\n this.projection = params.projection;\n this.initialTotal = params.total;\n this.delay = params.delay ?? { min: 0, max: 5 };\n this.map = new Map<string, T>(\n this.newList(params.total).map((item) => [this.itemKey(item), item]),\n );\n }\n\n private async simulateAsyncDelay({ delay, throwError }: SubmitParams = {}) {\n const { chance } = this;\n await new Promise((resolve) =>\n setTimeout(resolve, chance.integer(delay ?? this.delay)),\n ); // simulate async\n\n await throwError?.();\n }\n\n private newList(length: number) {\n return new Array(length)\n .fill(null)\n .map((_, index) => this.createOne(index));\n }\n\n fetchDataSync(query: BackendQuery<F>) {\n const { itemKey, predicate, orderBy: getOrderBy, paginationMode } = this;\n\n const ordinal = this._getOrdinal(query.filters);\n\n const allItems = this.values;\n\n const orders = getOrderBy?.(query);\n\n let itemsAfterOrdering;\n\n if (orders?.length) {\n itemsAfterOrdering = orderBy(\n allItems,\n orders.map(({ fieldName }) => fieldName),\n orders.map(({ order }) => order),\n );\n } else if (ordinal.size) {\n itemsAfterOrdering = orderBy(\n allItems,\n (item) => ordinal.get(itemKey(item)),\n ['asc'],\n );\n } else {\n itemsAfterOrdering = allItems;\n }\n\n const itemsAfterFiltering = itemsAfterOrdering.filter(predicate(query));\n\n let offset;\n\n if (paginationMode === 'cursor') {\n offset = query.cursor\n ? itemsAfterFiltering.findIndex(\n (value) => itemKey(value) === query.cursor,\n )\n : 0;\n } else {\n offset = query.cursor\n ? itemsAfterFiltering.findIndex(\n (value) => itemKey(value) === query.cursor,\n )\n : query.offset ?? 0;\n }\n\n const itemsAfterSlicing = itemsAfterFiltering.slice(\n offset,\n offset + query.limit,\n );\n\n const cursorItem = itemsAfterFiltering[offset + query.limit] as\n | T\n | undefined;\n\n const itemsAfterFieldsProjection = this.projection\n ? itemsAfterSlicing.map(this.projection(query))\n : itemsAfterSlicing;\n\n return {\n items: itemsAfterFieldsProjection,\n ...(this.enableTotal\n ? { total: itemsAfterFiltering.length, available: allItems.length }\n : {}),\n cursor: cursorItem && itemKey(cursorItem),\n };\n }\n\n fetchData = async (query: BackendQuery<F>) => {\n const fetchDataStartPromises = this.events\n .listeners('fetchDataStart')\n .map((listener) => listener(query));\n\n if (fetchDataStartPromises.length) {\n await Promise.all(fetchDataStartPromises);\n }\n\n await this.simulateAsyncDelay();\n return this.fetchDataSync(query);\n };\n\n deleteMany = async (items: T[], params?: SubmitParams) => {\n await this.simulateAsyncDelay(params);\n items.forEach((item) => this.map.delete(this.itemKey(item)));\n };\n\n async deleteAll(\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n filters?: RawFilters<F>;\n } = {},\n ) {\n const { filters = {} } = params;\n\n await this.simulateAsyncDelay(params);\n const { predicate, itemKey } = this;\n\n const isItemDeleted = predicate({\n filters,\n limit: 1,\n });\n\n for (const item of this.values) {\n if (isItemDeleted(item)) {\n this.map.delete(itemKey(item));\n }\n }\n\n this.events.emit('deleteAll');\n }\n\n clear() {\n this.map.clear();\n }\n\n update = async (item: T) => {\n await this.simulateAsyncDelay();\n this.map.set(this.itemKey(item), item);\n };\n\n async updateMany(items: T[], params: SubmitParams = {}) {\n await this.simulateAsyncDelay(params);\n for (const item of items) {\n this.map.set(this.itemKey(item), item);\n }\n this.events.emit('updatedMany');\n }\n readonly categoriesOrdinal: Map<string, Map<string, number>> = new Map();\n\n _getOrdinal(filters: RawFilters<F>) {\n const { categoriesOrdinal } = this;\n\n const category = hashQueryKey([{ filters }]);\n\n const ordinal =\n categoriesOrdinal.get(category) ?? new Map<string, number>();\n\n if (!categoriesOrdinal.has(category)) {\n categoriesOrdinal.set(category, ordinal);\n }\n\n return ordinal;\n }\n\n async move(\n events: {\n from: IndexedItem<T>;\n after: IndexedItem<T> | null;\n over: IndexedItem<T>;\n filters: RawFilters<F>;\n }[],\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n } = {},\n ) {\n const { itemKey } = this;\n await this.simulateAsyncDelay(params);\n\n for (const { from, after, filters } of events) {\n const ordinal = this._getOrdinal(filters);\n\n const array = ordinal.size\n ? orderBy(this.values.slice(), (item) => ordinal.get(itemKey(item)), [\n 'asc',\n ])\n : this.values.slice();\n\n const fromKey = itemKey(from.item);\n const toKey = after != null ? itemKey(after.item) : null;\n\n const fromIndex = array.findIndex((item) => fromKey === itemKey(item));\n if (fromIndex !== -1) {\n array.splice(fromIndex, 1);\n }\n\n if (toKey != null) {\n const toIndex = array.findIndex((item) => toKey === itemKey(item));\n if (toIndex !== -1) {\n array.splice(toIndex + 1, 0, from.item);\n }\n } else {\n array.splice(0, 0, from.item);\n }\n\n ordinal.clear();\n for (let i = 0, len = array.length; i < len; i++) {\n ordinal.set(itemKey(array[i]), i);\n }\n }\n }\n\n async updateAll(\n patch: TransformPatch<T>,\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n filters?: RawFilters<F>;\n } = {},\n ) {\n const { filters = {} } = params;\n\n await this.simulateAsyncDelay(params);\n const { predicate } = this;\n\n const itemsAfterFiltering = this.values.filter(\n predicate({\n filters,\n limit: 1,\n }),\n );\n\n const patchedItems = itemsAfterFiltering.map((value) => ({\n ...value,\n ...patch(value),\n }));\n\n for (const item of patchedItems) {\n this.map.set(this.itemKey(item), item);\n }\n\n this.events.emit('updateAll');\n }\n\n async unshift(newItems: T[]) {\n await this.simulateAsyncDelay();\n const map = new Map<string, T>();\n\n for (const item of newItems) {\n map.set(this.itemKey(item), item);\n }\n\n for (const [key, value] of Array.from(this.map.entries())) {\n map.set(key, value);\n }\n\n this.map = map;\n }\n\n async push(newItems: T[]) {\n await this.simulateAsyncDelay();\n\n for (const item of newItems) {\n this.map.set(this.itemKey(item), item);\n }\n }\n\n elementAt = (index: number) => this.values[index];\n\n getRandomItems(\n count: number,\n { limit, page }: { limit: number; page: number },\n ) {\n const { chance, values } = this;\n const offset = (page - 1) * limit;\n return chance.pickset(values.slice(offset, offset + limit), count);\n }\n\n randomItem = (predicate = (_: T) => true) => {\n const index = Math.floor(Math.random() * this.available);\n return {\n index,\n item: shuffle(this.values).find(predicate),\n };\n };\n\n get values() {\n return Array.from(this.map.values());\n }\n\n get available() {\n return this.map.size;\n }\n\n get(key?: string): T | undefined {\n if (key == null) {\n return undefined;\n }\n return this.map.get(key);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_chance","require","_orderBy","_interopRequireDefault","_shuffle","_events","_core","InMemoryBackend","constructor","params","_defineProperty2","default","EventEmitter","Chance","query","fetchDataStartPromises","events","listeners","map","listener","length","Promise","all","simulateAsyncDelay","fetchDataSync","items","forEach","item","delete","itemKey","set","Map","index","values","predicate","_","Math","floor","random","available","shuffle","find","enableTotal","createOne","paginationMode","orderBy","projection","initialTotal","total","delay","min","max","newList","throwError","chance","resolve","setTimeout","integer","Array","fill","getOrderBy","ordinal","_getOrdinal","filters","allItems","orders","itemsAfterOrdering","fieldName","order","size","get","itemsAfterFiltering","filter","offset","cursor","findIndex","value","itemsAfterSlicing","slice","limit","cursorItem","itemsAfterFieldsProjection","deleteAll","isItemDeleted","emit","clear","updateMany","categoriesOrdinal","category","hashQueryKey","has","move","from","after","array","fromKey","toKey","fromIndex","splice","toIndex","i","len","updateAll","patch","patchedItems","unshift","newItems","key","entries","push","getRandomItems","count","page","pickset","undefined","exports"],"sources":["../../../src/InMemoryBackend/InMemoryBackend.ts"],"sourcesContent":["import { FiltersMap, RawFilters } from '../model';\nimport { Chance } from 'chance';\nimport orderBy from 'lodash/orderBy';\nimport shuffle from 'lodash/shuffle';\nimport { ListIteratee } from 'lodash';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { hashQueryKey } from 'react-query/core';\n\ninterface Order<T> {\n fieldName: ListIteratee<T>;\n order: 'asc' | 'desc';\n}\n\ninterface IndexedItem<T> {\n item: T;\n index: number;\n}\n\nexport type TransformPatch<T> = (item: T) => Partial<T>;\n\nexport interface BackendQuery<F extends FiltersMap = FiltersMap> {\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 * 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 /**\n * Current sort applied to the collection.\n */\n sort?: { fieldName: string; order: 'asc' | 'desc' }[];\n\n /**\n * Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.\n */\n fields?: string[];\n /**\n * Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.\n */\n fieldsset?: string[];\n}\n\nexport interface Delay {\n min: number;\n max: number;\n}\n\ninterface SubmitParams {\n delay?: Delay;\n throwError?: () => unknown;\n}\n\nexport interface InMemoryBackendParams<T, F extends FiltersMap = FiltersMap> {\n paginationMode?: 'offset' | 'cursor';\n /**\n * A callback function for each item creation\n */\n createOne: (index: number) => T;\n /**\n * A callback function that accepts an item and returns a unique ID of it. typically `item.id`.\n */\n itemKey: (item: T) => string;\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-types--computedquery) sent by the client and returns another function that accepts an item and should return a boolean that indicates whether the item passes the query filtering or not.\n */\n predicate?: (query: BackendQuery<F>) => (item: T) => boolean;\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-types--computedquery) sent by the client and returns another function that accepts an item and should returns a list of rules to order the items by\n */\n orderBy?: (query: BackendQuery<F>) => Order<T>[];\n\n /**\n * A function that accepts a subset of [ComputedQuery](./?path=/story/common-types--computedquery) sent by the client and returns a list of fields to project from the item\n */\n projection?: (query: BackendQuery<F>) => (item: T) => T;\n /**\n * Simulates API latency\n * @default { min: 0, max: 5 }\n */\n delay?: { min: number; max: number };\n /**\n * Total number of items to store in the backend\n */\n total: number;\n /**\n * Enable total for the backend. Defaults to \"true\"\n */\n enableTotal?: boolean;\n}\n\nexport class InMemoryBackend<T, F extends FiltersMap = FiltersMap> {\n readonly createOne: InMemoryBackendParams<T, F>['createOne'];\n readonly itemKey: InMemoryBackendParams<T, F>['itemKey'];\n readonly predicate: (query: BackendQuery<F>) => (item: T) => boolean;\n readonly orderBy?: (query: BackendQuery<F>) => Order<T>[];\n readonly projection;\n readonly initialTotal: number;\n readonly delay: { min: number; max: number };\n readonly paginationMode;\n readonly enableTotal?: boolean;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n updatedMany: () => void;\n updateAll: () => void;\n deleteAll: () => void;\n fetchDataStart: (query: BackendQuery<F>) => void | Promise<void>;\n }>;\n\n map: Map<string, T>;\n\n readonly chance = new Chance();\n\n constructor(params: InMemoryBackendParams<T, F>) {\n this.enableTotal = params.enableTotal ?? true;\n this.createOne = params.createOne;\n this.itemKey = params.itemKey;\n this.paginationMode = params.paginationMode;\n this.predicate = params.predicate ?? (() => () => true);\n this.orderBy = params.orderBy;\n this.projection = params.projection;\n this.initialTotal = params.total;\n this.delay = params.delay ?? { min: 0, max: 5 };\n this.map = new Map<string, T>(\n this.newList(params.total).map((item) => [this.itemKey(item), item]),\n );\n }\n\n private async simulateAsyncDelay({ delay, throwError }: SubmitParams = {}) {\n const { chance } = this;\n await new Promise((resolve) =>\n setTimeout(resolve, chance.integer(delay ?? this.delay)),\n ); // simulate async\n\n await throwError?.();\n }\n\n private newList(length: number) {\n return new Array(length)\n .fill(null)\n .map((_, index) => this.createOne(index));\n }\n\n fetchDataSync(query: BackendQuery<F>) {\n const { itemKey, predicate, orderBy: getOrderBy, paginationMode } = this;\n\n const ordinal = this._getOrdinal(query.filters);\n\n const allItems = this.values;\n\n const orders = getOrderBy?.(query);\n\n let itemsAfterOrdering;\n\n if (orders?.length) {\n itemsAfterOrdering = orderBy(\n allItems,\n orders.map(({ fieldName }) => fieldName),\n orders.map(({ order }) => order),\n );\n } else if (ordinal.size) {\n itemsAfterOrdering = orderBy(\n allItems,\n (item) => ordinal.get(itemKey(item)),\n ['asc'],\n );\n } else {\n itemsAfterOrdering = allItems;\n }\n\n const itemsAfterFiltering = itemsAfterOrdering.filter(predicate(query));\n\n let offset;\n\n if (paginationMode === 'cursor') {\n offset = query.cursor\n ? itemsAfterFiltering.findIndex(\n (value) => itemKey(value) === query.cursor,\n )\n : 0;\n } else {\n offset = query.cursor\n ? itemsAfterFiltering.findIndex(\n (value) => itemKey(value) === query.cursor,\n )\n : query.offset ?? 0;\n }\n\n const itemsAfterSlicing = itemsAfterFiltering.slice(\n offset,\n offset + query.limit,\n );\n\n const cursorItem = itemsAfterFiltering[offset + query.limit] as\n | T\n | undefined;\n\n const itemsAfterFieldsProjection = this.projection\n ? itemsAfterSlicing.map(this.projection(query))\n : itemsAfterSlicing;\n\n return {\n items: itemsAfterFieldsProjection,\n ...(this.enableTotal\n ? { total: itemsAfterFiltering.length, available: allItems.length }\n : {}),\n cursor: cursorItem && itemKey(cursorItem),\n };\n }\n\n fetchData = async (query: BackendQuery<F>) => {\n const fetchDataStartPromises = this.events\n .listeners('fetchDataStart')\n .map((listener) => listener(query));\n\n if (fetchDataStartPromises.length) {\n await Promise.all(fetchDataStartPromises);\n }\n\n await this.simulateAsyncDelay();\n return this.fetchDataSync(query);\n };\n\n deleteMany = async (items: T[], params?: SubmitParams) => {\n await this.simulateAsyncDelay(params);\n items.forEach((item) => this.map.delete(this.itemKey(item)));\n };\n\n async deleteAll(\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n filters?: RawFilters<F>;\n } = {},\n ) {\n const { filters = {} } = params;\n\n await this.simulateAsyncDelay(params);\n const { predicate, itemKey } = this;\n\n const isItemDeleted = predicate({\n filters,\n limit: 1,\n });\n\n for (const item of this.values) {\n if (isItemDeleted(item)) {\n this.map.delete(itemKey(item));\n }\n }\n\n this.events.emit('deleteAll');\n }\n\n clear() {\n this.map.clear();\n }\n\n update = async (item: T) => {\n await this.simulateAsyncDelay();\n this.map.set(this.itemKey(item), item);\n };\n\n async updateMany(items: T[], params: SubmitParams = {}) {\n await this.simulateAsyncDelay(params);\n for (const item of items) {\n this.map.set(this.itemKey(item), item);\n }\n this.events.emit('updatedMany');\n }\n readonly categoriesOrdinal: Map<string, Map<string, number>> = new Map();\n\n _getOrdinal(filters: RawFilters<F>) {\n const { categoriesOrdinal } = this;\n\n const category = hashQueryKey([{ filters }]);\n\n const ordinal =\n categoriesOrdinal.get(category) ?? new Map<string, number>();\n\n if (!categoriesOrdinal.has(category)) {\n categoriesOrdinal.set(category, ordinal);\n }\n\n return ordinal;\n }\n\n async move(\n events: {\n from: IndexedItem<T>;\n after: IndexedItem<T> | null;\n over: IndexedItem<T>;\n filters: RawFilters<F>;\n }[],\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n } = {},\n ) {\n const { itemKey } = this;\n await this.simulateAsyncDelay(params);\n\n for (const { from, after, filters } of events) {\n const ordinal = this._getOrdinal(filters);\n\n const array = ordinal.size\n ? orderBy(this.values.slice(), (item) => ordinal.get(itemKey(item)), [\n 'asc',\n ])\n : this.values.slice();\n\n const fromKey = itemKey(from.item);\n const toKey = after != null ? itemKey(after.item) : null;\n\n const fromIndex = array.findIndex((item) => fromKey === itemKey(item));\n if (fromIndex !== -1) {\n array.splice(fromIndex, 1);\n }\n\n if (toKey != null) {\n const toIndex = array.findIndex((item) => toKey === itemKey(item));\n if (toIndex !== -1) {\n array.splice(toIndex + 1, 0, from.item);\n }\n } else {\n array.splice(0, 0, from.item);\n }\n\n ordinal.clear();\n for (let i = 0, len = array.length; i < len; i++) {\n ordinal.set(itemKey(array[i]), i);\n }\n }\n }\n\n async updateAll(\n patch: TransformPatch<T>,\n params: {\n delay?: Delay;\n throwError?: () => unknown;\n filters?: RawFilters<F>;\n } = {},\n ) {\n const { filters = {} } = params;\n\n await this.simulateAsyncDelay(params);\n const { predicate } = this;\n\n const itemsAfterFiltering = this.values.filter(\n predicate({\n filters,\n limit: 1,\n }),\n );\n\n const patchedItems = itemsAfterFiltering.map((value) => ({\n ...value,\n ...patch(value),\n }));\n\n for (const item of patchedItems) {\n this.map.set(this.itemKey(item), item);\n }\n\n this.events.emit('updateAll');\n }\n\n async unshift(newItems: T[]) {\n await this.simulateAsyncDelay();\n const map = new Map<string, T>();\n\n for (const item of newItems) {\n map.set(this.itemKey(item), item);\n }\n\n for (const [key, value] of Array.from(this.map.entries())) {\n map.set(key, value);\n }\n\n this.map = map;\n }\n\n async push(newItems: T[]) {\n await this.simulateAsyncDelay();\n\n for (const item of newItems) {\n this.map.set(this.itemKey(item), item);\n }\n }\n\n elementAt = (index: number) => this.values[index];\n\n getRandomItems(\n count: number,\n { limit, page }: { limit: number; page: number },\n ) {\n const { chance, values } = this;\n const offset = (page - 1) * limit;\n return chance.pickset(values.slice(offset, offset + limit), count);\n }\n\n randomItem = (predicate = (_: T) => true) => {\n const index = Math.floor(Math.random() * this.available);\n return {\n index,\n item: shuffle(this.values).find(predicate),\n };\n };\n\n get values() {\n return Array.from(this.map.values());\n }\n\n get available() {\n return this.map.size;\n }\n\n get(key?: string): T | undefined {\n if (key == null) {\n return undefined;\n }\n return this.map.get(key);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Přidat možnost",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Zpět",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Odstranit",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "Obnovit",
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Obnovit stránku",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "Např. Itálie",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Zpět",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Zahodit",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Uložit jako nové zobrazení",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Použít",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Zobrazit role a oprávnění",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Obnovte stránku, aby se posledních změny zobrazily.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Zkuste nové hledání.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Přednastavená zobrazení",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Možnosti",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Tilføj mulighed",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annuller",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Slet",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Opdater visning",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "fx Italien",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annuller",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Kassér",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Gem som ny visning",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Anvend",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Gennemse Roller og tilladelser",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Opdater for at opdatere visningen med dine seneste ændringer.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Prøv en ny søgning.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Forudindstillede visninger",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Muligheder",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Option hinzufügen",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Abbrechen",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Löschen",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Ansicht aktualisieren",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "z. B. Italien",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Abbrechen",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Verwerfen",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Als neue Ansicht speichern",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Anwenden",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Rollen & Berechtigungen ansehen",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Aktualisiere diese Ansicht, um die letzten Änderungen anzusehen.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Starte eine neue Suche.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Voreingestellte Ansichten",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Optionen",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Agregar opción",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancelar",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Eliminar",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Actualizar vista",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "P. ej., Italia",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Cancelar",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Descartar",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Guardar como vista nueva",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Aplicar",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Ver roles y permisos",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Actualiza la vista para ver los últimos cambios.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Realiza una nueva búsqueda.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Vistas preestablecidas",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opciones",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Ajouter une option",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annuler",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Supprimer",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Actualiser",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "Ex. Italie",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annuler",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Ignorer",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Enregistrer en tant que nouvelle vue",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Appliquer",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Voir les rôles et autorisations",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Actualisez la page pour mettre à jour la vue avec vos modifications récentes.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Essayez d'effectuer une nouvelle recherche.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Vues prédéfinies",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Options",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Tambahkan Opsi",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancel",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Hapus",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Muat Ulang Tampilan",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "mis., Italia",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Batal",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Buang",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Simpan sebagai Tampilan Baru",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Daftar",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Lihat Peran & Izin",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Muat ulang untuk memperbarui tampilan dengan perubahan terbaru Anda.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Coba pencarian baru.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Tampilan settingan awal",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opsi",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Aggiungi opzione",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annulla",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Elimina",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Aggiorna",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "es.: Italia",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annulla",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Annulla",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Salva nuova vista",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Applica",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Visualizza ruoli e autorizzazioni",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Ricarica la pagina per aggiornare la visualizzazione con le modifiche recenti.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Prova con una nuova ricerca.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Viste predefinite",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opzioni",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "オプションを追加",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "キャンセル",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "削除する",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "ビューを更新する",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "例:イタリア",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "キャンセル",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "破棄",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "新規ビューとして保存",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "適用する",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "「役割・権限」ページに移動",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "ページを再読み込みして、ビューを最新情報に更新してください。",
|
|
351
351
|
"cairo.search.nothingMatches.text": "別のキーワードでもう一度検索してください。",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "プリセットビュー",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "オプション",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "옵션 추가",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "취소",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "삭제",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "화면 새로고침",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "예: 이탈리아",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "취소",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "취소",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "새 뷰로 저장",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "적용",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "역할 및 권한 보기",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "최근 변경사항이 적용된 화면으로 업데이트하려면 새로고침하세요.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "다른 키워드를 사용해보세요.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "프리셋 뷰",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "옵션",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Optie toevoegen",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annuleren",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Verwijderen",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Weergave vernieuwen",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "Bijv. Italië",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annuleren",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Negeren",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Als nieuwe weergave opslaan",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Toepassen",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Rollen en toestemmingen bekijken",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Vernieuw om de weergave bij te werken met je recente wijzigingen.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Probeer een nieuwe zoekopdracht.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Standaardweergaven",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opties",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Legg til alternativ",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Avbryt",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Slett",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Oppdater visning",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "f.eks. Italia",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Avbryt",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Forkast",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Lagre som ny visning",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Anvend",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Vis roller og tillatelser",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Oppdater for å se de siste endringene i visningen.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Prøv et nytt søk.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Forhåndsinnstilte visninger",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Alternativer",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Dodaj opcję",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Anuluj",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Usuń",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Odśwież widok",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "np. Włochy",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Anuluj",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Odrzuć",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Zapisz jako nowy widok",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Zastosuj",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Wyświetl role i uprawnienia",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Odśwież, aby zaktualizować widok i zobaczyć najnowsze zmiany.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Rozpocznij nowe wyszukiwanie.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Widoki predefiniowane",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opcje",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Adicionar opção",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancelar",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Excluir",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Atualizar visualização",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "Ex.: Itália",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Cancelar",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Descartar",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Salvar como nova visualização",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Aplicar",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Ver Funções e permissões",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Atualize para visualizar suas alterações recentes.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Tente uma nova busca.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Visualizações predefinidas",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Opções",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Добавить вариант",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Отмена",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Удалить",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Обновить",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "например, Италия",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Отменить",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Сбросить",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Сохранить как новый вид",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Применить",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Смотреть роли и разрешения доступа",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Обновите страницу, чтобы увидеть изменения.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Попробуйте другой запрос.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Пресеты видов",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Варианты",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Lägg till alternativ",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Avbryt",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Radera",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Uppdatera vy",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "t.ex. Italien",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Avbryt",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Ignorera",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Spara som ny vy",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Använd",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Se roller och behörigheter",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Uppdatera för att se de senaste ändringarna i vyn.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Prova en ny sökning.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Förinställda vyer",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Alternativ",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "เพิ่มตัวเลือก",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "ยกเลิก",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "ลบ",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "รีเฟรชมุมมอง",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "เช่น อิตาลี",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "ยกเลิก",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "ละทิ้ง",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "บันทึกเป็นมุมมองใหม่",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "สมัคร",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "ดูบทบาท & หน้าที่",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "รีเฟรชเพื่ออัปเดตมุมมองตามสิ่งที่คุณแก้ไขล่าสุด",
|
|
351
351
|
"cairo.search.nothingMatches.text": "ลองค้นหาใหม่",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "มุมมองที่ตั้งค่าไว้แล้ว",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "ตัวเลือก",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Seçenek Ekle",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "İptal",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Sil",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Görünümü Yenile",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "Ör. İtalya",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "İptal",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Kaldır",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Yeni Görünüm Olarak Kaydet",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Uygula",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Rol ve İzinleri Görüntüle",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "En son değişikliklerinizi uygulamak için görünümü yenileyin.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Yeni bir arama deneyin.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Hazır görünümler",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Seçenekler",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Додати варіант",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Скасувати",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Видалити",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Оновити",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "напр., Італія",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Скасувати",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Скинути",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"cairo.picker.createNew.button.tooltip": "Вибрано максимальну кількість елементів. Щоб створити новий елемент, зніміть виділення з одного з елементів.",
|
|
155
155
|
"cairo.page.loadError.failedState.description": "У нас виникла технічна проблема. Оновіть, щоб спробувати знову.",
|
|
156
156
|
"cairo.manageView.setAsDefault.reset.CTA": "Скинути стандартний перегляд",
|
|
157
|
-
"cairo.filtersPanel.date.title": "
|
|
157
|
+
"cairo.filtersPanel.date.title": "Дата",
|
|
158
158
|
"cairo.manageView.setAsDefault.reset.success.toast": "Стандартний перегляд скинуто.",
|
|
159
159
|
"cairo.customFields.addCustomField.CTA": "Додати поле",
|
|
160
160
|
"cairo.customFields.addCustomField.modal.fieldType": "Тип поля",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Зберегти як новий перегляд",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Застосувати",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Переглянути ролі та дозволи",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Оновіть, щоб побачити перегляд з останніми змінами.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Спробуйте виконати новий пошук.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Готові перегляди",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Варіанти",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "Thêm tùy chọn",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Hủy",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Xóa",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "Làm mới chế độ xem",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "VD: Ý",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Hủy",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "Bỏ",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "Lưu làm dạng xem mới",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "Áp dụng",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "Xem vai trò và quyền hạn",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "Làm mới để cập nhật chế độ xem với những thay đổi gần đây của bạn.",
|
|
351
351
|
"cairo.search.nothingMatches.text": "Hãy thử từ tìm kiếm mới.",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "Dạng xem thiết lập trước",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "Tùy chọn",
|
|
@@ -277,5 +277,11 @@
|
|
|
277
277
|
"cairo.tags.manageTags.modal.toast.delete.success": "Tag deleted.",
|
|
278
278
|
"cairo.tags.manageTags.modal.toast.delete.error": "Couldn't delete tag.",
|
|
279
279
|
"cairo.dropdownSearch.select.filers.placeholder": "Select filters",
|
|
280
|
-
"cairo.dropdownSearch.filters.selected": "{total, plural, =1 {1 filter selected} other {# filters selected}}"
|
|
280
|
+
"cairo.dropdownSearch.filters.selected": "{total, plural, =1 {1 filter selected} other {# filters selected}}",
|
|
281
|
+
"cairo.dragAndDrop.list-aria-label.sr": "To reorder, press the spacebar to grab an item; arrow keys to drag; spacebar to drop; “escape” or “tab” to cancel.",
|
|
282
|
+
"cairo.dragAndDrop.reorder-cancelled.sr": "Drag canceled.",
|
|
283
|
+
"cairo.dragAndDrop.live-region.itemDragged.sr": "{currentNumber} of {totalNumber}.",
|
|
284
|
+
"cairo.dragAndDrop.live-region.itemGrabbed.sr": "Grabbed.",
|
|
285
|
+
"cairo.dragAndDrop.button-role-label.sr": "Drag {itemName}.",
|
|
286
|
+
"cairo.dragAndDrop.live-region.itemDropped.sr": "Dropped at {currentNumber}."
|
|
281
287
|
}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"cairo.customFields.fieldType.dropdownList.addOption.CTA": "新增選項",
|
|
50
50
|
"cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "取消",
|
|
51
51
|
"cairo.tags.manageTags.modal.deleteModal.delete.CTA": "刪除",
|
|
52
|
-
"cairo.updatedView.collectionPage.toast.cta": "
|
|
52
|
+
"cairo.updatedView.collectionPage.toast.cta": "重新整理檢視",
|
|
53
53
|
"cairo.customFields.fieldType.dropdownList.placeholder": "例如,義大利",
|
|
54
54
|
"cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "取消",
|
|
55
55
|
"cairo.dragAndDrop.discardChanges.CTA": "捨棄",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"cairo.manageView.saveNewView.CTA": "另存為新檢視",
|
|
348
348
|
"cair.appliedFilters.Apply.CTA": "套用",
|
|
349
349
|
"cairo.export.noPermissionsCTA": "查看身分與權限",
|
|
350
|
-
"cairo.updatedView.collectionPage.toast.desc": "
|
|
350
|
+
"cairo.updatedView.collectionPage.toast.desc": "請重新整理,以對檢視套用最新變更。",
|
|
351
351
|
"cairo.search.nothingMatches.text": "請嘗試其他搜尋條件。",
|
|
352
352
|
"cairo.viewDropdown.category.predefinedViews": "預設檢視",
|
|
353
353
|
"cairo.customFields.fieldType.dropdownList.inputTitle": "選項",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/model/wixPatternsEssentials.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 BiLogger {\n report(reportProps: ReportProps): Promise<any>;\n}\n\nexport interface CairoBILoggerFactory {\n updateDefaults(params: LogParams): this;\n logger(): BiLogger;\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 biLogger?: BiLogger | null;\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":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/model/wixPatternsEssentials.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 BiLogger {\n report(reportProps: ReportProps): Promise<any>;\n}\n\nexport interface CairoBILoggerFactory {\n updateDefaults(params: LogParams): this;\n logger(): BiLogger;\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};\n\nexport type UseAssistantEffect = (\n handler: (payload: any, sourceEvent: string) => void,\n appDefId: string,\n event: string | string[],\n) => unknown;\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 biLogger?: BiLogger | null;\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 useAssistantEffect?: UseAssistantEffect;\n}\n\nexport interface WixPatternsEssentialsOverrides\n extends Omit<Partial<WixPatternsEssentials>, 'environment'> {\n environment: Partial<WixPatternsEssentials['environment']>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -651,25 +651,22 @@ class CollectionOptimisticActions {
|
|
|
651
651
|
}
|
|
652
652
|
initCollection(collection) {
|
|
653
653
|
this.collections.push(collection);
|
|
654
|
-
|
|
654
|
+
new _CollectionOptimisticProcessor.CollectionOptimisticProcessor({
|
|
655
655
|
collection,
|
|
656
656
|
optimistic: this,
|
|
657
657
|
orderBy: this.orderBy,
|
|
658
658
|
predicate: this.predicate
|
|
659
659
|
});
|
|
660
|
-
const dispose = processor.init();
|
|
661
660
|
return () => {
|
|
662
661
|
const i = this.collections.indexOf(collection);
|
|
663
662
|
if (i !== -1) {
|
|
664
663
|
this.collections.splice(i, 1);
|
|
665
664
|
}
|
|
666
|
-
dispose();
|
|
667
665
|
};
|
|
668
666
|
}
|
|
669
667
|
init() {
|
|
670
668
|
const {
|
|
671
669
|
collection,
|
|
672
|
-
processors,
|
|
673
670
|
events
|
|
674
671
|
} = this;
|
|
675
672
|
const emitRefresh = params => {
|
|
@@ -691,7 +688,7 @@ class CollectionOptimisticActions {
|
|
|
691
688
|
if (allFilteredOut) {
|
|
692
689
|
collection.fetchNextPageIfNeeded();
|
|
693
690
|
}
|
|
694
|
-
})
|
|
691
|
+
})];
|
|
695
692
|
return () => {
|
|
696
693
|
collection.emitter.off('refresh', emitRefresh);
|
|
697
694
|
collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);
|