node_modules ignore

This commit is contained in:
2025-05-08 23:43:47 +02:00
parent e19d52f172
commit 4574544c9f
65041 changed files with 10593536 additions and 0 deletions

1
server/node_modules/.bin/acorn generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../acorn/bin/acorn

1
server/node_modules/.bin/ansi-html generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../ansi-html/bin/ansi-html

1
server/node_modules/.bin/browserslist generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../browserslist/cli.js

1
server/node_modules/.bin/cloud-cli generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../@strapi/cloud-cli/bin/index.js

1
server/node_modules/.bin/conc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../concurrently/dist/bin/concurrently.js

1
server/node_modules/.bin/concurrently generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../concurrently/dist/bin/concurrently.js

1
server/node_modules/.bin/copyfiles generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../copyfiles/copyfiles

1
server/node_modules/.bin/copyup generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../copyfiles/copyfiles

1
server/node_modules/.bin/cross-env generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../cross-env/src/bin/cross-env.js

1
server/node_modules/.bin/cross-env-shell generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../cross-env/src/bin/cross-env-shell.js

1
server/node_modules/.bin/cssesc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../cssesc/bin/cssesc

1
server/node_modules/.bin/direction generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../direction/cli.js

1
server/node_modules/.bin/esbuild generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../esbuild/bin/esbuild

1
server/node_modules/.bin/esparse generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../esprima/bin/esparse.js

1
server/node_modules/.bin/esvalidate generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../esprima/bin/esvalidate.js

1
server/node_modules/.bin/glob generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../glob/dist/esm/bin.mjs

1
server/node_modules/.bin/handlebars generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../handlebars/bin/handlebars

1
server/node_modules/.bin/he generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../he/bin/he

1
server/node_modules/.bin/html-minifier-terser generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../html-minifier-terser/cli.js

1
server/node_modules/.bin/is-docker generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../is-docker/cli.js

1
server/node_modules/.bin/js-yaml generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../js-yaml/bin/js-yaml.js

1
server/node_modules/.bin/jsesc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../jsesc/bin/jsesc

1
server/node_modules/.bin/json5 generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../json5/lib/cli.js

1
server/node_modules/.bin/knex generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../knex/bin/cli.js

1
server/node_modules/.bin/loose-envify generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../loose-envify/cli.js

1
server/node_modules/.bin/lz-string generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../lz-string/bin/bin.js

1
server/node_modules/.bin/markdown-it generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../markdown-it/bin/markdown-it.js

1
server/node_modules/.bin/marked generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../marked/bin/marked.js

1
server/node_modules/.bin/mkdirp generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../mkdirp/bin/cmd.js

1
server/node_modules/.bin/nanoid generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../nanoid/bin/nanoid.cjs

1
server/node_modules/.bin/node-which generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../which/bin/node-which

1
server/node_modules/.bin/nodemon generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../nodemon/bin/nodemon.js

1
server/node_modules/.bin/nodetouch generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../touch/bin/nodetouch.js

1
server/node_modules/.bin/npm-packlist generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../npm-packlist/bin/index.js

1
server/node_modules/.bin/opener generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../opener/bin/opener-bin.js

1
server/node_modules/.bin/parser generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../@babel/parser/bin/babel-parser.js

1
server/node_modules/.bin/plop generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../plop/bin/plop.js

1
server/node_modules/.bin/prebuild-install generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../prebuild-install/bin.js

1
server/node_modules/.bin/prettier generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../prettier/bin/prettier.cjs

1
server/node_modules/.bin/rc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../rc/cli.js

1
server/node_modules/.bin/resolve generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../resolve/bin/resolve

1
server/node_modules/.bin/rimraf generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../rimraf/dist/esm/bin.mjs

1
server/node_modules/.bin/rollup generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../rollup/dist/bin/rollup

1
server/node_modules/.bin/semver generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../semver/bin/semver.js

1
server/node_modules/.bin/strapi generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../@strapi/strapi/bin/strapi.js

1
server/node_modules/.bin/terser generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../terser/bin/terser

1
server/node_modules/.bin/tree-kill generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../tree-kill/cli.js

1
server/node_modules/.bin/tsc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../typescript/bin/tsc

1
server/node_modules/.bin/tsserver generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../typescript/bin/tsserver

1
server/node_modules/.bin/uglifyjs generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../uglify-js/bin/uglifyjs

1
server/node_modules/.bin/update-browserslist-db generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../update-browserslist-db/cli.js

1
server/node_modules/.bin/uuid generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../uuid/dist/bin/uuid

1
server/node_modules/.bin/vite generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../vite/bin/vite.js

1
server/node_modules/.bin/webpack generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../webpack/bin/webpack.js

1
server/node_modules/.bin/webpack-bundle-analyzer generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../webpack-bundle-analyzer/lib/bin/analyzer.js

1
server/node_modules/.bin/yalc generated vendored Symbolic link
View File

@@ -0,0 +1 @@
../yalc/src/yalc.js

15218
server/node_modules/.package-lock.json generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,100 @@
import {
pluginId
} from "./chunk-RH4C26B2.js";
import {
ForwardRef$4n
} from "./chunk-WRD5KPDH.js";
import "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/plugin-cloud/dist/admin/components/Initializer.mjs
var import_react = __toESM(require_react(), 1);
var Initializer = ({ setPlugin }) => {
const ref = (0, import_react.useRef)(setPlugin);
(0, import_react.useEffect)(() => {
ref.current(pluginId);
}, []);
return null;
};
// node_modules/@strapi/plugin-cloud/dist/admin/utils/prefixPluginTranslations.mjs
var prefixPluginTranslations = (trad, pluginId2) => {
return Object.keys(trad).reduce((acc, current) => {
acc[`${pluginId2}.${current}`] = trad[current];
return acc;
}, {});
};
// node_modules/@strapi/plugin-cloud/dist/admin/index.mjs
function __variableDynamicImportRuntime1__(path) {
switch (path) {
case "./translations/en.json":
return import("./en.json-LOEYTETI.js");
case "./translations/fr.json":
return import("./fr.json-FH7EDBW7.js");
case "./translations/ru.json":
return import("./ru.json-IV7JABZF.js");
case "./translations/uk.json":
return import("./uk.json-JEGTVCJW.js");
default:
return new Promise(function(resolve, reject) {
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
);
});
}
}
var name = "Deploy";
var index = {
register(app) {
const { backendURL } = window.strapi;
if (backendURL == null ? void 0 : backendURL.includes("localhost")) {
app.addMenuLink({
to: `plugins/${pluginId}`,
icon: ForwardRef$4n,
intlLabel: {
id: `${pluginId}.plugin.name`,
defaultMessage: name
},
Component: async () => {
const { App } = await import("./App-7CUG4FT5.js");
return App;
}
});
const plugin = {
id: pluginId,
initializer: Initializer,
isReady: false,
name
};
app.registerPlugin(plugin);
}
},
async registerTrads(app) {
const { locales } = app;
const importedTrads = await Promise.all(locales.map((locale) => {
return __variableDynamicImportRuntime1__(`./translations/${locale}.json`).then(({ default: data }) => {
return {
data: prefixPluginTranslations(data, pluginId),
locale
};
}).catch(() => {
return {
data: {},
locale
};
});
}));
return Promise.resolve(importedTrads);
}
};
export {
index as default
};
//# sourceMappingURL=@strapi_plugin-cloud_strapi-admin.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/plugin-cloud/admin/src/components/Initializer.tsx", "../../../@strapi/plugin-cloud/admin/src/utils/prefixPluginTranslations.ts", "../../../@strapi/plugin-cloud/admin/src/index.ts"],
"sourcesContent": ["/**\n *\n * Initializer\n *\n */\n\nimport { useEffect, useRef } from 'react';\n\nimport { pluginId } from '../pluginId';\n\ntype InitializerProps = {\n setPlugin: (id: string) => void;\n};\n\nconst Initializer = ({ setPlugin }: InitializerProps) => {\n const ref = useRef(setPlugin);\n\n useEffect(() => {\n ref.current(pluginId);\n }, []);\n\n return null;\n};\n\nexport { Initializer };\n", "type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n", "/* eslint-disable check-file/filename-naming-convention */\n\nimport { Cloud } from '@strapi/icons';\n\nimport { Initializer } from './components/Initializer';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = 'Deploy';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n const { backendURL } = window.strapi;\n\n // Only add the plugin menu link and registering it if the project is on development (localhost).\n if (backendURL?.includes('localhost')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Cloud,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: name,\n },\n Component: async () => {\n const { App } = await import('./pages/App');\n\n return App;\n },\n });\n const plugin = {\n id: pluginId,\n initializer: Initializer,\n isReady: false,\n name,\n };\n\n app.registerPlugin(plugin);\n }\n },\n\n async registerTrads(app: any) {\n const { locales } = app;\n\n const importedTrads = await Promise.all(\n (locales as any[]).map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;AAcA,IAAMA,cAAc,CAAC,EAAEC,UAAS,MAAoB;AAClD,QAAMC,UAAMC,qBAAOF,SAAAA;AAEnBG,8BAAU,MAAA;AACRF,QAAIG,QAAQC,QAAAA;EACd,GAAG,CAAA,CAAE;AAEL,SAAO;AACT;;;ACpBMC,IAAAA,2BAA2B,CAACC,MAAmBC,cAAAA;AAInD,SAAOC,OAAOC,KAAKH,IAAAA,EAAMI,OAAO,CAACC,KAAKC,YAAAA;AACpCD,QAAI,GAAGJ,SAAAA,IAAYK,OAAQ,EAAC,IAAIN,KAAKM,OAAQ;AAC7C,WAAOD;EACT,GAAG,CAAA,CAAC;AACN;;;;;;;;;;;;;;;;;;;;;ACFA,IAAME,OAAO;AAGb,IAAA,QAAe;EACbC,SAASC,KAAQ;AACf,UAAM,EAAEC,WAAU,IAAKC,OAAOC;AAG9B,QAAIF,yCAAYG,SAAS,cAAc;AACrCJ,UAAIK,YAAY;QACdC,IAAI,WAAWC,QAAAA;QACfC,MAAMC;QACNC,WAAW;UACTC,IAAI,GAAGJ,QAAS;UAChBK,gBAAgBd;QAClB;QACAe,WAAW,YAAA;AACT,gBAAM,EAAEC,IAAG,IAAK,MAAM,OAAO,mBAAA;AAE7B,iBAAOA;QACT;MACF,CAAA;AACA,YAAMC,SAAS;QACbJ,IAAIJ;QACJS,aAAaC;QACbC,SAAS;QACTpB;MACF;AAEAE,UAAImB,eAAeJ,MAAAA;IACrB;EACF;EAEA,MAAMK,cAAcpB,KAAQ;AAC1B,UAAM,EAAEqB,QAAO,IAAKrB;AAEpB,UAAMsB,gBAAgB,MAAMC,QAAQC,IAClC,QAAmBC,IAAI,CAACC,WAAAA;AACtB,aAAO,kCAAO,kBAAkBA,MAAO,OAAM,EAC1CC,KAAK,CAAC,EAAEC,SAASC,KAAI,MAAE;AACtB,eAAO;UACLA,MAAMC,yBAAyBD,MAAMtB,QAAAA;UACrCmB;QACF;MACF,CAAA,EACCK,MAAM,MAAA;AACL,eAAO;UACLF,MAAM,CAAA;UACNH;QACF;MACF,CAAA;IACJ,CAAA,CAAA;AAGF,WAAOH,QAAQS,QAAQV,aAAAA;EACzB;AACF;",
"names": ["Initializer", "setPlugin", "ref", "useRef", "useEffect", "current", "pluginId", "prefixPluginTranslations", "trad", "pluginId", "Object", "keys", "reduce", "acc", "current", "name", "register", "app", "backendURL", "window", "strapi", "includes", "addMenuLink", "to", "pluginId", "icon", "Cloud", "intlLabel", "id", "defaultMessage", "Component", "App", "plugin", "initializer", "Initializer", "isReady", "registerPlugin", "registerTrads", "locales", "importedTrads", "Promise", "all", "map", "locale", "then", "default", "data", "prefixPluginTranslations", "catch", "resolve"]
}

View File

