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

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

View File

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

View File

@@ -0,0 +1,457 @@
import {
COMMON_USER_SCHEMA
} from "./chunk-JFWKZ6ZY.js";
import {
MagicLinkCE,
SelectRoles
} from "./chunk-XCWIZEDM.js";
import {
selectAdminPermissions
} from "./chunk-6HMBNYS4.js";
import "./chunk-RQXXWIIX.js";
import "./chunk-FURFN7BE.js";
import {
require_pick
} from "./chunk-B3BGMYGX.js";
import {
useEnterprise
} from "./chunk-W6ICJ5TB.js";
import "./chunk-RI2W2UZ6.js";
import {
BackButton
} from "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create3 as create,
create6 as create2,
create7 as create3
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import {
getDisplayName
} from "./chunk-PVNXTKO6.js";
import {
MemoizedInputRenderer
} from "./chunk-6AXVGFVQ.js";
import {
Form
} from "./chunk-BFLP6DBI.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import {
useAdminUsers,
useUpdateUserMutation
} 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,
Flex,
Grid,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
useMatch,
useNavigate
} 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/Users/EditPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_pick = __toESM(require_pick(), 1);
var EDIT_VALIDATION_SCHEMA = create2().shape({
...COMMON_USER_SCHEMA,
isActive: create(),
roles: create3().min(1, {
id: errorsTrads.required.id,
defaultMessage: "This field is required"
}).required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
})
});
var fieldsToPick = [
"email",
"firstname",
"lastname",
"username",
"isActive",
"roles"
];
var EditPage = () => {
var _a, _b, _c;
const { formatMessage } = useIntl();
const match = useMatch("/settings/users/:id");
const id = ((_a = match == null ? void 0 : match.params) == null ? void 0 : _a.id) ?? "";
const navigate = useNavigate();
const { toggleNotification } = useNotification();
const MagicLink = useEnterprise(MagicLinkCE, async () => (await import("./MagicLinkEE-V6EKW7ZW.js")).MagicLinkEE);
const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
const permissions = useTypedSelector(selectAdminPermissions);
const { isLoading: isLoadingRBAC, allowedActions: { canUpdate } } = useRBAC({
read: ((_b = permissions.settings) == null ? void 0 : _b.users.read) ?? [],
update: ((_c = permissions.settings) == null ? void 0 : _c.users.update) ?? []
});
const [updateUser] = useUpdateUserMutation();
const { data, error, isLoading: isLoadingAdminUsers } = useAdminUsers({
id
}, {
refetchOnMountOrArgChange: true
});
const [user] = (data == null ? void 0 : data.users) ?? [];
React.useEffect(() => {
if (error) {
if (error.name === "UnauthorizedError") {
toggleNotification({
type: "info",
message: formatMessage({
id: "notification.permission.not-allowed-read",
defaultMessage: "You are not allowed to see this document"
})
});
navigate("/");
} else {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}
}, [
error,
formatAPIError,
formatMessage,
navigate,
toggleNotification
]);
const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
const initialData = {
...(0, import_pick.default)(user, fieldsToPick),
roles: user.roles.map(({ id: id2 }) => id2),
password: "",
confirmPassword: ""
};
const handleSubmit = async (body, actions) => {
const { confirmPassword: _confirmPassword, ...bodyRest } = body;
const res = await updateUser({
id,
...bodyRest
});
if ("error" in res && isBaseQueryError(res.error)) {
if (res.error.name === "ValidationError") {
actions.setErrors(formatValidationErrors(res.error));
}
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
} else {
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
actions.setValues({
...(0, import_pick.default)(body, fieldsToPick),
password: "",
confirmPassword: ""
});
}
};
return (0, import_jsx_runtime.jsxs)(Page.Main, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Users"
})
}),
(0, import_jsx_runtime.jsx)(Form, {
method: "PUT",
onSubmit: handleSubmit,
initialValues: initialData,
validationSchema: EDIT_VALIDATION_SCHEMA,
children: ({ isSubmitting, modified }) => {
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
primaryAction: (0, import_jsx_runtime.jsx)(Button, {
disabled: isSubmitting || !canUpdate || !modified,
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$4F, {}),
loading: isSubmitting,
type: "submit",
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
}),
title: formatMessage({
id: "app.containers.Users.EditPage.header.label",
defaultMessage: "Edit {name}"
}, {
// @ts-expect-error issues with the Entity ID type, still.
name: getDisplayName(initialData)
}),
navigationAction: (0, import_jsx_runtime.jsx)(BackButton, {
fallback: "../users"
})
}),
(0, import_jsx_runtime.jsxs)(Layouts.Content, {
children: [
(user == null ? void 0 : user.registrationToken) && (0, import_jsx_runtime.jsx)(Box, {
paddingBottom: 6,
children: (0, import_jsx_runtime.jsx)(MagicLink, {
registrationToken: user.registrationToken
})
}),
(0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 7,
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: "app.components.Users.ModalCreateBody.block-title.details",
defaultMessage: "Details"
})
}),
(0, import_jsx_runtime.jsx)(Grid.Root, {
gap: 5,
children: LAYOUT.map((row) => row.map(({ size, label, ...field }) => {
return (0, import_jsx_runtime.jsx)(Grid.Item, {
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsx)(MemoizedInputRenderer, {
...field,
disabled: !canUpdate,
label: formatMessage(label),
placeholder: "placeholder" in field ? formatMessage(field.placeholder) : void 0
})
}, field.name);
}))
})
]
})
}),
(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.roles",
defaultMessage: "User's role"
})
}),
(0, import_jsx_runtime.jsx)(Grid.Root, {
gap: 5,
children: (0, import_jsx_runtime.jsx)(Grid.Item, {
col: 6,
xs: 12,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsx)(SelectRoles, {
disabled: !canUpdate
})
})
})
]
})
})
]
})
]
})
]
});
}
})
]
});
};
var LAYOUT = [
[
{
label: {
id: "Auth.form.firstname.label",
defaultMessage: "First name"
},
name: "firstname",
placeholder: {
id: "Auth.form.firstname.placeholder",
defaultMessage: "e.g. Kai"
},
type: "string",
size: 6,
required: true
},
{
label: {
id: "Auth.form.lastname.label",
defaultMessage: "Last name"
},
name: "lastname",
placeholder: {
id: "Auth.form.lastname.placeholder",
defaultMessage: "e.g. Doe"
},
type: "string",
size: 6
}
],
[
{
label: {
id: "Auth.form.email.label",
defaultMessage: "Email"
},
name: "email",
placeholder: {
id: "Auth.form.email.placeholder",
defaultMessage: "e.g. kai.doe@strapi.io"
},
type: "email",
size: 6,
required: true
},
{
label: {
id: "Auth.form.username.label",
defaultMessage: "Username"
},
name: "username",
placeholder: {
id: "Auth.form.username.placeholder",
defaultMessage: "e.g. Kai_Doe"
},
type: "string",
size: 6
}
],
[
{
autoComplete: "new-password",
label: {
id: "global.password",
defaultMessage: "Password"
},
name: "password",
type: "password",
size: 6
},
{
autoComplete: "new-password",
label: {
id: "Auth.form.confirmPassword.label",
defaultMessage: "Password confirmation"
},
name: "confirmPassword",
type: "password",
size: 6
}
],
[
{
label: {
id: "Auth.form.active.label",
defaultMessage: "Active"
},
name: "isActive",
type: "boolean",
size: 6
}
]
];
var ProtectedEditPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.users.read;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(EditPage, {})
});
};
export {
EditPage,
ProtectedEditPage
};
//# sourceMappingURL=EditPage-P6FMECRW.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,52 @@
import {
EditView,
ProtectedEditView
} 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 "./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 {
EditView,
ProtectedEditView
};
//# sourceMappingURL=EditView-6W2DAH4O.js.map

View File

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

View File

@@ -0,0 +1,57 @@
import {
EditView,
ProtectedEditView
} 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 "./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 {
EditView,
ProtectedEditView
};
//# sourceMappingURL=EditViewPage-64YFFNNY.js.map

View File

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

View File

@@ -0,0 +1,83 @@
import {
EditViewPage,
ProtectedEditViewPage,
getDocumentStatus
} from "./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-6LY4MOO2.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-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 "./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-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.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-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 {
EditViewPage,
ProtectedEditViewPage,
getDocumentStatus
};
//# sourceMappingURL=EditViewPage-FY7A7RI4.js.map

View File

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

View File

