@wix/bex-core 2.65.0 → 2.67.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 (42) hide show
  1. package/dist/cjs/hooks/paginationModeConfig.js.map +1 -1
  2. package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
  3. package/dist/cjs/services/dataExtensionService.js +5 -1
  4. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  5. package/dist/cjs/state/CollectionState.js +42 -33
  6. package/dist/cjs/state/CollectionState.js.map +1 -1
  7. package/dist/cjs/state/CustomFieldModalState.js +2 -1
  8. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  9. package/dist/cjs/state/DataExtensionState.js +6 -4
  10. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  11. package/dist/cjs/state/FetchTotalState.js +82 -0
  12. package/dist/cjs/state/FetchTotalState.js.map +1 -0
  13. package/dist/cjs/state/QueryResultState.js +15 -2
  14. package/dist/cjs/state/QueryResultState.js.map +1 -1
  15. package/dist/esm/services/dataExtensionService.js +2 -0
  16. package/dist/esm/services/dataExtensionService.js.map +1 -1
  17. package/dist/esm/state/CollectionState.js +43 -31
  18. package/dist/esm/state/CollectionState.js.map +1 -1
  19. package/dist/esm/state/CustomFieldModalState.js +1 -0
  20. package/dist/esm/state/CustomFieldModalState.js.map +1 -1
  21. package/dist/esm/state/DataExtensionState.js +4 -3
  22. package/dist/esm/state/DataExtensionState.js.map +1 -1
  23. package/dist/esm/state/FetchTotalState.js +59 -0
  24. package/dist/esm/state/FetchTotalState.js.map +1 -0
  25. package/dist/esm/state/QueryResultState.js +15 -2
  26. package/dist/esm/state/QueryResultState.js.map +1 -1
  27. package/dist/types/hooks/paginationModeConfig.d.ts +2 -0
  28. package/dist/types/hooks/paginationModeConfig.d.ts.map +1 -1
  29. package/dist/types/model/dataResultRaw/dataResultRaw.d.ts +1 -0
  30. package/dist/types/model/dataResultRaw/dataResultRaw.d.ts.map +1 -1
  31. package/dist/types/services/dataExtensionService.d.ts +2 -0
  32. package/dist/types/services/dataExtensionService.d.ts.map +1 -1
  33. package/dist/types/state/CollectionState.d.ts +2 -0
  34. package/dist/types/state/CollectionState.d.ts.map +1 -1
  35. package/dist/types/state/CustomFieldModalState.d.ts.map +1 -1
  36. package/dist/types/state/DataExtensionState.d.ts +3 -1
  37. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  38. package/dist/types/state/FetchTotalState.d.ts +17 -0
  39. package/dist/types/state/FetchTotalState.d.ts.map +1 -0
  40. package/dist/types/state/QueryResultState.d.ts +5 -0
  41. package/dist/types/state/QueryResultState.d.ts.map +1 -1
  42. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","ConditionalModalState","onConfirm","form","mode","customFieldModalBiReporter","reportModalEndProcess","t","submitError","validation","validate","hasError","enableAutoValidation","Error","_this$dataExtensionSt","_this$dataExtensionSt2","dataExtensionSchema","dataExtensionState","dataExtensionService","addCustomField","getFormValues","schema","userSchema","fqdn","fqdnString","runInAction","container","showToast","call","message","type","biName","endType","e","isHttpError","_e$response","_e$response2","isDetailsResponse","response","data","isErrorDetails","details","_e$response3","validationError","fieldViolations","some","v","ruleName","getErrorType","undefined","reportSubmitFailure","errorType","FormState","FieldState","validators","value","name","key","allUserCustomFields","field","id","test","readUsers","readApps","writeUsers","writeApps","permissions","read","apps","users","write","$","dirty","CustomFieldModalBiReporter","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","containsKey","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType } from '../services';\nimport { DataExtensionState } from './DataExtensionState';\nimport { slugify } from '../util';\nimport {\n isDetailsResponse,\n isErrorDetails,\n isHttpError,\n} from '../util/isHttpError';\n\nexport interface CustomFieldStateParams {\n dataExtensionState: DataExtensionState;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n}\n\nexport class CustomFieldModalState {\n dataExtensionState: DataExtensionState;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n submitError: 'network' | 'technical' | 'max_size' | null = null;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n this.submitError = null;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionState.dataExtensionService.addCustomField({\n form: this.getFormValues(),\n schema: this.dataExtensionState.userSchema,\n fqdn: this.dataExtensionState.fqdnString,\n });\n\n runInAction(() => {\n this.dataExtensionState.userSchema = dataExtensionSchema;\n });\n\n this.dataExtensionState.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n runInAction(() => {\n if (isHttpError(e)) {\n this.submitError = 'network';\n\n if (\n isDetailsResponse(e.response?.data) &&\n isErrorDetails(e.response?.data.details)\n ) {\n if (\n e.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.submitError = 'max_size';\n } else {\n this.submitError = 'technical';\n }\n }\n }\n });\n\n const getErrorType = () => {\n switch (this.submitError) {\n case 'network':\n return 'Network error';\n case 'max_size':\n return '10k Limitation';\n case 'technical':\n return 'Technical issue';\n default:\n return undefined;\n }\n };\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: getErrorType(),\n });\n\n // Prevents modal closing\n throw e;\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<CustomFieldType | undefined>(undefined).validators(\n (value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n },\n ),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const {\n t,\n mode,\n dataExtensionState: { allUserCustomFields },\n } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (\n mode === 'new' &&\n allUserCustomFields.some((field) => field.id === value)\n ) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.dataExtensionState = params.dataExtensionState;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n dataExtensionState: params.dataExtensionState,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n submitError: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n });\n }\n\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.submitError = null;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): CustomFieldForm {\n const {\n form: {\n $: { type, key, name, readApps, readUsers, writeApps, writeUsers },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n };\n }\n\n setFormValues(\n form: CustomFieldForm,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.dataExtensionState.allUserCustomFields.some(\n (field) => field.id === key,\n );\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.dataExtensionState.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const {\n t,\n form: {\n $: { type },\n },\n } = this;\n\n switch (type.value) {\n case 'dropdown':\n return t('cairo.customFields.fieldType.dropdownList.Name.placeholder');\n case 'checkbox':\n return t('cairo.customFields.fieldType.checkbox.Name.placeholder');\n case 'shortText':\n return t('cairo.customFields.fieldType.shortText.Name.placeholder');\n case 'longText':\n return t('cairo.customFields.fieldType.longText.Name.placeholder');\n case 'date':\n return t('cairo.customFields.fieldType.date.Name.placeholder');\n case 'dateTime':\n return t('cairo.customFields.fieldType.dateAndTime.Name.placeholder');\n case 'integer':\n return t('cairo.customFields.fieldType.numberInteger.Name.placeholder');\n case 'decimal':\n return t('cairo.customFields.fieldType.numberDecimal.Name.placeholder');\n default:\n return t(\n 'cairo.customFields.addCustomField.modal.fieldName.placeholder',\n );\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAGA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAoBO,MAAMO,qBAAqB,CAAC;EAyJjCC,WAAWA,CAACC,MAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,oBAtJjC,IAAIC,wBAAW,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,uBAC+B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gBACxC,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBACA,sBAAsB;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAErC,IAAIE,4CAAqB,CAAC;MACrCC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,MAAM;UACJC,IAAI;UACJC,IAAI;UACJC,0BAA0B,EAAE;YAAEC;UAAsB,CAAC;UACrDC;QACF,CAAC,GAAG,IAAI;QAER,IAAI,CAACC,WAAW,GAAG,IAAI;QAEvB,MAAMC,UAAU,GAAG,MAAMN,IAAI,CAACO,QAAQ,CAAC,CAAC;QAExC,IAAID,UAAU,CAACE,QAAQ,EAAE;UACvB,IAAI,CAACC,oBAAoB,CAAC,CAAC;UAC3B,MAAM,IAAIC,KAAK,CAAC,YAAY,CAAC;QAC/B;QAEA,IAAI;UAAA,IAAAC,qBAAA,EAAAC,sBAAA;UACF,MAAM;YAAEC;UAAoB,CAAC,GAC3B,MAAM,IAAI,CAACC,kBAAkB,CAACC,oBAAoB,CAACC,cAAc,CAAC;YAChEhB,IAAI,EAAE,IAAI,CAACiB,aAAa,CAAC,CAAC;YAC1BC,MAAM,EAAE,IAAI,CAACJ,kBAAkB,CAACK,UAAU;YAC1CC,IAAI,EAAE,IAAI,CAACN,kBAAkB,CAACO;UAChC,CAAC,CAAC;UAEJ,IAAAC,iBAAW,EAAC,MAAM;YAChB,IAAI,CAACR,kBAAkB,CAACK,UAAU,GAAGN,mBAAmB;UAC1D,CAAC,CAAC;UAEF,CAAAF,qBAAA,IAAAC,sBAAA,OAAI,CAACE,kBAAkB,CAACS,SAAS,EAACC,SAAS,aAA3Cb,qBAAA,CAAAc,IAAA,CAAAb,sBAAA,EAA8C;YAC5Cc,OAAO,EACLzB,IAAI,KAAK,KAAK,GACVG,CAAC,CAAC,iCAAiC,CAAC,GACpCA,CAAC,CAAC,kDAAkD,CAAC;YAC3DuB,IAAI,EAAE,SAAS;YACfC,MAAM,EAAE;UACV,CAAC,CAAC;UAEFzB,qBAAqB,CAAC;YAAE0B,OAAO,EAAE;UAAY,CAAC,CAAC;QACjD,CAAC,CAAC,OAAOC,CAAU,EAAE;UACnB,IAAAR,iBAAW,EAAC,MAAM;YAChB,IAAI,IAAAS,wBAAW,EAACD,CAAC,CAAC,EAAE;cAAA,IAAAE,WAAA,EAAAC,YAAA;cAClB,IAAI,CAAC5B,WAAW,GAAG,SAAS;cAE5B,IACE,IAAA6B,8BAAiB,GAAAF,WAAA,GAACF,CAAC,CAACK,QAAQ,qBAAVH,WAAA,CAAYI,IAAI,CAAC,IACnC,IAAAC,2BAAc,GAAAJ,YAAA,GAACH,CAAC,CAACK,QAAQ,qBAAVF,YAAA,CAAYG,IAAI,CAACE,OAAO,CAAC,EACxC;gBAAA,IAAAC,YAAA;gBACA,KAAAA,YAAA,GACET,CAAC,CAACK,QAAQ,cAAAI,YAAA,GAAVA,YAAA,CAAYH,IAAI,cAAAG,YAAA,GAAhBA,YAAA,CAAkBD,OAAO,cAAAC,YAAA,GAAzBA,YAAA,CAA2BC,eAAe,cAAAD,YAAA,GAA1CA,YAAA,CAA4CE,eAAe,aAA3DF,YAAA,CAA6DG,IAAI,CAC9DC,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAK,2BACxB,CAAC,EACD;kBACA,IAAI,CAACvC,WAAW,GAAG,UAAU;gBAC/B,CAAC,MAAM;kBACL,IAAI,CAACA,WAAW,GAAG,WAAW;gBAChC;cACF;YACF;UACF,CAAC,CAAC;UAEF,MAAMwC,YAAY,GAAGA,CAAA,KAAM;YACzB,QAAQ,IAAI,CAACxC,WAAW;cACtB,KAAK,SAAS;gBACZ,OAAO,eAAe;cACxB,KAAK,UAAU;gBACb,OAAO,gBAAgB;cACzB,KAAK,WAAW;gBACd,OAAO,iBAAiB;cAC1B;gBACE,OAAOyC,SAAS;YACpB;UACF,CAAC;UAED,IAAI,CAAC5C,0BAA0B,CAAC6C,mBAAmB,CAAC;YAClDC,SAAS,EAAEH,YAAY,CAAC;UAC1B,CAAC,CAAC;;UAEF;UACA,MAAMf,CAAC;QACT;MACF;IACF,CAAC,CAAC;IAAA,IAAAnC,gBAAA,CAAAC,OAAA,gBAEK,IAAIqD,oBAAS,CAAC;MACnBtB,IAAI,EAAE,IAAIuB,qBAAU,CAA8BJ,SAAS,CAAC,CAACK,UAAU,CACpEC,KAAK,IAAK;QACT,IAAI,CAACA,KAAK,EAAE;UACV,OAAO,IAAI,CAAChD,CAAC,CACX,8DACF,CAAC;QACH;QAEA,OAAO0C,SAAS;MAClB,CACF,CAAC;MACDO,IAAI,EAAE,IAAIH,qBAAU,CAAC,EAAE,CAAC,CAACC,UAAU,CAAEC,KAAK,IAAK;QAC7C,IAAI,CAACA,KAAK,EAAE;UACV,OAAO,IAAI,CAAChD,CAAC,CACX,8DACF,CAAC;QACH;QAEA,OAAO0C,SAAS;MAClB,CAAC,CAAC;MACFQ,GAAG,EAAE,IAAIJ,qBAAU,CAAC,EAAE,CAAC,CAACC,UAAU,CAAEC,KAAK,IAAK;QAC5C,MAAM;UACJhD,CAAC;UACDH,IAAI;UACJa,kBAAkB,EAAE;YAAEyC;UAAoB;QAC5C,CAAC,GAAG,IAAI;QAER,IAAI,CAACH,KAAK,EAAE;UACV,OAAO,IAAI,CAAChD,CAAC,CACX,8DACF,CAAC;QACH;QAEA,IACEH,IAAI,KAAK,KAAK,IACdsD,mBAAmB,CAACb,IAAI,CAAEc,KAAK,IAAKA,KAAK,CAACC,EAAE,KAAKL,KAAK,CAAC,EACvD;UACA,OAAOhD,CAAC,CAAC,uDAAuD,CAAC;QACnE;QAEA,IAAI,CAAC,0BAA0B,CAACsD,IAAI,CAACN,KAAK,CAAC,EAAE;UAC3C,OAAOhD,CAAC,CAAC,yDAAyD,CAAC;QACrE;QAEA,OAAO0C,SAAS;MAClB,CAAC,CAAC;MACFa,SAAS,EAAE,IAAIT,qBAAU,CAAC,KAAK,CAAC;MAChCU,QAAQ,EAAE,IAAIV,qBAAU,CAAC,KAAK,CAAC;MAC/BW,UAAU,EAAE,IAAIX,qBAAU,CAAC,KAAK,CAAC;MACjCY,SAAS,EAAE,IAAIZ,qBAAU,CAAC,KAAK;IACjC,CAAC,CAAC;IAAA,IAAAvD,gBAAA,CAAAC,OAAA,0BAEe;MACfmE,WAAW,EAAE;QACXC,IAAI,EAAE;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAK,CAAC;QACjCC,KAAK,EAAE;UAAEF,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAK;MACnC;IACF,CAAC;IAAA,IAAAvE,gBAAA,CAAAC,OAAA,iCAoHwBwD,KAAa,IAAK;MACzC,MAAM;QACJpD,IAAI,EAAE;UACJoE,CAAC,EAAE;YAAEd;UAAI;QACX,CAAC;QACDrD;MACF,CAAC,GAAG,IAAI;MAER,IAAIA,IAAI,KAAK,KAAK,IAAI,CAACqD,GAAG,CAACe,KAAK,EAAE;QAChC;QACA;QACA;QACA;QACAf,GAAG,CAACF,KAAK,GAAGA,KAAK;MACnB;IACF,CAAC;IAhIC,IAAI,CAACtC,kBAAkB,GAAGpB,MAAM,CAACoB,kBAAkB;IACnD,IAAI,CAACZ,0BAA0B,GAAG,IAAIoE,sDAA0B,CAAC;MAC/DxD,kBAAkB,EAAEpB,MAAM,CAACoB;IAC7B,CAAC,CAAC;IAEF,IAAAyD,oBAAc,EAAC,IAAI,EAAE;MACnBC,eAAe,EAAEC,cAAQ;MACzBC,YAAY,EAAED,cAAQ;MACtBE,cAAc,EAAEC,gBAAU,CAACC,GAAG;MAC9BxE,WAAW,EAAEuE,gBAAU,CAACC,GAAG;MAC3B5E,IAAI,EAAE2E,gBAAU,CAACC,GAAG;MACpBC,KAAK,EAAEC,YAAM;MACbC,aAAa,EAAED,YAAM;MACrBE,iBAAiB,EAAEF,YAAM,CAACG,KAAK;MAC/BC,qBAAqB,EAAEJ,YAAM,CAACG;IAChC,CAAC,CAAC;EACJ;EAEAJ,KAAKA,CAAA,EAAG;IACN,MAAM;MACJ9E,IAAI;MACJoF,QAAQ;MACRT,cAAc,EAAE;QAAEZ;MAAY;IAChC,CAAC,GAAG,IAAI;IAER/D,IAAI,CAAC8E,KAAK,CAAC,CAAC;IACZM,QAAQ,CAACC,MAAM,CAAC,CAAC;IACjB,IAAI,CAAChF,WAAW,GAAG,IAAI;IACvB,IAAI,CAACiF,qBAAqB,CAAC,CAAC;IAE5BvB,WAAW,CAACC,IAAI,CAACC,IAAI,GAAG,KAAK;IAC7BF,WAAW,CAACC,IAAI,CAACE,KAAK,GAAG,KAAK;IAC9BH,WAAW,CAACI,KAAK,CAACF,IAAI,GAAG,KAAK;IAC9BF,WAAW,CAACI,KAAK,CAACD,KAAK,GAAG,KAAK;EACjC;EAEAzD,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MACJT,IAAI,EAAE;QACJoE,CAAC,EAAE;UAAEd,GAAG;UAAED,IAAI;UAAE1B;QAAK;MACvB;IACF,CAAC,GAAG,IAAI;IAER2B,GAAG,CAAC7C,oBAAoB,CAAC,CAAC;IAC1B4C,IAAI,CAAC5C,oBAAoB,CAAC,CAAC;IAC3BkB,IAAI,CAAClB,oBAAoB,CAAC,CAAC;EAC7B;EAEA6E,qBAAqBA,CAAA,EAAG;IACtB,MAAM;MACJtF,IAAI,EAAE;QACJoE,CAAC,EAAE;UAAEd,GAAG;UAAED,IAAI;UAAE1B;QAAK;MACvB;IACF,CAAC,GAAG,IAAI;IAER2B,GAAG,CAACgC,qBAAqB,CAAC,CAAC;IAC3BjC,IAAI,CAACiC,qBAAqB,CAAC,CAAC;IAC5B3D,IAAI,CAAC2D,qBAAqB,CAAC,CAAC;EAC9B;EAEArE,aAAaA,CAAA,EAAoB;IAC/B,MAAM;MACJjB,IAAI,EAAE;QACJoE,CAAC,EAAE;UAAEzC,IAAI;UAAE2B,GAAG;UAAED,IAAI;UAAEO,QAAQ;UAAED,SAAS;UAAEG,SAAS;UAAED;QAAW;MACnE;IACF,CAAC,GAAG,IAAI;IAER,OAAO;MACLlC,IAAI,EAAEA,IAAI,CAACyB,KAAK;MAChBE,GAAG,EAAEA,GAAG,CAACF,KAAK;MACdC,IAAI,EAAEA,IAAI,CAACD,KAAK;MAChBQ,QAAQ,EAAEA,QAAQ,CAACR,KAAK;MACxBO,SAAS,EAAEA,SAAS,CAACP,KAAK;MAC1BU,SAAS,EAAEA,SAAS,CAACV,KAAK;MAC1BS,UAAU,EAAEA,UAAU,CAACT;IACzB,CAAC;EACH;EAEA4B,aAAaA,CACXhF,IAAqB,EACrBN,MAAiD,EACjD;IACA,MAAM;MACJM,IAAI,EAAE;QAAEoE;MAAE;IACZ,CAAC,GAAG,IAAI;IAERA,CAAC,CAACd,GAAG,CAACF,KAAK,GAAGpD,IAAI,CAACsD,GAAG;IACtBc,CAAC,CAACf,IAAI,CAACD,KAAK,GAAGpD,IAAI,CAACqD,IAAI;IACxBe,CAAC,CAACzC,IAAI,CAACyB,KAAK,GAAGpD,IAAI,CAAC2B,IAAI;IACxByC,CAAC,CAACR,QAAQ,CAACR,KAAK,GAAGpD,IAAI,CAAC4D,QAAQ;IAChCQ,CAAC,CAACT,SAAS,CAACP,KAAK,GAAGpD,IAAI,CAAC2D,SAAS;IAClCS,CAAC,CAACN,SAAS,CAACV,KAAK,GAAGpD,IAAI,CAAC8D,SAAS;IAClCM,CAAC,CAACP,UAAU,CAACT,KAAK,GAAGpD,IAAI,CAAC6D,UAAU;IAEpC,IAAInE,MAAM,YAANA,MAAM,CAAE6F,2BAA2B,EAAE;MACvC,IAAIvF,IAAI,CAAC2D,SAAS,EAAE;QAClB,IAAI,CAACgB,cAAc,CAACZ,WAAW,CAACC,IAAI,CAACE,KAAK,GAAG,IAAI;MACnD;MAEA,IAAIlE,IAAI,CAAC4D,QAAQ,EAAE;QACjB,IAAI,CAACe,cAAc,CAACZ,WAAW,CAACC,IAAI,CAACC,IAAI,GAAG,IAAI;MAClD;MAEA,IAAIjE,IAAI,CAAC6D,UAAU,EAAE;QACnB,IAAI,CAACc,cAAc,CAACZ,WAAW,CAACI,KAAK,CAACD,KAAK,GAAG,IAAI;MACpD;MAEA,IAAIlE,IAAI,CAAC8D,SAAS,EAAE;QAClB,IAAI,CAACa,cAAc,CAACZ,WAAW,CAACI,KAAK,CAACF,IAAI,GAAG,IAAI;MACnD;IACF;EACF;EAmBQuB,WAAWA,CAAClC,GAAW,EAAE;IAC/B,OAAO,IAAI,CAACxC,kBAAkB,CAACyC,mBAAmB,CAACb,IAAI,CACpDc,KAAK,IAAKA,KAAK,CAACC,EAAE,KAAKH,GAC1B,CAAC;EACH;EAEA2B,iBAAiBA,CAAC5B,IAAY,EAAE;IAC9B,MAAMoC,IAAI,GAAG,IAAAC,aAAO,EAACrC,IAAI,CAAC;IAC1B,MAAM1B,IAAI,GAAG,IAAI,CAAC3B,IAAI,CAACoE,CAAC,CAACzC,IAAI,CAACyB,KAAK;IAEnC,IAAIqC,IAAI,IAAIA,IAAI,CAACE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAACH,WAAW,CAACC,IAAI,CAAC,EAAE;MACvD,OAAOA,IAAI;IACb;IAEA,IAAI,CAAC9D,IAAI,EAAE;MACT,OAAO,EAAE;IACX;IAEA,IAAIiE,KAAK,GAAG,CAAC;IAEb,OAAO,IAAI,CAACJ,WAAW,CAAC,GAAG7D,IAAI,IAAIiE,KAAK,EAAE,CAAC,EAAE;MAC3CA,KAAK,IAAI,CAAC;IACZ;IAEA,OAAO,GAAGjE,IAAI,IAAIiE,KAAK,EAAE;EAC3B;EAEA,IAAIxF,CAACA,CAAA,EAAG;IACN,OAAO,IAAI,CAACU,kBAAkB,CAACS,SAAS,CAACsE,SAAS;EACpD;EAEA,IAAInB,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACoB,UAAU,CAACC,KAAK,CAACC,UAAU,CAACC,SAAS;EACnD;EAEA,IAAIzB,eAAeA,CAAA,EAAG;IACpB,MAAM;MACJpE,CAAC;MACDJ,IAAI,EAAE;QACJoE,CAAC,EAAE;UAAEzC;QAAK;MACZ;IACF,CAAC,GAAG,IAAI;IAER,QAAQA,IAAI,CAACyB,KAAK;MAChB,KAAK,UAAU;QACb,OAAOhD,CAAC,CAAC,4DAA4D,CAAC;MACxE,KAAK,UAAU;QACb,OAAOA,CAAC,CAAC,wDAAwD,CAAC;MACpE,KAAK,WAAW;QACd,OAAOA,CAAC,CAAC,yDAAyD,CAAC;MACrE,KAAK,UAAU;QACb,OAAOA,CAAC,CAAC,wDAAwD,CAAC;MACpE,KAAK,MAAM;QACT,OAAOA,CAAC,CAAC,oDAAoD,CAAC;MAChE,KAAK,UAAU;QACb,OAAOA,CAAC,CAAC,2DAA2D,CAAC;MACvE,KAAK,SAAS;QACZ,OAAOA,CAAC,CAAC,6DAA6D,CAAC;MACzE,KAAK,SAAS;QACZ,OAAOA,CAAC,CAAC,6DAA6D,CAAC;MACzE;QACE,OAAOA,CAAC,CACN,+DACF,CAAC;IACL;EACF;AACF;AAAC8F,OAAA,CAAA1G,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_ConditionalModalState","_CustomFieldModalBiReporter","_formstate","_ToggleState","_util","_isHttpError","CustomFieldModalState","constructor","params","_defineProperty2","default","ToggleState","ConditionalModalState","onConfirm","form","mode","customFieldModalBiReporter","reportModalEndProcess","t","submitError","validation","validate","hasError","enableAutoValidation","Error","_this$dataExtensionSt","_this$dataExtensionSt2","dataExtensionSchema","dataExtensionState","dataExtensionService","addCustomField","getFormValues","schema","userSchema","fqdn","fqdnString","filterable","runInAction","container","showToast","call","message","type","biName","endType","e","isHttpError","_e$response","_e$response2","isDetailsResponse","response","data","isErrorDetails","details","_e$response3","validationError","fieldViolations","some","v","ruleName","getErrorType","undefined","reportSubmitFailure","errorType","FormState","FieldState","validators","value","name","key","allUserCustomFields","field","id","test","readUsers","readApps","writeUsers","writeApps","permissions","read","apps","users","write","$","dirty","CustomFieldModalBiReporter","makeObservable","namePlaceholder","computed","isSubmitting","disabledFields","observable","ref","reset","action","setFormValues","generateUniqueKey","bound","setKeyFieldIfNotDirty","settings","setOff","disableAutoValidation","disablePermissionCheckboxes","containsKey","slug","slugify","length","index","translate","modalState","modal","confirming","isLoading","exports"],"sources":["../../../src/state/CustomFieldModalState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';\nimport { FieldState, FormState } from 'formstate';\nimport { ToggleState } from './ToggleState';\nimport { CustomFieldOrigin, CustomFieldType } from '../services';\nimport { DataExtensionState } from './DataExtensionState';\nimport { slugify } from '../util';\nimport {\n isDetailsResponse,\n isErrorDetails,\n isHttpError,\n} from '../util/isHttpError';\n\nexport interface CustomFieldStateParams {\n dataExtensionState: DataExtensionState;\n}\n\nexport interface CustomFieldForm {\n type?: CustomFieldType;\n key: string;\n name: string;\n readApps: boolean;\n readUsers: boolean;\n writeApps: boolean;\n writeUsers: boolean;\n}\n\nexport class CustomFieldModalState {\n dataExtensionState: DataExtensionState;\n customFieldModalBiReporter: CustomFieldModalBiReporter;\n settings = new ToggleState();\n submitError: 'network' | 'technical' | 'max_size' | null = null;\n mode: 'new' | 'edit' = 'new';\n origin: CustomFieldOrigin = 'Custom columns panel';\n\n modalState = new ConditionalModalState({\n onConfirm: async () => {\n const {\n form,\n mode,\n customFieldModalBiReporter: { reportModalEndProcess },\n t,\n } = this;\n\n this.submitError = null;\n\n const validation = await form.validate();\n\n if (validation.hasError) {\n this.enableAutoValidation();\n throw new Error('validation');\n }\n\n try {\n const { dataExtensionSchema } =\n await this.dataExtensionState.dataExtensionService.addCustomField({\n form: this.getFormValues(),\n schema: this.dataExtensionState.userSchema,\n fqdn: this.dataExtensionState.fqdnString,\n filterable: this.dataExtensionState.filterable,\n });\n\n runInAction(() => {\n this.dataExtensionState.userSchema = dataExtensionSchema;\n });\n\n this.dataExtensionState.container.showToast?.({\n message:\n mode === 'new'\n ? t('cairo.customFields.successToast')\n : t('cairo.customFields.editCustomField.success.toast'),\n type: 'SUCCESS',\n biName: 'cairo-custom-field-success-toast',\n });\n\n reportModalEndProcess({ endType: 'Add Field' });\n } catch (e: unknown) {\n runInAction(() => {\n if (isHttpError(e)) {\n this.submitError = 'network';\n\n if (\n isDetailsResponse(e.response?.data) &&\n isErrorDetails(e.response?.data.details)\n ) {\n if (\n e.response?.data?.details?.validationError?.fieldViolations?.some(\n (v) => v.ruleName === 'EXCEEDED_STORED_DATA_SIZE',\n )\n ) {\n this.submitError = 'max_size';\n } else {\n this.submitError = 'technical';\n }\n }\n }\n });\n\n const getErrorType = () => {\n switch (this.submitError) {\n case 'network':\n return 'Network error';\n case 'max_size':\n return '10k Limitation';\n case 'technical':\n return 'Technical issue';\n default:\n return undefined;\n }\n };\n\n this.customFieldModalBiReporter.reportSubmitFailure({\n errorType: getErrorType(),\n });\n\n // Prevents modal closing\n throw e;\n }\n },\n });\n\n form = new FormState({\n type: new FieldState<CustomFieldType | undefined>(undefined).validators(\n (value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldType.error',\n );\n }\n\n return undefined;\n },\n ),\n name: new FieldState('').validators((value) => {\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n return undefined;\n }),\n key: new FieldState('').validators((value) => {\n const {\n t,\n mode,\n dataExtensionState: { allUserCustomFields },\n } = this;\n\n if (!value) {\n return this.t(\n 'cairo.customFields.addCustomField.modal.emptyFieldName.error',\n );\n }\n\n if (\n mode === 'new' &&\n allUserCustomFields.some((field) => field.id === value)\n ) {\n return t('cairo.customFields.addCustomField.modal.sameKey.error');\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_]*$/g.test(value)) {\n return t('cairo.customFields.addCustomField.modal.keyFormat.error');\n }\n\n return undefined;\n }),\n readUsers: new FieldState(false),\n readApps: new FieldState(false),\n writeUsers: new FieldState(false),\n writeApps: new FieldState(false),\n });\n\n disabledFields = {\n permissions: {\n read: { apps: true, users: true },\n write: { apps: true, users: true },\n },\n };\n\n constructor(params: CustomFieldStateParams) {\n this.dataExtensionState = params.dataExtensionState;\n this.customFieldModalBiReporter = new CustomFieldModalBiReporter({\n dataExtensionState: params.dataExtensionState,\n });\n\n makeObservable(this, {\n namePlaceholder: computed,\n isSubmitting: computed,\n disabledFields: observable.ref,\n submitError: observable.ref,\n mode: observable.ref,\n reset: action,\n setFormValues: action,\n generateUniqueKey: action.bound,\n setKeyFieldIfNotDirty: action.bound,\n });\n }\n\n reset() {\n const {\n form,\n settings,\n disabledFields: { permissions },\n } = this;\n\n form.reset();\n settings.setOff();\n this.submitError = null;\n this.disableAutoValidation();\n\n permissions.read.apps = false;\n permissions.read.users = false;\n permissions.write.apps = false;\n permissions.write.users = false;\n }\n\n enableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.enableAutoValidation();\n name.enableAutoValidation();\n type.enableAutoValidation();\n }\n\n disableAutoValidation() {\n const {\n form: {\n $: { key, name, type },\n },\n } = this;\n\n key.disableAutoValidation();\n name.disableAutoValidation();\n type.disableAutoValidation();\n }\n\n getFormValues(): CustomFieldForm {\n const {\n form: {\n $: { type, key, name, readApps, readUsers, writeApps, writeUsers },\n },\n } = this;\n\n return {\n type: type.value,\n key: key.value,\n name: name.value,\n readApps: readApps.value,\n readUsers: readUsers.value,\n writeApps: writeApps.value,\n writeUsers: writeUsers.value,\n };\n }\n\n setFormValues(\n form: CustomFieldForm,\n params?: { disablePermissionCheckboxes: boolean },\n ) {\n const {\n form: { $ },\n } = this;\n\n $.key.value = form.key;\n $.name.value = form.name;\n $.type.value = form.type;\n $.readApps.value = form.readApps;\n $.readUsers.value = form.readUsers;\n $.writeApps.value = form.writeApps;\n $.writeUsers.value = form.writeUsers;\n\n if (params?.disablePermissionCheckboxes) {\n if (form.readUsers) {\n this.disabledFields.permissions.read.users = true;\n }\n\n if (form.readApps) {\n this.disabledFields.permissions.read.apps = true;\n }\n\n if (form.writeUsers) {\n this.disabledFields.permissions.write.users = true;\n }\n\n if (form.writeApps) {\n this.disabledFields.permissions.write.apps = true;\n }\n }\n }\n\n setKeyFieldIfNotDirty = (value: string) => {\n const {\n form: {\n $: { key },\n },\n mode,\n } = this;\n\n if (mode === 'new' && !key.dirty) {\n // In the formstate library setting a field value using\n // the onChange API sets the dirty state of the field to true.\n // However, since here it's not a manual user input\n // we avoid changing the dirty state by setting a value directly.\n key.value = value;\n }\n };\n\n private containsKey(key: string) {\n return this.dataExtensionState.allUserCustomFields.some(\n (field) => field.id === key,\n );\n }\n\n generateUniqueKey(name: string) {\n const slug = slugify(name);\n const type = this.form.$.type.value;\n\n if (slug && slug.length >= 4 && !this.containsKey(slug)) {\n return slug;\n }\n\n if (!type) {\n return '';\n }\n\n let index = 1;\n\n while (this.containsKey(`${type}_${index}`)) {\n index += 1;\n }\n\n return `${type}_${index}`;\n }\n\n get t() {\n return this.dataExtensionState.container.translate;\n }\n\n get isSubmitting() {\n return this.modalState.modal.confirming.isLoading;\n }\n\n get namePlaceholder() {\n const {\n t,\n form: {\n $: { type },\n },\n } = this;\n\n switch (type.value) {\n case 'dropdown':\n return t('cairo.customFields.fieldType.dropdownList.Name.placeholder');\n case 'checkbox':\n return t('cairo.customFields.fieldType.checkbox.Name.placeholder');\n case 'shortText':\n return t('cairo.customFields.fieldType.shortText.Name.placeholder');\n case 'longText':\n return t('cairo.customFields.fieldType.longText.Name.placeholder');\n case 'date':\n return t('cairo.customFields.fieldType.date.Name.placeholder');\n case 'dateTime':\n return t('cairo.customFields.fieldType.dateAndTime.Name.placeholder');\n case 'integer':\n return t('cairo.customFields.fieldType.numberInteger.Name.placeholder');\n case 'decimal':\n return t('cairo.customFields.fieldType.numberDecimal.Name.placeholder');\n default:\n return t(\n 'cairo.customFields.addCustomField.modal.fieldName.placeholder',\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.DataExtensionState = void 0;