@@ -0,0 +1,159 @@
import {
PERMISSIONS,
getTrad,
strapi
} from "./chunk-DJJSG3NG.js";
import "./chunk-PLDDJCW6.js";
// node_modules/@strapi/plugin-users-permissions/dist/admin/utils/prefixPluginTranslations.mjs
var prefixPluginTranslations = (trad, pluginId) => {
return Object.keys(trad).reduce((acc, current) => {
acc[`${pluginId}.${current}`] = trad[current];
return acc;
}, {});
};
// node_modules/@strapi/plugin-users-permissions/dist/admin/index.mjs
function __variableDynamicImportRuntime4__(path) {
switch (path) {
case "./translations/ar.json":
return import("./ar.json-UPUG6CGD.js");
case "./translations/cs.json":
return import("./cs.json-6UZPSKI6.js");
case "./translations/de.json":
return import("./de.json-2J65DPG4.js");
case "./translations/dk.json":
return import("./dk.json-R3KK6HRU.js");
case "./translations/en.json":
return import("./en.json-WJEGISUJ.js");
case "./translations/es.json":
return import("./es.json-HNSRZYML.js");
case "./translations/fr.json":
return import("./fr.json-EAETZVFF.js");
case "./translations/id.json":
return import("./id.json-44M764KQ.js");
case "./translations/it.json":
return import("./it.json-AXAYYBTP.js");
case "./translations/ja.json":
return import("./ja.json-JE5YGLSQ.js");
case "./translations/ko.json":
return import("./ko.json-DQW6EKF7.js");
case "./translations/ms.json":
return import("./ms.json-JFNQVPJW.js");
case "./translations/nl.json":
return import("./nl.json-NC3ALAM6.js");
case "./translations/pl.json":
return import("./pl.json-TR7CEJ7T.js");
case "./translations/pt-BR.json":
return import("./pt-BR.json-SVFSTQD3.js");
case "./translations/pt.json":
return import("./pt.json-G3LQKS26.js");
case "./translations/ru.json":
return import("./ru.json-SUGFRNNG.js");
case "./translations/sk.json":
return import("./sk.json-VLLP2PX6.js");
case "./translations/sv.json":
return import("./sv.json-MUCEN67I.js");
case "./translations/th.json":
return import("./th.json-Z7IVRZDL.js");
case "./translations/tr.json":
return import("./tr.json-MVASP7IY.js");
case "./translations/uk.json":
return import("./uk.json-LKRSQDU7.js");
case "./translations/vi.json":
return import("./vi.json-OW47P7JN.js");
case "./translations/zh-Hans.json":
return import("./zh-Hans.json-2QRDQ6QL.js");
case "./translations/zh.json":
return import("./zh.json-3XQQEU55.js");
default:
return new Promise(function(resolve, reject) {
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
);
});
}
}
var name = strapi.name;
var index = {
register(app) {
app.createSettingSection({
id: "users-permissions",
intlLabel: {
id: getTrad("Settings.section-label"),
defaultMessage: "Users & Permissions plugin"
}
}, [
{
intlLabel: {
id: "global.roles",
defaultMessage: "Roles"
},
id: "roles",
to: `users-permissions/roles`,
Component: () => import("./Roles-ALARUVVU.js"),
permissions: PERMISSIONS.accessRoles
},
{
intlLabel: {
id: getTrad("HeaderNav.link.providers"),
defaultMessage: "Providers"
},
id: "providers",
to: `users-permissions/providers`,
Component: () => import("./Providers-6F2OT3KD.js"),
permissions: PERMISSIONS.readProviders
},
{
intlLabel: {
id: getTrad("HeaderNav.link.emailTemplates"),
defaultMessage: "Email templates"
},
id: "email-templates",
to: `users-permissions/email-templates`,
Component: () => import("./EmailTemplates-3V4J4ZNO.js").then((mod) => ({
default: mod.ProtectedEmailTemplatesPage
})),
permissions: PERMISSIONS.readEmailTemplates
},
{
intlLabel: {
id: getTrad("HeaderNav.link.advancedSettings"),
defaultMessage: "Advanced Settings"
},
id: "advanced-settings",
to: `users-permissions/advanced-settings`,
Component: () => import("./AdvancedSettings-XGUBZOWK.js").then((mod) => ({
default: mod.ProtectedAdvancedSettingsPage
})),
permissions: PERMISSIONS.readAdvancedSettings
}
]);
app.registerPlugin({
id: "users-permissions",
name
});
},
bootstrap() {
},
async registerTrads({ locales }) {
const importedTrads = await Promise.all(locales.map((locale) => {
return __variableDynamicImportRuntime4__(`./translations/${locale}.json`).then(({ default: data }) => {
return {
data: prefixPluginTranslations(data, "users-permissions"),
locale
};
}).catch(() => {
return {
data: {},
locale
};
});
}));
return Promise.resolve(importedTrads);
}
};
export {
index as default
};
//# sourceMappingURL=@strapi_plugin-users-permissions_strapi-admin.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/plugin-users-permissions/admin/src/utils/prefixPluginTranslations.js", "../../../@strapi/plugin-users-permissions/admin/src/index.js"],
"sourcesContent": ["const prefixPluginTranslations = (trad, pluginId) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n }, {});\n};\n\nexport { prefixPluginTranslations };\n", "import { strapi as pkgStrapi } from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport getTrad from './utils/getTrad';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pkgStrapi.name;\n\nexport default {\n register(app) {\n // Create the plugin's settings section\n app.createSettingSection(\n {\n id: 'users-permissions',\n intlLabel: {\n id: getTrad('Settings.section-label'),\n defaultMessage: 'Users & Permissions plugin',\n },\n },\n [\n {\n intlLabel: {\n id: 'global.roles',\n defaultMessage: 'Roles',\n },\n id: 'roles',\n to: `users-permissions/roles`,\n Component: () => import('./pages/Roles'),\n permissions: PERMISSIONS.accessRoles,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.providers'),\n defaultMessage: 'Providers',\n },\n id: 'providers',\n to: `users-permissions/providers`,\n Component: () => import('./pages/Providers'),\n permissions: PERMISSIONS.readProviders,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.emailTemplates'),\n defaultMessage: 'Email templates',\n },\n id: 'email-templates',\n to: `users-permissions/email-templates`,\n Component: () =>\n import('./pages/EmailTemplates').then((mod) => ({\n default: mod.ProtectedEmailTemplatesPage,\n })),\n permissions: PERMISSIONS.readEmailTemplates,\n },\n {\n intlLabel: {\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n },\n id: 'advanced-settings',\n to: `users-permissions/advanced-settings`,\n Component: () =>\n import('./pages/AdvancedSettings').then((mod) => ({\n default: mod.ProtectedAdvancedSettingsPage,\n })),\n permissions: PERMISSIONS.readAdvancedSettings,\n },\n ]\n );\n\n app.registerPlugin({\n id: 'users-permissions',\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'users-permissions'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],
"mappings": ";;;;;;;;AAAMA,IAAAA,2BAA2B,CAACC,MAAMC,aAAAA;AAKtC,SAAOC,OAAOC,KAAKH,IAAAA,EAAMI,OAAO,CAACC,KAAKC,YAAAA;AACpCD,QAAI,GAAGJ,QAAAA,IAAYK,OAAQ,EAAC,IAAIN,KAAKM,OAAQ;AAE7C,WAAOD;EACT,GAAG,CAAA,CAAC;AACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA,IAAME,OAAOC,OAAUD;AAEvB,IAAA,QAAe;EACbE,SAASC,KAAG;AAEVA,QAAIC,qBACF;MACEC,IAAI;MACJC,WAAW;QACTD,IAAIE,QAAQ,wBAAA;QACZC,gBAAgB;MAClB;OAEF;MACE;QACEF,WAAW;UACTD,IAAI;UACJG,gBAAgB;QAClB;QACAH,IAAI;QACJI,IAAI;QACJC,WAAW,MAAM,OAAO,qBAAA;QACxBC,aAAaC,YAAYC;MAC3B;MACA;QACEP,WAAW;UACTD,IAAIE,QAAQ,0BAAA;UACZC,gBAAgB;QAClB;QACAH,IAAI;QACJI,IAAI;QACJC,WAAW,MAAM,OAAO,yBAAA;QACxBC,aAAaC,YAAYE;MAC3B;MACA;QACER,WAAW;UACTD,IAAIE,QAAQ,+BAAA;UACZC,gBAAgB;QAClB;QACAH,IAAI;QACJI,IAAI;QACJC,WAAW,MACT,OAAO,8BAAA,EAA0BK,KAAK,CAACC,SAAS;UAC9CC,SAASD,IAAIE;UACf;QACFP,aAAaC,YAAYO;MAC3B;MACA;QACEb,WAAW;UACTD,IAAIE,QAAQ,iCAAA;UACZC,gBAAgB;QAClB;QACAH,IAAI;QACJI,IAAI;QACJC,WAAW,MACT,OAAO,gCAAA,EAA4BK,KAAK,CAACC,SAAS;UAChDC,SAASD,IAAII;UACf;QACFT,aAAaC,YAAYS;MAC3B;IACD,CAAA;AAGHlB,QAAImB,eAAe;MACjBjB,IAAI;MACJL;IACF,CAAA;EACF;EACAuB,YAAa;EAAA;EACb,MAAMC,cAAc,EAAEC,QAAO,GAAE;AAC7B,UAAMC,gBAAgB,MAAMC,QAAQC,IAClCH,QAAQI,IAAI,CAACC,WAAAA;AACX,aAAO,kCAAO,kBAAkBA,MAAO,OAAM,EAC1Cf,KAAK,CAAC,EAAEE,SAASc,KAAI,MAAE;AACtB,eAAO;UACLA,MAAMC,yBAAyBD,MAAM,mBAAA;UACrCD;QACF;MACF,CAAA,EACCG,MAAM,MAAA;AACL,eAAO;UACLF,MAAM,CAAA;UACND;QACF;MACF,CAAA;IACJ,CAAA,CAAA;AAGF,WAAOH,QAAQO,QAAQR,aAAAA;EACzB;AACF;",
"names": ["prefixPluginTranslations", "trad", "pluginId", "Object", "keys", "reduce", "acc", "current", "name", "pkgStrapi", "register", "app", "createSettingSection", "id", "intlLabel", "getTrad", "defaultMessage", "to", "Component", "permissions", "PERMISSIONS", "accessRoles", "readProviders", "then", "mod", "default", "ProtectedEmailTemplatesPage", "readEmailTemplates", "ProtectedAdvancedSettingsPage", "readAdvancedSettings", "registerPlugin", "bootstrap", "registerTrads", "locales", "importedTrads", "Promise", "all", "map", "locale", "data", "prefixPluginTranslations", "catch", "resolve"]
}

View File