@@ -0,0 +1,613 @@
import {
require_prop_types
} from "./chunk-ZYDILIPQ.js";
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 {
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-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,
Breadcrumbs,
Button,
Crumb,
Grid,
IconButton,
Modal,
Table,
Tbody,
Td,
Th,
Thead,
Tr,
Typography,
VisuallyHidden,
useIntl,
useNotifyAT
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1v,
ForwardRef$4F,
ForwardRef$5n
} 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/EmailTemplates/index.mjs
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_isEmpty3 = __toESM(require_isEmpty(), 1);
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailForm.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var import_react = __toESM(require_react(), 1);
var import_prop_types = __toESM(require_prop_types(), 1);
var import_isEmpty = __toESM(require_isEmpty(), 1);
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/utils/schema.mjs
var schema = create2().shape({
options: create2().shape({
from: create2().shape({
name: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
}),
email: create().email(errorsTrads.email).required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
})
}).required(),
response_email: create().email(errorsTrads.email),
object: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
}),
message: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
})
}).required(errorsTrads.required.id)
});
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailForm.mjs
var EmailForm = ({ template = {}, onToggle, open, onSubmit }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsx)(Modal.Root, {
open,
onOpenChange: onToggle,
children: (0, import_jsx_runtime.jsxs)(Modal.Content, {
children: [
(0, import_jsx_runtime.jsxs)(Modal.Header, {
children: [
(0, import_jsx_runtime.jsxs)(Breadcrumbs, {
label: `${formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})}, ${template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""}`,
children: [
(0, import_jsx_runtime.jsx)(Crumb, {
children: formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})
}),
(0, import_jsx_runtime.jsx)(Crumb, {
isCurrent: true,
children: template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""
})
]
}),
(0, import_jsx_runtime.jsx)(VisuallyHidden, {
children: (0, import_jsx_runtime.jsx)(Modal.Title, {
children: `${formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})}, ${template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""}`
})
})
]
}),
(0, import_jsx_runtime.jsx)(Form, {
onSubmit,
initialValues: template,
validationSchema: schema,
children: ({ isSubmitting }) => {
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Body, {
children: (0, import_jsx_runtime.jsx)(Grid.Root, {
gap: 5,
children: [
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.from.name.label"),
defaultMessage: "Shipper name"
}),
name: "options.from.name",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.from.email.label"),
defaultMessage: "Shipper email"
}),
name: "options.from.email",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.response_email.label"),
defaultMessage: "Response email"
}),
name: "options.response_email",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.object.label"),
defaultMessage: "Subject"
}),
name: "options.object",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.message.label"),
defaultMessage: "Message"
}),
name: "options.message",
size: 12,
type: "text"
}
].map(({ size, ...field }) => (0, import_jsx_runtime.jsx)(Grid.Item, {
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsx)(MemoizedInputRenderer, {
...field
})
}, field.name))
})
}),
(0, import_jsx_runtime.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Close, {
children: (0, import_jsx_runtime.jsx)(Button, {
variant: "tertiary",
children: "Cancel"
})
}),
(0, import_jsx_runtime.jsx)(Button, {
loading: isSubmitting,
type: "submit",
children: "Finish"
})
]
})
]
});
}
})
]
})
});
};
EmailForm.defaultProps = {
template: {}
};
EmailForm.propTypes = {
template: import_prop_types.default.shape({
display: import_prop_types.default.string,
icon: import_prop_types.default.string,
options: import_prop_types.default.shape({
from: import_prop_types.default.shape({
name: import_prop_types.default.string,
email: import_prop_types.default.string
}),
message: import_prop_types.default.string,
object: import_prop_types.default.string,
response_email: import_prop_types.default.string
})
}),
open: import_prop_types.default.bool.isRequired,
onSubmit: import_prop_types.default.func.isRequired,
onToggle: import_prop_types.default.func.isRequired
};
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailTable.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var import_react2 = __toESM(require_react(), 1);
var import_prop_types2 = __toESM(require_prop_types(), 1);
var import_isEmpty2 = __toESM(require_isEmpty(), 1);
var EmailTable = ({ canUpdate, onEditClick }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime2.jsxs)(Table, {
colCount: 3,
rowCount: 3,
children: [
(0, import_jsx_runtime2.jsx)(Thead, {
children: (0, import_jsx_runtime2.jsxs)(Tr, {
children: [
(0, import_jsx_runtime2.jsx)(Th, {
width: "1%",
children: (0, import_jsx_runtime2.jsx)(VisuallyHidden, {
children: formatMessage({
id: getTrad("Email.template.table.icon.label"),
defaultMessage: "icon"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: getTrad("Email.template.table.name.label"),
defaultMessage: "name"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
width: "1%",
children: (0, import_jsx_runtime2.jsx)(VisuallyHidden, {
children: formatMessage({
id: getTrad("Email.template.table.action.label"),
defaultMessage: "action"
})
})
})
]
})
}),
(0, import_jsx_runtime2.jsxs)(Tbody, {
children: [
(0, import_jsx_runtime2.jsxs)(Tr, {
cursor: "pointer",
onClick: () => onEditClick("reset_password"),
children: [
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Box, {
width: "3.2rem",
height: "3.2rem",
padding: "0.8rem",
children: (0, import_jsx_runtime2.jsx)(ForwardRef$5n, {
"aria-label": formatMessage({
id: "global.reset-password",
defaultMessage: "Reset password"
})
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
children: formatMessage({
id: "global.reset-password",
defaultMessage: "Reset password"
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime2.jsx)(IconButton, {
onClick: () => onEditClick("reset_password"),
label: formatMessage({
id: getTrad("Email.template.form.edit.label"),
defaultMessage: "Edit a template"
}),
variant: "ghost",
disabled: !canUpdate,
children: (0, import_jsx_runtime2.jsx)(ForwardRef$1v, {})
})
})
]
}),
(0, import_jsx_runtime2.jsxs)(Tr, {
cursor: "pointer",
onClick: () => onEditClick("email_confirmation"),
children: [
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Box, {
width: "3.2rem",
height: "3.2rem",
padding: "0.8rem",
children: (0, import_jsx_runtime2.jsx)(ForwardRef$4F, {
"aria-label": formatMessage({
id: getTrad("Email.template.email_confirmation"),
defaultMessage: "Email address confirmation"
})
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
children: formatMessage({
id: getTrad("Email.template.email_confirmation"),
defaultMessage: "Email address confirmation"
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime2.jsx)(IconButton, {
onClick: () => onEditClick("email_confirmation"),
label: formatMessage({
id: getTrad("Email.template.form.edit.label"),
defaultMessage: "Edit a template"
}),
variant: "ghost",
disabled: !canUpdate,
children: (0, import_jsx_runtime2.jsx)(ForwardRef$1v, {})
})
})
]
})
]
})
]
});
};
EmailTable.propTypes = {
canUpdate: import_prop_types2.default.bool.isRequired,
onEditClick: import_prop_types2.default.func.isRequired
};
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/index.mjs
var ProtectedEmailTemplatesPage = () => (0, import_jsx_runtime3.jsx)(Page.Protect, {
permissions: PERMISSIONS.readEmailTemplates,
children: (0, import_jsx_runtime3.jsx)(EmailTemplatesPage, {})
});
var EmailTemplatesPage = () => {
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const { notifyStatus } = useNotifyAT();
const { toggleNotification } = useNotification();
const queryClient = useQueryClient();
const { get, put } = useFetchClient();
const { formatAPIError } = useAPIErrorHandler();
const [isModalOpen, setIsModalOpen] = React.useState(false);
const [templateToEdit, setTemplateToEdit] = React.useState(null);
const { isLoading: isLoadingForPermissions, allowedActions: { canUpdate } } = useRBAC({
update: PERMISSIONS.updateEmailTemplates
});
const { isLoading: isLoadingData, data } = useQuery([
"users-permissions",
"email-templates"
], async () => {
const { data: data2 } = await get("/users-permissions/email-templates");
return data2;
}, {
onSuccess() {
notifyStatus(formatMessage({
id: getTrad("Email.template.data.loaded"),
defaultMessage: "Email templates has been loaded"
}));
},
onError(error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
});
const isLoading = isLoadingForPermissions || isLoadingData;
const handleToggle = () => {
setIsModalOpen((prev) => !prev);
};
const handleEditClick = (template) => {
setTemplateToEdit(template);
handleToggle();
};
const submitMutation = useMutation((body) => put("/users-permissions/email-templates", {
"email-templates": body
}), {
async onSuccess() {
await queryClient.invalidateQueries([
"users-permissions",
"email-templates"
]);
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
trackUsage("didEditEmailTemplates");
handleToggle();
},
onError(error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
},
refetchActive: true
});
const handleSubmit = (body) => {
trackUsage("willEditEmailTemplates");
const editedTemplates = {
...data,
[templateToEdit]: body
};
submitMutation.mutate(editedTemplates);
};
if (isLoading) {
return (0, import_jsx_runtime3.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime3.jsxs)(Page.Main, {
"aria-busy": submitMutation.isLoading,
children: [
(0, import_jsx_runtime3.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: formatMessage({
id: getTrad("HeaderNav.link.emailTemplates"),
defaultMessage: "Email templates"
})
})
}),
(0, import_jsx_runtime3.jsx)(Layouts.Header, {
title: formatMessage({
id: getTrad("HeaderNav.link.emailTemplates"),
defaultMessage: "Email templates"
})
}),
(0, import_jsx_runtime3.jsxs)(Layouts.Content, {
children: [
(0, import_jsx_runtime3.jsx)(EmailTable, {
onEditClick: handleEditClick,
canUpdate
}),
(0, import_jsx_runtime3.jsx)(EmailForm, {
template: data[templateToEdit],
onToggle: handleToggle,
open: isModalOpen,
onSubmit: handleSubmit
})
]
})
]
});
};
export {
EmailTemplatesPage,
ProtectedEmailTemplatesPage
};
//# sourceMappingURL=EmailTemplates-3V4J4ZNO.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,76 @@
import {
Events
} from "./chunk-AD4IF7GD.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-VYSYYPOB.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.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/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var eeTables = {
"review-workflows": {
"review-workflows": [
"review-workflows.updateEntryStage"
]
},
releases: {
releases: [
"releases.publish"
]
}
};
var getHeaders = (table) => {
switch (table) {
case "review-workflows":
return () => [
{
id: "review-workflows.updateEntryStage",
defaultMessage: "Stage Change"
}
];
case "releases":
return () => [
{
id: "releases.publish",
defaultMessage: "Publish"
}
];
}
};
var EventsTableEE = () => {
return (0, import_jsx_runtime.jsxs)(Events.Root, {
children: [
(0, import_jsx_runtime.jsx)(Events.Headers, {}),
(0, import_jsx_runtime.jsx)(Events.Body, {}),
Object.keys(eeTables).map((table) => (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Events.Headers, {
getHeaders: getHeaders(table)
}),
(0, import_jsx_runtime.jsx)(Events.Body, {
providedEvents: eeTables[table]
})
]
}))
]
});
};
export {
EventsTableEE
};
//# sourceMappingURL=EventsTable-XJDCSNI6.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.tsx"],
"sourcesContent": ["import { Events } from '../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/Events';\n\nconst eeTables = {\n 'review-workflows': {\n 'review-workflows': ['review-workflows.updateEntryStage'],\n },\n releases: {\n releases: ['releases.publish'],\n },\n};\n\nconst getHeaders = (table: keyof typeof eeTables) => {\n switch (table) {\n case 'review-workflows':\n return () => [{ id: 'review-workflows.updateEntryStage', defaultMessage: 'Stage Change' }];\n case 'releases':\n return () => [{ id: 'releases.publish', defaultMessage: 'Publish' }];\n }\n};\n\nconst EventsTableEE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n {(Object.keys(eeTables) as Array<keyof typeof eeTables>).map((table) => (\n <>\n <Events.Headers getHeaders={getHeaders(table)} />\n <Events.Body providedEvents={eeTables[table]} />\n </>\n ))}\n </Events.Root>\n );\n};\n\nexport { EventsTableEE };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,WAAW;EACf,oBAAoB;IAClB,oBAAoB;MAAC;IAAoC;EAC3D;EACAC,UAAU;IACRA,UAAU;MAAC;IAAmB;EAChC;AACF;AAEA,IAAMC,aAAa,CAACC,UAAAA;AAClB,UAAQA,OAAAA;IACN,KAAK;AACH,aAAO,MAAM;QAAC;UAAEC,IAAI;UAAqCC,gBAAgB;QAAe;MAAE;IAC5F,KAAK;AACH,aAAO,MAAM;QAAC;UAAED,IAAI;UAAoBC,gBAAgB;QAAU;MAAE;EACxE;AACF;AAEA,IAAMC,gBAAgB,MAAA;AACpB,aACEC,yBAACC,OAAOC,MAAI;;UACVC,wBAACF,OAAOG,SAAO,CAAA,CAAA;UACfD,wBAACF,OAAOI,MAAI,CAAA,CAAA;MACVC,OAAOC,KAAKd,QAAAA,EAA2Ce,IAAI,CAACZ,cAC5DI,yBAAAS,6BAAA;;cACEN,wBAACF,OAAOG,SAAO;YAACT,YAAYA,WAAWC,KAAAA;;cACvCO,wBAACF,OAAOI,MAAI;YAACK,gBAAgBjB,SAASG,KAAM;;;;;;AAKtD;",
"names": ["eeTables", "releases", "getHeaders", "table", "id", "defaultMessage", "EventsTableEE", "_jsxs", "Events", "Root", "_jsx", "Headers", "Body", "Object", "keys", "map", "_Fragment", "providedEvents"]
}

1363
server/node_modules/.strapi/vite/deps/History-UKPXPR4M.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,39 @@
import {
HomePage,
HomePageCE,
WidgetRoot
} from "./chunk-7UVG5SMN.js";
import "./chunk-7XW66K7Y.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-TIVRAWTC.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 {
HomePage,
HomePageCE,
WidgetRoot
};
//# sourceMappingURL=HomePage-MEN4IXSS.js.map

View File

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

View File

@@ -0,0 +1,51 @@
import {
HomePageCE
} from "./chunk-7UVG5SMN.js";
import "./chunk-7XW66K7Y.js";
import {
useLicenseLimitNotification
} from "./chunk-XCWGBHZU.js";
import "./chunk-AOLNGJZC.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-G2UWKDMB.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-TIVRAWTC.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 {
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/HomePage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var HomePageEE = () => {
useLicenseLimitNotification();
return (0, import_jsx_runtime.jsx)(HomePageCE, {});
};
export {
HomePageEE
};
//# sourceMappingURL=HomePage-YIBA6A7C.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/HomePage.tsx"],
"sourcesContent": ["import { HomePageCE } from '../../../../admin/src/pages/Home/HomePage';\nimport { useLicenseLimitNotification } from '../hooks/useLicenseLimitNotification';\n\nexport const HomePageEE = () => {\n useLicenseLimitNotification();\n\n return <HomePageCE />;\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGaA,aAAa,MAAA;AACxBC,8BAAAA;AAEA,aAAOC,wBAACC,YAAAA,CAAAA,CAAAA;AACV;",
"names": ["HomePageEE", "useLicenseLimitNotification", "_jsx", "HomePageCE"]
}

View File

@@ -0,0 +1,189 @@
import {
useGetPluginsQuery
} from "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import {
Page,
useAPIErrorHandler
} 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 {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Table,
Tbody,
Td,
Th,
Thead,
Tr,
Typography,
useIntl,
useNotifyAT
} from "./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 {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var InstalledPlugins = () => {
var _a;
const { formatMessage } = useIntl();
const { notifyStatus } = useNotifyAT();
const { toggleNotification } = useNotification();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { isLoading, data, error } = useGetPluginsQuery();
React.useEffect(() => {
if (data) {
notifyStatus(formatMessage({
id: "app.utils.notify.data-loaded",
defaultMessage: "The {target} has loaded"
}, {
target: formatMessage({
id: "global.plugins",
defaultMessage: "Plugins"
})
}));
}
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}, [
data,
error,
formatAPIError,
formatMessage,
notifyStatus,
toggleNotification
]);
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime.jsx)(Layouts.Root, {
children: (0, import_jsx_runtime.jsxs)(Page.Main, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: "global.plugins",
defaultMessage: "Plugins"
}),
subtitle: formatMessage({
id: "app.components.ListPluginsPage.description",
defaultMessage: "List of the installed plugins in the project."
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime.jsxs)(Table, {
colCount: 2,
rowCount: ((_a = data == null ? void 0 : data.plugins) == null ? void 0 : _a.length) ?? 0 + 1,
children: [
(0, import_jsx_runtime.jsx)(Thead, {
children: (0, import_jsx_runtime.jsxs)(Tr, {
children: [
(0, import_jsx_runtime.jsx)(Th, {
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.name",
defaultMessage: "Name"
})
})
}),
(0, import_jsx_runtime.jsx)(Th, {
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.description",
defaultMessage: "description"
})
})
})
]
})
}),
(0, import_jsx_runtime.jsx)(Tbody, {
children: data == null ? void 0 : data.plugins.map(({ name, displayName, description }) => {
return (0, import_jsx_runtime.jsxs)(Tr, {
children: [
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral800",
variant: "omega",
fontWeight: "bold",
children: formatMessage({
id: `global.plugins.${name}`,
defaultMessage: displayName
})
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral800",
children: formatMessage({
id: `global.plugins.${name}.description`,
defaultMessage: description
})
})
})
]
}, name);
})
})
]
})
})
]
})
});
};
var ProtectedInstalledPlugins = () => {
var _a;
const { formatMessage } = useIntl();
const permissions = useTypedSelector((state) => state.admin_app.permissions);
return (0, import_jsx_runtime.jsxs)(Page.Protect, {
permissions: (_a = permissions.marketplace) == null ? void 0 : _a.main,
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "global.plugins",
defaultMessage: "Plugins"
})
}),
(0, import_jsx_runtime.jsx)(InstalledPlugins, {})
]
});
};
export {
InstalledPlugins,
ProtectedInstalledPlugins
};
//# sourceMappingURL=InstalledPlugins-2G2Q3RKT.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/admin/src/pages/Settings/pages/InstalledPlugins.tsx"],
"sourcesContent": ["import * as React from 'react';\n\nimport { Table, Tbody, Td, Th, Thead, Tr, Typography, useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Layouts } from '../../../components/Layouts/Layout';\nimport { Page } from '../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { useGetPluginsQuery } from '../../../services/admin';\n\nconst InstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <Layouts.Content>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'description',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </Layouts.Content>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nconst ProtectedInstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n\n return (\n <Page.Protect permissions={permissions.marketplace?.main}>\n <Page.Title>\n {formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n </Page.Title>\n <InstalledPlugins />\n </Page.Protect>\n );\n};\n\nexport { ProtectedInstalledPlugins, InstalledPlugins };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,mBAAmB,MAAA;;AACvB,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAC1B,QAAM,EAAEC,aAAY,IAAKC,YAAAA;AACzB,QAAM,EAAEC,mBAAkB,IAAKC,gBAAAA;AAC/B,QAAM,EAAEC,yBAAyBC,eAAc,IAAKC,mBAAAA;AAEpD,QAAM,EAAEC,WAAWC,MAAMC,MAAK,IAAKC,mBAAAA;AAEnCC,EAAMC,gBAAU,MAAA;AACd,QAAIJ,MAAM;AACRR,mBACEF,cACE;QACEe,IAAI;QACJC,gBAAgB;SAElB;QACEC,QAAQjB,cAAc;UACpBe,IAAI;UACJC,gBAAgB;QAClB,CAAA;MACF,CAAA,CAAA;IAGN;AAEA,QAAIL,OAAO;AACTP,yBAAmB;QACjBc,MAAM;QACNC,SAASZ,eAAeI,KAAAA;MAC1B,CAAA;IACF;KACC;IAACD;IAAMC;IAAOJ;IAAgBP;IAAeE;IAAcE;EAAmB,CAAA;AAEjF,MAAIK,WAAW;AACb,eAAOW,wBAACC,KAAKC,SAAO,CAAA,CAAA;EACtB;AAEA,aACEF,wBAACG,QAAQC,MAAI;kBACXC,yBAACJ,KAAKK,MAAI;;YACRN,wBAACG,QAAQI,QAAM;UACbC,OAAO5B,cAAc;YACnBe,IAAI;YACJC,gBAAgB;UAClB,CAAA;UACAa,UAAU7B,cAAc;YACtBe,IAAI;YACJC,gBAAgB;UAClB,CAAA;;YAEFI,wBAACG,QAAQO,SAAO;UACd,cAAAL,yBAACM,OAAAA;YAAMC,UAAU;YAAGC,YAAUvB,kCAAMwB,YAANxB,mBAAeyB,WAAU,IAAI;;kBACzDf,wBAACgB,OAAAA;gBACC,cAAAX,yBAACY,IAAAA;;wBACCjB,wBAACkB,IAAAA;sBACC,cAAAlB,wBAACmB,YAAAA;wBAAWC,SAAQ;wBAAQC,WAAU;kCACnCzC,cAAc;0BACbe,IAAI;0BACJC,gBAAgB;wBAClB,CAAA;;;wBAGJI,wBAACkB,IAAAA;sBACC,cAAAlB,wBAACmB,YAAAA;wBAAWC,SAAQ;wBAAQC,WAAU;kCACnCzC,cAAc;0BACbe,IAAI;0BACJC,gBAAgB;wBAClB,CAAA;;;;;;kBAKRI,wBAACsB,OAAAA;0BACEhC,6BAAMwB,QAAQS,IAAI,CAAC,EAAEC,MAAMC,aAAaC,YAAW,MAAE;AACpD,6BACErB,yBAACY,IAAAA;;0BACCjB,wBAAC2B,IAAAA;wBACC,cAAA3B,wBAACmB,YAAAA;0BAAWE,WAAU;0BAAaD,SAAQ;0BAAQQ,YAAW;oCAC3DhD,cAAc;4BACbe,IAAI,kBAAkB6B,IAAAA;4BACtB5B,gBAAgB6B;0BAClB,CAAA;;;0BAGJzB,wBAAC2B,IAAAA;wBACC,cAAA3B,wBAACmB,YAAAA;0BAAWE,WAAU;oCACnBzC,cAAc;4BACbe,IAAI,kBAAkB6B,IAAAA;4BACtB5B,gBAAgB8B;0BAClB,CAAA;;;;kBAdGF,GAAAA,IAAAA;gBAmBb;;;;;;;;AAOd;AAEA,IAAMK,4BAA4B,MAAA;;AAChC,QAAM,EAAEjD,cAAa,IAAKC,QAAAA;AAC1B,QAAMiD,cAAcC,iBAAiB,CAACC,UAAUA,MAAMC,UAAUH,WAAW;AAE3E,aACEzB,yBAACJ,KAAKiC,SAAO;IAACJ,cAAaA,iBAAYK,gBAAZL,mBAAyBM;;UAClDpC,wBAACC,KAAKoC,OAAK;kBACRzD,cAAc;UACbe,IAAI;UACJC,gBAAgB;QAClB,CAAA;;UAEFI,wBAACrB,kBAAAA,CAAAA,CAAAA;;;AAGP;",
"names": ["InstalledPlugins", "formatMessage", "useIntl", "notifyStatus", "useNotifyAT", "toggleNotification", "useNotification", "_unstableFormatAPIError", "formatAPIError", "useAPIErrorHandler", "isLoading", "data", "error", "useGetPluginsQuery", "React", "useEffect", "id", "defaultMessage", "target", "type", "message", "_jsx", "Page", "Loading", "Layouts", "Root", "_jsxs", "Main", "Header", "title", "subtitle", "Content", "Table", "colCount", "rowCount", "plugins", "length", "Thead", "Tr", "Th", "Typography", "variant", "textColor", "Tbody", "map", "name", "displayName", "description", "Td", "fontWeight", "ProtectedInstalledPlugins", "permissions", "useTypedSelector", "state", "admin_app", "Protect", "marketplace", "main", "Title"]
}

