@webiny/app-aco 5.41.1 → 5.41.2-beta.1

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.
@@ -1,4 +1,5 @@
1
1
  import { FilterDTO, FilterGroupFilterDTO, Operation } from "../domain";
2
+ import { FormInvalidFields } from "@webiny/form";
2
3
  export interface QueryBuilderDrawerPresenterInterface {
3
4
  load(filter: FilterDTO): void;
4
5
  addGroup(): void;
@@ -14,10 +15,7 @@ export interface QueryBuilderDrawerPresenterInterface {
14
15
  export interface QueryBuilderViewModel {
15
16
  name: string;
16
17
  description: string;
17
- invalidFields: Record<string, {
18
- isValid: boolean;
19
- message: string;
20
- }>;
18
+ invalidFields: FormInvalidFields;
21
19
  invalidMessage: string;
22
20
  data: QueryBuilderFormData;
23
21
  }
@@ -43,10 +41,7 @@ export declare class QueryBuilderDrawerPresenter implements QueryBuilderDrawerPr
43
41
  get vm(): {
44
42
  name: string;
45
43
  description: string;
46
- invalidFields: Record<string, {
47
- isValid: boolean;
48
- message: string;
49
- }>;
44
+ invalidFields: FormInvalidFields;
50
45
  invalidMessage: string;
51
46
  data: {
52
47
  operation: Operation;
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_domain","QueryBuilderDrawerPresenter","exports","_classCallCheck2","default","_defineProperty2","filter","undefined","makeAutoObservable","_createClass2","key","value","load","get","name","description","invalidFields","invalidMessage","data","operation","Operation","AND","groups","map","group","groupIndex","title","concat","open","canDelete","filters","filterIndex","field","condition","addGroup","push","deleteGroup","_","index","length","addNewFilterToGroup","deleteFilterFromGroup","setFilterFieldData","_toConsumableArray2","slice","setFilter","_objectSpread3","formWasSubmitted","validateFilter","onApply","onSuccess","onError","result","success","onSave","validation","Filter","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QueryBuilderDrawerPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport { Filter, FilterDTO, FilterGroupDTO, FilterGroupFilterDTO, Operation } from \"../domain\";\n\nexport interface QueryBuilderDrawerPresenterInterface {\n load(filter: FilterDTO): void;\n addGroup(): void;\n deleteGroup(groupIndex: number): void;\n addNewFilterToGroup(groupIndex: number): void;\n deleteFilterFromGroup(groupIndex: number, filterIndex: number): void;\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string): void;\n setFilter(data: QueryBuilderFormData): void;\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n get vm(): QueryBuilderViewModel;\n}\n\nexport interface QueryBuilderViewModel {\n name: string;\n description: string;\n invalidFields: Record<string, { isValid: boolean; message: string }>;\n invalidMessage: string;\n data: QueryBuilderFormData;\n}\n\nexport interface QueryBuilderFormData {\n operation: Operation;\n groups: {\n operation: Operation;\n title: string;\n open: boolean;\n canDelete: boolean;\n filters: (FilterGroupFilterDTO & { canDelete: boolean })[];\n }[];\n}\n\nexport class QueryBuilderDrawerPresenter implements QueryBuilderDrawerPresenterInterface {\n private formWasSubmitted = false;\n private invalidFields: QueryBuilderViewModel[\"invalidFields\"] = {};\n private invalidMessage = \"\";\n private filter: FilterDTO | undefined;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\",\n invalidFields: this.invalidFields,\n invalidMessage: this.invalidMessage,\n data: {\n operation: this.filter?.operation || Operation.AND,\n groups:\n this.filter?.groups.map((group: FilterGroupDTO, groupIndex) => {\n return {\n title: `Filter group #${groupIndex + 1}`,\n open: true,\n operation: group.operation,\n canDelete: groupIndex !== 0,\n filters: group.filters.map((filter, filterIndex) => ({\n field: filter.field,\n condition: filter.condition,\n value: filter.value,\n canDelete: filterIndex !== 0\n }))\n };\n }) || []\n }\n };\n }\n\n addGroup() {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups.push({\n operation: Operation.AND,\n filters: [{ field: \"\", value: \"\", condition: \"\" }]\n });\n }\n\n deleteGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups = this.filter.groups.filter((_, index) => index !== groupIndex);\n\n // Make sure we always have at least 1 group!\n if (this.filter.groups.length === 0) {\n this.addGroup();\n }\n }\n\n addNewFilterToGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n\n deleteFilterFromGroup(groupIndex: number, filterIndex: number) {\n if (!this.filter) {\n return;\n }\n\n const filters = this.filter.groups[groupIndex].filters;\n this.filter.groups[groupIndex].filters = filters.filter(\n (_, index) => index !== filterIndex\n );\n\n // Make sure we always have at least 1 filter!\n if (this.filter.groups[groupIndex].filters.length === 0) {\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n }\n\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters = [\n ...this.filter.groups[groupIndex].filters.slice(0, filterIndex),\n {\n field: data,\n value: \"\",\n condition: \"\"\n },\n ...this.filter.groups[groupIndex].filters.slice(filterIndex + 1)\n ];\n }\n\n setFilter(data: QueryBuilderFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n operation: data.operation,\n groups: data.groups.map(group => ({\n operation: group.operation,\n filters: group.filters\n }))\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidMessage = \"Error during the validation: check the filter configuration.\";\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidMessage = \"\";\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAA+F,IAkClFE,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA;EAMpC,SAAAA,4BAAA,EAAc;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,2BAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA,4BALa,KAAK;IAAA,IAAAC,gBAAA,CAAAD,OAAA,yBACgC,CAAC,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,0BACzC,EAAE;IAIvB,IAAI,CAACE,MAAM,GAAGC,SAAS;IACvB,IAAAC,wBAAkB,EAAC,IAAI,CAAC;EAC5B;EAAC,WAAAC,aAAA,CAAAL,OAAA,EAAAH,2BAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAKN,MAAiB,EAAE;MACpB,IAAI,CAACA,MAAM,GAAGA,MAAM;IACxB;EAAC;IAAAI,GAAA;IAAAG,GAAA,EAED,SAAAA,IAAA,EAAS;MACL,OAAO;QACHC,IAAI,EAAE,IAAI,CAACR,MAAM,EAAEQ,IAAI,IAAI,EAAE;QAC7BC,WAAW,EAAE,IAAI,CAACT,MAAM,EAAES,WAAW,IAAI,EAAE;QAC3CC,aAAa,EAAE,IAAI,CAACA,aAAa;QACjCC,cAAc,EAAE,IAAI,CAACA,cAAc;QACnCC,IAAI,EAAE;UACFC,SAAS,EAAE,IAAI,CAACb,MAAM,EAAEa,SAAS,IAAIC,iBAAS,CAACC,GAAG;UAClDC,MAAM,EACF,IAAI,CAAChB,MAAM,EAAEgB,MAAM,CAACC,GAAG,CAAC,UAACC,KAAqB,EAAEC,UAAU,EAAK;YAC3D,OAAO;cACHC,KAAK,mBAAAC,MAAA,CAAmBF,UAAU,GAAG,CAAC,CAAE;cACxCG,IAAI,EAAE,IAAI;cACVT,SAAS,EAAEK,KAAK,CAACL,SAAS;cAC1BU,SAAS,EAAEJ,UAAU,KAAK,CAAC;cAC3BK,OAAO,EAAEN,KAAK,CAACM,OAAO,CAACP,GAAG,CAAC,UAACjB,MAAM,EAAEyB,WAAW;gBAAA,OAAM;kBACjDC,KAAK,EAAE1B,MAAM,CAAC0B,KAAK;kBACnBC,SAAS,EAAE3B,MAAM,CAAC2B,SAAS;kBAC3BtB,KAAK,EAAEL,MAAM,CAACK,KAAK;kBACnBkB,SAAS,EAAEE,WAAW,KAAK;gBAC/B,CAAC;cAAA,CAAC;YACN,CAAC;UACL,CAAC,CAAC,IAAI;QACd;MACJ,CAAC;IACL;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAuB,SAAA,EAAW;MACP,IAAI,CAAC,IAAI,CAAC5B,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,CAACgB,MAAM,CAACa,IAAI,CAAC;QACpBhB,SAAS,EAAEC,iBAAS,CAACC,GAAG;QACxBS,OAAO,EAAE,CAAC;UAAEE,KAAK,EAAE,EAAE;UAAErB,KAAK,EAAE,EAAE;UAAEsB,SAAS,EAAE;QAAG,CAAC;MACrD,CAAC,CAAC;IACN;EAAC;IAAAvB,GAAA;IAAAC,KAAA,EAED,SAAAyB,YAAYX,UAAkB,EAAE;MAC5B,IAAI,CAAC,IAAI,CAACnB,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,CAACgB,MAAM,GAAG,IAAI,CAAChB,MAAM,CAACgB,MAAM,CAAChB,MAAM,CAAC,UAAC+B,CAAC,EAAEC,KAAK;QAAA,OAAKA,KAAK,KAAKb,UAAU;MAAA,EAAC;;MAElF;MACA,IAAI,IAAI,CAACnB,MAAM,CAACgB,MAAM,CAACiB,MAAM,KAAK,CAAC,EAAE;QACjC,IAAI,CAACL,QAAQ,CAAC,CAAC;MACnB;IACJ;EAAC;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAA6B,oBAAoBf,UAAkB,EAAE;MACpC,IAAI,CAAC,IAAI,CAACnB,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,CAACK,IAAI,CAAC;QACxCH,KAAK,EAAE,EAAE;QACTrB,KAAK,EAAE,EAAE;QACTsB,SAAS,EAAE;MACf,CAAC,CAAC;IACN;EAAC;IAAAvB,GAAA;IAAAC,KAAA,EAED,SAAA8B,sBAAsBhB,UAAkB,EAAEM,WAAmB,EAAE;MAC3D,IAAI,CAAC,IAAI,CAACzB,MAAM,EAAE;QACd;MACJ;MAEA,IAAMwB,OAAO,GAAG,IAAI,CAACxB,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO;MACtD,IAAI,CAACxB,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,GAAGA,OAAO,CAACxB,MAAM,CACnD,UAAC+B,CAAC,EAAEC,KAAK;QAAA,OAAKA,KAAK,KAAKP,WAAW;MAAA,CACvC,CAAC;;MAED;MACA,IAAI,IAAI,CAACzB,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,CAACS,MAAM,KAAK,CAAC,EAAE;QACrD,IAAI,CAACjC,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,CAACK,IAAI,CAAC;UACxCH,KAAK,EAAE,EAAE;UACTrB,KAAK,EAAE,EAAE;UACTsB,SAAS,EAAE;QACf,CAAC,CAAC;MACN;IACJ;EAAC;IAAAvB,GAAA;IAAAC,KAAA,EAED,SAAA+B,mBAAmBjB,UAAkB,EAAEM,WAAmB,EAAEb,IAAY,EAAE;MACtE,IAAI,CAAC,IAAI,CAACZ,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,MAAAH,MAAA,KAAAgB,mBAAA,CAAAvC,OAAA,EAC/B,IAAI,CAACE,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,CAACc,KAAK,CAAC,CAAC,EAAEb,WAAW,CAAC,IAC/D;QACIC,KAAK,EAAEd,IAAI;QACXP,KAAK,EAAE,EAAE;QACTsB,SAAS,EAAE;MACf,CAAC,OAAAU,mBAAA,CAAAvC,OAAA,EACE,IAAI,CAACE,MAAM,CAACgB,MAAM,CAACG,UAAU,CAAC,CAACK,OAAO,CAACc,KAAK,CAACb,WAAW,GAAG,CAAC,CAAC,EACnE;IACL;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAkC,UAAU3B,IAA0B,EAAE;MAClC,IAAI,CAAC,IAAI,CAACZ,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,OAAAwC,cAAA,CAAA1C,OAAA,MAAA0C,cAAA,CAAA1C,OAAA,MACJ,IAAI,CAACE,MAAM;QACda,SAAS,EAAED,IAAI,CAACC,SAAS;QACzBG,MAAM,EAAEJ,IAAI,CAACI,MAAM,CAACC,GAAG,CAAC,UAAAC,KAAK;UAAA,OAAK;YAC9BL,SAAS,EAAEK,KAAK,CAACL,SAAS;YAC1BW,OAAO,EAAEN,KAAK,CAACM;UACnB,CAAC;QAAA,CAAC;MAAC,EACN;MAED,IAAI,IAAI,CAACiB,gBAAgB,EAAE;QACvB,IAAI,CAACC,cAAc,CAAC,IAAI,CAAC1C,MAAM,CAAC;MACpC;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,SAAAsC,QAAQC,SAAuC,EAAEC,OAAqC,EAAE;MACpF,IAAI,CAAC,IAAI,CAAC7C,MAAM,EAAE;QACd;MACJ;MAEA,IAAM8C,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAAC1C,MAAM,CAAC;MAC/C,IAAI8C,MAAM,CAACC,OAAO,EAAE;QAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAAC5C,MAAM,CAAC;MACvC,CAAC,MAAM;QACH6C,OAAO,IAAIA,OAAO,CAAC,IAAI,CAAC7C,MAAM,CAAC;MACnC;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,SAAA2C,OAAOJ,SAAuC,EAAEC,OAAqC,EAAE;MACnF,IAAI,CAAC,IAAI,CAAC7C,MAAM,EAAE;QACd;MACJ;MAEA,IAAM8C,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAAC1C,MAAM,CAAC;MAC/C,IAAI8C,MAAM,CAACC,OAAO,EAAE;QAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAAC5C,MAAM,CAAC;MACvC,CAAC,MAAM;QACH6C,OAAO,IAAIA,OAAO,CAAC,IAAI,CAAC7C,MAAM,CAAC;MACnC;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,SAAAqC,eAAuB9B,IAAe,EAAE;MACpC,IAAI,CAAC6B,gBAAgB,GAAG,IAAI;MAC5B,IAAMQ,UAAU,GAAGC,cAAM,CAACC,QAAQ,CAACvC,IAAI,CAAC;MAExC,IAAI,CAACqC,UAAU,CAACF,OAAO,EAAE;QACrB,IAAI,CAACpC,cAAc,GAAG,8DAA8D;QACpF,IAAI,CAACD,aAAa,GAAGuC,UAAU,CAACG,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,UAACC,GAAG,EAAEC,KAAK,EAAK;UAChE,WAAAhB,cAAA,CAAA1C,OAAA,MAAA0C,cAAA,CAAA1C,OAAA,MACOyD,GAAG,WAAAxD,gBAAA,CAAAD,OAAA,MACL0D,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,EAAGF,KAAK,CAACG,OAAO;QAE7C,CAAC,EAAE,CAAC,CAAC,CAAC;MACV,CAAC,MAAM;QACH,IAAI,CAAChD,cAAc,GAAG,EAAE;QACxB,IAAI,CAACD,aAAa,GAAG,CAAC,CAAC;MAC3B;MAEA,OAAOuC,UAAU;IACrB;EAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_domain","QueryBuilderDrawerPresenter","exports","_classCallCheck2","default","_defineProperty2","filter","undefined","makeAutoObservable","_createClass2","key","value","load","get","name","description","invalidFields","invalidMessage","data","operation","Operation","AND","groups","map","group","groupIndex","title","concat","open","canDelete","filters","filterIndex","field","condition","addGroup","push","deleteGroup","_","index","length","addNewFilterToGroup","deleteFilterFromGroup","setFilterFieldData","_toConsumableArray2","slice","setFilter","_objectSpread3","formWasSubmitted","validateFilter","onApply","onSuccess","onError","result","success","onSave","validation","Filter","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QueryBuilderDrawerPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { Filter, FilterDTO, FilterGroupDTO, FilterGroupFilterDTO, Operation } from \"../domain\";\nimport { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QueryBuilderDrawerPresenterInterface {\n load(filter: FilterDTO): void;\n addGroup(): void;\n deleteGroup(groupIndex: number): void;\n addNewFilterToGroup(groupIndex: number): void;\n deleteFilterFromGroup(groupIndex: number, filterIndex: number): void;\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string): void;\n setFilter(data: QueryBuilderFormData): void;\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void): void;\n get vm(): QueryBuilderViewModel;\n}\n\nexport interface QueryBuilderViewModel {\n name: string;\n description: string;\n invalidFields: FormInvalidFields;\n invalidMessage: string;\n data: QueryBuilderFormData;\n}\n\nexport interface QueryBuilderFormData {\n operation: Operation;\n groups: {\n operation: Operation;\n title: string;\n open: boolean;\n canDelete: boolean;\n filters: (FilterGroupFilterDTO & { canDelete: boolean })[];\n }[];\n}\n\nexport class QueryBuilderDrawerPresenter implements QueryBuilderDrawerPresenterInterface {\n private formWasSubmitted = false;\n private invalidFields: QueryBuilderViewModel[\"invalidFields\"] = {};\n private invalidMessage = \"\";\n private filter: FilterDTO | undefined;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\",\n invalidFields: this.invalidFields,\n invalidMessage: this.invalidMessage,\n data: {\n operation: this.filter?.operation || Operation.AND,\n groups:\n this.filter?.groups.map((group: FilterGroupDTO, groupIndex) => {\n return {\n title: `Filter group #${groupIndex + 1}`,\n open: true,\n operation: group.operation,\n canDelete: groupIndex !== 0,\n filters: group.filters.map((filter, filterIndex) => ({\n field: filter.field,\n condition: filter.condition,\n value: filter.value,\n canDelete: filterIndex !== 0\n }))\n };\n }) || []\n }\n };\n }\n\n addGroup() {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups.push({\n operation: Operation.AND,\n filters: [{ field: \"\", value: \"\", condition: \"\" }]\n });\n }\n\n deleteGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups = this.filter.groups.filter((_, index) => index !== groupIndex);\n\n // Make sure we always have at least 1 group!\n if (this.filter.groups.length === 0) {\n this.addGroup();\n }\n }\n\n addNewFilterToGroup(groupIndex: number) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n\n deleteFilterFromGroup(groupIndex: number, filterIndex: number) {\n if (!this.filter) {\n return;\n }\n\n const filters = this.filter.groups[groupIndex].filters;\n this.filter.groups[groupIndex].filters = filters.filter(\n (_, index) => index !== filterIndex\n );\n\n // Make sure we always have at least 1 filter!\n if (this.filter.groups[groupIndex].filters.length === 0) {\n this.filter.groups[groupIndex].filters.push({\n field: \"\",\n value: \"\",\n condition: \"\"\n });\n }\n }\n\n setFilterFieldData(groupIndex: number, filterIndex: number, data: string) {\n if (!this.filter) {\n return;\n }\n\n this.filter.groups[groupIndex].filters = [\n ...this.filter.groups[groupIndex].filters.slice(0, filterIndex),\n {\n field: data,\n value: \"\",\n condition: \"\"\n },\n ...this.filter.groups[groupIndex].filters.slice(filterIndex + 1)\n ];\n }\n\n setFilter(data: QueryBuilderFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n operation: data.operation,\n groups: data.groups.map(group => ({\n operation: group.operation,\n filters: group.filters\n }))\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n onApply(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n onSave(onSuccess?: (filter: FilterDTO) => void, onError?: (filter: FilterDTO) => void) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidMessage = \"Error during the validation: check the filter configuration.\";\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidMessage = \"\";\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import { FilterDTO } from "../domain";
2
+ import { FormInvalidFields } from "@webiny/form";
2
3
  export interface QuerySaverDialogPresenterInterface {
3
4
  load(filter: FilterDTO): void;
4
5
  setFilter(data: QuerySaverDialogFormData): void;
@@ -14,10 +15,7 @@ export interface QuerySaverDialogFormData {
14
15
  }
15
16
  export interface QuerySaverDialogViewModel {
16
17
  filter: FilterDTO | undefined;
17
- invalidFields: Record<string, {
18
- isValid: boolean;
19
- message: string;
20
- }>;
18
+ invalidFields: FormInvalidFields;
21
19
  }
22
20
  export declare class QuerySaverDialogPresenter implements QuerySaverDialogPresenterInterface {
23
21
  private filter;
@@ -26,10 +24,7 @@ export declare class QuerySaverDialogPresenter implements QuerySaverDialogPresen
26
24
  constructor();
27
25
  load(filter: FilterDTO): void;
28
26
  get vm(): {
29
- invalidFields: Record<string, {
30
- isValid: boolean;
31
- message: string;
32
- }>;
27
+ invalidFields: FormInvalidFields;
33
28
  data: {
34
29
  name: string;
35
30
  description: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_domain","QuerySaverDialogPresenter","exports","_classCallCheck2","default","_defineProperty2","filter","undefined","makeAutoObservable","_createClass2","key","value","load","get","invalidFields","data","name","description","setFilter","_objectSpread3","formWasSubmitted","validateFilter","onSave","onSuccess","onError","result","success","validation","Filter","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QuerySaverDialogPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport { Filter, FilterDTO } from \"../domain\";\n\nexport interface QuerySaverDialogPresenterInterface {\n load(filter: FilterDTO): void;\n setFilter(data: QuerySaverDialogFormData): void;\n onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ): Promise<void>;\n get vm(): {\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"];\n data: QuerySaverDialogFormData;\n };\n}\n\nexport interface QuerySaverDialogFormData {\n name: string;\n description?: string;\n}\n\nexport interface QuerySaverDialogViewModel {\n filter: FilterDTO | undefined;\n invalidFields: Record<string, { isValid: boolean; message: string }>;\n}\n\nexport class QuerySaverDialogPresenter implements QuerySaverDialogPresenterInterface {\n private filter: QuerySaverDialogViewModel[\"filter\"];\n private invalidFields: QuerySaverDialogViewModel[\"invalidFields\"] = {};\n private formWasSubmitted = false;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n invalidFields: this.invalidFields,\n data: {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\"\n }\n };\n }\n\n setFilter(data: QuerySaverDialogFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n ...data\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n async onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter, this.invalidFields);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAA8C,IA4BjCE,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;EAKlC,SAAAA,0BAAA,EAAc;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,yBAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA,yBAHsD,CAAC,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,4BAC3C,KAAK;IAG5B,IAAI,CAACE,MAAM,GAAGC,SAAS;IACvB,IAAAC,wBAAkB,EAAC,IAAI,CAAC;EAC5B;EAAC,WAAAC,aAAA,CAAAL,OAAA,EAAAH,yBAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAKN,MAAiB,EAAE;MACpB,IAAI,CAACA,MAAM,GAAGA,MAAM;IACxB;EAAC;IAAAI,GAAA;IAAAG,GAAA,EAED,SAAAA,IAAA,EAAS;MACL,OAAO;QACHC,aAAa,EAAE,IAAI,CAACA,aAAa;QACjCC,IAAI,EAAE;UACFC,IAAI,EAAE,IAAI,CAACV,MAAM,EAAEU,IAAI,IAAI,EAAE;UAC7BC,WAAW,EAAE,IAAI,CAACX,MAAM,EAAEW,WAAW,IAAI;QAC7C;MACJ,CAAC;IACL;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAO,UAAUH,IAA8B,EAAE;MACtC,IAAI,CAAC,IAAI,CAACT,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,OAAAa,cAAA,CAAAf,OAAA,MAAAe,cAAA,CAAAf,OAAA,MACJ,IAAI,CAACE,MAAM,GACXS,IAAI,CACV;MAED,IAAI,IAAI,CAACK,gBAAgB,EAAE;QACvB,IAAI,CAACC,cAAc,CAAC,IAAI,CAACf,MAAM,CAAC;MACpC;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,eAAAW,OACIC,SAAuC,EACvCC,OAGS,EACX;MACE,IAAI,CAAC,IAAI,CAAClB,MAAM,EAAE;QACd;MACJ;MAEA,IAAMmB,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAACf,MAAM,CAAC;MAC/C,IAAImB,MAAM,CAACC,OAAO,EAAE;QAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAACjB,MAAM,CAAC;MACvC,CAAC,MAAM;QACHkB,OAAO,IAAIA,OAAO,CAAC,IAAI,CAAClB,MAAM,EAAE,IAAI,CAACQ,aAAa,CAAC;MACvD;IACJ;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAU,eAAuBN,IAAe,EAAE;MACpC,IAAI,CAACK,gBAAgB,GAAG,IAAI;MAC5B,IAAMO,UAAU,GAAGC,cAAM,CAACC,QAAQ,CAACd,IAAI,CAAC;MAExC,IAAI,CAACY,UAAU,CAACD,OAAO,EAAE;QACrB,IAAI,CAACZ,aAAa,GAAGa,UAAU,CAACG,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,UAACC,GAAG,EAAEC,KAAK,EAAK;UAChE,WAAAf,cAAA,CAAAf,OAAA,MAAAe,cAAA,CAAAf,OAAA,MACO6B,GAAG,WAAA5B,gBAAA,CAAAD,OAAA,MACL8B,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,EAAGF,KAAK,CAACG,OAAO;QAE7C,CAAC,EAAE,CAAC,CAAC,CAAC;MACV,CAAC,MAAM;QACH,IAAI,CAACvB,aAAa,GAAG,CAAC,CAAC;MAC3B;MAEA,OAAOa,UAAU;IACrB;EAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_domain","QuerySaverDialogPresenter","exports","_classCallCheck2","default","_defineProperty2","filter","undefined","makeAutoObservable","_createClass2","key","value","load","get","invalidFields","data","name","description","setFilter","_objectSpread3","formWasSubmitted","validateFilter","onSave","onSuccess","onError","result","success","validation","Filter","validate","error","issues","reduce","acc","issue","path","join","message"],"sources":["QuerySaverDialogPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport { Filter, FilterDTO } from \"../domain\";\nimport { FormInvalidFields } from \"@webiny/form\";\n\nexport interface QuerySaverDialogPresenterInterface {\n load(filter: FilterDTO): void;\n setFilter(data: QuerySaverDialogFormData): void;\n onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ): Promise<void>;\n get vm(): {\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"];\n data: QuerySaverDialogFormData;\n };\n}\n\nexport interface QuerySaverDialogFormData {\n name: string;\n description?: string;\n}\n\nexport interface QuerySaverDialogViewModel {\n filter: FilterDTO | undefined;\n invalidFields: FormInvalidFields;\n}\n\nexport class QuerySaverDialogPresenter implements QuerySaverDialogPresenterInterface {\n private filter: QuerySaverDialogViewModel[\"filter\"];\n private invalidFields: QuerySaverDialogViewModel[\"invalidFields\"] = {};\n private formWasSubmitted = false;\n\n constructor() {\n this.filter = undefined;\n makeAutoObservable(this);\n }\n\n load(filter: FilterDTO) {\n this.filter = filter;\n }\n\n get vm() {\n return {\n invalidFields: this.invalidFields,\n data: {\n name: this.filter?.name || \"\",\n description: this.filter?.description || \"\"\n }\n };\n }\n\n setFilter(data: QuerySaverDialogFormData) {\n if (!this.filter) {\n return;\n }\n\n this.filter = {\n ...this.filter,\n ...data\n };\n\n if (this.formWasSubmitted) {\n this.validateFilter(this.filter);\n }\n }\n\n async onSave(\n onSuccess?: (filter: FilterDTO) => void,\n onError?: (\n filter: FilterDTO,\n invalidFields: QuerySaverDialogViewModel[\"invalidFields\"]\n ) => void\n ) {\n if (!this.filter) {\n return;\n }\n\n const result = this.validateFilter(this.filter);\n if (result.success) {\n onSuccess && onSuccess(this.filter);\n } else {\n onError && onError(this.filter, this.invalidFields);\n }\n }\n\n private validateFilter(data: FilterDTO) {\n this.formWasSubmitted = true;\n const validation = Filter.validate(data);\n\n if (!validation.success) {\n this.invalidFields = validation.error.issues.reduce((acc, issue) => {\n return {\n ...acc,\n [issue.path.join(\".\")]: issue.message\n };\n }, {});\n } else {\n this.invalidFields = {};\n }\n\n return validation;\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAA8C,IA6BjCE,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;EAKlC,SAAAA,0BAAA,EAAc;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,yBAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA,yBAHsD,CAAC,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,4BAC3C,KAAK;IAG5B,IAAI,CAACE,MAAM,GAAGC,SAAS;IACvB,IAAAC,wBAAkB,EAAC,IAAI,CAAC;EAC5B;EAAC,WAAAC,aAAA,CAAAL,OAAA,EAAAH,yBAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAKN,MAAiB,EAAE;MACpB,IAAI,CAACA,MAAM,GAAGA,MAAM;IACxB;EAAC;IAAAI,GAAA;IAAAG,GAAA,EAED,SAAAA,IAAA,EAAS;MACL,OAAO;QACHC,aAAa,EAAE,IAAI,CAACA,aAAa;QACjCC,IAAI,EAAE;UACFC,IAAI,EAAE,IAAI,CAACV,MAAM,EAAEU,IAAI,IAAI,EAAE;UAC7BC,WAAW,EAAE,IAAI,CAACX,MAAM,EAAEW,WAAW,IAAI;QAC7C;MACJ,CAAC;IACL;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAO,UAAUH,IAA8B,EAAE;MACtC,IAAI,CAAC,IAAI,CAACT,MAAM,EAAE;QACd;MACJ;MAEA,IAAI,CAACA,MAAM,OAAAa,cAAA,CAAAf,OAAA,MAAAe,cAAA,CAAAf,OAAA,MACJ,IAAI,CAACE,MAAM,GACXS,IAAI,CACV;MAED,IAAI,IAAI,CAACK,gBAAgB,EAAE;QACvB,IAAI,CAACC,cAAc,CAAC,IAAI,CAACf,MAAM,CAAC;MACpC;IACJ;EAAC;IAAAI,GAAA;IAAAC,KAAA,EAED,eAAAW,OACIC,SAAuC,EACvCC,OAGS,EACX;MACE,IAAI,CAAC,IAAI,CAAClB,MAAM,EAAE;QACd;MACJ;MAEA,IAAMmB,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,IAAI,CAACf,MAAM,CAAC;MAC/C,IAAImB,MAAM,CAACC,OAAO,EAAE;QAChBH,SAAS,IAAIA,SAAS,CAAC,IAAI,CAACjB,MAAM,CAAC;MACvC,CAAC,MAAM;QACHkB,OAAO,IAAIA,OAAO,CAAC,IAAI,CAAClB,MAAM,EAAE,IAAI,CAACQ,aAAa,CAAC;MACvD;IACJ;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAU,eAAuBN,IAAe,EAAE;MACpC,IAAI,CAACK,gBAAgB,GAAG,IAAI;MAC5B,IAAMO,UAAU,GAAGC,cAAM,CAACC,QAAQ,CAACd,IAAI,CAAC;MAExC,IAAI,CAACY,UAAU,CAACD,OAAO,EAAE;QACrB,IAAI,CAACZ,aAAa,GAAGa,UAAU,CAACG,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,UAACC,GAAG,EAAEC,KAAK,EAAK;UAChE,WAAAf,cAAA,CAAAf,OAAA,MAAAe,cAAA,CAAAf,OAAA,MACO6B,GAAG,WAAA5B,gBAAA,CAAAD,OAAA,MACL8B,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,EAAGF,KAAK,CAACG,OAAO;QAE7C,CAAC,EAAE,CAAC,CAAC,CAAC;MACV,CAAC,MAAM;QACH,IAAI,CAACvB,aAAa,GAAG,CAAC,CAAC;MAC3B;MAEA,OAAOa,UAAU;IACrB;EAAC;AAAA","ignoreList":[]}
@@ -19,6 +19,7 @@ var _sorting = require("../sorting");
19
19
  var _hooks = require("../hooks");
20
20
  var _utils = require("@webiny/utils");
21
21
  var _appAdmin = require("@webiny/app-admin");
22
+ var _config = require("../config");
22
23
  var SearchRecordsContext = exports.SearchRecordsContext = /*#__PURE__*/_react.default.createContext(undefined);
23
24
  var defaultLoading = {
24
25
  INIT: true,
@@ -61,6 +62,16 @@ var SearchRecordsProvider = exports.SearchRecordsProvider = function SearchRecor
61
62
  client = _useAcoApp.client,
62
63
  mode = _useAcoApp.mode;
63
64
  var model = app.model;
65
+
66
+ /**
67
+ * Retrieve all `fieldIds` from the ACO configuration, considering field `name`:
68
+ * The result is a deduplicated flat array of unique field IDs.
69
+ */
70
+ var _useAcoConfig = (0, _config.useAcoConfig)(),
71
+ table = _useAcoConfig.table;
72
+ var fieldIds = table.columns.map(function (config) {
73
+ return config.name;
74
+ }).filter(Boolean);
64
75
  var _useStateIfMounted = (0, _appAdmin.useStateIfMounted)([]),
65
76
  _useStateIfMounted2 = (0, _slicedToArray2.default)(_useStateIfMounted, 2),
66
77
  records = _useStateIfMounted2[0],
@@ -79,7 +90,7 @@ var SearchRecordsProvider = exports.SearchRecordsProvider = function SearchRecor
79
90
  setMeta = _useStateIfMounted8[1];
80
91
  var _useMemo = (0, _react.useMemo)(function () {
81
92
  return {
82
- LIST_RECORDS: (0, _records.createListRecords)(model, mode),
93
+ LIST_RECORDS: (0, _records.createListRecords)(model, mode, fieldIds),
83
94
  UPDATE_RECORD: (0, _records.createUpdateRecord)(model, mode),
84
95
  MOVE_RECORD: (0, _records.createMoveRecord)(model, mode),
85
96
  GET_RECORD: (0, _records.createGetRecord)(model, mode),
@@ -87,7 +98,7 @@ var SearchRecordsProvider = exports.SearchRecordsProvider = function SearchRecor
87
98
  DELETE_RECORD: (0, _records.createDeleteRecord)(model, mode),
88
99
  CREATE_RECORD: (0, _records.createCreateRecord)(model, mode)
89
100
  };
90
- }, [app.id, model.modelId]),
101
+ }, [app.id, model.modelId, fieldIds]),
91
102
  GET_RECORD = _useMemo.GET_RECORD,
92
103
  LIST_RECORDS = _useMemo.LIST_RECORDS,
93
104
  UPDATE_RECORD = _useMemo.UPDATE_RECORD,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_sortBy","_interopRequireDefault","_unionBy","_merge","_handlers","_records","_sorting","_hooks","_utils","_appAdmin","SearchRecordsContext","exports","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","MOVE","CREATE","UPDATE","DELETE","mergeAndSortTags","oldTagItems","newTags","length","newTagItems","map","tag","mergedTagItems","unionBy","sortBy","getResponseData","response","mode","content","search","defaultMeta","totalCount","hasMoreItems","cursor","SearchRecordsProvider","_ref","children","_useAcoApp","useAcoApp","app","client","model","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","default","records","setRecords","_useStateIfMounted3","_useStateIfMounted4","tags","setTags","_useStateIfMounted5","_useStateIfMounted6","loading","setLoading","_useStateIfMounted7","Object","create","_useStateIfMounted8","meta","setMeta","_useMemo","useMemo","LIST_RECORDS","createListRecords","UPDATE_RECORD","createUpdateRecord","MOVE_RECORD","createMoveRecord","GET_RECORD","createGetRecord","LIST_TAGS","createListTags","DELETE_RECORD","createDeleteRecord","CREATE_RECORD","createCreateRecord","id","modelId","context","addRecordToCache","record","prev","concat","_toConsumableArray2","updateRecordInCache","_parseIdentifier","parseIdentifier","recordId","index","findIndex","item","_parseIdentifier2","itemId","next","lodashMerge","removeRecordFromCache","filter","startsWith","listRecords","params","after","limit","sorting","sort","where","action","validateOrGetDefaultDbSort","_await$apolloFetching","apolloFetchingHandler","loadingHandler","variables","query","fetchPolicy","data","Error","_getResponseData","responseMeta","error","message","_objectSpread2","getRecord","_parseIdentifier3","_await$apolloFetching2","entryId","_getResponseData2","code","createRecord","_await$apolloFetching3","mutate","mutation","_getResponseData3","updateRecord","contextFolderId","location","title","_await$apolloFetching4","_getResponseData4","result","moveRecord","folderId","_await$apolloFetching5","_getResponseData5","deleteRecord","_await$apolloFetching6","_getResponseData6","listTags","_await$apolloFetching7","_getResponseData7","createElement","Provider","value"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from \"react\";\nimport sortBy from \"lodash/sortBy\";\nimport unionBy from \"lodash/unionBy\";\nimport lodashMerge from \"lodash/merge\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\nimport {\n createCreateRecord,\n createDeleteRecord,\n createGetRecord,\n createListRecords,\n createListTags,\n createMoveRecord,\n createUpdateRecord\n} from \"~/graphql/records.gql\";\nimport {\n AcoAppMode,\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types\";\nimport { validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { useAcoApp } from \"~/hooks\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any, mode: AcoAppMode): any => {\n if (mode === \"cms\") {\n return response?.content || {};\n }\n return response.search?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider = ({ children }: Props) => {\n const { app, client, mode } = useAcoApp();\n const { model } = app;\n\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [tags, setTags] = useStateIfMounted<TagItem[]>([]);\n const [loading, setLoading] = useStateIfMounted<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useStateIfMounted<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, mode),\n UPDATE_RECORD: createUpdateRecord(model, mode),\n MOVE_RECORD: createMoveRecord(model, mode),\n GET_RECORD: createGetRecord(model, mode),\n LIST_TAGS: createListTags(model, mode),\n DELETE_RECORD: createDeleteRecord(model, mode),\n CREATE_RECORD: createCreateRecord(model, mode)\n };\n }, [app.id, model.modelId]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n\n setRecords(prev => {\n const index = prev.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n\n if (index >= 0) {\n const next = [...prev];\n next[index] = lodashMerge({}, prev[index], record);\n return next;\n }\n return [record, ...prev];\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(\n record => record.id !== id && !record.id.startsWith(`${id}#`)\n );\n });\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n /**\n * Avoiding fetching records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const totalCount = meta?.totalCount || 0;\n if (after && records.length === totalCount) {\n return records;\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response, mode);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n // If there's no cursor, it means we're receiving a new list of records from scratch.\n if (!after) {\n return data;\n }\n\n return [...prev, ...data];\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { id: recordId } = parseIdentifier(id);\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { entryId: recordId },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${recordId}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== recordId);\n });\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === recordId);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response, mode);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_sortBy","_interopRequireDefault","_unionBy","_merge","_handlers","_records","_sorting","_hooks","_utils","_appAdmin","_config","SearchRecordsContext","exports","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","MOVE","CREATE","UPDATE","DELETE","mergeAndSortTags","oldTagItems","newTags","length","newTagItems","map","tag","mergedTagItems","unionBy","sortBy","getResponseData","response","mode","content","search","defaultMeta","totalCount","hasMoreItems","cursor","SearchRecordsProvider","_ref","children","_useAcoApp","useAcoApp","app","client","model","_useAcoConfig","useAcoConfig","table","fieldIds","columns","config","name","filter","Boolean","_useStateIfMounted","useStateIfMounted","_useStateIfMounted2","_slicedToArray2","default","records","setRecords","_useStateIfMounted3","_useStateIfMounted4","tags","setTags","_useStateIfMounted5","_useStateIfMounted6","loading","setLoading","_useStateIfMounted7","Object","create","_useStateIfMounted8","meta","setMeta","_useMemo","useMemo","LIST_RECORDS","createListRecords","UPDATE_RECORD","createUpdateRecord","MOVE_RECORD","createMoveRecord","GET_RECORD","createGetRecord","LIST_TAGS","createListTags","DELETE_RECORD","createDeleteRecord","CREATE_RECORD","createCreateRecord","id","modelId","context","addRecordToCache","record","prev","concat","_toConsumableArray2","updateRecordInCache","_parseIdentifier","parseIdentifier","recordId","index","findIndex","item","_parseIdentifier2","itemId","next","lodashMerge","removeRecordFromCache","startsWith","listRecords","params","after","limit","sorting","sort","where","action","validateOrGetDefaultDbSort","_await$apolloFetching","apolloFetchingHandler","loadingHandler","variables","query","fetchPolicy","data","Error","_getResponseData","responseMeta","error","message","_objectSpread2","getRecord","_parseIdentifier3","_await$apolloFetching2","entryId","_getResponseData2","code","createRecord","_await$apolloFetching3","mutate","mutation","_getResponseData3","updateRecord","contextFolderId","location","title","_await$apolloFetching4","_getResponseData4","result","moveRecord","folderId","_await$apolloFetching5","_getResponseData5","deleteRecord","_await$apolloFetching6","_getResponseData6","listTags","_await$apolloFetching7","_getResponseData7","createElement","Provider","value"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from \"react\";\nimport sortBy from \"lodash/sortBy\";\nimport unionBy from \"lodash/unionBy\";\nimport lodashMerge from \"lodash/merge\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\nimport {\n createCreateRecord,\n createDeleteRecord,\n createGetRecord,\n createListRecords,\n createListTags,\n createMoveRecord,\n createUpdateRecord\n} from \"~/graphql/records.gql\";\nimport {\n AcoAppMode,\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types\";\nimport { validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { useAcoApp } from \"~/hooks\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useStateIfMounted } from \"@webiny/app-admin\";\nimport { useAcoConfig } from \"~/config\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any, mode: AcoAppMode): any => {\n if (mode === \"cms\") {\n return response?.content || {};\n }\n return response.search?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider = ({ children }: Props) => {\n const { app, client, mode } = useAcoApp();\n const { model } = app;\n\n /**\n * Retrieve all `fieldIds` from the ACO configuration, considering field `name`:\n * The result is a deduplicated flat array of unique field IDs.\n */\n const { table } = useAcoConfig();\n const fieldIds = table.columns.map(config => config.name).filter(Boolean);\n\n const [records, setRecords] = useStateIfMounted<SearchRecordItem[]>([]);\n const [tags, setTags] = useStateIfMounted<TagItem[]>([]);\n const [loading, setLoading] = useStateIfMounted<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useStateIfMounted<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, mode, fieldIds),\n UPDATE_RECORD: createUpdateRecord(model, mode),\n MOVE_RECORD: createMoveRecord(model, mode),\n GET_RECORD: createGetRecord(model, mode),\n LIST_TAGS: createListTags(model, mode),\n DELETE_RECORD: createDeleteRecord(model, mode),\n CREATE_RECORD: createCreateRecord(model, mode)\n };\n }, [app.id, model.modelId, fieldIds]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n\n setRecords(prev => {\n const index = prev.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n\n if (index >= 0) {\n const next = [...prev];\n next[index] = lodashMerge({}, prev[index], record);\n return next;\n }\n return [record, ...prev];\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(\n record => record.id !== id && !record.id.startsWith(`${id}#`)\n );\n });\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n /**\n * Avoiding fetching records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const totalCount = meta?.totalCount || 0;\n if (after && records.length === totalCount) {\n return records;\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response, mode);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n // If there's no cursor, it means we're receiving a new list of records from scratch.\n if (!after) {\n return data;\n }\n\n return [...prev, ...data];\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { id: recordId } = parseIdentifier(id);\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { entryId: recordId },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${recordId}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== recordId);\n });\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === recordId);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response, mode);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAkCA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AAyBO,IAAMY,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAGE,cAAK,CAACC,aAAa,CACnDC,SACJ,CAAC;AAMD,IAAMC,cAA+C,GAAG;EACpDC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE,KAAK;EACXC,SAAS,EAAE,KAAK;EAChBC,GAAG,EAAE,KAAK;EACVC,IAAI,EAAE,KAAK;EACXC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE;AACZ,CAAC;AAED,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,WAAsB,EAAEC,OAAiB,EAAgB;EAC/E,IAAI,CAACA,OAAO,CAACC,MAAM,EAAE;IACjB,OAAOF,WAAW;EACtB;EAEA,IAAMG,WAAW,GAAGF,OAAO,CAACG,GAAG,CAAC,UAACC,GAAW;IAAA,OAAM;MAAEA,GAAG,EAAHA;IAAI,CAAC;EAAA,CAAC,CAAC,CAAC,CAAC;EAC7D,IAAMC,cAAc,GAAG,IAAAC,gBAAO,EAACP,WAAW,EAAEG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;;EAEjE,OAAO,IAAAK,eAAM,EAACF,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,QAAa,EAAEC,IAAgB,EAAU;EAC9D,IAAIA,IAAI,KAAK,KAAK,EAAE;IAChB,OAAOD,QAAQ,EAAEE,OAAO,IAAI,CAAC,CAAC;EAClC;EACA,OAAOF,QAAQ,CAACG,MAAM,EAAED,OAAO,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAME,WAAqB,GAAG;EAC1BC,UAAU,EAAE,CAAC;EACbC,YAAY,EAAE,KAAK;EACnBC,MAAM,EAAE;AACZ,CAAC;AAEM,IAAMC,qBAAqB,GAAAhC,OAAA,CAAAgC,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAAC,IAAA,EAA4B;EAAA,IAAtBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAC5C,IAAAC,UAAA,GAA8B,IAAAC,gBAAS,EAAC,CAAC;IAAjCC,GAAG,GAAAF,UAAA,CAAHE,GAAG;IAAEC,MAAM,GAAAH,UAAA,CAANG,MAAM;IAAEb,IAAI,GAAAU,UAAA,CAAJV,IAAI;EACzB,IAAQc,KAAK,GAAKF,GAAG,CAAbE,KAAK;;EAEb;AACJ;AACA;AACA;EACI,IAAAC,aAAA,GAAkB,IAAAC,oBAAY,EAAC,CAAC;IAAxBC,KAAK,GAAAF,aAAA,CAALE,KAAK;EACb,IAAMC,QAAQ,GAAGD,KAAK,CAACE,OAAO,CAAC1B,GAAG,CAAC,UAAA2B,MAAM;IAAA,OAAIA,MAAM,CAACC,IAAI;EAAA,EAAC,CAACC,MAAM,CAACC,OAAO,CAAC;EAEzE,IAAAC,kBAAA,GAA8B,IAAAC,2BAAiB,EAAqB,EAAE,CAAC;IAAAC,mBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,kBAAA;IAAhEK,OAAO,GAAAH,mBAAA;IAAEI,UAAU,GAAAJ,mBAAA;EAC1B,IAAAK,mBAAA,GAAwB,IAAAN,2BAAiB,EAAY,EAAE,CAAC;IAAAO,mBAAA,OAAAL,eAAA,CAAAC,OAAA,EAAAG,mBAAA;IAAjDE,IAAI,GAAAD,mBAAA;IAAEE,OAAO,GAAAF,mBAAA;EACpB,IAAAG,mBAAA,GAA8B,IAAAV,2BAAiB,EAA0B9C,cAAc,CAAC;IAAAyD,mBAAA,OAAAT,eAAA,CAAAC,OAAA,EAAAO,mBAAA;IAAjFE,OAAO,GAAAD,mBAAA;IAAEE,UAAU,GAAAF,mBAAA;EAC1B,IAAAG,mBAAA,GAAwB,IAAAd,2BAAiB,EAAWe,MAAM,CAACC,MAAM,CAACtC,WAAW,CAAC,CAAC;IAAAuC,mBAAA,OAAAf,eAAA,CAAAC,OAAA,EAAAW,mBAAA;IAAxEI,IAAI,GAAAD,mBAAA;IAAEE,OAAO,GAAAF,mBAAA;EAEpB,IAAAG,QAAA,GAQI,IAAAC,cAAO,EAAC,YAAM;MACd,OAAO;QACHC,YAAY,EAAE,IAAAC,0BAAiB,EAAClC,KAAK,EAAEd,IAAI,EAAEkB,QAAQ,CAAC;QACtD+B,aAAa,EAAE,IAAAC,2BAAkB,EAACpC,KAAK,EAAEd,IAAI,CAAC;QAC9CmD,WAAW,EAAE,IAAAC,yBAAgB,EAACtC,KAAK,EAAEd,IAAI,CAAC;QAC1CqD,UAAU,EAAE,IAAAC,wBAAe,EAACxC,KAAK,EAAEd,IAAI,CAAC;QACxCuD,SAAS,EAAE,IAAAC,uBAAc,EAAC1C,KAAK,EAAEd,IAAI,CAAC;QACtCyD,aAAa,EAAE,IAAAC,2BAAkB,EAAC5C,KAAK,EAAEd,IAAI,CAAC;QAC9C2D,aAAa,EAAE,IAAAC,2BAAkB,EAAC9C,KAAK,EAAEd,IAAI;MACjD,CAAC;IACL,CAAC,EAAE,CAACY,GAAG,CAACiD,EAAE,EAAE/C,KAAK,CAACgD,OAAO,EAAE5C,QAAQ,CAAC,CAAC;IAjBjCmC,UAAU,GAAAR,QAAA,CAAVQ,UAAU;IACVN,YAAY,GAAAF,QAAA,CAAZE,YAAY;IACZE,aAAa,GAAAJ,QAAA,CAAbI,aAAa;IACbE,WAAW,GAAAN,QAAA,CAAXM,WAAW;IACXM,aAAa,GAAAZ,QAAA,CAAbY,aAAa;IACbE,aAAa,GAAAd,QAAA,CAAbc,aAAa;IACbJ,SAAS,GAAAV,QAAA,CAATU,SAAS;EAab,IAAMQ,OAAO,GAAG,IAAAjB,cAAO,EAAuB,YAAM;IAChD,OAAO;MACHjB,OAAO,EAAPA,OAAO;MACPI,IAAI,EAAJA,IAAI;MACJI,OAAO,EAAPA,OAAO;MACPM,IAAI,EAAJA,IAAI;MACJqB,gBAAgB,EAAE,SAAAA,iBAACC,MAAW,EAAK;QAC/BnC,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,QAAQD,MAAM,EAAAE,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAKsC,IAAI;QAC3B,CAAC,CAAC;MACN,CAAC;MACDG,mBAAmB,EAAE,SAAAA,oBAACJ,MAAW,EAAK;QAClC,IAAAK,gBAAA,GAAyB,IAAAC,sBAAe,EAACN,MAAM,CAACJ,EAAE,CAAC;UAAvCW,QAAQ,GAAAF,gBAAA,CAAZT,EAAE;QAEV/B,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,IAAMO,KAAK,GAAGP,IAAI,CAACQ,SAAS,CAAC,UAAAC,IAAI,EAAI;YACjC,IAAAC,iBAAA,GAAuB,IAAAL,sBAAe,EAACI,IAAI,CAACd,EAAE,CAAC;cAAnCgB,MAAM,GAAAD,iBAAA,CAAVf,EAAE;YACV,OAAOgB,MAAM,KAAKL,QAAQ;UAC9B,CAAC,CAAC;UAEF,IAAIC,KAAK,IAAI,CAAC,EAAE;YACZ,IAAMK,IAAI,OAAAV,mBAAA,CAAAxC,OAAA,EAAOsC,IAAI,CAAC;YACtBY,IAAI,CAACL,KAAK,CAAC,GAAG,IAAAM,cAAW,EAAC,CAAC,CAAC,EAAEb,IAAI,CAACO,KAAK,CAAC,EAAER,MAAM,CAAC;YAClD,OAAOa,IAAI;UACf;UACA,QAAQb,MAAM,EAAAE,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAKsC,IAAI;QAC3B,CAAC,CAAC;MACN,CAAC;MACDc,qBAAqB,EAAE,SAAAA,sBAACnB,EAAU,EAAK;QACnC/B,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,OAAOA,IAAI,CAAC5C,MAAM,CACd,UAAA2C,MAAM;YAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKA,EAAE,IAAI,CAACI,MAAM,CAACJ,EAAE,CAACoB,UAAU,IAAAd,MAAA,CAAIN,EAAE,MAAG,CAAC;UAAA,CACjE,CAAC;QACL,CAAC,CAAC;MACN,CAAC;MAEKqB,WAAW,iBAAAA,YAACC,MAAM,EAAE;QACtB,IAAQC,KAAK,GAA0CD,MAAM,CAArDC,KAAK;UAAEC,KAAK,GAAmCF,MAAM,CAA9CE,KAAK;UAAQC,OAAO,GAAoBH,MAAM,CAAvCI,IAAI;UAAWrF,MAAM,GAAYiF,MAAM,CAAxBjF,MAAM;UAAEsF,KAAK,GAAKL,MAAM,CAAhBK,KAAK;;QAElD;AAChB;AACA;AACA;QACgB,IAAMpF,UAAU,GAAGuC,IAAI,EAAEvC,UAAU,IAAI,CAAC;QACxC,IAAIgF,KAAK,IAAIvD,OAAO,CAACtC,MAAM,KAAKa,UAAU,EAAE;UACxC,OAAOyB,OAAO;QAClB;QAEA,IAAM4D,MAAM,GAAGL,KAAK,GAAG,WAAW,GAAG,MAAM;QAC3C,IAAMG,IAAI,GAAG,IAAAG,mCAA0B,EAACJ,OAAO,CAAC;QAEhD,IAAAK,qBAAA,GAA2B,MAAM,IAAAC,+BAAqB,EAClD,IAAAC,wBAAc,EAACJ,MAAM,EAAEnD,UAAU,CAAC,EAClC,YAAM;YACF,IAAMwD,SAA0C,GAAG;cAC/CN,KAAK,EAALA,KAAK;cACLtF,MAAM,EAANA,MAAM;cACNmF,KAAK,EAALA,KAAK;cACLD,KAAK,EAALA,KAAK;cACLG,IAAI,EAAJA;YACJ,CAAC;YACD,OAAO1E,MAAM,CAACkF,KAAK,CAGjB;cACEA,KAAK,EAAEhD,YAAY;cACnB+C,SAAS,EAATA,SAAS;cACTE,WAAW,EAAE;YACjB,CAAC,CAAC;UACN,CACJ,CAAC;UAnBajG,QAAQ,GAAA4F,qBAAA,CAAdM,IAAI;QAqBZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,wCAAwC,CAAC;QAC7D;QAEA,IAAAC,gBAAA,GAA4CrG,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAAnEiG,IAAI,GAAAE,gBAAA,CAAJF,IAAI;UAAQG,YAAY,GAAAD,gBAAA,CAAlBxD,IAAI;UAAgB0D,KAAK,GAAAF,gBAAA,CAALE,KAAK;QAEvC,IAAI,CAACJ,IAAI,IAAI,CAACG,YAAY,EAAE;UACxB,MAAM,IAAIF,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,0BAA0B,CAAC;QACjE;QAEAxE,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf;UACA,IAAI,CAACkB,KAAK,EAAE;YACR,OAAOa,IAAI;UACf;UAEA,UAAA9B,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAWsC,IAAI,OAAAE,mBAAA,CAAAxC,OAAA,EAAKqE,IAAI;QAC5B,CAAC,CAAC;QAEFrD,OAAO,CAAC;UAAA,OAAMwD,YAAY;QAAA,EAAC;QAE3B9D,UAAU,CAAC,UAAA4B,IAAI,EAAI;UACf,WAAAqC,cAAA,CAAA3E,OAAA,MAAA2E,cAAA,CAAA3E,OAAA,MACOsC,IAAI;YACPtF,IAAI,EAAE;UAAK;QAEnB,CAAC,CAAC;QAEF,OAAOqH,IAAI;MACf,CAAC;MACKO,SAAS,iBAAAA,UAAC3C,EAAE,EAAE;QAChB,IAAI,CAACA,EAAE,EAAE;UACL,MAAM,IAAIqC,KAAK,CAAC,0BAA0B,CAAC;QAC/C;QAEA,IAAAO,iBAAA,GAAyB,IAAAlC,sBAAe,EAACV,EAAE,CAAC;UAAhCW,QAAQ,GAAAiC,iBAAA,CAAZ5C,EAAE;QAEV,IAAA6C,sBAAA,GAA2B,MAAM,IAAAd,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,KAAK,EAAEvD,UAAU,CAAC,EACjC;YAAA,OACIzB,MAAM,CAACkF,KAAK,CAAyD;cACjEA,KAAK,EAAE1C,UAAU;cACjByC,SAAS,EAAE;gBAAEa,OAAO,EAAEnC;cAAS,CAAC;cAChCwB,WAAW,EAAE;YACjB,CAAC,CAAC;UAAA,CACV,CAAC;UARajG,QAAQ,GAAA2G,sBAAA,CAAdT,IAAI;QAUZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,6BAAA/B,MAAA,CAA4BK,QAAQ,sBAAkB,CAAC;QAC1E;QAEA,IAAAoC,iBAAA,GAAwB9G,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAA/CiG,IAAI,GAAAW,iBAAA,CAAJX,IAAI;UAAEI,KAAK,GAAAO,iBAAA,CAALP,KAAK;QAEnB,IAAIA,KAAK,IAAIA,KAAK,CAACQ,IAAI,KAAK,WAAW,EAAE;UACrC,MAAM,IAAIX,KAAK,CAAC,oCAAoC,CAAC;QACzD;QAEA,IAAI,CAACD,IAAI,EAAE;UACP;UACAnE,UAAU,CAAC,UAAAoC,IAAI,EAAI;YACf,OAAOA,IAAI,CAAC5C,MAAM,CAAC,UAAA2C,MAAM;cAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKW,QAAQ;YAAA,EAAC;UACxD,CAAC,CAAC;UACF,OAAOyB,IAAI;QACf;QACAnE,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,IAAMO,KAAK,GAAGP,IAAI,CAACQ,SAAS,CAAC,UAAAT,MAAM;YAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKW,QAAQ;UAAA,EAAC;;UAE9D;UACA,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,QAAQwB,IAAI,EAAA9B,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAKsC,IAAI;UACzB;UACA,IAAMY,IAAI,OAAAV,mBAAA,CAAAxC,OAAA,EAAOsC,IAAI,CAAC;UACtBY,IAAI,CAACL,KAAK,CAAC,GAAGwB,IAAI;UAClB,OAAOnB,IAAI;QACf,CAAC,CAAC;QAEF5C,OAAO,CAAC,UAAAD,IAAI,EAAI;UACZ,IAAI,CAACgE,IAAI,CAAChE,IAAI,IAAIgE,IAAI,CAAChE,IAAI,CAAC1C,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO0C,IAAI;UACf;UAEA,OAAO7C,gBAAgB,CAAC6C,IAAI,EAAEgE,IAAI,CAAChE,IAAI,CAAC;QAC5C,CAAC,CAAC;QAEF,OAAOgE,IAAI;MACf,CAAC;MACKa,YAAY,iBAAAA,aAAC7C,MAAM,EAAE;QACvB,IAAI,CAACN,aAAa,EAAE;UAChB,MAAM,IAAIuC,KAAK,CAAC,kCAAkC,CAAC;QACvD;QAEA,IAAAa,sBAAA,GAA2B,MAAM,IAAAnB,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,QAAQ,EAAEvD,UAAU,CAAC,EACpC;YAAA,OACIzB,MAAM,CAACmG,MAAM,CAA0D;cACnEC,QAAQ,EAAEtD,aAAa;cACvBmC,SAAS,EAAE;gBACPG,IAAI,EAAEhC;cACV;YACJ,CAAC,CAAC;UAAA,CACV,CAAC;UATalE,QAAQ,GAAAgH,sBAAA,CAAdd,IAAI;QAWZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,6CAA6C,CAAC;QAClE;QAEA,IAAAgB,iBAAA,GAAwBpH,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAA/CiG,IAAI,GAAAiB,iBAAA,CAAJjB,IAAI;UAAEI,KAAK,GAAAa,iBAAA,CAALb,KAAK;QAEnB,IAAI,CAACJ,IAAI,EAAE;UACP,MAAM,IAAIC,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;QAChE;QAEAxE,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,UAAAC,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAWsC,IAAI,IAAE+B,IAAI;QACzB,CAAC,CAAC;QAEFrD,OAAO,CAAC,UAAAD,IAAI;UAAA,WAAA4D,cAAA,CAAA3E,OAAA,MAAA2E,cAAA,CAAA3E,OAAA,MACLe,IAAI;YACPvC,UAAU,EAAE,EAAEuC,IAAI,CAACvC;UAAU;QAAA,CAC/B,CAAC;QAEH8B,OAAO,CAAC,UAAAD,IAAI,EAAI;UACZ,IAAI,CAACgE,IAAI,CAAChE,IAAI,IAAIgE,IAAI,CAAChE,IAAI,CAAC1C,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO0C,IAAI;UACf;UAEA,OAAO7C,gBAAgB,CAAC6C,IAAI,EAAEgE,IAAI,CAAChE,IAAI,CAAC;QAC5C,CAAC,CAAC;QAEF,OAAOgE,IAAI;MACf,CAAC;MACKkB,YAAY,iBAAAA,aAAClD,MAAM,EAAEmD,eAAe,EAAE;QACxC,IAAI,CAACA,eAAe,EAAE;UAClB,MAAM,IAAIlB,KAAK,CAAC,yBAAyB,CAAC;QAC9C;QACA,IAAI,CAACjD,aAAa,EAAE;UAChB,MAAM,IAAIiD,KAAK,CAAC,kCAAkC,CAAC;QACvD;QAEA,IAAQrC,EAAE,GAAqCI,MAAM,CAA7CJ,EAAE;UAAEwD,QAAQ,GAA2BpD,MAAM,CAAzCoD,QAAQ;UAAEpB,IAAI,GAAqBhC,MAAM,CAA/BgC,IAAI;UAAEqB,KAAK,GAAcrD,MAAM,CAAzBqD,KAAK;UAAErH,OAAO,GAAKgE,MAAM,CAAlBhE,OAAO;QAE1C,IAAAsH,sBAAA,GAA2B,MAAM,IAAA3B,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,QAAQ,EAAEvD,UAAU,CAAC,EACpC;YAAA,OACIzB,MAAM,CAACmG,MAAM,CAA0D;cACnEC,QAAQ,EAAEhE,aAAa;cACvB6C,SAAS,EAAE;gBAAEjC,EAAE,EAAFA,EAAE;gBAAEoC,IAAI,EAAE;kBAAEqB,KAAK,EAALA,KAAK;kBAAErH,OAAO,EAAPA,OAAO;kBAAEoH,QAAQ,EAARA,QAAQ;kBAAEpB,IAAI,EAAJA;gBAAK;cAAE;YAC9D,CAAC,CAAC;UAAA,CACV,CAAC;UAPalG,QAAQ,GAAAwH,sBAAA,CAAdtB,IAAI;QASZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,qCAAqC,CAAC;QAC1D;QAEA,IAAAsB,iBAAA,GAAgC1H,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAAjDyH,MAAM,GAAAD,iBAAA,CAAZvB,IAAI;UAAUI,KAAK,GAAAmB,iBAAA,CAALnB,KAAK;QAE3B,IAAI,CAACoB,MAAM,EAAE;UACT,MAAM,IAAIvB,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;QAChE;QAEAxE,UAAU,CAAC,UAAAD,OAAO,EAAI;UAClB,IAAM4C,KAAK,GAAG5C,OAAO,CAAC6C,SAAS,CAAC,UAAAT,MAAM;YAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKA,EAAE;UAAA,EAAC;UAC3D,IAAIY,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,QAAQgD,MAAM,EAAAtD,MAAA,KAAAC,mBAAA,CAAAxC,OAAA,EAAKC,OAAO;UAC9B;UAEA,IAAMiD,IAAI,OAAAV,mBAAA,CAAAxC,OAAA,EAAOC,OAAO,CAAC;UAEzBiD,IAAI,CAACL,KAAK,CAAC,GAAGgD,MAAM;UAEpB,OAAO3C,IAAI;QACf,CAAC,CAAC;QAEF5C,OAAO,CAAC,UAAAD,IAAI,EAAI;UACZ,IAAI,CAACgE,IAAI,CAAChE,IAAI,IAAIgE,IAAI,CAAChE,IAAI,CAAC1C,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO0C,IAAI;UACf;UAEA,OAAO7C,gBAAgB,CAAC6C,IAAI,EAAEgE,IAAI,CAAChE,IAAI,CAAC;QAC5C,CAAC,CAAC;QAEF,OAAOwF,MAAM;MACjB,CAAC;MACDC,UAAU,EAAE,eAAAA,WAAOzD,MAA+B,EAAK;QACnD,IAAQJ,EAAE,GAAeI,MAAM,CAAvBJ,EAAE;UAAEwD,QAAQ,GAAKpD,MAAM,CAAnBoD,QAAQ;QACpB,IAAQM,QAAQ,GAAKN,QAAQ,CAArBM,QAAQ;QAEhB,IAAAC,sBAAA,GAA2B,MAAM,IAAAhC,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,MAAM,EAAEvD,UAAU,CAAC,EAClC;YAAA,OACIzB,MAAM,CAACmG,MAAM,CAAsD;cAC/DC,QAAQ,EAAE9D,WAAW;cACrB2C,SAAS,EAAE;gBACPjC,EAAE,EAAFA,EAAE;gBACF8D,QAAQ,EAARA;cACJ;YACJ,CAAC,CAAC;UAAA,CACV,CAAC;UAVa5H,QAAQ,GAAA6H,sBAAA,CAAd3B,IAAI;QAYZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,oCAAoC,CAAC;QACzD;QAEA,IAAA2B,iBAAA,GAAwB/H,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAA/CiG,IAAI,GAAA4B,iBAAA,CAAJ5B,IAAI;UAAEI,KAAK,GAAAwB,iBAAA,CAALxB,KAAK;QAEnB,IAAI,CAACJ,IAAI,EAAE;UACP,MAAM,IAAIC,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,wBAAwB,CAAC;QAC/D;QACAxE,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,OAAOA,IAAI,CAAC5C,MAAM,CAAC,UAAA2C,MAAM;YAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKA,EAAE;UAAA,EAAC;QAClD,CAAC,CAAC;QACFjB,OAAO,CAAC,UAAAD,IAAI;UAAA,WAAA4D,cAAA,CAAA3E,OAAA,MAAA2E,cAAA,CAAA3E,OAAA,MACLe,IAAI;YACPvC,UAAU,EAAE,EAAEuC,IAAI,CAACvC;UAAU;QAAA,CAC/B,CAAC;MACP,CAAC;MACK0H,YAAY,iBAAAA,aAAC7D,MAAM,EAAE;QACvB,IAAI,CAACR,aAAa,EAAE;UAChB,MAAM,IAAIyC,KAAK,CAAC,kCAAkC,CAAC;QACvD;QACA,IAAQrC,EAAE,GAAKI,MAAM,CAAbJ,EAAE;QAEV,IAAAkE,sBAAA,GAA2B,MAAM,IAAAnC,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,QAAQ,EAAEvD,UAAU,CAAC,EACpC;YAAA,OACIzB,MAAM,CAACmG,MAAM,CAA0D;cACnEC,QAAQ,EAAExD,aAAa;cACvBqC,SAAS,EAAE;gBAAEjC,EAAE,EAAFA;cAAG;YACpB,CAAC,CAAC;UAAA,CACV,CAAC;UAPa9D,QAAQ,GAAAgI,sBAAA,CAAd9B,IAAI;QASZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,sCAAsC,CAAC;QAC3D;QAEA,IAAA8B,iBAAA,GAAwBlI,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAA/CiG,IAAI,GAAA+B,iBAAA,CAAJ/B,IAAI;UAAEI,KAAK,GAAA2B,iBAAA,CAAL3B,KAAK;QAEnB,IAAI,CAACJ,IAAI,EAAE;UACP,MAAM,IAAIC,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,yBAAyB,CAAC;QAChE;QAEAxE,UAAU,CAAC,UAAAoC,IAAI,EAAI;UACf,OAAOA,IAAI,CAAC5C,MAAM,CAAC,UAAA2C,MAAM;YAAA,OAAIA,MAAM,CAACJ,EAAE,KAAKA,EAAE;UAAA,EAAC;QAClD,CAAC,CAAC;QAEFjB,OAAO,CAAC,UAAAD,IAAI;UAAA,WAAA4D,cAAA,CAAA3E,OAAA,MAAA2E,cAAA,CAAA3E,OAAA,MACLe,IAAI;YACPvC,UAAU,EAAE,EAAEuC,IAAI,CAACvC;UAAU;QAAA,CAC/B,CAAC;QAEH,OAAO,IAAI;MACf,CAAC;MACK6H,QAAQ,iBAAAA,SAAC9C,MAAM,EAAE;QACnB,IAAI,CAAC5B,SAAS,EAAE;UACZ,MAAM,IAAI2C,KAAK,CAAC,8BAA8B,CAAC;QACnD;QAEA,IAAAgC,sBAAA,GAA2B,MAAM,IAAAtC,+BAAqB,EAClD,IAAAC,wBAAc,EAAC,MAAM,EAAEvD,UAAU,CAAC,EAClC;YAAA,OACIzB,MAAM,CAACkF,KAAK,CAA2C;cACnDA,KAAK,EAAExC,SAAS;cAChBuC,SAAS,EAAE;gBACPN,KAAK,EAAEL,MAAM,CAACK;cAClB;YACJ,CAAC,CAAC;UAAA,CACV,CAAC;UATazF,QAAQ,GAAAmI,sBAAA,CAAdjC,IAAI;QAWZ,IAAI,CAAClG,QAAQ,EAAE;UACX,MAAM,IAAImG,KAAK,CAAC,oCAAoC,CAAC;QACzD;QAEA,IAAAiC,iBAAA,GAAwBrI,eAAe,CAACC,QAAQ,EAAEC,IAAI,CAAC;UAA/CiG,IAAI,GAAAkC,iBAAA,CAAJlC,IAAI;UAAEI,KAAK,GAAA8B,iBAAA,CAAL9B,KAAK;QAEnB,IAAI,CAACJ,IAAI,EAAE;UACP,MAAM,IAAIC,KAAK,CAACG,KAAK,EAAEC,OAAO,IAAI,sBAAsB,CAAC;QAC7D;QAEApE,OAAO,CAAC+D,IAAI,CAAC;QAEb,OAAOA,IAAI;MACf;IACJ,CAAC;EACL,CAAC,EAAE,CACCrF,GAAG,CAACiD,EAAE,EACN/C,KAAK,CAACgD,OAAO,EACbjC,OAAO,EACPC,UAAU,EACVG,IAAI,EACJU,IAAI,EACJN,OAAO,EACPgB,UAAU,EACVN,YAAY,EACZE,aAAa,EACbQ,aAAa,EACbN,WAAW,EACXQ,aAAa,EACbJ,SAAS,CACZ,CAAC;EAEF,oBACI/F,MAAA,CAAAoE,OAAA,CAAAwG,aAAA,CAAC9J,oBAAoB,CAAC+J,QAAQ;IAACC,KAAK,EAAEvE;EAAQ,GAAEtD,QAAwC,CAAC;AAEjG,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import { AcoAppMode, AcoModel } from "../../types";
2
- export declare const createListRecords: (model: AcoModel, mode: AcoAppMode) => import("graphql").DocumentNode;
2
+ export declare const createListRecords: (model: AcoModel, mode: AcoAppMode, fieldIds: string[]) => import("graphql").DocumentNode;
@@ -6,21 +6,27 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.createListRecords = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
10
11
  var _common = require("./common");
11
12
  var _appHeadlessCmsCommon = require("@webiny/app-headless-cms-common");
12
13
  var _templateObject;
13
- var createListRecords = exports.createListRecords = function createListRecords(model, mode) {
14
+ var createListRecords = exports.createListRecords = function createListRecords(model, mode, fieldIds) {
14
15
  if (mode === "cms") {
15
- return (0, _appHeadlessCmsCommon.createListQuery)(model,
16
16
  /**
17
17
  * We will include only the simplest fields.
18
- * TODO: possibly have only searchable / sortable fields here?
19
- * We could do that if we fetched the information from the API side - we do not have that information in the UI.
18
+ * TODO: remove default fields in a future release, as field selection will be injected by ACO configs.
20
19
  */
21
- model.fields.filter(function (field) {
20
+ var defaultFields = model.fields.filter(function (field) {
22
21
  return ["text", "number", "boolean", "file", "long-text", "ref", "datetime"].includes(field.type);
23
- }));
22
+ });
23
+ var additionalFields = model.fields.filter(function (field) {
24
+ return fieldIds.includes(field.fieldId);
25
+ });
26
+ var uniqueFields = (0, _toConsumableArray2.default)(new Map([].concat((0, _toConsumableArray2.default)(defaultFields), (0, _toConsumableArray2.default)(additionalFields)).map(function (field) {
27
+ return [field.fieldId, field];
28
+ })).values());
29
+ return (0, _appHeadlessCmsCommon.createListQuery)(model, uniqueFields);
24
30
  }
25
31
  var singularApiName = model.singularApiName,
26
32
  pluralApiName = model.pluralApiName;
@@ -1 +1 @@
1
- {"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_common","_appHeadlessCmsCommon","_templateObject","createListRecords","exports","model","mode","createListQuery","fields","filter","field","includes","type","singularApiName","pluralApiName","gql","_taggedTemplateLiteral2","default","createAppFields","LIST_META_FIELD","ERROR_FIELD"],"sources":["listRecords.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { AcoAppMode, AcoModel } from \"~/types\";\nimport { createAppFields, ERROR_FIELD, LIST_META_FIELD } from \"./common\";\nimport { createListQuery } from \"@webiny/app-headless-cms-common\";\n\nexport const createListRecords = (model: AcoModel, mode: AcoAppMode) => {\n if (mode === \"cms\") {\n return createListQuery(\n model,\n /**\n * We will include only the simplest fields.\n * TODO: possibly have only searchable / sortable fields here?\n * We could do that if we fetched the information from the API side - we do not have that information in the UI.\n */\n model.fields.filter(field => {\n return [\n \"text\",\n \"number\",\n \"boolean\",\n \"file\",\n \"long-text\",\n \"ref\",\n \"datetime\"\n ].includes(field.type);\n })\n );\n }\n const { singularApiName, pluralApiName } = model;\n return gql`\n query List${pluralApiName}($where: ${singularApiName}ListWhereInput, $limit: Int, $after: String, $sort: [${singularApiName}ListSorter!], $search: String) {\n search {\n content: list${pluralApiName}(where: $where, limit: $limit, after: $after, sort: $sort, search: $search) {\n data {\n ${createAppFields(model)}\n }\n ${LIST_META_FIELD}\n ${ERROR_FIELD}\n }\n }\n }\n `;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAAkE,IAAAG,eAAA;AAE3D,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIE,KAAe,EAAEC,IAAgB,EAAK;EACpE,IAAIA,IAAI,KAAK,KAAK,EAAE;IAChB,OAAO,IAAAC,qCAAe,EAClBF,KAAK;IACL;AACZ;AACA;AACA;AACA;IACYA,KAAK,CAACG,MAAM,CAACC,MAAM,CAAC,UAAAC,KAAK,EAAI;MACzB,OAAO,CACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,CACb,CAACC,QAAQ,CAACD,KAAK,CAACE,IAAI,CAAC;IAC1B,CAAC,CACL,CAAC;EACL;EACA,IAAQC,eAAe,GAAoBR,KAAK,CAAxCQ,eAAe;IAAEC,aAAa,GAAKT,KAAK,CAAvBS,aAAa;EACtC,WAAOC,mBAAG,EAAAb,eAAA,KAAAA,eAAA,OAAAc,uBAAA,CAAAC,OAAA,scACMH,aAAa,EAAYD,eAAe,EAAwDA,eAAe,EAEpGC,aAAa,EAElB,IAAAI,uBAAe,EAACb,KAAK,CAAC,EAE1Bc,uBAAe,EACfC,mBAAW;AAKjC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_common","_appHeadlessCmsCommon","_templateObject","createListRecords","exports","model","mode","fieldIds","defaultFields","fields","filter","field","includes","type","additionalFields","fieldId","uniqueFields","_toConsumableArray2","default","Map","concat","map","values","createListQuery","singularApiName","pluralApiName","gql","_taggedTemplateLiteral2","createAppFields","LIST_META_FIELD","ERROR_FIELD"],"sources":["listRecords.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { AcoAppMode, AcoModel } from \"~/types\";\nimport { createAppFields, ERROR_FIELD, LIST_META_FIELD } from \"./common\";\nimport { createListQuery } from \"@webiny/app-headless-cms-common\";\n\nexport const createListRecords = (model: AcoModel, mode: AcoAppMode, fieldIds: string[]) => {\n if (mode === \"cms\") {\n /**\n * We will include only the simplest fields.\n * TODO: remove default fields in a future release, as field selection will be injected by ACO configs.\n */\n const defaultFields = model.fields.filter(field => {\n return [\"text\", \"number\", \"boolean\", \"file\", \"long-text\", \"ref\", \"datetime\"].includes(\n field.type\n );\n });\n\n const additionalFields = model.fields.filter(field => {\n return fieldIds.includes(field.fieldId);\n });\n\n const uniqueFields = [\n ...new Map(\n [...defaultFields, ...additionalFields].map(field => [field.fieldId, field])\n ).values()\n ];\n\n return createListQuery(model, uniqueFields);\n }\n const { singularApiName, pluralApiName } = model;\n return gql`\n query List${pluralApiName}($where: ${singularApiName}ListWhereInput, $limit: Int, $after: String, $sort: [${singularApiName}ListSorter!], $search: String) {\n search {\n content: list${pluralApiName}(where: $where, limit: $limit, after: $after, sort: $sort, search: $search) {\n data {\n ${createAppFields(model)}\n }\n ${LIST_META_FIELD}\n ${ERROR_FIELD}\n }\n }\n }\n `;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAAkE,IAAAG,eAAA;AAE3D,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIE,KAAe,EAAEC,IAAgB,EAAEC,QAAkB,EAAK;EACxF,IAAID,IAAI,KAAK,KAAK,EAAE;IAChB;AACR;AACA;AACA;IACQ,IAAME,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,MAAM,CAAC,UAAAC,KAAK,EAAI;MAC/C,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAACC,QAAQ,CACjFD,KAAK,CAACE,IACV,CAAC;IACL,CAAC,CAAC;IAEF,IAAMC,gBAAgB,GAAGT,KAAK,CAACI,MAAM,CAACC,MAAM,CAAC,UAAAC,KAAK,EAAI;MAClD,OAAOJ,QAAQ,CAACK,QAAQ,CAACD,KAAK,CAACI,OAAO,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAMC,YAAY,OAAAC,mBAAA,CAAAC,OAAA,EACX,IAAIC,GAAG,CACN,GAAAC,MAAA,KAAAH,mBAAA,CAAAC,OAAA,EAAIV,aAAa,OAAAS,mBAAA,CAAAC,OAAA,EAAKJ,gBAAgB,GAAEO,GAAG,CAAC,UAAAV,KAAK;MAAA,OAAI,CAACA,KAAK,CAACI,OAAO,EAAEJ,KAAK,CAAC;IAAA,EAC/E,CAAC,CAACW,MAAM,CAAC,CAAC,CACb;IAED,OAAO,IAAAC,qCAAe,EAAClB,KAAK,EAAEW,YAAY,CAAC;EAC/C;EACA,IAAQQ,eAAe,GAAoBnB,KAAK,CAAxCmB,eAAe;IAAEC,aAAa,GAAKpB,KAAK,CAAvBoB,aAAa;EACtC,WAAOC,mBAAG,EAAAxB,eAAA,KAAAA,eAAA,OAAAyB,uBAAA,CAAAT,OAAA,scACMO,aAAa,EAAYD,eAAe,EAAwDA,eAAe,EAEpGC,aAAa,EAElB,IAAAG,uBAAe,EAACvB,KAAK,CAAC,EAE1BwB,uBAAe,EACfC,mBAAW;AAKjC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-aco",
3
- "version": "5.41.1",
3
+ "version": "5.41.2-beta.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,18 +17,18 @@
17
17
  "@material-design-icons/svg": "0.14.13",
18
18
  "@material-symbols/svg-400": "0.4.3",
19
19
  "@minoru/react-dnd-treeview": "3.2.1",
20
- "@webiny/app": "5.41.1",
21
- "@webiny/app-admin": "5.41.1",
22
- "@webiny/app-headless-cms-common": "5.41.1",
23
- "@webiny/app-security": "5.41.1",
24
- "@webiny/app-wcp": "5.41.1",
25
- "@webiny/form": "5.41.1",
26
- "@webiny/plugins": "5.41.1",
27
- "@webiny/react-properties": "5.41.1",
28
- "@webiny/react-router": "5.41.1",
29
- "@webiny/ui": "5.41.1",
30
- "@webiny/utils": "5.41.1",
31
- "@webiny/validation": "5.41.1",
20
+ "@webiny/app": "5.41.2-beta.1",
21
+ "@webiny/app-admin": "5.41.2-beta.1",
22
+ "@webiny/app-headless-cms-common": "5.41.2-beta.1",
23
+ "@webiny/app-security": "5.41.2-beta.1",
24
+ "@webiny/app-wcp": "5.41.2-beta.1",
25
+ "@webiny/form": "5.41.2-beta.1",
26
+ "@webiny/plugins": "5.41.2-beta.1",
27
+ "@webiny/react-properties": "5.41.2-beta.1",
28
+ "@webiny/react-router": "5.41.2-beta.1",
29
+ "@webiny/ui": "5.41.2-beta.1",
30
+ "@webiny/utils": "5.41.2-beta.1",
31
+ "@webiny/validation": "5.41.2-beta.1",
32
32
  "dot-prop-immutable": "2.1.1",
33
33
  "graphql": "15.8.0",
34
34
  "graphql-tag": "2.12.6",
@@ -51,8 +51,8 @@
51
51
  "@babel/preset-typescript": "7.24.1",
52
52
  "@babel/runtime": "7.24.1",
53
53
  "@types/react": "18.2.79",
54
- "@webiny/cli": "5.41.1",
55
- "@webiny/project-utils": "5.41.1",
54
+ "@webiny/cli": "5.41.2-beta.1",
55
+ "@webiny/project-utils": "5.41.2-beta.1",
56
56
  "apollo-client": "2.6.10",
57
57
  "apollo-link": "1.2.14",
58
58
  "rimraf": "5.0.5",
@@ -67,5 +67,5 @@
67
67
  "build": "yarn webiny run build",
68
68
  "watch": "yarn webiny run watch"
69
69
  },
70
- "gitHead": "4d34943dbfc5a776afc74fffd2cfd2dca60bffcd"
70
+ "gitHead": "69a78b382b4de30846edfc2a9d5f73ca223fcc10"
71
71
  }