@@ -0,0 +1,225 @@
import {
render
} from "./chunk-AOWI4JYR.js";
import "./chunk-KGPWUC7Q.js";
import "./chunk-FVEHK4NK.js";
import "./chunk-C4NW23D7.js";
import "./chunk-E3IW2VDN.js";
import "./chunk-MN3D3XJI.js";
import "./chunk-C7H2BX76.js";
import "./chunk-U66AL5Y5.js";
import "./chunk-7KYK3FTC.js";
import "./chunk-JF4AI5LV.js";
import "./chunk-ALMC553V.js";
import "./chunk-PDGPTUUZ.js";
import "./chunk-XH2B3RAH.js";
import "./chunk-MLTBQQQV.js";
import {
useDocumentActions,
useDocumentRBAC
} from "./chunk-GXKJFURG.js";
import "./chunk-7FUKGPNR.js";
import "./chunk-NAZM6EA4.js";
import {
useContentManagerContext,
useDocument,
useDocumentLayout
} from "./chunk-UATNJIHQ.js";
import "./chunk-P4VL3IHZ.js";
import "./chunk-HIZVCZYI.js";
import {
AutoReloadOverlayBlockerProvider,
useAutoReloadOverlayBlocker
} from "./chunk-7HX4OIS5.js";
import "./chunk-6LY4MOO2.js";
import "./chunk-SQLDXQZE.js";
import {
DescriptionComponentRenderer,
useInjectReducer
} from "./chunk-QF6GPHA4.js";
import "./chunk-SYWYLB7I.js";
import "./chunk-S3HPKOXW.js";
import "./chunk-JRLAXHTE.js";
import {
Widget
} from "./chunk-E4IFZ6ZT.js";
import "./chunk-XNACAI67.js";
import "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import {
useGuidedTour
} from "./chunk-PFI4R5WA.js";
import "./chunk-G2UWKDMB.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import {
useFetchClient
} from "./chunk-FCIM6RNO.js";
import {
SearchInput
} from "./chunk-J33IXKN4.js";
import {
ConfirmDialog
} from "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-YJEURQPS.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-GGK2TLCV.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import {
BackButton,
useHistory
} from "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useAppInfo,
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import {
ContentBox,
useClipboard
} from "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import {
Filters
} from "./chunk-C75BZXCZ.js";
import {
Pagination
} from "./chunk-APGTER6B.js";
import {
Table,
useTable
} from "./chunk-ZM6TT53G.js";
import {
MemoizedInputRenderer,
useFocusInputField
} from "./chunk-6AXVGFVQ.js";
import {
Blocker,
Form,
getYupValidationErrors,
useField,
useForm
} from "./chunk-BFLP6DBI.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import {
useAdminUsers
} from "./chunk-IGCTEXRF.js";
import {
Layouts,
useElementOnScreen
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import {
useAuth,
useQueryParams,
useStrapiApp
} from "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import {
FetchError,
adminApi,
fetchBaseQuery,
getFetchClient,
isBaseQueryError,
isFetchError
} from "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import {
createContext
} from "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
NotificationsProvider,
useNotification
} from "./chunk-N55RVBRV.js";
import "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import "./chunk-PLDDJCW6.js";
export {
BackButton,
Blocker,
ConfirmDialog,
ContentBox,
DescriptionComponentRenderer,
FetchError,
Filters,
Form,
MemoizedInputRenderer as InputRenderer,
Layouts,
NotificationsProvider,
Page,
Pagination,
SearchInput,
Table,
Widget,
adminApi,
createContext,
fetchBaseQuery,
getFetchClient,
getYupValidationErrors,
isBaseQueryError,
isFetchError,
AutoReloadOverlayBlockerProvider as private_AutoReloadOverlayBlockerProvider,
useAutoReloadOverlayBlocker as private_useAutoReloadOverlayBlocker,
render as renderAdmin,
errorsTrads as translatedErrors,
useContentManagerContext as unstable_useContentManagerContext,
useDocument as unstable_useDocument,
useDocumentActions as unstable_useDocumentActions,
useDocumentLayout as unstable_useDocumentLayout,
useAPIErrorHandler,
useAdminUsers,
useAppInfo,
useAuth,
useClipboard,
useDocumentRBAC,
useElementOnScreen,
useFetchClient,
useField,
useFocusInputField,
useForm,
useGuidedTour,
useHistory,
useInjectReducer,
useNotification,
useQueryParams,
useRBAC,
useStrapiApp,
useTable,
useTracking
};
//# sourceMappingURL=@strapi_strapi_admin.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@@ -0,0 +1,138 @@
import {
selectAdminPermissions
} from "./chunk-6HMBNYS4.js";
import {
useLicenseLimits
} from "./chunk-G2UWKDMB.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import {
useSelector
} from "./chunk-WOQNBAGN.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
Flex,
Grid,
Link,
TooltipImpl,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$3,
ForwardRef$3F
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var BILLING_SELF_HOSTED_URL = "https://strapi.io/billing/request-seats";
var MANAGE_SEATS_URL = "https://strapi.io/billing/manage-seats";
var AdminSeatInfoEE = () => {
const { formatMessage } = useIntl();
const { settings } = useSelector(selectAdminPermissions);
const { isLoading: isRBACLoading, allowedActions: { canRead, canCreate, canUpdate, canDelete } } = useRBAC((settings == null ? void 0 : settings.users) ?? {});
const { license, isError, isLoading: isLicenseLoading } = useLicenseLimits({
// TODO: this creates a waterfall which we should avoid to render earlier, but for that
// we will have to move away from data-fetching hooks to query functions.
// Short-term we could at least implement a loader, for the user to have visual feedback
// in case the requests take a while
enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete
});
const isLoading = isRBACLoading || isLicenseLoading;
if (isError || isLoading || !license) {
return null;
}
const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;
if (!permittedSeats) {
return null;
}
return (0, import_jsx_runtime.jsxs)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: [
(0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "Settings.application.admin-seats",
defaultMessage: "Admin seats"
})
}),
(0, import_jsx_runtime.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime.jsx)(Flex, {
children: (0, import_jsx_runtime.jsx)(Typography, {
tag: "p",
children: formatMessage({
id: "Settings.application.ee.admin-seats.count",
defaultMessage: "<text>{enforcementUserCount}</text>/{permittedSeats}"
}, {
permittedSeats,
enforcementUserCount,
text: (chunks) => (0, import_jsx_runtime.jsx)(Typography, {
fontWeight: "semiBold",
textColor: enforcementUserCount > permittedSeats ? "danger500" : void 0,
children: chunks
})
})
})
}),
licenseLimitStatus === "OVER_LIMIT" && (0, import_jsx_runtime.jsx)(TooltipImpl, {
label: formatMessage({
id: "Settings.application.ee.admin-seats.at-limit-tooltip",
defaultMessage: "At limit: add seats to invite more users"
}),
children: (0, import_jsx_runtime.jsx)(ForwardRef$3, {
width: "1.4rem",
height: "1.4rem",
fill: "danger500"
})
})
]
}),
type === "gold" ? (0, import_jsx_runtime.jsx)(Link, {
href: BILLING_SELF_HOSTED_URL,
endIcon: (0, import_jsx_runtime.jsx)(ForwardRef$3F, {}),
children: formatMessage({
id: "Settings.application.ee.admin-seats.support",
defaultMessage: "Contact sales"
})
}) : (0, import_jsx_runtime.jsx)(Link, {
href: MANAGE_SEATS_URL,
isExternal: true,
endIcon: (0, import_jsx_runtime.jsx)(ForwardRef$3F, {}),
children: formatMessage({
id: "Settings.application.ee.admin-seats.add-seats",
defaultMessage: "Manage seats"
})
})
]
});
};
export {
AdminSeatInfoEE
};
//# sourceMappingURL=AdminSeatInfo-6OY4OYIE.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],
"sourcesContent": ["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks) =>\n (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ) as any,\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SEATS_URL} isExternal endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage seats',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,0BAA0B;AAChC,IAAMC,mBAAmB;IAEZC,kBAAkB,MAAA;AAC7B,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAC1B,QAAM,EAAEC,SAAQ,IAAKC,YAAYC,sBAAAA;AACjC,QAAM,EACJC,WAAWC,eACXC,gBAAgB,EAAEC,SAASC,WAAWC,WAAWC,UAAS,EAAE,IAC1DC,SAAQV,qCAAUW,UAAS,CAAA,CAAC;AAChC,QAAM,EACJC,SACAC,SACAV,WAAWW,iBAAgB,IACzBC,iBAAiB;;;;;IAKnBC,SAAS,CAACZ,iBAAiBE,WAAWC,aAAaC,aAAaC;EAClE,CAAA;AAEA,QAAMN,YAAYC,iBAAiBU;AAEnC,MAAID,WAAWV,aAAa,CAACS,SAAS;AACpC,WAAO;EACT;AAEA,QAAM,EAAEK,oBAAoBC,sBAAsBC,gBAAgBC,KAAI,IAAKR;AAE3E,MAAI,CAACO,gBAAgB;AACnB,WAAO;EACT;AAEA,aACEE,yBAACC,KAAKC,MAAI;IAACC,KAAK;IAAGC,GAAG;IAAIC,WAAU;IAASC,YAAW;;UACtDC,wBAACC,YAAAA;QAAWC,SAAQ;QAAQC,WAAU;kBACnCjC,cAAc;UACbkC,IAAI;UACJC,gBAAgB;QAClB,CAAA;;UAEFZ,yBAACa,MAAAA;QAAKC,KAAK;;cACTP,wBAACM,MAAAA;YACC,cAAAN,wBAACC,YAAAA;cAAWO,KAAI;wBACbtC,cACC;gBACEkC,IAAI;gBACJC,gBAAgB;iBAElB;gBACEd;gBACAD;gBACAmB,MAAM,CAACC,eAEHV,wBAACC,YAAAA;kBACCU,YAAW;kBACXR,WAAWb,uBAAuBC,iBAAiB,cAAcqB;kBAEhEF,UAAAA;;cAGT,CAAA;;;UAILrB,uBAAuB,oBACtBW,wBAACa,aAAAA;YACCC,OAAO5C,cAAc;cACnBkC,IAAI;cACJC,gBAAgB;YAClB,CAAA;YAEA,cAAAL,wBAACe,cAAAA;cAAcC,OAAM;cAASC,QAAO;cAASC,MAAK;;;;;MAIxD1B,SAAS,aACRQ,wBAACmB,MAAAA;QAAKC,MAAMrD;QAAyBsD,aAASrB,wBAACsB,eAAAA,CAAAA,CAAAA;kBAC5CpD,cAAc;UACbkC,IAAI;UACJC,gBAAgB;QAClB,CAAA;eAGFL,wBAACmB,MAAAA;QAAKC,MAAMpD;QAAkBuD,YAAU;QAACF,aAASrB,wBAACsB,eAAAA,CAAAA,CAAAA;kBAChDpD,cAAc;UACbkC,IAAI;UACJC,gBAAgB;QAClB,CAAA;;;;AAKV;",
"names": ["BILLING_SELF_HOSTED_URL", "MANAGE_SEATS_URL", "AdminSeatInfoEE", "formatMessage", "useIntl", "settings", "useSelector", "selectAdminPermissions", "isLoading", "isRBACLoading", "allowedActions", "canRead", "canCreate", "canUpdate", "canDelete", "useRBAC", "users", "license", "isError", "isLicenseLoading", "useLicenseLimits", "enabled", "licenseLimitStatus", "enforcementUserCount", "permittedSeats", "type", "_jsxs", "Grid", "Item", "col", "s", "direction", "alignItems", "_jsx", "Typography", "variant", "textColor", "id", "defaultMessage", "Flex", "gap", "tag", "text", "chunks", "fontWeight", "undefined", "Tooltip", "label", "WarningCircle", "width", "height", "fill", "Link", "href", "endIcon", "ExternalLink", "isExternal"]
}

View File

@@ -0,0 +1,419 @@
import "./chunk-AOWI4JYR.js";
import "./chunk-KGPWUC7Q.js";
import "./chunk-FVEHK4NK.js";
import "./chunk-C4NW23D7.js";
import "./chunk-E3IW2VDN.js";
import "./chunk-MN3D3XJI.js";
import "./chunk-C7H2BX76.js";
import "./chunk-U66AL5Y5.js";
import "./chunk-7KYK3FTC.js";
import "./chunk-JF4AI5LV.js";
import "./chunk-ALMC553V.js";
import "./chunk-PDGPTUUZ.js";
import "./chunk-XH2B3RAH.js";
import "./chunk-MLTBQQQV.js";
import "./chunk-GXKJFURG.js";
import "./chunk-7FUKGPNR.js";
import "./chunk-NAZM6EA4.js";
import "./chunk-UATNJIHQ.js";
import "./chunk-P4VL3IHZ.js";
import "./chunk-HIZVCZYI.js";
import "./chunk-7HX4OIS5.js";
import "./chunk-6LY4MOO2.js";
import "./chunk-SQLDXQZE.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-SYWYLB7I.js";
import "./chunk-S3HPKOXW.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-XNACAI67.js";
import {
useMutation,
useQuery,
useQueryClient
} from "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-G2UWKDMB.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import {
useFetchClient
} from "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import {
require_isEmpty
} from "./chunk-YJEURQPS.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-GGK2TLCV.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create2 as create,
create4 as create2,
create6 as create3
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import {
MemoizedInputRenderer
} from "./chunk-6AXVGFVQ.js";
import {
Form
} from "./chunk-BFLP6DBI.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Button,
Flex,
Grid,
Typography,
useIntl,
useNotifyAT
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$4F
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
PERMISSIONS,
getTrad
} from "./chunk-DJJSG3NG.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/AdvancedSettings/index.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var import_react = __toESM(require_react(), 1);
var import_isEmpty2 = __toESM(require_isEmpty(), 1);
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/AdvancedSettings/utils/layout.mjs
var import_isEmpty = __toESM(require_isEmpty(), 1);
var layout = [
{
label: {
id: getTrad("EditForm.inputToggle.label.email"),
defaultMessage: "One account per email address"
},
hint: {
id: getTrad("EditForm.inputToggle.description.email"),
defaultMessage: "Disallow the user to create multiple accounts using the same email address with different authentication providers."
},
name: "unique_email",
type: "boolean",
size: 12
},
{
label: {
id: getTrad("EditForm.inputToggle.label.sign-up"),
defaultMessage: "Enable sign-ups"
},
hint: {
id: getTrad("EditForm.inputToggle.description.sign-up"),
defaultMessage: "When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."
},
name: "allow_register",
type: "boolean",
size: 12
},
{
label: {
id: getTrad("EditForm.inputToggle.label.email-reset-password"),
defaultMessage: "Reset password page"
},
hint: {
id: getTrad("EditForm.inputToggle.description.email-reset-password"),
defaultMessage: "URL of your application's reset password page."
},
placeholder: {
id: getTrad("EditForm.inputToggle.placeholder.email-reset-password"),
defaultMessage: "ex: https://youtfrontend.com/reset-password"
},
name: "email_reset_password",
type: "string",
size: 12
},
{
label: {
id: getTrad("EditForm.inputToggle.label.email-confirmation"),
defaultMessage: "Enable email confirmation"
},
hint: {
id: getTrad("EditForm.inputToggle.description.email-confirmation"),
defaultMessage: "When enabled (ON), new registered users receive a confirmation email."
},
name: "email_confirmation",
type: "boolean",
size: 12
},
{
label: {
id: getTrad("EditForm.inputToggle.label.email-confirmation-redirection"),
defaultMessage: "Redirection url"
},
hint: {
id: getTrad("EditForm.inputToggle.description.email-confirmation-redirection"),
defaultMessage: "After you confirmed your email, choose where you will be redirected."
},
placeholder: {
id: getTrad("EditForm.inputToggle.placeholder.email-confirmation-redirection"),
defaultMessage: "ex: https://youtfrontend.com/email-confirmation"
},
name: "email_confirmation_redirection",
type: "string",
size: 12
}
];
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/AdvancedSettings/utils/schema.mjs
var URL_REGEX = new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");
var schema = create3().shape({
email_confirmation_redirection: create().when("email_confirmation", {
is: true,
then: create2().matches(URL_REGEX).required(),
otherwise: create2().nullable()
}),
email_reset_password: create2(errorsTrads.string).matches(URL_REGEX, {
id: errorsTrads.regex.id,
defaultMessage: "This is not a valid URL"
}).nullable()
});
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/AdvancedSettings/index.mjs
var ProtectedAdvancedSettingsPage = () => (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions: PERMISSIONS.readAdvancedSettings,
children: (0, import_jsx_runtime.jsx)(AdvancedSettingsPage, {})
});
var AdvancedSettingsPage = () => {
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const { notifyStatus } = useNotifyAT();
const queryClient = useQueryClient();
const { get, put } = useFetchClient();
const { formatAPIError } = useAPIErrorHandler();
const { isLoading: isLoadingForPermissions, allowedActions: { canUpdate } } = useRBAC({
update: PERMISSIONS.updateAdvancedSettings
});
const { isLoading: isLoadingData, data } = useQuery([
"users-permissions",
"advanced"
], async () => {
const { data: data2 } = await get("/users-permissions/advanced");
return data2;
}, {
onSuccess() {
notifyStatus(formatMessage({
id: getTrad("Form.advancedSettings.data.loaded"),
defaultMessage: "Advanced settings data has been loaded"
}));
},
onError() {
toggleNotification({
type: "danger",
message: formatMessage({
id: getTrad("notification.error"),
defaultMessage: "An error occured"
})
});
}
});
const isLoading = isLoadingForPermissions || isLoadingData;
const submitMutation = useMutation((body) => put("/users-permissions/advanced", body), {
async onSuccess() {
await queryClient.invalidateQueries([
"users-permissions",
"advanced"
]);
toggleNotification({
type: "success",
message: formatMessage({
id: getTrad("notification.success.saved"),
defaultMessage: "Saved"
})
});
},
onError(error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
},
refetchActive: true
});
const { isLoading: isSubmittingForm } = submitMutation;
const handleSubmit = async (body) => {
submitMutation.mutate({
...body,
email_confirmation_redirection: body.email_confirmation ? body.email_confirmation_redirection : ""
});
};
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime.jsxs)(Page.Main, {
"aria-busy": isSubmittingForm,
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: formatMessage({
id: getTrad("HeaderNav.link.advancedSettings"),
defaultMessage: "Advanced Settings"
})
})
}),
(0, import_jsx_runtime.jsx)(Form, {
onSubmit: handleSubmit,
initialValues: data.settings,
validationSchema: schema,
children: ({ values, isSubmitting, modified }) => {
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: getTrad("HeaderNav.link.advancedSettings"),
defaultMessage: "Advanced Settings"
}),
primaryAction: (0, import_jsx_runtime.jsx)(Button, {
loading: isSubmitting,
type: "submit",
disabled: !modified || !canUpdate,
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$4F, {}),
size: "S",
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime.jsx)(Box, {
background: "neutral0",
hasRadius: true,
shadow: "filterShadow",
paddingTop: 6,
paddingBottom: 6,
paddingLeft: 7,
paddingRight: 7,
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
(0, import_jsx_runtime.jsx)(Typography, {
variant: "delta",
tag: "h2",
children: formatMessage({
id: "global.settings",
defaultMessage: "Settings"
})
}),
(0, import_jsx_runtime.jsx)(Grid.Root, {
gap: 6,
children: [
{
label: {
id: getTrad("EditForm.inputSelect.label.role"),
defaultMessage: "Default role for authenticated users"
},
hint: {
id: getTrad("EditForm.inputSelect.description.role"),
defaultMessage: "It will attach the new authenticated user to the selected role."
},
options: data.roles.map((role) => ({
label: role.name,
value: role.type
})),
name: "default_role",
size: 6,
type: "enumeration"
},
...layout
].map(({ size, ...field }) => (0, import_jsx_runtime.jsx)(Grid.Item, {
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsx)(MemoizedInputRenderer, {
...field,
disabled: field.name === "email_confirmation_redirection" && values.email_confirmation === false,
label: formatMessage(field.label),
hint: field.hint ? formatMessage(field.hint) : void 0,
placeholder: field.placeholder ? formatMessage(field.placeholder) : void 0
})
}, field.name))
})
]
})
})
})
]
});
}
})
]
});
};
export {
AdvancedSettingsPage,
ProtectedAdvancedSettingsPage
};
//# sourceMappingURL=AdvancedSettings-XGUBZOWK.js.map