View File

@@ -0,0 +1,310 @@
import {
require_sortBy
} from "./chunk-FSHORG2W.js";
import "./chunk-T2YF43GM.js";
import {
selectAdminPermissions
} from "./chunk-6HMBNYS4.js";
import "./chunk-NE3KAGU6.js";
import {
SETTINGS_LINKS_CE
} from "./chunk-4J3VOWQV.js";
import {
useEnterprise
} from "./chunk-W6ICJ5TB.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-EGNP2T5O.js";
import {
useAppInfo,
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import {
Page
} from "./chunk-5CAWUBTQ.js";
import {
useAuth,
useStrapiApp
} from "./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 {
SubNav,
SubNavHeader,
SubNavLink,
SubNavSection,
SubNavSections,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
NavLink,
Navigate,
Outlet,
useLocation,
useMatch
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$2t
} 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/Layout.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/admin/dist/admin/admin/src/hooks/useSettingsMenu.mjs
var React = __toESM(require_react(), 1);
var import_sortBy = __toESM(require_sortBy(), 1);
var formatLinks = (menu) => menu.map((menuSection) => {
const formattedLinks = menuSection.links.map((link) => ({
...link,
isDisplayed: false
}));
return {
...menuSection,
links: formattedLinks
};
});
var useSettingsMenu = () => {
const [{ isLoading, menu }, setData] = React.useState({
isLoading: true,
menu: []
});
const checkUserHasPermission = useAuth("useSettingsMenu", (state) => state.checkUserHasPermissions);
const shouldUpdateStrapi = useAppInfo("useSettingsMenu", (state) => state.shouldUpdateStrapi);
const settings = useStrapiApp("useSettingsMenu", (state) => state.settings);
const permissions = useSelector(selectAdminPermissions);
const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);
const { admin: adminLinks, global: globalLinks } = useEnterprise(ceLinks, async () => (await import("./constants-FPWWWQMK.js")).SETTINGS_LINKS_EE(), {
combine(ceLinks2, eeLinks) {
return {
admin: [
...eeLinks.admin,
...ceLinks2.admin
],
global: [
...ceLinks2.global,
...eeLinks.global
]
};
},
defaultValue: {
admin: [],
global: []
}
});
const addPermissions = React.useCallback((link) => {
var _a, _b;
if (!link.id) {
throw new Error("The settings menu item must have an id attribute.");
}
return {
...link,
permissions: ((_b = (_a = permissions.settings) == null ? void 0 : _a[link.id]) == null ? void 0 : _b.main) ?? []
};
}, [
permissions.settings
]);
React.useEffect(() => {
const getData = async () => {
const buildMenuPermissions = (sections2) => Promise.all(sections2.reduce((acc, section, sectionIndex) => {
const linksWithPermissions = section.links.map(async (link, linkIndex) => ({
hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,
sectionIndex,
linkIndex
}));
return [
...acc,
...linksWithPermissions
];
}, []));
const menuPermissions = await buildMenuPermissions(sections);
setData((prev) => {
return {
...prev,
isLoading: false,
menu: sections.map((section, sectionIndex) => ({
...section,
links: section.links.map((link, linkIndex) => {
const permission = menuPermissions.find((permission2) => permission2.sectionIndex === sectionIndex && permission2.linkIndex === linkIndex);
return {
...link,
isDisplayed: Boolean(permission == null ? void 0 : permission.hasPermission)
};
})
}))
};
});
};
const { global, ...otherSections } = settings;
const sections = formatLinks([
{
...global,
links: (0, import_sortBy.default)([
...global.links,
...globalLinks.map(addPermissions)
], (link) => link.id).map((link) => ({
...link,
hasNotification: link.id === "000-application-infos" && shouldUpdateStrapi
}))
},
{
id: "permissions",
intlLabel: {
id: "Settings.permissions",
defaultMessage: "Administration Panel"
},
links: adminLinks.map(addPermissions)
},
...Object.values(otherSections)
]);
getData();
}, [
adminLinks,
globalLinks,
settings,
shouldUpdateStrapi,
addPermissions,
checkUserHasPermission
]);
return {
isLoading,
menu: menu.map((menuItem) => ({
...menuItem,
links: menuItem.links.filter((link) => link.isDisplayed)
}))
};
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var CustomIcon = dt(ForwardRef$2t)`
right: 15px;
position: absolute;
bottom: 50%;
transform: translateY(50%);
path {
fill: ${({ theme }) => theme.colors.warning500};
}
`;
var Link = dt(SubNavLink)`
&.active ${CustomIcon} {
right: 13px;
}
`;
var SettingsNav = ({ menu }) => {
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const { pathname } = useLocation();
const filteredMenu = menu.filter((section) => !section.links.every((link) => link.isDisplayed === false));
const sections = filteredMenu.map((section) => {
return {
...section,
title: section.intlLabel,
links: section.links.map((link) => {
return {
...link,
title: link.intlLabel,
name: link.id
};
})
};
});
const label = formatMessage({
id: "global.settings",
defaultMessage: "Settings"
});
const handleClickOnLink = (destination) => () => {
trackUsage("willNavigate", {
from: pathname,
to: destination
});
};
return (0, import_jsx_runtime.jsxs)(SubNav, {
"aria-label": label,
children: [
(0, import_jsx_runtime.jsx)(SubNavHeader, {
label
}),
(0, import_jsx_runtime.jsx)(SubNavSections, {
children: sections.map((section) => (0, import_jsx_runtime.jsx)(SubNavSection, {
label: formatMessage(section.intlLabel),
children: section.links.map((link) => {
return (0, import_jsx_runtime.jsxs)(Link, {
tag: NavLink,
withBullet: link.hasNotification,
to: link.to,
onClick: handleClickOnLink(link.to),
position: "relative",
children: [
formatMessage(link.intlLabel),
(link == null ? void 0 : link.licenseOnly) && (0, import_jsx_runtime.jsx)(CustomIcon, {
width: "1.5rem",
height: "1.5rem"
})
]
}, link.id);
})
}, section.id))
})
]
});
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/Layout.mjs
var Layout = () => {
const match = useMatch("/settings/:settingId/*");
const { formatMessage } = useIntl();
const { isLoading, menu } = useSettingsMenu();
if (isLoading) {
return (0, import_jsx_runtime2.jsx)(Page.Loading, {});
}
if (!(match == null ? void 0 : match.params.settingId)) {
return (0, import_jsx_runtime2.jsx)(Navigate, {
to: "application-infos"
});
}
return (0, import_jsx_runtime2.jsxs)(Layouts.Root, {
sideNav: (0, import_jsx_runtime2.jsx)(SettingsNav, {
menu
}),
children: [
(0, import_jsx_runtime2.jsx)(Page.Title, {
children: formatMessage({
id: "global.settings",
defaultMessage: "Settings"
})
}),
(0, import_jsx_runtime2.jsx)(Outlet, {})
]
});
};
export {
Layout
};
//# sourceMappingURL=Layout-YJQED5MA.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,927 @@
import {
CardDragPreview
} from "./chunk-D6ZHL7AV.js";
import {
FieldTypeIcon
} from "./chunk-CD3FLTLL.js";
import {
useTypedSelector
} from "./chunk-VE2D6HMA.js";
import {
COLLECTION_TYPES,
ItemTypes,
SINGLE_TYPES,
checkIfAttributeIsDisplayable,
setIn,
useDoc,
useDocLayout,
useDragAndDrop,
useGetContentTypeConfigurationQuery,
useUpdateContentTypeConfigurationMutation
} from "./chunk-UATNJIHQ.js";
import {
capitalise
} from "./chunk-P4VL3IHZ.js";
import {
getTranslation
} from "./chunk-HIZVCZYI.js";
import "./chunk-QF6GPHA4.js";
import {
getEmptyImage
} from "./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 {
BackButton
} from "./chunk-IY256CNP.js";
import "./chunk-IFOFBKTA.js";
import {
create3 as create,
create4 as create2,
create6 as create3
} from "./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 {
MemoizedInputRenderer
} from "./chunk-6AXVGFVQ.js";
import {
Form,
useField,
useForm
} from "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.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,
Divider,
Flex,
Grid,
Main,
Menu,
Modal,
Typography,
VisuallyHidden,
useCollator,
useComposedRefs,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import {
Navigate,
useParams
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h,
ForwardRef$1v,
ForwardRef$3T,
ForwardRef$45
} 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/content-manager/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs
var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
var React4 = __toESM(require_react(), 1);
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/Header.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var Header = ({ name }) => {
const { formatMessage } = useIntl();
const params = useParams();
const modified = useForm("Header", (state) => state.modified);
const isSubmitting = useForm("Header", (state) => state.isSubmitting);
return (0, import_jsx_runtime.jsx)(Layouts.Header, {
navigationAction: (0, import_jsx_runtime.jsx)(BackButton, {
fallback: `../${COLLECTION_TYPES}/${params.slug}`
}),
primaryAction: (0, import_jsx_runtime.jsx)(Button, {
size: "S",
disabled: !modified,
type: "submit",
loading: isSubmitting,
children: formatMessage({
id: "global.save",
defaultMessage: "Save"
})
}),
subtitle: formatMessage({
id: getTranslation("components.SettingsViewWrapper.pluginHeader.description.list-settings"),
defaultMessage: "Define the settings of the list view."
}),
title: formatMessage({
id: getTranslation("components.SettingsViewWrapper.pluginHeader.title"),
defaultMessage: "Configure the view - {name}"
}, {
name: capitalise(name)
})
});
};
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/Settings.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var EXCLUDED_SORT_ATTRIBUTE_TYPES = [
"media",
"richtext",
"dynamiczone",
"relation",
"component",
"json",
"blocks"
];
var Settings = () => {
const { formatMessage, locale } = useIntl();
const formatter = useCollator(locale, {
sensitivity: "base"
});
const { schema } = useDoc();
const layout = useForm("Settings", (state) => state.values.layout ?? []);
const currentSortBy = useForm("Settings", (state) => state.values.settings.defaultSortBy);
const onChange = useForm("Settings", (state) => state.onChange);
const sortOptions = React.useMemo(() => Object.values(layout).reduce((acc, field) => {
if (schema && !EXCLUDED_SORT_ATTRIBUTE_TYPES.includes(schema.attributes[field.name].type)) {
acc.push({
value: field.name,
label: typeof field.label !== "string" ? formatMessage(field.label) : field.label
});
}
return acc;
}, []), [
formatMessage,
layout,
schema
]);
const sortOptionsSorted = sortOptions.sort((a, b) => formatter.compare(a.label, b.label));
React.useEffect(() => {
var _a;
if (sortOptionsSorted.findIndex((opt) => opt.value === currentSortBy) === -1) {
onChange("settings.defaultSortBy", (_a = sortOptionsSorted[0]) == null ? void 0 : _a.value);
}
}, [
currentSortBy,
onChange,
sortOptionsSorted
]);
const formLayout = React.useMemo(() => SETTINGS_FORM_LAYOUT.map((row) => row.map((field) => {
if (field.type === "enumeration") {
return {
...field,
hint: field.hint ? formatMessage(field.hint) : void 0,
label: formatMessage(field.label),
options: field.name === "settings.defaultSortBy" ? sortOptionsSorted : field.options
};
} else {
return {
...field,
hint: field.hint ? formatMessage(field.hint) : void 0,
label: formatMessage(field.label)
};
}
})), [
formatMessage,
sortOptionsSorted
]);
return (0, import_jsx_runtime2.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
(0, import_jsx_runtime2.jsx)(Typography, {
variant: "delta",
tag: "h2",
children: formatMessage({
id: getTranslation("containers.SettingPage.settings"),
defaultMessage: "Settings"
})
}),
(0, import_jsx_runtime2.jsx)(Grid.Root, {
gap: 4,
children: formLayout.map((row) => row.map(({ size, ...field }) => (0, import_jsx_runtime2.jsx)(Grid.Item, {
s: 12,
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime2.jsx)(MemoizedInputRenderer, {
...field
})
}, field.name)))
}, "bottom")
]
});
};
var SETTINGS_FORM_LAYOUT = [
[
{
label: {
id: getTranslation("form.Input.search"),
defaultMessage: "Enable search"
},
name: "settings.searchable",
size: 4,
type: "boolean"
},
{
label: {
id: getTranslation("form.Input.filters"),
defaultMessage: "Enable filters"
},
name: "settings.filterable",
size: 4,
type: "boolean"
},
{
label: {
id: getTranslation("form.Input.bulkActions"),
defaultMessage: "Enable bulk actions"
},
name: "settings.bulkable",
size: 4,
type: "boolean"
}
],
[
{
hint: {
id: getTranslation("form.Input.pageEntries.inputDescription"),
defaultMessage: "Note: You can override this value in the Collection Type settings page."
},
label: {
id: getTranslation("form.Input.pageEntries"),
defaultMessage: "Entries per page"
},
name: "settings.pageSize",
options: [
"10",
"20",
"50",
"100"
].map((value) => ({
value,
label: value
})),
size: 6,
type: "enumeration"
},
{
label: {
id: getTranslation("form.Input.defaultSort"),
defaultMessage: "Default sort attribute"
},
name: "settings.defaultSortBy",
options: [],
size: 3,
type: "enumeration"
},
{
label: {
id: getTranslation("form.Input.sort.order"),
defaultMessage: "Default sort order"
},
name: "settings.defaultSortOrder",
options: [
"ASC",
"DESC"
].map((value) => ({
value,
label: value
})),
size: 3,
type: "enumeration"
}
]
];
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs
var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
var React3 = __toESM(require_react(), 1);
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs
var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
var React2 = __toESM(require_react(), 1);
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
var FIELD_SCHEMA = create3().shape({
label: create2().required(),
sortable: create()
});
var EditFieldForm = ({ attribute, name, onClose }) => {
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const { value, onChange } = useField(name);
if (!value) {
console.error("You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.");
toggleNotification({
message: formatMessage({
id: "content-manager.containers.list-settings.modal-form.error",
defaultMessage: "An error occurred while trying to open the form."
}),
type: "danger"
});
return null;
}
let shouldDisplaySortToggle = ![
"media",
"relation"
].includes(attribute.type);
if ("relation" in attribute && [
"oneWay",
"oneToOne",
"manyToOne"
].includes(attribute.relation)) {
shouldDisplaySortToggle = true;
}
return (0, import_jsx_runtime3.jsx)(Modal.Content, {
children: (0, import_jsx_runtime3.jsxs)(Form, {
method: "PUT",
initialValues: value,
validationSchema: FIELD_SCHEMA,
onSubmit: (data) => {
onChange(name, data);
onClose();
},
children: [
(0, import_jsx_runtime3.jsx)(Modal.Header, {
children: (0, import_jsx_runtime3.jsxs)(HeaderContainer, {
children: [
(0, import_jsx_runtime3.jsx)(FieldTypeIcon, {
type: attribute.type
}),
(0, import_jsx_runtime3.jsx)(Modal.Title, {
children: formatMessage({
id: getTranslation("containers.list-settings.modal-form.label"),
defaultMessage: "Edit {fieldName}"
}, {
fieldName: capitalise(value.label)
})
})
]
})
}),
(0, import_jsx_runtime3.jsx)(Modal.Body, {
children: (0, import_jsx_runtime3.jsx)(Grid.Root, {
gap: 4,
children: [
{
name: "label",
label: formatMessage({
id: getTranslation("form.Input.label"),
defaultMessage: "Label"
}),
hint: formatMessage({
id: getTranslation("form.Input.label.inputDescription"),
defaultMessage: "This value overrides the label displayed in the table's head"
}),
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTranslation("form.Input.sort.field"),
defaultMessage: "Enable sort on this field"
}),
name: "sortable",
size: 6,
type: "boolean"
}
].filter((field) => field.name !== "sortable" || field.name === "sortable" && shouldDisplaySortToggle).map(({ size, ...field }) => (0, import_jsx_runtime3.jsx)(Grid.Item, {
s: 12,
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime3.jsx)(MemoizedInputRenderer, {
...field
})
}, field.name))
})
}),
(0, import_jsx_runtime3.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime3.jsx)(Button, {
onClick: onClose,
variant: "tertiary",
children: formatMessage({
id: "app.components.Button.cancel",
defaultMessage: "Cancel"
})
}),
(0, import_jsx_runtime3.jsx)(Button, {
type: "submit",
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
})
]
})
});
};
var HeaderContainer = dt(Flex)`
svg {
width: 3.2rem;
margin-right: ${({ theme }) => theme.spaces[3]};
}
`;
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs
var DraggableCard = ({ attribute, index, isDraggingSibling, label, name, onMoveField, onRemoveField, setIsDraggingSibling }) => {
const [isModalOpen, setIsModalOpen] = React2.useState(false);
const { formatMessage } = useIntl();
const [, forceRerenderAfterDnd] = React2.useState(false);
const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(true, {
type: ItemTypes.FIELD,
item: {
index,
label,
name
},
index,
onMoveItem: onMoveField,
onEnd: () => setIsDraggingSibling(false)
});
React2.useEffect(() => {
dragPreviewRef(getEmptyImage(), {
captureDraggingState: false
});
}, [
dragPreviewRef
]);
React2.useEffect(() => {
if (isDragging) {
setIsDraggingSibling(true);
}
}, [
isDragging,
setIsDraggingSibling
]);
React2.useEffect(() => {
if (!isDraggingSibling) {
forceRerenderAfterDnd((prev) => !prev);
}
}, [
isDraggingSibling
]);
const composedRefs = useComposedRefs(dropRef, objectRef);
return (0, import_jsx_runtime4.jsxs)(FieldWrapper, {
ref: composedRefs,
children: [
isDragging && (0, import_jsx_runtime4.jsx)(CardDragPreview, {
label
}),
!isDragging && isDraggingSibling && (0, import_jsx_runtime4.jsx)(CardDragPreview, {
isSibling: true,
label
}),
!isDragging && !isDraggingSibling && (0, import_jsx_runtime4.jsxs)(FieldContainer, {
borderColor: "neutral150",
background: "neutral100",
hasRadius: true,
justifyContent: "space-between",
onClick: () => setIsModalOpen(true),
children: [
(0, import_jsx_runtime4.jsxs)(Flex, {
gap: 3,
children: [
(0, import_jsx_runtime4.jsx)(DragButton, {
ref: dragRef,
"aria-label": formatMessage({
id: getTranslation("components.DraggableCard.move.field"),
defaultMessage: "Move {item}"
}, {
item: label
}),
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime4.jsx)(ForwardRef$3T, {})
}),
(0, import_jsx_runtime4.jsx)(Typography, {
fontWeight: "bold",
children: label
})
]
}),
(0, import_jsx_runtime4.jsxs)(Flex, {
paddingLeft: 3,
onClick: (e) => e.stopPropagation(),
children: [
(0, import_jsx_runtime4.jsxs)(Modal.Root, {
open: isModalOpen,
onOpenChange: setIsModalOpen,
children: [
(0, import_jsx_runtime4.jsx)(Modal.Trigger, {
children: (0, import_jsx_runtime4.jsx)(ActionButton, {
onClick: (e) => {
e.stopPropagation();
},
"aria-label": formatMessage({
id: getTranslation("components.DraggableCard.edit.field"),
defaultMessage: "Edit {item}"
}, {
item: label
}),
type: "button",
children: (0, import_jsx_runtime4.jsx)(ForwardRef$1v, {
width: "1.2rem",
height: "1.2rem"
})
})
}),
(0, import_jsx_runtime4.jsx)(EditFieldForm, {
attribute,
name: `layout.${index}`,
onClose: () => {
setIsModalOpen(false);
}
})
]
}),
(0, import_jsx_runtime4.jsx)(ActionButton, {
onClick: onRemoveField,
"data-testid": `delete-${name}`,
"aria-label": formatMessage({
id: getTranslation("components.DraggableCard.delete.field"),
defaultMessage: "Delete {item}"
}, {
item: label
}),
type: "button",
children: (0, import_jsx_runtime4.jsx)(ForwardRef$45, {
width: "1.2rem",
height: "1.2rem"
})
})
]
})
]
})
]
});
};
var ActionButton = dt.button`
display: flex;
align-items: center;
height: ${({ theme }) => theme.spaces[7]};
color: ${({ theme }) => theme.colors.neutral600};
&:hover {
color: ${({ theme }) => theme.colors.neutral700};
}
&:last-child {
padding: 0 ${({ theme }) => theme.spaces[3]};
}
`;
var DragButton = dt(ActionButton)`
padding: 0 ${({ theme }) => theme.spaces[3]};
border-right: 1px solid ${({ theme }) => theme.colors.neutral150};
cursor: all-scroll;
`;
var FieldContainer = dt(Flex)`
max-height: 3.2rem;
cursor: pointer;
`;
var FieldWrapper = dt(Box)`
&:last-child {
padding-right: ${({ theme }) => theme.spaces[3]};
}
`;
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs
var SortDisplayedFields = () => {
const { formatMessage } = useIntl();
const { model, schema } = useDoc();
const [isDraggingSibling, setIsDraggingSibling] = React3.useState(false);
const [lastAction, setLastAction] = React3.useState(null);
const scrollableContainerRef = React3.useRef(null);
const values = useForm("SortDisplayedFields", (state) => state.values.layout ?? []);
const addFieldRow = useForm("SortDisplayedFields", (state) => state.addFieldRow);
const removeFieldRow = useForm("SortDisplayedFields", (state) => state.removeFieldRow);
const moveFieldRow = useForm("SortDisplayedFields", (state) => state.moveFieldRow);
const { metadata: allMetadata } = useGetContentTypeConfigurationQuery(model, {
selectFromResult: ({ data }) => ({
metadata: (data == null ? void 0 : data.contentType.metadatas) ?? {}
})
});
const nonDisplayedFields = React3.useMemo(() => {
if (!schema) {
return [];
}
const displayedFieldNames = values.map((field) => field.name);
return Object.entries(schema.attributes).reduce((acc, [name, attribute]) => {
if (!displayedFieldNames.includes(name) && checkIfAttributeIsDisplayable(attribute)) {
const { list: metadata } = allMetadata[name];
acc.push({
name,
label: metadata.label || name,
sortable: metadata.sortable
});
}
return acc;
}, []);
}, [
allMetadata,
values,
schema
]);
const handleAddField = (field) => {
setLastAction("add");
addFieldRow("layout", field);
};
const handleRemoveField = (index) => {
setLastAction("remove");
removeFieldRow("layout", index);
};
const handleMoveField = (dragIndex, hoverIndex) => {
moveFieldRow("layout", dragIndex, hoverIndex);
};
React3.useEffect(() => {
if (lastAction === "add" && (scrollableContainerRef == null ? void 0 : scrollableContainerRef.current)) {
scrollableContainerRef.current.scrollLeft = scrollableContainerRef.current.scrollWidth;
}
}, [
lastAction
]);
return (0, import_jsx_runtime5.jsxs)(Flex, {
alignItems: "stretch",
direction: "column",
gap: 4,
children: [
(0, import_jsx_runtime5.jsx)(Typography, {
variant: "delta",
tag: "h2",
children: formatMessage({
id: getTranslation("containers.SettingPage.view"),
defaultMessage: "View"
})
}),
(0, import_jsx_runtime5.jsxs)(Flex, {
padding: 4,
borderColor: "neutral300",
borderStyle: "dashed",
borderWidth: "1px",
hasRadius: true,
children: [
(0, import_jsx_runtime5.jsx)(Box, {
flex: "1",
overflow: "auto hidden",
ref: scrollableContainerRef,
children: (0, import_jsx_runtime5.jsx)(Flex, {
gap: 3,
children: values.map((field, index) => (0, import_jsx_runtime5.jsx)(DraggableCard, {
index,
isDraggingSibling,
onMoveField: handleMoveField,
onRemoveField: () => handleRemoveField(index),
setIsDraggingSibling,
...field,
attribute: schema.attributes[field.name],
label: typeof field.label === "object" ? formatMessage(field.label) : field.label
}, field.name))
})
}),
(0, import_jsx_runtime5.jsxs)(Menu.Root, {
children: [
(0, import_jsx_runtime5.jsxs)(Menu.Trigger, {
paddingLeft: 2,
paddingRight: 2,
justifyContent: "center",
endIcon: null,
disabled: nonDisplayedFields.length === 0,
variant: "tertiary",
children: [
(0, import_jsx_runtime5.jsx)(VisuallyHidden, {
tag: "span",
children: formatMessage({
id: getTranslation("components.FieldSelect.label"),
defaultMessage: "Add a field"
})
}),
(0, import_jsx_runtime5.jsx)(ForwardRef$1h, {
"aria-hidden": true,
focusable: false,
style: {
position: "relative",
top: 2
}
})
]
}),
(0, import_jsx_runtime5.jsx)(Menu.Content, {
children: nonDisplayedFields.map((field) => (0, import_jsx_runtime5.jsx)(Menu.Item, {
onSelect: () => handleAddField(field),
children: typeof field.label === "object" ? formatMessage(field.label) : field.label
}, field.name))
})
]
})
]
})
]
});
};
// node_modules/@strapi/content-manager/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs
var ListConfiguration = () => {
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const { toggleNotification } = useNotification();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { model, collectionType } = useDoc();
const { isLoading: isLoadingLayout, list, edit } = useDocLayout();
const [updateContentTypeConfiguration] = useUpdateContentTypeConfigurationMutation();
const handleSubmit = async (data) => {
try {
trackUsage("willSaveContentTypeLayout");
const layoutData = data.layout ?? [];
const meta = Object.entries(edit.metadatas).reduce((acc, [name, editMeta]) => {
const { mainField: _mainField, ...listMeta } = list.metadatas[name];
const { label, sortable } = layoutData.find((field) => field.name === name) ?? {};
acc[name] = {
edit: editMeta,
list: {
...listMeta,
label: label || listMeta.label,
sortable: sortable || listMeta.sortable
}
};
return acc;
}, {});
const res = await updateContentTypeConfiguration({
layouts: {
edit: edit.layout.flatMap((panel) => panel.map((row) => row.map(({ name, size }) => ({
name,
size
})))),
list: layoutData.map((field) => field.name)
},
settings: setIn(data.settings, "displayName", void 0),
metadatas: meta,
uid: model
});
if ("data" in res) {
trackUsage("didEditListSettings");
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
} else {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
} catch (err) {
console.error(err);
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
const initialValues = React4.useMemo(() => {
return {
layout: list.layout.map(({ label, sortable, name }) => ({
label: typeof label === "string" ? label : formatMessage(label),
sortable,
name
})),
settings: list.settings
};
}, [
formatMessage,
list.layout,
list.settings
]);
if (collectionType === SINGLE_TYPES) {
return (0, import_jsx_runtime6.jsx)(Navigate, {
to: `/single-types/${model}`
});
}
if (isLoadingLayout) {
return (0, import_jsx_runtime6.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime6.jsxs)(Layouts.Root, {
children: [
(0, import_jsx_runtime6.jsx)(Page.Title, {
children: `Configure ${list.settings.displayName} List View`
}),
(0, import_jsx_runtime6.jsx)(Main, {
children: (0, import_jsx_runtime6.jsxs)(Form, {
initialValues,
onSubmit: handleSubmit,
method: "PUT",
children: [
(0, import_jsx_runtime6.jsx)(Header, {
collectionType,
model,
name: list.settings.displayName ?? ""
}),
(0, import_jsx_runtime6.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime6.jsxs)(Flex, {
alignItems: "stretch",
background: "neutral0",
direction: "column",
gap: 6,
hasRadius: true,
shadow: "tableShadow",
paddingTop: 6,
paddingBottom: 6,
paddingLeft: 7,
paddingRight: 7,
children: [
(0, import_jsx_runtime6.jsx)(Settings, {}),
(0, import_jsx_runtime6.jsx)(Divider, {}),
(0, import_jsx_runtime6.jsx)(SortDisplayedFields, {})
]
})
})
]
})
})
]
});
};
var ProtectedListConfiguration = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.contentManager) == null ? void 0 : _a.collectionTypesConfigurations;
});
return (0, import_jsx_runtime6.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime6.jsx)(ListConfiguration, {})
});
};
export {
ListConfiguration,
ProtectedListConfiguration
};
//# sourceMappingURL=ListConfigurationPage-ZKNKECIW.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,54 @@
import {
ListPage,
ListPageCE,
ProtectedListPage
} from "./chunk-PZDMARGJ.js";
import "./chunk-XCWIZEDM.js";
import "./chunk-RQXXWIIX.js";
import "./chunk-FURFN7BE.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.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-PVNXTKO6.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 "./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 {
ListPage,
ListPageCE,
ProtectedListPage
};
//# sourceMappingURL=ListPage-2YHQLOA5.js.map

