@wix/bex-core 2.234.0 → 2.236.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.
Files changed (81) hide show
  1. package/dist/cjs/assets/locale/messages_da.json +26 -26
  2. package/dist/cjs/assets/locale/messages_it.json +26 -26
  3. package/dist/cjs/assets/locale/messages_ja.json +26 -26
  4. package/dist/cjs/assets/locale/messages_ko.json +1 -1
  5. package/dist/cjs/assets/locale/messages_no.json +26 -26
  6. package/dist/cjs/assets/locale/messages_pt.json +26 -26
  7. package/dist/cjs/assets/locale/messages_ru.json +26 -26
  8. package/dist/cjs/assets/locale/messages_sv.json +26 -26
  9. package/dist/cjs/assets/locale/messages_th.json +26 -26
  10. package/dist/cjs/assets/locale/messages_tr.json +26 -26
  11. package/dist/cjs/assets/locale/messages_uk.json +26 -26
  12. package/dist/cjs/assets/locale/messages_vi.json +26 -26
  13. package/dist/cjs/assets/locale/messages_zh.json +26 -26
  14. package/dist/cjs/index.js +5 -2
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/services/DataExtensionFieldOperationsService.js +235 -0
  17. package/dist/cjs/services/DataExtensionFieldOperationsService.js.map +1 -0
  18. package/dist/cjs/services/DataExtensionService/dataExtensionService.js +55 -2
  19. package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
  20. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +33 -0
  21. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  22. package/dist/cjs/services/translations.js.map +1 -1
  23. package/dist/cjs/state/CollectionOptimisticActions.js +4 -2
  24. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  25. package/dist/cjs/state/DataExtensionState.js +131 -48
  26. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  27. package/dist/cjs/state/DataExtensionStateBIReporter.js +23 -0
  28. package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
  29. package/dist/cjs/state/OptimisticActions.js.map +1 -1
  30. package/dist/cjs/types/DeepPartial.js +4 -0
  31. package/dist/cjs/types/DeepPartial.js.map +1 -0
  32. package/dist/esm/assets/locale/messages_da.json +26 -26
  33. package/dist/esm/assets/locale/messages_it.json +26 -26
  34. package/dist/esm/assets/locale/messages_ja.json +26 -26
  35. package/dist/esm/assets/locale/messages_ko.json +1 -1
  36. package/dist/esm/assets/locale/messages_no.json +26 -26
  37. package/dist/esm/assets/locale/messages_pt.json +26 -26
  38. package/dist/esm/assets/locale/messages_ru.json +26 -26
  39. package/dist/esm/assets/locale/messages_sv.json +26 -26
  40. package/dist/esm/assets/locale/messages_th.json +26 -26
  41. package/dist/esm/assets/locale/messages_tr.json +26 -26
  42. package/dist/esm/assets/locale/messages_uk.json +26 -26
  43. package/dist/esm/assets/locale/messages_vi.json +26 -26
  44. package/dist/esm/assets/locale/messages_zh.json +26 -26
  45. package/dist/esm/index.js +0 -2
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/services/DataExtensionFieldOperationsService.js +157 -0
  48. package/dist/esm/services/DataExtensionFieldOperationsService.js.map +1 -0
  49. package/dist/esm/services/DataExtensionService/dataExtensionService.js +45 -3
  50. package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
  51. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +26 -0
  52. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  53. package/dist/esm/state/CollectionOptimisticActions.js +6 -2
  54. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  55. package/dist/esm/state/DataExtensionState.js +94 -40
  56. package/dist/esm/state/DataExtensionState.js.map +1 -1
  57. package/dist/esm/state/DataExtensionStateBIReporter.js +20 -0
  58. package/dist/esm/state/DataExtensionStateBIReporter.js.map +1 -1
  59. package/dist/esm/types/DeepPartial.js +2 -0
  60. package/dist/esm/types/DeepPartial.js.map +1 -0
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/services/DataExtensionFieldOperationsService.d.ts +31 -0
  64. package/dist/types/services/DataExtensionFieldOperationsService.d.ts.map +1 -0
  65. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts +4 -1
  66. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
  67. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts +7 -0
  68. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts.map +1 -0
  69. package/dist/types/services/translations.d.ts +1 -1
  70. package/dist/types/services/translations.d.ts.map +1 -1
  71. package/dist/types/state/CollectionOptimisticActions.d.ts +2 -2
  72. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  73. package/dist/types/state/DataExtensionState.d.ts +45 -0
  74. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  75. package/dist/types/state/DataExtensionStateBIReporter.d.ts +5 -0
  76. package/dist/types/state/DataExtensionStateBIReporter.d.ts.map +1 -1
  77. package/dist/types/state/OptimisticActions.d.ts +5 -0
  78. package/dist/types/state/OptimisticActions.d.ts.map +1 -1
  79. package/dist/types/types/DeepPartial.d.ts +4 -0
  80. package/dist/types/types/DeepPartial.d.ts.map +1 -0
  81. package/package.json +4 -4
@@ -7,10 +7,15 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
7
7
  var _services = require("../services");
8
8
  var _TaskState = require("./TaskState");
9
9
  var _mobx = require("mobx");
10
- var _DataExtensionStateBIReporter = require("./DataExtensionStateBIReporter");
11
10
  var _util = require("../util");
12
11
  var _DataExtensionField = require("./DataExtension/DataExtensionField");