File diff suppressed because one or more lines are too long

656
server/node_modules/.strapi/vite/deps/App-7CUG4FT5.js generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

11161
server/node_modules/.strapi/vite/deps/App-H27Y6V6P.js generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1170
server/node_modules/.strapi/vite/deps/App-SVHNQJEN.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

2003
server/node_modules/.strapi/vite/deps/App-XU5HKBHI.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,982 @@
import {
selectAdminPermissions
} from "./chunk-6HMBNYS4.js";
import {
useEnterprise
} from "./chunk-W6ICJ5TB.js";
import {
useConfiguration
} from "./chunk-ERK7O2GM.js";
import {
AxiosError,
axios_default,
useAppInfo,
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import {
useSelector
} from "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import {
$c512c27ab02ef895$export$fd42f52fd3ae1109,
Box,
Button,
Card,
CardAsset,
CardBadge,
CardBody,
CardContent,
CardHeader,
CardSubtitle,
CardTitle,
CarouselActions,
CarouselInput,
CarouselSlide,
Field,
Flex,
Grid,
IconButton,
Link,
Modal,
Tabs,
TextInput,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1f,
ForwardRef$1h,
ForwardRef$3F,
ForwardRef$4F,
ForwardRef$5n
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import {
dt
} from "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var React2 = __toESM(require_react(), 1);
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.mjs
var DIMENSION = 750;
var SIZE = 100;
var ACCEPTED_FORMAT = [
"image/jpeg",
"image/png",
"image/svg+xml"
];
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs
var FILE_FORMAT_ERROR_MESSAGE = {
id: "Settings.application.customization.modal.upload.error-format",
defaultMessage: "Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."
};
var FILE_SIZING_ERROR_MESSAGE = {
id: "Settings.application.customization.modal.upload.error-size",
defaultMessage: "The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)"
};
var parseFileMetadatas = async (file) => {
const isFormatAuthorized = ACCEPTED_FORMAT.includes(file.type);
if (!isFormatAuthorized) {
throw new ParsingFileError("File format", FILE_FORMAT_ERROR_MESSAGE);
}
const fileDimensions = await new Promise((resolve) => {
const reader = new FileReader();
reader.onload = () => {
const img = new Image();
img.onload = () => {
resolve({
width: img.width,
height: img.height
});
};
img.src = reader.result;
};
reader.readAsDataURL(file);
});
const areDimensionsAuthorized = fileDimensions.width <= DIMENSION && fileDimensions.height <= DIMENSION;
if (!areDimensionsAuthorized) {
throw new ParsingFileError("File sizing", FILE_SIZING_ERROR_MESSAGE);
}
const asset = {
ext: file.name.split(".").pop(),
size: file.size / 1e3,
name: file.name,
url: URL.createObjectURL(file),
rawFile: file,
width: fileDimensions.width,
height: fileDimensions.height
};
const isSizeAuthorized = asset.size <= SIZE;
if (!isSizeAuthorized) {
throw new ParsingFileError("File sizing", FILE_SIZING_ERROR_MESSAGE);
}
return asset;
};
var ParsingFileError = class extends Error {
constructor(message, displayMessage, options) {
super(message, options);
this.displayMessage = displayMessage;
}
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs
var [LogoInputContextProvider, useLogoInputContext] = $c512c27ab02ef895$export$fd42f52fd3ae1109("LogoInput");
var LogoInput = ({ canUpdate, customLogo, defaultLogo, hint, label, onChangeLogo }) => {
const [localImage, setLocalImage] = React.useState();
const [currentStep, setCurrentStep] = React.useState();
const { formatMessage } = useIntl();
const handleClose = () => {
setLocalImage(void 0);
setCurrentStep(void 0);
};
return (0, import_jsx_runtime.jsx)(Modal.Root, {
open: !!currentStep,
onOpenChange: (state) => {
if (state === false) {
handleClose();
}
},
children: (0, import_jsx_runtime.jsxs)(LogoInputContextProvider, {
setLocalImage,
localImage,
goToStep: setCurrentStep,
onClose: handleClose,
children: [
(0, import_jsx_runtime.jsx)(CarouselInput, {
label,
selectedSlide: 0,
hint,
// Carousel is used here for a single media,
// we don't need previous and next labels but these props are required
previousLabel: "",
nextLabel: "",
onNext: () => {
},
onPrevious: () => {
},
secondaryLabel: (customLogo == null ? void 0 : customLogo.name) || "logo.png",
actions: (0, import_jsx_runtime.jsxs)(CarouselActions, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Trigger, {
children: (0, import_jsx_runtime.jsx)(IconButton, {
disabled: !canUpdate,
onClick: () => setCurrentStep("upload"),
label: formatMessage({
id: "Settings.application.customization.carousel.change-action",
defaultMessage: "Change logo"
}),
children: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {})
})
}),
(customLogo == null ? void 0 : customLogo.url) && (0, import_jsx_runtime.jsx)(IconButton, {
disabled: !canUpdate,
onClick: () => onChangeLogo(null),
label: formatMessage({
id: "Settings.application.customization.carousel.reset-action",
defaultMessage: "Reset logo"
}),
children: (0, import_jsx_runtime.jsx)(ForwardRef$5n, {})
})
]
}),
children: (0, import_jsx_runtime.jsx)(CarouselSlide, {
label: formatMessage({
id: "Settings.application.customization.carousel-slide.label",
defaultMessage: "Logo slide"
}),
children: (0, import_jsx_runtime.jsx)(Box, {
maxHeight: "40%",
maxWidth: "40%",
tag: "img",
src: (customLogo == null ? void 0 : customLogo.url) || defaultLogo,
alt: formatMessage({
id: "Settings.application.customization.carousel.title",
defaultMessage: "Logo"
})
})
})
}),
(0, import_jsx_runtime.jsxs)(Modal.Content, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Header, {
children: (0, import_jsx_runtime.jsx)(Modal.Title, {
children: formatMessage(currentStep === "upload" ? {
id: "Settings.application.customization.modal.upload",
defaultMessage: "Upload logo"
} : {
id: "Settings.application.customization.modal.pending",
defaultMessage: "Pending logo"
})
})
}),
currentStep === "upload" ? (0, import_jsx_runtime.jsx)(AddLogoDialog, {}) : (0, import_jsx_runtime.jsx)(PendingLogoDialog, {
onChangeLogo
})
]
})
]
})
});
};
var AddLogoDialog = () => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsxs)(Tabs.Root, {
variant: "simple",
defaultValue: "computer",
children: [
(0, import_jsx_runtime.jsx)(Box, {
paddingLeft: 8,
paddingRight: 8,
children: (0, import_jsx_runtime.jsxs)(Tabs.List, {
"aria-label": formatMessage({
id: "Settings.application.customization.modal.tab.label",
defaultMessage: "How do you want to upload your assets?"
}),
children: [
(0, import_jsx_runtime.jsx)(Tabs.Trigger, {
value: "computer",
children: formatMessage({
id: "Settings.application.customization.modal.upload.from-computer",
defaultMessage: "From computer"
})
}),
(0, import_jsx_runtime.jsx)(Tabs.Trigger, {
value: "url",
children: formatMessage({
id: "Settings.application.customization.modal.upload.from-url",
defaultMessage: "From url"
})
})
]
})
}),
(0, import_jsx_runtime.jsx)(Tabs.Content, {
value: "computer",
children: (0, import_jsx_runtime.jsx)(ComputerForm, {})
}),
(0, import_jsx_runtime.jsx)(Tabs.Content, {
value: "url",
children: (0, import_jsx_runtime.jsx)(URLForm, {})
})
]
});
};
var URLForm = () => {
const { formatMessage } = useIntl();
const [logoUrl, setLogoUrl] = React.useState("");
const [error, setError] = React.useState();
const { setLocalImage, goToStep, onClose } = useLogoInputContext("URLForm");
const handleChange = (e) => {
setLogoUrl(e.target.value);
};
const handleSubmit = async (event) => {
event.preventDefault();
const data = new FormData(event.target);
const url = data.get("logo-url");
if (!url) {
return;
}
try {
const res = await axios_default.get(url.toString(), {
responseType: "blob",
timeout: 8e3
});
const file = new File([
res.data
], res.config.url ?? "", {
type: res.headers["content-type"]
});
const asset = await parseFileMetadatas(file);
setLocalImage(asset);
goToStep("pending");
} catch (err) {
if (err instanceof AxiosError) {
setError(formatMessage({
id: "Settings.application.customization.modal.upload.error-network",
defaultMessage: "Network error"
}));
} else if (err instanceof ParsingFileError) {
setError(formatMessage(err.displayMessage, {
size: SIZE,
dimension: DIMENSION
}));
} else {
throw err;
}
}
};
return (0, import_jsx_runtime.jsxs)("form", {
onSubmit: handleSubmit,
children: [
(0, import_jsx_runtime.jsx)(Box, {
paddingLeft: 8,
paddingRight: 8,
paddingTop: 6,
paddingBottom: 6,
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
error,
name: "logo-url",
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "Settings.application.customization.modal.upload.from-url.input-label",
defaultMessage: "URL"
})
}),
(0, import_jsx_runtime.jsx)(TextInput, {
onChange: handleChange,
value: logoUrl
}),
(0, import_jsx_runtime.jsx)(Field.Error, {})
]
})
}),
(0, import_jsx_runtime.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime.jsx)(Button, {
onClick: onClose,
variant: "tertiary",
children: formatMessage({
id: "app.components.Button.cancel",
defaultMessage: "Cancel"
})
}),
(0, import_jsx_runtime.jsx)(Button, {
type: "submit",
children: formatMessage({
id: "Settings.application.customization.modal.upload.next",
defaultMessage: "Next"
})
})
]
})
]
});
};
var ComputerForm = () => {
const { formatMessage } = useIntl();
const [dragOver, setDragOver] = React.useState(false);
const [fileError, setFileError] = React.useState();
const inputRef = React.useRef(null);
const id = React.useId();
const { setLocalImage, goToStep, onClose } = useLogoInputContext("ComputerForm");
const handleDragEnter = () => {
setDragOver(true);
};
const handleDragLeave = () => {
setDragOver(false);
};
const handleClick = (e) => {
e.preventDefault();
inputRef.current.click();
};
const handleChange = async () => {
handleDragLeave();
if (!inputRef.current.files) {
return;
}
const [file] = inputRef.current.files;
try {
const asset = await parseFileMetadatas(file);
setLocalImage(asset);
goToStep("pending");
} catch (err) {
if (err instanceof ParsingFileError) {
setFileError(formatMessage(err.displayMessage, {
size: SIZE,
dimension: DIMENSION
}));
inputRef.current.focus();
} else {
throw err;
}
}
};
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)("form", {
children: (0, import_jsx_runtime.jsx)(Box, {
paddingLeft: 8,
paddingRight: 8,
paddingTop: 6,
paddingBottom: 6,
children: (0, import_jsx_runtime.jsx)(Field.Root, {
name: id,
error: fileError,
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 2,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
paddingTop: 9,
paddingBottom: 7,
hasRadius: true,
justifyContent: "center",
direction: "column",
background: dragOver ? "primary100" : "neutral100",
borderColor: dragOver ? "primary500" : fileError ? "danger600" : "neutral300",
borderStyle: "dashed",
borderWidth: "1px",
position: "relative",
onDragEnter: handleDragEnter,
onDragLeave: handleDragLeave,
children: [
(0, import_jsx_runtime.jsx)(ForwardRef$1f, {
fill: "primary600",
width: "6rem",
height: "6rem",
"aria-hidden": true
}),
(0, import_jsx_runtime.jsx)(Box, {
paddingTop: 3,
paddingBottom: 5,
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "delta",
tag: "label",
htmlFor: id,
children: formatMessage({
id: "Settings.application.customization.modal.upload.drag-drop",
defaultMessage: "Drag and Drop here or"
})
})
}),
(0, import_jsx_runtime.jsx)(Box, {
position: "relative",
children: (0, import_jsx_runtime.jsx)(FileInput, {
accept: ACCEPTED_FORMAT.join(", "),
type: "file",
name: "files",
tabIndex: -1,
onChange: handleChange,
ref: inputRef,
id
})
}),
(0, import_jsx_runtime.jsx)(Button, {
type: "button",
onClick: handleClick,
children: formatMessage({
id: "Settings.application.customization.modal.upload.cta.browse",
defaultMessage: "Browse files"
})
}),
(0, import_jsx_runtime.jsx)(Box, {
paddingTop: 6,
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage({
id: "Settings.application.customization.modal.upload.file-validation",
defaultMessage: "Max dimension: {dimension}x{dimension}, Max size: {size}KB"
}, {
size: SIZE,
dimension: DIMENSION
})
})
})
]
}),
(0, import_jsx_runtime.jsx)(Field.Error, {})
]
})
})
})
}),
(0, import_jsx_runtime.jsx)(Modal.Footer, {
children: (0, import_jsx_runtime.jsx)(Button, {
onClick: onClose,
variant: "tertiary",
children: formatMessage({
id: "app.components.Button.cancel",
defaultMessage: "Cancel"
})
})
})
]
});
};
var FileInput = dt(Field.Input)`
opacity: 0;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 1;
`;
var PendingLogoDialog = ({ onChangeLogo }) => {
const { formatMessage } = useIntl();
const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext("PendingLogoDialog");
const handleGoBack = () => {
setLocalImage(void 0);
goToStep("upload");
};
const handleUpload = () => {
if (localImage) {
onChangeLogo(localImage);
}
onClose();
};
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Body, {
children: (0, import_jsx_runtime.jsxs)(Box, {
paddingLeft: 8,
paddingRight: 8,
paddingTop: 6,
paddingBottom: 6,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
justifyContent: "space-between",
paddingBottom: 6,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "flex-start",
children: [
(0, import_jsx_runtime.jsx)(Typography, {
variant: "pi",
fontWeight: "bold",
children: formatMessage({
id: "Settings.application.customization.modal.pending.title",
defaultMessage: "Logo ready to upload"
})
}),
(0, import_jsx_runtime.jsx)(Typography, {
variant: "pi",
textColor: "neutral500",
children: formatMessage({
id: "Settings.application.customization.modal.pending.subtitle",
defaultMessage: "Manage the chosen logo before uploading it"
})
})
]
}),
(0, import_jsx_runtime.jsx)(Button, {
onClick: handleGoBack,
variant: "secondary",
children: formatMessage({
id: "Settings.application.customization.modal.pending.choose-another",
defaultMessage: "Choose another logo"
})
})
]
}),
(0, import_jsx_runtime.jsx)(Box, {
maxWidth: `18rem`,
children: (localImage == null ? void 0 : localImage.url) ? (0, import_jsx_runtime.jsx)(ImageCardAsset, {
asset: localImage
}) : null
})
]
})
}),
(0, import_jsx_runtime.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Close, {
children: (0, import_jsx_runtime.jsx)(Button, {
onClick: onClose,
variant: "tertiary",
children: formatMessage({
id: "Settings.application.customization.modal.cancel",
defaultMessage: "Cancel"
})
})
}),
(0, import_jsx_runtime.jsx)(Button, {
onClick: handleUpload,
children: formatMessage({
id: "Settings.application.customization.modal.pending.upload",
defaultMessage: "Upload logo"
})
})
]
})
]
});
};
var ImageCardAsset = ({ asset }) => {
var _a;
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsxs)(Card, {
children: [
(0, import_jsx_runtime.jsx)(CardHeader, {
children: (0, import_jsx_runtime.jsx)(CardAsset, {
size: "S",
src: asset.url
})
}),
(0, import_jsx_runtime.jsxs)(CardBody, {
children: [
(0, import_jsx_runtime.jsxs)(CardContent, {
children: [
(0, import_jsx_runtime.jsx)(CardTitle, {
children: asset.name
}),
(0, import_jsx_runtime.jsx)(CardSubtitle, {
children: `${(_a = asset.ext) == null ? void 0 : _a.toUpperCase()} - ${asset.width}${asset.height}`
})
]
}),
(0, import_jsx_runtime.jsx)(CardBadge, {
children: formatMessage({
id: "Settings.application.customization.modal.pending.card-badge",
defaultMessage: "image"
})
})
]
})
]
});
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs
var AdminSeatInfoCE = () => null;
var ApplicationInfoPage = () => {
const { trackUsage } = useTracking();
const { formatMessage } = useIntl();
const { logos: serverLogos, updateProjectSettings } = useConfiguration("ApplicationInfoPage");
const [logos, setLogos] = React2.useState({
menu: serverLogos.menu,
auth: serverLogos.auth
});
const { settings } = useSelector(selectAdminPermissions);
const communityEdition = useAppInfo("ApplicationInfoPage", (state) => state.communityEdition);
const latestStrapiReleaseTag = useAppInfo("ApplicationInfoPage", (state) => state.latestStrapiReleaseTag);
const nodeVersion = useAppInfo("ApplicationInfoPage", (state) => state.nodeVersion);
const shouldUpdateStrapi = useAppInfo("ApplicationInfoPage", (state) => state.shouldUpdateStrapi);
const strapiVersion = useAppInfo("ApplicationInfoPage", (state) => state.strapiVersion);
const AdminSeatInfo = useEnterprise(AdminSeatInfoCE, async () => (await import("./AdminSeatInfo-6OY4OYIE.js")).AdminSeatInfoEE);
const { allowedActions: { canRead, canUpdate } } = useRBAC(settings ? settings["project-settings"] : {});
const handleSubmit = (e) => {
e.preventDefault();
updateProjectSettings({
authLogo: logos.auth.custom ?? null,
menuLogo: logos.menu.custom ?? null
});
};
const handleChangeLogo = (logo) => (newLogo) => {
if (newLogo === null) {
trackUsage("didClickResetLogo", {
logo
});
}
setLogos((prev) => ({
...prev,
[logo]: {
...prev[logo],
custom: newLogo
}
}));
};
React2.useEffect(() => {
setLogos({
menu: serverLogos.menu,
auth: serverLogos.auth
});
}, [
serverLogos
]);
if (!AdminSeatInfo) {
return null;
}
const isSaveDisabled = logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;
return (0, import_jsx_runtime2.jsxs)(Layouts.Root, {
children: [
(0, import_jsx_runtime2.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: formatMessage({
id: "Settings.application.header",
defaultMessage: "Application"
})
})
}),
(0, import_jsx_runtime2.jsx)(Page.Main, {
children: (0, import_jsx_runtime2.jsxs)("form", {
onSubmit: handleSubmit,
children: [
(0, import_jsx_runtime2.jsx)(Layouts.Header, {
title: formatMessage({
id: "Settings.application.title",
defaultMessage: "Overview"
}),
subtitle: formatMessage({
id: "Settings.application.description",
defaultMessage: "Administration panels global information"
}),
primaryAction: canUpdate && (0, import_jsx_runtime2.jsx)(Button, {
disabled: isSaveDisabled,
type: "submit",
startIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$4F, {}),
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
})
}),
(0, import_jsx_runtime2.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime2.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 6,
children: [
(0, import_jsx_runtime2.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
hasRadius: true,
background: "neutral0",
shadow: "tableShadow",
paddingTop: 6,
paddingBottom: 6,
paddingRight: 7,
paddingLeft: 7,
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "delta",
tag: "h3",
children: formatMessage({
id: "global.details",
defaultMessage: "Details"
})
}),
(0, import_jsx_runtime2.jsxs)(Grid.Root, {
gap: 5,
tag: "dl",
children: [
(0, import_jsx_runtime2.jsxs)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "start",
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
tag: "dt",
children: formatMessage({
id: "Settings.application.strapiVersion",
defaultMessage: "strapi version"
})
}),
(0, import_jsx_runtime2.jsxs)(Flex, {
gap: 3,
direction: "column",
alignItems: "start",
tag: "dd",
children: [
(0, import_jsx_runtime2.jsxs)(Typography, {
children: [
"v",
strapiVersion
]
}),
shouldUpdateStrapi && (0, import_jsx_runtime2.jsx)(Link, {
href: `https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`,
endIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$3F, {}),
children: formatMessage({
id: "Settings.application.link-upgrade",
defaultMessage: "Upgrade your admin panel"
})
})
]
})
]
}),
(0, import_jsx_runtime2.jsxs)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "start",
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
tag: "dt",
children: formatMessage({
id: "Settings.application.edition-title",
defaultMessage: "current edition"
})
}),
(0, import_jsx_runtime2.jsxs)(Flex, {
gap: 3,
direction: "column",
alignItems: "start",
tag: "dd",
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
children: formatMessage({
id: "Settings.application.ee-or-ce",
defaultMessage: "{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"
}, {
communityEdition
})
}),
(0, import_jsx_runtime2.jsx)(Link, {
href: "https://strapi.io/pricing-self-hosted",
endIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$3F, {}),
children: formatMessage({
id: "Settings.application.link-pricing",
defaultMessage: "See all pricing plans"
})
})
]
})
]
}),
(0, import_jsx_runtime2.jsxs)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "start",
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
tag: "dt",
children: formatMessage({
id: "Settings.application.node-version",
defaultMessage: "node version"
})
}),
(0, import_jsx_runtime2.jsx)(Typography, {
tag: "dd",
children: nodeVersion
})
]
}),
(0, import_jsx_runtime2.jsx)(AdminSeatInfo, {})
]
})
]
}),
canRead && (0, import_jsx_runtime2.jsxs)(Box, {
hasRadius: true,
background: "neutral0",
shadow: "tableShadow",
paddingTop: 6,
paddingBottom: 6,
paddingRight: 7,
paddingLeft: 7,
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "delta",
tag: "h3",
children: formatMessage({
id: "Settings.application.customization",
defaultMessage: "Customization"
})
}),
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage({
id: "Settings.application.customization.size-details",
defaultMessage: "Max dimension: {dimension}×{dimension}, Max file size: {size}KB"
}, {
dimension: DIMENSION,
size: SIZE
})
}),
(0, import_jsx_runtime2.jsxs)(Grid.Root, {
paddingTop: 4,
gap: 4,
children: [
(0, import_jsx_runtime2.jsx)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime2.jsx)(LogoInput, {
canUpdate,
customLogo: logos.menu.custom,
defaultLogo: logos.menu.default,
hint: formatMessage({
id: "Settings.application.customization.menu-logo.carousel-hint",
defaultMessage: "Replace the logo in the main navigation"
}),
label: formatMessage({
id: "Settings.application.customization.carousel.menu-logo.title",
defaultMessage: "Menu logo"
}),
onChangeLogo: handleChangeLogo("menu")
})
}),
(0, import_jsx_runtime2.jsx)(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime2.jsx)(LogoInput, {
canUpdate,
customLogo: logos.auth.custom,
defaultLogo: logos.auth.default,
hint: formatMessage({
id: "Settings.application.customization.auth-logo.carousel-hint",
defaultMessage: "Replace the logo in the authentication pages"
}),
label: formatMessage({
id: "Settings.application.customization.carousel.auth-logo.title",
defaultMessage: "Auth logo"
}),
onChangeLogo: handleChangeLogo("auth")
})
})
]
})
]
})
]
})
})
]
})
})
]
});
};
export {
ApplicationInfoPage
};
//# sourceMappingURL=ApplicationInfoPage-WUK3WEUI.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,85 @@
import {
Page
} from "./chunk-5CAWUBTQ.js";
import {
login
} from "./chunk-W2TBR6J3.js";
import {
useTypedDispatch
} from "./chunk-QEGMJR7H.js";
import {
getCookieValue
} from "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import {
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
useMatch,
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/AuthResponse.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var AuthResponse = () => {
const match = useMatch("/auth/login/:authResponse");
const { formatMessage } = useIntl();
const navigate = useNavigate();
const dispatch = useTypedDispatch();
const redirectToOops = React.useCallback(() => {
navigate({
pathname: "/auth/oops",
search: `?info=${encodeURIComponent(formatMessage({
id: "Auth.form.button.login.providers.error",
defaultMessage: "We cannot connect you through the selected provider."
}))}`
});
}, [
navigate,
formatMessage
]);
React.useEffect(() => {
if ((match == null ? void 0 : match.params.authResponse) === "error") {
redirectToOops();
}
if ((match == null ? void 0 : match.params.authResponse) === "success") {
const jwtToken = getCookieValue("jwtToken");
if (jwtToken) {
dispatch(login({
token: jwtToken
}));
navigate("/auth/login");
} else {
redirectToOops();
}
}
}, [
dispatch,
match,
redirectToOops,
navigate
]);
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
};
export {
AuthResponse
};
//# sourceMappingURL=AuthResponse-PZJFFLGR.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/AuthResponse.tsx"],
"sourcesContent": ["import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue } from '../../../../admin/src/utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,eAAe,MAAA;AACnB,QAAMC,QAAQC,SAAS,2BAAA;AACvB,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAC1B,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,WAAWC,iBAAAA;AAEjB,QAAMC,iBAAuBC,kBAAY,MAAA;AACvCL,aAAS;MACPM,UAAU;MACVC,QAAQ,SAASC,mBACfV,cAAc;QACZW,IAAI;QACJC,gBAAgB;MAClB,CAAA,CAAA,CAAA;IAEJ,CAAA;KACC;IAACV;IAAUF;EAAc,CAAA;AAE5Ba,EAAMC,gBAAU,MAAA;AACd,SAAIhB,+BAAOiB,OAAOC,kBAAiB,SAAS;AAC1CV,qBAAAA;IACF;AAEA,SAAIR,+BAAOiB,OAAOC,kBAAiB,WAAW;AAC5C,YAAMC,WAAWC,eAAe,UAAA;AAEhC,UAAID,UAAU;AACZb,iBACEe,MAAM;UACJC,OAAOH;QACT,CAAA,CAAA;AAGFf,iBAAS,aAAA;aACJ;AACLI,uBAAAA;MACF;IACF;KACC;IAACF;IAAUN;IAAOQ;IAAgBJ;EAAS,CAAA;AAE9C,aAAOmB,wBAACC,KAAKC,SAAO,CAAA,CAAA;AACtB;",
"names": ["AuthResponse", "match", "useMatch", "formatMessage", "useIntl", "navigate", "useNavigate", "dispatch", "useTypedDispatch", "redirectToOops", "useCallback", "pathname", "search", "encodeURIComponent", "id", "defaultMessage", "React", "useEffect", "params", "authResponse", "jwtToken", "getCookieValue", "login", "token", "_jsx", "Page", "Loading"]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,339 @@
import {
ConfigurationForm,
TEMP_FIELD_NAME
} from "./chunk-TUQVYWWY.js";
import "./chunk-CD3FLTLL.js";
import {
useTypedSelector
} from "./chunk-VE2D6HMA.js";
import "./chunk-NAZM6EA4.js";
import {
DEFAULT_SETTINGS,
convertEditLayoutToFieldLayouts,
extractContentTypeComponents,
setIn,
useGetInitialDataQuery
} from "./chunk-UATNJIHQ.js";
import {
contentManagerApi
} from "./chunk-P4VL3IHZ.js";
import "./chunk-HIZVCZYI.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-SYWYLB7I.js";
import "./chunk-S3HPKOXW.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-IGCTEXRF.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import {
useParams
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/content-manager/dist/admin/pages/ComponentConfigurationPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
// node_modules/@strapi/content-manager/dist/admin/services/components.mjs
var componentsApi = contentManagerApi.injectEndpoints({
endpoints: (builder) => ({
getComponentConfiguration: builder.query({
query: (uid) => `/content-manager/components/${uid}/configuration`,
transformResponse: (response) => response.data,
providesTags: (_result, _error, uid) => [
{
type: "ComponentConfiguration",
id: uid
}
]
}),
updateComponentConfiguration: builder.mutation({
query: ({ uid, ...body }) => ({
url: `/content-manager/components/${uid}/configuration`,
method: "PUT",
data: body
}),
transformResponse: (response) => response.data,
invalidatesTags: (_result, _error, { uid }) => [
{
type: "ComponentConfiguration",
id: uid
},
// otherwise layouts already fetched will have stale component configuration data.
{
type: "ContentTypeSettings",
id: "LIST"
}
]
})
})
});
var { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } = componentsApi;
// node_modules/@strapi/content-manager/dist/admin/pages/ComponentConfigurationPage.mjs
var ComponentConfigurationPage = () => {
const { slug: model } = useParams();
const { toggleNotification } = useNotification();
const { formatMessage } = useIntl();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { components, fieldSizes, schema, error: errorSchema, isLoading: isLoadingSchema, isFetching: isFetchingSchema } = useGetInitialDataQuery(void 0, {
selectFromResult: (res) => {
var _a, _b, _c;
const schema2 = (_a = res.data) == null ? void 0 : _a.components.find((ct) => ct.uid === model);
const componentsByKey = (_b = res.data) == null ? void 0 : _b.components.reduce((acc, component) => {
acc[component.uid] = component;
return acc;
}, {});
const components2 = extractContentTypeComponents(schema2 == null ? void 0 : schema2.attributes, componentsByKey);
const fieldSizes2 = Object.entries(((_c = res.data) == null ? void 0 : _c.fieldSizes) ?? {}).reduce((acc, [attributeName, { default: size }]) => {
acc[attributeName] = size;
return acc;
}, {});
return {
isFetching: res.isFetching,
isLoading: res.isLoading,
error: res.error,
components: components2,
schema: schema2,
fieldSizes: fieldSizes2
};
}
});
React.useEffect(() => {
if (errorSchema) {
toggleNotification({
type: "danger",
message: formatAPIError(errorSchema)
});
}
}, [
errorSchema,
formatAPIError,
toggleNotification
]);
const { data, isLoading: isLoadingConfig, isFetching: isFetchingConfig, error } = useGetComponentConfigurationQuery(model ?? "");
React.useEffect(() => {
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}, [
error,
formatAPIError,
toggleNotification
]);
const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;
const editLayout = React.useMemo(() => data && !isLoading ? formatEditLayout(data, {
schema,
components
}) : {
layout: [],
components: {},
metadatas: {},
options: {},
settings: DEFAULT_SETTINGS
}, [
data,
isLoading,
schema,
components
]);
const [updateConfiguration] = useUpdateComponentConfigurationMutation();
const handleSubmit = async (formData) => {
try {
const meta = Object.entries((data == null ? void 0 : data.component.metadatas) ?? {}).reduce((acc, [name, { edit, list }]) => {
const { __temp_key__, size: _size, name: _name, ...editedMetadata } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};
acc[name] = {
edit: {
...edit,
...editedMetadata
},
list
};
return acc;
}, {});
const res = await updateConfiguration({
layouts: {
edit: formData.layout.map((row) => row.children.reduce((acc, { name, size }) => {
if (name !== TEMP_FIELD_NAME) {
return [
...acc,
{
name,
size
}
];
}
return acc;
}, [])),
list: data == null ? void 0 : data.component.layouts.list
},
settings: setIn(formData.settings, "displayName", void 0),
metadatas: meta,
uid: model
});
if ("data" in res) {
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
} else {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
if (error || errorSchema || !schema) {
return (0, import_jsx_runtime.jsx)(Page.Error, {});
}
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: `Configure ${editLayout.settings.displayName} Edit View`
}),
(0, import_jsx_runtime.jsx)(ConfigurationForm, {
onSubmit: handleSubmit,
attributes: schema.attributes,
fieldSizes,
layout: editLayout
})
]
});
};
var formatEditLayout = (data, { schema, components }) => {
const editAttributes = convertEditLayoutToFieldLayouts(data.component.layouts.edit, schema == null ? void 0 : schema.attributes, data.component.metadatas, {
configurations: data.components,
schemas: components
});
const componentEditAttributes = Object.entries(data.components).reduce((acc, [uid, configuration]) => {
acc[uid] = {
layout: convertEditLayoutToFieldLayouts(configuration.layouts.edit, components[uid].attributes, configuration.metadatas),
settings: {
...configuration.settings,
icon: components[uid].info.icon,
displayName: components[uid].info.displayName
}
};
return acc;
}, {});
const editMetadatas = Object.entries(data.component.metadatas).reduce((acc, [attribute, metadata]) => {
return {
...acc,
[attribute]: metadata.edit
};
}, {});
return {
layout: [
editAttributes
],
components: componentEditAttributes,
metadatas: editMetadatas,
options: {
...schema == null ? void 0 : schema.options,
...schema == null ? void 0 : schema.pluginOptions
},
settings: {
...data.component.settings,
displayName: schema == null ? void 0 : schema.info.displayName
}
};
};
var ProtectedComponentConfigurationPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.contentManager) == null ? void 0 : _a.componentsConfigurations;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(ComponentConfigurationPage, {})
});
};
export {
ComponentConfigurationPage,
ProtectedComponentConfigurationPage
};
//# sourceMappingURL=ComponentConfigurationPage-2HPC6VSU.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,377 @@
import {
useConfig
} from "./chunk-JF4AI5LV.js";
import {
getTrad,
pageSizes,
pluginId,
sortOptions
} from "./chunk-ALMC553V.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import {
ConfirmDialog
} from "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import {
require_set
} from "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import {
require_isEqual
} from "./chunk-VYSYYPOB.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import {
require_get,
require_lib
} from "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import {
fn
} from "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Button,
Dialog,
Field,
Grid,
Link,
SingleSelect,
SingleSelectOption,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import {
NavLink
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$4F,
ForwardRef$5j
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_isEqual = __toESM(require_isEqual(), 1);
var import_qs2 = __toESM(require_lib(), 1);
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var import_qs = __toESM(require_lib(), 1);
var Settings = ({ sort = "", pageSize = 10, onChange: onChange2 }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsx)(Box, {
background: "neutral0",
hasRadius: true,
shadow: "tableShadow",
paddingTop: 6,
paddingBottom: 6,
paddingLeft: 7,
paddingRight: 7,
children: (0, import_jsx_runtime.jsxs)(Grid.Root, {
gap: 4,
children: [
(0, import_jsx_runtime.jsx)(Grid.Item, {
s: 12,
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
hint: formatMessage({
id: getTrad("config.entries.note"),
defaultMessage: "Number of assets displayed by default in the Media Library"
}),
name: "pageSize",
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: getTrad("config.entries.title"),
defaultMessage: "Entries per page"
})
}),
(0, import_jsx_runtime.jsx)(SingleSelect, {
onChange: (value) => onChange2({
target: {
name: "pageSize",
value
}
}),
value: pageSize,
children: pageSizes.map((pageSize2) => (0, import_jsx_runtime.jsx)(SingleSelectOption, {
value: pageSize2,
children: pageSize2
}, pageSize2))
}),
(0, import_jsx_runtime.jsx)(Field.Hint, {})
]
})
}),
(0, import_jsx_runtime.jsx)(Grid.Item, {
s: 12,
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
hint: formatMessage({
id: getTrad("config.note"),
defaultMessage: "Note: You can override this value in the media library."
}),
name: "sort",
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: getTrad("config.sort.title"),
defaultMessage: "Default sort order"
})
}),
(0, import_jsx_runtime.jsx)(SingleSelect, {
onChange: (value) => onChange2({
target: {
name: "sort",
value
}
}),
value: sort,
"test-sort": sort,
"data-testid": "sort-select",
children: sortOptions.map((filter) => (0, import_jsx_runtime.jsx)(SingleSelectOption, {
"data-testid": `sort-option-${filter.value}`,
value: filter.value,
children: formatMessage({
id: getTrad(filter.key),
defaultMessage: `${filter.value}`
})
}, filter.key))
}),
(0, import_jsx_runtime.jsx)(Field.Hint, {})
]
})
})
]
})
});
};
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs
var ON_CHANGE = `${pluginId}/ON_CHANGE`;
var SET_LOADED = `${pluginId}/SET_LOADED`;
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/state/actions.mjs
var onChange = ({ name, value }) => ({
type: ON_CHANGE,
keys: name,
value
});
var setLoaded = () => ({
type: SET_LOADED
});
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/state/init.mjs
var initialState = {
initialData: {},
modifiedData: {}
};
var init = (configData) => {
return {
...initialState,
initialData: configData,
modifiedData: configData
};
};
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs
var import_get = __toESM(require_get(), 1);
var import_set = __toESM(require_set(), 1);
var reducer = (state = initialState, action = {
type: ""
}) => (
// eslint-disable-next-line consistent-return
fn(state, (draftState) => {
switch (action.type) {
case ON_CHANGE: {
if ("keys" in action && "value" in action && action.keys) {
(0, import_set.default)(draftState, [
"modifiedData",
...action.keys.split(".")
], action.value);
}
break;
}
case SET_LOADED: {
const reInitialise = init((0, import_get.default)(draftState, [
"modifiedData"
], {}));
draftState.initialData = reInitialise.initialData;
draftState.modifiedData = reInitialise.modifiedData;
break;
}
default:
return draftState;
}
})
);
// node_modules/@strapi/upload/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs
var ConfigureTheView = ({ config }) => {
const { trackUsage } = useTracking();
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const { mutateConfig } = useConfig();
const { isLoading: isSubmittingForm } = mutateConfig;
const [showWarningSubmit, setWarningSubmit] = React.useState(false);
const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);
const [reducerState, dispatch] = React.useReducer(reducer, initialState, () => init(config));
const typedDispatch = dispatch;
const { initialData, modifiedData } = reducerState;
const handleSubmit = (e) => {
e.preventDefault();
toggleWarningSubmit();
};
const handleConfirm = async () => {
trackUsage("willEditMediaLibraryConfig");
await mutateConfig.mutateAsync(modifiedData);
setWarningSubmit(false);
typedDispatch(setLoaded());
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.form.success.fields",
defaultMessage: "Changes saved"
})
});
};
const handleChange = ({ target: { name, value } }) => {
typedDispatch(onChange({
name,
value
}));
};
return (0, import_jsx_runtime2.jsx)(Layouts.Root, {
children: (0, import_jsx_runtime2.jsx)(Page.Main, {
"aria-busy": isSubmittingForm,
children: (0, import_jsx_runtime2.jsxs)("form", {
onSubmit: handleSubmit,
children: [
(0, import_jsx_runtime2.jsx)(Layouts.Header, {
navigationAction: (0, import_jsx_runtime2.jsx)(Link, {
tag: NavLink,
startIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$5j, {}),
to: `/plugins/${pluginId}`,
id: "go-back",
children: formatMessage({
id: getTrad("config.back"),
defaultMessage: "Back"
})
}),
primaryAction: (0, import_jsx_runtime2.jsx)(Button, {
size: "S",
startIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$4F, {}),
disabled: (0, import_isEqual.default)(modifiedData, initialData),
type: "submit",
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
}),
subtitle: formatMessage({
id: getTrad("config.subtitle"),
defaultMessage: "Define the view settings of the media library."
}),
title: formatMessage({
id: getTrad("config.title"),
defaultMessage: "Configure the view - Media Library"
})
}),
(0, import_jsx_runtime2.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime2.jsx)(Settings, {
"data-testid": "settings",
pageSize: modifiedData.pageSize || "",
sort: modifiedData.sort || "",
onChange: handleChange
})
}),
"x",
(0, import_jsx_runtime2.jsx)(Dialog.Root, {
open: showWarningSubmit,
onOpenChange: toggleWarningSubmit,
children: (0, import_jsx_runtime2.jsx)(ConfirmDialog, {
onConfirm: handleConfirm,
variant: "default",
children: formatMessage({
id: getTrad("config.popUpWarning.warning.updateAllSettings"),
defaultMessage: "This will modify all your settings"
})
})
})
]
})
})
});
};
export {
ConfigureTheView
};
//# sourceMappingURL=ConfigureTheView-OFTYFMGX.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,79 @@
import {
require_isNil
} from "./chunk-AOLNGJZC.js";
import {
useLicenseLimits
} from "./chunk-G2UWKDMB.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
Button,
Flex,
TooltipImpl,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$2d,
ForwardRef$3
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_isNil = __toESM(require_isNil(), 1);
var CreateActionEE = React.forwardRef((props, ref) => {
const { formatMessage } = useIntl();
const { license, isError, isLoading } = useLicenseLimits();
const { permittedSeats, shouldStopCreate } = license ?? {};
if (isError || isLoading) {
return null;
}
return (0, import_jsx_runtime.jsxs)(Flex, {
gap: 2,
children: [
!(0, import_isNil.default)(permittedSeats) && shouldStopCreate && (0, import_jsx_runtime.jsx)(TooltipImpl, {
label: formatMessage({
id: "Settings.application.admin-seats.at-limit-tooltip",
defaultMessage: "At limit: add seats to invite more users"
}),
side: "left",
children: (0, import_jsx_runtime.jsx)(ForwardRef$3, {
width: "1.4rem",
height: "1.4rem",
fill: "danger500"
})
}),
(0, import_jsx_runtime.jsx)(Button, {
ref,
"data-testid": "create-user-button",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$2d, {}),
size: "S",
disabled: shouldStopCreate,
...props,
children: formatMessage({
id: "Settings.permissions.users.create",
defaultMessage: "Invite new user"
})
})
]
});
});
export {
CreateActionEE
};
//# sourceMappingURL=CreateActionEE-W6UH7YA7.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.tsx"],
"sourcesContent": ["import * as React from 'react';\n\nimport { Button, Flex, Tooltip } from '@strapi/design-system';\nimport { Mail, WarningCircle } from '@strapi/icons';\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\n\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nimport type { CreateActionCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE';\n\nexport const CreateActionEE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>(\n (props, ref) => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n\n const { permittedSeats, shouldStopCreate } = license ?? {};\n\n if (isError || isLoading) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n {!isNil(permittedSeats) && shouldStopCreate && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n side=\"left\"\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n <Button\n ref={ref}\n data-testid=\"create-user-button\"\n startIcon={<Mail />}\n size=\"S\"\n disabled={shouldStopCreate}\n {...props}\n >\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n </Flex>\n );\n }\n);\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWaA,iBAAuBC,iBAClC,CAACC,OAAOC,QAAAA;AACN,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAC1B,QAAM,EAAEC,SAASC,SAASC,UAAS,IAAKC,iBAAAA;AAExC,QAAM,EAAEC,gBAAgBC,iBAAgB,IAAKL,WAAW,CAAA;AAExD,MAAIC,WAAWC,WAAW;AACxB,WAAO;EACT;AAEA,aACEI,yBAACC,MAAAA;IAAKC,KAAK;;MACR,KAACC,aAAAA,SAAML,cAAmBC,KAAAA,wBACzBK,wBAACC,aAAAA;QACCC,OAAOd,cAAc;UACnBe,IAAI;UACJC,gBAAgB;QAClB,CAAA;QACAC,MAAK;QAEL,cAAAL,wBAACM,cAAAA;UAAcC,OAAM;UAASC,QAAO;UAASC,MAAK;;;UAGvDT,wBAACU,QAAAA;QACCvB;QACAwB,eAAY;QACZC,eAAWZ,wBAACa,eAAAA,CAAAA,CAAAA;QACZC,MAAK;QACLC,UAAUpB;QACT,GAAGT;kBAEHE,cAAc;UACbe,IAAI;UACJC,gBAAgB;QAClB,CAAA;;;;AAIR,CACA;",
"names": ["CreateActionEE", "forwardRef", "props", "ref", "formatMessage", "useIntl", "license", "isError", "isLoading", "useLicenseLimits", "permittedSeats", "shouldStopCreate", "_jsxs", "Flex", "gap", "isNil", "_jsx", "Tooltip", "label", "id", "defaultMessage", "side", "WarningCircle", "width", "height", "fill", "Button", "data-testid", "startIcon", "Mail", "size", "disabled"]
}