View File

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

View File

@@ -0,0 +1,425 @@
import {
selectAdminPermissions
} from "./chunk-6HMBNYS4.js";
import {
useAdminRoles
} from "./chunk-RQXXWIIX.js";
import {
useFetchClient
} from "./chunk-FCIM6RNO.js";
import {
SearchInput
} from "./chunk-J33IXKN4.js";
import {
ConfirmDialog
} from "./chunk-NP53ZCXD.js";
import "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.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 {
useQueryParams
} from "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
isFetchError
} 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,
Flex,
IconButton,
TFooter,
Table,
Tbody,
Td,
Th,
Thead,
Tr,
Typography,
VisuallyHidden,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h,
ForwardRef$1v,
ForwardRef$3R,
ForwardRef$j
} 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/ListPage.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/RoleRow.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var RoleRow = ({ id, name, description, usersCount, icons, rowIndex, canUpdate, cursor }) => {
const { formatMessage } = useIntl();
const [, editObject] = icons;
const usersCountText = formatMessage({
id: `Roles.RoleRow.user-count`,
defaultMessage: "{number, plural, =0 {# user} one {# user} other {# users}}"
}, {
number: usersCount
});
return (0, import_jsx_runtime.jsxs)(Tr, {
cursor,
"aria-rowindex": rowIndex,
// @ts-expect-error the prop uses `HTMLButtonElement` but we just specify `HTMLElement`
onClick: canUpdate ? editObject.onClick : void 0,
children: [
(0, import_jsx_runtime.jsx)(Td, {
maxWidth: `13rem`,
children: (0, import_jsx_runtime.jsx)(Typography, {
ellipsis: true,
textColor: "neutral800",
children: name
})
}),
(0, import_jsx_runtime.jsx)(Td, {
maxWidth: `25rem`,
children: (0, import_jsx_runtime.jsx)(Typography, {
ellipsis: true,
textColor: "neutral800",
children: description
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral800",
children: usersCountText
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Flex, {
justifyContent: "flex-end",
onClick: (e) => e.stopPropagation(),
children: icons.map((icon, i) => {
if (icon) {
return (0, import_jsx_runtime.jsx)(Box, {
paddingLeft: i === 0 ? 0 : 1,
children: (0, import_jsx_runtime.jsx)(IconButton, {
...icon,
variant: "ghost"
})
}, icon.label);
}
return null;
})
})
})
]
}, id);
};
// node_modules/@strapi/admin/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs
var ListPage = () => {
var _a;
const { formatMessage } = useIntl();
const permissions = useTypedSelector(selectAdminPermissions);
const { formatAPIError } = useAPIErrorHandler();
const { toggleNotification } = useNotification();
const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);
const [{ query }] = useQueryParams();
const { isLoading: isLoadingForPermissions, allowedActions: { canCreate, canDelete, canRead, canUpdate } } = useRBAC((_a = permissions.settings) == null ? void 0 : _a.roles);
const { roles, refetch: refetchRoles } = useAdminRoles({
filters: (query == null ? void 0 : query._q) ? {
name: {
$containsi: query._q
}
} : void 0
}, {
refetchOnMountOrArgChange: true,
skip: isLoadingForPermissions || !canRead
});
const navigate = useNavigate();
const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);
const { post } = useFetchClient();
const handleDeleteData = async () => {
try {
dispatch({
type: "ON_REMOVE_ROLES"
});
await post("/admin/roles/batch-delete", {
ids: [
roleToDelete
]
});
await refetchRoles();
dispatch({
type: "RESET_DATA_TO_DELETE"
});
} catch (error) {
if (isFetchError(error)) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}
};
const handleNewRoleClick = () => navigate("new");
const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);
const handleClickDelete = (role) => (e) => {
e.preventDefault();
e.stopPropagation();
if (role.usersCount) {
toggleNotification({
type: "info",
message: formatMessage({
id: "Roles.ListPage.notification.delete-not-allowed"
})
});
} else {
dispatch({
type: "SET_ROLE_TO_DELETE",
id: role.id
});
handleToggleModal();
}
};
const handleClickDuplicate = (role) => (e) => {
e.preventDefault();
e.stopPropagation();
navigate(`duplicate/${role.id}`);
};
const rowCount = roles.length + 1;
const colCount = 6;
if (isLoadingForPermissions) {
return (0, import_jsx_runtime2.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime2.jsxs)(Page.Main, {
children: [
(0, import_jsx_runtime2.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Roles"
})
}),
(0, import_jsx_runtime2.jsx)(Layouts.Header, {
primaryAction: canCreate ? (0, import_jsx_runtime2.jsx)(Button, {
onClick: handleNewRoleClick,
startIcon: (0, import_jsx_runtime2.jsx)(ForwardRef$1h, {}),
size: "S",
children: formatMessage({
id: "Settings.roles.list.button.add",
defaultMessage: "Add new role"
})
}) : null,
title: formatMessage({
id: "global.roles",
defaultMessage: "roles"
}),
subtitle: formatMessage({
id: "Settings.roles.list.description",
defaultMessage: "List of roles"
})
}),
canRead && (0, import_jsx_runtime2.jsx)(Layouts.Action, {
startActions: (0, import_jsx_runtime2.jsx)(SearchInput, {
label: formatMessage({
id: "app.component.search.label",
defaultMessage: "Search for {target}"
}, {
target: formatMessage({
id: "global.roles",
defaultMessage: "roles"
})
})
})
}),
canRead && (0, import_jsx_runtime2.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime2.jsxs)(Table, {
colCount,
rowCount,
footer: canCreate ? (0, import_jsx_runtime2.jsx)(TFooter, {
cursor: "pointer",
onClick: handleNewRoleClick,
icon: (0, import_jsx_runtime2.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: "Settings.roles.list.button.add",
defaultMessage: "Add new role"
})
}) : null,
children: [
(0, import_jsx_runtime2.jsx)(Thead, {
children: (0, import_jsx_runtime2.jsxs)(Tr, {
"aria-rowindex": 1,
children: [
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.name",
defaultMessage: "Name"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.description",
defaultMessage: "Description"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.users",
defaultMessage: "Users"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(VisuallyHidden, {
children: formatMessage({
id: "global.actions",
defaultMessage: "Actions"
})
})
})
]
})
}),
(0, import_jsx_runtime2.jsx)(Tbody, {
children: roles == null ? void 0 : roles.map((role, index) => (0, import_jsx_runtime2.jsx)(RoleRow, {
cursor: "pointer",
id: role.id,
name: role.name,
description: role.description,
usersCount: role.usersCount,
icons: [
canCreate && {
onClick: handleClickDuplicate(role),
label: formatMessage({
id: "app.utils.duplicate",
defaultMessage: "Duplicate"
}),
children: (0, import_jsx_runtime2.jsx)(ForwardRef$3R, {})
},
canUpdate && {
onClick: () => navigate(role.id.toString()),
label: formatMessage({
id: "app.utils.edit",
defaultMessage: "Edit"
}),
children: (0, import_jsx_runtime2.jsx)(ForwardRef$1v, {})
},
canDelete && {
onClick: handleClickDelete(role),
label: formatMessage({
id: "global.delete",
defaultMessage: "Delete"
}),
children: (0, import_jsx_runtime2.jsx)(ForwardRef$j, {})
}
].filter(Boolean),
rowIndex: index + 2,
canUpdate
}, role.id))
})
]
})
}),
(0, import_jsx_runtime2.jsx)(Dialog.Root, {
open: isWarningDeleteAllOpened,
onOpenChange: handleToggleModal,
children: (0, import_jsx_runtime2.jsx)(ConfirmDialog, {
onConfirm: handleDeleteData
})
})
]
});
};
var initialState = {
roleToDelete: null,
showModalConfirmButtonLoading: false,
shouldRefetchData: false
};
var reducer = (state, action) => fn(state, (draftState) => {
switch (action.type) {
case "ON_REMOVE_ROLES": {
draftState.showModalConfirmButtonLoading = true;
break;
}
case "ON_REMOVE_ROLES_SUCCEEDED": {
draftState.shouldRefetchData = true;
draftState.roleToDelete = null;
break;
}
case "RESET_DATA_TO_DELETE": {
draftState.shouldRefetchData = false;
draftState.roleToDelete = null;
draftState.showModalConfirmButtonLoading = false;
break;
}
case "SET_ROLE_TO_DELETE": {
draftState.roleToDelete = action.id;
break;
}
default:
return draftState;
}
});
var ProtectedListPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.roles.read;
});
return (0, import_jsx_runtime2.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime2.jsx)(ListPage, {})
});
};
export {
ListPage,
ProtectedListPage
};
//# sourceMappingURL=ListPage-2ZENPU4F.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,680 @@
import {
getDisplayName
} from "./chunk-PVNXTKO6.js";
import {
Filters
} from "./chunk-C75BZXCZ.js";
import {
Pagination
} from "./chunk-APGTER6B.js";
import {
Table
} from "./chunk-ZM6TT53G.js";
import "./chunk-6AXVGFVQ.js";
import {
useField
} from "./chunk-BFLP6DBI.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import {
parseISO
} from "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import {
useAdminUsers
} 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 {
useQueryParams
} from "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
adminApi
} 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,
Breadcrumbs,
Combobox,
Crumb,
Field,
Flex,
Grid,
IconButton,
JSONInput,
Loader,
Modal,
Option,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$3D
} 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/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
// node_modules/@strapi/admin/dist/admin/ee/admin/src/services/auditLogs.mjs
var auditLogsService = adminApi.injectEndpoints({
endpoints: (builder) => ({
getAuditLogs: builder.query({
query: (params) => ({
url: `/admin/audit-logs`,
config: {
params
}
})
}),
getAuditLog: builder.query({
query: (id) => `/admin/audit-logs/${id}`
})
}),
overrideExisting: false
});
var { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs
var useFormatTimeStamp = () => {
const { formatDate } = useIntl();
const formatTimeStamp = (value) => {
const date = parseISO(value);
const formattedDate = formatDate(date, {
dateStyle: "long"
});
const formattedTime = formatDate(date, {
timeStyle: "medium",
hourCycle: "h24"
});
return `${formattedDate}, ${formattedTime}`;
};
return formatTimeStamp;
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs
var actionTypes = {
"entry.create": "Create entry{model, select, undefined {} other { ({model})}}",
"entry.update": "Update entry{model, select, undefined {} other { ({model})}}",
"entry.delete": "Delete entry{model, select, undefined {} other { ({model})}}",
"entry.publish": "Publish entry{model, select, undefined {} other { ({model})}}",
"entry.unpublish": "Unpublish entry{model, select, undefined {} other { ({model})}}",
"media.create": "Create media",
"media.update": "Update media",
"media.delete": "Delete media",
"media-folder.create": "Create media folder",
"media-folder.update": "Update media folder",
"media-folder.delete": "Delete media folder",
"user.create": "Create user",
"user.update": "Update user",
"user.delete": "Delete user",
"admin.auth.success": "Admin login",
"admin.logout": "Admin logout",
"content-type.create": "Create content type",
"content-type.update": "Update content type",
"content-type.delete": "Delete content type",
"component.create": "Create component",
"component.update": "Update component",
"component.delete": "Delete component",
"role.create": "Create role",
"role.update": "Update role",
"role.delete": "Delete role",
"permission.create": "Create permission",
"permission.update": "Update permission",
"permission.delete": "Delete permission"
};
var getDefaultMessage = (value) => {
return actionTypes[value] || value;
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs
var Modal2 = ({ handleClose, logId }) => {
const { toggleNotification } = useNotification();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { data, error, isLoading } = useGetAuditLogQuery(logId);
React.useEffect(() => {
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
handleClose();
}
}, [
error,
formatAPIError,
handleClose,
toggleNotification
]);
const formatTimeStamp = useFormatTimeStamp();
const formattedDate = data && "date" in data ? formatTimeStamp(data.date) : "";
return (0, import_jsx_runtime.jsx)(Modal.Root, {
defaultOpen: true,
onOpenChange: handleClose,
children: (0, import_jsx_runtime.jsxs)(Modal.Content, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Header, {
children: (0, import_jsx_runtime.jsx)(Breadcrumbs, {
label: formattedDate,
id: "title",
children: (0, import_jsx_runtime.jsx)(Crumb, {
isCurrent: true,
children: formattedDate
})
})
}),
(0, import_jsx_runtime.jsx)(Modal.Body, {
children: (0, import_jsx_runtime.jsx)(ActionBody, {
isLoading,
data,
formattedDate
})
})
]
})
});
};
var ActionBody = ({ isLoading, data, formattedDate }) => {
const { formatMessage } = useIntl();
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Flex, {
padding: 7,
justifyContent: "center",
alignItems: "center",
children: (0, import_jsx_runtime.jsx)(Loader, {
children: "Loading content..."
})
});
}
const { action, user, payload } = data;
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Box, {
marginBottom: 3,
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "delta",
id: "title",
children: formatMessage({
id: "Settings.permissions.auditLogs.details",
defaultMessage: "Log Details"
})
})
}),
(0, import_jsx_runtime.jsxs)(Grid.Root, {
gap: 4,
gridCols: 2,
paddingTop: 4,
paddingBottom: 4,
paddingLeft: 6,
paddingRight: 6,
marginBottom: 4,
background: "neutral100",
hasRadius: true,
children: [
(0, import_jsx_runtime.jsx)(ActionItem, {
actionLabel: formatMessage({
id: "Settings.permissions.auditLogs.action",
defaultMessage: "Action"
}),
actionName: formatMessage(
{
id: `Settings.permissions.auditLogs.${action}`,
defaultMessage: getDefaultMessage(action)
},
// @ts-expect-error - any
{
model: payload == null ? void 0 : payload.model
}
)
}),
(0, import_jsx_runtime.jsx)(ActionItem, {
actionLabel: formatMessage({
id: "Settings.permissions.auditLogs.date",
defaultMessage: "Date"
}),
actionName: formattedDate
}),
(0, import_jsx_runtime.jsx)(ActionItem, {
actionLabel: formatMessage({
id: "Settings.permissions.auditLogs.user",
defaultMessage: "User"
}),
actionName: (user == null ? void 0 : user.displayName) || "-"
}),
(0, import_jsx_runtime.jsx)(ActionItem, {
actionLabel: formatMessage({
id: "Settings.permissions.auditLogs.userId",
defaultMessage: "User ID"
}),
actionName: (user == null ? void 0 : user.id.toString()) || "-"
})
]
}),
(0, import_jsx_runtime.jsxs)(Field.Root, {
children: [
(0, import_jsx_runtime.jsx)(Field.Label, {
children: formatMessage({
id: "Settings.permissions.auditLogs.payload",
defaultMessage: "Payload"
})
}),
(0, import_jsx_runtime.jsx)(Payload, {
value: JSON.stringify(payload, null, 2),
disabled: true
})
]
})
]
});
};
var Payload = dt(JSONInput)`
max-width: 100%;
overflow: scroll;
`;
var ActionItem = ({ actionLabel, actionName }) => {
return (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "baseline",
gap: 1,
children: [
(0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral600",
variant: "sigma",
children: actionLabel
}),
(0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral600",
children: actionName
})
]
});
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs
var React2 = __toESM(require_react(), 1);
var useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {
const { toggleNotification } = useNotification();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const [{ query }] = useQueryParams();
const { data, error, isError: isUsersError, isLoading: isLoadingUsers } = useAdminUsers({}, {
skip: !canReadUsers,
refetchOnMountOrArgChange: true
});
React2.useEffect(() => {
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}, [
error,
toggleNotification,
formatAPIError
]);
const { data: auditLogs, isLoading: isLoadingAuditLogs, isError: isAuditLogsError, error: auditLogsError } = useGetAuditLogsQuery(query, {
refetchOnMountOrArgChange: true,
skip: !canReadAuditLogs
});
React2.useEffect(() => {
if (auditLogsError) {
toggleNotification({
type: "danger",
message: formatAPIError(auditLogsError)
});
}
}, [
auditLogsError,
toggleNotification,
formatAPIError
]);
return {
auditLogs,
users: (data == null ? void 0 : data.users) ?? [],
isLoading: isLoadingUsers || isLoadingAuditLogs,
hasError: isAuditLogsError || isUsersError
};
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var ComboboxFilter = (props) => {
var _a;
const { formatMessage } = useIntl();
const field = useField(props.name);
const ariaLabel = formatMessage({
id: "Settings.permissions.auditLogs.filter.aria-label",
defaultMessage: "Search and select an option to filter"
});
const handleChange = (value) => {
field.onChange(props.name, value);
};
return (0, import_jsx_runtime2.jsx)(Combobox, {
"aria-label": ariaLabel,
value: field.value,
onChange: handleChange,
children: (_a = props.options) == null ? void 0 : _a.map((opt) => {
const value = typeof opt === "string" ? opt : opt.value;
const label = typeof opt === "string" ? opt : opt.label;
return (0, import_jsx_runtime2.jsx)(Option, {
value,
children: label
}, value);
})
});
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs
var getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
const operators = [
{
label: formatMessage({
id: "components.FilterOptions.FILTER_TYPES.$eq",
defaultMessage: "is"
}),
value: "$eq"
},
{
label: formatMessage({
id: "components.FilterOptions.FILTER_TYPES.$ne",
defaultMessage: "is not"
}),
value: "$ne"
}
];
const filters = [
{
input: ComboboxFilter,
label: formatMessage({
id: "Settings.permissions.auditLogs.action",
defaultMessage: "Action"
}),
name: "action",
operators,
options: Object.keys(actionTypes).map((action) => ({
label: formatMessage({
id: `Settings.permissions.auditLogs.${action}`,
defaultMessage: getDefaultMessage(action)
}, {
model: void 0
}),
value: action
})),
type: "enumeration"
},
{
label: formatMessage({
id: "Settings.permissions.auditLogs.date",
defaultMessage: "Date"
}),
name: "date",
type: "datetime"
}
];
if (canReadUsers && users) {
return [
...filters,
{
input: ComboboxFilter,
label: formatMessage({
id: "Settings.permissions.auditLogs.user",
defaultMessage: "User"
}),
mainField: {
name: "id",
type: "integer"
},
name: "user",
operators,
options: users.map((user) => ({
label: getDisplayName(user),
value: user.id.toString()
})),
type: "relation"
}
];
}
return filters;
};
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs
var ListPage = () => {
const { formatMessage } = useIntl();
const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);
const { allowedActions: { canRead: canReadAuditLogs, canReadUsers }, isLoading: isLoadingRBAC } = useRBAC({
...permissions == null ? void 0 : permissions.auditLogs,
readUsers: (permissions == null ? void 0 : permissions.users.read) || []
});
const [{ query }, setQuery] = useQueryParams();
const { auditLogs, users, isLoading: isLoadingData, hasError } = useAuditLogsData({
canReadAuditLogs,
canReadUsers
});
const formatTimeStamp = useFormatTimeStamp();
const displayedFilters = getDisplayedFilters({
formatMessage,
users,
canReadUsers
});
const headers = [
{
name: "action",
label: formatMessage({
id: "Settings.permissions.auditLogs.action",
defaultMessage: "Action"
}),
sortable: true
},
{
name: "date",
label: formatMessage({
id: "Settings.permissions.auditLogs.date",
defaultMessage: "Date"
}),
sortable: true
},
{
name: "user",
label: formatMessage({
id: "Settings.permissions.auditLogs.user",
defaultMessage: "User"
}),
sortable: false,
// In this case, the passed parameter cannot and shouldn't be something else than User
cellFormatter: ({ user }) => user ? user.displayName : ""
}
];
if (hasError) {
return (0, import_jsx_runtime3.jsx)(Page.Error, {});
}
const isLoading = isLoadingData || isLoadingRBAC;
const { results = [] } = auditLogs ?? {};
return (0, import_jsx_runtime3.jsxs)(Page.Main, {
"aria-busy": isLoading,
children: [
(0, import_jsx_runtime3.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: formatMessage({
id: "global.auditLogs",
defaultMessage: "Audit Logs"
})
})
}),
(0, import_jsx_runtime3.jsx)(Layouts.Header, {
title: formatMessage({
id: "global.auditLogs",
defaultMessage: "Audit Logs"
}),
subtitle: formatMessage({
id: "Settings.permissions.auditLogs.listview.header.subtitle",
defaultMessage: "Logs of all the activities that happened in your environment"
})
}),
(0, import_jsx_runtime3.jsx)(Layouts.Action, {
startActions: (0, import_jsx_runtime3.jsxs)(Filters.Root, {
options: displayedFilters,
children: [
(0, import_jsx_runtime3.jsx)(Filters.Trigger, {}),
(0, import_jsx_runtime3.jsx)(Filters.Popover, {}),
(0, import_jsx_runtime3.jsx)(Filters.List, {})
]
})
}),
(0, import_jsx_runtime3.jsxs)(Layouts.Content, {
children: [
(0, import_jsx_runtime3.jsx)(Table.Root, {
rows: results,
headers,
isLoading,
children: (0, import_jsx_runtime3.jsxs)(Table.Content, {
children: [
(0, import_jsx_runtime3.jsx)(Table.Head, {
children: headers.map((header) => (0, import_jsx_runtime3.jsx)(Table.HeaderCell, {
...header
}, header.name))
}),
(0, import_jsx_runtime3.jsx)(Table.Empty, {}),
(0, import_jsx_runtime3.jsx)(Table.Loading, {}),
(0, import_jsx_runtime3.jsx)(Table.Body, {
children: results.map((log) => (0, import_jsx_runtime3.jsxs)(Table.Row, {
onClick: () => setQuery({
id: log.id
}),
children: [
headers.map((header) => {
var _a;
const { name, cellFormatter } = header;
switch (name) {
case "action":
return (0, import_jsx_runtime3.jsx)(Table.Cell, {
children: (0, import_jsx_runtime3.jsx)(Typography, {
textColor: "neutral800",
children: formatMessage({
id: `Settings.permissions.auditLogs.${log.action}`,
// @ts-expect-error getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.
defaultMessage: getDefaultMessage(log.action)
}, {
model: ((_a = log.payload) == null ? void 0 : _a.model) ?? ""
})
})
}, name);
case "date":
return (0, import_jsx_runtime3.jsx)(Table.Cell, {
children: (0, import_jsx_runtime3.jsx)(Typography, {
textColor: "neutral800",
children: formatTimeStamp(log.date)
})
}, name);
case "user":
return (0, import_jsx_runtime3.jsx)(Table.Cell, {
children: (0, import_jsx_runtime3.jsx)(Typography, {
textColor: "neutral800",
children: cellFormatter ? cellFormatter(log, header) : "-"
})
}, name);
default:
return (0, import_jsx_runtime3.jsx)(Table.Cell, {
children: (0, import_jsx_runtime3.jsx)(Typography, {
textColor: "neutral800",
children: log[name] || "-"
})
}, name);
}
}),
(0, import_jsx_runtime3.jsx)(Table.Cell, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime3.jsx)(Flex, {
justifyContent: "end",
children: (0, import_jsx_runtime3.jsx)(IconButton, {
onClick: () => setQuery({
id: log.id
}),
withTooltip: false,
label: formatMessage({
id: "app.component.table.view",
defaultMessage: "{target} details"
}, {
target: `${log.action} action`
}),
variant: "ghost",
children: (0, import_jsx_runtime3.jsx)(ForwardRef$3D, {})
})
})
})
]
}, log.id))
})
]
})
}),
(0, import_jsx_runtime3.jsxs)(Pagination.Root, {
...auditLogs == null ? void 0 : auditLogs.pagination,
children: [
(0, import_jsx_runtime3.jsx)(Pagination.PageSize, {}),
(0, import_jsx_runtime3.jsx)(Pagination.Links, {})
]
})
]
}),
(query == null ? void 0 : query.id) && (0, import_jsx_runtime3.jsx)(Modal2, {
handleClose: () => setQuery({
id: ""
}, "remove"),
logId: query.id.toString()
})
]
});
};
var ProtectedListPage = () => {
const permissions = useTypedSelector((state) => {
var _a, _b;
return (_b = (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.auditLogs) == null ? void 0 : _b.main;
});
return (0, import_jsx_runtime3.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime3.jsx)(ListPage, {})
});
};
export {
ListPage,
ProtectedListPage
};
//# sourceMappingURL=ListPage-3BTJAZQ6.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,66 @@
import {
useLicenseLimitNotification
} from "./chunk-XCWGBHZU.js";
import "./chunk-AOLNGJZC.js";
import {
ListPageCE
} from "./chunk-PZDMARGJ.js";
import "./chunk-XCWIZEDM.js";
import "./chunk-RQXXWIIX.js";
import "./chunk-FURFN7BE.js";
import "./chunk-G2UWKDMB.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.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-PVNXTKO6.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 "./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 {
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/Users/ListPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var UserListPageEE = () => {
useLicenseLimitNotification();
return (0, import_jsx_runtime.jsx)(ListPageCE, {});
};
export {
UserListPageEE
};
//# sourceMappingURL=ListPage-EZLP6KWA.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],
"sourcesContent": ["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGaA,iBAAiB,MAAA;AAC5BC,8BAAAA;AAEA,aAAOC,wBAACC,YAAAA,CAAAA,CAAAA;AACV;",
"names": ["UserListPageEE", "useLicenseLimitNotification", "_jsx", "ListPageCE"]
}

View File

@@ -0,0 +1,491 @@
import {
useWebhooks
} from "./chunk-CI2U7W4K.js";
import {
ConfirmDialog
} from "./chunk-NP53ZCXD.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
ForwardRef$J,
Page,
useAPIErrorHandler
} 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 {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Button,
CheckboxImpl,
Dialog,
EmptyStateLayout,
Flex,
IconButton,
LinkButton,
SwitchImpl,
TFooter,
Table,
Tbody,
Td,
Th,
Thead,
Tr,
Typography,
VisuallyHidden,
useIntl,
useNotifyAT
} from "./chunk-7XB6XSWQ.js";
import {
NavLink,
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h,
ForwardRef$1v,
ForwardRef$j
} 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/Webhooks/ListPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var ListPage = () => {
const [showModal, setShowModal] = React.useState(false);
const [webhooksToDelete, setWebhooksToDelete] = React.useState([]);
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.webhooks;
});
const { formatMessage } = useIntl();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
const { toggleNotification } = useNotification();
const navigate = useNavigate();
const { isLoading: isRBACLoading, allowedActions: { canCreate, canUpdate, canDelete } } = useRBAC(permissions);
const { notifyStatus } = useNotifyAT();
const { isLoading: isWebhooksLoading, webhooks, error: webhooksError, updateWebhook, deleteManyWebhooks } = useWebhooks();
React.useEffect(() => {
if (webhooksError) {
toggleNotification({
type: "danger",
message: formatAPIError(webhooksError)
});
return;
}
if (webhooks) {
notifyStatus(formatMessage({
id: "Settings.webhooks.list.loading.success",
defaultMessage: "Webhooks have been loaded"
}));
}
}, [
webhooks,
webhooksError,
toggleNotification,
formatMessage,
notifyStatus,
formatAPIError
]);
const enableWebhook = async (body) => {
try {
const res = await updateWebhook(body);
if ("error" in res) {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
const deleteWebhook = async (id) => {
try {
const res = await deleteManyWebhooks({
ids: [
id
]
});
if ("error" in res) {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
return;
}
setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
const confirmBulkDelete = async () => {
try {
const res = await deleteManyWebhooks({
ids: webhooksToDelete
});
if ("error" in res) {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
return;
}
setWebhooksToDelete([]);
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
} finally {
setShowModal(false);
}
};
const selectAllCheckbox = (selected) => selected ? setWebhooksToDelete((webhooks == null ? void 0 : webhooks.map((webhook) => webhook.id)) ?? []) : setWebhooksToDelete([]);
const selectOneCheckbox = (selected, id) => selected ? setWebhooksToDelete((prev) => [
...prev,
id
]) : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));
const isLoading = isRBACLoading || isWebhooksLoading;
const numberOfWebhooks = (webhooks == null ? void 0 : webhooks.length) ?? 0;
const webhooksToDeleteLength = webhooksToDelete.length;
if (isLoading) {
return (0, import_jsx_runtime.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime.jsxs)(Layouts.Root, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Webhooks"
})
}),
(0, import_jsx_runtime.jsxs)(Page.Main, {
"aria-busy": isLoading,
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: "Settings.webhooks.title",
defaultMessage: "Webhooks"
}),
subtitle: formatMessage({
id: "Settings.webhooks.list.description",
defaultMessage: "Get POST changes notifications"
}),
primaryAction: canCreate && !isLoading && (0, import_jsx_runtime.jsx)(LinkButton, {
tag: NavLink,
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
variant: "default",
to: "create",
size: "S",
children: formatMessage({
id: "Settings.webhooks.list.button.add",
defaultMessage: "Create new webhook"
})
})
}),
webhooksToDeleteLength > 0 && canDelete && (0, import_jsx_runtime.jsx)(Layouts.Action, {
startActions: (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Typography, {
variant: "epsilon",
textColor: "neutral600",
children: formatMessage({
id: "Settings.webhooks.to.delete",
defaultMessage: "{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected"
}, {
webhooksToDeleteLength
})
}),
(0, import_jsx_runtime.jsx)(Button, {
onClick: () => setShowModal(true),
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$j, {}),
size: "L",
variant: "danger-light",
children: formatMessage({
id: "global.delete",
defaultMessage: "Delete"
})
})
]
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: numberOfWebhooks > 0 ? (0, import_jsx_runtime.jsxs)(Table, {
colCount: 5,
rowCount: numberOfWebhooks + 1,
footer: (0, import_jsx_runtime.jsx)(TFooter, {
onClick: () => {
if (canCreate) {
navigate("create");
}
},
icon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: "Settings.webhooks.list.button.add",
defaultMessage: "Create new webhook"
})
}),
children: [
(0, import_jsx_runtime.jsx)(Thead, {
children: (0, import_jsx_runtime.jsxs)(Tr, {
children: [
(0, import_jsx_runtime.jsx)(Th, {
children: (0, import_jsx_runtime.jsx)(CheckboxImpl, {
"aria-label": formatMessage({
id: "global.select-all-entries",
defaultMessage: "Select all entries"
}),
checked: webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks ? "indeterminate" : webhooksToDeleteLength === numberOfWebhooks,
onCheckedChange: selectAllCheckbox
})
}),
(0, import_jsx_runtime.jsx)(Th, {
width: "20%",
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "global.name",
defaultMessage: "Name"
})
})
}),
(0, import_jsx_runtime.jsx)(Th, {
width: "60%",
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "Settings.webhooks.form.url",
defaultMessage: "URL"
})
})
}),
(0, import_jsx_runtime.jsx)(Th, {
width: "20%",
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "Settings.webhooks.list.th.status",
defaultMessage: "Status"
})
})
}),
(0, import_jsx_runtime.jsx)(Th, {
children: (0, import_jsx_runtime.jsx)(VisuallyHidden, {
children: formatMessage({
id: "Settings.webhooks.list.th.actions",
defaultMessage: "Actions"
})
})
})
]
})
}),
(0, import_jsx_runtime.jsx)(Tbody, {
children: webhooks == null ? void 0 : webhooks.map((webhook) => (0, import_jsx_runtime.jsxs)(Tr, {
onClick: () => {
if (canUpdate) {
navigate(webhook.id);
}
},
style: {
cursor: canUpdate ? "pointer" : "default"
},
children: [
(0, import_jsx_runtime.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime.jsx)(CheckboxImpl, {
"aria-label": `${formatMessage({
id: "global.select",
defaultMessage: "Select"
})} ${webhook.name}`,
checked: webhooksToDelete == null ? void 0 : webhooksToDelete.includes(webhook.id),
onCheckedChange: (selected) => selectOneCheckbox(!!selected, webhook.id),
name: "select"
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Typography, {
fontWeight: "semiBold",
textColor: "neutral800",
children: webhook.name
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsx)(Typography, {
textColor: "neutral800",
children: webhook.url
})
}),
(0, import_jsx_runtime.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime.jsx)(Flex, {
children: (0, import_jsx_runtime.jsx)(SwitchImpl, {
onLabel: formatMessage({
id: "global.enabled",
defaultMessage: "Enabled"
}),
offLabel: formatMessage({
id: "global.disabled",
defaultMessage: "Disabled"
}),
"aria-label": `${webhook.name} ${formatMessage({
id: "Settings.webhooks.list.th.status",
defaultMessage: "Status"
})}`,
checked: webhook.isEnabled,
onCheckedChange: (enabled) => {
enableWebhook({
...webhook,
isEnabled: enabled
});
},
visibleLabels: true
})
})
}),
(0, import_jsx_runtime.jsx)(Td, {
children: (0, import_jsx_runtime.jsxs)(Flex, {
gap: 1,
children: [
canUpdate && (0, import_jsx_runtime.jsx)(IconButton, {
label: formatMessage({
id: "Settings.webhooks.events.update",
defaultMessage: "Update"
}),
variant: "ghost",
children: (0, import_jsx_runtime.jsx)(ForwardRef$1v, {})
}),
canDelete && (0, import_jsx_runtime.jsx)(DeleteActionButton, {
onDelete: () => {
deleteWebhook(webhook.id);
}
})
]
})
})
]
}, webhook.id))
})
]
}) : (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "160px"
}),
content: formatMessage({
id: "Settings.webhooks.list.empty.description",
defaultMessage: "No webhooks found"
}),
action: canCreate ? (0, import_jsx_runtime.jsx)(LinkButton, {
variant: "secondary",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
tag: NavLink,
to: "create",
children: formatMessage({
id: "Settings.webhooks.list.button.add",
defaultMessage: "Create new webhook"
})
}) : null
})
})
]
}),
(0, import_jsx_runtime.jsx)(Dialog.Root, {
open: showModal,
onOpenChange: setShowModal,
children: (0, import_jsx_runtime.jsx)(ConfirmDialog, {
onConfirm: confirmBulkDelete
})
})
]
});
};
var DeleteActionButton = ({ onDelete }) => {
const [showModal, setShowModal] = React.useState(false);
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(IconButton, {
onClick: (e) => {
e.stopPropagation();
setShowModal(true);
},
label: formatMessage({
id: "Settings.webhooks.events.delete",
defaultMessage: "Delete webhook"
}),
variant: "ghost",
children: (0, import_jsx_runtime.jsx)(ForwardRef$j, {})
}),
(0, import_jsx_runtime.jsx)(Dialog.Root, {
open: showModal,
onOpenChange: setShowModal,
children: (0, import_jsx_runtime.jsx)(ConfirmDialog, {
onConfirm: (e) => {
e == null ? void 0 : e.stopPropagation();
onDelete();
}
})
})
]
});
};
var ProtectedListPage = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a.webhooks.main;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(ListPage, {})
});
};
export {
ListPage,
ProtectedListPage
};
//# sourceMappingURL=ListPage-GAB5NR55.js.map

