node_modules ignore

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

View File

@@ -0,0 +1,305 @@
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var strapiAdmin = require('@strapi/admin/strapi-admin');
var designSystem = require('@strapi/design-system');
var icons = require('@strapi/icons');
var isEqual = require('lodash/isEqual');
var reactIntl = require('react-intl');
var reactQuery = require('react-query');
var constants = require('../../constants.js');
require('byte-size');
require('date-fns');
var getTrad = require('../../utils/getTrad.js');
require('qs');
require('../../utils/urlYupSchema.js');
var init = require('./init.js');
var reducer = require('./reducer.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
// TODO: find a better naming convention for the file that was an index file before
const SettingsPage = ()=>{
const { formatMessage } = reactIntl.useIntl();
const { toggleNotification } = strapiAdmin.useNotification();
const { get, put } = strapiAdmin.useFetchClient();
const [{ initialData, modifiedData }, dispatch] = React__namespace.useReducer(reducer.reducer, reducer.initialState, init.init);
const { data, isLoading, refetch } = reactQuery.useQuery({
queryKey: [
'upload',
'settings'
],
async queryFn () {
const { data: { data } } = await get('/upload/settings');
return data;
}
});
React__namespace.useEffect(()=>{
if (data) {
dispatch({
type: 'GET_DATA_SUCCEEDED',
data
});
}
}, [
data
]);
const isSaveButtonDisabled = isEqual(initialData, modifiedData);
const { mutateAsync, isLoading: isSubmitting } = reactQuery.useMutation(async (body)=>{
const { data } = await put('/upload/settings', body);
return data;
}, {
onSuccess () {
refetch();
toggleNotification({
type: 'success',
message: formatMessage({
id: 'notification.form.success.fields'
})
});
},
onError (err) {
console.error(err);
}
});
const handleSubmit = async (e)=>{
e.preventDefault();
if (isSaveButtonDisabled) {
return;
}
await mutateAsync(modifiedData);
};
const handleChange = ({ target: { name, value } })=>{
dispatch({
type: 'ON_CHANGE',
keys: name,
value
});
};
if (isLoading) {
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
}
return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Page.Main, {
tabIndex: -1,
children: [
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Title, {
children: formatMessage({
id: getTrad.getTrad('page.title'),
defaultMessage: 'Settings - Media Libray'
})
}),
/*#__PURE__*/ jsxRuntime.jsxs("form", {
onSubmit: handleSubmit,
children: [
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Header, {
title: formatMessage({
id: getTrad.getTrad('settings.header.label'),
defaultMessage: 'Media Library'
}),
primaryAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
disabled: isSaveButtonDisabled,
loading: isSubmitting,
type: "submit",
startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
size: "S",
children: formatMessage({
id: 'global.save',
defaultMessage: 'Save'
})
}),
subtitle: formatMessage({
id: getTrad.getTrad('settings.sub-header.label'),
defaultMessage: 'Configure the settings for the Media Library'
})
}),
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Root, {
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
direction: "column",
alignItems: "stretch",
gap: 12,
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
background: "neutral0",
padding: 6,
shadow: "filterShadow",
hasRadius: true,
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
variant: "delta",
tag: "h2",
children: formatMessage({
id: getTrad.getTrad('settings.blockTitle'),
defaultMessage: 'Asset management'
})
})
}),
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
gap: 6,
children: [
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
hint: formatMessage({
id: getTrad.getTrad('settings.form.responsiveDimensions.description'),
defaultMessage: 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.'
}),
name: "responsiveDimensions",
children: [
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
children: formatMessage({
id: getTrad.getTrad('settings.form.responsiveDimensions.label'),
defaultMessage: 'Responsive friendly upload'
})
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
checked: modifiedData?.responsiveDimensions,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'responsiveDimensions',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {})
]
})
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
hint: formatMessage({
id: getTrad.getTrad('settings.form.sizeOptimization.description'),
defaultMessage: 'Enabling this option will reduce the image size and slightly reduce its quality.'
}),
name: "sizeOptimization",
children: [
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
children: formatMessage({
id: getTrad.getTrad('settings.form.sizeOptimization.label'),
defaultMessage: 'Size optimization'
})
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
checked: modifiedData?.sizeOptimization,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'sizeOptimization',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {})
]
})
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
hint: formatMessage({
id: getTrad.getTrad('settings.form.autoOrientation.description'),
defaultMessage: 'Enabling this option will automatically rotate the image according to EXIF orientation tag.'
}),
name: "autoOrientation",
children: [
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
children: formatMessage({
id: getTrad.getTrad('settings.form.autoOrientation.label'),
defaultMessage: 'Auto orientation'
})
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
checked: modifiedData?.autoOrientation,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'autoOrientation',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {})
]
})
})
]
})
]
})
})
})
})
})
]
})
]
});
};
const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Protect, {
permissions: constants.PERMISSIONS.settings,
children: /*#__PURE__*/ jsxRuntime.jsx(SettingsPage, {})
});
exports.ProtectedSettingsPage = ProtectedSettingsPage;
exports.SettingsPage = SettingsPage;
//# sourceMappingURL=SettingsPage.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,283 @@
import { jsx, jsxs } from 'react/jsx-runtime';
import * as React from 'react';
import { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';
import { Button, Flex, Box, Typography, Grid, Field, Toggle } from '@strapi/design-system';
import { Check } from '@strapi/icons';
import isEqual from 'lodash/isEqual';
import { useIntl } from 'react-intl';
import { useQuery, useMutation } from 'react-query';
import { PERMISSIONS } from '../../constants.mjs';
import 'byte-size';
import 'date-fns';
import { getTrad } from '../../utils/getTrad.mjs';
import 'qs';
import '../../utils/urlYupSchema.mjs';
import { init } from './init.mjs';
import { reducer, initialState } from './reducer.mjs';
// TODO: find a better naming convention for the file that was an index file before
const SettingsPage = ()=>{
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const { get, put } = useFetchClient();
const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);
const { data, isLoading, refetch } = useQuery({
queryKey: [
'upload',
'settings'
],
async queryFn () {
const { data: { data } } = await get('/upload/settings');
return data;
}
});
React.useEffect(()=>{
if (data) {
dispatch({
type: 'GET_DATA_SUCCEEDED',
data
});
}
}, [
data
]);
const isSaveButtonDisabled = isEqual(initialData, modifiedData);
const { mutateAsync, isLoading: isSubmitting } = useMutation(async (body)=>{
const { data } = await put('/upload/settings', body);
return data;
}, {
onSuccess () {
refetch();
toggleNotification({
type: 'success',
message: formatMessage({
id: 'notification.form.success.fields'
})
});
},
onError (err) {
console.error(err);
}
});
const handleSubmit = async (e)=>{
e.preventDefault();
if (isSaveButtonDisabled) {
return;
}
await mutateAsync(modifiedData);
};
const handleChange = ({ target: { name, value } })=>{
dispatch({
type: 'ON_CHANGE',
keys: name,
value
});
};
if (isLoading) {
return /*#__PURE__*/ jsx(Page.Loading, {});
}
return /*#__PURE__*/ jsxs(Page.Main, {
tabIndex: -1,
children: [
/*#__PURE__*/ jsx(Page.Title, {
children: formatMessage({
id: getTrad('page.title'),
defaultMessage: 'Settings - Media Libray'
})
}),
/*#__PURE__*/ jsxs("form", {
onSubmit: handleSubmit,
children: [
/*#__PURE__*/ jsx(Layouts.Header, {
title: formatMessage({
id: getTrad('settings.header.label'),
defaultMessage: 'Media Library'
}),
primaryAction: /*#__PURE__*/ jsx(Button, {
disabled: isSaveButtonDisabled,
loading: isSubmitting,
type: "submit",
startIcon: /*#__PURE__*/ jsx(Check, {}),
size: "S",
children: formatMessage({
id: 'global.save',
defaultMessage: 'Save'
})
}),
subtitle: formatMessage({
id: getTrad('settings.sub-header.label'),
defaultMessage: 'Configure the settings for the Media Library'
})
}),
/*#__PURE__*/ jsx(Layouts.Content, {
children: /*#__PURE__*/ jsx(Layouts.Root, {
children: /*#__PURE__*/ jsx(Flex, {
direction: "column",
alignItems: "stretch",
gap: 12,
children: /*#__PURE__*/ jsx(Box, {
background: "neutral0",
padding: 6,
shadow: "filterShadow",
hasRadius: true,
children: /*#__PURE__*/ jsxs(Flex, {
direction: "column",
alignItems: "stretch",
gap: 4,
children: [
/*#__PURE__*/ jsx(Flex, {
children: /*#__PURE__*/ jsx(Typography, {
variant: "delta",
tag: "h2",
children: formatMessage({
id: getTrad('settings.blockTitle'),
defaultMessage: 'Asset management'
})
})
}),
/*#__PURE__*/ jsxs(Grid.Root, {
gap: 6,
children: [
/*#__PURE__*/ jsx(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxs(Field.Root, {
hint: formatMessage({
id: getTrad('settings.form.responsiveDimensions.description'),
defaultMessage: 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.'
}),
name: "responsiveDimensions",
children: [
/*#__PURE__*/ jsx(Field.Label, {
children: formatMessage({
id: getTrad('settings.form.responsiveDimensions.label'),
defaultMessage: 'Responsive friendly upload'
})
}),
/*#__PURE__*/ jsx(Toggle, {
checked: modifiedData?.responsiveDimensions,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'responsiveDimensions',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsx(Field.Hint, {})
]
})
}),
/*#__PURE__*/ jsx(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxs(Field.Root, {
hint: formatMessage({
id: getTrad('settings.form.sizeOptimization.description'),
defaultMessage: 'Enabling this option will reduce the image size and slightly reduce its quality.'
}),
name: "sizeOptimization",
children: [
/*#__PURE__*/ jsx(Field.Label, {
children: formatMessage({
id: getTrad('settings.form.sizeOptimization.label'),
defaultMessage: 'Size optimization'
})
}),
/*#__PURE__*/ jsx(Toggle, {
checked: modifiedData?.sizeOptimization,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'sizeOptimization',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsx(Field.Hint, {})
]
})
}),
/*#__PURE__*/ jsx(Grid.Item, {
col: 6,
s: 12,
direction: "column",
alignItems: "stretch",
children: /*#__PURE__*/ jsxs(Field.Root, {
hint: formatMessage({
id: getTrad('settings.form.autoOrientation.description'),
defaultMessage: 'Enabling this option will automatically rotate the image according to EXIF orientation tag.'
}),
name: "autoOrientation",
children: [
/*#__PURE__*/ jsx(Field.Label, {
children: formatMessage({
id: getTrad('settings.form.autoOrientation.label'),
defaultMessage: 'Auto orientation'
})
}),
/*#__PURE__*/ jsx(Toggle, {
checked: modifiedData?.autoOrientation,
offLabel: formatMessage({
id: 'app.components.ToggleCheckbox.off-label',
defaultMessage: 'Off'
}),
onLabel: formatMessage({
id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'On'
}),
onChange: (e)=>{
handleChange({
target: {
name: 'autoOrientation',
value: e.target.checked
}
});
}
}),
/*#__PURE__*/ jsx(Field.Hint, {})
]
})
})
]
})
]
})
})
})
})
})
]
})
]
});
};
const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
permissions: PERMISSIONS.settings,
children: /*#__PURE__*/ jsx(SettingsPage, {})
});
export { ProtectedSettingsPage, SettingsPage };
//# sourceMappingURL=SettingsPage.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
'use strict';
const init = (initialState)=>{
return initialState;
};
exports.init = init;
//# sourceMappingURL=init.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../../../admin/src/pages/SettingsPage/init.ts"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n"],"names":["init","initialState"],"mappings":";;AAEO,MAAMA,OAAO,CAACC,YAAAA,GAAAA;IACnB,OAAOA,YAAAA;AACT;;;;"}

