@wix/bex-core 2.64.0 → 2.66.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/hooks/paginationModeConfig.js.map +1 -1
- package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
- package/dist/cjs/services/dataExtensionService.js +5 -1
- package/dist/cjs/services/dataExtensionService.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActionsState.js +1 -1
- package/dist/cjs/state/CollectionOptimisticActionsState.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +42 -33
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/CustomFieldModalState.js +2 -1
- package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
- package/dist/cjs/state/DataExtensionState.js +6 -4
- package/dist/cjs/state/DataExtensionState.js.map +1 -1
- package/dist/cjs/state/FetchTotalState.js +82 -0
- package/dist/cjs/state/FetchTotalState.js.map +1 -0
- package/dist/cjs/state/QueryResultState.js +15 -2
- package/dist/cjs/state/QueryResultState.js.map +1 -1
- package/dist/esm/services/dataExtensionService.js +2 -0
- package/dist/esm/services/dataExtensionService.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActionsState.js +1 -1
- package/dist/esm/state/CollectionOptimisticActionsState.js.map +1 -1
- package/dist/esm/state/CollectionState.js +43 -31
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/CustomFieldModalState.js +1 -0
- package/dist/esm/state/CustomFieldModalState.js.map +1 -1
- package/dist/esm/state/DataExtensionState.js +4 -3
- package/dist/esm/state/DataExtensionState.js.map +1 -1
- package/dist/esm/state/FetchTotalState.js +59 -0
- package/dist/esm/state/FetchTotalState.js.map +1 -0
- package/dist/esm/state/QueryResultState.js +15 -2
- package/dist/esm/state/QueryResultState.js.map +1 -1
- package/dist/types/hooks/paginationModeConfig.d.ts +2 -0
- package/dist/types/hooks/paginationModeConfig.d.ts.map +1 -1
- package/dist/types/model/dataResultRaw/dataResultRaw.d.ts +1 -0
- package/dist/types/model/dataResultRaw/dataResultRaw.d.ts.map +1 -1
- package/dist/types/services/dataExtensionService.d.ts +2 -0
- package/dist/types/services/dataExtensionService.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +2 -0
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
- package/dist/types/state/DataExtensionState.d.ts +3 -1
- package/dist/types/state/DataExtensionState.d.ts.map +1 -1
- package/dist/types/state/FetchTotalState.d.ts +17 -0
- package/dist/types/state/FetchTotalState.d.ts.map +1 -0
- package/dist/types/state/QueryResultState.d.ts +5 -0
- package/dist/types/state/QueryResultState.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/hooks/paginationModeConfig.ts"],"sourcesContent":["import {\n ComputedQuery,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n} from '../model';\n\nexport type OffsetQuery<F extends FiltersMap = OptionalFiltersMap> = Omit<\n ComputedQuery<F>,\n 'cursor'\n>;\n\nexport type OffsetQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'>;\n\nexport type OffsetFetchDataFn<T, F extends FiltersMap> = (\n query: OffsetQuery<F>,\n) => Promise<OffsetQueryResult<T>>;\n\nexport type CursorQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'> & {\n cursor: string | undefined | null;\n};\n\nexport type CursorQuery<F extends FiltersMap = OptionalFiltersMap> = Omit<\n ComputedQuery<F>,\n 'offset'\n>;\n\nexport type CursorFetchDataFn<T, F extends FiltersMap> = (\n query: CursorQuery<F>,\n) => Promise<CursorQueryResult<T>>;\n\nexport type PaginationModeConfig<T, F extends FiltersMap> =\n | {\n paginationMode?: 'offset';\n fetchData: OffsetFetchDataFn<T, F>;\n }\n | {\n paginationMode: 'cursor';\n fetchData: CursorFetchDataFn<T, F>;\n };\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/hooks/paginationModeConfig.ts"],"sourcesContent":["import {\n ComputedQuery,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n} from '../model';\n\nexport type OffsetQuery<F extends FiltersMap = OptionalFiltersMap> = Omit<\n ComputedQuery<F>,\n 'cursor'\n>;\n\nexport type OffsetQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'>;\n\nexport type OffsetFetchDataFn<T, F extends FiltersMap> = (\n query: OffsetQuery<F>,\n) => Promise<OffsetQueryResult<T>>;\n\nexport type CursorQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'> & {\n cursor: string | undefined | null;\n};\n\nexport type CursorQuery<F extends FiltersMap = OptionalFiltersMap> = Omit<\n ComputedQuery<F>,\n 'offset'\n>;\n\nexport type CursorFetchDataFn<T, F extends FiltersMap> = (\n query: CursorQuery<F>,\n) => Promise<CursorQueryResult<T>>;\n\nexport type FetchTotalFn = (query: CursorQuery) => Promise<number>;\n\nexport type PaginationModeConfig<T, F extends FiltersMap> =\n | {\n paginationMode?: 'offset';\n fetchData: OffsetFetchDataFn<T, F>;\n }\n | {\n paginationMode: 'cursor';\n fetchTotal?: FetchTotalFn;\n fetchData: CursorFetchDataFn<T, F>;\n };\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/model/dataResultRaw/dataResultRaw.ts"],"sourcesContent":["export interface DataResultRaw<T> {\n /**\n * Array of items returned from the server.\n * @external\n */\n items: T[];\n /**\n * Total items available in the server, *after* applying filters. If not provided, offset pagination will not work correctly.\n * @default `items.length`\n * @external\n */\n total?: number | null;\n /**\n * Total items available in the server, *before* applying filters.\n * @external\n */\n available?: number;\n /**\n * In case of cursor pagination, this will be the value that will be sent in the query on the next page request.\n * @external\n */\n cursor?: string | undefined | null;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/model/dataResultRaw/dataResultRaw.ts"],"sourcesContent":["export interface DataResultRaw<T> {\n /**\n * Array of items returned from the server.\n * @external\n */\n items: T[];\n /**\n * Total items available in the server, *after* applying filters. If not provided, offset pagination will not work correctly.\n * If you are using a cursor and did not include `total` in your query request, you can use the `fetchTotal` function to extract it asynchronously.\n * @default `items.length`\n * @external\n */\n total?: number | null;\n /**\n * Total items available in the server, *before* applying filters.\n * @external\n */\n available?: number;\n /**\n * In case of cursor pagination, this will be the value that will be sent in the query on the next page request.\n * @external\n */\n cursor?: string | undefined | null;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -126,6 +126,9 @@ class DataExtensionSchemaService {
|
|
|
126
126
|
read: ['users', ...(readUsers ? ['users-of-users'] : []), ...(readApps ? ['apps'] : [])],
|
|
127
127
|
write: ['users', ...(writeUsers ? ['users-of-users'] : []), ...(writeApps ? ['apps'] : [])]
|
|
128
128
|
};
|
|
129
|
+
const filterable = params.filterable ? {
|
|
130
|
+
'x-wix-filterable': true
|
|
131
|
+
} : {};
|
|
129
132
|
const schema = {
|
|
130
133
|
fqdn,
|
|
131
134
|
namespace: userFieldsNamespace,
|
|
@@ -137,7 +140,8 @@ class DataExtensionSchemaService {
|
|
|
137
140
|
...((_params$schema2 = params.schema) == null || (_params$schema2 = _params$schema2.jsonSchema) == null ? void 0 : _params$schema2.properties[key]),
|
|
138
141
|
title: name,
|
|
139
142
|
...type,
|
|
140
|
-
'x-wix-permissions': permissions
|
|
143
|
+
'x-wix-permissions': permissions,
|
|
144
|
+
...filterable
|
|
141
145
|
}
|
|
142
146
|
}
|
|
143
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_http","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","fqdn","permissions","read","write","namespace","request","updateDataExtensionSchema","dataExtensionSchema","createDataExtensionSchema","then","res","data","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","listDataExtensionSchemas","namespaces","fields","RequestedField","ARCHIVED","exports"],"sources":["../../../src/services/dataExtensionService.ts"],"sourcesContent":["import {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm } from '../state';\nimport { WixPatternsEssentials } from '../model';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFields {\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: Record<string, any>;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n owner: CustomFieldOwner;\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array':\n return 'dropdown';\n default:\n return 'shortText';\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n }\n\n addCustomField(params: AddFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const {\n form: { key, name, readApps, readUsers, writeApps, writeUsers },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...type,\n 'x-wix-permissions': permissions,\n },\n },\n },\n };\n\n const request = params.schema?.id\n ? updateDataExtensionSchema({ dataExtensionSchema: schema })\n : createDataExtensionSchema({ dataExtensionSchema: schema });\n\n return httpClient.request(request).then((res) => res.data);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n\n return httpClient\n .request(updateDataExtensionSchema({ dataExtensionSchema: schema }))\n .then((res) => res.data);\n }\n\n fetchSchemas(fqdn: string) {\n const { httpClient } = this;\n\n return httpClient\n .request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: [RequestedField.ARCHIVED],\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","_http","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","fqdn","permissions","read","write","filterable","namespace","request","updateDataExtensionSchema","dataExtensionSchema","createDataExtensionSchema","then","res","data","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","listDataExtensionSchemas","namespaces","fields","RequestedField","ARCHIVED","exports"],"sources":["../../../src/services/dataExtensionService.ts"],"sourcesContent":["import {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm } from '../state';\nimport { WixPatternsEssentials } from '../model';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-filterable'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFields {\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: Record<string, any>;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n owner: CustomFieldOwner;\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n filterable?: boolean;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array':\n return 'dropdown';\n default:\n return 'shortText';\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n }\n\n addCustomField(params: AddFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const {\n form: { key, name, readApps, readUsers, writeApps, writeUsers },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const filterable = params.filterable ? { 'x-wix-filterable': true } : {};\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...type,\n 'x-wix-permissions': permissions,\n ...filterable,\n },\n },\n },\n };\n\n const request = params.schema?.id\n ? updateDataExtensionSchema({ dataExtensionSchema: schema })\n : createDataExtensionSchema({ dataExtensionSchema: schema });\n\n return httpClient.request(request).then((res) => res.data);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n\n return httpClient\n .request(updateDataExtensionSchema({ dataExtensionSchema: schema }))\n .then((res) => res.data);\n }\n\n fetchSchemas(fqdn: string) {\n const { httpClient } = this;\n\n return httpClient\n .request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: [RequestedField.ARCHIVED],\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AAYA;;AA8BA;;AAqDO,MAAME,0BAA0B,CAAC;EAKtC,OAAOC,YAAYA,CAACC,IAAsB,EAAE;IAC1C,QAAQA,IAAI;MACV,KAAK,WAAW;QACd,OAAO;UACLA,IAAI,EAAE,QAAQ;UACdC,MAAM,EAAE,aAAa;UACrBC,SAAS,EAAE;QACb,CAAC;MACH,KAAK,UAAU;QACb,OAAO;UACLF,IAAI,EAAE,QAAQ;UACdE,SAAS,EAAE;QACb,CAAC;MACH,KAAK,MAAM;QACT,OAAO;UACLF,IAAI,EAAE,QAAQ;UACdC,MAAM,EAAE;QACV,CAAC;MACH,KAAK,UAAU;QACb,OAAO;UACLD,IAAI,EAAE,QAAQ;UACdC,MAAM,EAAE;QACV,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UACLD,IAAI,EAAE;QACR,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UACLA,IAAI,EAAE;QACR,CAAC;MACH,KAAK,UAAU;QACb,OAAO;UACLA,IAAI,EAAE;QACR,CAAC;MACH,KAAK,UAAU;QACb,OAAO;UACLA,IAAI,EAAE,OAAO;UACbG,KAAK,EAAE;YACLH,IAAI,EAAE;UACR;QACF,CAAC;MACH;QACE,MAAM,IAAII,KAAK,CAAC,oBAAoBJ,IAAI,EAAE,CAAC;IAC/C;EACF;EAEA,OAAOK,YAAYA,CAACC,KAAyB,EAAmB;IAC9D,QAAQA,KAAK,CAACN,IAAI;MAChB,KAAK,QAAQ;QACX,IAAIM,KAAK,CAACC,cAAc,CAAC,MAAM,CAAC,EAAE;UAChC,OAAO,UAAU;QACnB;QAEA,QAAQD,KAAK,CAACL,MAAM;UAClB,KAAK,WAAW;YACd,OAAO,UAAU;UACnB,KAAK,MAAM;YACT,OAAO,MAAM;UACf,KAAK,aAAa;YAChB,OAAO,WAAW;UACpB;YACE,OAAO,UAAU;QACrB;MACF,KAAK,QAAQ;QACX,OAAO,SAAS;MAClB,KAAK,SAAS;QACZ,OAAO,SAAS;MAClB,KAAK,SAAS;QACZ,OAAO,UAAU;MACnB,KAAK,OAAO;QACV,OAAO,UAAU;MACnB;QACE,OAAO,WAAW;IACtB;EACF;EAEA,OAAOO,aAAaA,CAClBC,MAA2B,EAC3BC,GAAW,EACqB;IAAA,IAAAC,kBAAA;IAChC,MAAMC,QAA4B,IAAAD,kBAAA,GAAGF,MAAM,CAACI,UAAU,cAAAF,kBAAA,GAAjBA,kBAAA,CAAmBG,UAAU,qBAA7BH,kBAAA,CAAgCD,GAAG,CAAC;IAEzE,IAAI,CAACE,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAC7C;IACF;IAEA,IACE,OAAOA,QAAQ,CAACG,KAAK,KAAK,QAAQ,IAClC,OAAOH,QAAQ,CAACZ,IAAI,KAAK,QAAQ,IACjC,OAAOY,QAAQ,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EACjD;MACA;IACF;IAEA,OAAO;MAAE,GAAGA,QAAQ;MAAEI,EAAE,EAAEN;IAAI,CAAC;EACjC;EAEAO,WAAWA,CAACC,MAAwC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,+BApGvB,cAAc;IAqG3C,IAAI,CAACC,UAAU,GAAGH,MAAM,CAACG,UAAU;EACrC;EAEAC,cAAcA,CAACJ,MAAsB,EAAE;IAAA,IAAAK,cAAA,EAAAC,eAAA,EAAAC,eAAA;IACrC,MAAM;MAAEJ,UAAU;MAAEK;IAAoB,CAAC,GAAG,IAAI;IAChD,MAAM;MACJC,IAAI,EAAE;QAAEjB,GAAG;QAAEkB,IAAI;QAAEC,QAAQ;QAAEC,SAAS;QAAEC,SAAS;QAAEC;MAAW,CAAC;MAC/DC;IACF,CAAC,GAAGf,MAAM;IACV,MAAMlB,IAAI,GAAGF,0BAA0B,CAACC,YAAY,CAACmB,MAAM,CAACS,IAAI,CAAC3B,IAAI,CAAC;IAEtE,MAAMkC,WAAW,GAAG;MAClBC,IAAI,EAAE,CACJ,OAAO,EACP,IAAIL,SAAS,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,EACxC,IAAID,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAC9B;MACDO,KAAK,EAAE,CACL,OAAO,EACP,IAAIJ,UAAU,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,EACzC,IAAID,SAAS,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAElC,CAAC;IAED,MAAMM,UAAU,GAAGnB,MAAM,CAACmB,UAAU,GAAG;MAAE,kBAAkB,EAAE;IAAK,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM5B,MAA2B,GAAG;MAClCwB,IAAI;MACJK,SAAS,EAAEZ,mBAAmB;MAC9B,GAAGR,MAAM,CAACT,MAAM;MAChBI,UAAU,EAAE;QACVC,UAAU,EAAE;UACV,KAAAS,cAAA,GAAGL,MAAM,CAACT,MAAM,cAAAc,cAAA,GAAbA,cAAA,CAAeV,UAAU,qBAAzBU,cAAA,CAA2BT,UAAU;UACxC,CAACJ,GAAG,GAAG;YACL,KAAAc,eAAA,GAAGN,MAAM,CAACT,MAAM,cAAAe,eAAA,GAAbA,eAAA,CAAeX,UAAU,qBAAzBW,eAAA,CAA2BV,UAAU,CAACJ,GAAG,CAAC;YAC7CK,KAAK,EAAEa,IAAI;YACX,GAAG5B,IAAI;YACP,mBAAmB,EAAEkC,WAAW;YAChC,GAAGG;UACL;QACF;MACF;IACF,CAAC;IAED,MAAME,OAAO,GAAG,CAAAd,eAAA,GAAAP,MAAM,CAACT,MAAM,aAAbgB,eAAA,CAAeT,EAAE,GAC7B,IAAAwB,+BAAyB,EAAC;MAAEC,mBAAmB,EAAEhC;IAAO,CAAC,CAAC,GAC1D,IAAAiC,+BAAyB,EAAC;MAAED,mBAAmB,EAAEhC;IAAO,CAAC,CAAC;IAE9D,OAAOY,UAAU,CAACkB,OAAO,CAACA,OAAO,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC;EAC5D;EAEAC,kBAAkBA,CAAC5B,MAA0B,EAAE;IAAA,IAAA6B,eAAA,EAAAC,eAAA;IAC7C,MAAM;MAAE3B,UAAU;MAAEK;IAAoB,CAAC,GAAG,IAAI;IAChD,MAAM;MAAEV,EAAE;MAAEiB;IAAK,CAAC,GAAGf,MAAM;IAE3B,MAAMT,MAA2B,GAAG;MAClCwB,IAAI;MACJK,SAAS,EAAEZ,mBAAmB;MAC9B,GAAGR,MAAM,CAACT,MAAM;MAChBI,UAAU,EAAE;QACVC,UAAU,EAAE;UACV,KAAAiC,eAAA,GAAG7B,MAAM,CAACT,MAAM,cAAAsC,eAAA,GAAbA,eAAA,CAAelC,UAAU,qBAAzBkC,eAAA,CAA2BjC,UAAU;UACxC,CAACE,EAAE,GAAG;YACJ,KAAAgC,eAAA,GAAG9B,MAAM,CAACT,MAAM,cAAAuC,eAAA,GAAbA,eAAA,CAAenC,UAAU,qBAAzBmC,eAAA,CAA2BlC,UAAU,CAACE,EAAE,CAAC;YAC5C,gBAAgB,EAAE;UACpB;QACF;MACF;IACF,CAAC;IAED,OAAOK,UAAU,CACdkB,OAAO,CAAC,IAAAC,+BAAyB,EAAC;MAAEC,mBAAmB,EAAEhC;IAAO,CAAC,CAAC,CAAC,CACnEkC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC;EAC5B;EAEAI,YAAYA,CAAChB,IAAY,EAAE;IACzB,MAAM;MAAEZ;IAAW,CAAC,GAAG,IAAI;IAE3B,OAAOA,UAAU,CACdkB,OAAO,CACN,IAAAW,8BAAwB,EAAC;MACvBjB,IAAI;MACJkB,UAAU,EAAE,EAAE;MACdC,MAAM,EAAE,CAACC,qBAAc,CAACC,QAAQ;IAClC,CAAC,CACH,CAAC,CACAX,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC;EAC5B;AACF;AAACU,OAAA,CAAAzD,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","CollectionOptimisticActionsState","constructor","params","_defineProperty2","default","source","queryName","patchesCache","cacheNamespace","cacheKey","filter","Boolean","join","patches","get","observable","array","deep","set","makeObservable","latestMap","computed","reduce","map","optimisticPatch","patchedItemsEntries","originalItems","key","item","originalItem","Map","exports"],"sources":["../../../src/state/CollectionOptimisticActionsState.ts"],"sourcesContent":["import { computed, IObservableArray, makeObservable, observable } from 'mobx';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\n\nexport interface CollectionOptimisticActionsStateParams<T> {\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n readonly source: { queryName: string };\n readonly cacheNamespace?: string;\n}\n\nexport class CollectionOptimisticActionsState<T> {\n readonly patches;\n\n _patchesBeforeUnmount: OptimisticPatch<T>[] | null = null;\n\n constructor(params: CollectionOptimisticActionsStateParams<T>) {\n const {\n source: { queryName },\n patchesCache,\n cacheNamespace,\n } = params;\n\n const cacheKey = [cacheNamespace, queryName].filter(Boolean).join(':');\n let patches = patchesCache.get(cacheKey);\n\n if (patches == null) {\n patches = observable.array<OptimisticPatch<T>>([], {\n deep: false,\n });\n patchesCache.set(
|
|
1
|
+
{"version":3,"names":["_mobx","require","CollectionOptimisticActionsState","constructor","params","_defineProperty2","default","source","queryName","patchesCache","cacheNamespace","cacheKey","filter","Boolean","join","patches","get","observable","array","deep","set","makeObservable","latestMap","computed","reduce","map","optimisticPatch","patchedItemsEntries","originalItems","key","item","originalItem","Map","exports"],"sources":["../../../src/state/CollectionOptimisticActionsState.ts"],"sourcesContent":["import { computed, IObservableArray, makeObservable, observable } from 'mobx';\nimport { OptimisticPatch } from './CollectionOptimisticPatch';\n\nexport interface CollectionOptimisticActionsStateParams<T> {\n readonly patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n readonly source: { queryName: string };\n readonly cacheNamespace?: string;\n}\n\nexport class CollectionOptimisticActionsState<T> {\n readonly patches;\n\n _patchesBeforeUnmount: OptimisticPatch<T>[] | null = null;\n\n constructor(params: CollectionOptimisticActionsStateParams<T>) {\n const {\n source: { queryName },\n patchesCache,\n cacheNamespace,\n } = params;\n\n const cacheKey = [cacheNamespace, queryName].filter(Boolean).join(':');\n let patches = patchesCache.get(cacheKey);\n\n if (patches == null) {\n patches = observable.array<OptimisticPatch<T>>([], {\n deep: false,\n });\n patchesCache.set(cacheKey, patches);\n }\n\n this.patches = patches;\n\n makeObservable(this, {\n latestMap: computed,\n });\n }\n\n get latestMap() {\n return this.patches.reduce((map, optimisticPatch) => {\n const { patchedItemsEntries, originalItems } = optimisticPatch;\n for (const [key, item] of patchedItemsEntries) {\n const originalItem = originalItems.get(key);\n if (originalItem) {\n map.set(key, { optimisticPatch, item, originalItem });\n }\n }\n return map;\n }, new Map<string, { item: T; originalItem: T; optimisticPatch: OptimisticPatch<T> }>());\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AASO,MAAMC,gCAAgC,CAAI;EAK/CC,WAAWA,CAACC,MAAiD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,iCAFV,IAAI;IAGvD,MAAM;MACJC,MAAM,EAAE;QAAEC;MAAU,CAAC;MACrBC,YAAY;MACZC;IACF,CAAC,GAAGN,MAAM;IAEV,MAAMO,QAAQ,GAAG,CAACD,cAAc,EAAEF,SAAS,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IACtE,IAAIC,OAAO,GAAGN,YAAY,CAACO,GAAG,CAACL,QAAQ,CAAC;IAExC,IAAII,OAAO,IAAI,IAAI,EAAE;MACnBA,OAAO,GAAGE,gBAAU,CAACC,KAAK,CAAqB,EAAE,EAAE;QACjDC,IAAI,EAAE;MACR,CAAC,CAAC;MACFV,YAAY,CAACW,GAAG,CAACT,QAAQ,EAAEI,OAAO,CAAC;IACrC;IAEA,IAAI,CAACA,OAAO,GAAGA,OAAO;IAEtB,IAAAM,oBAAc,EAAC,IAAI,EAAE;MACnBC,SAAS,EAAEC;IACb,CAAC,CAAC;EACJ;EAEA,IAAID,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACP,OAAO,CAACS,MAAM,CAAC,CAACC,GAAG,EAAEC,eAAe,KAAK;MACnD,MAAM;QAAEC,mBAAmB;QAAEC;MAAc,CAAC,GAAGF,eAAe;MAC9D,KAAK,MAAM,CAACG,GAAG,EAAEC,IAAI,CAAC,IAAIH,mBAAmB,EAAE;QAC7C,MAAMI,YAAY,GAAGH,aAAa,CAACZ,GAAG,CAACa,GAAG,CAAC;QAC3C,IAAIE,YAAY,EAAE;UAChBN,GAAG,CAACL,GAAG,CAACS,GAAG,EAAE;YAAEH,eAAe;YAAEI,IAAI;YAAEC;UAAa,CAAC,CAAC;QACvD;MACF;MACA,OAAON,GAAG;IACZ,CAAC,EAAE,IAAIO,GAAG,CAA4E,CAAC,CAAC;EAC1F;AACF;AAACC,OAAA,CAAA/B,gCAAA,GAAAA,gCAAA","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ var _PaginationMode = require("./PaginationMode");
|
|
|
17
17
|
var _TaskState = require("./TaskState");
|
|
18
18
|
var _util = require("../util");
|
|
19
19
|
var _TransitionState = require("./TransitionState");
|
|
20
|
+
var _FetchTotalState = require("./FetchTotalState");
|
|
20
21
|
class CollectionState {
|
|
21
22
|
get queryKeyOptions() {
|
|
22
23
|
const {
|
|
@@ -285,6 +286,9 @@ class CollectionState {
|
|
|
285
286
|
this.fqdn = params.fqdn;
|
|
286
287
|
this.deferInitialLoading = params.deferInitialLoading;
|
|
287
288
|
this.queryCache = params.queryCache;
|
|
289
|
+
this.errorMonitor = params.errorMonitor;
|
|
290
|
+
this.onlineState = params.onlineState;
|
|
291
|
+
this.history = params.history;
|
|
288
292
|
this.fetchErrorMessage = params.fetchErrorMessage;
|
|
289
293
|
this.itemKey = params.itemKey;
|
|
290
294
|
this.itemName = params.itemName;
|
|
@@ -295,38 +299,6 @@ class CollectionState {
|
|
|
295
299
|
this.showToast = params.showToast ?? (() => ({
|
|
296
300
|
remove: () => {}
|
|
297
301
|
}));
|
|
298
|
-
this.query = new _QueryState.QueryState({
|
|
299
|
-
filters: params.filters,
|
|
300
|
-
search: params.search,
|
|
301
|
-
limit: params.limit,
|
|
302
|
-
history: params.persistQueryToUrl ? params.history : undefined,
|
|
303
|
-
refreshOnColumnsChange: params.refreshOnColumnsChange
|
|
304
|
-
});
|
|
305
|
-
this._paginationModeRef = params.paginationModeRef ?? {
|
|
306
|
-
current: params.paginationMode
|
|
307
|
-
};
|
|
308
|
-
this._paginationMode = new _PaginationMode.PaginationMode(this);
|
|
309
|
-
this.selectionConsistencyMode = params.selectionConsistencyMode ?? 'preserve';
|
|
310
|
-
this.result = new _QueryResultState.QueryResultState({
|
|
311
|
-
itemKey: params.itemKey,
|
|
312
|
-
originQuery: this.query.toComputed()
|
|
313
|
-
});
|
|
314
|
-
this.fetchesHistory = [];
|
|
315
|
-
this.bulkSelect = new _BulkSelectState.BulkSelectState({
|
|
316
|
-
disableAutoSelectAllCount: params.disableAutoSelectAllCount,
|
|
317
|
-
useNewSelectAllLogic: params.useNewSelectAllLogic,
|
|
318
|
-
collection: this,
|
|
319
|
-
scrollToTop: () => {
|
|
320
|
-
var _this$scrollableConte;
|
|
321
|
-
(_this$scrollableConte = this.scrollableContent) == null || _this$scrollableConte.scrollTo({
|
|
322
|
-
top: 0,
|
|
323
|
-
left: 0
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
this.errorMonitor = params.errorMonitor;
|
|
328
|
-
this.onlineState = params.onlineState;
|
|
329
|
-
this.history = params.history;
|
|
330
302
|
const defaultQueryOptions = {
|
|
331
303
|
queryFn: (0, _mobx.action)(() => this._queryFn(this.query.asComputed)),
|
|
332
304
|
keepPreviousData: true,
|
|
@@ -354,7 +326,41 @@ class CollectionState {
|
|
|
354
326
|
},
|
|
355
327
|
...defaultQueryOptions
|
|
356
328
|
});
|
|
329
|
+
this.query = new _QueryState.QueryState({
|
|
330
|
+
filters: params.filters,
|
|
331
|
+
search: params.search,
|
|
332
|
+
limit: params.limit,
|
|
333
|
+
history: params.persistQueryToUrl ? params.history : undefined,
|
|
334
|
+
refreshOnColumnsChange: params.refreshOnColumnsChange
|
|
335
|
+
});
|
|
357
336
|
this._resetReactQuery();
|
|
337
|
+
this._paginationModeRef = params.paginationModeRef ?? {
|
|
338
|
+
current: params.paginationMode
|
|
339
|
+
};
|
|
340
|
+
this._paginationMode = new _PaginationMode.PaginationMode(this);
|
|
341
|
+
this.selectionConsistencyMode = params.selectionConsistencyMode ?? 'preserve';
|
|
342
|
+
this.result = new _QueryResultState.QueryResultState({
|
|
343
|
+
itemKey: params.itemKey,
|
|
344
|
+
originQuery: this.query.toComputed(),
|
|
345
|
+
fetchTotal: params.fetchTotal ? new _FetchTotalState.FetchTotalState({
|
|
346
|
+
collection: this,
|
|
347
|
+
queryCache: this.queryCache,
|
|
348
|
+
fetchTotal: params.fetchTotal
|
|
349
|
+
}) : undefined
|
|
350
|
+
});
|
|
351
|
+
this.fetchesHistory = [];
|
|
352
|
+
this.bulkSelect = new _BulkSelectState.BulkSelectState({
|
|
353
|
+
disableAutoSelectAllCount: params.disableAutoSelectAllCount,
|
|
354
|
+
useNewSelectAllLogic: params.useNewSelectAllLogic,
|
|
355
|
+
collection: this,
|
|
356
|
+
scrollToTop: () => {
|
|
357
|
+
var _this$scrollableConte;
|
|
358
|
+
(_this$scrollableConte = this.scrollableContent) == null || _this$scrollableConte.scrollTo({
|
|
359
|
+
top: 0,
|
|
360
|
+
left: 0
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
});
|
|
358
364
|
if (params.initialPage) {
|
|
359
365
|
this.setInitialPage(params.initialPage);
|
|
360
366
|
}
|
|
@@ -619,6 +625,9 @@ class CollectionState {
|
|
|
619
625
|
get total() {
|
|
620
626
|
return this.result.total;
|
|
621
627
|
}
|
|
628
|
+
get totalStatus() {
|
|
629
|
+
return this.result.totalStatus;
|
|
630
|
+
}
|
|
622
631
|
get fetchedLastPage() {
|
|
623
632
|
const {
|
|
624
633
|
paginationMode: {
|
|
@@ -1028,7 +1037,7 @@ class CollectionState {
|
|
|
1028
1037
|
} = onlineState;
|
|
1029
1038
|
result.originQuery = query.asComputed;
|
|
1030
1039
|
onlineState.events.on('change', this.onOnlineStateChange);
|
|
1031
|
-
const disposers = [query.init(), this._registerQueryEvents(), bulkSelect.init(),
|
|
1040
|
+
const disposers = [query.init(), this._registerQueryEvents(), result.init(), bulkSelect.init(),
|
|
1032
1041
|
// react-query considers "mounted" only if listeners are subscribed
|
|
1033
1042
|
this.queryObserver.subscribe(() => {}), focusManager.subscribe(this._recoverIfError)];
|
|
1034
1043
|
initTask.runOnce(async () => {
|