View File

@@ -0,0 +1,58 @@
import {
EditPage
} from "./chunk-SOIQOVFG.js";
import "./chunk-AD4IF7GD.js";
import "./chunk-CI2U7W4K.js";
import "./chunk-6HMBNYS4.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IY256CNP.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-VYSYYPOB.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var ProtectedCreatePage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.webhooks.create;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(EditPage, {})
});
};
export {
ProtectedCreatePage
};
//# sourceMappingURL=CreatePage-AWYH3SXH.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.tsx"],
"sourcesContent": ["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditPage } from './EditPage';\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedCreatePage };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,sBAAsB,MAAA;AAC1B,QAAMC,cAAcC,iBAClB,CAACC,UAAUA;;AAAAA,uBAAMC,UAAUH,YAAYI,aAA5BF,mBAAsCG,SAASC;GAAAA;AAG5D,aACEC,wBAACC,KAAKC,SAAO;IAACT;IACZ,cAAAO,wBAACG,UAAAA,CAAAA,CAAAA;;AAGP;",
"names": ["ProtectedCreatePage", "permissions", "useTypedSelector", "state", "admin_app", "settings", "webhooks", "create", "_jsx", "Page", "Protect", "EditPage"]
}

View File

@@ -0,0 +1,408 @@
import {
Permissions
} from "./chunk-3LBDASKN.js";
import "./chunk-MUOUY6GG.js";
import "./chunk-NE3KAGU6.js";
import {
format
} from "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-YJEURQPS.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-GGK2TLCV.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import {
Form,
Formik
} from "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import {
BackButton
} from "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create4 as create,
create6 as create2
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import {
useCreateRoleMutation,
useGetRolePermissionLayoutQuery,
useGetRolePermissionsQuery,
useUpdateRolePermissionsMutation
} from "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
isBaseQueryError
} from "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Button,
Field,
Flex,
Grid,
Main,
TextInput,
Textarea,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
useNavigate,
useParams
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$4F
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import {
dt
} from "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var CREATE_SCHEMA = create2().shape({
name: create().required(errorsTrads.required.id),
description: create().required(errorsTrads.required.id)
});
var CreatePage = () => {
const { id } = useParams();
const { toggleNotification } = useNotification();
const { formatMessage } = useIntl();
const navigate = useNavigate();
const permissionsRef = React.useRef(null);
const { trackUsage } = useTracking();
const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } = useGetRolePermissionLayoutQuery({
/**
* Role here is a query param so if there's no role we pass an empty string
* which returns us a default layout.
*/
role: id ?? ""
});
const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery({
id
}, {
skip: !id,
refetchOnMountOrArgChange: true
});
const [createRole] = useCreateRoleMutation();
const [updateRolePermissions] = useUpdateRolePermissionsMutation();
const handleCreateRoleSubmit = async (data, formik) => {
var _a;
try {
if (id) {
trackUsage("willDuplicateRole");
} else {
trackUsage("willCreateNewRole");
}
const res = await createRole(data);
if ("error" in res) {
if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
formik.setErrors(formatValidationErrors(res.error));
} else {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
return;
}
const { permissionsToSend } = ((_a = permissionsRef.current) == null ? void 0 : _a.getPermissions()) ?? {};
if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {
const updateRes = await updateRolePermissions({
id: res.data.id,
permissions: permissionsToSend
});
if ("error" in updateRes) {
if (isBaseQueryError(updateRes.error) && updateRes.error.name === "ValidationError") {
formik.setErrors(formatValidationErrors(updateRes.error));
} else {
toggleNotification({
type: "danger",
message: formatAPIError(updateRes.error)
});
}
return;
}
}
toggleNotification({
type: "success",
message: formatMessage({
id: "Settings.roles.created",
defaultMessage: "created"
})
});
navigate(`../roles/${res.data.id.toString()}`, {
replace: true
});
} catch (err) {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
if (isLoadingPermissionsLayout && isLoadingRole || !permissionsLayout) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime.jsxs)(Main, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Roles"
})
}),
(0, import_jsx_runtime.jsx)(Formik, {
initialValues: {
name: "",
description: `${formatMessage({
id: "Settings.roles.form.created",
defaultMessage: "Created"
})} ${format(/* @__PURE__ */ new Date(), "PPP")}`
},
onSubmit: handleCreateRoleSubmit,
validationSchema: CREATE_SCHEMA,
validateOnChange: false,
children: ({ values, errors, handleReset, handleChange, isSubmitting }) => (0, import_jsx_runtime.jsx)(Form, {
children: (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
primaryAction: (0, import_jsx_runtime.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime.jsx)(Button, {
variant: "secondary",
onClick: () => {
var _a;
handleReset();
(_a = permissionsRef.current) == null ? void 0 : _a.resetForm();
},
children: formatMessage({
id: "app.components.Button.reset",
defaultMessage: "Reset"
})
}),
(0, import_jsx_runtime.jsx)(Button, {
type: "submit",
loading: isSubmitting,
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$4F, {}),
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
})
]
}),
title: formatMessage({
id: "Settings.roles.create.title",
defaultMessage: "Create a role"
}),
subtitle: formatMessage({
id: "Settings.roles.create.description",
defaultMessage: "Define the rights given to the role"
}),
navigationAction: (0, import_jsx_runtime.jsx)(BackButton, {
fallback: "../roles"
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 6,
children: [
(0, import_jsx_runtime.jsx)(Box, {
background: "neutral0",
padding: 6,
shadow: "filterShadow",
hasRadius: true,
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
justifyContent: "space-between",
children: [
(0, import_jsx_runtime.jsxs)(Box, {
children: [
(0, import_jsx_runtime.jsx)(Box, {
children: (0, import_jsx_runtime.jsx)(Typography, {
fontWeight: "bold",
children: formatMessage({
id: "global.details",
defaultMessage: "Details"
})
})
}),
(0, import_jsx_runtime.jsx)(Box, {
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage({
id: "Settings.roles.form.description",
defaultMessage: "Name and description of the role"
})
})
})
]
}),
(0, import_jsx_runtime.jsx)(UsersRoleNumber, {
children: formatMessage({
id: "Settings.roles.form.button.users-with-role",
defaultMessage: "{number, plural, =0 {# users} one {# user} other {# users}} with this role"
}, {
number: 0
})
})
]
}),
(0, import_jsx_runtime.jsxs)(Grid.Root, {
gap: 4,
children: [
(0, import_jsx_runtime.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
name: "name",
error: errors.name && formatMessage({
id: errors.name
}),
required: true,
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "global.name",
defaultMessage: "Name"
})
}),
(0, import_jsx_runtime.jsx)(TextInput, {
onChange: handleChange,
value: values.name
}),
(0, import_jsx_runtime.jsx)(Field.Error, {})
]
})
}),
(0, import_jsx_runtime.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
name: "description",
error: errors.description && formatMessage({
id: errors.description
}),
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "global.description",
defaultMessage: "Description"
})
}),
(0, import_jsx_runtime.jsx)(Textarea, {
onChange: handleChange,
value: values.description
})
]
})
})
]
})
]
})
}),
(0, import_jsx_runtime.jsx)(Box, {
shadow: "filterShadow",
hasRadius: true,
children: (0, import_jsx_runtime.jsx)(Permissions, {
isFormDisabled: false,
ref: permissionsRef,
permissions: rolePermissions,
layout: permissionsLayout
})
})
]
})
})
]
})
})
})
]
});
};
var UsersRoleNumber = dt.div`
border: 1px solid ${({ theme }) => theme.colors.primary200};
background: ${({ theme }) => theme.colors.primary100};
padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};
color: ${({ theme }) => theme.colors.primary600};
border-radius: ${({ theme }) => theme.borderRadius};
font-size: 1.2rem;
font-weight: bold;
`;
var ProtectedCreatePage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.roles.create;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(CreatePage, {})
});
};
export {
CreatePage,
ProtectedCreatePage
};
//# sourceMappingURL=CreatePage-CJGYQTTX.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,76 @@
import {
EditView
} from "./chunk-SR6CJ4F4.js";
import "./chunk-4Z32JD6C.js";
import "./chunk-T2YF43GM.js";
import "./chunk-NC2FHXMX.js";
import "./chunk-YYT5ZZ3W.js";
import "./chunk-RXTTORSL.js";
import "./chunk-7GAX2FTH.js";
import "./chunk-NE3KAGU6.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-7PUJSL55.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var ProtectedCreateView = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["api-tokens"].create;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(EditView, {})
});
};
export {
ProtectedCreateView
};
//# sourceMappingURL=CreateView-53MGSA2G.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.tsx"],
"sourcesContent": ["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView/EditViewPage';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKaA,sBAAsB,MAAA;AACjC,QAAMC,cAAcC,iBAClB,CAACC,UAAAA;;AAAUA,uBAAMC,UAAUH,YAAYI,aAA5BF,mBAAuC,cAAcG;GAAAA;AAGlE,aACEC,wBAACC,KAAKC,SAAO;IAACR;IACZ,cAAAM,wBAACG,UAAAA,CAAAA,CAAAA;;AAGP;",
"names": ["ProtectedCreateView", "permissions", "useTypedSelector", "state", "admin_app", "settings", "create", "_jsx", "Page", "Protect", "EditView"]
}