View File

@@ -0,0 +1,6 @@
const init = (initialState)=>{
return initialState;
};
export { init };
//# sourceMappingURL=init.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../../../admin/src/pages/SettingsPage/init.ts"],"sourcesContent":["import type { InitialState } from './reducer';\n\nexport const init = (initialState: InitialState) => {\n return initialState;\n};\n"],"names":["init","initialState"],"mappings":"AAEO,MAAMA,OAAO,CAACC,YAAAA,GAAAA;IACnB,OAAOA,YAAAA;AACT;;;;"}

View File

@@ -0,0 +1,43 @@
'use strict';
var immer = require('immer');
var set = require('lodash/set');
const initialState = {
initialData: {
responsiveDimensions: true,
sizeOptimization: true,
autoOrientation: false,
videoPreview: false
},
modifiedData: {
responsiveDimensions: true,
sizeOptimization: true,
autoOrientation: false,
videoPreview: false
}
};
const reducer = (state, action)=>immer.produce(state, (drafState)=>{
switch(action.type){
case 'GET_DATA_SUCCEEDED':
{
drafState.initialData = action.data;
drafState.modifiedData = action.data;
break;
}
case 'ON_CHANGE':
{
set(drafState, [
'modifiedData',
...action.keys.split('.')
], action.value);
break;
}
default:
return state;
}
});
exports.initialState = initialState;
exports.reducer = reducer;
//# sourceMappingURL=reducer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/pages/SettingsPage/reducer.ts"],"sourcesContent":["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"],"names":["initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value"],"mappings":";;;;;AA+BA,MAAMA,YAA6B,GAAA;IACjCC,WAAa,EAAA;QACXC,oBAAsB,EAAA,IAAA;QACtBC,gBAAkB,EAAA,IAAA;QAClBC,eAAiB,EAAA,KAAA;QACjBC,YAAc,EAAA;AAChB,KAAA;IACAC,YAAc,EAAA;QACZJ,oBAAsB,EAAA,IAAA;QACtBC,gBAAkB,EAAA,IAAA;QAClBC,eAAiB,EAAA,KAAA;QACjBC,YAAc,EAAA;AAChB;AACF;AAEA,MAAME,UAAU,CAACC,KAAAA,EAAqBC,MACpCC,GAAAA,aAAAA,CAAQF,OAAO,CAACG,SAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOG,IAAI;YACjB,KAAK,oBAAA;AAAsB,gBAAA;oBACzBD,SAAUV,CAAAA,WAAW,GAAGQ,MAAAA,CAAOI,IAAI;oBACnCF,SAAUL,CAAAA,YAAY,GAAGG,MAAAA,CAAOI,IAAI;AACpC,oBAAA;AACF;YACA,KAAK,WAAA;AAAa,gBAAA;AAChBC,oBAAAA,GAAAA,CAAIH,SAAW,EAAA;AAAC,wBAAA,cAAA;2BAAmBF,MAAOM,CAAAA,IAAI,CAACC,KAAK,CAAC,GAAA;AAAK,qBAAA,EAAEP,OAAOQ,KAAK,CAAA;AACxE,oBAAA;AACF;AACA,YAAA;gBACE,OAAOT,KAAAA;AACX;AACF,KAAA;;;;;"}

