@strapi/upload 5.11.2 → 5.12.0-beta.1
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/chunks/{App-Dyo0gLZ1.mjs → App-BbqQWbzL.mjs} +3 -3
- package/dist/admin/chunks/{App-Dyo0gLZ1.mjs.map → App-BbqQWbzL.mjs.map} +1 -1
- package/dist/admin/chunks/{App-Cviv4LUv.js → App-DQ6LAabm.js} +3 -3
- package/dist/admin/chunks/{App-Cviv4LUv.js.map → App-DQ6LAabm.js.map} +1 -1
- package/dist/admin/chunks/{ConfigureTheView-CfmaErAH.mjs → ConfigureTheView-Cr1Vm5tM.mjs} +2 -2
- package/dist/admin/chunks/{ConfigureTheView-CfmaErAH.mjs.map → ConfigureTheView-Cr1Vm5tM.mjs.map} +1 -1
- package/dist/admin/chunks/{ConfigureTheView-BDPODrq9.js → ConfigureTheView-DiFSl-Vy.js} +2 -2
- package/dist/admin/chunks/{ConfigureTheView-BDPODrq9.js.map → ConfigureTheView-DiFSl-Vy.js.map} +1 -1
- package/dist/admin/chunks/{SettingsPage-q1CNW5FB.js → SettingsPage-Bdur18oX.js} +2 -2
- package/dist/admin/chunks/{SettingsPage-q1CNW5FB.js.map → SettingsPage-Bdur18oX.js.map} +1 -1
- package/dist/admin/chunks/{SettingsPage-CnCU0hEp.mjs → SettingsPage-QpnjpDXc.mjs} +2 -2
- package/dist/admin/chunks/{SettingsPage-CnCU0hEp.mjs.map → SettingsPage-QpnjpDXc.mjs.map} +1 -1
- package/dist/admin/chunks/{index-DVQTOPLi.js → index-BDhdAtUs.js} +8 -8
- package/dist/admin/chunks/{index-DVQTOPLi.js.map → index-BDhdAtUs.js.map} +1 -1
- package/dist/admin/chunks/{index-D6gma1Hi.mjs → index-DIowFfn_.mjs} +8 -8
- package/dist/admin/chunks/{index-D6gma1Hi.mjs.map → index-DIowFfn_.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +5 -5
package/dist/admin/chunks/{ConfigureTheView-BDPODrq9.js.map → ConfigureTheView-DiFSl-Vy.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigureTheView-BDPODrq9.js","sources":["../../../admin/src/pages/App/ConfigureTheView/components/Settings.tsx","../../../admin/src/pages/App/ConfigureTheView/state/actionTypes.ts","../../../admin/src/pages/App/ConfigureTheView/state/actions.ts","../../../admin/src/pages/App/ConfigureTheView/state/init.ts","../../../admin/src/pages/App/ConfigureTheView/state/reducer.ts","../../../admin/src/pages/App/ConfigureTheView/ConfigureTheView.tsx"],"sourcesContent":["import { Box, Grid, SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { pageSizes, sortOptions } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport type { Configuration } from '../../../../../../shared/contracts/configuration';\n\ninterface SettingsProps {\n sort: string;\n pageSize: string | number;\n onChange: ({\n target: { name, value },\n }: {\n target: { name: keyof Configuration; value: string | number };\n }) => void;\n}\n\nconst Settings = ({ sort = '', pageSize = 10, onChange }: SettingsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Grid.Root gap={4}>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.entries.note'),\n defaultMessage: 'Number of assets displayed by default in the Media Library',\n })}\n name=\"pageSize\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.entries.title'),\n defaultMessage: 'Entries per page',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'pageSize', value } })}\n value={pageSize}\n >\n {pageSizes.map((pageSize) => (\n <SingleSelectOption key={pageSize} value={pageSize}>\n {pageSize}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.note'),\n defaultMessage: 'Note: You can override this value in the media library.',\n })}\n name=\"sort\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.sort.title'),\n defaultMessage: 'Default sort order',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'sort', value } })}\n value={sort}\n test-sort={sort}\n data-testid=\"sort-select\"\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption\n data-testid={`sort-option-${filter.value}`}\n key={filter.key}\n value={filter.value}\n >\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\nexport { Settings };\n","import { pluginId } from '../../../../pluginId';\n\nexport const ON_CHANGE = `${pluginId}/ON_CHANGE`;\nexport const SET_LOADED = `${pluginId}/SET_LOADED`;\n","import { ON_CHANGE, SET_LOADED } from './actionTypes';\n\nimport type { InitialState } from './init';\n\nexport const onChange = ({\n name,\n value,\n}: {\n name: keyof NonNullable<InitialState['initialData']>;\n value: number | string;\n}) => ({\n type: ON_CHANGE,\n keys: name,\n value,\n});\n\nexport const setLoaded = () => ({\n type: SET_LOADED,\n});\n","import type { Configuration } from '../../../../../../shared/contracts/configuration';\n\nexport type InitialState = {\n initialData: Partial<Configuration>;\n modifiedData: Partial<Configuration>;\n};\n\nconst initialState: InitialState = {\n initialData: {},\n modifiedData: {},\n};\n\nconst init = (configData: InitialState['initialData']): InitialState => {\n return {\n ...initialState,\n initialData: configData,\n modifiedData: configData,\n };\n};\nexport { init, initialState };\n","import { produce } from 'immer'; // current\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nimport { ON_CHANGE, SET_LOADED } from './actionTypes';\nimport { init, initialState } from './init';\n\nimport type { InitialState } from './init';\n\nexport interface ActionOnChange {\n type: string;\n keys?: string;\n value: string | number;\n}\n\nexport interface ActionSetLoaded {\n type: string;\n}\n\ninterface ActionInitialValue {\n type: string;\n}\n\nexport type Action = ActionSetLoaded | ActionOnChange | ActionInitialValue;\n\nexport const reducer = (\n state: InitialState = initialState,\n action: Action = {\n type: '',\n }\n) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case ON_CHANGE: {\n if ('keys' in action && 'value' in action && action.keys) {\n set(draftState, ['modifiedData', ...action.keys.split('.')], action.value);\n }\n break;\n }\n case SET_LOADED: {\n // This action re-initialises the state using the current modifiedData.\n const reInitialise = init(get(draftState, ['modifiedData'], {}));\n draftState.initialData = reInitialise.initialData;\n draftState.modifiedData = reInitialise.modifiedData;\n break;\n }\n default:\n return draftState;\n }\n });\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport {\n ConfirmDialog,\n useTracking,\n useNotification,\n Page,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Dialog, Link } from '@strapi/design-system';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useConfig } from '../../../hooks/useConfig';\nimport { pluginId } from '../../../pluginId';\nimport { getTrad } from '../../../utils';\n\nimport { Settings } from './components/Settings';\nimport { onChange, setLoaded } from './state/actions';\nimport { init, initialState } from './state/init';\nimport { reducer } from './state/reducer';\n\nimport type { InitialState } from './state/init';\nimport type { Action } from './state/reducer';\nimport type { Configuration } from '../../../../../shared/contracts/configuration';\n\ninterface ConfigureTheViewProps {\n config: Configuration;\n}\n\nexport const ConfigureTheView = ({ config }: ConfigureTheViewProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { mutateConfig } = useConfig();\n const { isLoading: isSubmittingForm } = mutateConfig;\n\n const [showWarningSubmit, setWarningSubmit] = React.useState(false);\n const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);\n\n const [reducerState, dispatch] = React.useReducer(\n reducer,\n initialState,\n (): InitialState => init(config)\n );\n const typedDispatch: React.Dispatch<Action> = dispatch;\n const { initialData, modifiedData } = reducerState;\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n toggleWarningSubmit();\n };\n\n const handleConfirm = async () => {\n trackUsage('willEditMediaLibraryConfig');\n await mutateConfig.mutateAsync(modifiedData as Configuration);\n setWarningSubmit(false);\n typedDispatch(setLoaded());\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.form.success.fields',\n defaultMessage: 'Changes saved',\n }),\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof Configuration; value: string | number };\n }) => {\n typedDispatch(onChange({ name, value }));\n };\n\n return (\n <Layouts.Root>\n <Page.Main aria-busy={isSubmittingForm}>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n navigationAction={\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`/plugins/${pluginId}`}\n id=\"go-back\"\n >\n {formatMessage({ id: getTrad('config.back'), defaultMessage: 'Back' })}\n </Link>\n }\n primaryAction={\n <Button\n size=\"S\"\n startIcon={<Check />}\n disabled={isEqual(modifiedData, initialData)}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('config.subtitle'),\n defaultMessage: 'Define the view settings of the media library.',\n })}\n title={formatMessage({\n id: getTrad('config.title'),\n defaultMessage: 'Configure the view - Media Library',\n })}\n />\n <Layouts.Content>\n <Settings\n data-testid=\"settings\"\n pageSize={modifiedData.pageSize || ''}\n sort={modifiedData.sort || ''}\n onChange={handleChange}\n />\n </Layouts.Content>\n x\n <Dialog.Root open={showWarningSubmit} onOpenChange={toggleWarningSubmit}>\n <ConfirmDialog onConfirm={handleConfirm} variant=\"default\">\n {formatMessage({\n id: getTrad('config.popUpWarning.warning.updateAllSettings'),\n defaultMessage: 'This will modify all your settings',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n"],"names":["Settings","sort","pageSize","onChange","formatMessage","useIntl","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","_jsxs","Grid","Root","gap","Item","s","col","direction","alignItems","Field","hint","id","getTrad","defaultMessage","name","Label","SingleSelect","value","target","pageSizes","map","SingleSelectOption","Hint","test-sort","data-testid","sortOptions","filter","key","ON_CHANGE","pluginId","SET_LOADED","type","keys","setLoaded","initialState","initialData","modifiedData","init","configData","reducer","state","action","produce","draftState","set","split","reInitialise","get","ConfigureTheView","config","trackUsage","useTracking","toggleNotification","useNotification","mutateConfig","useConfig","isLoading","isSubmittingForm","showWarningSubmit","setWarningSubmit","React","useState","toggleWarningSubmit","prevState","reducerState","dispatch","useReducer","typedDispatch","handleSubmit","e","preventDefault","handleConfirm","mutateAsync","message","handleChange","Layouts","Page","Main","aria-busy","form","onSubmit","Header","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","primaryAction","Button","size","Check","disabled","isEqual","subtitle","title","Content","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","variant"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigureTheView-DiFSl-Vy.js","sources":["../../../admin/src/pages/App/ConfigureTheView/components/Settings.tsx","../../../admin/src/pages/App/ConfigureTheView/state/actionTypes.ts","../../../admin/src/pages/App/ConfigureTheView/state/actions.ts","../../../admin/src/pages/App/ConfigureTheView/state/init.ts","../../../admin/src/pages/App/ConfigureTheView/state/reducer.ts","../../../admin/src/pages/App/ConfigureTheView/ConfigureTheView.tsx"],"sourcesContent":["import { Box, Grid, SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { pageSizes, sortOptions } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport type { Configuration } from '../../../../../../shared/contracts/configuration';\n\ninterface SettingsProps {\n sort: string;\n pageSize: string | number;\n onChange: ({\n target: { name, value },\n }: {\n target: { name: keyof Configuration; value: string | number };\n }) => void;\n}\n\nconst Settings = ({ sort = '', pageSize = 10, onChange }: SettingsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Grid.Root gap={4}>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.entries.note'),\n defaultMessage: 'Number of assets displayed by default in the Media Library',\n })}\n name=\"pageSize\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.entries.title'),\n defaultMessage: 'Entries per page',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'pageSize', value } })}\n value={pageSize}\n >\n {pageSizes.map((pageSize) => (\n <SingleSelectOption key={pageSize} value={pageSize}>\n {pageSize}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item s={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('config.note'),\n defaultMessage: 'Note: You can override this value in the media library.',\n })}\n name=\"sort\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('config.sort.title'),\n defaultMessage: 'Default sort order',\n })}\n </Field.Label>\n <SingleSelect\n onChange={(value) => onChange({ target: { name: 'sort', value } })}\n value={sort}\n test-sort={sort}\n data-testid=\"sort-select\"\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption\n data-testid={`sort-option-${filter.value}`}\n key={filter.key}\n value={filter.value}\n >\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Box>\n );\n};\n\nexport { Settings };\n","import { pluginId } from '../../../../pluginId';\n\nexport const ON_CHANGE = `${pluginId}/ON_CHANGE`;\nexport const SET_LOADED = `${pluginId}/SET_LOADED`;\n","import { ON_CHANGE, SET_LOADED } from './actionTypes';\n\nimport type { InitialState } from './init';\n\nexport const onChange = ({\n name,\n value,\n}: {\n name: keyof NonNullable<InitialState['initialData']>;\n value: number | string;\n}) => ({\n type: ON_CHANGE,\n keys: name,\n value,\n});\n\nexport const setLoaded = () => ({\n type: SET_LOADED,\n});\n","import type { Configuration } from '../../../../../../shared/contracts/configuration';\n\nexport type InitialState = {\n initialData: Partial<Configuration>;\n modifiedData: Partial<Configuration>;\n};\n\nconst initialState: InitialState = {\n initialData: {},\n modifiedData: {},\n};\n\nconst init = (configData: InitialState['initialData']): InitialState => {\n return {\n ...initialState,\n initialData: configData,\n modifiedData: configData,\n };\n};\nexport { init, initialState };\n","import { produce } from 'immer'; // current\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nimport { ON_CHANGE, SET_LOADED } from './actionTypes';\nimport { init, initialState } from './init';\n\nimport type { InitialState } from './init';\n\nexport interface ActionOnChange {\n type: string;\n keys?: string;\n value: string | number;\n}\n\nexport interface ActionSetLoaded {\n type: string;\n}\n\ninterface ActionInitialValue {\n type: string;\n}\n\nexport type Action = ActionSetLoaded | ActionOnChange | ActionInitialValue;\n\nexport const reducer = (\n state: InitialState = initialState,\n action: Action = {\n type: '',\n }\n) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case ON_CHANGE: {\n if ('keys' in action && 'value' in action && action.keys) {\n set(draftState, ['modifiedData', ...action.keys.split('.')], action.value);\n }\n break;\n }\n case SET_LOADED: {\n // This action re-initialises the state using the current modifiedData.\n const reInitialise = init(get(draftState, ['modifiedData'], {}));\n draftState.initialData = reInitialise.initialData;\n draftState.modifiedData = reInitialise.modifiedData;\n break;\n }\n default:\n return draftState;\n }\n });\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport {\n ConfirmDialog,\n useTracking,\n useNotification,\n Page,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Dialog, Link } from '@strapi/design-system';\nimport { ArrowLeft, Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useConfig } from '../../../hooks/useConfig';\nimport { pluginId } from '../../../pluginId';\nimport { getTrad } from '../../../utils';\n\nimport { Settings } from './components/Settings';\nimport { onChange, setLoaded } from './state/actions';\nimport { init, initialState } from './state/init';\nimport { reducer } from './state/reducer';\n\nimport type { InitialState } from './state/init';\nimport type { Action } from './state/reducer';\nimport type { Configuration } from '../../../../../shared/contracts/configuration';\n\ninterface ConfigureTheViewProps {\n config: Configuration;\n}\n\nexport const ConfigureTheView = ({ config }: ConfigureTheViewProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { mutateConfig } = useConfig();\n const { isLoading: isSubmittingForm } = mutateConfig;\n\n const [showWarningSubmit, setWarningSubmit] = React.useState(false);\n const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);\n\n const [reducerState, dispatch] = React.useReducer(\n reducer,\n initialState,\n (): InitialState => init(config)\n );\n const typedDispatch: React.Dispatch<Action> = dispatch;\n const { initialData, modifiedData } = reducerState;\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n toggleWarningSubmit();\n };\n\n const handleConfirm = async () => {\n trackUsage('willEditMediaLibraryConfig');\n await mutateConfig.mutateAsync(modifiedData as Configuration);\n setWarningSubmit(false);\n typedDispatch(setLoaded());\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.form.success.fields',\n defaultMessage: 'Changes saved',\n }),\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof Configuration; value: string | number };\n }) => {\n typedDispatch(onChange({ name, value }));\n };\n\n return (\n <Layouts.Root>\n <Page.Main aria-busy={isSubmittingForm}>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n navigationAction={\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`/plugins/${pluginId}`}\n id=\"go-back\"\n >\n {formatMessage({ id: getTrad('config.back'), defaultMessage: 'Back' })}\n </Link>\n }\n primaryAction={\n <Button\n size=\"S\"\n startIcon={<Check />}\n disabled={isEqual(modifiedData, initialData)}\n type=\"submit\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('config.subtitle'),\n defaultMessage: 'Define the view settings of the media library.',\n })}\n title={formatMessage({\n id: getTrad('config.title'),\n defaultMessage: 'Configure the view - Media Library',\n })}\n />\n <Layouts.Content>\n <Settings\n data-testid=\"settings\"\n pageSize={modifiedData.pageSize || ''}\n sort={modifiedData.sort || ''}\n onChange={handleChange}\n />\n </Layouts.Content>\n x\n <Dialog.Root open={showWarningSubmit} onOpenChange={toggleWarningSubmit}>\n <ConfirmDialog onConfirm={handleConfirm} variant=\"default\">\n {formatMessage({\n id: getTrad('config.popUpWarning.warning.updateAllSettings'),\n defaultMessage: 'This will modify all your settings',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n"],"names":["Settings","sort","pageSize","onChange","formatMessage","useIntl","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","_jsxs","Grid","Root","gap","Item","s","col","direction","alignItems","Field","hint","id","getTrad","defaultMessage","name","Label","SingleSelect","value","target","pageSizes","map","SingleSelectOption","Hint","test-sort","data-testid","sortOptions","filter","key","ON_CHANGE","pluginId","SET_LOADED","type","keys","setLoaded","initialState","initialData","modifiedData","init","configData","reducer","state","action","produce","draftState","set","split","reInitialise","get","ConfigureTheView","config","trackUsage","useTracking","toggleNotification","useNotification","mutateConfig","useConfig","isLoading","isSubmittingForm","showWarningSubmit","setWarningSubmit","React","useState","toggleWarningSubmit","prevState","reducerState","dispatch","useReducer","typedDispatch","handleSubmit","e","preventDefault","handleConfirm","mutateAsync","message","handleChange","Layouts","Page","Main","aria-busy","form","onSubmit","Header","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","primaryAction","Button","size","Check","disabled","isEqual","subtitle","title","Content","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","variant"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var icons = require('@strapi/icons');
|
|
|
8
8
|
var isEqual = require('lodash/isEqual');
|
|
9
9
|
var reactIntl = require('react-intl');
|
|
10
10
|
var reactQuery = require('react-query');
|
|
11
|
-
var index = require('./index-
|
|
11
|
+
var index = require('./index-BDhdAtUs.js');
|
|
12
12
|
require('byte-size');
|
|
13
13
|
require('date-fns');
|
|
14
14
|
require('qs');
|
|
@@ -351,4 +351,4 @@ const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.
|
|
|
351
351
|
|
|
352
352
|
exports.ProtectedSettingsPage = ProtectedSettingsPage;
|
|
353
353
|
exports.SettingsPage = SettingsPage;
|
|
354
|
-
//# sourceMappingURL=SettingsPage-
|
|
354
|
+
//# sourceMappingURL=SettingsPage-Bdur18oX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage-q1CNW5FB.js","sources":["../../../admin/src/pages/SettingsPage/init.ts","../../../admin/src/pages/SettingsPage/reducer.ts","../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n","import { produce } from 'immer';\nimport set from 'lodash/set';\n\nexport type InitialState = {\n initialData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n modifiedData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n};\n\ninterface ActionGetDataSucceeded {\n type: 'GET_DATA_SUCCEEDED';\n data: InitialState['initialData'];\n}\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n keys: keyof NonNullable<InitialState['initialData']>;\n value: boolean;\n}\n\nexport type Action = ActionGetDataSucceeded | ActionOnChange;\n\nconst initialState: InitialState = {\n initialData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n modifiedData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n};\n\nconst reducer = (state: InitialState, action: Action) =>\n produce(state, (drafState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n drafState.initialData = action.data;\n drafState.modifiedData = action.data;\n break;\n }\n case 'ON_CHANGE': {\n set(drafState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n default:\n return state;\n }\n });\n\nexport { initialState, reducer };\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: ['upload', 'settings'],\n async queryFn() {\n const {\n data: { data },\n } = await get('/upload/settings');\n\n return data;\n },\n });\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Libray',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={12}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["init","initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value","SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","dispatch","React","useReducer","isLoading","refetch","useQuery","queryKey","queryFn","useEffect","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","console","error","handleSubmit","e","preventDefault","handleChange","target","name","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Item","col","s","Field","hint","Label","Toggle","checked","offLabel","onLabel","onChange","Hint","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage-Bdur18oX.js","sources":["../../../admin/src/pages/SettingsPage/init.ts","../../../admin/src/pages/SettingsPage/reducer.ts","../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n","import { produce } from 'immer';\nimport set from 'lodash/set';\n\nexport type InitialState = {\n initialData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n modifiedData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n};\n\ninterface ActionGetDataSucceeded {\n type: 'GET_DATA_SUCCEEDED';\n data: InitialState['initialData'];\n}\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n keys: keyof NonNullable<InitialState['initialData']>;\n value: boolean;\n}\n\nexport type Action = ActionGetDataSucceeded | ActionOnChange;\n\nconst initialState: InitialState = {\n initialData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n modifiedData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n};\n\nconst reducer = (state: InitialState, action: Action) =>\n produce(state, (drafState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n drafState.initialData = action.data;\n drafState.modifiedData = action.data;\n break;\n }\n case 'ON_CHANGE': {\n set(drafState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n default:\n return state;\n }\n });\n\nexport { initialState, reducer };\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: ['upload', 'settings'],\n async queryFn() {\n const {\n data: { data },\n } = await get('/upload/settings');\n\n return data;\n },\n });\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Libray',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={12}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["init","initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value","SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","dispatch","React","useReducer","isLoading","refetch","useQuery","queryKey","queryFn","useEffect","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","console","error","handleSubmit","e","preventDefault","handleChange","target","name","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Item","col","s","Field","hint","Label","Toggle","checked","offLabel","onLabel","onChange","Hint","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Check } from '@strapi/icons';
|
|
|
6
6
|
import isEqual from 'lodash/isEqual';
|
|
7
7
|
import { useIntl } from 'react-intl';
|
|
8
8
|
import { useQuery, useMutation } from 'react-query';
|
|
9
|
-
import { P as PERMISSIONS, g as getTrad } from './index-
|
|
9
|
+
import { P as PERMISSIONS, g as getTrad } from './index-DIowFfn_.mjs';
|
|
10
10
|
import 'byte-size';
|
|
11
11
|
import 'date-fns';
|
|
12
12
|
import 'qs';
|
|
@@ -329,4 +329,4 @@ const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
|
|
|
329
329
|
});
|
|
330
330
|
|
|
331
331
|
export { ProtectedSettingsPage, SettingsPage };
|
|
332
|
-
//# sourceMappingURL=SettingsPage-
|
|
332
|
+
//# sourceMappingURL=SettingsPage-QpnjpDXc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage-CnCU0hEp.mjs","sources":["../../../admin/src/pages/SettingsPage/init.ts","../../../admin/src/pages/SettingsPage/reducer.ts","../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n","import { produce } from 'immer';\nimport set from 'lodash/set';\n\nexport type InitialState = {\n initialData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n modifiedData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n};\n\ninterface ActionGetDataSucceeded {\n type: 'GET_DATA_SUCCEEDED';\n data: InitialState['initialData'];\n}\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n keys: keyof NonNullable<InitialState['initialData']>;\n value: boolean;\n}\n\nexport type Action = ActionGetDataSucceeded | ActionOnChange;\n\nconst initialState: InitialState = {\n initialData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n modifiedData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n};\n\nconst reducer = (state: InitialState, action: Action) =>\n produce(state, (drafState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n drafState.initialData = action.data;\n drafState.modifiedData = action.data;\n break;\n }\n case 'ON_CHANGE': {\n set(drafState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n default:\n return state;\n }\n });\n\nexport { initialState, reducer };\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: ['upload', 'settings'],\n async queryFn() {\n const {\n data: { data },\n } = await get('/upload/settings');\n\n return data;\n },\n });\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Libray',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={12}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["init","initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value","SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","dispatch","React","useReducer","isLoading","refetch","useQuery","queryKey","queryFn","useEffect","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","console","error","handleSubmit","e","preventDefault","handleChange","target","name","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Item","col","s","Field","hint","Label","Toggle","checked","offLabel","onLabel","onChange","Hint","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage-QpnjpDXc.mjs","sources":["../../../admin/src/pages/SettingsPage/init.ts","../../../admin/src/pages/SettingsPage/reducer.ts","../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n","import { produce } from 'immer';\nimport set from 'lodash/set';\n\nexport type InitialState = {\n initialData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n modifiedData: {\n responsiveDimensions?: boolean;\n sizeOptimization?: boolean;\n autoOrientation?: boolean;\n videoPreview?: boolean;\n } | null;\n};\n\ninterface ActionGetDataSucceeded {\n type: 'GET_DATA_SUCCEEDED';\n data: InitialState['initialData'];\n}\n\ninterface ActionOnChange {\n type: 'ON_CHANGE';\n keys: keyof NonNullable<InitialState['initialData']>;\n value: boolean;\n}\n\nexport type Action = ActionGetDataSucceeded | ActionOnChange;\n\nconst initialState: InitialState = {\n initialData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n modifiedData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n};\n\nconst reducer = (state: InitialState, action: Action) =>\n produce(state, (drafState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n drafState.initialData = action.data;\n drafState.modifiedData = action.data;\n break;\n }\n case 'ON_CHANGE': {\n set(drafState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n default:\n return state;\n }\n });\n\nexport { initialState, reducer };\n","// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: ['upload', 'settings'],\n async queryFn() {\n const {\n data: { data },\n } = await get('/upload/settings');\n\n return data;\n },\n });\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Libray',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={12}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["init","initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value","SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","dispatch","React","useReducer","isLoading","refetch","useQuery","queryKey","queryFn","useEffect","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","console","error","handleSubmit","e","preventDefault","handleChange","target","name","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Item","col","s","Field","hint","Label","Toggle","checked","offLabel","onLabel","onChange","Hint","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
45
45
|
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
46
46
|
|
|
47
47
|
var name$1 = "@strapi/upload";
|
|
48
|
-
var version = "5.11.
|
|
48
|
+
var version = "5.11.0";
|
|
49
49
|
var description = "Makes it easy to upload images and files to your Strapi Application.";
|
|
50
50
|
var license = "SEE LICENSE IN LICENSE";
|
|
51
51
|
var author = {
|
|
@@ -108,8 +108,8 @@ var dependencies = {
|
|
|
108
108
|
"@mux/mux-player-react": "3.1.0",
|
|
109
109
|
"@strapi/design-system": "2.0.0-rc.18",
|
|
110
110
|
"@strapi/icons": "2.0.0-rc.18",
|
|
111
|
-
"@strapi/provider-upload-local": "5.11.
|
|
112
|
-
"@strapi/utils": "5.11.
|
|
111
|
+
"@strapi/provider-upload-local": "5.11.0",
|
|
112
|
+
"@strapi/utils": "5.11.0",
|
|
113
113
|
"byte-size": "8.1.1",
|
|
114
114
|
cropperjs: "1.6.1",
|
|
115
115
|
"date-fns": "2.30.0",
|
|
@@ -131,8 +131,8 @@ var dependencies = {
|
|
|
131
131
|
yup: "0.32.9"
|
|
132
132
|
};
|
|
133
133
|
var devDependencies = {
|
|
134
|
-
"@strapi/admin": "5.11.
|
|
135
|
-
"@strapi/types": "5.11.
|
|
134
|
+
"@strapi/admin": "5.11.0",
|
|
135
|
+
"@strapi/types": "5.11.0",
|
|
136
136
|
"@testing-library/dom": "10.1.0",
|
|
137
137
|
"@testing-library/react": "15.0.7",
|
|
138
138
|
"@testing-library/user-event": "14.5.2",
|
|
@@ -7313,7 +7313,7 @@ const admin = {
|
|
|
7313
7313
|
defaultMessage: 'Media Library'
|
|
7314
7314
|
},
|
|
7315
7315
|
permissions: PERMISSIONS.main,
|
|
7316
|
-
Component: ()=>Promise.resolve().then(function () { return require('./App-
|
|
7316
|
+
Component: ()=>Promise.resolve().then(function () { return require('./App-DQ6LAabm.js'); }).then((mod)=>({
|
|
7317
7317
|
default: mod.Upload
|
|
7318
7318
|
})),
|
|
7319
7319
|
position: 4
|
|
@@ -7326,7 +7326,7 @@ const admin = {
|
|
|
7326
7326
|
defaultMessage: 'Media Library'
|
|
7327
7327
|
},
|
|
7328
7328
|
async Component () {
|
|
7329
|
-
const { ProtectedSettingsPage } = await Promise.resolve().then(function () { return require('./SettingsPage-
|
|
7329
|
+
const { ProtectedSettingsPage } = await Promise.resolve().then(function () { return require('./SettingsPage-Bdur18oX.js'); });
|
|
7330
7330
|
return {
|
|
7331
7331
|
default: ProtectedSettingsPage
|
|
7332
7332
|
};
|
|
@@ -7403,4 +7403,4 @@ exports.useMediaLibraryPermissions = useMediaLibraryPermissions;
|
|
|
7403
7403
|
exports.usePersistentState = usePersistentState;
|
|
7404
7404
|
exports.useSelectionState = useSelectionState;
|
|
7405
7405
|
exports.viewOptions = viewOptions;
|
|
7406
|
-
//# sourceMappingURL=index-
|
|
7406
|
+
//# sourceMappingURL=index-BDhdAtUs.js.map
|