@strapi/upload 5.0.0-rc.0 → 5.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{graphql-DnH9sdRy.js → graphql-CtmISqaK.js} +2 -2
- package/dist/_chunks/{graphql-DnH9sdRy.js.map → graphql-CtmISqaK.js.map} +1 -1
- package/dist/_chunks/{graphql-_gnSn8ak.mjs → graphql-DPMDE47y.mjs} +2 -2
- package/dist/_chunks/{graphql-_gnSn8ak.mjs.map → graphql-DPMDE47y.mjs.map} +1 -1
- package/dist/_chunks/{index-B31omlmq.js → index-B-H3r7mP.js} +4 -4
- package/dist/_chunks/index-B-H3r7mP.js.map +1 -0
- package/dist/_chunks/{index-BCY68yPX.mjs → index-Bcd5hOLY.mjs} +4 -4
- package/dist/_chunks/index-Bcd5hOLY.mjs.map +1 -0
- package/dist/_chunks/{index-DNIvA1Nj.js → index-C5KW21l3.js} +59 -21
- package/dist/_chunks/index-C5KW21l3.js.map +1 -0
- package/dist/_chunks/{index-aW1eiyyQ.mjs → index-CWuibX66.mjs} +60 -22
- package/dist/_chunks/index-CWuibX66.mjs.map +1 -0
- package/dist/_chunks/{index-By7J3KhK.js → index-C_dufBTj.js} +95 -82
- package/dist/_chunks/index-C_dufBTj.js.map +1 -0
- package/dist/_chunks/{index-B2H0mT-4.mjs → index-D9EbhEEJ.mjs} +5 -5
- package/dist/_chunks/index-D9EbhEEJ.mjs.map +1 -0
- package/dist/_chunks/{index-DF-F15Un.mjs → index-DBGHWFwK.mjs} +95 -82
- package/dist/_chunks/index-DBGHWFwK.mjs.map +1 -0
- package/dist/_chunks/{index-CMAvhamB.js → index-DfYwhlv1.js} +5 -5
- package/dist/_chunks/index-DfYwhlv1.js.map +1 -0
- package/dist/_chunks/{index-Dfhzzni3.js → index-Jo1X_f0b.js} +68 -59
- package/dist/_chunks/index-Jo1X_f0b.js.map +1 -0
- package/dist/_chunks/{index-REz0rm2a.mjs → index-YJADIdOe.mjs} +68 -59
- package/dist/_chunks/index-YJADIdOe.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/extensions/index.d.ts +1 -4
- package/dist/server/src/services/extensions/index.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/index-B2H0mT-4.mjs.map +0 -1
- package/dist/_chunks/index-B31omlmq.js.map +0 -1
- package/dist/_chunks/index-BCY68yPX.mjs.map +0 -1
- package/dist/_chunks/index-By7J3KhK.js.map +0 -1
- package/dist/_chunks/index-CMAvhamB.js.map +0 -1
- package/dist/_chunks/index-DF-F15Un.mjs.map +0 -1
- package/dist/_chunks/index-DNIvA1Nj.js.map +0 -1
- package/dist/_chunks/index-Dfhzzni3.js.map +0 -1
- package/dist/_chunks/index-REz0rm2a.mjs.map +0 -1
- package/dist/_chunks/index-aW1eiyyQ.mjs.map +0 -1
- package/dist/server/src/services/extensions/content-manager/entity-manager.d.ts +0 -15
- package/dist/server/src/services/extensions/content-manager/entity-manager.d.ts.map +0 -1
- package/dist/server/src/services/extensions/content-manager/index.d.ts +0 -4
- package/dist/server/src/services/extensions/content-manager/index.d.ts.map +0 -1
- package/dist/server/src/services/extensions/core/entity-service.d.ts +0 -4
- package/dist/server/src/services/extensions/core/entity-service.d.ts.map +0 -1
- package/dist/server/src/services/extensions/core/index.d.ts +0 -4
- package/dist/server/src/services/extensions/core/index.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const index = require("./index-
|
|
3
|
+
const index = require("./index-C5KW21l3.js");
|
|
4
4
|
const FILE_INFO_INPUT_TYPE_NAME = "FileInfoInput";
|
|
5
5
|
const installGraphqlExtension = ({ strapi }) => {
|
|
6
6
|
const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin("graphql");
|
|
@@ -68,4 +68,4 @@ const installGraphqlExtension = ({ strapi }) => {
|
|
|
68
68
|
});
|
|
69
69
|
};
|
|
70
70
|
exports.installGraphqlExtension = installGraphqlExtension;
|
|
71
|
-
//# sourceMappingURL=graphql-
|
|
71
|
+
//# sourceMappingURL=graphql-CtmISqaK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-
|
|
1
|
+
{"version":3,"file":"graphql-CtmISqaK.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_MODEL_UID"],"mappings":";;;AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAASA,MAAc,cAAA;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as FILE_MODEL_UID } from "./index-
|
|
1
|
+
import { F as FILE_MODEL_UID } from "./index-CWuibX66.mjs";
|
|
2
2
|
const FILE_INFO_INPUT_TYPE_NAME = "FileInfoInput";
|
|
3
3
|
const installGraphqlExtension = ({ strapi }) => {
|
|
4
4
|
const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin("graphql");
|
|
@@ -68,4 +68,4 @@ const installGraphqlExtension = ({ strapi }) => {
|
|
|
68
68
|
export {
|
|
69
69
|
installGraphqlExtension
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=graphql-
|
|
71
|
+
//# sourceMappingURL=graphql-DPMDE47y.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-
|
|
1
|
+
{"version":3,"file":"graphql-DPMDE47y.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":[],"mappings":";AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAAS,cAAc;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;"}
|
|
@@ -9,7 +9,7 @@ const isEqual = require("lodash/isEqual");
|
|
|
9
9
|
const PropTypes = require("prop-types");
|
|
10
10
|
const reactIntl = require("react-intl");
|
|
11
11
|
const reactRouterDom = require("react-router-dom");
|
|
12
|
-
const index = require("./index-
|
|
12
|
+
const index = require("./index-C_dufBTj.js");
|
|
13
13
|
const immer = require("immer");
|
|
14
14
|
const get = require("lodash/get");
|
|
15
15
|
const set = require("lodash/set");
|
|
@@ -31,7 +31,7 @@ const Settings = ({ sort = "", pageSize = 10, onChange: onChange2 }) => {
|
|
|
31
31
|
paddingLeft: 7,
|
|
32
32
|
paddingRight: 7,
|
|
33
33
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
|
|
34
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { s: 12, col: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
34
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { s: 12, col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
35
35
|
designSystem.Field.Root,
|
|
36
36
|
{
|
|
37
37
|
hint: formatMessage({
|
|
@@ -56,7 +56,7 @@ const Settings = ({ sort = "", pageSize = 10, onChange: onChange2 }) => {
|
|
|
56
56
|
]
|
|
57
57
|
}
|
|
58
58
|
) }),
|
|
59
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { s: 12, col: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { s: 12, col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
60
60
|
designSystem.Field.Root,
|
|
61
61
|
{
|
|
62
62
|
hint: formatMessage({
|
|
@@ -226,4 +226,4 @@ ConfigureTheView.propTypes = {
|
|
|
226
226
|
}).isRequired
|
|
227
227
|
};
|
|
228
228
|
exports.default = ConfigureTheView;
|
|
229
|
-
//# sourceMappingURL=index-
|
|
229
|
+
//# sourceMappingURL=index-B-H3r7mP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-B-H3r7mP.js","sources":["../../admin/src/pages/App/ConfigureTheView/components/Settings.jsx","../../admin/src/pages/App/ConfigureTheView/state/actionTypes.js","../../admin/src/pages/App/ConfigureTheView/state/actions.js","../../admin/src/pages/App/ConfigureTheView/state/init.js","../../admin/src/pages/App/ConfigureTheView/state/reducer.js","../../admin/src/pages/App/ConfigureTheView/index.jsx"],"sourcesContent":["import React from 'react';\n\nimport { Box, Grid, SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { pageSizes, sortOptions } from '../../../../constants';\nimport getTrad from '../../../../utils/getTrad';\n\nconst Settings = ({ sort = '', pageSize = 10, onChange }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Grid.Root gap={4}>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.entries.note'),\n defaultMessage: 'Number of assets displayed by default in the Media Library',\n })}\n name=\"pageSize\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.entries.title'),\n defaultMessage: 'Entries per page',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'pageSize', value } })}\n value={pageSize}\n >\n {pageSizes.map((pageSize) => (\n <SingleSelectOption key={pageSize} value={pageSize}>\n {pageSize}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.note'),\n defaultMessage: 'Note: You can override this value in the media library.',\n })}\n name=\"sort\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.sort.title'),\n defaultMessage: 'Default sort order',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'sort', value } })}\n value={sort}\n test-sort={sort}\n data-testid=\"sort-select\"\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption\n data-testid={`sort-option-${filter.value}`}\n key={filter.key}\n value={filter.value}\n >\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\nSettings.propTypes = {\n sort: PropTypes.string.isRequired,\n pageSize: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport { Settings };\n","import pluginId from '../../../../pluginId';\n\nexport const ON_CHANGE = `${pluginId}/ON_CHANGE`;\nexport const SET_LOADED = `${pluginId}/SET_LOADED`;\n","import { ON_CHANGE, SET_LOADED } from './actionTypes';\n\nexport const onChange = ({ name, value }) => ({\n type: ON_CHANGE,\n keys: name,\n value,\n});\n\nexport const setLoaded = () => ({\n type: SET_LOADED,\n});\n","const initialState = {\n initialData: {},\n modifiedData: {},\n};\n\nconst init = (configData) => {\n return {\n ...initialState,\n initialData: configData,\n modifiedData: configData,\n };\n};\nexport { init, initialState };\n","import { produce } from 'immer'; // current\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nimport { ON_CHANGE, SET_LOADED } from './actionTypes';\nimport { init, initialState } from './init';\n\nconst reducer = (state = initialState, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case ON_CHANGE: {\n set(draftState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n case SET_LOADED: {\n // This action re-initialises the state using the current modifiedData.\n const reInitialise = init(get(draftState, ['modifiedData'], {}));\n draftState.initialData = reInitialise.initialData;\n draftState.modifiedData = reInitialise.modifiedData;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useReducer, useState } from 'react';\n\nimport {\n ConfirmDialog,\n useTracking,\n useNotification,\n Page,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Dialog, Link } from '@strapi/design-system';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useConfig } from '../../../hooks/useConfig';\nimport pluginID from '../../../pluginId';\nimport getTrad from '../../../utils/getTrad';\n\nimport { Settings } from './components/Settings';\nimport { onChange, setLoaded } from './state/actions';\nimport { init, initialState } from './state/init';\nimport reducer from './state/reducer';\n\nconst ConfigureTheView = ({ config }) => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { mutateConfig } = useConfig();\n const { isLoading: isSubmittingForm } = mutateConfig;\n\n const [showWarningSubmit, setWarningSubmit] = useState(false);\n const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);\n\n const [reducerState, dispatch] = useReducer(reducer, initialState, () => init(config));\n const { initialData, modifiedData } = reducerState;\n\n const handleSubmit = (e) => {\n e.preventDefault();\n toggleWarningSubmit();\n };\n\n const handleConfirm = async () => {\n trackUsage('willEditMediaLibraryConfig');\n await mutateConfig.mutateAsync(modifiedData);\n setWarningSubmit(false);\n dispatch(setLoaded());\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.form.success.fields',\n defaultMessage: 'Changes saved',\n }),\n });\n };\n\n const handleChange = ({ target: { name, value } }) => {\n dispatch(onChange({ name, value }));\n };\n\n return (\n <Layouts.Root>\n <Page.Main aria-busy={isSubmittingForm}>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n navigationAction={\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`/plugins/${pluginID}`}\n id=\"go-back\"\n >\n {formatMessage({ id: getTrad('config.back'), defaultMessage: 'Back' })}\n </Link>\n }\n primaryAction={\n <Button\n size=\"S\"\n startIcon={<Check />}\n disabled={isEqual(modifiedData, initialData)}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('config.subtitle'),\n defaultMessage: 'Define the view settings of the media library.',\n })}\n title={formatMessage({\n id: getTrad('config.title'),\n defaultMessage: 'Configure the view - Media Library',\n })}\n />\n\n <Layouts.Content>\n <Settings\n data-testid=\"settings\"\n pageSize={modifiedData.pageSize || ''}\n sort={modifiedData.sort || ''}\n onChange={handleChange}\n />\n </Layouts.Content>\n\n <Dialog.Root open={showWarningSubmit} onOpenChange={toggleWarningSubmit}>\n <ConfirmDialog onConfirm={handleConfirm} variant=\"default\">\n {formatMessage({\n id: getTrad('config.popUpWarning.warning.updateAllSettings'),\n defaultMessage: 'This will modify all your settings',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nConfigureTheView.propTypes = {\n config: PropTypes.shape({\n pageSize: PropTypes.number,\n sort: PropTypes.string,\n }).isRequired,\n};\n\nexport default ConfigureTheView;\n"],"names":["onChange","useIntl","jsx","Box","jsxs","Grid","Field","getTrad","SingleSelect","pageSizes","pageSize","SingleSelectOption","sortOptions","PropTypes","pluginId","produce","set","get","useTracking","useNotification","useConfig","useState","useReducer","Layouts","Page","Link","NavLink","ArrowLeft","pluginID","Button","Check","isEqual","Dialog","ConfirmDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,WAAW,IAAI,UAAAA,gBAAe;AACrD,QAAA,EAAE,kBAAkBC,UAAAA;AAGxB,SAAAC,2BAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,WAAS;AAAA,MACT,QAAO;AAAA,MACP,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MAEd,UAACC,2BAAA,KAAAC,kBAAK,MAAL,EAAU,KAAK,GACd,UAAA;AAAA,QAACH,2BAAAA,IAAAG,aAAAA,KAAK,MAAL,EAAU,GAAG,IAAI,KAAK,GAAG,WAAU,UAAS,YAAW,WACtD,UAAAD,2BAAA;AAAA,UAACE,aAAAA,MAAM;AAAA,UAAN;AAAA,YACC,MAAM,cAAc;AAAA,cAClB,IAAIC,cAAQ,qBAAqB;AAAA,cACjC,gBAAgB;AAAA,YAAA,CACjB;AAAA,YACD,MAAK;AAAA,YAEL,UAAA;AAAA,cAACL,2BAAAA,IAAAI,aAAAA,MAAM,OAAN,EACE,UAAc,cAAA;AAAA,gBACb,IAAIC,cAAQ,sBAAsB;AAAA,gBAClC,gBAAgB;AAAA,cACjB,CAAA,GACH;AAAA,cACAL,2BAAA;AAAA,gBAACM,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC,UAAUR,UAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,MAAM,GAAG;AAAA,kBACrE,OAAO;AAAA,kBAEN,UAAAS,MAAAA,UAAU,IAAI,CAACC,cACdR,2BAAAA,IAACS,aAAAA,oBAAkC,EAAA,OAAOD,WACvC,UAAAA,UADsBA,GAAAA,SAEzB,CACD;AAAA,gBAAA;AAAA,cACH;AAAA,cACAR,+BAACI,aAAAA,MAAM,MAAN,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,QACAJ,2BAAAA,IAACG,aAAAA,KAAK,MAAL,EAAU,GAAG,IAAI,KAAK,GAAG,WAAU,UAAS,YAAW,WACtD,UAAAD,2BAAA;AAAA,UAACE,aAAAA,MAAM;AAAA,UAAN;AAAA,YACC,MAAM,cAAc;AAAA,cAClB,IAAIC,cAAQ,aAAa;AAAA,cACzB,gBAAgB;AAAA,YAAA,CACjB;AAAA,YACD,MAAK;AAAA,YAEL,UAAA;AAAA,cAACL,2BAAAA,IAAAI,aAAAA,MAAM,OAAN,EACE,UAAc,cAAA;AAAA,gBACb,IAAIC,cAAQ,mBAAmB;AAAA,gBAC/B,gBAAgB;AAAA,cACjB,CAAA,GACH;AAAA,cACAL,2BAAA;AAAA,gBAACM,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC,UAAUR,UAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,MAAM,GAAG;AAAA,kBACjE,OAAO;AAAA,kBACP,aAAW;AAAA,kBACX,eAAY;AAAA,kBAEX,UAAAY,MAAA,YAAY,IAAI,CAAC,WAChBV,2BAAA;AAAA,oBAACS,aAAA;AAAA,oBAAA;AAAA,sBACC,eAAa,eAAe,OAAO,KAAK;AAAA,sBAExC,OAAO,OAAO;AAAA,sBAEb,UAAc,cAAA,EAAE,IAAIJ,MAAAA,QAAQ,OAAO,GAAG,GAAG,gBAAgB,GAAG,OAAO,KAAK,GAAA,CAAI;AAAA,oBAAA;AAAA,oBAHxE,OAAO;AAAA,kBAAA,CAKf;AAAA,gBAAA;AAAA,cACH;AAAA,cACAL,+BAACI,aAAAA,MAAM,MAAN,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,YAAY;AAAA,EACnB,MAAMO,mBAAAA,QAAU,OAAO;AAAA,EACvB,UAAUA,mBAAAA,QAAU,OAAO;AAAA,EAC3B,UAAUA,mBAAAA,QAAU,KAAK;AAC3B;AC1FO,MAAM,YAAY,GAAGC,cAAQ;AAC7B,MAAM,aAAa,GAAGA,MAAQ,QAAA;ACD9B,MAAM,WAAW,CAAC,EAAE,MAAM,aAAa;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AACF;AAEO,MAAM,YAAY,OAAO;AAAA,EAC9B,MAAM;AACR;ACVA,MAAM,eAAe;AAAA,EACnB,aAAa,CAAE;AAAA,EACf,cAAc,CAAE;AAClB;AAEA,MAAM,OAAO,CAAC,eAAe;AAC3B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa;AAAA,IACb,cAAc;AAAA,EAClB;AACA;ACJA,MAAM,UAAU,CAAC,QAAQ,cAAc;AAAA;AAAA,EAErCC,cAAQ,OAAO,CAAC,eAAe;AAC7B,YAAQ,OAAO,MAAI;AAAA,MACjB,KAAK,WAAW;AACdC,qBAAAA,QAAI,YAAY,CAAC,gBAAgB,GAAG,OAAO,KAAK,MAAM,GAAG,CAAC,GAAG,OAAO,KAAK;AACzE;AAAA,MACD;AAAA,MACD,KAAK,YAAY;AAEf,cAAM,eAAe,KAAKC,qBAAI,YAAY,CAAC,cAAc,GAAG,CAAE,CAAA,CAAC;AAC/D,mBAAW,cAAc,aAAa;AACtC,mBAAW,eAAe,aAAa;AACvC;AAAA,MACD;AAAA,MACD;AACE,eAAO;AAAA,IACV;AAAA,EACL,CAAG;AAAA;ACAH,MAAM,mBAAmB,CAAC,EAAE,aAAa;AACjC,QAAA,EAAE,eAAeC,YAAAA;AACjB,QAAA,EAAE,kBAAkBjB,UAAAA;AACpB,QAAA,EAAE,uBAAuBkB,YAAAA;AACzB,QAAA,EAAE,iBAAiBC,MAAAA;AACnB,QAAA,EAAE,WAAW,iBAAqB,IAAA;AAExC,QAAM,CAAC,mBAAmB,gBAAgB,IAAIC,eAAS,KAAK;AAC5D,QAAM,sBAAsB,MAAM,iBAAiB,CAAC,cAAc,CAAC,SAAS;AAEtE,QAAA,CAAC,cAAc,QAAQ,IAAIC,MAAA,WAAW,SAAS,cAAc,MAAM,KAAK,MAAM,CAAC;AAC/E,QAAA,EAAE,aAAa,aAAiB,IAAA;AAEhC,QAAA,eAAe,CAAC,MAAM;AAC1B,MAAE,eAAe;AACG;EAAA;AAGtB,QAAM,gBAAgB,YAAY;AAChC,eAAW,4BAA4B;AACjC,UAAA,aAAa,YAAY,YAAY;AAC3C,qBAAiB,KAAK;AACtB,aAAS,WAAW;AACD,uBAAA;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,cAAc;AAAA,QACrB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,IAAA,CACF;AAAA,EAAA;AAGG,QAAA,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,MAAA,QAAc;AACpD,aAAS,SAAS,EAAE,MAAM,MAAA,CAAO,CAAC;AAAA,EAAA;AAGpC,SACGpB,2BAAAA,IAAAqB,YAAAA,QAAQ,MAAR,EACC,UAACrB,2BAAAA,IAAAsB,YAAAA,KAAK,MAAL,EAAU,aAAW,kBACpB,UAACpB,2BAAA,KAAA,QAAA,EAAK,UAAU,cACd,UAAA;AAAA,IAAAF,2BAAA;AAAA,MAACqB,YAAAA,QAAQ;AAAA,MAAR;AAAA,QACC,kBACErB,2BAAA;AAAA,UAACuB,aAAA;AAAA,UAAA;AAAA,YACC,KAAKC,eAAA;AAAA,YACL,0CAAYC,MAAU,WAAA,EAAA;AAAA,YACtB,IAAI,YAAYC,MAAAA,QAAQ;AAAA,YACxB,IAAG;AAAA,YAEF,UAAA,cAAc,EAAE,IAAIrB,MAAAA,QAAQ,aAAa,GAAG,gBAAgB,QAAQ;AAAA,UAAA;AAAA,QACvE;AAAA,QAEF,eACEL,2BAAA;AAAA,UAAC2B,aAAA;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,0CAAYC,MAAM,OAAA,EAAA;AAAA,YAClB,UAAUC,iBAAAA,QAAQ,cAAc,WAAW;AAAA,YAC3C,MAAK;AAAA,YAEJ,wBAAc,EAAE,IAAI,eAAe,gBAAgB,QAAQ;AAAA,UAAA;AAAA,QAC9D;AAAA,QAEF,UAAU,cAAc;AAAA,UACtB,IAAIxB,cAAQ,iBAAiB;AAAA,UAC7B,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,OAAO,cAAc;AAAA,UACnB,IAAIA,cAAQ,cAAc;AAAA,UAC1B,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,IAEAL,2BAAAA,IAACqB,YAAQ,QAAA,SAAR,EACC,UAAArB,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,UAAU,aAAa,YAAY;AAAA,QACnC,MAAM,aAAa,QAAQ;AAAA,QAC3B,UAAU;AAAA,MAAA;AAAA,IAAA,GAEd;AAAA,IAECA,2BAAA,IAAA8B,aAAA,OAAO,MAAP,EAAY,MAAM,mBAAmB,cAAc,qBAClD,UAAA9B,2BAAAA,IAAC+B,YAAAA,eAAc,EAAA,WAAW,eAAe,SAAQ,WAC9C,UAAc,cAAA;AAAA,MACb,IAAI1B,cAAQ,+CAA+C;AAAA,MAC3D,gBAAgB;AAAA,IAAA,CACjB,GACH,EACF,CAAA;AAAA,EAAA,GACF,GACF,EACF,CAAA;AAEJ;AAEA,iBAAiB,YAAY;AAAA,EAC3B,QAAQM,2BAAU,MAAM;AAAA,IACtB,UAAUA,mBAAU,QAAA;AAAA,IACpB,MAAMA,mBAAU,QAAA;AAAA,EACjB,CAAA,EAAE;AACL;;"}
|
|
@@ -7,7 +7,7 @@ import isEqual from "lodash/isEqual";
|
|
|
7
7
|
import PropTypes from "prop-types";
|
|
8
8
|
import { useIntl } from "react-intl";
|
|
9
9
|
import { NavLink } from "react-router-dom";
|
|
10
|
-
import { g as getTrad, H as pageSizes, I as sortOptions, p as pluginId, G as useConfig } from "./index-
|
|
10
|
+
import { g as getTrad, H as pageSizes, I as sortOptions, p as pluginId, G as useConfig } from "./index-DBGHWFwK.mjs";
|
|
11
11
|
import { produce } from "immer";
|
|
12
12
|
import get from "lodash/get";
|
|
13
13
|
import set from "lodash/set";
|
|
@@ -24,7 +24,7 @@ const Settings = ({ sort = "", pageSize = 10, onChange: onChange2 }) => {
|
|
|
24
24
|
paddingLeft: 7,
|
|
25
25
|
paddingRight: 7,
|
|
26
26
|
children: /* @__PURE__ */ jsxs(Grid.Root, { gap: 4, children: [
|
|
27
|
-
/* @__PURE__ */ jsx(Grid.Item, { s: 12, col: 6, children: /* @__PURE__ */ jsxs(
|
|
27
|
+
/* @__PURE__ */ jsx(Grid.Item, { s: 12, col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxs(
|
|
28
28
|
Field.Root,
|
|
29
29
|
{
|
|
30
30
|
hint: formatMessage({
|
|
@@ -49,7 +49,7 @@ const Settings = ({ sort = "", pageSize = 10, onChange: onChange2 }) => {
|
|
|
49
49
|
]
|
|
50
50
|
}
|
|
51
51
|
) }),
|
|
52
|
-
/* @__PURE__ */ jsx(Grid.Item, { s: 12, col: 6, children: /* @__PURE__ */ jsxs(
|
|
52
|
+
/* @__PURE__ */ jsx(Grid.Item, { s: 12, col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxs(
|
|
53
53
|
Field.Root,
|
|
54
54
|
{
|
|
55
55
|
hint: formatMessage({
|
|
@@ -221,4 +221,4 @@ ConfigureTheView.propTypes = {
|
|
|
221
221
|
export {
|
|
222
222
|
ConfigureTheView as default
|
|
223
223
|
};
|
|
224
|
-
//# sourceMappingURL=index-
|
|
224
|
+
//# sourceMappingURL=index-Bcd5hOLY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bcd5hOLY.mjs","sources":["../../admin/src/pages/App/ConfigureTheView/components/Settings.jsx","../../admin/src/pages/App/ConfigureTheView/state/actionTypes.js","../../admin/src/pages/App/ConfigureTheView/state/actions.js","../../admin/src/pages/App/ConfigureTheView/state/init.js","../../admin/src/pages/App/ConfigureTheView/state/reducer.js","../../admin/src/pages/App/ConfigureTheView/index.jsx"],"sourcesContent":["import React from 'react';\n\nimport { Box, Grid, SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { pageSizes, sortOptions } from '../../../../constants';\nimport getTrad from '../../../../utils/getTrad';\n\nconst Settings = ({ sort = '', pageSize = 10, onChange }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Grid.Root gap={4}>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.entries.note'),\n defaultMessage: 'Number of assets displayed by default in the Media Library',\n })}\n name=\"pageSize\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.entries.title'),\n defaultMessage: 'Entries per page',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'pageSize', value } })}\n value={pageSize}\n >\n {pageSizes.map((pageSize) => (\n <SingleSelectOption key={pageSize} value={pageSize}>\n {pageSize}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.note'),\n defaultMessage: 'Note: You can override this value in the media library.',\n })}\n name=\"sort\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.sort.title'),\n defaultMessage: 'Default sort order',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'sort', value } })}\n value={sort}\n test-sort={sort}\n data-testid=\"sort-select\"\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption\n data-testid={`sort-option-${filter.value}`}\n key={filter.key}\n value={filter.value}\n >\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\nSettings.propTypes = {\n sort: PropTypes.string.isRequired,\n pageSize: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport { Settings };\n","import pluginId from '../../../../pluginId';\n\nexport const ON_CHANGE = `${pluginId}/ON_CHANGE`;\nexport const SET_LOADED = `${pluginId}/SET_LOADED`;\n","import { ON_CHANGE, SET_LOADED } from './actionTypes';\n\nexport const onChange = ({ name, value }) => ({\n type: ON_CHANGE,\n keys: name,\n value,\n});\n\nexport const setLoaded = () => ({\n type: SET_LOADED,\n});\n","const initialState = {\n initialData: {},\n modifiedData: {},\n};\n\nconst init = (configData) => {\n return {\n ...initialState,\n initialData: configData,\n modifiedData: configData,\n };\n};\nexport { init, initialState };\n","import { produce } from 'immer'; // current\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nimport { ON_CHANGE, SET_LOADED } from './actionTypes';\nimport { init, initialState } from './init';\n\nconst reducer = (state = initialState, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case ON_CHANGE: {\n set(draftState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n case SET_LOADED: {\n // This action re-initialises the state using the current modifiedData.\n const reInitialise = init(get(draftState, ['modifiedData'], {}));\n draftState.initialData = reInitialise.initialData;\n draftState.modifiedData = reInitialise.modifiedData;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useReducer, useState } from 'react';\n\nimport {\n ConfirmDialog,\n useTracking,\n useNotification,\n Page,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Dialog, Link } from '@strapi/design-system';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useConfig } from '../../../hooks/useConfig';\nimport pluginID from '../../../pluginId';\nimport getTrad from '../../../utils/getTrad';\n\nimport { Settings } from './components/Settings';\nimport { onChange, setLoaded } from './state/actions';\nimport { init, initialState } from './state/init';\nimport reducer from './state/reducer';\n\nconst ConfigureTheView = ({ config }) => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { mutateConfig } = useConfig();\n const { isLoading: isSubmittingForm } = mutateConfig;\n\n const [showWarningSubmit, setWarningSubmit] = useState(false);\n const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);\n\n const [reducerState, dispatch] = useReducer(reducer, initialState, () => init(config));\n const { initialData, modifiedData } = reducerState;\n\n const handleSubmit = (e) => {\n e.preventDefault();\n toggleWarningSubmit();\n };\n\n const handleConfirm = async () => {\n trackUsage('willEditMediaLibraryConfig');\n await mutateConfig.mutateAsync(modifiedData);\n setWarningSubmit(false);\n dispatch(setLoaded());\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.form.success.fields',\n defaultMessage: 'Changes saved',\n }),\n });\n };\n\n const handleChange = ({ target: { name, value } }) => {\n dispatch(onChange({ name, value }));\n };\n\n return (\n <Layouts.Root>\n <Page.Main aria-busy={isSubmittingForm}>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n navigationAction={\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`/plugins/${pluginID}`}\n id=\"go-back\"\n >\n {formatMessage({ id: getTrad('config.back'), defaultMessage: 'Back' })}\n </Link>\n }\n primaryAction={\n <Button\n size=\"S\"\n startIcon={<Check />}\n disabled={isEqual(modifiedData, initialData)}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('config.subtitle'),\n defaultMessage: 'Define the view settings of the media library.',\n })}\n title={formatMessage({\n id: getTrad('config.title'),\n defaultMessage: 'Configure the view - Media Library',\n })}\n />\n\n <Layouts.Content>\n <Settings\n data-testid=\"settings\"\n pageSize={modifiedData.pageSize || ''}\n sort={modifiedData.sort || ''}\n onChange={handleChange}\n />\n </Layouts.Content>\n\n <Dialog.Root open={showWarningSubmit} onOpenChange={toggleWarningSubmit}>\n <ConfirmDialog onConfirm={handleConfirm} variant=\"default\">\n {formatMessage({\n id: getTrad('config.popUpWarning.warning.updateAllSettings'),\n defaultMessage: 'This will modify all your settings',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nConfigureTheView.propTypes = {\n config: PropTypes.shape({\n pageSize: PropTypes.number,\n sort: PropTypes.string,\n }).isRequired,\n};\n\nexport default ConfigureTheView;\n"],"names":["onChange","pageSize","pluginID"],"mappings":";;;;;;;;;;;;;AASA,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,WAAW,IAAI,UAAAA,gBAAe;AACrD,QAAA,EAAE,kBAAkB;AAGxB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,WAAS;AAAA,MACT,QAAO;AAAA,MACP,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MAEd,UAAC,qBAAA,KAAK,MAAL,EAAU,KAAK,GACd,UAAA;AAAA,QAAC,oBAAA,KAAK,MAAL,EAAU,GAAG,IAAI,KAAK,GAAG,WAAU,UAAS,YAAW,WACtD,UAAA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACC,MAAM,cAAc;AAAA,cAClB,IAAI,QAAQ,qBAAqB;AAAA,cACjC,gBAAgB;AAAA,YAAA,CACjB;AAAA,YACD,MAAK;AAAA,YAEL,UAAA;AAAA,cAAC,oBAAA,MAAM,OAAN,EACE,UAAc,cAAA;AAAA,gBACb,IAAI,QAAQ,sBAAsB;AAAA,gBAClC,gBAAgB;AAAA,cACjB,CAAA,GACH;AAAA,cACA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC,UAAUA,UAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,MAAM,GAAG;AAAA,kBACrE,OAAO;AAAA,kBAEN,UAAA,UAAU,IAAI,CAACC,cACd,oBAAC,oBAAkC,EAAA,OAAOA,WACvC,UAAAA,UADsBA,GAAAA,SAEzB,CACD;AAAA,gBAAA;AAAA,cACH;AAAA,cACA,oBAAC,MAAM,MAAN,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,QACA,oBAAC,KAAK,MAAL,EAAU,GAAG,IAAI,KAAK,GAAG,WAAU,UAAS,YAAW,WACtD,UAAA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACC,MAAM,cAAc;AAAA,cAClB,IAAI,QAAQ,aAAa;AAAA,cACzB,gBAAgB;AAAA,YAAA,CACjB;AAAA,YACD,MAAK;AAAA,YAEL,UAAA;AAAA,cAAC,oBAAA,MAAM,OAAN,EACE,UAAc,cAAA;AAAA,gBACb,IAAI,QAAQ,mBAAmB;AAAA,gBAC/B,gBAAgB;AAAA,cACjB,CAAA,GACH;AAAA,cACA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,UAAU,CAAC,UAAUD,UAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,MAAM,GAAG;AAAA,kBACjE,OAAO;AAAA,kBACP,aAAW;AAAA,kBACX,eAAY;AAAA,kBAEX,UAAA,YAAY,IAAI,CAAC,WAChB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,eAAa,eAAe,OAAO,KAAK;AAAA,sBAExC,OAAO,OAAO;AAAA,sBAEb,UAAc,cAAA,EAAE,IAAI,QAAQ,OAAO,GAAG,GAAG,gBAAgB,GAAG,OAAO,KAAK,GAAA,CAAI;AAAA,oBAAA;AAAA,oBAHxE,OAAO;AAAA,kBAAA,CAKf;AAAA,gBAAA;AAAA,cACH;AAAA,cACA,oBAAC,MAAM,MAAN,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEhB;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,YAAY;AAAA,EACnB,MAAM,UAAU,OAAO;AAAA,EACvB,UAAU,UAAU,OAAO;AAAA,EAC3B,UAAU,UAAU,KAAK;AAC3B;AC1FO,MAAM,YAAY,GAAG,QAAQ;AAC7B,MAAM,aAAa,GAAG,QAAQ;ACD9B,MAAM,WAAW,CAAC,EAAE,MAAM,aAAa;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AACF;AAEO,MAAM,YAAY,OAAO;AAAA,EAC9B,MAAM;AACR;ACVA,MAAM,eAAe;AAAA,EACnB,aAAa,CAAE;AAAA,EACf,cAAc,CAAE;AAClB;AAEA,MAAM,OAAO,CAAC,eAAe;AAC3B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa;AAAA,IACb,cAAc;AAAA,EAClB;AACA;ACJA,MAAM,UAAU,CAAC,QAAQ,cAAc;AAAA;AAAA,EAErC,QAAQ,OAAO,CAAC,eAAe;AAC7B,YAAQ,OAAO,MAAI;AAAA,MACjB,KAAK,WAAW;AACd,YAAI,YAAY,CAAC,gBAAgB,GAAG,OAAO,KAAK,MAAM,GAAG,CAAC,GAAG,OAAO,KAAK;AACzE;AAAA,MACD;AAAA,MACD,KAAK,YAAY;AAEf,cAAM,eAAe,KAAK,IAAI,YAAY,CAAC,cAAc,GAAG,CAAE,CAAA,CAAC;AAC/D,mBAAW,cAAc,aAAa;AACtC,mBAAW,eAAe,aAAa;AACvC;AAAA,MACD;AAAA,MACD;AACE,eAAO;AAAA,IACV;AAAA,EACL,CAAG;AAAA;ACAH,MAAM,mBAAmB,CAAC,EAAE,aAAa;AACjC,QAAA,EAAE,eAAe;AACjB,QAAA,EAAE,kBAAkB;AACpB,QAAA,EAAE,uBAAuB;AACzB,QAAA,EAAE,iBAAiB;AACnB,QAAA,EAAE,WAAW,iBAAqB,IAAA;AAExC,QAAM,CAAC,mBAAmB,gBAAgB,IAAI,SAAS,KAAK;AAC5D,QAAM,sBAAsB,MAAM,iBAAiB,CAAC,cAAc,CAAC,SAAS;AAEtE,QAAA,CAAC,cAAc,QAAQ,IAAI,WAAW,SAAS,cAAc,MAAM,KAAK,MAAM,CAAC;AAC/E,QAAA,EAAE,aAAa,aAAiB,IAAA;AAEhC,QAAA,eAAe,CAAC,MAAM;AAC1B,MAAE,eAAe;AACG;EAAA;AAGtB,QAAM,gBAAgB,YAAY;AAChC,eAAW,4BAA4B;AACjC,UAAA,aAAa,YAAY,YAAY;AAC3C,qBAAiB,KAAK;AACtB,aAAS,WAAW;AACD,uBAAA;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,cAAc;AAAA,QACrB,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAAA,CACjB;AAAA,IAAA,CACF;AAAA,EAAA;AAGG,QAAA,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,MAAA,QAAc;AACpD,aAAS,SAAS,EAAE,MAAM,MAAA,CAAO,CAAC;AAAA,EAAA;AAGpC,SACG,oBAAA,QAAQ,MAAR,EACC,UAAC,oBAAA,KAAK,MAAL,EAAU,aAAW,kBACpB,UAAC,qBAAA,QAAA,EAAK,UAAU,cACd,UAAA;AAAA,IAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACC,kBACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,+BAAY,WAAU,EAAA;AAAA,YACtB,IAAI,YAAYE,QAAQ;AAAA,YACxB,IAAG;AAAA,YAEF,UAAA,cAAc,EAAE,IAAI,QAAQ,aAAa,GAAG,gBAAgB,QAAQ;AAAA,UAAA;AAAA,QACvE;AAAA,QAEF,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,+BAAY,OAAM,EAAA;AAAA,YAClB,UAAU,QAAQ,cAAc,WAAW;AAAA,YAC3C,MAAK;AAAA,YAEJ,wBAAc,EAAE,IAAI,eAAe,gBAAgB,QAAQ;AAAA,UAAA;AAAA,QAC9D;AAAA,QAEF,UAAU,cAAc;AAAA,UACtB,IAAI,QAAQ,iBAAiB;AAAA,UAC7B,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,OAAO,cAAc;AAAA,UACnB,IAAI,QAAQ,cAAc;AAAA,UAC1B,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,IAEA,oBAAC,QAAQ,SAAR,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,UAAU,aAAa,YAAY;AAAA,QACnC,MAAM,aAAa,QAAQ;AAAA,QAC3B,UAAU;AAAA,MAAA;AAAA,IAAA,GAEd;AAAA,IAEC,oBAAA,OAAO,MAAP,EAAY,MAAM,mBAAmB,cAAc,qBAClD,UAAA,oBAAC,eAAc,EAAA,WAAW,eAAe,SAAQ,WAC9C,UAAc,cAAA;AAAA,MACb,IAAI,QAAQ,+CAA+C;AAAA,MAC3D,gBAAgB;AAAA,IAAA,CACjB,GACH,EACF,CAAA;AAAA,EAAA,GACF,GACF,EACF,CAAA;AAEJ;AAEA,iBAAiB,YAAY;AAAA,EAC3B,QAAQ,UAAU,MAAM;AAAA,IACtB,UAAU,UAAU;AAAA,IACpB,MAAM,UAAU;AAAA,EACjB,CAAA,EAAE;AACL;"}
|
|
@@ -327,7 +327,7 @@ async function register({ strapi: strapi2 }) {
|
|
|
327
327
|
strapi2.plugin("upload").provider = createProvider(strapi2.config.get("plugin::upload"));
|
|
328
328
|
await registerUploadMiddleware({ strapi: strapi2 });
|
|
329
329
|
if (strapi2.plugin("graphql")) {
|
|
330
|
-
const { installGraphqlExtension } = await Promise.resolve().then(() => require("./graphql-
|
|
330
|
+
const { installGraphqlExtension } = await Promise.resolve().then(() => require("./graphql-CtmISqaK.js"));
|
|
331
331
|
installGraphqlExtension({ strapi: strapi2 });
|
|
332
332
|
}
|
|
333
333
|
if (strapi2.plugin("documentation")) {
|
|
@@ -451,11 +451,7 @@ async function bootstrap({ strapi: strapi2 }) {
|
|
|
451
451
|
await registerWebhookEvents();
|
|
452
452
|
await getService("weeklyMetrics").registerCron();
|
|
453
453
|
getService("metrics").sendUploadPluginMetrics();
|
|
454
|
-
|
|
455
|
-
getService("extensions").contentManager.entityManager.addSignedFileUrlsToAdmin();
|
|
456
|
-
} else {
|
|
457
|
-
getService("extensions").core.entityService.addSignedFileUrlsToEntityService();
|
|
458
|
-
}
|
|
454
|
+
getService("extensions").signFileUrlsOnDocumentService();
|
|
459
455
|
}
|
|
460
456
|
const registerWebhookEvents = async () => Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
|
|
461
457
|
strapi.get("webhookStore").addAllowedEvent(key, value);
|
|
@@ -1623,23 +1619,65 @@ const getAPIUploadFolder = async () => {
|
|
|
1623
1619
|
const apiUploadFolder = {
|
|
1624
1620
|
getAPIUploadFolder
|
|
1625
1621
|
};
|
|
1626
|
-
|
|
1622
|
+
function isFile(value, attribute) {
|
|
1623
|
+
if (!value || attribute.type !== "media") {
|
|
1624
|
+
return false;
|
|
1625
|
+
}
|
|
1626
|
+
return true;
|
|
1627
|
+
}
|
|
1628
|
+
const signEntityMediaVisitor = async ({ key, value, attribute }, { set }) => {
|
|
1629
|
+
const { signFileUrls: signFileUrls2 } = getService("file");
|
|
1630
|
+
if (!attribute) {
|
|
1631
|
+
return;
|
|
1632
|
+
}
|
|
1633
|
+
if (attribute.type !== "media") {
|
|
1634
|
+
return;
|
|
1635
|
+
}
|
|
1636
|
+
if (isFile(value, attribute)) {
|
|
1637
|
+
if (attribute.multiple) {
|
|
1638
|
+
const signedFiles = await utils.async.map(value, signFileUrls2);
|
|
1639
|
+
set(key, signedFiles);
|
|
1640
|
+
return;
|
|
1641
|
+
}
|
|
1642
|
+
const signedFile = await signFileUrls2(value);
|
|
1643
|
+
set(key, signedFile);
|
|
1644
|
+
}
|
|
1645
|
+
};
|
|
1646
|
+
const signEntityMedia = async (entity, uid) => {
|
|
1647
|
+
const model = strapi.getModel(uid);
|
|
1648
|
+
return utils.traverseEntity(
|
|
1649
|
+
// @ts-expect-error - FIXME: fix traverseEntity using wrong types
|
|
1650
|
+
signEntityMediaVisitor,
|
|
1651
|
+
{ schema: model, getModel: strapi.getModel.bind(strapi) },
|
|
1652
|
+
entity
|
|
1653
|
+
);
|
|
1627
1654
|
};
|
|
1628
|
-
const
|
|
1629
|
-
const
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1655
|
+
const signFileUrlsOnDocumentService = async () => {
|
|
1656
|
+
const { provider: provider2 } = strapi.plugins.upload;
|
|
1657
|
+
const isPrivate = await provider2.isPrivate();
|
|
1658
|
+
if (!isPrivate) {
|
|
1659
|
+
return;
|
|
1660
|
+
}
|
|
1661
|
+
strapi.documents.use(async (ctx, next) => {
|
|
1662
|
+
const uid = ctx.uid;
|
|
1663
|
+
const result = await next();
|
|
1664
|
+
if (ctx.action === "findMany") {
|
|
1665
|
+
return utils.async.map(result, (entry) => signEntityMedia(entry, uid));
|
|
1666
|
+
}
|
|
1667
|
+
if (ctx.action === "findFirst" || ctx.action === "findOne" || ctx.action === "create" || ctx.action === "update") {
|
|
1668
|
+
return signEntityMedia(result, uid);
|
|
1669
|
+
}
|
|
1670
|
+
if (ctx.action === "delete" || ctx.action === "clone" || ctx.action === "publish" || ctx.action === "unpublish" || ctx.action === "discardDraft") {
|
|
1671
|
+
return {
|
|
1672
|
+
...result,
|
|
1673
|
+
entries: await utils.async.map(result.entries, (entry) => signEntityMedia(entry, uid))
|
|
1674
|
+
};
|
|
1675
|
+
}
|
|
1676
|
+
return result;
|
|
1677
|
+
});
|
|
1634
1678
|
};
|
|
1635
|
-
const entityService = { addSignedFileUrlsToEntityService };
|
|
1636
|
-
const core = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1637
|
-
__proto__: null,
|
|
1638
|
-
entityService
|
|
1639
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
1640
1679
|
const extensions = {
|
|
1641
|
-
|
|
1642
|
-
core
|
|
1680
|
+
signFileUrlsOnDocumentService
|
|
1643
1681
|
};
|
|
1644
1682
|
const services = {
|
|
1645
1683
|
provider,
|
|
@@ -2682,4 +2720,4 @@ const index = () => ({
|
|
|
2682
2720
|
});
|
|
2683
2721
|
exports.FILE_MODEL_UID = FILE_MODEL_UID;
|
|
2684
2722
|
exports.index = index;
|
|
2685
|
-
//# sourceMappingURL=index-
|
|
2723
|
+
//# sourceMappingURL=index-C5KW21l3.js.map
|