@strapi/admin 5.12.4 → 5.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/StrapiApp.js +2 -0
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +2 -0
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +1 -0
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +1 -0
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/{pages/Home/components/Widget.js → components/WidgetHelpers.js} +26 -69
- package/dist/admin/admin/src/components/WidgetHelpers.js.map +1 -0
- package/dist/admin/admin/src/{pages/Home/components/Widget.mjs → components/WidgetHelpers.mjs} +30 -54
- package/dist/admin/admin/src/components/WidgetHelpers.mjs.map +1 -0
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +34 -0
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -0
- package/dist/admin/admin/src/core/apis/Widgets.mjs +32 -0
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -0
- package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +163 -3
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +145 -5
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.js +10 -30
- package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.mjs +5 -25
- package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.mjs.map +1 -1
- package/dist/admin/admin/src/services/homepage.js +3 -2
- package/dist/admin/admin/src/services/homepage.js.map +1 -1
- package/dist/admin/admin/src/services/homepage.mjs +3 -2
- package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +1 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +1 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +5 -0
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +5 -0
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/StrapiApp.d.ts +2 -0
- package/dist/admin/src/{pages/Home/components/Widget.d.ts → components/WidgetHelpers.d.ts} +4 -8
- package/dist/admin/src/core/apis/Widgets.d.ts +29 -0
- package/dist/admin/src/features/StrapiApp.d.ts +1 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/Home/HomePage.d.ts +8 -0
- package/dist/server/server/src/services/homepage.js +3 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +3 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/src/services/homepage.d.ts +3 -0
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/pages/Home/components/Widget.js.map +0 -1
- package/dist/admin/admin/src/pages/Home/components/Widget.mjs.map +0 -1
|
@@ -15,6 +15,7 @@ var CustomFields = require('./core/apis/CustomFields.js');
|
|
|
15
15
|
var Plugin = require('./core/apis/Plugin.js');
|
|
16
16
|
var rbac = require('./core/apis/rbac.js');
|
|
17
17
|
var router = require('./core/apis/router.js');
|
|
18
|
+
var Widgets = require('./core/apis/Widgets.js');
|
|
18
19
|
var configure = require('./core/store/configure.js');
|
|
19
20
|
var basename = require('./core/utils/basename.js');
|
|
20
21
|
var createHook = require('./core/utils/createHook.js');
|
|
@@ -243,6 +244,7 @@ class StrapiApp {
|
|
|
243
244
|
this.reducers = {};
|
|
244
245
|
this.store = null;
|
|
245
246
|
this.customFields = new CustomFields.CustomFields();
|
|
247
|
+
this.widgets = new Widgets.Widgets();
|
|
246
248
|
this.addComponents = (components)=>{
|
|
247
249
|
if (Array.isArray(components)) {
|
|
248
250
|
components.map((comp)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrapiApp.js","sources":["../../../../admin/src/StrapiApp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { RouterProvider } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ADMIN_PERMISSIONS_EE } from '../../ee/admin/src/constants';\n\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { ADMIN_PERMISSIONS_CE, HOOKS } from './constants';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { RBAC, RBACMiddleware } from './core/apis/rbac';\nimport { Router, StrapiAppSetting, UnloadedSettingsLink } from './core/apis/router';\nimport { RootState, Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport {\n THEME_LOCAL_STORAGE_KEY,\n LANGUAGE_LOCAL_STORAGE_KEY,\n ThemeName,\n getStoredToken,\n} from './reducer';\nimport { getInitialRoutes } from './router';\nimport { languageNativeNames } from './translations/languageNativeNames';\n\nimport type { ReducersMapObject, Middleware } from '@reduxjs/toolkit';\n\nconst {\n INJECT_COLUMN_IN_TABLE,\n MUTATE_COLLECTION_TYPES_LINKS,\n MUTATE_EDIT_VIEW_LAYOUT,\n MUTATE_SINGLE_TYPES_LINKS,\n} = HOOKS;\n\ninterface StrapiAppConstructorArgs extends Partial<Pick<StrapiApp, 'appPlugins'>> {\n config?: {\n auth?: { logo: string };\n head?: { favicon: string };\n locales?: string[];\n menu?: { logo: string };\n notifications?: { releases: boolean };\n theme?: { light: DefaultTheme; dark: DefaultTheme };\n translations?: Record<string, Record<string, string>>;\n tutorials?: boolean;\n };\n}\n\ntype Translation = { data: Record<string, string>; locale: string };\ntype Translations = Array<Translation>;\n\ninterface StrapiAppPlugin {\n bootstrap?: (\n args: Pick<StrapiApp, 'addSettingsLink' | 'addSettingsLinks' | 'getPlugin' | 'registerHook'>\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads?: (args: { locales: string[] }) => Promise<Translations>;\n}\n\ninterface InjectionZoneComponent {\n Component: React.ComponentType;\n name: string;\n // TODO: in theory this could receive and forward any React component prop\n // but in practice there only seems to be once instance, where `slug` is\n // forwarded. The type needs to become either more generic or we disallow\n // prop spreading and offer a different way to access context data.\n slug: string;\n}\n\ninterface Component {\n name: string;\n Component: React.ComponentType;\n}\n\ninterface Field {\n type: string;\n Component: React.ComponentType;\n}\n\ninterface Library {\n fields: Record<Field['type'], Field['Component']>;\n components: Record<Component['name'], Component['Component']>;\n}\n\nclass StrapiApp {\n appPlugins: Record<string, StrapiAppPlugin>;\n plugins: Record<string, Plugin> = {};\n hooksDict: Record<string, ReturnType<typeof createHook>> = {};\n\n admin = {\n injectionZones: {},\n };\n\n translations: StrapiApp['configurations']['translations'] = {};\n\n configurations = {\n authLogo: Logo,\n head: { favicon: '' },\n locales: ['en'],\n menuLogo: Logo,\n notifications: { releases: true },\n themes: { light: lightTheme, dark: darkTheme },\n translations: {},\n tutorials: true,\n };\n\n /**\n * APIs\n */\n rbac = new RBAC();\n router: Router;\n library: Library = {\n components: {},\n fields: {},\n };\n middlewares: Array<() => Middleware<object, RootState>> = [];\n reducers: ReducersMapObject = {};\n store: Store | null = null;\n customFields = new CustomFields();\n\n constructor({ config, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.appPlugins = appPlugins || {};\n\n this.createCustomConfigurations(config ?? {});\n\n this.createHook(INJECT_COLUMN_IN_TABLE);\n this.createHook(MUTATE_COLLECTION_TYPES_LINKS);\n this.createHook(MUTATE_SINGLE_TYPES_LINKS);\n this.createHook(MUTATE_EDIT_VIEW_LAYOUT);\n\n this.router = new Router(getInitialRoutes());\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((comp) => {\n invariant(comp.Component, 'A Component must be provided');\n invariant(comp.name, 'A type must be provided');\n\n this.library.components[comp.name] = comp.Component;\n });\n } else {\n invariant(components.Component, 'A Component must be provided');\n invariant(components.name, 'A type must be provided');\n\n this.library.components[components.name] = components.Component;\n }\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => {\n invariant(field.Component, 'A Component must be provided');\n invariant(field.type, 'A type must be provided');\n\n this.library.fields[field.type] = field.Component;\n });\n } else {\n invariant(fields.Component, 'A Component must be provided');\n invariant(fields.type, 'A type must be provided');\n\n this.library.fields[fields.type] = fields.Component;\n }\n };\n\n addMiddlewares = (middlewares: StrapiApp['middlewares']) => {\n middlewares.forEach((middleware) => {\n this.middlewares.push(middleware);\n });\n };\n\n addRBACMiddleware = (m: RBACMiddleware | RBACMiddleware[]) => {\n if (Array.isArray(m)) {\n this.rbac.use(m);\n } else {\n this.rbac.use(m);\n }\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n /**\n * TODO: when we upgrade to redux-toolkit@2 and we can also dynamically add middleware,\n * we'll deprecate these two APIs in favour of their hook counterparts.\n */\n Object.entries(reducers).forEach(([name, reducer]) => {\n this.reducers[name] = reducer;\n });\n };\n\n addMenuLink = (link: Parameters<typeof this.router.addMenuLink>[0]) =>\n this.router.addMenuLink(link);\n\n /**\n * @deprecated use `addSettingsLink` instead, it internally supports\n * adding multiple links at once.\n */\n addSettingsLinks = (sectionId: string, links: UnloadedSettingsLink[]) => {\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n\n this.router.addSettingsLink(sectionId, links);\n };\n\n /**\n * @deprecated use `addSettingsLink` instead, you can pass a section object to\n * create the section and links at the same time.\n */\n createSettingSection = (\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n links: UnloadedSettingsLink[]\n ) => this.router.addSettingsLink(section, links);\n\n addSettingsLink = (\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ) => {\n this.router.addSettingsLink(sectionId, link);\n };\n\n async bootstrap(customBootstrap?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n const bootstrap = this.appPlugins[plugin].bootstrap;\n\n if (bootstrap) {\n bootstrap({\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(customBootstrap)) {\n customBootstrap({\n addComponents: this.addComponents,\n addFields: this.addFields,\n addMenuLink: this.addMenuLink,\n addReducers: this.addReducers,\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n }\n\n createCustomConfigurations = (customConfig: NonNullable<StrapiAppConstructorArgs['config']>) => {\n if (customConfig.locales) {\n this.configurations.locales = [\n 'en',\n ...(customConfig.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (customConfig.auth?.logo) {\n this.configurations.authLogo = customConfig.auth.logo;\n }\n\n if (customConfig.menu?.logo) {\n this.configurations.menuLogo = customConfig.menu.logo;\n }\n\n if (customConfig.head?.favicon) {\n this.configurations.head.favicon = customConfig.head.favicon;\n }\n\n if (customConfig.theme) {\n const darkTheme = customConfig.theme.dark;\n const lightTheme = customConfig.theme.light;\n\n if (!darkTheme && !lightTheme) {\n console.warn(\n `[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension.`.trim()\n );\n merge(this.configurations.themes.light, customConfig.theme);\n }\n\n if (lightTheme) merge(this.configurations.themes.light, lightTheme);\n\n if (darkTheme) merge(this.configurations.themes.dark, darkTheme);\n }\n\n if (customConfig.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = customConfig.notifications.releases;\n }\n\n if (customConfig.tutorials !== undefined) {\n this.configurations.tutorials = customConfig.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n getAdminInjectedComponents = (\n moduleName: string,\n containerName: string,\n blockName: string\n ): InjectionZoneComponent[] => {\n try {\n // @ts-expect-error – we have a catch block so if you don't pass it correctly we still return an array.\n return this.admin.injectionZones[moduleName][containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n };\n\n getPlugin = (pluginId: PluginConfig['id']) => this.plugins[pluginId];\n\n async register(customRegister?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n\n if (isFunction(customRegister)) {\n customRegister(this);\n }\n }\n\n async loadAdminTrads() {\n const adminLocales = await Promise.all(\n this.configurations.locales.map(async (locale) => {\n try {\n const { default: data } = await import(`./translations/${locale}.js`);\n\n return { data, locale };\n } catch {\n try {\n const { default: data } = await import(`./translations/${locale}.json`);\n return { data, locale };\n } catch {\n return { data: null, locale };\n }\n }\n })\n );\n\n return adminLocales.reduce<{ [locale: string]: Record<string, string> }>((acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n }, {});\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n */\n async loadTrads(customTranslations: Record<string, Record<string, string>> = {}) {\n const adminTranslations = await this.loadAdminTrads();\n\n const arrayOfPromises = Object.keys(this.appPlugins)\n .map((plugin) => {\n const registerTrads = this.appPlugins[plugin].registerTrads;\n\n if (registerTrads) {\n return registerTrads({ locales: this.configurations.locales });\n }\n\n return null;\n })\n .filter((a) => a);\n\n const pluginsTrads = (await Promise.all(arrayOfPromises)) as Array<Translation[]>;\n const mergedTrads = pluginsTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc, currentPluginTrads) => {\n const pluginTrads = currentPluginTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc1, current) => {\n acc1[current.locale] = current.data;\n\n return acc1;\n },\n {}\n );\n\n Object.keys(pluginTrads).forEach((locale) => {\n acc[locale] = { ...acc[locale], ...pluginTrads[locale] };\n });\n\n return acc;\n },\n {}\n );\n\n const translations = this.configurations.locales.reduce<{\n [locale: string]: Translation['data'];\n }>((acc, current) => {\n acc[current] = {\n ...adminTranslations[current],\n ...(mergedTrads[current] || {}),\n ...(customTranslations[current] ?? {}),\n };\n\n return acc;\n }, {});\n\n this.configurations.translations = translations;\n\n return Promise.resolve();\n }\n\n registerHook = (name: string, fn: Handler) => {\n invariant(\n this.hooksDict[name],\n `The hook ${name} is not defined. You are trying to register a hook that does not exist in the application.`\n );\n this.hooksDict[name].register(fn);\n };\n\n registerPlugin = (pluginConf: PluginConfig) => {\n const plugin = new Plugin(pluginConf);\n\n this.plugins[plugin.pluginId] = plugin;\n };\n\n runHookSeries = (name: string, asynchronous = false) =>\n asynchronous ? this.hooksDict[name].runSeriesAsync() : this.hooksDict[name].runSeries();\n\n runHookWaterfall = <T,>(name: string, initialValue: T, store?: Store) => {\n return this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n const locale = (localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) ||\n 'en') as keyof typeof localeNames;\n\n this.store = configureStore(\n {\n admin_app: {\n permissions: merge({}, ADMIN_PERMISSIONS_CE, ADMIN_PERMISSIONS_EE),\n theme: {\n availableThemes: [],\n currentTheme: (localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system') as ThemeName,\n },\n language: {\n locale: localeNames[locale] ? locale : 'en',\n localeNames,\n },\n token: getStoredToken(),\n },\n },\n this.middlewares,\n this.reducers\n ) as Store;\n\n const router = this.router.createRouter(this, {\n basename: getBasename(),\n });\n\n return <RouterProvider router={router} />;\n }\n}\n\nexport { StrapiApp };\nexport type { StrapiAppPlugin, StrapiAppConstructorArgs, InjectionZoneComponent };\n"],"names":["INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","HOOKS","StrapiApp","bootstrap","customBootstrap","Object","keys","appPlugins","forEach","plugin","addSettingsLink","addSettingsLinks","getPlugin","registerHook","isFunction","addComponents","addFields","addMenuLink","addReducers","register","customRegister","loadAdminTrads","adminLocales","Promise","all","configurations","locales","map","locale","default","data","reduce","acc","current","loadTrads","customTranslations","adminTranslations","arrayOfPromises","registerTrads","filter","a","pluginsTrads","mergedTrads","currentPluginTrads","pluginTrads","acc1","translations","resolve","render","localeNames","pick","languageNativeNames","localStorage","getItem","LANGUAGE_LOCAL_STORAGE_KEY","store","configureStore","admin_app","permissions","merge","ADMIN_PERMISSIONS_CE","ADMIN_PERMISSIONS_EE","theme","availableThemes","currentTheme","THEME_LOCAL_STORAGE_KEY","language","token","getStoredToken","middlewares","reducers","router","createRouter","basename","getBasename","_jsx","RouterProvider","constructor","config","plugins","hooksDict","admin","injectionZones","authLogo","Logo","head","favicon","menuLogo","notifications","releases","themes","light","lightTheme","dark","darkTheme","tutorials","rbac","RBAC","library","components","fields","customFields","CustomFields","Array","isArray","comp","invariant","Component","name","field","type","addMiddlewares","middleware","push","addRBACMiddleware","m","use","entries","reducer","link","sectionId","links","createSettingSection","section","createCustomConfigurations","customConfig","loc","auth","logo","menu","console","warn","trim","undefined","createHook","getAdminInjectedComponents","moduleName","containerName","blockName","err","error","pluginId","fn","registerPlugin","pluginConf","Plugin","runHookSeries","asynchronous","runSeriesAsync","runSeries","runHookWaterfall","initialValue","runWaterfall","runHookParallel","runParallel","Router","getInitialRoutes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StrapiApp.js","sources":["../../../../admin/src/StrapiApp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { RouterProvider } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ADMIN_PERMISSIONS_EE } from '../../ee/admin/src/constants';\n\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { ADMIN_PERMISSIONS_CE, HOOKS } from './constants';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { RBAC, RBACMiddleware } from './core/apis/rbac';\nimport { Router, StrapiAppSetting, UnloadedSettingsLink } from './core/apis/router';\nimport { Widgets } from './core/apis/Widgets';\nimport { RootState, Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport {\n THEME_LOCAL_STORAGE_KEY,\n LANGUAGE_LOCAL_STORAGE_KEY,\n ThemeName,\n getStoredToken,\n} from './reducer';\nimport { getInitialRoutes } from './router';\nimport { languageNativeNames } from './translations/languageNativeNames';\n\nimport type { ReducersMapObject, Middleware } from '@reduxjs/toolkit';\n\nconst {\n INJECT_COLUMN_IN_TABLE,\n MUTATE_COLLECTION_TYPES_LINKS,\n MUTATE_EDIT_VIEW_LAYOUT,\n MUTATE_SINGLE_TYPES_LINKS,\n} = HOOKS;\n\ninterface StrapiAppConstructorArgs extends Partial<Pick<StrapiApp, 'appPlugins'>> {\n config?: {\n auth?: { logo: string };\n head?: { favicon: string };\n locales?: string[];\n menu?: { logo: string };\n notifications?: { releases: boolean };\n theme?: { light: DefaultTheme; dark: DefaultTheme };\n translations?: Record<string, Record<string, string>>;\n tutorials?: boolean;\n };\n}\n\ntype Translation = { data: Record<string, string>; locale: string };\ntype Translations = Array<Translation>;\n\ninterface StrapiAppPlugin {\n bootstrap?: (\n args: Pick<StrapiApp, 'addSettingsLink' | 'addSettingsLinks' | 'getPlugin' | 'registerHook'>\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads?: (args: { locales: string[] }) => Promise<Translations>;\n}\n\ninterface InjectionZoneComponent {\n Component: React.ComponentType;\n name: string;\n // TODO: in theory this could receive and forward any React component prop\n // but in practice there only seems to be once instance, where `slug` is\n // forwarded. The type needs to become either more generic or we disallow\n // prop spreading and offer a different way to access context data.\n slug: string;\n}\n\ninterface Component {\n name: string;\n Component: React.ComponentType;\n}\n\ninterface Field {\n type: string;\n Component: React.ComponentType;\n}\n\ninterface Library {\n fields: Record<Field['type'], Field['Component']>;\n components: Record<Component['name'], Component['Component']>;\n}\n\nclass StrapiApp {\n appPlugins: Record<string, StrapiAppPlugin>;\n plugins: Record<string, Plugin> = {};\n hooksDict: Record<string, ReturnType<typeof createHook>> = {};\n\n admin = {\n injectionZones: {},\n };\n\n translations: StrapiApp['configurations']['translations'] = {};\n\n configurations = {\n authLogo: Logo,\n head: { favicon: '' },\n locales: ['en'],\n menuLogo: Logo,\n notifications: { releases: true },\n themes: { light: lightTheme, dark: darkTheme },\n translations: {},\n tutorials: true,\n };\n\n /**\n * APIs\n */\n rbac = new RBAC();\n router: Router;\n library: Library = {\n components: {},\n fields: {},\n };\n middlewares: Array<() => Middleware<object, RootState>> = [];\n reducers: ReducersMapObject = {};\n store: Store | null = null;\n customFields = new CustomFields();\n widgets = new Widgets();\n\n constructor({ config, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.appPlugins = appPlugins || {};\n\n this.createCustomConfigurations(config ?? {});\n\n this.createHook(INJECT_COLUMN_IN_TABLE);\n this.createHook(MUTATE_COLLECTION_TYPES_LINKS);\n this.createHook(MUTATE_SINGLE_TYPES_LINKS);\n this.createHook(MUTATE_EDIT_VIEW_LAYOUT);\n\n this.router = new Router(getInitialRoutes());\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((comp) => {\n invariant(comp.Component, 'A Component must be provided');\n invariant(comp.name, 'A type must be provided');\n\n this.library.components[comp.name] = comp.Component;\n });\n } else {\n invariant(components.Component, 'A Component must be provided');\n invariant(components.name, 'A type must be provided');\n\n this.library.components[components.name] = components.Component;\n }\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => {\n invariant(field.Component, 'A Component must be provided');\n invariant(field.type, 'A type must be provided');\n\n this.library.fields[field.type] = field.Component;\n });\n } else {\n invariant(fields.Component, 'A Component must be provided');\n invariant(fields.type, 'A type must be provided');\n\n this.library.fields[fields.type] = fields.Component;\n }\n };\n\n addMiddlewares = (middlewares: StrapiApp['middlewares']) => {\n middlewares.forEach((middleware) => {\n this.middlewares.push(middleware);\n });\n };\n\n addRBACMiddleware = (m: RBACMiddleware | RBACMiddleware[]) => {\n if (Array.isArray(m)) {\n this.rbac.use(m);\n } else {\n this.rbac.use(m);\n }\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n /**\n * TODO: when we upgrade to redux-toolkit@2 and we can also dynamically add middleware,\n * we'll deprecate these two APIs in favour of their hook counterparts.\n */\n Object.entries(reducers).forEach(([name, reducer]) => {\n this.reducers[name] = reducer;\n });\n };\n\n addMenuLink = (link: Parameters<typeof this.router.addMenuLink>[0]) =>\n this.router.addMenuLink(link);\n\n /**\n * @deprecated use `addSettingsLink` instead, it internally supports\n * adding multiple links at once.\n */\n addSettingsLinks = (sectionId: string, links: UnloadedSettingsLink[]) => {\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n\n this.router.addSettingsLink(sectionId, links);\n };\n\n /**\n * @deprecated use `addSettingsLink` instead, you can pass a section object to\n * create the section and links at the same time.\n */\n createSettingSection = (\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n links: UnloadedSettingsLink[]\n ) => this.router.addSettingsLink(section, links);\n\n addSettingsLink = (\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ) => {\n this.router.addSettingsLink(sectionId, link);\n };\n\n async bootstrap(customBootstrap?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n const bootstrap = this.appPlugins[plugin].bootstrap;\n\n if (bootstrap) {\n bootstrap({\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(customBootstrap)) {\n customBootstrap({\n addComponents: this.addComponents,\n addFields: this.addFields,\n addMenuLink: this.addMenuLink,\n addReducers: this.addReducers,\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n }\n\n createCustomConfigurations = (customConfig: NonNullable<StrapiAppConstructorArgs['config']>) => {\n if (customConfig.locales) {\n this.configurations.locales = [\n 'en',\n ...(customConfig.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (customConfig.auth?.logo) {\n this.configurations.authLogo = customConfig.auth.logo;\n }\n\n if (customConfig.menu?.logo) {\n this.configurations.menuLogo = customConfig.menu.logo;\n }\n\n if (customConfig.head?.favicon) {\n this.configurations.head.favicon = customConfig.head.favicon;\n }\n\n if (customConfig.theme) {\n const darkTheme = customConfig.theme.dark;\n const lightTheme = customConfig.theme.light;\n\n if (!darkTheme && !lightTheme) {\n console.warn(\n `[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension.`.trim()\n );\n merge(this.configurations.themes.light, customConfig.theme);\n }\n\n if (lightTheme) merge(this.configurations.themes.light, lightTheme);\n\n if (darkTheme) merge(this.configurations.themes.dark, darkTheme);\n }\n\n if (customConfig.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = customConfig.notifications.releases;\n }\n\n if (customConfig.tutorials !== undefined) {\n this.configurations.tutorials = customConfig.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n getAdminInjectedComponents = (\n moduleName: string,\n containerName: string,\n blockName: string\n ): InjectionZoneComponent[] => {\n try {\n // @ts-expect-error – we have a catch block so if you don't pass it correctly we still return an array.\n return this.admin.injectionZones[moduleName][containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n };\n\n getPlugin = (pluginId: PluginConfig['id']) => this.plugins[pluginId];\n\n async register(customRegister?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n\n if (isFunction(customRegister)) {\n customRegister(this);\n }\n }\n\n async loadAdminTrads() {\n const adminLocales = await Promise.all(\n this.configurations.locales.map(async (locale) => {\n try {\n const { default: data } = await import(`./translations/${locale}.js`);\n\n return { data, locale };\n } catch {\n try {\n const { default: data } = await import(`./translations/${locale}.json`);\n return { data, locale };\n } catch {\n return { data: null, locale };\n }\n }\n })\n );\n\n return adminLocales.reduce<{ [locale: string]: Record<string, string> }>((acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n }, {});\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n */\n async loadTrads(customTranslations: Record<string, Record<string, string>> = {}) {\n const adminTranslations = await this.loadAdminTrads();\n\n const arrayOfPromises = Object.keys(this.appPlugins)\n .map((plugin) => {\n const registerTrads = this.appPlugins[plugin].registerTrads;\n\n if (registerTrads) {\n return registerTrads({ locales: this.configurations.locales });\n }\n\n return null;\n })\n .filter((a) => a);\n\n const pluginsTrads = (await Promise.all(arrayOfPromises)) as Array<Translation[]>;\n const mergedTrads = pluginsTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc, currentPluginTrads) => {\n const pluginTrads = currentPluginTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc1, current) => {\n acc1[current.locale] = current.data;\n\n return acc1;\n },\n {}\n );\n\n Object.keys(pluginTrads).forEach((locale) => {\n acc[locale] = { ...acc[locale], ...pluginTrads[locale] };\n });\n\n return acc;\n },\n {}\n );\n\n const translations = this.configurations.locales.reduce<{\n [locale: string]: Translation['data'];\n }>((acc, current) => {\n acc[current] = {\n ...adminTranslations[current],\n ...(mergedTrads[current] || {}),\n ...(customTranslations[current] ?? {}),\n };\n\n return acc;\n }, {});\n\n this.configurations.translations = translations;\n\n return Promise.resolve();\n }\n\n registerHook = (name: string, fn: Handler) => {\n invariant(\n this.hooksDict[name],\n `The hook ${name} is not defined. You are trying to register a hook that does not exist in the application.`\n );\n this.hooksDict[name].register(fn);\n };\n\n registerPlugin = (pluginConf: PluginConfig) => {\n const plugin = new Plugin(pluginConf);\n\n this.plugins[plugin.pluginId] = plugin;\n };\n\n runHookSeries = (name: string, asynchronous = false) =>\n asynchronous ? this.hooksDict[name].runSeriesAsync() : this.hooksDict[name].runSeries();\n\n runHookWaterfall = <T,>(name: string, initialValue: T, store?: Store) => {\n return this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n const locale = (localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) ||\n 'en') as keyof typeof localeNames;\n\n this.store = configureStore(\n {\n admin_app: {\n permissions: merge({}, ADMIN_PERMISSIONS_CE, ADMIN_PERMISSIONS_EE),\n theme: {\n availableThemes: [],\n currentTheme: (localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system') as ThemeName,\n },\n language: {\n locale: localeNames[locale] ? locale : 'en',\n localeNames,\n },\n token: getStoredToken(),\n },\n },\n this.middlewares,\n this.reducers\n ) as Store;\n\n const router = this.router.createRouter(this, {\n basename: getBasename(),\n });\n\n return <RouterProvider router={router} />;\n }\n}\n\nexport { StrapiApp };\nexport type { StrapiAppPlugin, StrapiAppConstructorArgs, InjectionZoneComponent };\n"],"names":["INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","HOOKS","StrapiApp","bootstrap","customBootstrap","Object","keys","appPlugins","forEach","plugin","addSettingsLink","addSettingsLinks","getPlugin","registerHook","isFunction","addComponents","addFields","addMenuLink","addReducers","register","customRegister","loadAdminTrads","adminLocales","Promise","all","configurations","locales","map","locale","default","data","reduce","acc","current","loadTrads","customTranslations","adminTranslations","arrayOfPromises","registerTrads","filter","a","pluginsTrads","mergedTrads","currentPluginTrads","pluginTrads","acc1","translations","resolve","render","localeNames","pick","languageNativeNames","localStorage","getItem","LANGUAGE_LOCAL_STORAGE_KEY","store","configureStore","admin_app","permissions","merge","ADMIN_PERMISSIONS_CE","ADMIN_PERMISSIONS_EE","theme","availableThemes","currentTheme","THEME_LOCAL_STORAGE_KEY","language","token","getStoredToken","middlewares","reducers","router","createRouter","basename","getBasename","_jsx","RouterProvider","constructor","config","plugins","hooksDict","admin","injectionZones","authLogo","Logo","head","favicon","menuLogo","notifications","releases","themes","light","lightTheme","dark","darkTheme","tutorials","rbac","RBAC","library","components","fields","customFields","CustomFields","widgets","Widgets","Array","isArray","comp","invariant","Component","name","field","type","addMiddlewares","middleware","push","addRBACMiddleware","m","use","entries","reducer","link","sectionId","links","createSettingSection","section","createCustomConfigurations","customConfig","loc","auth","logo","menu","console","warn","trim","undefined","createHook","getAdminInjectedComponents","moduleName","containerName","blockName","err","error","pluginId","fn","registerPlugin","pluginConf","Plugin","runHookSeries","asynchronous","runSeriesAsync","runSeries","runHookWaterfall","initialValue","runWaterfall","runHookParallel","runParallel","Router","getInitialRoutes"],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { CustomFields } from './core/apis/CustomFields.mjs';
|
|
|
13
13
|
import { Plugin } from './core/apis/Plugin.mjs';
|
|
14
14
|
import { RBAC } from './core/apis/rbac.mjs';
|
|
15
15
|
import { Router } from './core/apis/router.mjs';
|
|
16
|
+
import { Widgets } from './core/apis/Widgets.mjs';
|
|
16
17
|
import { configureStore as configureStoreImpl } from './core/store/configure.mjs';
|
|
17
18
|
import { getBasename } from './core/utils/basename.mjs';
|
|
18
19
|
import { createHook } from './core/utils/createHook.mjs';
|
|
@@ -239,6 +240,7 @@ class StrapiApp {
|
|
|
239
240
|
this.reducers = {};
|
|
240
241
|
this.store = null;
|
|
241
242
|
this.customFields = new CustomFields();
|
|
243
|
+
this.widgets = new Widgets();
|
|
242
244
|
this.addComponents = (components)=>{
|
|
243
245
|
if (Array.isArray(components)) {
|
|
244
246
|
components.map((comp)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrapiApp.mjs","sources":["../../../../admin/src/StrapiApp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { RouterProvider } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ADMIN_PERMISSIONS_EE } from '../../ee/admin/src/constants';\n\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { ADMIN_PERMISSIONS_CE, HOOKS } from './constants';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { RBAC, RBACMiddleware } from './core/apis/rbac';\nimport { Router, StrapiAppSetting, UnloadedSettingsLink } from './core/apis/router';\nimport { RootState, Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport {\n THEME_LOCAL_STORAGE_KEY,\n LANGUAGE_LOCAL_STORAGE_KEY,\n ThemeName,\n getStoredToken,\n} from './reducer';\nimport { getInitialRoutes } from './router';\nimport { languageNativeNames } from './translations/languageNativeNames';\n\nimport type { ReducersMapObject, Middleware } from '@reduxjs/toolkit';\n\nconst {\n INJECT_COLUMN_IN_TABLE,\n MUTATE_COLLECTION_TYPES_LINKS,\n MUTATE_EDIT_VIEW_LAYOUT,\n MUTATE_SINGLE_TYPES_LINKS,\n} = HOOKS;\n\ninterface StrapiAppConstructorArgs extends Partial<Pick<StrapiApp, 'appPlugins'>> {\n config?: {\n auth?: { logo: string };\n head?: { favicon: string };\n locales?: string[];\n menu?: { logo: string };\n notifications?: { releases: boolean };\n theme?: { light: DefaultTheme; dark: DefaultTheme };\n translations?: Record<string, Record<string, string>>;\n tutorials?: boolean;\n };\n}\n\ntype Translation = { data: Record<string, string>; locale: string };\ntype Translations = Array<Translation>;\n\ninterface StrapiAppPlugin {\n bootstrap?: (\n args: Pick<StrapiApp, 'addSettingsLink' | 'addSettingsLinks' | 'getPlugin' | 'registerHook'>\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads?: (args: { locales: string[] }) => Promise<Translations>;\n}\n\ninterface InjectionZoneComponent {\n Component: React.ComponentType;\n name: string;\n // TODO: in theory this could receive and forward any React component prop\n // but in practice there only seems to be once instance, where `slug` is\n // forwarded. The type needs to become either more generic or we disallow\n // prop spreading and offer a different way to access context data.\n slug: string;\n}\n\ninterface Component {\n name: string;\n Component: React.ComponentType;\n}\n\ninterface Field {\n type: string;\n Component: React.ComponentType;\n}\n\ninterface Library {\n fields: Record<Field['type'], Field['Component']>;\n components: Record<Component['name'], Component['Component']>;\n}\n\nclass StrapiApp {\n appPlugins: Record<string, StrapiAppPlugin>;\n plugins: Record<string, Plugin> = {};\n hooksDict: Record<string, ReturnType<typeof createHook>> = {};\n\n admin = {\n injectionZones: {},\n };\n\n translations: StrapiApp['configurations']['translations'] = {};\n\n configurations = {\n authLogo: Logo,\n head: { favicon: '' },\n locales: ['en'],\n menuLogo: Logo,\n notifications: { releases: true },\n themes: { light: lightTheme, dark: darkTheme },\n translations: {},\n tutorials: true,\n };\n\n /**\n * APIs\n */\n rbac = new RBAC();\n router: Router;\n library: Library = {\n components: {},\n fields: {},\n };\n middlewares: Array<() => Middleware<object, RootState>> = [];\n reducers: ReducersMapObject = {};\n store: Store | null = null;\n customFields = new CustomFields();\n\n constructor({ config, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.appPlugins = appPlugins || {};\n\n this.createCustomConfigurations(config ?? {});\n\n this.createHook(INJECT_COLUMN_IN_TABLE);\n this.createHook(MUTATE_COLLECTION_TYPES_LINKS);\n this.createHook(MUTATE_SINGLE_TYPES_LINKS);\n this.createHook(MUTATE_EDIT_VIEW_LAYOUT);\n\n this.router = new Router(getInitialRoutes());\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((comp) => {\n invariant(comp.Component, 'A Component must be provided');\n invariant(comp.name, 'A type must be provided');\n\n this.library.components[comp.name] = comp.Component;\n });\n } else {\n invariant(components.Component, 'A Component must be provided');\n invariant(components.name, 'A type must be provided');\n\n this.library.components[components.name] = components.Component;\n }\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => {\n invariant(field.Component, 'A Component must be provided');\n invariant(field.type, 'A type must be provided');\n\n this.library.fields[field.type] = field.Component;\n });\n } else {\n invariant(fields.Component, 'A Component must be provided');\n invariant(fields.type, 'A type must be provided');\n\n this.library.fields[fields.type] = fields.Component;\n }\n };\n\n addMiddlewares = (middlewares: StrapiApp['middlewares']) => {\n middlewares.forEach((middleware) => {\n this.middlewares.push(middleware);\n });\n };\n\n addRBACMiddleware = (m: RBACMiddleware | RBACMiddleware[]) => {\n if (Array.isArray(m)) {\n this.rbac.use(m);\n } else {\n this.rbac.use(m);\n }\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n /**\n * TODO: when we upgrade to redux-toolkit@2 and we can also dynamically add middleware,\n * we'll deprecate these two APIs in favour of their hook counterparts.\n */\n Object.entries(reducers).forEach(([name, reducer]) => {\n this.reducers[name] = reducer;\n });\n };\n\n addMenuLink = (link: Parameters<typeof this.router.addMenuLink>[0]) =>\n this.router.addMenuLink(link);\n\n /**\n * @deprecated use `addSettingsLink` instead, it internally supports\n * adding multiple links at once.\n */\n addSettingsLinks = (sectionId: string, links: UnloadedSettingsLink[]) => {\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n\n this.router.addSettingsLink(sectionId, links);\n };\n\n /**\n * @deprecated use `addSettingsLink` instead, you can pass a section object to\n * create the section and links at the same time.\n */\n createSettingSection = (\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n links: UnloadedSettingsLink[]\n ) => this.router.addSettingsLink(section, links);\n\n addSettingsLink = (\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ) => {\n this.router.addSettingsLink(sectionId, link);\n };\n\n async bootstrap(customBootstrap?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n const bootstrap = this.appPlugins[plugin].bootstrap;\n\n if (bootstrap) {\n bootstrap({\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(customBootstrap)) {\n customBootstrap({\n addComponents: this.addComponents,\n addFields: this.addFields,\n addMenuLink: this.addMenuLink,\n addReducers: this.addReducers,\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n }\n\n createCustomConfigurations = (customConfig: NonNullable<StrapiAppConstructorArgs['config']>) => {\n if (customConfig.locales) {\n this.configurations.locales = [\n 'en',\n ...(customConfig.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (customConfig.auth?.logo) {\n this.configurations.authLogo = customConfig.auth.logo;\n }\n\n if (customConfig.menu?.logo) {\n this.configurations.menuLogo = customConfig.menu.logo;\n }\n\n if (customConfig.head?.favicon) {\n this.configurations.head.favicon = customConfig.head.favicon;\n }\n\n if (customConfig.theme) {\n const darkTheme = customConfig.theme.dark;\n const lightTheme = customConfig.theme.light;\n\n if (!darkTheme && !lightTheme) {\n console.warn(\n `[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension.`.trim()\n );\n merge(this.configurations.themes.light, customConfig.theme);\n }\n\n if (lightTheme) merge(this.configurations.themes.light, lightTheme);\n\n if (darkTheme) merge(this.configurations.themes.dark, darkTheme);\n }\n\n if (customConfig.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = customConfig.notifications.releases;\n }\n\n if (customConfig.tutorials !== undefined) {\n this.configurations.tutorials = customConfig.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n getAdminInjectedComponents = (\n moduleName: string,\n containerName: string,\n blockName: string\n ): InjectionZoneComponent[] => {\n try {\n // @ts-expect-error – we have a catch block so if you don't pass it correctly we still return an array.\n return this.admin.injectionZones[moduleName][containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n };\n\n getPlugin = (pluginId: PluginConfig['id']) => this.plugins[pluginId];\n\n async register(customRegister?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n\n if (isFunction(customRegister)) {\n customRegister(this);\n }\n }\n\n async loadAdminTrads() {\n const adminLocales = await Promise.all(\n this.configurations.locales.map(async (locale) => {\n try {\n const { default: data } = await import(`./translations/${locale}.js`);\n\n return { data, locale };\n } catch {\n try {\n const { default: data } = await import(`./translations/${locale}.json`);\n return { data, locale };\n } catch {\n return { data: null, locale };\n }\n }\n })\n );\n\n return adminLocales.reduce<{ [locale: string]: Record<string, string> }>((acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n }, {});\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n */\n async loadTrads(customTranslations: Record<string, Record<string, string>> = {}) {\n const adminTranslations = await this.loadAdminTrads();\n\n const arrayOfPromises = Object.keys(this.appPlugins)\n .map((plugin) => {\n const registerTrads = this.appPlugins[plugin].registerTrads;\n\n if (registerTrads) {\n return registerTrads({ locales: this.configurations.locales });\n }\n\n return null;\n })\n .filter((a) => a);\n\n const pluginsTrads = (await Promise.all(arrayOfPromises)) as Array<Translation[]>;\n const mergedTrads = pluginsTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc, currentPluginTrads) => {\n const pluginTrads = currentPluginTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc1, current) => {\n acc1[current.locale] = current.data;\n\n return acc1;\n },\n {}\n );\n\n Object.keys(pluginTrads).forEach((locale) => {\n acc[locale] = { ...acc[locale], ...pluginTrads[locale] };\n });\n\n return acc;\n },\n {}\n );\n\n const translations = this.configurations.locales.reduce<{\n [locale: string]: Translation['data'];\n }>((acc, current) => {\n acc[current] = {\n ...adminTranslations[current],\n ...(mergedTrads[current] || {}),\n ...(customTranslations[current] ?? {}),\n };\n\n return acc;\n }, {});\n\n this.configurations.translations = translations;\n\n return Promise.resolve();\n }\n\n registerHook = (name: string, fn: Handler) => {\n invariant(\n this.hooksDict[name],\n `The hook ${name} is not defined. You are trying to register a hook that does not exist in the application.`\n );\n this.hooksDict[name].register(fn);\n };\n\n registerPlugin = (pluginConf: PluginConfig) => {\n const plugin = new Plugin(pluginConf);\n\n this.plugins[plugin.pluginId] = plugin;\n };\n\n runHookSeries = (name: string, asynchronous = false) =>\n asynchronous ? this.hooksDict[name].runSeriesAsync() : this.hooksDict[name].runSeries();\n\n runHookWaterfall = <T,>(name: string, initialValue: T, store?: Store) => {\n return this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n const locale = (localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) ||\n 'en') as keyof typeof localeNames;\n\n this.store = configureStore(\n {\n admin_app: {\n permissions: merge({}, ADMIN_PERMISSIONS_CE, ADMIN_PERMISSIONS_EE),\n theme: {\n availableThemes: [],\n currentTheme: (localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system') as ThemeName,\n },\n language: {\n locale: localeNames[locale] ? locale : 'en',\n localeNames,\n },\n token: getStoredToken(),\n },\n },\n this.middlewares,\n this.reducers\n ) as Store;\n\n const router = this.router.createRouter(this, {\n basename: getBasename(),\n });\n\n return <RouterProvider router={router} />;\n }\n}\n\nexport { StrapiApp };\nexport type { StrapiAppPlugin, StrapiAppConstructorArgs, InjectionZoneComponent };\n"],"names":["INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","HOOKS","StrapiApp","bootstrap","customBootstrap","Object","keys","appPlugins","forEach","plugin","addSettingsLink","addSettingsLinks","getPlugin","registerHook","isFunction","addComponents","addFields","addMenuLink","addReducers","register","customRegister","loadAdminTrads","adminLocales","Promise","all","configurations","locales","map","locale","default","data","reduce","acc","current","loadTrads","customTranslations","adminTranslations","arrayOfPromises","registerTrads","filter","a","pluginsTrads","mergedTrads","currentPluginTrads","pluginTrads","acc1","translations","resolve","render","localeNames","pick","languageNativeNames","localStorage","getItem","LANGUAGE_LOCAL_STORAGE_KEY","store","configureStore","admin_app","permissions","merge","ADMIN_PERMISSIONS_CE","ADMIN_PERMISSIONS_EE","theme","availableThemes","currentTheme","THEME_LOCAL_STORAGE_KEY","language","token","getStoredToken","middlewares","reducers","router","createRouter","basename","getBasename","_jsx","RouterProvider","constructor","config","plugins","hooksDict","admin","injectionZones","authLogo","Logo","head","favicon","menuLogo","notifications","releases","themes","light","lightTheme","dark","darkTheme","tutorials","rbac","RBAC","library","components","fields","customFields","CustomFields","Array","isArray","comp","invariant","Component","name","field","type","addMiddlewares","middleware","push","addRBACMiddleware","m","use","entries","reducer","link","sectionId","links","createSettingSection","section","createCustomConfigurations","customConfig","loc","auth","logo","menu","console","warn","trim","undefined","createHook","getAdminInjectedComponents","moduleName","containerName","blockName","err","error","pluginId","fn","registerPlugin","pluginConf","Plugin","runHookSeries","asynchronous","runSeriesAsync","runSeries","runHookWaterfall","initialValue","runWaterfall","runHookParallel","runParallel","Router","getInitialRoutes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StrapiApp.mjs","sources":["../../../../admin/src/StrapiApp.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { RouterProvider } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ADMIN_PERMISSIONS_EE } from '../../ee/admin/src/constants';\n\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { ADMIN_PERMISSIONS_CE, HOOKS } from './constants';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { RBAC, RBACMiddleware } from './core/apis/rbac';\nimport { Router, StrapiAppSetting, UnloadedSettingsLink } from './core/apis/router';\nimport { Widgets } from './core/apis/Widgets';\nimport { RootState, Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport {\n THEME_LOCAL_STORAGE_KEY,\n LANGUAGE_LOCAL_STORAGE_KEY,\n ThemeName,\n getStoredToken,\n} from './reducer';\nimport { getInitialRoutes } from './router';\nimport { languageNativeNames } from './translations/languageNativeNames';\n\nimport type { ReducersMapObject, Middleware } from '@reduxjs/toolkit';\n\nconst {\n INJECT_COLUMN_IN_TABLE,\n MUTATE_COLLECTION_TYPES_LINKS,\n MUTATE_EDIT_VIEW_LAYOUT,\n MUTATE_SINGLE_TYPES_LINKS,\n} = HOOKS;\n\ninterface StrapiAppConstructorArgs extends Partial<Pick<StrapiApp, 'appPlugins'>> {\n config?: {\n auth?: { logo: string };\n head?: { favicon: string };\n locales?: string[];\n menu?: { logo: string };\n notifications?: { releases: boolean };\n theme?: { light: DefaultTheme; dark: DefaultTheme };\n translations?: Record<string, Record<string, string>>;\n tutorials?: boolean;\n };\n}\n\ntype Translation = { data: Record<string, string>; locale: string };\ntype Translations = Array<Translation>;\n\ninterface StrapiAppPlugin {\n bootstrap?: (\n args: Pick<StrapiApp, 'addSettingsLink' | 'addSettingsLinks' | 'getPlugin' | 'registerHook'>\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads?: (args: { locales: string[] }) => Promise<Translations>;\n}\n\ninterface InjectionZoneComponent {\n Component: React.ComponentType;\n name: string;\n // TODO: in theory this could receive and forward any React component prop\n // but in practice there only seems to be once instance, where `slug` is\n // forwarded. The type needs to become either more generic or we disallow\n // prop spreading and offer a different way to access context data.\n slug: string;\n}\n\ninterface Component {\n name: string;\n Component: React.ComponentType;\n}\n\ninterface Field {\n type: string;\n Component: React.ComponentType;\n}\n\ninterface Library {\n fields: Record<Field['type'], Field['Component']>;\n components: Record<Component['name'], Component['Component']>;\n}\n\nclass StrapiApp {\n appPlugins: Record<string, StrapiAppPlugin>;\n plugins: Record<string, Plugin> = {};\n hooksDict: Record<string, ReturnType<typeof createHook>> = {};\n\n admin = {\n injectionZones: {},\n };\n\n translations: StrapiApp['configurations']['translations'] = {};\n\n configurations = {\n authLogo: Logo,\n head: { favicon: '' },\n locales: ['en'],\n menuLogo: Logo,\n notifications: { releases: true },\n themes: { light: lightTheme, dark: darkTheme },\n translations: {},\n tutorials: true,\n };\n\n /**\n * APIs\n */\n rbac = new RBAC();\n router: Router;\n library: Library = {\n components: {},\n fields: {},\n };\n middlewares: Array<() => Middleware<object, RootState>> = [];\n reducers: ReducersMapObject = {};\n store: Store | null = null;\n customFields = new CustomFields();\n widgets = new Widgets();\n\n constructor({ config, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.appPlugins = appPlugins || {};\n\n this.createCustomConfigurations(config ?? {});\n\n this.createHook(INJECT_COLUMN_IN_TABLE);\n this.createHook(MUTATE_COLLECTION_TYPES_LINKS);\n this.createHook(MUTATE_SINGLE_TYPES_LINKS);\n this.createHook(MUTATE_EDIT_VIEW_LAYOUT);\n\n this.router = new Router(getInitialRoutes());\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((comp) => {\n invariant(comp.Component, 'A Component must be provided');\n invariant(comp.name, 'A type must be provided');\n\n this.library.components[comp.name] = comp.Component;\n });\n } else {\n invariant(components.Component, 'A Component must be provided');\n invariant(components.name, 'A type must be provided');\n\n this.library.components[components.name] = components.Component;\n }\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => {\n invariant(field.Component, 'A Component must be provided');\n invariant(field.type, 'A type must be provided');\n\n this.library.fields[field.type] = field.Component;\n });\n } else {\n invariant(fields.Component, 'A Component must be provided');\n invariant(fields.type, 'A type must be provided');\n\n this.library.fields[fields.type] = fields.Component;\n }\n };\n\n addMiddlewares = (middlewares: StrapiApp['middlewares']) => {\n middlewares.forEach((middleware) => {\n this.middlewares.push(middleware);\n });\n };\n\n addRBACMiddleware = (m: RBACMiddleware | RBACMiddleware[]) => {\n if (Array.isArray(m)) {\n this.rbac.use(m);\n } else {\n this.rbac.use(m);\n }\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n /**\n * TODO: when we upgrade to redux-toolkit@2 and we can also dynamically add middleware,\n * we'll deprecate these two APIs in favour of their hook counterparts.\n */\n Object.entries(reducers).forEach(([name, reducer]) => {\n this.reducers[name] = reducer;\n });\n };\n\n addMenuLink = (link: Parameters<typeof this.router.addMenuLink>[0]) =>\n this.router.addMenuLink(link);\n\n /**\n * @deprecated use `addSettingsLink` instead, it internally supports\n * adding multiple links at once.\n */\n addSettingsLinks = (sectionId: string, links: UnloadedSettingsLink[]) => {\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n\n this.router.addSettingsLink(sectionId, links);\n };\n\n /**\n * @deprecated use `addSettingsLink` instead, you can pass a section object to\n * create the section and links at the same time.\n */\n createSettingSection = (\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n links: UnloadedSettingsLink[]\n ) => this.router.addSettingsLink(section, links);\n\n addSettingsLink = (\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ) => {\n this.router.addSettingsLink(sectionId, link);\n };\n\n async bootstrap(customBootstrap?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n const bootstrap = this.appPlugins[plugin].bootstrap;\n\n if (bootstrap) {\n bootstrap({\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(customBootstrap)) {\n customBootstrap({\n addComponents: this.addComponents,\n addFields: this.addFields,\n addMenuLink: this.addMenuLink,\n addReducers: this.addReducers,\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n }\n\n createCustomConfigurations = (customConfig: NonNullable<StrapiAppConstructorArgs['config']>) => {\n if (customConfig.locales) {\n this.configurations.locales = [\n 'en',\n ...(customConfig.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (customConfig.auth?.logo) {\n this.configurations.authLogo = customConfig.auth.logo;\n }\n\n if (customConfig.menu?.logo) {\n this.configurations.menuLogo = customConfig.menu.logo;\n }\n\n if (customConfig.head?.favicon) {\n this.configurations.head.favicon = customConfig.head.favicon;\n }\n\n if (customConfig.theme) {\n const darkTheme = customConfig.theme.dark;\n const lightTheme = customConfig.theme.light;\n\n if (!darkTheme && !lightTheme) {\n console.warn(\n `[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension.`.trim()\n );\n merge(this.configurations.themes.light, customConfig.theme);\n }\n\n if (lightTheme) merge(this.configurations.themes.light, lightTheme);\n\n if (darkTheme) merge(this.configurations.themes.dark, darkTheme);\n }\n\n if (customConfig.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = customConfig.notifications.releases;\n }\n\n if (customConfig.tutorials !== undefined) {\n this.configurations.tutorials = customConfig.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n getAdminInjectedComponents = (\n moduleName: string,\n containerName: string,\n blockName: string\n ): InjectionZoneComponent[] => {\n try {\n // @ts-expect-error – we have a catch block so if you don't pass it correctly we still return an array.\n return this.admin.injectionZones[moduleName][containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n };\n\n getPlugin = (pluginId: PluginConfig['id']) => this.plugins[pluginId];\n\n async register(customRegister?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n\n if (isFunction(customRegister)) {\n customRegister(this);\n }\n }\n\n async loadAdminTrads() {\n const adminLocales = await Promise.all(\n this.configurations.locales.map(async (locale) => {\n try {\n const { default: data } = await import(`./translations/${locale}.js`);\n\n return { data, locale };\n } catch {\n try {\n const { default: data } = await import(`./translations/${locale}.json`);\n return { data, locale };\n } catch {\n return { data: null, locale };\n }\n }\n })\n );\n\n return adminLocales.reduce<{ [locale: string]: Record<string, string> }>((acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n }, {});\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n */\n async loadTrads(customTranslations: Record<string, Record<string, string>> = {}) {\n const adminTranslations = await this.loadAdminTrads();\n\n const arrayOfPromises = Object.keys(this.appPlugins)\n .map((plugin) => {\n const registerTrads = this.appPlugins[plugin].registerTrads;\n\n if (registerTrads) {\n return registerTrads({ locales: this.configurations.locales });\n }\n\n return null;\n })\n .filter((a) => a);\n\n const pluginsTrads = (await Promise.all(arrayOfPromises)) as Array<Translation[]>;\n const mergedTrads = pluginsTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc, currentPluginTrads) => {\n const pluginTrads = currentPluginTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc1, current) => {\n acc1[current.locale] = current.data;\n\n return acc1;\n },\n {}\n );\n\n Object.keys(pluginTrads).forEach((locale) => {\n acc[locale] = { ...acc[locale], ...pluginTrads[locale] };\n });\n\n return acc;\n },\n {}\n );\n\n const translations = this.configurations.locales.reduce<{\n [locale: string]: Translation['data'];\n }>((acc, current) => {\n acc[current] = {\n ...adminTranslations[current],\n ...(mergedTrads[current] || {}),\n ...(customTranslations[current] ?? {}),\n };\n\n return acc;\n }, {});\n\n this.configurations.translations = translations;\n\n return Promise.resolve();\n }\n\n registerHook = (name: string, fn: Handler) => {\n invariant(\n this.hooksDict[name],\n `The hook ${name} is not defined. You are trying to register a hook that does not exist in the application.`\n );\n this.hooksDict[name].register(fn);\n };\n\n registerPlugin = (pluginConf: PluginConfig) => {\n const plugin = new Plugin(pluginConf);\n\n this.plugins[plugin.pluginId] = plugin;\n };\n\n runHookSeries = (name: string, asynchronous = false) =>\n asynchronous ? this.hooksDict[name].runSeriesAsync() : this.hooksDict[name].runSeries();\n\n runHookWaterfall = <T,>(name: string, initialValue: T, store?: Store) => {\n return this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n const locale = (localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) ||\n 'en') as keyof typeof localeNames;\n\n this.store = configureStore(\n {\n admin_app: {\n permissions: merge({}, ADMIN_PERMISSIONS_CE, ADMIN_PERMISSIONS_EE),\n theme: {\n availableThemes: [],\n currentTheme: (localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system') as ThemeName,\n },\n language: {\n locale: localeNames[locale] ? locale : 'en',\n localeNames,\n },\n token: getStoredToken(),\n },\n },\n this.middlewares,\n this.reducers\n ) as Store;\n\n const router = this.router.createRouter(this, {\n basename: getBasename(),\n });\n\n return <RouterProvider router={router} />;\n }\n}\n\nexport { StrapiApp };\nexport type { StrapiAppPlugin, StrapiAppConstructorArgs, InjectionZoneComponent };\n"],"names":["INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","HOOKS","StrapiApp","bootstrap","customBootstrap","Object","keys","appPlugins","forEach","plugin","addSettingsLink","addSettingsLinks","getPlugin","registerHook","isFunction","addComponents","addFields","addMenuLink","addReducers","register","customRegister","loadAdminTrads","adminLocales","Promise","all","configurations","locales","map","locale","default","data","reduce","acc","current","loadTrads","customTranslations","adminTranslations","arrayOfPromises","registerTrads","filter","a","pluginsTrads","mergedTrads","currentPluginTrads","pluginTrads","acc1","translations","resolve","render","localeNames","pick","languageNativeNames","localStorage","getItem","LANGUAGE_LOCAL_STORAGE_KEY","store","configureStore","admin_app","permissions","merge","ADMIN_PERMISSIONS_CE","ADMIN_PERMISSIONS_EE","theme","availableThemes","currentTheme","THEME_LOCAL_STORAGE_KEY","language","token","getStoredToken","middlewares","reducers","router","createRouter","basename","getBasename","_jsx","RouterProvider","constructor","config","plugins","hooksDict","admin","injectionZones","authLogo","Logo","head","favicon","menuLogo","notifications","releases","themes","light","lightTheme","dark","darkTheme","tutorials","rbac","RBAC","library","components","fields","customFields","CustomFields","widgets","Widgets","Array","isArray","comp","invariant","Component","name","field","type","addMiddlewares","middleware","push","addRBACMiddleware","m","use","entries","reducer","link","sectionId","links","createSettingSection","section","createCustomConfigurations","customConfig","loc","auth","logo","menu","console","warn","trim","undefined","createHook","getAdminInjectedComponents","moduleName","containerName","blockName","err","error","pluginId","fn","registerPlugin","pluginConf","Plugin","runHookSeries","asynchronous","runSeriesAsync","runSeries","runHookWaterfall","initialValue","runWaterfall","runHookParallel","runParallel","Router","getInitialRoutes"],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ const Providers = ({ children, strapi, store })=>{
|
|
|
25
25
|
return /*#__PURE__*/ jsxRuntime.jsx(StrapiApp.StrapiAppProvider, {
|
|
26
26
|
components: strapi.library.components,
|
|
27
27
|
customFields: strapi.customFields,
|
|
28
|
+
widgets: strapi.widgets,
|
|
28
29
|
fields: strapi.library.fields,
|
|
29
30
|
menu: strapi.router.menu,
|
|
30
31
|
getAdminInjectedComponents: strapi.getAdminInjectedComponents,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;
|
|
1
|
+
{"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,2BAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
|
|
@@ -23,6 +23,7 @@ const Providers = ({ children, strapi, store })=>{
|
|
|
23
23
|
return /*#__PURE__*/ jsx(StrapiAppProvider, {
|
|
24
24
|
components: strapi.library.components,
|
|
25
25
|
customFields: strapi.customFields,
|
|
26
|
+
widgets: strapi.widgets,
|
|
26
27
|
fields: strapi.library.fields,
|
|
27
28
|
menu: strapi.router.menu,
|
|
28
29
|
getAdminInjectedComponents: strapi.getAdminInjectedComponents,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;
|
|
1
|
+
{"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
|
package/dist/admin/admin/src/{pages/Home/components/Widget.js → components/WidgetHelpers.js}
RENAMED
|
@@ -1,77 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var React = require('react');
|
|
5
4
|
var designSystem = require('@strapi/design-system');
|
|
6
5
|
var icons = require('@strapi/icons');
|
|
7
6
|
var symbols = require('@strapi/icons/symbols');
|
|
8
7
|
var reactIntl = require('react-intl');
|
|
9
8
|
|
|
10
|
-
function _interopNamespaceDefault(e) {
|
|
11
|
-
var n = Object.create(null);
|
|
12
|
-
if (e) {
|
|
13
|
-
Object.keys(e).forEach(function (k) {
|
|
14
|
-
if (k !== 'default') {
|
|
15
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () { return e[k]; }
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
n.default = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
28
|
-
|
|
29
|
-
const Root = ({ title, icon = icons.PuzzlePiece, children })=>{
|
|
30
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
31
|
-
const id = React__namespace.useId();
|
|
32
|
-
const Icon = icon;
|
|
33
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
34
|
-
width: "100%",
|
|
35
|
-
hasRadius: true,
|
|
36
|
-
direction: "column",
|
|
37
|
-
alignItems: "flex-start",
|
|
38
|
-
background: "neutral0",
|
|
39
|
-
borderColor: "neutral150",
|
|
40
|
-
shadow: "tableShadow",
|
|
41
|
-
tag: "section",
|
|
42
|
-
gap: 4,
|
|
43
|
-
padding: 6,
|
|
44
|
-
"aria-labelledby": id,
|
|
45
|
-
children: [
|
|
46
|
-
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
47
|
-
direction: "row",
|
|
48
|
-
alignItems: "center",
|
|
49
|
-
gap: 2,
|
|
50
|
-
tag: "header",
|
|
51
|
-
children: [
|
|
52
|
-
/*#__PURE__*/ jsxRuntime.jsx(Icon, {
|
|
53
|
-
fill: "neutral500",
|
|
54
|
-
"aria-hidden": true
|
|
55
|
-
}),
|
|
56
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
57
|
-
textColor: "neutral500",
|
|
58
|
-
variant: "sigma",
|
|
59
|
-
tag: "h2",
|
|
60
|
-
id: id,
|
|
61
|
-
children: formatMessage(title)
|
|
62
|
-
})
|
|
63
|
-
]
|
|
64
|
-
}),
|
|
65
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
66
|
-
width: "100%",
|
|
67
|
-
height: "261px",
|
|
68
|
-
overflow: "auto",
|
|
69
|
-
tag: "main",
|
|
70
|
-
children: children
|
|
71
|
-
})
|
|
72
|
-
]
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
9
|
const Loading = ({ children })=>{
|
|
76
10
|
const { formatMessage } = reactIntl.useIntl();
|
|
77
11
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
@@ -140,12 +74,35 @@ const NoData = ({ children })=>{
|
|
|
140
74
|
]
|
|
141
75
|
});
|
|
142
76
|
};
|
|
77
|
+
const NoPermissions = ({ children })=>{
|
|
78
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
79
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
80
|
+
height: "100%",
|
|
81
|
+
direction: "column",
|
|
82
|
+
justifyContent: "center",
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
gap: 6,
|
|
85
|
+
children: [
|
|
86
|
+
/*#__PURE__*/ jsxRuntime.jsx(symbols.EmptyPermissions, {
|
|
87
|
+
width: "16rem",
|
|
88
|
+
height: "8.8rem"
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
91
|
+
textColor: "neutral600",
|
|
92
|
+
children: children ?? formatMessage({
|
|
93
|
+
id: 'HomePage.widget.no-permissions',
|
|
94
|
+
defaultMessage: 'You don’t have the permission to see this widget'
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
};
|
|
143
100
|
const Widget = {
|
|
144
|
-
Root,
|
|
145
101
|
Loading,
|
|
146
102
|
Error,
|
|
147
|
-
NoData
|
|
103
|
+
NoData,
|
|
104
|
+
NoPermissions
|
|
148
105
|
};
|
|
149
106
|
|
|
150
107
|
exports.Widget = Widget;
|
|
151
|
-
//# sourceMappingURL=
|
|
108
|
+
//# sourceMappingURL=WidgetHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetHelpers.js","sources":["../../../../../admin/src/components/WidgetHelpers.tsx"],"sourcesContent":["import { Flex, Loader, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyDocuments, EmptyPermissions } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LoadingProps {\n children?: string;\n}\n\nconst Loading = ({ children }: LoadingProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\" justifyContent=\"center\" alignItems=\"center\">\n <Loader>\n {children ??\n formatMessage({\n id: 'HomePage.widget.loading',\n defaultMessage: 'Loading widget content',\n })}\n </Loader>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ErrorProps {\n children?: string;\n}\n\nconst Error = ({ children }: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\" direction=\"column\" justifyContent=\"center\" alignItems=\"center\" gap={2}>\n <WarningCircle width=\"3.2rem\" height=\"3.2rem\" fill=\"danger600\" />\n <Typography variant=\"delta\">\n {formatMessage({\n id: 'global.error',\n defaultMessage: 'Something went wrong',\n })}\n </Typography>\n <Typography textColor=\"neutral600\">\n {children ??\n formatMessage({\n id: 'HomePage.widget.error',\n defaultMessage: \"Couldn't load widget content.\",\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\n\ninterface NoDataProps {\n children?: string;\n}\n\nconst NoData = ({ children }: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\" direction=\"column\" justifyContent=\"center\" alignItems=\"center\" gap={6}>\n <EmptyDocuments width=\"16rem\" height=\"8.8rem\" />\n <Typography textColor=\"neutral600\">\n {children ??\n formatMessage({\n id: 'HomePage.widget.no-data',\n defaultMessage: 'No content found.',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface NoPermissionsProps {\n children?: string;\n}\n\nconst NoPermissions = ({ children }: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\" direction=\"column\" justifyContent=\"center\" alignItems=\"center\" gap={6}>\n <EmptyPermissions width=\"16rem\" height=\"8.8rem\" />\n <Typography textColor=\"neutral600\">\n {children ??\n formatMessage({\n id: 'HomePage.widget.no-permissions',\n defaultMessage: 'You don’t have the permission to see this widget',\n })}\n </Typography>\n </Flex>\n );\n};\n\nconst Widget = {\n Loading,\n Error,\n NoData,\n NoPermissions,\n};\n\nexport { Widget };\n"],"names":["Loading","children","formatMessage","useIntl","_jsx","Flex","height","justifyContent","alignItems","Loader","id","defaultMessage","Error","_jsxs","direction","gap","WarningCircle","width","fill","Typography","variant","textColor","NoData","EmptyDocuments","NoPermissions","EmptyPermissions","Widget"],"mappings":"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"}
|