12
+ var _ConditionalModalState = require("./ConditionalModalState");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
14
  const MAX_CUSTOM_FIELDS = exports.MAX_CUSTOM_FIELDS = 50;
15
+
16
+ /**
17
+ * Manages data extension schemas and custom fields for a collection
18
+ */
14
19
  class DataExtensionState {
15
20
  get fqdnString() {
16
21
  return (0, _util.fqdnToString)(this.fqdn);
@@ -30,10 +35,17 @@ class DataExtensionState {
30
35
  (0, _defineProperty2.default)(this, "defaultPermissions", void 0);
31
36
  (0, _defineProperty2.default)(this, "disableUserDefinedWriting", void 0);
32
37
  (0, _defineProperty2.default)(this, "filterable", void 0);
38
+ (0, _defineProperty2.default)(this, "enableArchive", void 0);
39
+ (0, _defineProperty2.default)(this, "isArchivedPanelOpen", false);
40
+ // Lazy-loaded service for field operations (archive/restore/delete)
41
+ (0, _defineProperty2.default)(this, "_fieldOperationsService", void 0);
42
+ (0, _defineProperty2.default)(this, "_fieldOperationsServicePromise", void 0);
43
+ (0, _defineProperty2.default)(this, "deleteConfirmModal", new _ConditionalModalState.ConditionalModalState());
33
44
  (0, _defineProperty2.default)(this, "_extensionPoint", void 0);
34
45
  this.container = params.container;
35
46
  this.disableUserDefinedWriting = params.disableUserDefinedWriting;
36
47
  this.filterable = params.filterable;
48
+ this.enableArchive = params.enableArchive;
37
49
  this.closeSidePanel = params.closeSidePanel;
38
50
  this.fqdn = params.fqdn;
39
51
  this._extensionPoint = params.extensionPoint;
@@ -44,6 +56,8 @@ class DataExtensionState {
44
56
  allUserCustomFields: _mobx.computed,
45
57
  allAppsCustomFields: _mobx.computed,
46
58
  allCustomFields: _mobx.computed,
59
+ archivedItems: _mobx.computed,
60
+ shouldDisplayArchive: _mobx.computed,
47
61
  filterableCustomFields: _mobx.computed,
48
62
  availableUserCustomFields: _mobx.computed,
49
63
  availableAppsCustomFields: _mobx.computed,
@@ -57,7 +71,11 @@ class DataExtensionState {
57
71
  appSchemas: _mobx.computed,
58
72
  _upsertSchema: _mobx.action,
59
73
  containsPii: _mobx.observable,
60
- defaultPermissions: _mobx.observable
74
+ defaultPermissions: _mobx.observable,
75
+ isArchivedPanelOpen: _mobx.observable,
76
+ openArchivedPanel: _mobx.action,
77
+ closeArchivedPanel: _mobx.action,
78
+ openDeleteConfirmModal: _mobx.action
61
79
  });
62
80
  }
63
81
  get hasWritePermissions() {
@@ -80,59 +98,88 @@ class DataExtensionState {
80
98
  }
81
99
  return '';
82
100
  }
101
+ getArchiveSuccessToastMessage(fieldName) {
102
+ return this.enableArchive && fieldName ? this.container.translate('cairo.customFields.archive.success.toast.enabled', {
103
+ selectedField: fieldName
104
+ }) : this.container.translate('cairo.customFields.archive.success.toast');
105
+ }
106
+ getArchiveSuccessToastAction() {
107
+ return this.enableArchive ? {
108
+ text: this.container.translate('cairo.customFields.archive.success.toast.CTA'),
109
+ uiType: 'LINK',
110
+ onClick: () => {
111
+ var _this$openArchivedPan;
112
+ return (_this$openArchivedPan = this.openArchivedPanel) == null ? void 0 : _this$openArchivedPan.call(this);
113
+ }
114
+ } : undefined;
115
+ }
116
+
117
+ /**
118
+ * Lazily loads the field operations service to reduce bundle size.
119
+ * Only loads when archive/restore/delete operations are needed.
120
+ */
121
+ async getFieldOperationsService() {
122
+ if (this._fieldOperationsService) {
123
+ return this._fieldOperationsService;
124
+ }
125
+
126
+ // Reuse the same promise if already loading
127
+ if (this._fieldOperationsServicePromise) {
128
+ return this._fieldOperationsServicePromise;
129
+ }
130
+ this._fieldOperationsServicePromise = Promise.resolve().then(() => _interopRequireWildcard(require('../services/DataExtensionFieldOperationsService'))).then(module => {
131
+ const self = this;
132
+ this._fieldOperationsService = new module.DataExtensionFieldOperationsService({
133
+ container: this.container,
134
+ dataExtensionService: this.dataExtensionService,
135
+ get userSchema() {
136
+ return self.userSchema;
137
+ },
138
+ fqdnString: this.fqdnString,
139
+ enableArchive: this.enableArchive,
140
+ extractFieldValuesFromSchema: this.extractFieldValuesFromSchema.bind(this),
141
+ upsertSchema: this._upsertSchema.bind(this),
142
+ openArchivedPanel: this.openArchivedPanel.bind(this)
143
+ });
144
+ return this._fieldOperationsService;
145
+ });
146
+ return this._fieldOperationsServicePromise;
147
+ }
83
148
  async archiveField({
84
149
  id,
85
150
  origin,
86
151
  reportBi
87
152
  }) {
88
- const biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
153
+ const service = await this.getFieldOperationsService();
154
+ return service.archiveField({
155
+ id,
156
+ origin,
157
+ reportBi
158
+ });
159
+ }
160
+ async restoreField({
161
+ id,
162
+ origin,
163
+ reportBi
164
+ }) {
165
+ const service = await this.getFieldOperationsService();
166
+ return service.restoreField({
167
+ id,
168
+ origin,
169
+ reportBi
170
+ });
171
+ }
172
+ async deleteField({
173
+ id,
174
+ origin,
175
+ reportBi
176
+ }) {
177
+ const service = await this.getFieldOperationsService();
178
+ return service.deleteField({
179
+ id,
180
+ origin,
89
181
  reportBi
90
182
  });
91
- if (id == null) {
92
- return;
93
- }
94
- try {
95
- var _this$container$showT, _this$container;
96
- const {
97
- dataExtensionSchema
98
- } = await this.dataExtensionService.archiveCustomField({
99
- schema: this.userSchema,
100
- fqdn: this.fqdnString,
101
- id
102
- });
103
- if (dataExtensionSchema) {
104
- this._upsertSchema(dataExtensionSchema);
105
- }
106
- (_this$container$showT = (_this$container = this.container).showToast) == null || _this$container$showT.call(_this$container, {
107
- message: this.container.translate('cairo.customFields.archive.success.toast'),
108
- type: 'SUCCESS',
109
- biName: 'cairo-archive-custom-field-success-toast'
110
- });
111
- } catch (e) {
112
- var _this$container$showT2, _this$container2;
113
- (_this$container$showT2 = (_this$container2 = this.container).showToast) == null || _this$container$showT2.call(_this$container2, {
114
- message: this.container.translate('cairo.customFields.archive.technicalError'),
115
- action: {
116
- uiType: 'LINK',
117
- text: this.container.translate('cairo.toast.retry'),
118
- onClick: () => {
119
- biReporter.reportArchiveTryAgain();
120
- this.archiveField({
121
- id,
122
- origin,
123
- reportBi
124
- });
125
- },
126
- removeToastOnClick: true
127
- },
128
- type: 'ERROR',
129
- biName: 'cairo-archive-custom-field-error-toast'
130
- });
131
- biReporter.reportArchiveFieldFailed({
132
- formValues: this.extractFieldValuesFromSchema(id),
133
- origin
134
- });
135
- }
136
183
  }
137
184
  extractFieldValuesFromSchema(fieldId) {
138
185
  var _customField$xWixPi;
@@ -303,6 +350,25 @@ class DataExtensionState {
303
350
  get allCustomFields() {
304
351
  return [...this.allUserCustomFields, ...this.allAppsCustomFields];
305
352
  }
353
+ get archivedItems() {
354
+ var _userSchema$jsonSchem;
355
+ const userSchema = this.userSchema;
356
+ if (!(userSchema != null && (_userSchema$jsonSchem = userSchema.jsonSchema) != null && _userSchema$jsonSchem.properties)) {
357
+ return [];
358
+ }
359
+ const properties = userSchema.jsonSchema.properties;
360
+ return Object.keys(properties).filter(key => properties[key]['x-wix-archived']).map(key => {
361
+ var _properties$key;
362
+ return {
363
+ id: key,
364
+ label: ((_properties$key = properties[key]) == null ? void 0 : _properties$key.title) || key,
365
+ ...properties[key]
366
+ };
367
+ });
368
+ }
369
+ get shouldDisplayArchive() {
370
+ return this.enableArchive && this.archivedItems.length > 0;
371
+ }
306
372
  get filterableCustomFields() {
307
373
  if (!this.filterable) {
308
374
  return [];
@@ -374,6 +440,23 @@ class DataExtensionState {
374
440
  });
375
441
  }
376
442
  }
443
+ openArchivedPanel() {
444
+ if (this.enableArchive) {
445
+ this.isArchivedPanelOpen = true;
446
+ }
447
+ }
448
+ closeArchivedPanel() {
449
+ this.isArchivedPanelOpen = false;
450
+ }
451
+ openDeleteConfirmModal({
452
+ id,
453
+ origin
454
+ }) {
455
+ this.deleteConfirmModal.open({
456
+ id,
457
+ origin
458
+ });
459
+ }
377
460
  }
378
461
  exports.DataExtensionState = DataExtensionState;
379
462
  //# sourceMappingURL=DataExtensionState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","_DataExtensionField","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","disableUserDefinedWriting","filterable","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","archiveField","id","origin","reportBi","biReporter","DataExtensionStateBIReporter","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","showToast","call","message","type","biName","e","_this$container$showT2","_this$container2","uiType","text","onClick","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","extractFieldValuesFromSchema","fieldId","_customField$xWixPi","customField","toCustomField","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","Object","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n\n _extensionPoint;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.closeSidePanel = params.closeSidePanel;\n this.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const biReporter = new DataExtensionStateBIReporter({\n reportBi,\n });\n if (id == null) {\n return;\n }\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionService.archiveCustomField({\n schema: this.userSchema,\n fqdn: this.fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n this._upsertSchema(dataExtensionSchema);\n }\n\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.success.toast',\n ),\n type: 'SUCCESS',\n biName: 'cairo-archive-custom-field-success-toast',\n });\n } catch (e) {\n this.container.showToast?.({\n message: this.container.translate(\n 'cairo.customFields.archive.technicalError',\n ),\n action: {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin, reportBi });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n biReporter.reportArchiveFieldFailed({\n formValues: this.extractFieldValuesFromSchema(id),\n origin,\n });\n }\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii']?.enabled;\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title || key,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n permissions: schema['x-wix-permissions'],\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getSchemaAndFieldsByNamespace(namespace: string) {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n\n const schema = _dataExtensionSchemas.find((s) => s.namespace === namespace);\n\n if (!schema) {\n return {};\n }\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: namespace === userFieldsNamespace ? 'user' : 'app',\n namespace,\n },\n );\n\n return {\n schema,\n fields,\n };\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n _upsertSchema(newSchema: DataExtensionSchema) {\n const { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.map((schema) =>\n schema.namespace === newSchema.namespace ? newSchema : schema,\n );\n }\n }\n\n get userSchema() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.find(\n (s) => s.namespace === userFieldsNamespace,\n );\n }\n\n get _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\n );\n }\n\n get appSchemas() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.filter(\n (s) => s.namespace !== userFieldsNamespace,\n );\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n this._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_services","require","_TaskState","_mobx","_util","_DataExtensionField","_ConditionalModalState","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_CUSTOM_FIELDS","exports","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","TaskState","ConditionalModalState","container","disableUserDefinedWriting","filterable","enableArchive","closeSidePanel","_extensionPoint","extensionPoint","dataExtensionService","DataExtensionSchemaService","containsPii","defaultPermissions","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","archivedItems","shouldDisplayArchive","filterableCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","_dataExtensionSchemasBase","observable","ref","_dataExtensionSchemas","userSchema","appSchemas","_upsertSchema","action","isArchivedPanelOpen","openArchivedPanel","closeArchivedPanel","openDeleteConfirmModal","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","getArchiveSuccessToastMessage","fieldName","selectedField","getArchiveSuccessToastAction","text","uiType","onClick","_this$openArchivedPan","getFieldOperationsService","_fieldOperationsService","_fieldOperationsServicePromise","Promise","resolve","then","module","self","DataExtensionFieldOperationsService","extractFieldValuesFromSchema","bind","upsertSchema","archiveField","id","origin","reportBi","service","restoreField","deleteField","fieldId","_customField$xWixPi","customField","toCustomField","type","title","read","write","isPiiField","enabled","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","Boolean","_toCustomField","schema","editable","owner","namespace","label","maxLength","options","enum","properties","isSupportedFieldType","getAvailableCustomFieldsInSchema","requiredPermissions","filteredFields","keys","filter","field","isAllowedType","isPermitted","includesAllReadPermissions","sorted","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","getSchemaAndFieldsByNamespace","_schema$jsonSchema","userFieldsNamespace","find","s","fields","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","_appSchema$jsonSchema2","concat","_userSchema$jsonSchem","_properties$key","length","allNamespaces","_this$userSchema3","init","initTask","runOnce","fetchSchemas","newSchema","index","findIndex","dataExtensionSchemas","runInAction","deleteConfirmModal","open"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOwner,\n CustomFieldType,\n DataExtensionField,\n DataExtensionPermission,\n DataExtensionSchemaService,\n DataExtensionType,\n ReportBI,\n} from '../services';\nimport type { DataExtensionFieldOperationsService } from '../services/DataExtensionFieldOperationsService';\nimport { TaskState } from './TaskState';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { Fqdn } from '../model';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { CustomFieldForm } from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\nimport { ConditionalModalState } from './ConditionalModalState';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n fqdn: Fqdn;\n}\nexport interface DefaultPermissionsConfig {\n installedApps?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n siteVisitors?: {\n hide?: boolean;\n defaultRead?: boolean;\n defaultWrite?: boolean;\n };\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n containsPii?: boolean;\n filterable?: boolean;\n /**\n * When set to true, will disable \"Manage custom fields\" action in the page actions menu.\n */\n disableDefaultPageAction?: boolean;\n extensionPoint?: string;\n defaultPermissions?: DefaultPermissionsConfig;\n /**\n * When set to true, will enable the \"Archived Fields\" button in the custom columns panel.\n */\n enableArchive?: boolean;\n}\n\nexport const MAX_CUSTOM_FIELDS = 50;\n\n/**\n * Manages data extension schemas and custom fields for a collection\n */\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n _hasWritePermissions?: boolean;\n readonly closeSidePanel;\n readonly fqdn;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n _dataExtensionSchemasBase: DataExtensionSchema[] = [];\n containsPii?: boolean;\n defaultPermissions?: DefaultPermissionsConfig;\n readonly disableUserDefinedWriting;\n readonly filterable;\n readonly enableArchive?: boolean;\n isArchivedPanelOpen: boolean = false;\n\n // Lazy-loaded service for field operations (archive/restore/delete)\n private _fieldOperationsService?: DataExtensionFieldOperationsService;\n private _fieldOperationsServicePromise?: Promise<DataExtensionFieldOperationsService>;\n\n readonly deleteConfirmModal = new ConditionalModalState<{\n id: string;\n origin: string;\n }>();\n\n _extensionPoint;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.filterable = params.filterable;\n this.enableArchive = params.enableArchive;\n this.closeSidePanel = params.closeSidePanel;\n this.fqdn = params.fqdn;\n this._extensionPoint = params.extensionPoint;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.containsPii = params.containsPii;\n this.defaultPermissions = params.defaultPermissions;\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n archivedItems: computed,\n shouldDisplayArchive: computed,\n filterableCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n _dataExtensionSchemasBase: observable.ref,\n _dataExtensionSchemas: computed,\n userSchema: computed,\n appSchemas: computed,\n _upsertSchema: action,\n containsPii: observable,\n defaultPermissions: observable,\n isArchivedPanelOpen: observable,\n openArchivedPanel: action,\n closeArchivedPanel: action,\n openDeleteConfirmModal: action,\n });\n }\n\n get hasWritePermissions() {\n if (this._hasWritePermissions == null) {\n this._hasWritePermissions = this.container.user.permissions.includes(\n 'DATA_EXTENSION_SCHEMA.WRITE',\n );\n }\n\n return this._hasWritePermissions;\n }\n\n get disableAddCustomField() {\n return !this.hasWritePermissions || this.isReachedMaxCustomFields;\n }\n\n get disableAddCustomFieldContent() {\n if (!this.hasWritePermissions) {\n return this.container.translate(\n 'cairo.customFields.writePermission.tooltip',\n );\n }\n\n if (this.isReachedMaxCustomFields) {\n return this.container.translate('cairo.customFields.maxFields.tooltip', {\n max: MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n getArchiveSuccessToastMessage(fieldName?: string): string {\n return this.enableArchive && fieldName\n ? this.container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : this.container.translate('cairo.customFields.archive.success.toast');\n }\n\n getArchiveSuccessToastAction() {\n return this.enableArchive\n ? {\n text: this.container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => this.openArchivedPanel?.(),\n }\n : undefined;\n }\n\n /**\n * Lazily loads the field operations service to reduce bundle size.\n * Only loads when archive/restore/delete operations are needed.\n */\n private async getFieldOperationsService(): Promise<DataExtensionFieldOperationsService> {\n if (this._fieldOperationsService) {\n return this._fieldOperationsService;\n }\n\n // Reuse the same promise if already loading\n if (this._fieldOperationsServicePromise) {\n return this._fieldOperationsServicePromise;\n }\n\n this._fieldOperationsServicePromise = import(\n '../services/DataExtensionFieldOperationsService'\n ).then((module) => {\n const self = this;\n this._fieldOperationsService =\n new module.DataExtensionFieldOperationsService({\n container: this.container,\n dataExtensionService: this.dataExtensionService,\n get userSchema() {\n return self.userSchema;\n },\n fqdnString: this.fqdnString,\n enableArchive: this.enableArchive,\n extractFieldValuesFromSchema:\n this.extractFieldValuesFromSchema.bind(this),\n upsertSchema: this._upsertSchema.bind(this),\n openArchivedPanel: this.openArchivedPanel.bind(this),\n });\n return this._fieldOperationsService;\n });\n\n return this._fieldOperationsServicePromise;\n }\n\n async archiveField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.archiveField({ id, origin, reportBi });\n }\n\n async restoreField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.restoreField({ id, origin, reportBi });\n }\n\n async deleteField({\n id,\n origin,\n reportBi,\n }: {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n }) {\n const service = await this.getFieldOperationsService();\n return service.deleteField({ id, origin, reportBi });\n }\n\n extractFieldValuesFromSchema(fieldId: string): CustomFieldForm | undefined {\n if (!this.userSchema) {\n return;\n }\n\n const customField = DataExtensionSchemaService.toCustomField(\n this.userSchema,\n fieldId,\n );\n\n if (!customField || !customField.type || !customField.title) {\n return;\n }\n\n const { read, write } = customField['x-wix-permissions'];\n const isPiiField = customField['x-wix-pii']?.enabled;\n const readApps = read?.includes('apps');\n const readUsers = read?.includes('users-of-users');\n const writeApps = write?.includes('apps');\n const writeUsers = write?.includes('users-of-users');\n\n return {\n type: DataExtensionSchemaService.toCustomType(customField),\n name: customField.title,\n key: customField.id,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii: Boolean(isPiiField),\n };\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n namespace,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n namespace: string;\n }): CustomField | undefined {\n if (!DataExtensionSchemaService.toCustomType(schema)) {\n return;\n }\n return {\n id: key,\n label: schema?.title || key,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema) as CustomFieldType,\n editable,\n filterable: schema['x-wix-filterable'],\n owner,\n properties: schema?.properties ?? {},\n namespace,\n permissions: schema['x-wix-permissions'],\n };\n }\n\n private isSupportedFieldType(type?: string): type is DataExtensionType {\n if (!type) {\n return false;\n }\n return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);\n }\n\n private getAvailableCustomFieldsInSchema(\n properties: {\n [key: string]: DataExtensionField;\n },\n {\n editable,\n requiredPermissions,\n owner,\n namespace,\n }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n namespace: string;\n },\n ): CustomField[] {\n const filteredFields = Object.keys(properties).filter((key) => {\n const field = properties[key];\n const isAllowedType =\n this.isSupportedFieldType(field.type) ||\n (field.type === 'object' && field['x-wix-object-type'] === 'FILE/V1');\n\n const isPermitted =\n requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions);\n\n return !field['x-wix-archived'] && isAllowedType && isPermitted;\n });\n\n const sorted = filteredFields.sort((a, b) => {\n const aVal = new Date(properties[a]['x-wix-created-date']);\n const bVal = new Date(properties[b]['x-wix-created-date']);\n\n if (isNaN(bVal.valueOf()) || isNaN(aVal.valueOf())) {\n return 0;\n }\n\n return aVal.valueOf() - bVal.valueOf();\n });\n\n return sorted\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable,\n owner,\n namespace,\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n /**\n * Available custom fields, excluding archived fields\n */\n get availableUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n });\n }\n\n get availableAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, schema) => {\n return [...prev, ...this.getAvailableCustomFieldsForApp(schema)];\n }, [] as CustomField[]) ?? []\n );\n }\n\n getSchemaAndFieldsByNamespace(namespace: string) {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n\n const schema = _dataExtensionSchemas.find((s) => s.namespace === namespace);\n\n if (!schema) {\n return {};\n }\n\n const fields = this.getAvailableCustomFieldsInSchema(\n schema.jsonSchema?.properties || {},\n {\n editable: false,\n owner: namespace === userFieldsNamespace ? 'user' : 'app',\n namespace,\n },\n );\n\n return {\n schema,\n fields,\n };\n }\n\n getAvailableCustomFieldsForApp(\n appSchema: DataExtensionSchema,\n ): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n appSchema.jsonSchema?.properties || {};\n\n return this.getAvailableCustomFieldsInSchema(properties, {\n editable: false,\n requiredPermissions: ['users'],\n owner: 'app',\n namespace: appSchema.namespace as string,\n });\n }\n\n get availableCustomFields(): CustomField[] {\n return [\n ...this.availableUserCustomFields,\n ...this.availableAppsCustomFields,\n ];\n }\n\n get allUserCustomFields(): CustomField[] {\n const properties: { [key: string]: DataExtensionField } =\n this.userSchema?.jsonSchema?.properties || {};\n\n return Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n namespace: '_user_fields',\n }),\n )\n .filter(Boolean) as CustomField[];\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, appSchema) => {\n const properties: { [key: string]: DataExtensionField } =\n appSchema?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties)\n .map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n namespace: appSchema.namespace as string,\n }),\n )\n .filter(Boolean) as CustomField[],\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get archivedItems() {\n const userSchema = this.userSchema;\n if (!userSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const properties = userSchema.jsonSchema.properties;\n return Object.keys(properties)\n .filter((key) => properties[key]['x-wix-archived'])\n .map((key) => ({\n id: key,\n label: properties[key]?.title || key,\n ...properties[key],\n }));\n }\n\n get shouldDisplayArchive() {\n return this.enableArchive && this.archivedItems.length > 0;\n }\n\n get filterableCustomFields(): CustomField[] {\n if (!this.filterable) {\n return [];\n }\n\n return this.availableCustomFields.filter((field) => field.filterable);\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;\n }\n\n get allNamespaces() {\n return [\n this.userSchema?.namespace,\n ...(this.appSchemas || []).map((schema) => schema.namespace),\n ].filter(Boolean) as string[];\n }\n\n init() {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchSchemas();\n });\n\n return () => {};\n }\n\n _upsertSchema(newSchema: DataExtensionSchema) {\n const { _dataExtensionSchemasBase } = this;\n\n const index = _dataExtensionSchemasBase.findIndex(\n (schema) => schema.namespace === newSchema?.namespace,\n );\n\n if (index === -1) {\n this._dataExtensionSchemasBase = [\n ..._dataExtensionSchemasBase,\n newSchema,\n ];\n } else {\n this._dataExtensionSchemasBase = _dataExtensionSchemasBase.map((schema) =>\n schema.namespace === newSchema.namespace ? newSchema : schema,\n );\n }\n }\n\n get userSchema() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.find(\n (s) => s.namespace === userFieldsNamespace,\n );\n }\n\n get _dataExtensionSchemas() {\n const { _extensionPoint, _dataExtensionSchemasBase } = this;\n return _dataExtensionSchemasBase.filter((s: DataExtensionSchema) =>\n _extensionPoint\n ? s.extensionPoint === _extensionPoint\n : s.extensionPoint == null || s.extensionPoint === 'ROOT',\n );\n }\n\n get appSchemas() {\n const {\n _dataExtensionSchemas,\n dataExtensionService: { userFieldsNamespace },\n } = this;\n return _dataExtensionSchemas.filter(\n (s) => s.namespace !== userFieldsNamespace,\n );\n }\n\n async fetchSchemas() {\n const { dataExtensionService } = this;\n\n if (this.isFqdnValid) {\n const { dataExtensionSchemas } = await dataExtensionService.fetchSchemas(\n this.fqdnString,\n );\n\n runInAction(() => {\n this._dataExtensionSchemasBase = dataExtensionSchemas ?? [];\n });\n }\n }\n\n openArchivedPanel() {\n if (this.enableArchive) {\n this.isArchivedPanelOpen = true;\n }\n }\n\n closeArchivedPanel() {\n this.isArchivedPanelOpen = false;\n }\n\n openDeleteConfirmModal({ id, origin }: { id: string; origin: string }) {\n this.deleteConfirmModal.open({ id, origin });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -38,6 +38,29 @@ class DataExtensionStateBIReporter {
38
38
  loaction: 'toast'
39
39
  }));