5
+ exports.MAX_CUSTOM_FIELDS = exports.DataExtensionState = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _services = require("../services");
8
8
  var _TaskState = require("./TaskState");
@@ -10,6 +10,7 @@ var _mobx = require("mobx");
10
10
  var _DataExtensionStateBIReporter = require("./DataExtensionStateBIReporter");
11
11
  var _util = require("../util");
12
12
  var _DataExtensionField = require("./DataExtension/DataExtensionField");
13
+ const MAX_CUSTOM_FIELDS = exports.MAX_CUSTOM_FIELDS = 25;
13
14
  class DataExtensionState {
14
15
  get fqdnString() {
15
16
  return (0, _util.fqdnToString)(this.fqdn);
@@ -27,13 +28,14 @@ class DataExtensionState {
27
28
  (0, _defineProperty2.default)(this, "closeSidePanel", void 0);
28
29
  (0, _defineProperty2.default)(this, "reportBi", void 0);
29
30
  (0, _defineProperty2.default)(this, "fqdn", void 0);
30
- (0, _defineProperty2.default)(this, "MAX_CUSTOM_FIELDS", 50);
31
31
  (0, _defineProperty2.default)(this, "userSchema", undefined);
32
32
  (0, _defineProperty2.default)(this, "appSchemas", undefined);
33
33
  (0, _defineProperty2.default)(this, "disableUserDefinedWriting", void 0);
34
+ (0, _defineProperty2.default)(this, "filterable", void 0);
34
35
  (0, _defineProperty2.default)(this, "_hasWritePermissions", void 0);
35
36
  this.container = params.container;
36
37
  this.disableUserDefinedWriting = params.disableUserDefinedWriting;
38
+ this.filterable = params.filterable;
37
39
  this.closeSidePanel = params.closeSidePanel;
38
40
  this.reportBi = params.reportBi;
39
41
  this.fqdn = params.fqdn;
@@ -71,7 +73,7 @@ class DataExtensionState {
71
73
  }
72
74
  if (this.isReachedMaxCustomFields) {
73
75
  return this.container.translate('cairo.customFields.maxFields.tooltip', {
74
- max: this.MAX_CUSTOM_FIELDS
76
+ max: MAX_CUSTOM_FIELDS
75
77
  });
76
78
  }
77
79
  return '';
@@ -278,7 +280,7 @@ class DataExtensionState {
278
280
  return [...this.allUserCustomFields, ...this.allAppsCustomFields];
279
281
  }
280
282
  get isReachedMaxCustomFields() {
281
- return this.allUserCustomFields.length >= this.MAX_CUSTOM_FIELDS;
283
+ return this.allUserCustomFields.length >= MAX_CUSTOM_FIELDS;
282
284
  }
283
285
  get allNamespaces() {
284
286
  var _this$userSchema3;
@@ -1 +1 @@
1
- {"version":3,"names":["_services","require","_TaskState","_mobx","_DataExtensionStateBIReporter","_util","_DataExtensionField","DataExtensionState","fqdnString","fqdnToString","fqdn","isFqdnValid","resource","undefined","constructor","params","_defineProperty2","default","TaskState","container","disableUserDefinedWriting","closeSidePanel","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","userSchema","observable","ref","appSchemas","openCustomFieldModal","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","MAX_CUSTOM_FIELDS","archiveField","id","origin","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","runInAction","showToast","call","message","type","biName","e","_this$container$showT2","_this$container2","uiType","text","onClick","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","extractFieldValuesFromSchema","fieldId","customField","toCustomField","title","read","write","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","modalState","modal","open","_toCustomField","editable","owner","label","maxLength","options","enum","isSupportedFieldType","getAvailableCustomFieldsInSchema","properties","requiredPermissions","Object","keys","filter","field","includesAllReadPermissions","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","cur","_cur$jsonSchema","concat","length","allNamespaces","_this$userSchema3","namespace","Boolean","init","initTask","runOnce","fetchSchemas","dataExtensionSchemas","forEach","s","userFieldsNamespace","exports"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n CustomFieldOwner,\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 {\n CustomFieldForm,\n CustomFieldModalState,\n} from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n}\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n readonly closeSidePanel;\n readonly reportBi;\n readonly fqdn;\n\n readonly MAX_CUSTOM_FIELDS = 50;\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n userSchema?: DataExtensionSchema = undefined;\n appSchemas?: DataExtensionSchema[] = undefined;\n\n readonly disableUserDefinedWriting;\n\n constructor(\n params: Readonly<DataExtensionStateParams & DataExtensionOverrides>,\n ) {\n this.container = params.container;\n this.disableUserDefinedWriting = params.disableUserDefinedWriting;\n this.closeSidePanel = params.closeSidePanel;\n this.reportBi = params.reportBi;\n this.fqdn = params.fqdn;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.biReporter = new DataExtensionStateBIReporter({\n reportBi: this.reportBi,\n });\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n userSchema: observable.ref,\n appSchemas: observable.ref,\n openCustomFieldModal: action,\n });\n }\n\n _hasWritePermissions?: boolean;\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: this.MAX_CUSTOM_FIELDS,\n });\n }\n\n return '';\n }\n\n async archiveField({ id, origin }: { id?: string; origin: string }) {\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 runInAction(() => {\n this.userSchema = 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 this.biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n this.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 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 };\n }\n\n openCustomFieldModal(params: {\n fieldId?: string;\n origin: CustomFieldOrigin;\n }) {\n const { customFieldModalState } = this;\n\n if (!customFieldModalState) {\n return;\n }\n\n const { customFieldModalBiReporter } = customFieldModalState;\n\n customFieldModalState.reset();\n customFieldModalState.mode = params.fieldId ? 'edit' : 'new';\n customFieldModalState.origin = params.origin;\n customFieldModalBiReporter.formSnapshot = null;\n\n if (this.userSchema && params.fieldId) {\n const formValues = this.extractFieldValuesFromSchema(params.fieldId);\n\n if (!formValues) {\n return;\n }\n\n customFieldModalState.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n }): CustomField {\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema),\n editable,\n owner,\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 }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n },\n ): CustomField[] {\n return Object.keys(properties)\n .filter((key) => {\n const field = properties[key];\n return (\n !field['x-wix-archived'] &&\n this.isSupportedFieldType(field.type) &&\n (requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions))\n );\n })\n .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 .map((key) =>\n this._toCustomField({ key, schema: properties[key], editable, owner }),\n );\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 });\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 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 });\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).map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n }),\n );\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, cur) => {\n const properties: { [key: string]: DataExtensionField } =\n cur?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties).map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n }),\n ),\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\n }\n\n get isReachedMaxCustomFields() {\n return this.allUserCustomFields.length >= this.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\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 dataExtensionSchemas?.forEach((s) => {\n if (s.namespace === dataExtensionService.userFieldsNamespace) {\n this.userSchema = s;\n return;\n }\n this.appSchemas = this.appSchemas ? [...this.appSchemas, s] : [s];\n });\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
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","reportBi","dataExtensionService","DataExtensionSchemaService","biReporter","DataExtensionStateBIReporter","makeObservable","allUserCustomFields","computed","allAppsCustomFields","allCustomFields","availableUserCustomFields","availableAppsCustomFields","availableCustomFields","isReachedMaxCustomFields","disableAddCustomField","disableAddCustomFieldContent","userSchema","observable","ref","appSchemas","openCustomFieldModal","action","hasWritePermissions","_hasWritePermissions","user","permissions","includes","translate","max","archiveField","id","origin","_this$container$showT","_this$container","dataExtensionSchema","archiveCustomField","schema","runInAction","showToast","call","message","type","biName","e","_this$container$showT2","_this$container2","uiType","text","onClick","reportArchiveTryAgain","removeToastOnClick","reportArchiveFieldFailed","formValues","extractFieldValuesFromSchema","fieldId","customField","toCustomField","title","read","write","readApps","readUsers","writeApps","writeUsers","toCustomType","name","key","customFieldModalState","customFieldModalBiReporter","reset","mode","formSnapshot","setFormValues","disablePermissionCheckboxes","modalState","modal","open","_toCustomField","editable","owner","label","maxLength","options","enum","isSupportedFieldType","getAvailableCustomFieldsInSchema","properties","requiredPermissions","Object","keys","filter","field","includesAllReadPermissions","sort","a","b","aVal","Date","bVal","isNaN","valueOf","map","_this$userSchema","jsonSchema","_this$appSchemas","reduce","prev","getAvailableCustomFieldsForApp","appSchema","_appSchema$jsonSchema","_this$userSchema2","_this$appSchemas2","cur","_cur$jsonSchema","concat","length","allNamespaces","_this$userSchema3","namespace","Boolean","init","initTask","runOnce","fetchSchemas","dataExtensionSchemas","forEach","s","userFieldsNamespace"],"sources":["../../../src/state/DataExtensionState.ts"],"sourcesContent":["import {\n CustomField,\n CustomFieldOrigin,\n CustomFieldOwner,\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 {\n CustomFieldForm,\n CustomFieldModalState,\n} from './CustomFieldModalState';\nimport type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { DataExtensionStateBIReporter } from './DataExtensionStateBIReporter';\nimport { fqdnToString } from '../util';\nimport { includesAllReadPermissions } from './DataExtension/DataExtensionField';\n\nexport interface DataExtensionStateParams {\n container: WixPatternsContainer;\n closeSidePanel?: () => unknown;\n reportBi: ReportBI;\n fqdn: Fqdn;\n}\n\nexport interface DataExtensionOverrides {\n disableUserDefinedWriting?: boolean;\n filterable?: boolean;\n}\n\nexport const MAX_CUSTOM_FIELDS = 25;\n\nexport class DataExtensionState {\n readonly dataExtensionService: DataExtensionSchemaService;\n readonly biReporter: DataExtensionStateBIReporter;\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n customFieldModalState?: CustomFieldModalState;\n archiveFieldModal?: ConditionalModalState<{\n id: string;\n origin: string;\n }>;\n readonly closeSidePanel;\n readonly reportBi;\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 userSchema?: DataExtensionSchema = undefined;\n appSchemas?: DataExtensionSchema[] = undefined;\n\n readonly disableUserDefinedWriting;\n readonly filterable;\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.reportBi = params.reportBi;\n this.fqdn = params.fqdn;\n this.dataExtensionService = new DataExtensionSchemaService(\n params.container,\n );\n\n this.biReporter = new DataExtensionStateBIReporter({\n reportBi: this.reportBi,\n });\n\n makeObservable(this, {\n allUserCustomFields: computed,\n allAppsCustomFields: computed,\n allCustomFields: computed,\n availableUserCustomFields: computed,\n availableAppsCustomFields: computed,\n availableCustomFields: computed,\n isReachedMaxCustomFields: computed,\n disableAddCustomField: computed,\n disableAddCustomFieldContent: computed,\n userSchema: observable.ref,\n appSchemas: observable.ref,\n openCustomFieldModal: action,\n });\n }\n\n _hasWritePermissions?: boolean;\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({ id, origin }: { id?: string; origin: string }) {\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 runInAction(() => {\n this.userSchema = 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 this.biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin });\n },\n removeToastOnClick: true,\n },\n type: 'ERROR',\n biName: 'cairo-archive-custom-field-error-toast',\n });\n this.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 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 };\n }\n\n openCustomFieldModal(params: {\n fieldId?: string;\n origin: CustomFieldOrigin;\n }) {\n const { customFieldModalState } = this;\n\n if (!customFieldModalState) {\n return;\n }\n\n const { customFieldModalBiReporter } = customFieldModalState;\n\n customFieldModalState.reset();\n customFieldModalState.mode = params.fieldId ? 'edit' : 'new';\n customFieldModalState.origin = params.origin;\n customFieldModalBiReporter.formSnapshot = null;\n\n if (this.userSchema && params.fieldId) {\n const formValues = this.extractFieldValuesFromSchema(params.fieldId);\n\n if (!formValues) {\n return;\n }\n\n customFieldModalState.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n }\n\n customFieldModalState.modalState.modal.open();\n }\n\n _toCustomField({\n key,\n schema,\n editable,\n owner,\n }: {\n key: string;\n schema: DataExtensionField;\n editable: boolean;\n owner: CustomFieldOwner;\n }): CustomField {\n return {\n id: key,\n label: schema?.title,\n maxLength: schema?.maxLength,\n options: schema?.enum,\n type: DataExtensionSchemaService.toCustomType(schema),\n editable,\n owner,\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 }: {\n editable: boolean;\n requiredPermissions?: DataExtensionPermission[];\n owner: CustomFieldOwner;\n },\n ): CustomField[] {\n return Object.keys(properties)\n .filter((key) => {\n const field = properties[key];\n return (\n !field['x-wix-archived'] &&\n this.isSupportedFieldType(field.type) &&\n (requiredPermissions == null ||\n includesAllReadPermissions(field, requiredPermissions))\n );\n })\n .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 .map((key) =>\n this._toCustomField({ key, schema: properties[key], editable, owner }),\n );\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 });\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 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 });\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).map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: true,\n owner: 'user',\n }),\n );\n }\n\n get allAppsCustomFields(): CustomField[] {\n return (\n this.appSchemas?.reduce((prev, cur) => {\n const properties: { [key: string]: DataExtensionField } =\n cur?.jsonSchema?.properties || {};\n\n return prev.concat(\n Object.keys(properties).map((key) =>\n this._toCustomField({\n key,\n schema: properties[key],\n editable: false,\n owner: 'app',\n }),\n ),\n );\n }, [] as CustomField[]) ?? []\n );\n }\n\n get allCustomFields(): CustomField[] {\n return [...this.allUserCustomFields, ...this.allAppsCustomFields];\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\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 dataExtensionSchemas?.forEach((s) => {\n if (s.namespace === dataExtensionService.userFieldsNamespace) {\n this.userSchema = s;\n return;\n }\n this.appSchemas = this.appSchemas ? [...this.appSchemas, s] : [s];\n });\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.FetchTotalState = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _mobx = require("mobx");
8
+ var _CollectionState = require("./CollectionState");
9
+ var _util = require("../util");
10
+ class FetchTotalState {
11
+ constructor(params) {
12
+ (0, _defineProperty2.default)(this, "_collection", void 0);
13
+ (0, _defineProperty2.default)(this, "_totalsCollection", void 0);
14
+ this._collection = params.collection;
15
+ const {
16
+ errorMonitor,
17
+ onlineState,
18
+ history,
19
+ translate,
20
+ queryCache,
21
+ lodash,
22
+ queryName,
23
+ itemKey,
24
+ itemName,
25
+ paginationMode,
26
+ selectionConsistencyMode,
27
+ filters,
28
+ query: {
29
+ search
30
+ }
31
+ } = params.collection;
32
+ this._totalsCollection = new _CollectionState.CollectionState({
33
+ errorMonitor,
34
+ onlineState,
35
+ history,
36
+ translate,
37
+ queryCache,
38
+ lodash,
39
+ queryName: `${queryName}.total`,
40
+ itemKey,
41
+ itemName,
42
+ limit: 1,
43
+ fetchData: async query => {
44
+ const total = await params.fetchTotal(query);
45
+ return {
46
+ items: [],
47
+ total
48
+ };
49
+ },
50
+ fetchErrorMessage: () => null,
51
+ paginationMode: paginationMode.id,
52
+ selectionConsistencyMode,
53
+ filters,
54
+ search
55
+ });
56
+ (0, _mobx.makeObservable)(this, {
57
+ total: _mobx.computed,
58
+ status: _mobx.computed
59
+ });
60
+ }
61
+ init() {
62
+ const {
63
+ _collection,
64
+ _totalsCollection
65
+ } = this;
66
+ const disposers = [_totalsCollection.init(), (0, _util.addEventListener)(_collection.emitter, 'search', () => {
67
+ _totalsCollection.clearResultAndMoveToStart();
68
+ }), (0, _util.addEventListener)(_collection.emitter, 'clearSearch', _totalsCollection.clearResultAndMoveToStart), (0, _util.addEventListener)(_collection.emitter, 'refreshAllPages', _totalsCollection.refreshAllPages), (0, _util.addEventListener)(_collection.emitter, 'refreshCurrentPage', _totalsCollection.refreshCurrentPage)];
69
+ return () => {
70
+ disposers.forEach(disposer => disposer());
71
+ };
72
+ }
73
+ get total() {
74
+ return this._totalsCollection.result.total;
75
+ }
76
+ get status() {
77
+ // While refreshing the status remains as success
78
+ return this._totalsCollection.lifecycleState === 'refresh' ? 'loading' : this._totalsCollection.result.status.status;
79
+ }
80
+ }
81
+ exports.FetchTotalState = FetchTotalState;
82
+ //# sourceMappingURL=FetchTotalState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mobx","require","_CollectionState","_util","FetchTotalState","constructor","params","_defineProperty2","default","_collection","collection","errorMonitor","onlineState","history","translate","queryCache","lodash","queryName","itemKey","itemName","paginationMode","selectionConsistencyMode","filters","query","search","_totalsCollection","CollectionState","limit","fetchData","total","fetchTotal","items","fetchErrorMessage","id","makeObservable","computed","status","init","disposers","addEventListener","emitter","clearResultAndMoveToStart","refreshAllPages","refreshCurrentPage","forEach","disposer","result","lifecycleState","exports"],"sources":["../../../src/state/FetchTotalState.ts"],"sourcesContent":["import { computed, makeObservable } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { addEventListener } from '../util';\nimport { QueryCache } from 'react-query';\nimport { ComputedQuery, FiltersMap, QueryStatusValue } from '../model';\n\nexport interface FetchTotalStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly queryCache: QueryCache;\n readonly fetchTotal: (query: ComputedQuery<F>) => Promise<number>;\n}\n\nexport class FetchTotalState<T, F extends FiltersMap> {\n readonly _collection;\n readonly _totalsCollection;\n\n constructor(params: Readonly<FetchTotalStateParams<T, F>>) {\n this._collection = params.collection;\n\n const {\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName,\n itemKey,\n itemName,\n paginationMode,\n selectionConsistencyMode,\n filters,\n query: { search },\n } = params.collection;\n\n this._totalsCollection = new CollectionState<T, F>({\n errorMonitor,\n onlineState,\n history,\n translate,\n queryCache,\n lodash,\n queryName: `${queryName}.total`,\n itemKey,\n itemName,\n limit: 1,\n fetchData: async (query) => {\n const total = await params.fetchTotal(query);\n return { items: [], total };\n },\n fetchErrorMessage: () => null,\n paginationMode: paginationMode.id,\n selectionConsistencyMode,\n filters,\n search,\n });\n\n makeObservable(this, {\n total: computed,\n status: computed,\n });\n }\n\n init() {\n const { _collection, _totalsCollection } = this;\n\n const disposers = [\n _totalsCollection.init(),\n addEventListener(_collection.emitter, 'search', () => {\n _totalsCollection.clearResultAndMoveToStart();\n }),\n addEventListener(\n _collection.emitter,\n 'clearSearch',\n _totalsCollection.clearResultAndMoveToStart,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshAllPages',\n _totalsCollection.refreshAllPages,\n ),\n addEventListener(\n _collection.emitter,\n 'refreshCurrentPage',\n _totalsCollection.refreshCurrentPage,\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get total(): number {\n return this._totalsCollection.result.total;\n }\n\n get status(): QueryStatusValue {\n // While refreshing the status remains as success\n return this._totalsCollection.lifecycleState === 'refresh'\n ? 'loading'\n : this._totalsCollection.result.status.status;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAUO,MAAMG,eAAe,CAA0B;EAIpDC,WAAWA,CAACC,MAA6C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACzD,IAAI,CAACC,WAAW,GAAGH,MAAM,CAACI,UAAU;IAEpC,MAAM;MACJC,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,OAAO;MACPC,QAAQ;MACRC,cAAc;MACdC,wBAAwB;MACxBC,OAAO;MACPC,KAAK,EAAE;QAAEC;MAAO;IAClB,CAAC,GAAGlB,MAAM,CAACI,UAAU;IAErB,IAAI,CAACe,iBAAiB,GAAG,IAAIC,gCAAe,CAAO;MACjDf,YAAY;MACZC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS,EAAE,GAAGA,SAAS,QAAQ;MAC/BC,OAAO;MACPC,QAAQ;MACRQ,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,MAAOL,KAAK,IAAK;QAC1B,MAAMM,KAAK,GAAG,MAAMvB,MAAM,CAACwB,UAAU,CAACP,KAAK,CAAC;QAC5C,OAAO;UAAEQ,KAAK,EAAE,EAAE;UAAEF;QAAM,CAAC;MAC7B,CAAC;MACDG,iBAAiB,EAAEA,CAAA,KAAM,IAAI;MAC7BZ,cAAc,EAAEA,cAAc,CAACa,EAAE;MACjCZ,wBAAwB;MACxBC,OAAO;MACPE;IACF,CAAC,CAAC;IAEF,IAAAU,oBAAc,EAAC,IAAI,EAAE;MACnBL,KAAK,EAAEM,cAAQ;MACfC,MAAM,EAAED;IACV,CAAC,CAAC;EACJ;EAEAE,IAAIA,CAAA,EAAG;IACL,MAAM;MAAE5B,WAAW;MAAEgB;IAAkB,CAAC,GAAG,IAAI;IAE/C,MAAMa,SAAS,GAAG,CAChBb,iBAAiB,CAACY,IAAI,CAAC,CAAC,EACxB,IAAAE,sBAAgB,EAAC9B,WAAW,CAAC+B,OAAO,EAAE,QAAQ,EAAE,MAAM;MACpDf,iBAAiB,CAACgB,yBAAyB,CAAC,CAAC;IAC/C,CAAC,CAAC,EACF,IAAAF,sBAAgB,EACd9B,WAAW,CAAC+B,OAAO,EACnB,aAAa,EACbf,iBAAiB,CAACgB,yBACpB,CAAC,EACD,IAAAF,sBAAgB,EACd9B,WAAW,CAAC+B,OAAO,EACnB,iBAAiB,EACjBf,iBAAiB,CAACiB,eACpB,CAAC,EACD,IAAAH,sBAAgB,EACd9B,WAAW,CAAC+B,OAAO,EACnB,oBAAoB,EACpBf,iBAAiB,CAACkB,kBACpB,CAAC,CACF;IAED,OAAO,MAAM;MACXL,SAAS,CAACM,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;EACH;EAEA,IAAIhB,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACJ,iBAAiB,CAACqB,MAAM,CAACjB,KAAK;EAC5C;EAEA,IAAIO,MAAMA,CAAA,EAAqB;IAC7B;IACA,OAAO,IAAI,CAACX,iBAAiB,CAACsB,cAAc,KAAK,SAAS,GACtD,SAAS,GACT,IAAI,CAACtB,iBAAiB,CAACqB,MAAM,CAACV,MAAM,CAACA,MAAM;EACjD;AACF;AAACY,OAAA,CAAA5C,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -25,6 +25,7 @@ class QueryResultState {
25
25
  });