File diff suppressed because one or more lines are too long

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,293 @@
import {
Table
} from "./chunk-XUJ2XFL4.js";
import {
useOnce
} from "./chunk-AF2Z2UHO.js";
import {
useDeleteTransferTokenMutation,
useGetTransferTokensQuery
} from "./chunk-RXTTORSL.js";
import {
TRANSFER_TOKEN_TYPE
} from "./chunk-7GAX2FTH.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-ZM6TT53G.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
ForwardRef$J,
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
require_lib
} 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 {
EmptyStateLayout,
LinkButton,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
Link,
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h
} 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/TransferTokens/ListView.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var qs = __toESM(require_lib(), 1);
var tableHeaders = [
{
name: "name",
label: {
id: "Settings.tokens.ListView.headers.name",
defaultMessage: "Name"
},
sortable: true
},
{
name: "description",
label: {
id: "Settings.tokens.ListView.headers.description",
defaultMessage: "Description"
},
sortable: false
},
{
name: "createdAt",
label: {
id: "Settings.tokens.ListView.headers.createdAt",
defaultMessage: "Created at"
},
sortable: false
},
{
name: "lastUsedAt",
label: {
id: "Settings.tokens.ListView.headers.lastUsedAt",
defaultMessage: "Last used"
},
sortable: false
}
];
var ListView = () => {
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["transfer-tokens"];
});
const { isLoading: isLoadingRBAC, allowedActions: { canCreate, canDelete, canUpdate, canRead } } = useRBAC(permissions);
const navigate = useNavigate();
const { trackUsage } = useTracking();
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
React.useEffect(() => {
navigate({
search: qs.stringify({
sort: "name:ASC"
}, {
encode: false
})
});
}, [
navigate
]);
useOnce(() => {
trackUsage("willAccessTokenList", {
tokenType: TRANSFER_TOKEN_TYPE
});
});
const headers = tableHeaders.map((header) => ({
...header,
label: formatMessage(header.label)
}));
const { data: transferTokens = [], isLoading: isLoadingTokens, error } = useGetTransferTokensQuery(void 0, {
skip: !canRead
});
React.useEffect(() => {
if (transferTokens) {
trackUsage("didAccessTokenList", {
number: transferTokens.length,
tokenType: TRANSFER_TOKEN_TYPE
});
}
}, [
trackUsage,
transferTokens
]);
React.useEffect(() => {
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}, [
error,
formatAPIError,
toggleNotification
]);
const [deleteToken] = useDeleteTransferTokenMutation();
const handleDelete = async (id) => {
try {
const res = await deleteToken(id);
if ("error" in res) {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
}
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occured"
})
});
}
};
const isLoading = isLoadingTokens || isLoadingRBAC;
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "Transfer Tokens"
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: "Settings.transferTokens.title",
defaultMessage: "Transfer Tokens"
}),
subtitle: formatMessage({
id: "Settings.transferTokens.description",
defaultMessage: '"List of generated transfer tokens"'
}),
primaryAction: canCreate ? (0, import_jsx_runtime.jsx)(LinkButton, {
role: "button",
tag: Link,
"data-testid": "create-transfer-token-button",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
size: "S",
onClick: () => trackUsage("willAddTokenFromList", {
tokenType: TRANSFER_TOKEN_TYPE
}),
to: "/settings/transfer-tokens/create",
children: formatMessage({
id: "Settings.transferTokens.create",
defaultMessage: "Create new Transfer Token"
})
}) : void 0
}),
!canRead ? (0, import_jsx_runtime.jsx)(Page.NoPermissions, {}) : (0, import_jsx_runtime.jsx)(Page.Main, {
"aria-busy": isLoading,
children: (0, import_jsx_runtime.jsxs)(Layouts.Content, {
children: [
transferTokens.length > 0 && (0, import_jsx_runtime.jsx)(Table, {
permissions: {
canRead,
canDelete,
canUpdate
},
headers,
isLoading,
onConfirmDelete: handleDelete,
tokens: transferTokens,
tokenType: TRANSFER_TOKEN_TYPE
}),
canCreate && transferTokens.length === 0 ? (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
action: (0, import_jsx_runtime.jsx)(LinkButton, {
tag: Link,
variant: "secondary",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
to: "/settings/transfer-tokens/create",
children: formatMessage({
id: "Settings.transferTokens.addNewToken",
defaultMessage: "Add new Transfer Token"
})
}),
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "16rem"
}),
content: formatMessage({
id: "Settings.transferTokens.addFirstToken",
defaultMessage: "Add your first Transfer Token"
})
}) : null,
!canCreate && transferTokens.length === 0 ? (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "16rem"
}),
content: formatMessage({
id: "Settings.transferTokens.emptyStateLayout",
defaultMessage: "You dont have any content yet..."
})
}) : null
]
})
})
]
});
};
var ProtectedListView = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["transfer-tokens"].main;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(ListView, {})
});
};
export {
ListView,
ProtectedListView
};
//# sourceMappingURL=ListView-PXEHKZSD.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,300 @@
import {
useDeleteAPITokenMutation,
useGetAPITokensQuery
} from "./chunk-NC2FHXMX.js";
import {
Table
} from "./chunk-XUJ2XFL4.js";
import {
useOnce
} from "./chunk-AF2Z2UHO.js";
import {
API_TOKEN_TYPE
} from "./chunk-7GAX2FTH.js";
import {
useGuidedTour
} from "./chunk-PFI4R5WA.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-ZM6TT53G.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
ForwardRef$J,
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import {
useTypedSelector
} from "./chunk-QEGMJR7H.js";
import {
require_lib
} 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 {
EmptyStateLayout,
LinkButton,
useIntl
} from "./chunk-7XB6XSWQ.js";
import {
Link,
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h
} 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/ApiTokens/ListView.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var qs = __toESM(require_lib(), 1);
var TABLE_HEADERS = [
{
name: "name",
label: {
id: "Settings.apiTokens.ListView.headers.name",
defaultMessage: "Name"
},
sortable: true
},
{
name: "description",
label: {
id: "Settings.apiTokens.ListView.headers.description",
defaultMessage: "Description"
},
sortable: false
},
{
name: "createdAt",
label: {
id: "Settings.apiTokens.ListView.headers.createdAt",
defaultMessage: "Created at"
},
sortable: false
},
{
name: "lastUsedAt",
label: {
id: "Settings.apiTokens.ListView.headers.lastUsedAt",
defaultMessage: "Last used"
},
sortable: false
}
];
var ListView = () => {
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["api-tokens"];
});
const { allowedActions: { canRead, canCreate, canDelete, canUpdate } } = useRBAC(permissions);
const navigate = useNavigate();
const { trackUsage } = useTracking();
const startSection = useGuidedTour("ListView", (state) => state.startSection);
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
React.useEffect(() => {
startSection("apiTokens");
}, [
startSection
]);
React.useEffect(() => {
navigate({
search: qs.stringify({
sort: "name:ASC"
}, {
encode: false
})
});
}, [
navigate
]);
const headers = TABLE_HEADERS.map((header) => ({
...header,
label: formatMessage(header.label)
}));
useOnce(() => {
trackUsage("willAccessTokenList", {
tokenType: API_TOKEN_TYPE
});
});
const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();
React.useEffect(() => {
if (error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
}, [
error,
formatAPIError,
toggleNotification
]);
React.useEffect(() => {
trackUsage("didAccessTokenList", {
number: apiTokens.length,
tokenType: API_TOKEN_TYPE
});
}, [
apiTokens,
trackUsage
]);
const [deleteToken] = useDeleteAPITokenMutation();
const handleDelete = async (id) => {
try {
const res = await deleteToken(id);
if ("error" in res) {
toggleNotification({
type: "danger",
message: formatAPIError(res.error)
});
return;
}
trackUsage("didDeleteToken");
} catch {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "Something went wrong"
})
});
}
};
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: "API Tokens"
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: "Settings.apiTokens.title",
defaultMessage: "API Tokens"
}),
subtitle: formatMessage({
id: "Settings.apiTokens.description",
defaultMessage: "List of generated tokens to consume the API"
}),
primaryAction: canCreate && (0, import_jsx_runtime.jsx)(LinkButton, {
tag: Link,
"data-testid": "create-api-token-button",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
size: "S",
onClick: () => trackUsage("willAddTokenFromList", {
tokenType: API_TOKEN_TYPE
}),
to: "/settings/api-tokens/create",
children: formatMessage({
id: "Settings.apiTokens.create",
defaultMessage: "Create new API Token"
})
})
}),
!canRead ? (0, import_jsx_runtime.jsx)(Page.NoPermissions, {}) : (0, import_jsx_runtime.jsx)(Page.Main, {
"aria-busy": isLoading,
children: (0, import_jsx_runtime.jsxs)(Layouts.Content, {
children: [
apiTokens.length > 0 && (0, import_jsx_runtime.jsx)(Table, {
permissions: {
canRead,
canDelete,
canUpdate
},
headers,
isLoading,
onConfirmDelete: handleDelete,
tokens: apiTokens,
tokenType: API_TOKEN_TYPE
}),
canCreate && apiTokens.length === 0 ? (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "16rem"
}),
content: formatMessage({
id: "Settings.apiTokens.addFirstToken",
defaultMessage: "Add your first API Token"
}),
action: (0, import_jsx_runtime.jsx)(LinkButton, {
tag: Link,
variant: "secondary",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
to: "/settings/api-tokens/create",
children: formatMessage({
id: "Settings.apiTokens.addNewToken",
defaultMessage: "Add new API Token"
})
})
}) : null,
!canCreate && apiTokens.length === 0 ? (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "16rem"
}),
content: formatMessage({
id: "Settings.apiTokens.emptyStateLayout",
defaultMessage: "You dont have any content yet..."
})
}) : null
]
})
})
]
});
};
var ProtectedListView = () => {
const permissions = useTypedSelector((state) => {
var _a;
return (_a = state.admin_app.permissions.settings) == null ? void 0 : _a["api-tokens"].main;
});
return (0, import_jsx_runtime.jsx)(Page.Protect, {
permissions,
children: (0, import_jsx_runtime.jsx)(ListView, {})
});
};
export {
ListView,
ProtectedListView
};
//# sourceMappingURL=ListView-RTH3ATTT.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