40
40
  });
41
+ (0, _defineProperty2.default)(this, "reportRestoreFieldFailed", ({
42
+ origin,
43
+ formValues
44
+ }) => {
45
+ if (!formValues) {
46
+ return;
47
+ }
48
+ this.reportBi((0, _util.withoutDefaults)(_v.cairoDataExtensionUnsuccessfulUpdateInServer)({
49
+ actionName: 'Restore',
50
+ errorType: 'Technical issue',
51
+ origin,
52
+ permissions: this.getBiPermissions(formValues),
53
+ fieldType: formValues.type,
54
+ fieldName: formValues.name,
55
+ key: formValues.key
56
+ }));
57
+ });
58
+ (0, _defineProperty2.default)(this, "reportRestoreTryAgain", () => {
59
+ this.reportBi((0, _util.withoutDefaults)(_v.cairoTryAgainClicked)({
60
+ actionName: 'Restore custom field',
61
+ loaction: 'toast'
62
+ }));
63
+ });
41
64
  const {
42
65
  reportBi
43
66
  } = params;
@@ -1 +1 @@
1
- {"version":3,"names":["_util","require","_v","DataExtensionStateBIReporter","constructor","params","_defineProperty2","default","ctaName","reportBi","withoutDefaults","cairoModalCtaClicked","modalName","origin","formValues","cairoDataExtensionUnsuccessfulUpdateInServer","actionName","errorType","permissions","getBiPermissions","fieldType","type","fieldName","name","key","cairoTryAgainClicked","loaction","readApps","readUsers","writeApps","writeUsers","apps","users","push","JSON","stringify","length","join","exports"],"sources":["../../../src/state/DataExtensionStateBIReporter.ts"],"sourcesContent":["import { ReportBI } from '../services';\nimport { withoutDefaults } from '../util';\nimport {\n cairoDataExtensionUnsuccessfulUpdateInServer,\n cairoModalCtaClicked,\n cairoTryAgainClicked,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { CustomFieldForm } from './CustomFieldModalState';\n\nexport interface DataExtensionStateBIReporterParams {\n reportBi: ReportBI;\n}\n\nexport class DataExtensionStateBIReporter {\n readonly reportBi: ReportBI;\n\n constructor(params: Readonly<DataExtensionStateBIReporterParams>) {\n const { reportBi } = params;\n\n this.reportBi = reportBi;\n }\n\n reportArchiveFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Archive custom field',\n }),\n );\n };\n\n getBiPermissions(formValues: CustomFieldForm) {\n const { readApps, readUsers, writeApps, writeUsers } = formValues;\n const apps = [];\n const users = [];\n\n if (readApps) {\n apps.push('Read');\n }\n\n if (writeApps) {\n apps.push('Write');\n }\n\n if (readUsers) {\n users.push('Read');\n }\n\n if (writeUsers) {\n users.push('Write');\n }\n\n return JSON.stringify({\n 'Installed apps': apps.length !== 0 ? apps.join(' and ') : null,\n 'Site visitors': users.length !== 0 ? users.join(' and ') : null,\n });\n }\n\n reportArchiveFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Archive',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportArchiveTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Archive custom field',\n loaction: 'toast',\n }),\n );\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,EAAA,GAAAD,OAAA;AAWO,MAAME,4BAA4B,CAAC;EAGxCC,WAAWA,CAACC,MAAoD,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6CAM7BC,OAAe,IAAK;MACvD,IAAI,CAACC,QAAQ,CACX,IAAAC,qBAAe,EAACC,uBAAoB,CAAC,CAAC;QACpCH,OAAO;QACPI,SAAS,EAAE;MACb,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,oCA6B0B,CAAC;MAC1BM,MAAM;MACNC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACA,UAAU,EAAE;QACf;MACF;MAEA,IAAI,CAACL,QAAQ,CACX,IAAAC,qBAAe,EAACK,+CAA4C,CAAC,CAAC;QAC5DC,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,iBAAiB;QAC5BJ,MAAM;QACNK,WAAW,EAAE,IAAI,CAACC,gBAAgB,CAACL,UAAU,CAAC;QAC9CM,SAAS,EAAEN,UAAU,CAACO,IAAI;QAC1BC,SAAS,EAAER,UAAU,CAACS,IAAI;QAC1BC,GAAG,EAAEV,UAAU,CAACU;MAClB,CAAC,CACH,CAAC;IACH,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,iCAEuB,MAAM;MAC5B,IAAI,CAACE,QAAQ,CACX,IAAAC,qBAAe,EAACe,uBAAoB,CAAC,CAAC;QACpCT,UAAU,EAAE,sBAAsB;QAClCU,QAAQ,EAAE;MACZ,CAAC,CACH,CAAC;IACH,CAAC;IAxEC,MAAM;MAAEjB;IAAS,CAAC,GAAGJ,MAAM;IAE3B,IAAI,CAACI,QAAQ,GAAGA,QAAQ;EAC1B;EAWAU,gBAAgBA,CAACL,UAA2B,EAAE;IAC5C,MAAM;MAAEa,QAAQ;MAAEC,SAAS;MAAEC,SAAS;MAAEC;IAAW,CAAC,GAAGhB,UAAU;IACjE,MAAMiB,IAAI,GAAG,EAAE;IACf,MAAMC,KAAK,GAAG,EAAE;IAEhB,IAAIL,QAAQ,EAAE;MACZI,IAAI,CAACE,IAAI,CAAC,MAAM,CAAC;IACnB;IAEA,IAAIJ,SAAS,EAAE;MACbE,IAAI,CAACE,IAAI,CAAC,OAAO,CAAC;IACpB;IAEA,IAAIL,SAAS,EAAE;MACbI,KAAK,CAACC,IAAI,CAAC,MAAM,CAAC;IACpB;IAEA,IAAIH,UAAU,EAAE;MACdE,KAAK,CAACC,IAAI,CAAC,OAAO,CAAC;IACrB;IAEA,OAAOC,IAAI,CAACC,SAAS,CAAC;MACpB,gBAAgB,EAAEJ,IAAI,CAACK,MAAM,KAAK,CAAC,GAAGL,IAAI,CAACM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;MAC/D,eAAe,EAAEL,KAAK,CAACI,MAAM,KAAK,CAAC,GAAGJ,KAAK,CAACK,IAAI,CAAC,OAAO,CAAC,GAAG;IAC9D,CAAC,CAAC;EACJ;AAkCF;AAACC,OAAA,CAAAnC,4BAAA,GAAAA,4BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_util","require","_v","DataExtensionStateBIReporter","constructor","params","_defineProperty2","default","ctaName","reportBi","withoutDefaults","cairoModalCtaClicked","modalName","origin","formValues","cairoDataExtensionUnsuccessfulUpdateInServer","actionName","errorType","permissions","getBiPermissions","fieldType","type","fieldName","name","key","cairoTryAgainClicked","loaction","readApps","readUsers","writeApps","writeUsers","apps","users","push","JSON","stringify","length","join","exports"],"sources":["../../../src/state/DataExtensionStateBIReporter.ts"],"sourcesContent":["import { ReportBI } from '../services';\nimport { withoutDefaults } from '../util';\nimport {\n cairoDataExtensionUnsuccessfulUpdateInServer,\n cairoModalCtaClicked,\n cairoTryAgainClicked,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { CustomFieldForm } from './CustomFieldModalState';\n\nexport interface DataExtensionStateBIReporterParams {\n reportBi: ReportBI;\n}\n\nexport class DataExtensionStateBIReporter {\n readonly reportBi: ReportBI;\n\n constructor(params: Readonly<DataExtensionStateBIReporterParams>) {\n const { reportBi } = params;\n\n this.reportBi = reportBi;\n }\n\n reportArchiveFieldModalCtaClicked = (ctaName: string) => {\n this.reportBi(\n withoutDefaults(cairoModalCtaClicked)({\n ctaName,\n modalName: 'Archive custom field',\n }),\n );\n };\n\n getBiPermissions(formValues: CustomFieldForm) {\n const { readApps, readUsers, writeApps, writeUsers } = formValues;\n const apps = [];\n const users = [];\n\n if (readApps) {\n apps.push('Read');\n }\n\n if (writeApps) {\n apps.push('Write');\n }\n\n if (readUsers) {\n users.push('Read');\n }\n\n if (writeUsers) {\n users.push('Write');\n }\n\n return JSON.stringify({\n 'Installed apps': apps.length !== 0 ? apps.join(' and ') : null,\n 'Site visitors': users.length !== 0 ? users.join(' and ') : null,\n });\n }\n\n reportArchiveFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Archive',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportArchiveTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Archive custom field',\n loaction: 'toast',\n }),\n );\n };\n\n reportRestoreFieldFailed = ({\n origin,\n formValues,\n }: {\n origin: string;\n formValues?: CustomFieldForm;\n }) => {\n if (!formValues) {\n return;\n }\n\n this.reportBi(\n withoutDefaults(cairoDataExtensionUnsuccessfulUpdateInServer)({\n actionName: 'Restore',\n errorType: 'Technical issue',\n origin,\n permissions: this.getBiPermissions(formValues),\n fieldType: formValues.type,\n fieldName: formValues.name,\n key: formValues.key,\n }),\n );\n };\n\n reportRestoreTryAgain = () => {\n this.reportBi(\n withoutDefaults(cairoTryAgainClicked)({\n actionName: 'Restore custom field',\n loaction: 'toast',\n }),\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/state/OptimisticActions.ts"],"sourcesContent":["import { ToastConfig } from '../model';\nimport { EventuallyUpdated } from './CollectionOptimisticExecutor';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @deprecated Use the prop `errorToast={(err, {retry}) => { action:{onClick: () {retry();} }}}` instead.\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[] | null | undefined | void>;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface OptimisticActions<T> {\n createOne(item: T, params: CreateManyParams<T>): void;\n createMany(items: T[], params: CreateManyParams<T>): void;\n\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>): void;\n updateOne<R>(item: T, params: UpdateManyParams<T, R>): void;\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>): void;\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>): void;\n deleteAll<R>(params: UpdateAllParams<R>): void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/state/OptimisticActions.ts"],"sourcesContent":["import { ToastConfig } from '../model';\nimport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nimport { DeepPartial } from '../types/DeepPartial';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @deprecated Use the prop `errorToast={(err, {retry}) => { action:{onClick: () {retry();} }}}` instead.\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[] | null | undefined | void>;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n\n /**\n * Partial data to patch the items with.\n */\n patch?: DeepPartial<T>;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface OptimisticActions<T> {\n createOne(item: T, params: CreateManyParams<T>): void;\n createMany(items: T[], params: CreateManyParams<T>): void;\n\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>): void;\n updateOne<R>(item: T, params: UpdateManyParams<T, R>): void;\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>): void;\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>): void;\n deleteAll<R>(params: UpdateAllParams<R>): void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=DeepPartial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/types/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object\n ? T extends (infer U)[]\n ? DeepPartial<U>[]\n : { [P in keyof T]?: DeepPartial<T[P]> }\n : T;\n"],"mappings":"","ignoreList":[]}