26
26
  (0, _defineProperty2.default)(this, "_supportTotal", false);
27
27
  (0, _defineProperty2.default)(this, "_keyedItemsMap", new Map());
28
+ (0, _defineProperty2.default)(this, "fetchTotal", void 0);
28
29
  (0, _defineProperty2.default)(this, "available", null);
29
30
  (0, _defineProperty2.default)(this, "status", {
30
31
  ..._model.queryStatus.idle,
@@ -38,6 +39,7 @@ class QueryResultState {
38
39
  }));
39
40
  this.itemKey = params.itemKey;
40
41
  this.originQuery = params.originQuery;
42
+ this.fetchTotal = params.fetchTotal;
41
43
  (0, _mobx.makeObservable)(this, {
42
44
  items: (0, _mobx.computed)({
43
45
  keepAlive: true
@@ -61,9 +63,17 @@ class QueryResultState {
61
63
  status: _mobx.observable.ref,
62
64
  originQuery: _mobx.observable.ref,
63
65
  changeItems: _mobx.action,
66
+ totalStatus: _mobx.computed,
64
67
  slice: _mobx.action
65
68
  });
66
69
  }
70
+ init() {
71
+ var _this$fetchTotal;
72
+ const disposers = [(_this$fetchTotal = this.fetchTotal) == null ? void 0 : _this$fetchTotal.init()];
73
+ return () => {
74
+ disposers.forEach(disposer => disposer == null ? void 0 : disposer());
75
+ };
76
+ }
67
77
  get errorStatus() {
68
78
  const {
69
79
  status
@@ -117,10 +127,13 @@ class QueryResultState {
117
127
  return (0, _flatMap.default)(pages);
118
128
  }
119
129
  get total() {
120
- return this._totals.processed;
130
+ return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;
131
+ }
132
+ get totalStatus() {
133
+ return this.fetchTotal ? this.fetchTotal.status : this.status.status;
121
134
  }
122
135
  get supportTotal() {
123
- return this._supportTotal;
136
+ return !!this.fetchTotal || this._supportTotal;
124
137
  }
125
138
  get fetchedAll() {
126
139
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","slice","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","forEach","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n slice: action,\n });\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this._totals.processed;\n }\n\n get supportTotal() {\n return this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","fetchTotal","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","totalStatus","slice","init","_this$fetchTotal","disposers","forEach","disposer","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\nimport { FetchTotalState } from './FetchTotalState';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n fetchTotal?: FetchTotalState<T, F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n readonly fetchTotal?: FetchTotalState<T, F>;\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n this.fetchTotal = params.fetchTotal;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n totalStatus: computed,\n slice: action,\n });\n }\n\n init() {\n const disposers = [\n this.fetchTotal?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;\n }\n\n get totalStatus() {\n return this.fetchTotal ? this.fetchTotal.status : this.status.status;\n }\n\n get supportTotal() {\n return !!this.fetchTotal || this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -107,6 +107,7 @@ export class DataExtensionSchemaService {
107
107
  ...(writeApps ? ['apps'] : []),
108
108
  ],
109
109
  };
110
+ const filterable = params.filterable ? { 'x-wix-filterable': true } : {};
110
111
  const schema = {
111
112
  fqdn,
112
113
  namespace: userFieldsNamespace,
@@ -119,6 +120,7 @@ export class DataExtensionSchemaService {
119
120
  title: name,
120
121
  ...type,
121
122
  'x-wix-permissions': permissions,
123
+ ...filterable,
122
124
  },
123
125
  },
124
126
  },
@@ -1 +1 @@
1
- {"version":3,"file":"dataExtensionService.js","sourceRoot":"","sources":["../../../src/services/dataExtensionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataExtensionService.js","sourceRoot":"","sources":["../../../src/services/dataExtensionService.ts"],"names":[],"mappings":"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"}