View File

@@ -0,0 +1,40 @@
import { produce } from 'immer';
import set from 'lodash/set';
const initialState = {
initialData: {
responsiveDimensions: true,
sizeOptimization: true,
autoOrientation: false,
videoPreview: false
},
modifiedData: {
responsiveDimensions: true,
sizeOptimization: true,
autoOrientation: false,
videoPreview: false
}
};
const reducer = (state, action)=>produce(state, (drafState)=>{
switch(action.type){
case 'GET_DATA_SUCCEEDED':
{
drafState.initialData = action.data;
drafState.modifiedData = action.data;
break;
}
case 'ON_CHANGE':
{
set(drafState, [
'modifiedData',
...action.keys.split('.')
], action.value);
break;
}
default:
return state;
}
});
export { initialState, reducer };
//# sourceMappingURL=reducer.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"reducer.mjs","sources":["../../../../admin/src/pages/SettingsPage/reducer.ts"],"sourcesContent":["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"],"names":["initialState","initialData","responsiveDimensions","sizeOptimization","autoOrientation","videoPreview","modifiedData","reducer","state","action","produce","drafState","type","data","set","keys","split","value"],"mappings":";;;AA+BA,MAAMA,YAA6B,GAAA;IACjCC,WAAa,EAAA;QACXC,oBAAsB,EAAA,IAAA;QACtBC,gBAAkB,EAAA,IAAA;QAClBC,eAAiB,EAAA,KAAA;QACjBC,YAAc,EAAA;AAChB,KAAA;IACAC,YAAc,EAAA;QACZJ,oBAAsB,EAAA,IAAA;QACtBC,gBAAkB,EAAA,IAAA;QAClBC,eAAiB,EAAA,KAAA;QACjBC,YAAc,EAAA;AAChB;AACF;AAEA,MAAME,UAAU,CAACC,KAAAA,EAAqBC,MACpCC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,SAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOG,IAAI;YACjB,KAAK,oBAAA;AAAsB,gBAAA;oBACzBD,SAAUV,CAAAA,WAAW,GAAGQ,MAAAA,CAAOI,IAAI;oBACnCF,SAAUL,CAAAA,YAAY,GAAGG,MAAAA,CAAOI,IAAI;AACpC,oBAAA;AACF;YACA,KAAK,WAAA;AAAa,gBAAA;AAChBC,oBAAAA,GAAAA,CAAIH,SAAW,EAAA;AAAC,wBAAA,cAAA;2BAAmBF,MAAOM,CAAAA,IAAI,CAACC,KAAK,CAAC,GAAA;AAAK,qBAAA,EAAEP,OAAOQ,KAAK,CAAA;AACxE,oBAAA;AACF;AACA,YAAA;gBACE,OAAOT,KAAAA;AACX;AACF,KAAA;;;;"}