106
server/node_modules/.strapi/vite/deps/Login-AUMPQCHF.js generated vendored Normal file
View File

@@ -0,0 +1,106 @@
import {
SSOProviders
} from "./chunk-3CQ23XBV.js";
import {
Login
} from "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.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-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import "./chunk-5CAWUBTQ.js";
import {
useGetProvidersQuery
} from "./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 {
Box,
Divider,
Flex,
Typography,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import {
dt
} from "./chunk-ACIMPXWY.js";
import "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var DividerFull = dt(Divider)`
flex: 1;
`;
var LoginEE = (loginProps) => {
const { formatMessage } = useIntl();
const { isLoading, data: providers = [] } = useGetProvidersQuery(void 0, {
skip: !window.strapi.features.isEnabled(window.strapi.features.SSO)
});
if (!window.strapi.features.isEnabled(window.strapi.features.SSO) || !isLoading && providers.length === 0) {
return (0, import_jsx_runtime.jsx)(Login, {
...loginProps
});
}
return (0, import_jsx_runtime.jsx)(Login, {
...loginProps,
children: (0, import_jsx_runtime.jsx)(Box, {
paddingTop: 7,
children: (0, import_jsx_runtime.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 7,
children: [
(0, import_jsx_runtime.jsxs)(Flex, {
children: [
(0, import_jsx_runtime.jsx)(DividerFull, {}),
(0, import_jsx_runtime.jsx)(Box, {
paddingLeft: 3,
paddingRight: 3,
children: (0, import_jsx_runtime.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: "Auth.login.sso.divider"
})
})
}),
(0, import_jsx_runtime.jsx)(DividerFull, {})
]
}),
(0, import_jsx_runtime.jsx)(SSOProviders, {
providers,
displayAllProviders: false
})
]
})
})
});
};
export {
LoginEE
};
//# sourceMappingURL=Login-AUMPQCHF.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/AuthPage/components/Login.tsx"],
"sourcesContent": ["import { Box, Divider, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { Login, LoginProps } from '../../../../../../admin/src/pages/Auth/components/Login';\nimport { useGetProvidersQuery } from '../../../../../../admin/src/services/auth';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nconst LoginEE = (loginProps: LoginProps) => {\n const { formatMessage } = useIntl();\n const { isLoading, data: providers = [] } = useGetProvidersQuery(undefined, {\n skip: !window.strapi.features.isEnabled(window.strapi.features.SSO),\n });\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Login {...loginProps} />;\n }\n\n return (\n <Login {...loginProps}>\n <Box paddingTop={7}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.divider' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <SSOProviders providers={providers} displayAllProviders={false} />\n </Flex>\n </Box>\n </Login>\n );\n};\n\nexport { LoginEE };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,cAAcC,GAAOC,OAAAA;;;AAI3B,IAAMC,UAAU,CAACC,eAAAA;AACf,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAC1B,QAAM,EAAEC,WAAWC,MAAMC,YAAY,CAAA,EAAE,IAAKC,qBAAqBC,QAAW;IAC1EC,MAAM,CAACC,OAAOC,OAAOC,SAASC,UAAUH,OAAOC,OAAOC,SAASE,GAAG;EACpE,CAAA;AAEA,MACE,CAACJ,OAAOC,OAAOC,SAASC,UAAUH,OAAOC,OAAOC,SAASE,GAAG,KAC3D,CAACV,aAAaE,UAAUS,WAAW,GACpC;AACA,eAAOC,wBAACC,OAAAA;MAAO,GAAGhB;;EACpB;AAEA,aACEe,wBAACC,OAAAA;IAAO,GAAGhB;IACT,cAAAe,wBAACE,KAAAA;MAAIC,YAAY;MACf,cAAAC,yBAACC,MAAAA;QAAKC,WAAU;QAASC,YAAW;QAAUC,KAAK;;cACjDJ,yBAACC,MAAAA;;kBACCL,wBAACnB,aAAAA,CAAAA,CAAAA;kBACDmB,wBAACE,KAAAA;gBAAIO,aAAa;gBAAGC,cAAc;gBACjC,cAAAV,wBAACW,YAAAA;kBAAWC,SAAQ;kBAAQC,WAAU;4BACnC3B,cAAc;oBAAE4B,IAAI;kBAAyB,CAAA;;;kBAGlDd,wBAACnB,aAAAA,CAAAA,CAAAA;;;cAEHmB,wBAACe,cAAAA;YAAazB;YAAsB0B,qBAAqB;;;;;;AAKnE;",
"names": ["DividerFull", "styled", "Divider", "LoginEE", "loginProps", "formatMessage", "useIntl", "isLoading", "data", "providers", "useGetProvidersQuery", "undefined", "skip", "window", "strapi", "features", "isEnabled", "SSO", "length", "_jsx", "Login", "Box", "paddingTop", "_jsxs", "Flex", "direction", "alignItems", "gap", "paddingLeft", "paddingRight", "Typography", "variant", "textColor", "id", "SSOProviders", "displayAllProviders"]
}

View File

@@ -0,0 +1,47 @@
import {
MagicLinkWrapper
} from "./chunk-FURFN7BE.js";
import {
getBasename
} from "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-N55RVBRV.js";
import {
useIntl
} from "./chunk-7XB6XSWQ.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/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var MagicLinkEE = ({ registrationToken }) => {
const { formatMessage } = useIntl();
if (registrationToken) {
return (0, import_jsx_runtime.jsx)(MagicLinkWrapper, {
target: `${window.location.origin}${getBasename()}/auth/register?registrationToken=${registrationToken}`,
children: formatMessage({
id: "app.components.Users.MagicLink.connect",
defaultMessage: "Copy and share this link to give access to this user"
})
});
}
return (0, import_jsx_runtime.jsx)(MagicLinkWrapper, {
target: `${window.location.origin}${getBasename()}/auth/login`,
children: formatMessage({
id: "app.components.Users.MagicLink.connect.sso",
defaultMessage: "Send this link to the user, the first login can be made via a SSO provider."
})
});
};
export {
MagicLinkEE
};
//# sourceMappingURL=MagicLinkEE-V6EKW7ZW.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.tsx"],
"sourcesContent": ["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../../../admin/src/core/utils/basename';\nimport { MagicLinkWrapper } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper';\n\nimport type { MagicLinkCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE';\n\n// FIXME replace with parts compo when ready\nexport const MagicLinkEE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n\n if (registrationToken) {\n return (\n <MagicLinkWrapper\n target={`${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`}\n >\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n }\n\n return (\n <MagicLinkWrapper target={`${window.location.origin}${getBasename()}/auth/login`}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect.sso',\n defaultMessage:\n 'Send this link to the user, the first login can be made via a SSO provider.',\n })}\n </MagicLinkWrapper>\n );\n};\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAQaA,IAAAA,cAAc,CAAC,EAAEC,kBAAiB,MAAoB;AACjE,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAE1B,MAAIF,mBAAmB;AACrB,eACEG,wBAACC,kBAAAA;MACCC,QAAQ,GACNC,OAAOC,SAASC,MAAM,GACrBC,YAAc,CAAA,oCAAmCT,iBAAAA;gBAEnDC,cAAc;QACbS,IAAI;QACJC,gBAAgB;MAClB,CAAA;;EAGN;AAEA,aACER,wBAACC,kBAAAA;IAAiBC,QAAQ,GAAGC,OAAOC,SAASC,MAAM,GAAGC,YAAc,CAAA;cACjER,cAAc;MACbS,IAAI;MACJC,gBACE;IACJ,CAAA;;AAGN;",
"names": ["MagicLinkEE", "registrationToken", "formatMessage", "useIntl", "_jsx", "MagicLinkWrapper", "target", "window", "location", "origin", "getBasename", "id", "defaultMessage"]
}

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,28 @@
import "./chunk-PLDDJCW6.js";
// node_modules/@strapi/admin/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs
var FORM_INITIAL_VALUES = {
...window.strapi.features.isEnabled(window.strapi.features.SSO) ? {
useSSORegistration: true
} : {}
};
var ROLE_LAYOUT = [
...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
[
{
label: {
id: "Settings.permissions.users.form.sso",
defaultMessage: "Connect with SSO"
},
name: "useSSORegistration",
type: "boolean",
size: 6
}
]
] : []
];
export {
FORM_INITIAL_VALUES,
ROLE_LAYOUT
};
//# sourceMappingURL=ModalForm-5HYECZO6.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.tsx"],
"sourcesContent": ["import type { FormLayoutInputProps } from '../../../../../../../../admin/src/types/forms';\n\nexport const FORM_INITIAL_VALUES = {\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? {\n useSSORegistration: true,\n }\n : {}),\n};\n\nexport const ROLE_LAYOUT = [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n [\n {\n label: {\n id: 'Settings.permissions.users.form.sso',\n defaultMessage: 'Connect with SSO',\n },\n name: 'useSSORegistration',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n ]\n : []),\n] satisfies FormLayoutInputProps[][];\n"],
"mappings": ";;;IAEaA,sBAAsB;EACjC,GAAIC,OAAOC,OAAOC,SAASC,UAAUH,OAAOC,OAAOC,SAASE,GAAG,IAC3D;IACEC,oBAAoB;EACtB,IACA,CAAA;AACN;IAEaC,cAAc;EACrBN,GAAAA,OAAOC,OAAOC,SAASC,UAAUH,OAAOC,OAAOC,SAASE,GAAG,IAC3D;IACE;MACE;QACEG,OAAO;UACLC,IAAI;UACJC,gBAAgB;QAClB;QACAC,MAAM;QACNC,MAAM;QACNC,MAAM;MACR;IACD;EACF,IACD,CAAA;;",
"names": ["FORM_INITIAL_VALUES", "window", "strapi", "features", "isEnabled", "SSO", "useSSORegistration", "ROLE_LAYOUT", "label", "id", "defaultMessage", "name", "type", "size"]
}

View File

@@ -0,0 +1,123 @@
import {
getTranslation
} from "./chunk-HIZVCZYI.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 "./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 {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
ForwardRef$J,
Page
} 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 "./chunk-N55RVBRV.js";
import {
EmptyStateLayout,
LinkButton,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import {
NavLink
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1h
} 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/content-manager/dist/admin/pages/NoContentTypePage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var NoContentType = () => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsxs)(Page.Main, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: getTranslation("header.name"),
defaultMessage: "Content"
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime.jsx)(EmptyStateLayout, {
action: (0, import_jsx_runtime.jsx)(LinkButton, {
tag: NavLink,
variant: "secondary",
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {}),
to: "/plugins/content-type-builder/content-types/create-content-type",
children: formatMessage({
id: "app.components.HomePage.create",
defaultMessage: "Create your first Content-type"
})
}),
content: formatMessage({
id: "content-manager.pages.NoContentType.text",
defaultMessage: "You don't have any content yet, we recommend you to create your first Content-Type."
}),
hasRadius: true,
icon: (0, import_jsx_runtime.jsx)(ForwardRef$J, {
width: "16rem"
}),
shadow: "tableShadow"
})
})
]
});
};
export {
NoContentType
};
//# sourceMappingURL=NoContentTypePage-SRUDORAZ.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/content-manager/admin/src/pages/NoContentTypePage.tsx"],
"sourcesContent": ["import { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { getTranslation } from '../utils/translations';\n\nconst NoContentType = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content',\n })}\n />\n <Layouts.Content>\n <EmptyStateLayout\n action={\n <LinkButton\n tag={NavLink}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/plugins/content-type-builder/content-types/create-content-type\"\n >\n {formatMessage({\n id: 'app.components.HomePage.create',\n defaultMessage: 'Create your first Content-type',\n })}\n </LinkButton>\n }\n content={formatMessage({\n id: 'content-manager.pages.NoContentType.text',\n defaultMessage:\n \"You don't have any content yet, we recommend you to create your first Content-Type.\",\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n shadow=\"tableShadow\"\n />\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nexport { NoContentType };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,gBAAgB,MAAA;AACpB,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAE1B,aACEC,yBAACC,KAAKC,MAAI;;UACRC,wBAACC,QAAQC,QAAM;QACbC,OAAOR,cAAc;UACnBS,IAAIC,eAAe,aAAA;UACnBC,gBAAgB;QAClB,CAAA;;UAEFN,wBAACC,QAAQM,SAAO;QACd,cAAAP,wBAACQ,kBAAAA;UACCC,YACET,wBAACU,YAAAA;YACCC,KAAKC;YACLC,SAAQ;YACRC,eAAWd,wBAACe,eAAAA,CAAAA,CAAAA;YACZC,IAAG;sBAEFrB,cAAc;cACbS,IAAI;cACJE,gBAAgB;YAClB,CAAA;;UAGJW,SAAStB,cAAc;YACrBS,IAAI;YACJE,gBACE;UACJ,CAAA;UACAY,WAAS;UACTC,UAAMnB,wBAACoB,cAAAA;YAAeC,OAAM;;UAC5BC,QAAO;;;;;AAKjB;",
"names": ["NoContentType", "formatMessage", "useIntl", "_jsxs", "Page", "Main", "_jsx", "Layouts", "Header", "title", "id", "getTranslation", "defaultMessage", "Content", "EmptyStateLayout", "action", "LinkButton", "tag", "NavLink", "variant", "startIcon", "Plus", "to", "content", "hasRadius", "icon", "EmptyDocuments", "width", "shadow"]
}

View File

@@ -0,0 +1,96 @@
import {
getTranslation
} from "./chunk-HIZVCZYI.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 "./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 {
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 "./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 "./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 "./chunk-MADUDGYZ.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/content-manager/dist/admin/pages/NoPermissionsPage.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var NoPermissions = () => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Layouts.Header, {
title: formatMessage({
id: getTranslation("header.name"),
defaultMessage: "Content"
})
}),
(0, import_jsx_runtime.jsx)(Layouts.Content, {
children: (0, import_jsx_runtime.jsx)(Page.NoPermissions, {})
})
]
});
};
export {
NoPermissions
};
//# sourceMappingURL=NoPermissionsPage-U4MEZE4L.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../@strapi/content-manager/admin/src/pages/NoPermissionsPage.tsx"],
"sourcesContent": ["import { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/translations';\n\nconst NoPermissions = () => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content',\n })}\n />\n <Layouts.Content>\n <Page.NoPermissions />\n </Layouts.Content>\n </>\n );\n};\n\nexport { NoPermissions };\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,gBAAgB,MAAA;AACpB,QAAM,EAAEC,cAAa,IAAKC,QAAAA;AAE1B,aACEC,yBAAAC,6BAAA;;UACEC,wBAACC,QAAQC,QAAM;QACbC,OAAOP,cAAc;UACnBQ,IAAIC,eAAe,aAAA;UACnBC,gBAAgB;QAClB,CAAA;;UAEFN,wBAACC,QAAQM,SAAO;sBACdP,wBAACQ,KAAKb,eAAa,CAAA,CAAA;;;;AAI3B;",
"names": ["NoPermissions", "formatMessage", "useIntl", "_jsxs", "_Fragment", "_jsx", "Layouts", "Header", "title", "id", "getTranslation", "defaultMessage", "Content", "Page"]
}

View File

@@ -0,0 +1,81 @@
import {
ProtectedPreviewPage,
usePreviewContext
} from "./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-6LY4MOO2.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-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 "./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-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.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-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 {
ProtectedPreviewPage,
usePreviewContext
};
//# sourceMappingURL=Preview-RHOHK67P.js.map

View File

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

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