View File

@@ -0,0 +1,71 @@
import {
EditView
} from "./chunk-RQUIEHLA.js";
import "./chunk-YYT5ZZ3W.js";
import "./chunk-RXTTORSL.js";
import "./chunk-7GAX2FTH.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-7PUJSL55.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var ProtectedCreateView = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["transfer-tokens"].create;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(EditView, {})
});
};
export {
ProtectedCreateView
};
//# sourceMappingURL=CreateView-7DDFBOFG.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],
"sourcesContent": ["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKaA,sBAAsB,MAAA;AACjC,QAAMC,cAAcC,iBAClB,CAACC,UAAAA;;AAAUA,uBAAMC,UAAUH,YAAYI,aAA5BF,mBAAuC,mBAAmBG;GAAAA;AAGvE,aACEC,wBAACC,KAAKC,SAAO;IAACR;IACZ,cAAAM,wBAACG,UAAAA,CAAAA,CAAAA;;AAGP;",
"names": ["ProtectedCreateView", "permissions", "useTypedSelector", "state", "admin_app", "settings", "create", "_jsx", "Page", "Protect", "EditView"]
}

View File

@@ -0,0 +1,230 @@
import {
ConfigurationForm,
TEMP_FIELD_NAME
} from "./chunk-TUQVYWWY.js";
import "./chunk-CD3FLTLL.js";
import {
useTypedSelector
} from "./chunk-VE2D6HMA.js";
import "./chunk-NAZM6EA4.js";
import {
setIn,
useDoc,
useDocLayout,
useGetInitialDataQuery,
useUpdateContentTypeConfigurationMutation
} from "./chunk-UATNJIHQ.js";
import "./chunk-P4VL3IHZ.js";
import "./chunk-HIZVCZYI.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-SYWYLB7I.js";
import "./chunk-S3HPKOXW.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-IGCTEXRF.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/content-manager/dist/admin/pages/EditConfigurationPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var EditConfigurationPage = () => {
const { trackUsage } = useTracking();
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { isLoading: isLoadingSchema, schema, model } = useDoc();
const { isLoading: isLoadingLayout, error, list, edit } = useDocLayout();
const { fieldSizes, error: errorFieldSizes, isLoading: isLoadingFieldSizes, isFetching: isFetchingFieldSizes } = useGetInitialDataQuery(void 0, {
selectFromResult: (res) => {
var _a;
const fieldSizes2 = Object.entries(((_a = res.data) == null ? void 0 : _a.fieldSizes) ?? {}).reduce((acc, [attributeName, { default: size }]) => {
acc[attributeName] = size;
return acc;
}, {});
return {
isFetching: res.isFetching,
isLoading: res.isLoading,
error: res.error,
fieldSizes: fieldSizes2
};
}
});
React.useEffect(() => {
if (errorFieldSizes) {
toggleNotification({
type: "danger",
message: formatAPIError(errorFieldSizes)
});
}
}, [
errorFieldSizes,
formatAPIError,
toggleNotification
]);
const isLoading = isLoadingSchema || isLoadingLayout || isLoadingFieldSizes || isFetchingFieldSizes;
const [updateConfiguration] = useUpdateContentTypeConfigurationMutation();
const handleSubmit = async (data) => {
try {
trackUsage("willSaveContentTypeLayout");
const meta = Object.entries(list.metadatas).reduce((acc, [name, { mainField: _mainField, ...listMeta }]) => {
const existingEditMeta = edit.metadatas[name];
const { __temp_key__, size: _size, name: _name, ...editedMetadata } = data.layout.flatMap((row) => row.children).find((field) => field.name === name) ?? {};
acc[name] = {
edit: {
...existingEditMeta,
...editedMetadata
},
list: listMeta
};
return acc;
}, {});
const res = await updateConfiguration({
layouts: {
edit: data.layout.map((row) => row.children.reduce((acc, { name, size }) => {
if (name !== TEMP_FIELD_NAME) {
return [
...acc,
{
name,
size
}
];
}
return acc;
}, [])),
list: list.layout.map((field) => field.name)
},
settings: setIn(data.settings, "displayName", void 0),
metadatas: meta,
uid: model
});
if ("data" in res) {
trackUsage("didEditEditSettings");
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
} else {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
if (errorFieldSizes || error || !schema) {
return (0, import_jsx_runtime.jsx)(Page.Error, {});
}
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: `Configure ${edit.settings.displayName} Edit View`
}),
(0, import_jsx_runtime.jsx)(ConfigurationForm, {
onSubmit: handleSubmit,
attributes: schema.attributes,
fieldSizes,
layout: edit
})
]
});
};
var ProtectedEditConfigurationPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.contentManager) == null ? void 0 : _a.collectionTypesConfigurations;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(EditConfigurationPage, {})
});
};
export {
EditConfigurationPage,
ProtectedEditConfigurationPage
};
//# sourceMappingURL=EditConfigurationPage-5E6X27JT.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,410 @@
import {
useAdminRoles
} from "./chunk-RQXXWIIX.js";
import {
Permissions
} from "./chunk-3LBDASKN.js";
import "./chunk-MUOUY6GG.js";
import "./chunk-NE3KAGU6.js";
import "./chunk-YJEURQPS.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-GGK2TLCV.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import {
Formik
} from "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import {
BackButton
} from "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create4 as create,
create6 as create2
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
useGetRolePermissionLayoutQuery,
useGetRolePermissionsQuery,
useUpdateRoleMutation,
useUpdateRolePermissionsMutation
} from "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
isBaseQueryError
} from "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Button,
Field,
Flex,
Grid,
Main,
TextInput,
Textarea,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
Navigate,
useMatch
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$4F
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsx)(Box, {
background: "neutral0",
padding: 6,
shadow: "filterShadow",
hasRadius: true,
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
justifyContent: "space-between",
children: [
(0, import_jsx_runtime.jsxs)(Box, {
children: [
(0, import_jsx_runtime.jsx)(Box, {
children: (0, import_jsx_runtime.jsx)(Typography, {
fontWeight: "bold",
children: role ? role.name : formatMessage({
id: "global.details",
defaultMessage: "Details"
})
})
}),
(0, import_jsx_runtime.jsx)(Box, {
children: (0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral500",
variant: "pi",
children: role ? role.description : formatMessage({
id: "Settings.roles.form.description",
defaultMessage: "Name and description of the role"
})
})
})
]
}),
(0, import_jsx_runtime.jsx)(Button, {
disabled: true,
variant: "secondary",
children: formatMessage({
id: "Settings.roles.form.button.users-with-role",
defaultMessage: "{number, plural, =0 {# users} one {# user} other {# users}} with this role"
}, {
number: role.usersCount
})
})
]
}),
(0, import_jsx_runtime.jsxs)(Grid.Root, {
gap: 4,
children: [
(0, import_jsx_runtime.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
name: "name",
error: errors.name && formatMessage({
id: errors.name
}),
required: true,
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "global.name",
defaultMessage: "Name"
})
}),
(0, import_jsx_runtime.jsx)(TextInput, {
disabled,
onChange,
onBlur,
value: values.name || ""
}),
(0, import_jsx_runtime.jsx)(Field.Error, {})
]
})
}),
(0, import_jsx_runtime.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsxs)(Field.Root, {
name: "description",
error: errors.description && formatMessage({
id: errors.description
}),
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "global.description",
defaultMessage: "Description"
})
}),
(0, import_jsx_runtime.jsx)(Textarea, {
disabled,
onChange,
onBlur,
value: values.description
}),
(0, import_jsx_runtime.jsx)(Field.Error, {})
]
})
})
]
})
]
})
});
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs
var EDIT_ROLE_SCHEMA = create2().shape({
name: create().required(errorsTrads.required.id),
description: create().optional()
});
var EditPage = () => {
const { toggleNotification } = useNotification();
const { formatMessage } = useIntl();
const match = useMatch("/settings/roles/:id");
const id = match == null ? void 0 : match.params.id;
const permissionsRef = React.useRef(null);
const { trackUsage } = useTracking();
const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } = useGetRolePermissionLayoutQuery({
/**
* Role here is a query param so if there's no role we pass an empty string
* which returns us a default layout.
*/
role: id ?? ""
});
const { roles, isLoading: isRoleLoading, refetch: refetchRole } = useAdminRoles({
id
}, {
refetchOnMountOrArgChange: true
});
const role = roles[0] ?? {};
const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery({
id
}, {
skip: !id,
refetchOnMountOrArgChange: true
});
const [updateRole] = useUpdateRoleMutation();
const [updateRolePermissions] = useUpdateRolePermissionsMutation();
if (!id) {
return (0, import_jsx_runtime2.jsx)(Navigate, {
to: "/settings/roles"
});
}
const handleEditRoleSubmit = async (data, formik) => {
var _a, _b;
try {
const { permissionsToSend, didUpdateConditions } = ((_a = permissionsRef.current) == null ? void 0 : _a.getPermissions()) ?? {};
const res = await updateRole({
id,
...data
});
if ("error" in res) {
if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
formik.setErrors(formatValidationErrors(res.error));
} else {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
return;
}
if (role.code !== "strapi-super-admin" && permissionsToSend) {
const updateRes = await updateRolePermissions({
id: res.data.id,
permissions: permissionsToSend
});
if ("error" in updateRes) {
if (isBaseQueryError(updateRes.error) && updateRes.error.name === "ValidationError") {
formik.setErrors(formatValidationErrors(updateRes.error));
} else {
toggleNotification({
type: "danger",
message: formatAPIError(updateRes.error)
});
}
return;
}
if (didUpdateConditions) {
trackUsage("didUpdateConditions");
}
}
(_b = permissionsRef.current) == null ? void 0 : _b.setFormAfterSubmit();
await refetchRole();
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved"
})
});
} catch (error) {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
const isFormDisabled = !isRoleLoading && role.code === "strapi-super-admin";
if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {
return (0, import_jsx_runtime2.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime2.jsxs)(Main, {
children: [
(0, import_jsx_runtime2.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Roles"
})
}),
(0, import_jsx_runtime2.jsx)(Formik, {
enableReinitialize: true,
initialValues: {
name: role.name ?? "",
description: role.description ?? ""
},
onSubmit: handleEditRoleSubmit,
validationSchema: EDIT_ROLE_SCHEMA,
validateOnChange: false,
children: ({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (0, import_jsx_runtime2.jsxs)("form", {
onSubmit: handleSubmit,
children: [
(0, import_jsx_runtime2.jsx)(Layouts.Header, {
primaryAction: (0, import_jsx_runtime2.jsx)(Flex, {
gap: 2,
children: (0, import_jsx_runtime2.jsx)(Button, {
type: "submit",
startIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$4F, {}),
disabled: role.code === "strapi-super-admin",
loading: isSubmitting,
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
})
}),
title: formatMessage({
id: "Settings.roles.edit.title",
defaultMessage: "Edit a role"
}),
subtitle: formatMessage({
id: "Settings.roles.create.description",
defaultMessage: "Define the rights given to the role"
}),
navigationAction: (0, import_jsx_runtime2.jsx)(BackButton, {
fallback: "../roles"
})
}),
(0, import_jsx_runtime2.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime2.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 6,
children: [
(0, import_jsx_runtime2.jsx)(RoleForm, {
disabled: isFormDisabled,
errors,
values,
onChange: handleChange,
onBlur: handleBlur,
role
}),
(0, import_jsx_runtime2.jsx)(Box, {
shadow: "filterShadow",
hasRadius: true,
children: (0, import_jsx_runtime2.jsx)(Permissions, {
isFormDisabled,
permissions,
ref: permissionsRef,
layout: permissionsLayout
})
})
]
})
})
]
})
})
]
});
};
var ProtectedEditPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.roles.update;
});
return (0, import_jsx_runtime2.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime2.jsx)(EditPage, {})
});
};
export {
EditPage,
ProtectedEditPage
};
//# sourceMappingURL=EditPage-3HDQTEWA.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
import {
EditPage,
ProtectedEditPage
} from "./chunk-SOIQOVFG.js";
import "./chunk-AD4IF7GD.js";
import "./chunk-CI2U7W4K.js";
import "./chunk-6HMBNYS4.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IY256CNP.js";
import "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-VYSYYPOB.js";
import "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import "./chunk-N55RVBRV.js";
import "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import "./chunk-PLDDJCW6.js";
export {
EditPage,
ProtectedEditPage
};
//# sourceMappingURL=EditPage-HCEGH6WF.js.map

Some files were not shown because too many files have changed in this diff Show More