@webiny/app-file-manager 5.38.3-beta.0 → 5.38.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/BulkActions/ActionEdit/BatchEditorDialog/BatchEditorDialog.js +2 -1
- package/components/BulkActions/ActionEdit/BatchEditorDialog/BatchEditorDialog.js.map +1 -1
- package/components/BulkActions/ActionEdit/GraphQLInputMapper.js +3 -3
- package/components/BulkActions/ActionEdit/GraphQLInputMapper.js.map +1 -1
- package/components/BulkActions/ActionEdit/GraphQLInputMapper.test.js +106 -0
- package/components/BulkActions/ActionEdit/GraphQLInputMapper.test.js.map +1 -1
- package/package.json +17 -17
|
@@ -30,7 +30,8 @@ var BatchEditorDialog = (0, _mobxReactLite.observer)(function (props) {
|
|
|
30
30
|
var ref = (0, _react.useRef)(null);
|
|
31
31
|
return /*#__PURE__*/_react.default.createElement(_ActionEdit.DialogContainer, {
|
|
32
32
|
open: props.vm.isOpen,
|
|
33
|
-
onClose: props.onClose
|
|
33
|
+
onClose: props.onClose,
|
|
34
|
+
preventOutsideDismiss: true
|
|
34
35
|
}, props.vm.isOpen ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, "Edit items"), /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, null, /*#__PURE__*/_react.default.createElement(_ActionEdit.ActionEditFormContainer, null, /*#__PURE__*/_react.default.createElement(_BatchEditor.BatchEditor, {
|
|
35
36
|
onForm: function onForm(form) {
|
|
36
37
|
return ref.current = form;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_mobxReactLite","_Button","_Dialog","_BatchEditorDialogPresenter","_BatchEditor","_ActionEdit","BatchEditorDialog","observer","props","presenter","useMemo","BatchEditorDialogPresenter","useEffect","load","batch","fields","onChange","data","setBatch","onApply","ref","useRef","default","createElement","DialogContainer","open","vm","isOpen","onClose","Fragment","DialogTitle","DialogContent","ActionEditFormContainer","BatchEditor","onForm","form","current","onSubmit","onDelete","operationIndex","deleteOperation","onAdd","addOperation","onSetOperationFieldData","setOperationFieldData","DialogActions","DialogCancel","onClick","ButtonPrimary","exports"],"sources":["BatchEditorDialog.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useRef } from \"react\";\n\nimport { observer } from \"mobx-react-lite\";\nimport { FormAPI } from \"@webiny/form\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\n\nimport { BatchEditorDialogPresenter, BatchEditorFormData } from \"./BatchEditorDialogPresenter\";\nimport { BatchEditor } from \"~/components/BulkActions/ActionEdit/BatchEditorDialog/BatchEditor\";\nimport { ActionEditFormContainer, DialogContainer } from \"../ActionEdit.styled\";\nimport { BatchDTO, FieldDTO } from \"~/components/BulkActions/ActionEdit/domain\";\n\ninterface BatchEditorDialogProps {\n fields: FieldDTO[];\n batch: BatchDTO;\n vm: {\n isOpen: boolean;\n };\n onApply: (batch: BatchDTO) => void;\n onClose: () => void;\n}\n\nexport const BatchEditorDialog = observer((props: BatchEditorDialogProps) => {\n const presenter = useMemo<BatchEditorDialogPresenter>(() => {\n return new BatchEditorDialogPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(props.batch, props.fields);\n }, [props.batch, props.fields]);\n\n const onChange = (data: BatchEditorFormData) => {\n presenter.setBatch(data);\n };\n\n const onApply = () => {\n presenter.onApply(batch => {\n props.onApply(batch);\n });\n };\n\n const ref = useRef<FormAPI | null>(null);\n\n return (\n <DialogContainer
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_mobxReactLite","_Button","_Dialog","_BatchEditorDialogPresenter","_BatchEditor","_ActionEdit","BatchEditorDialog","observer","props","presenter","useMemo","BatchEditorDialogPresenter","useEffect","load","batch","fields","onChange","data","setBatch","onApply","ref","useRef","default","createElement","DialogContainer","open","vm","isOpen","onClose","preventOutsideDismiss","Fragment","DialogTitle","DialogContent","ActionEditFormContainer","BatchEditor","onForm","form","current","onSubmit","onDelete","operationIndex","deleteOperation","onAdd","addOperation","onSetOperationFieldData","setOperationFieldData","DialogActions","DialogCancel","onClick","ButtonPrimary","exports"],"sources":["BatchEditorDialog.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useRef } from \"react\";\n\nimport { observer } from \"mobx-react-lite\";\nimport { FormAPI } from \"@webiny/form\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\n\nimport { BatchEditorDialogPresenter, BatchEditorFormData } from \"./BatchEditorDialogPresenter\";\nimport { BatchEditor } from \"~/components/BulkActions/ActionEdit/BatchEditorDialog/BatchEditor\";\nimport { ActionEditFormContainer, DialogContainer } from \"../ActionEdit.styled\";\nimport { BatchDTO, FieldDTO } from \"~/components/BulkActions/ActionEdit/domain\";\n\ninterface BatchEditorDialogProps {\n fields: FieldDTO[];\n batch: BatchDTO;\n vm: {\n isOpen: boolean;\n };\n onApply: (batch: BatchDTO) => void;\n onClose: () => void;\n}\n\nexport const BatchEditorDialog = observer((props: BatchEditorDialogProps) => {\n const presenter = useMemo<BatchEditorDialogPresenter>(() => {\n return new BatchEditorDialogPresenter();\n }, []);\n\n useEffect(() => {\n presenter.load(props.batch, props.fields);\n }, [props.batch, props.fields]);\n\n const onChange = (data: BatchEditorFormData) => {\n presenter.setBatch(data);\n };\n\n const onApply = () => {\n presenter.onApply(batch => {\n props.onApply(batch);\n });\n };\n\n const ref = useRef<FormAPI | null>(null);\n\n return (\n <DialogContainer\n open={props.vm.isOpen}\n onClose={props.onClose}\n preventOutsideDismiss={true}\n >\n {props.vm.isOpen ? (\n <>\n <DialogTitle>{\"Edit items\"}</DialogTitle>\n <DialogContent>\n <ActionEditFormContainer>\n <BatchEditor\n onForm={form => (ref.current = form)}\n onChange={data => onChange(data)}\n onSubmit={onApply}\n onDelete={operationIndex =>\n presenter.deleteOperation(operationIndex)\n }\n onAdd={() => presenter.addOperation()}\n onSetOperationFieldData={(operationIndex, data) =>\n presenter.setOperationFieldData(operationIndex, data)\n }\n vm={presenter.vm}\n />\n </ActionEditFormContainer>\n </DialogContent>\n <DialogActions>\n <DialogCancel onClick={props.onClose}>{\"Cancel\"}</DialogCancel>\n <ButtonPrimary onClick={onApply}>{\"Submit\"}</ButtonPrimary>\n </DialogActions>\n </>\n ) : null}\n </DialogContainer>\n );\n});\n"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ var GraphQLInputMapper = /*#__PURE__*/function () {
|
|
|
19
19
|
value: function toGraphQLExtensions(data, batch) {
|
|
20
20
|
var update = (0, _objectSpread2.default)({}, data);
|
|
21
21
|
batch.operations.forEach(function (operation) {
|
|
22
|
+
var _ref;
|
|
22
23
|
var field = operation.field,
|
|
23
24
|
operator = operation.operator,
|
|
24
25
|
value = operation.value;
|
|
@@ -36,9 +37,8 @@ var GraphQLInputMapper = /*#__PURE__*/function () {
|
|
|
36
37
|
if (!value || !value[field] || !Array.isArray(value[field])) {
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
40
|
+
var oldData = (_ref = data && data[field]) !== null && _ref !== void 0 ? _ref : [];
|
|
41
|
+
update[field] = [].concat((0, _toConsumableArray2.default)(oldData), (0, _toConsumableArray2.default)(value[field]));
|
|
42
42
|
break;
|
|
43
43
|
default:
|
|
44
44
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_domain","require","GraphQLInputMapper","_classCallCheck2","default","_createClass2","key","value","toGraphQLExtensions","data","batch","update","_objectSpread2","operations","forEach","operation","field","operator","OperatorType","OVERRIDE","REMOVE","APPEND","Array","isArray","concat","_toConsumableArray2","exports"],"sources":["GraphQLInputMapper.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport { BatchDTO, OperatorType } from \"~/components/BulkActions/ActionEdit/domain\";\n\nexport class GraphQLInputMapper {\n static toGraphQLExtensions(data: FileItem[\"extensions\"], batch: BatchDTO) {\n const update = { ...data };\n\n batch.operations.forEach(operation => {\n const { field, operator, value } = operation;\n\n switch (operator) {\n case OperatorType.OVERRIDE:\n if (!value || !value[field]) {\n return;\n }\n\n update[field] = value[field];\n break;\n case OperatorType.REMOVE:\n update[field] = null;\n break;\n case OperatorType.APPEND:\n if (!value || !value[field] || !Array.isArray(value[field])) {\n return;\n }\n\n
|
|
1
|
+
{"version":3,"names":["_domain","require","GraphQLInputMapper","_classCallCheck2","default","_createClass2","key","value","toGraphQLExtensions","data","batch","update","_objectSpread2","operations","forEach","operation","_ref","field","operator","OperatorType","OVERRIDE","REMOVE","APPEND","Array","isArray","oldData","concat","_toConsumableArray2","exports"],"sources":["GraphQLInputMapper.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport { BatchDTO, OperatorType } from \"~/components/BulkActions/ActionEdit/domain\";\n\nexport class GraphQLInputMapper {\n static toGraphQLExtensions(data: FileItem[\"extensions\"], batch: BatchDTO) {\n const update = { ...data };\n\n batch.operations.forEach(operation => {\n const { field, operator, value } = operation;\n\n switch (operator) {\n case OperatorType.OVERRIDE:\n if (!value || !value[field]) {\n return;\n }\n\n update[field] = value[field];\n break;\n case OperatorType.REMOVE:\n update[field] = null;\n break;\n case OperatorType.APPEND:\n if (!value || !value[field] || !Array.isArray(value[field])) {\n return;\n }\n\n const oldData = (data && data[field]) ?? [];\n update[field] = [...oldData, ...value[field]];\n\n break;\n default:\n break;\n }\n });\n\n return {\n ...data,\n ...update\n };\n }\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAAoF,IAEvEC,kBAAkB;EAAA,SAAAA,mBAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,kBAAA;EAAA;EAAA,IAAAG,aAAA,CAAAD,OAAA,EAAAF,kBAAA;IAAAI,GAAA;IAAAC,KAAA,EAC3B,SAAAC,oBAA2BC,IAA4B,EAAEC,KAAe,EAAE;MACtE,IAAMC,MAAM,OAAAC,cAAA,CAAAR,OAAA,MAAQK,IAAI,CAAE;MAE1BC,KAAK,CAACG,UAAU,CAACC,OAAO,CAAC,UAAAC,SAAS,EAAI;QAAA,IAAAC,IAAA;QAClC,IAAQC,KAAK,GAAsBF,SAAS,CAApCE,KAAK;UAAEC,QAAQ,GAAYH,SAAS,CAA7BG,QAAQ;UAAEX,KAAK,GAAKQ,SAAS,CAAnBR,KAAK;QAE9B,QAAQW,QAAQ;UACZ,KAAKC,oBAAY,CAACC,QAAQ;YACtB,IAAI,CAACb,KAAK,IAAI,CAACA,KAAK,CAACU,KAAK,CAAC,EAAE;cACzB;YACJ;YAEAN,MAAM,CAACM,KAAK,CAAC,GAAGV,KAAK,CAACU,KAAK,CAAC;YAC5B;UACJ,KAAKE,oBAAY,CAACE,MAAM;YACpBV,MAAM,CAACM,KAAK,CAAC,GAAG,IAAI;YACpB;UACJ,KAAKE,oBAAY,CAACG,MAAM;YACpB,IAAI,CAACf,KAAK,IAAI,CAACA,KAAK,CAACU,KAAK,CAAC,IAAI,CAACM,KAAK,CAACC,OAAO,CAACjB,KAAK,CAACU,KAAK,CAAC,CAAC,EAAE;cACzD;YACJ;YAEA,IAAMQ,OAAO,IAAAT,IAAA,GAAIP,IAAI,IAAIA,IAAI,CAACQ,KAAK,CAAC,cAAAD,IAAA,cAAAA,IAAA,GAAK,EAAE;YAC3CL,MAAM,CAACM,KAAK,CAAC,MAAAS,MAAA,KAAAC,mBAAA,CAAAvB,OAAA,EAAOqB,OAAO,OAAAE,mBAAA,CAAAvB,OAAA,EAAKG,KAAK,CAACU,KAAK,CAAC,EAAC;YAE7C;UACJ;YACI;QACR;MACJ,CAAC,CAAC;MAEF,WAAAL,cAAA,CAAAR,OAAA,MAAAQ,cAAA,CAAAR,OAAA,MACOK,IAAI,GACJE,MAAM;IAEjB;EAAC;EAAA,OAAAT,kBAAA;AAAA;AAAA0B,OAAA,CAAA1B,kBAAA,GAAAA,kBAAA"}
|
|
@@ -54,6 +54,112 @@ describe("GraphQLInputMapper", function () {
|
|
|
54
54
|
field2: "old-field2"
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
|
+
it("should not OVERRIDE data in case of nullish value", function () {
|
|
58
|
+
var data = {
|
|
59
|
+
field1: "old-field-1"
|
|
60
|
+
};
|
|
61
|
+
var batch = {
|
|
62
|
+
operations: [{
|
|
63
|
+
field: "field1",
|
|
64
|
+
operator: _domain.OperatorType.OVERRIDE,
|
|
65
|
+
value: {
|
|
66
|
+
field1: null
|
|
67
|
+
}
|
|
68
|
+
}]
|
|
69
|
+
};
|
|
70
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
71
|
+
expect(output).toEqual({
|
|
72
|
+
field1: "old-field-1"
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it("should not APPEND data in case of nullish value", function () {
|
|
76
|
+
var data = {
|
|
77
|
+
field1: "old-field-1"
|
|
78
|
+
};
|
|
79
|
+
var batch = {
|
|
80
|
+
operations: [{
|
|
81
|
+
field: "field1",
|
|
82
|
+
operator: _domain.OperatorType.APPEND,
|
|
83
|
+
value: {
|
|
84
|
+
field1: null
|
|
85
|
+
}
|
|
86
|
+
}]
|
|
87
|
+
};
|
|
88
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
89
|
+
expect(output).toEqual({
|
|
90
|
+
field1: "old-field-1"
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
it("should not APPEND data in case of non-array value", function () {
|
|
94
|
+
var data = {
|
|
95
|
+
field1: "old-field-1"
|
|
96
|
+
};
|
|
97
|
+
var batch = {
|
|
98
|
+
operations: [{
|
|
99
|
+
field: "field1",
|
|
100
|
+
operator: _domain.OperatorType.APPEND,
|
|
101
|
+
value: {
|
|
102
|
+
field1: "any-string"
|
|
103
|
+
}
|
|
104
|
+
}]
|
|
105
|
+
};
|
|
106
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
107
|
+
expect(output).toEqual({
|
|
108
|
+
field1: "old-field-1"
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
it("should APPEND new data to non existing envelope", function () {
|
|
112
|
+
var data = {};
|
|
113
|
+
var batch = {
|
|
114
|
+
operations: [{
|
|
115
|
+
field: "field1",
|
|
116
|
+
operator: _domain.OperatorType.APPEND,
|
|
117
|
+
value: {
|
|
118
|
+
field1: ["new-field1-1", "new-field1-2"]
|
|
119
|
+
}
|
|
120
|
+
}]
|
|
121
|
+
};
|
|
122
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
123
|
+
expect(output).toEqual({
|
|
124
|
+
field1: ["new-field1-1", "new-field1-2"]
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
it("should APPEND new data for fields with nullish value", function () {
|
|
128
|
+
var data = {
|
|
129
|
+
field1: null
|
|
130
|
+
};
|
|
131
|
+
var batch = {
|
|
132
|
+
operations: [{
|
|
133
|
+
field: "field1",
|
|
134
|
+
operator: _domain.OperatorType.APPEND,
|
|
135
|
+
value: {
|
|
136
|
+
field1: ["new-field1-1", "new-field1-2"]
|
|
137
|
+
}
|
|
138
|
+
}]
|
|
139
|
+
};
|
|
140
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
141
|
+
expect(output).toEqual({
|
|
142
|
+
field1: ["new-field1-1", "new-field1-2"]
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
it("should return existing data in case of invalid operation", function () {
|
|
146
|
+
var data = {
|
|
147
|
+
field1: "old-field1"
|
|
148
|
+
};
|
|
149
|
+
var batch = {
|
|
150
|
+
operations: [{
|
|
151
|
+
field: "field1",
|
|
152
|
+
operator: "ANY-OPERATION",
|
|
153
|
+
value: {
|
|
154
|
+
field1: "new-field1"
|
|
155
|
+
}
|
|
156
|
+
}]
|
|
157
|
+
};
|
|
158
|
+
var output = _GraphQLInputMapper.GraphQLInputMapper.toGraphQLExtensions(data, batch);
|
|
159
|
+
expect(output).toEqual({
|
|
160
|
+
field1: "old-field1"
|
|
161
|
+
});
|
|
162
|
+
});
|
|
57
163
|
});
|
|
58
164
|
|
|
59
165
|
//# sourceMappingURL=GraphQLInputMapper.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_GraphQLInputMapper","require","_domain","describe","it","data","field1","field2","field3","batch","operations","field","operator","OperatorType","OVERRIDE","value","REMOVE","APPEND","output","GraphQLInputMapper","toGraphQLExtensions","expect","toEqual"],"sources":["GraphQLInputMapper.test.ts"],"sourcesContent":["import { GraphQLInputMapper } from \"./GraphQLInputMapper\";\nimport { BatchDTO, OperatorType } from \"~/components/BulkActions/ActionEdit/domain\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\ndescribe(\"GraphQLInputMapper\", () => {\n it(\"should return a GraphQL formatted output based on the received BatchDTO and previous data\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field1\",\n field2: \"old-field2\",\n field3: [\"old-field3\"]\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.OVERRIDE,\n value: {\n field1: \"new-field1\"\n }\n },\n {\n field: \"field2\",\n operator: OperatorType.REMOVE\n },\n {\n field: \"field3\",\n operator: OperatorType.APPEND,\n value: {\n field3: [\"new-field3-1\", \"new-field3-2\"]\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"new-field1\",\n field2: null,\n field3: [\"old-field3\", \"new-field3-1\", \"new-field3-2\"]\n });\n });\n\n it(\"should not override data for fields not defined in the batch\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field1\",\n field2: \"old-field2\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.OVERRIDE,\n value: {\n field1: \"new-field1\"\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"new-field1\",\n field2: \"old-field2\"\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGAE,QAAQ,CAAC,oBAAoB,EAAE,YAAM;EACjCC,EAAE,CAAC,2FAA2F,EAAE,YAAM;IAClG,IAAMC,IAA4B,GAAG;MACjCC,MAAM,EAAE,YAAY;MACpBC,MAAM,EAAE,YAAY;MACpBC,MAAM,EAAE,CAAC,YAAY;IACzB,CAAC;IAED,IAAMC,KAAe,GAAG;MACpBC,UAAU,EAAE,CACR;QACIC,KAAK,EAAE,QAAQ;QACfC,QAAQ,EAAEC,oBAAY,CAACC,QAAQ;QAC/BC,KAAK,EAAE;UACHT,MAAM,EAAE;QACZ;MACJ,CAAC,EACD;QACIK,KAAK,EAAE,QAAQ;QACfC,QAAQ,EAAEC,oBAAY,CAACG;MAC3B,CAAC,EACD;QACIL,KAAK,EAAE,QAAQ;QACfC,QAAQ,EAAEC,oBAAY,CAACI,MAAM;QAC7BF,KAAK,EAAE;UACHP,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc;QAC3C;MACJ,CAAC;IAET,CAAC;IAED,IAAMU,MAAM,GAAGC,sCAAkB,CAACC,mBAAmB,CAACf,IAAI,EAAEI,KAAK,CAAC;IAElEY,MAAM,CAACH,MAAM,CAAC,CAACI,OAAO,CAAC;MACnBhB,MAAM,EAAE,YAAY;MACpBC,MAAM,EAAE,IAAI;MACZC,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc;IACzD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFJ,EAAE,CAAC,8DAA8D,EAAE,YAAM;IACrE,IAAMC,IAA4B,GAAG;MACjCC,MAAM,EAAE,YAAY;MACpBC,MAAM,EAAE;IACZ,CAAC;IAED,IAAME,KAAe,GAAG;MACpBC,UAAU,EAAE,CACR;QACIC,KAAK,EAAE,QAAQ;QACfC,QAAQ,EAAEC,oBAAY,CAACC,QAAQ;QAC/BC,KAAK,EAAE;UACHT,MAAM,EAAE;QACZ;MACJ,CAAC;IAET,CAAC;IAED,IAAMY,MAAM,GAAGC,sCAAkB,CAACC,mBAAmB,CAACf,IAAI,EAAEI,KAAK,CAAC;IAElEY,MAAM,CAACH,MAAM,CAAC,CAACI,OAAO,CAAC;MACnBhB,MAAM,EAAE,YAAY;MACpBC,MAAM,EAAE;IACZ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"names":["_GraphQLInputMapper","require","_domain","describe","it","data","field1","field2","field3","batch","operations","field","operator","OperatorType","OVERRIDE","value","REMOVE","APPEND","output","GraphQLInputMapper","toGraphQLExtensions","expect","toEqual"],"sources":["GraphQLInputMapper.test.ts"],"sourcesContent":["import { GraphQLInputMapper } from \"./GraphQLInputMapper\";\nimport { BatchDTO, OperatorType } from \"~/components/BulkActions/ActionEdit/domain\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\ndescribe(\"GraphQLInputMapper\", () => {\n it(\"should return a GraphQL formatted output based on the received BatchDTO and previous data\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field1\",\n field2: \"old-field2\",\n field3: [\"old-field3\"]\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.OVERRIDE,\n value: {\n field1: \"new-field1\"\n }\n },\n {\n field: \"field2\",\n operator: OperatorType.REMOVE\n },\n {\n field: \"field3\",\n operator: OperatorType.APPEND,\n value: {\n field3: [\"new-field3-1\", \"new-field3-2\"]\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"new-field1\",\n field2: null,\n field3: [\"old-field3\", \"new-field3-1\", \"new-field3-2\"]\n });\n });\n\n it(\"should not override data for fields not defined in the batch\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field1\",\n field2: \"old-field2\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.OVERRIDE,\n value: {\n field1: \"new-field1\"\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"new-field1\",\n field2: \"old-field2\"\n });\n });\n\n it(\"should not OVERRIDE data in case of nullish value\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field-1\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.OVERRIDE,\n value: {\n field1: null\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"old-field-1\"\n });\n });\n\n it(\"should not APPEND data in case of nullish value\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field-1\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.APPEND,\n value: {\n field1: null\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"old-field-1\"\n });\n });\n\n it(\"should not APPEND data in case of non-array value\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field-1\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.APPEND,\n value: {\n field1: \"any-string\"\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"old-field-1\"\n });\n });\n\n it(\"should APPEND new data to non existing envelope\", () => {\n const data: FileItem[\"extensions\"] = {};\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.APPEND,\n value: {\n field1: [\"new-field1-1\", \"new-field1-2\"]\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: [\"new-field1-1\", \"new-field1-2\"]\n });\n });\n\n it(\"should APPEND new data for fields with nullish value\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: null\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: OperatorType.APPEND,\n value: {\n field1: [\"new-field1-1\", \"new-field1-2\"]\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: [\"new-field1-1\", \"new-field1-2\"]\n });\n });\n\n it(\"should return existing data in case of invalid operation\", () => {\n const data: FileItem[\"extensions\"] = {\n field1: \"old-field1\"\n };\n\n const batch: BatchDTO = {\n operations: [\n {\n field: \"field1\",\n operator: \"ANY-OPERATION\",\n value: {\n field1: \"new-field1\"\n }\n }\n ]\n };\n\n const output = GraphQLInputMapper.toGraphQLExtensions(data, batch);\n\n expect(output).toEqual({\n field1: \"old-field1\"\n });\n });\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-file-manager",
|
|
3
|
-
"version": "5.38.3
|
|
3
|
+
"version": "5.38.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
"@emotion/styled": "11.10.6",
|
|
18
18
|
"@material-design-icons/svg": "0.14.3",
|
|
19
19
|
"@types/react": "17.0.39",
|
|
20
|
-
"@webiny/app": "5.38.3
|
|
21
|
-
"@webiny/app-aco": "5.38.3
|
|
22
|
-
"@webiny/app-admin": "5.38.3
|
|
23
|
-
"@webiny/app-headless-cms": "5.38.3
|
|
24
|
-
"@webiny/app-headless-cms-common": "5.38.3
|
|
25
|
-
"@webiny/app-security": "5.38.3
|
|
26
|
-
"@webiny/error": "5.38.3
|
|
27
|
-
"@webiny/form": "5.38.3
|
|
28
|
-
"@webiny/plugins": "5.38.3
|
|
29
|
-
"@webiny/react-properties": "5.38.3
|
|
30
|
-
"@webiny/ui": "5.38.3
|
|
31
|
-
"@webiny/utils": "5.38.3
|
|
32
|
-
"@webiny/validation": "5.38.3
|
|
20
|
+
"@webiny/app": "5.38.3",
|
|
21
|
+
"@webiny/app-aco": "5.38.3",
|
|
22
|
+
"@webiny/app-admin": "5.38.3",
|
|
23
|
+
"@webiny/app-headless-cms": "5.38.3",
|
|
24
|
+
"@webiny/app-headless-cms-common": "5.38.3",
|
|
25
|
+
"@webiny/app-security": "5.38.3",
|
|
26
|
+
"@webiny/error": "5.38.3",
|
|
27
|
+
"@webiny/form": "5.38.3",
|
|
28
|
+
"@webiny/plugins": "5.38.3",
|
|
29
|
+
"@webiny/react-properties": "5.38.3",
|
|
30
|
+
"@webiny/ui": "5.38.3",
|
|
31
|
+
"@webiny/utils": "5.38.3",
|
|
32
|
+
"@webiny/validation": "5.38.3",
|
|
33
33
|
"apollo-cache": "1.3.5",
|
|
34
34
|
"apollo-client": "2.6.10",
|
|
35
35
|
"apollo-link": "1.2.14",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"@babel/preset-react": "7.22.5",
|
|
63
63
|
"@babel/preset-typescript": "7.22.5",
|
|
64
64
|
"@svgr/webpack": "6.5.1",
|
|
65
|
-
"@webiny/cli": "5.38.3
|
|
66
|
-
"@webiny/project-utils": "5.38.3
|
|
65
|
+
"@webiny/cli": "5.38.3",
|
|
66
|
+
"@webiny/project-utils": "5.38.3",
|
|
67
67
|
"rimraf": "3.0.2",
|
|
68
68
|
"ttypescript": "1.5.15",
|
|
69
69
|
"typescript": "4.7.4"
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"build": "yarn webiny run build",
|
|
77
77
|
"watch": "yarn webiny run watch"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "03e8e42ef2d12c9f73f4395cdad77d07f4cd9e32"
|
|
80
80
|
}
|