@strapi/admin 5.51.1 → 5.52.0
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/App.js +1 -1
- package/dist/admin/admin/src/App.js.map +1 -1
- package/dist/admin/admin/src/App.mjs +1 -1
- package/dist/admin/admin/src/App.mjs.map +1 -1
- package/dist/admin/admin/src/StrapiApp.js +3 -3
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +3 -3
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +19 -34
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +19 -34
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +35 -26
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +35 -27
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +1 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +1 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/translations/id.json.js +105 -1
- package/dist/admin/admin/src/translations/id.json.js.map +1 -1
- package/dist/admin/admin/src/translations/id.json.mjs +105 -1
- package/dist/admin/admin/src/translations/id.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js +3 -2
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs +3 -2
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +640 -684
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +640 -684
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/ee/admin/src/constants.js +22 -26
- package/dist/admin/ee/admin/src/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/constants.mjs +22 -26
- package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js +16 -20
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs +16 -20
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs.map +1 -1
- package/dist/admin/src/components/Filters.d.ts +9 -2
- package/dist/admin/src/pages/Auth/components/Register.d.ts +10 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.d.ts +3 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/destroy.d.ts +1 -4
- package/dist/ee/server/src/destroy.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js +3 -3
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs +3 -3
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +10 -4
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +10 -4
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js +1 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/destroy.js +1 -1
- package/dist/server/ee/server/src/destroy.js.map +1 -1
- package/dist/server/ee/server/src/destroy.mjs +1 -1
- package/dist/server/ee/server/src/destroy.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +1 -3
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +1 -3
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/index.js.map +1 -1
- package/dist/server/ee/server/src/services/index.mjs +2 -2
- package/dist/server/ee/server/src/services/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.js +2 -2
- package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.mjs +4 -4
- package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
- package/dist/server/server/src/ai/controllers/ai.js +2 -2
- package/dist/server/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/server/src/ai/controllers/ai.mjs +2 -2
- package/dist/server/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js +1 -2
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs +2 -2
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +4 -8
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs +5 -5
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/permission.js +1 -5
- package/dist/server/server/src/services/transfer/permission.js.map +1 -1
- package/dist/server/server/src/services/transfer/permission.mjs +2 -2
- package/dist/server/server/src/services/transfer/permission.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +1 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +1 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +1 -1
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/transfer/permission.d.ts +2 -2
- package/dist/server/src/services/transfer/permission.d.ts.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
@@ -287,7 +287,111 @@ var id = {
|
|
|
287
287
|
"notification.permission.not-allowed-read": "Anda tidak diizinkan untuk melihat dokumen ini",
|
|
288
288
|
"notification.success.delete": "Item telah dihapus",
|
|
289
289
|
"notification.success.saved": "Disimpan",
|
|
290
|
-
"request.error.model.unknown": "Model ini tidak ada"
|
|
290
|
+
"request.error.model.unknown": "Model ini tidak ada",
|
|
291
|
+
"HomePage.widget.error": "Tidak dapat memuat konten widget.",
|
|
292
|
+
"Settings.permissions.auditLogs.filters.combobox.aria-label": "Cari dan pilih opsi untuk memfilter",
|
|
293
|
+
"Auth.form.button.password-recovery": "Pemulihan Kata Sandi",
|
|
294
|
+
"Settings.permissions.auditLogs.permission.update": "Perbarui izin",
|
|
295
|
+
"Auth.form.register.subtitle": "Kredensial hanya digunakan untuk mengautentikasi di Strapi. Semua data yang disimpan akan berada di database Anda.",
|
|
296
|
+
"Settings.adminTokens.create": "Buat Token Admin baru",
|
|
297
|
+
"Settings.permissions.auditLogs.content-type.delete": "Hapus tipe konten",
|
|
298
|
+
"Settings.permissions.select-by-permission": "Pilih izin {label}",
|
|
299
|
+
"Auth.components.Oops.title": "Ups...",
|
|
300
|
+
"Settings.permissions.users.listview.header.subtitle": "Semua pengguna yang memiliki akses ke panel admin Strapi",
|
|
301
|
+
"Settings.application.node-version": "Versi node",
|
|
302
|
+
"Settings.application.customization.carousel-hint": "Ubah logo panel admin (Dimensi maks: {dimension}x{dimension}, Ukuran file maks: {size}KB)",
|
|
303
|
+
"HomePage.header.title": "Halo {name}",
|
|
304
|
+
"Settings.apiTokens.createPage.permissions.header.hint": "Pilih aksi aplikasi atau aksi plugin dan klik ikon roda gigi untuk menampilkan rute yang terikat",
|
|
305
|
+
"Settings.apiTokens.addNewToken": "Tambahkan Token API baru",
|
|
306
|
+
"Settings.permissions.select-all-by-permission": "Pilih semua izin {label}",
|
|
307
|
+
"Settings.permissions.auditLogs.user.create": "Buat pengguna",
|
|
308
|
+
"Auth.form.button.login.strapi": "Masuk melalui Strapi",
|
|
309
|
+
"Settings.permissions.users.active": "Aktif",
|
|
310
|
+
"Settings.permissions.auditLogs.entry.unpublish": "Batal terbitkan entri{model, select, undefined {} other { ({model})}}",
|
|
311
|
+
"Settings.application.customization.modal.pending.title": "Logo siap diunggah",
|
|
312
|
+
"HomePage.widget.no-permissions": "Anda tidak memiliki izin untuk melihat widget ini",
|
|
313
|
+
"Settings.permissions.auditLogs.user": "Pengguna",
|
|
314
|
+
"Auth.components.Oops.text.admin": "Jika ini adalah kesalahan, silakan hubungi administrator Anda.",
|
|
315
|
+
"Settings.permissions.auditLogs.user.delete": "Hapus pengguna",
|
|
316
|
+
"Settings.adminTokens.ListView.headers.name": "Nama",
|
|
317
|
+
"Settings.application.customization.carousel-slide.label": "Slide logo",
|
|
318
|
+
"Settings.application.customization.modal.upload.error-network": "Kesalahan jaringan",
|
|
319
|
+
"Settings.application.customization.modal.upload.from-computer": "Dari komputer",
|
|
320
|
+
"Settings.apiTokens.createPage.title": "Buat Token API",
|
|
321
|
+
"Settings.adminTokens.description": "Daftar token yang dibuat untuk mengakses fitur admin secara terprogram",
|
|
322
|
+
"Settings.permissions.users.strapi-editor": "Editor",
|
|
323
|
+
"Settings.adminTokens.ListView.headers.owner": "Pemilik",
|
|
324
|
+
"Settings.adminTokens.title": "Token Admin",
|
|
325
|
+
"Settings.permissions.auditLogs.entry.publish": "Terbitkan entri {model, select, undefined {} other {({model})}}",
|
|
326
|
+
"Settings.permissions.auditLogs.admin.auth.success": "Login Admin",
|
|
327
|
+
"Settings.apiTokens.ListView.headers.type": "Tipe token",
|
|
328
|
+
"Settings.permissions.auditLogs.payload": "Payload",
|
|
329
|
+
"Auth.form.welcome.subtitle": "Masuk ke akun Strapi Anda",
|
|
330
|
+
"Settings.adminTokens.addFirstToken": "Buat Token Admin pertama Anda",
|
|
331
|
+
"Settings.application.customization.modal.upload.cta.browse": "Telusuri file",
|
|
332
|
+
"Settings.apiTokens.createPage.permissions.header.title": "Pengaturan lanjutan",
|
|
333
|
+
"Settings.application.plan-title": "Paket saat ini",
|
|
334
|
+
"Settings.application.ee.admin-seats.add-seats": "Kelola langganan",
|
|
335
|
+
"Settings.permissions.auditLogs.admin.logout": "Logout Admin",
|
|
336
|
+
"Settings.apiTokens.regenerate": "Buat ulang",
|
|
337
|
+
"Auth.form.active.label": "Aktif",
|
|
338
|
+
"Roles.RoleRow.user-count": "{number, plural, =0 {# pengguna} one {# pengguna} other {# pengguna}}",
|
|
339
|
+
"Settings.permissions.auditLogs.role.create": "Buat peran",
|
|
340
|
+
"Settings.permissions.auditLogs.user.fullname": "{firstname} {lastname}",
|
|
341
|
+
"Settings.permissions.auditLogs.permission.create": "Buat izin",
|
|
342
|
+
"Settings.application.strapiVersion": "Versi Strapi",
|
|
343
|
+
"Settings.adminTokens.editPage.title": "Edit Token Admin",
|
|
344
|
+
"Settings.application.customization.modal.upload.error-format": "Format yang diunggah salah (hanya menerima format: jpeg, jpg, png, svg).",
|
|
345
|
+
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
|
|
346
|
+
"Settings.application.customization.carousel.auth-logo.title": "Logo Auth",
|
|
347
|
+
"Settings.application.customization.menu-logo.carousel-hint": "Ganti logo di navigasi utama",
|
|
348
|
+
"Auth.form.password.hint": "Harus minimal 8 karakter, 1 huruf besar, 1 huruf kecil & 1 angka",
|
|
349
|
+
"Settings.permissions.auditLogs.component.delete": "Hapus komponen",
|
|
350
|
+
"Auth.login.sso.divider": "Atau masuk dengan",
|
|
351
|
+
"Settings.application.customization.modal.upload": "Unggah logo",
|
|
352
|
+
"Settings.apiTokens.ListView.headers.description": "Deskripsi",
|
|
353
|
+
"Settings.application.customization.modal.pending.upload": "Unggah logo",
|
|
354
|
+
"Settings.permissions.auditLogs.listview.header.subtitle": "Log semua aktivitas yang terjadi di lingkungan Anda",
|
|
355
|
+
"Settings.adminTokens.ListView.headers.lastUsedAt": "Terakhir digunakan",
|
|
356
|
+
"Settings.permissions.auditLogs.content-type.create": "Buat tipe konten",
|
|
357
|
+
"HomePage.widget.loading": "Memuat konten widget",
|
|
358
|
+
"Auth.form.welcome.title": "Selamat datang di Strapi!",
|
|
359
|
+
"HomePage.header.subtitle": "Selamat datang di panel administrasi Anda",
|
|
360
|
+
"Settings.apiTokens.copy.lastWarning": "Salin token Anda",
|
|
361
|
+
"Settings.adminTokens.ListView.headers.createdAt": "Dibuat pada",
|
|
362
|
+
"Settings.apiTokens.ListView.headers.createdAt": "Dibuat pada",
|
|
363
|
+
"Settings.apiTokens.createPage.BoundRoute.title": "Rute terikat ke",
|
|
364
|
+
"Settings.permissions.auditLogs.entry.create": "Buat entri{model, select, undefined {} other { ({model})}}",
|
|
365
|
+
"Settings.apiTokens.addFirstToken": "Tambahkan Token API pertama Anda",
|
|
366
|
+
"Auth.form.password.hide-password": "Sembunyikan kata sandi",
|
|
367
|
+
"Settings.permissions.auditLogs.userId": "ID Pengguna",
|
|
368
|
+
"Auth.login.sso.subtitle": "Masuk ke akun Anda via SSO",
|
|
369
|
+
"HomePage.widget.no-data": "Tidak ada konten yang ditemukan.",
|
|
370
|
+
"Settings.permissions.auditLogs.role.update": "Perbarui peran",
|
|
371
|
+
"Auth.login.sso.loading": "Memuat penyedia...",
|
|
372
|
+
"Settings.application.customization.carousel.title": "Logo",
|
|
373
|
+
"Settings.permissions.auditLogs.user.update": "Perbarui pengguna",
|
|
374
|
+
"Settings.application.link-upgrade": "Tingkatkan panel admin Anda",
|
|
375
|
+
"Auth.reset-password.title": "Setel ulang kata sandi",
|
|
376
|
+
"Auth.form.button.login.providers.error": "Kami tidak dapat menghubungkan Anda melalui penyedia yang dipilih.",
|
|
377
|
+
"Settings.permissions.auditLogs.component.create": "Buat komponen",
|
|
378
|
+
"Settings.apiTokens.emptyStateLayout": "Anda belum memiliki konten apa pun...",
|
|
379
|
+
"Settings.apiTokens.title": "Token API",
|
|
380
|
+
"Settings.permissions.auditLogs.action": "Aksi",
|
|
381
|
+
"Settings.permissions.auditLogs.details": "Detail Log",
|
|
382
|
+
"Settings.permissions.conditions.define-conditions": "Tetapkan kondisi",
|
|
383
|
+
"Settings.application.customization.modal.upload.error-size": "File yang diunggah terlalu besar (dimensi maks: {dimension}x{dimension}, ukuran file maks: {size}KB)",
|
|
384
|
+
"Settings.application.customization.modal.tab.label": "Bagaimana Anda ingin mengunggah aset Anda?",
|
|
385
|
+
"Settings.permissions.users.strapi-author": "Penulis",
|
|
386
|
+
"Settings.permissions.auditLogs.entry.update": "Perbarui entri{model, select, undefined {} other { ({model})}}",
|
|
387
|
+
"Settings.application.customization.modal.upload.from-url": "Dari URL",
|
|
388
|
+
"Settings.application.customization.modal.upload.next": "Berikutnya",
|
|
389
|
+
"Settings.apiTokens.createPage.permissions.title": "Izin",
|
|
390
|
+
"Settings.application.customization.carousel.reset-action": "Setel ulang logo",
|
|
391
|
+
"Settings.application.strapi-version": "Versi Strapi",
|
|
392
|
+
"Settings.application.get-help": "Dapatkan bantuan",
|
|
393
|
+
"Auth.form.currentPassword.label": "Kata Sandi Saat Ini",
|
|
394
|
+
"Settings.permissions.users.roles": "Peran"
|
|
291
395
|
};
|
|
292
396
|
|
|
293
397
|
exports.Analytics = Analytics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -283,7 +283,111 @@ var id = {
|
|
|
283
283
|
"notification.permission.not-allowed-read": "Anda tidak diizinkan untuk melihat dokumen ini",
|
|
284
284
|
"notification.success.delete": "Item telah dihapus",
|
|
285
285
|
"notification.success.saved": "Disimpan",
|
|
286
|
-
"request.error.model.unknown": "Model ini tidak ada"
|
|
286
|
+
"request.error.model.unknown": "Model ini tidak ada",
|
|
287
|
+
"HomePage.widget.error": "Tidak dapat memuat konten widget.",
|
|
288
|
+
"Settings.permissions.auditLogs.filters.combobox.aria-label": "Cari dan pilih opsi untuk memfilter",
|
|
289
|
+
"Auth.form.button.password-recovery": "Pemulihan Kata Sandi",
|
|
290
|
+
"Settings.permissions.auditLogs.permission.update": "Perbarui izin",
|
|
291
|
+
"Auth.form.register.subtitle": "Kredensial hanya digunakan untuk mengautentikasi di Strapi. Semua data yang disimpan akan berada di database Anda.",
|
|
292
|
+
"Settings.adminTokens.create": "Buat Token Admin baru",
|
|
293
|
+
"Settings.permissions.auditLogs.content-type.delete": "Hapus tipe konten",
|
|
294
|
+
"Settings.permissions.select-by-permission": "Pilih izin {label}",
|
|
295
|
+
"Auth.components.Oops.title": "Ups...",
|
|
296
|
+
"Settings.permissions.users.listview.header.subtitle": "Semua pengguna yang memiliki akses ke panel admin Strapi",
|
|
297
|
+
"Settings.application.node-version": "Versi node",
|
|
298
|
+
"Settings.application.customization.carousel-hint": "Ubah logo panel admin (Dimensi maks: {dimension}x{dimension}, Ukuran file maks: {size}KB)",
|
|
299
|
+
"HomePage.header.title": "Halo {name}",
|
|
300
|
+
"Settings.apiTokens.createPage.permissions.header.hint": "Pilih aksi aplikasi atau aksi plugin dan klik ikon roda gigi untuk menampilkan rute yang terikat",
|
|
301
|
+
"Settings.apiTokens.addNewToken": "Tambahkan Token API baru",
|
|
302
|
+
"Settings.permissions.select-all-by-permission": "Pilih semua izin {label}",
|
|
303
|
+
"Settings.permissions.auditLogs.user.create": "Buat pengguna",
|
|
304
|
+
"Auth.form.button.login.strapi": "Masuk melalui Strapi",
|
|
305
|
+
"Settings.permissions.users.active": "Aktif",
|
|
306
|
+
"Settings.permissions.auditLogs.entry.unpublish": "Batal terbitkan entri{model, select, undefined {} other { ({model})}}",
|
|
307
|
+
"Settings.application.customization.modal.pending.title": "Logo siap diunggah",
|
|
308
|
+
"HomePage.widget.no-permissions": "Anda tidak memiliki izin untuk melihat widget ini",
|
|
309
|
+
"Settings.permissions.auditLogs.user": "Pengguna",
|
|
310
|
+
"Auth.components.Oops.text.admin": "Jika ini adalah kesalahan, silakan hubungi administrator Anda.",
|
|
311
|
+
"Settings.permissions.auditLogs.user.delete": "Hapus pengguna",
|
|
312
|
+
"Settings.adminTokens.ListView.headers.name": "Nama",
|
|
313
|
+
"Settings.application.customization.carousel-slide.label": "Slide logo",
|
|
314
|
+
"Settings.application.customization.modal.upload.error-network": "Kesalahan jaringan",
|
|
315
|
+
"Settings.application.customization.modal.upload.from-computer": "Dari komputer",
|
|
316
|
+
"Settings.apiTokens.createPage.title": "Buat Token API",
|
|
317
|
+
"Settings.adminTokens.description": "Daftar token yang dibuat untuk mengakses fitur admin secara terprogram",
|
|
318
|
+
"Settings.permissions.users.strapi-editor": "Editor",
|
|
319
|
+
"Settings.adminTokens.ListView.headers.owner": "Pemilik",
|
|
320
|
+
"Settings.adminTokens.title": "Token Admin",
|
|
321
|
+
"Settings.permissions.auditLogs.entry.publish": "Terbitkan entri {model, select, undefined {} other {({model})}}",
|
|
322
|
+
"Settings.permissions.auditLogs.admin.auth.success": "Login Admin",
|
|
323
|
+
"Settings.apiTokens.ListView.headers.type": "Tipe token",
|
|
324
|
+
"Settings.permissions.auditLogs.payload": "Payload",
|
|
325
|
+
"Auth.form.welcome.subtitle": "Masuk ke akun Strapi Anda",
|
|
326
|
+
"Settings.adminTokens.addFirstToken": "Buat Token Admin pertama Anda",
|
|
327
|
+
"Settings.application.customization.modal.upload.cta.browse": "Telusuri file",
|
|
328
|
+
"Settings.apiTokens.createPage.permissions.header.title": "Pengaturan lanjutan",
|
|
329
|
+
"Settings.application.plan-title": "Paket saat ini",
|
|
330
|
+
"Settings.application.ee.admin-seats.add-seats": "Kelola langganan",
|
|
331
|
+
"Settings.permissions.auditLogs.admin.logout": "Logout Admin",
|
|
332
|
+
"Settings.apiTokens.regenerate": "Buat ulang",
|
|
333
|
+
"Auth.form.active.label": "Aktif",
|
|
334
|
+
"Roles.RoleRow.user-count": "{number, plural, =0 {# pengguna} one {# pengguna} other {# pengguna}}",
|
|
335
|
+
"Settings.permissions.auditLogs.role.create": "Buat peran",
|
|
336
|
+
"Settings.permissions.auditLogs.user.fullname": "{firstname} {lastname}",
|
|
337
|
+
"Settings.permissions.auditLogs.permission.create": "Buat izin",
|
|
338
|
+
"Settings.application.strapiVersion": "Versi Strapi",
|
|
339
|
+
"Settings.adminTokens.editPage.title": "Edit Token Admin",
|
|
340
|
+
"Settings.application.customization.modal.upload.error-format": "Format yang diunggah salah (hanya menerima format: jpeg, jpg, png, svg).",
|
|
341
|
+
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
|
|
342
|
+
"Settings.application.customization.carousel.auth-logo.title": "Logo Auth",
|
|
343
|
+
"Settings.application.customization.menu-logo.carousel-hint": "Ganti logo di navigasi utama",
|
|
344
|
+
"Auth.form.password.hint": "Harus minimal 8 karakter, 1 huruf besar, 1 huruf kecil & 1 angka",
|
|
345
|
+
"Settings.permissions.auditLogs.component.delete": "Hapus komponen",
|
|
346
|
+
"Auth.login.sso.divider": "Atau masuk dengan",
|
|
347
|
+
"Settings.application.customization.modal.upload": "Unggah logo",
|
|
348
|
+
"Settings.apiTokens.ListView.headers.description": "Deskripsi",
|
|
349
|
+
"Settings.application.customization.modal.pending.upload": "Unggah logo",
|
|
350
|
+
"Settings.permissions.auditLogs.listview.header.subtitle": "Log semua aktivitas yang terjadi di lingkungan Anda",
|
|
351
|
+
"Settings.adminTokens.ListView.headers.lastUsedAt": "Terakhir digunakan",
|
|
352
|
+
"Settings.permissions.auditLogs.content-type.create": "Buat tipe konten",
|
|
353
|
+
"HomePage.widget.loading": "Memuat konten widget",
|
|
354
|
+
"Auth.form.welcome.title": "Selamat datang di Strapi!",
|
|
355
|
+
"HomePage.header.subtitle": "Selamat datang di panel administrasi Anda",
|
|
356
|
+
"Settings.apiTokens.copy.lastWarning": "Salin token Anda",
|
|
357
|
+
"Settings.adminTokens.ListView.headers.createdAt": "Dibuat pada",
|
|
358
|
+
"Settings.apiTokens.ListView.headers.createdAt": "Dibuat pada",
|
|
359
|
+
"Settings.apiTokens.createPage.BoundRoute.title": "Rute terikat ke",
|
|
360
|
+
"Settings.permissions.auditLogs.entry.create": "Buat entri{model, select, undefined {} other { ({model})}}",
|
|
361
|
+
"Settings.apiTokens.addFirstToken": "Tambahkan Token API pertama Anda",
|
|
362
|
+
"Auth.form.password.hide-password": "Sembunyikan kata sandi",
|
|
363
|
+
"Settings.permissions.auditLogs.userId": "ID Pengguna",
|
|
364
|
+
"Auth.login.sso.subtitle": "Masuk ke akun Anda via SSO",
|
|
365
|
+
"HomePage.widget.no-data": "Tidak ada konten yang ditemukan.",
|
|
366
|
+
"Settings.permissions.auditLogs.role.update": "Perbarui peran",
|
|
367
|
+
"Auth.login.sso.loading": "Memuat penyedia...",
|
|
368
|
+
"Settings.application.customization.carousel.title": "Logo",
|
|
369
|
+
"Settings.permissions.auditLogs.user.update": "Perbarui pengguna",
|
|
370
|
+
"Settings.application.link-upgrade": "Tingkatkan panel admin Anda",
|
|
371
|
+
"Auth.reset-password.title": "Setel ulang kata sandi",
|
|
372
|
+
"Auth.form.button.login.providers.error": "Kami tidak dapat menghubungkan Anda melalui penyedia yang dipilih.",
|
|
373
|
+
"Settings.permissions.auditLogs.component.create": "Buat komponen",
|
|
374
|
+
"Settings.apiTokens.emptyStateLayout": "Anda belum memiliki konten apa pun...",
|
|
375
|
+
"Settings.apiTokens.title": "Token API",
|
|
376
|
+
"Settings.permissions.auditLogs.action": "Aksi",
|
|
377
|
+
"Settings.permissions.auditLogs.details": "Detail Log",
|
|
378
|
+
"Settings.permissions.conditions.define-conditions": "Tetapkan kondisi",
|
|
379
|
+
"Settings.application.customization.modal.upload.error-size": "File yang diunggah terlalu besar (dimensi maks: {dimension}x{dimension}, ukuran file maks: {size}KB)",
|
|
380
|
+
"Settings.application.customization.modal.tab.label": "Bagaimana Anda ingin mengunggah aset Anda?",
|
|
381
|
+
"Settings.permissions.users.strapi-author": "Penulis",
|
|
382
|
+
"Settings.permissions.auditLogs.entry.update": "Perbarui entri{model, select, undefined {} other { ({model})}}",
|
|
383
|
+
"Settings.application.customization.modal.upload.from-url": "Dari URL",
|
|
384
|
+
"Settings.application.customization.modal.upload.next": "Berikutnya",
|
|
385
|
+
"Settings.apiTokens.createPage.permissions.title": "Izin",
|
|
386
|
+
"Settings.application.customization.carousel.reset-action": "Setel ulang logo",
|
|
387
|
+
"Settings.application.strapi-version": "Versi Strapi",
|
|
388
|
+
"Settings.application.get-help": "Dapatkan bantuan",
|
|
389
|
+
"Auth.form.currentPassword.label": "Kata Sandi Saat Ini",
|
|
390
|
+
"Settings.permissions.users.roles": "Peran"
|
|
287
391
|
};
|
|
288
392
|
|
|
289
393
|
export { Analytics, Documentation, Email, Password, Provider, ResetPasswordToken, Role, Username, Users, id as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"id.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -65,12 +65,13 @@ const simpleQuery = async (query, api)=>{
|
|
|
65
65
|
getFetchClient.triggerSessionExpired();
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
const responseData = err.response?.data;
|
|
69
|
+
if (typeof responseData === 'object' && responseData !== null && 'error' in responseData) {
|
|
69
70
|
/**
|
|
70
71
|
* This will most likely be ApiError
|
|
71
72
|
*/ return {
|
|
72
73
|
data: undefined,
|
|
73
|
-
error:
|
|
74
|
+
error: responseData.error
|
|
74
75
|
};
|
|
75
76
|
} else {
|
|
76
77
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseQuery.js","sources":["../../../../../admin/src/utils/baseQuery.ts"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\n\nimport { logout as logoutAction } from '../reducer';\nimport {\n getFetchClient,\n triggerSessionExpired,\n type FetchOptions,\n ApiError,\n isFetchError,\n} from '../utils/getFetchClient';\n\ninterface QueryArguments {\n url: string;\n method?: 'GET' | 'POST' | 'DELETE' | 'PUT';\n data?: unknown;\n config?: FetchOptions;\n}\n\ninterface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\ntype BaseQueryError = ApiError | UnknownApiError;\n\nconst isAuthPath = (url: string) => /^\\/admin\\/(login|logout|access-token)\\b/.test(url);\n\nconst simpleQuery: BaseQueryFn<\n string | QueryArguments,\n unknown,\n BaseQueryError | SerializedError\n> = async (query, api) => {\n const { signal, dispatch } = api;\n\n const executeQuery = async (queryToExecute: string | QueryArguments) => {\n const { get, post, del, put } = getFetchClient();\n if (typeof queryToExecute === 'string') {\n const result = await get(queryToExecute, { signal });\n return result;\n }\n\n const { url, method = 'GET', data, config } = queryToExecute;\n if (method === 'POST') {\n return post(url, data, { ...config, signal });\n }\n if (method === 'DELETE') {\n return del(url, { ...config, signal });\n }\n if (method === 'PUT') {\n return put(url, data, { ...config, signal });\n }\n return get(url, { ...config, signal });\n };\n\n try {\n const result = await executeQuery(query);\n return { data: result.data };\n } catch (err) {\n // Handle error of type FetchError\n\n if (isFetchError(err)) {\n // If we receive a 401 here, getFetchClient already tried to refresh and failed.\n // Log the user out since their session is no longer valid.\n if (err.status === 401) {\n const url = typeof query === 'string' ? query : query.url;\n\n if (!isAuthPath(url)) {\n try {\n const { post } = getFetchClient();\n await post('/admin/logout');\n } catch {\n // no-op\n }\n\n dispatch(logoutAction());\n // Notify the React layer so the active tab redirects to /auth/login.\n // Without this, only other tabs (via the storage event) would react;\n // the tab that originated the failing request would stay put until\n // the user clicked something or refreshed.\n triggerSessionExpired();\n }\n }\n\n
|
|
1
|
+
{"version":3,"file":"baseQuery.js","sources":["../../../../../admin/src/utils/baseQuery.ts"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\n\nimport { logout as logoutAction } from '../reducer';\nimport {\n getFetchClient,\n triggerSessionExpired,\n type FetchOptions,\n ApiError,\n isFetchError,\n} from '../utils/getFetchClient';\n\ninterface QueryArguments {\n url: string;\n method?: 'GET' | 'POST' | 'DELETE' | 'PUT';\n data?: unknown;\n config?: FetchOptions;\n}\n\ninterface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\ntype BaseQueryError = ApiError | UnknownApiError;\n\nconst isAuthPath = (url: string) => /^\\/admin\\/(login|logout|access-token)\\b/.test(url);\n\nconst simpleQuery: BaseQueryFn<\n string | QueryArguments,\n unknown,\n BaseQueryError | SerializedError\n> = async (query, api) => {\n const { signal, dispatch } = api;\n\n const executeQuery = async (queryToExecute: string | QueryArguments) => {\n const { get, post, del, put } = getFetchClient();\n if (typeof queryToExecute === 'string') {\n const result = await get(queryToExecute, { signal });\n return result;\n }\n\n const { url, method = 'GET', data, config } = queryToExecute;\n if (method === 'POST') {\n return post(url, data, { ...config, signal });\n }\n if (method === 'DELETE') {\n return del(url, { ...config, signal });\n }\n if (method === 'PUT') {\n return put(url, data, { ...config, signal });\n }\n return get(url, { ...config, signal });\n };\n\n try {\n const result = await executeQuery(query);\n return { data: result.data };\n } catch (err) {\n // Handle error of type FetchError\n\n if (isFetchError(err)) {\n // If we receive a 401 here, getFetchClient already tried to refresh and failed.\n // Log the user out since their session is no longer valid.\n if (err.status === 401) {\n const url = typeof query === 'string' ? query : query.url;\n\n if (!isAuthPath(url)) {\n try {\n const { post } = getFetchClient();\n await post('/admin/logout');\n } catch {\n // no-op\n }\n\n dispatch(logoutAction());\n // Notify the React layer so the active tab redirects to /auth/login.\n // Without this, only other tabs (via the storage event) would react;\n // the tab that originated the failing request would stay put until\n // the user clicked something or refreshed.\n triggerSessionExpired();\n }\n }\n\n const responseData = err.response?.data;\n\n if (typeof responseData === 'object' && responseData !== null && 'error' in responseData) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: responseData.error as BaseQueryError };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: err.message,\n details: err.response,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err instanceof Error ? err : new Error('Unknown error');\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n};\n\nconst fetchBaseQuery = () => simpleQuery;\n\nconst isBaseQueryError = (error: BaseQueryError | SerializedError): error is BaseQueryError => {\n return error.name !== undefined;\n};\n\nexport { fetchBaseQuery, isBaseQueryError };\nexport type { BaseQueryError, UnknownApiError, QueryArguments };\n"],"names":["isAuthPath","url","test","simpleQuery","query","api","signal","dispatch","executeQuery","queryToExecute","get","post","del","put","getFetchClient","result","method","data","config","err","isFetchError","status","logoutAction","triggerSessionExpired","responseData","response","undefined","error","name","message","details","Error","stack","fetchBaseQuery","isBaseQueryError"],"mappings":"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"}
|
|
@@ -63,12 +63,13 @@ const simpleQuery = async (query, api)=>{
|
|
|
63
63
|
triggerSessionExpired();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
const responseData = err.response?.data;
|
|
67
|
+
if (typeof responseData === 'object' && responseData !== null && 'error' in responseData) {
|
|
67
68
|
/**
|
|
68
69
|
* This will most likely be ApiError
|
|
69
70
|
*/ return {
|
|
70
71
|
data: undefined,
|
|
71
|
-
error:
|
|
72
|
+
error: responseData.error
|
|
72
73
|
};
|
|
73
74
|
} else {
|
|
74
75
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseQuery.mjs","sources":["../../../../../admin/src/utils/baseQuery.ts"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\n\nimport { logout as logoutAction } from '../reducer';\nimport {\n getFetchClient,\n triggerSessionExpired,\n type FetchOptions,\n ApiError,\n isFetchError,\n} from '../utils/getFetchClient';\n\ninterface QueryArguments {\n url: string;\n method?: 'GET' | 'POST' | 'DELETE' | 'PUT';\n data?: unknown;\n config?: FetchOptions;\n}\n\ninterface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\ntype BaseQueryError = ApiError | UnknownApiError;\n\nconst isAuthPath = (url: string) => /^\\/admin\\/(login|logout|access-token)\\b/.test(url);\n\nconst simpleQuery: BaseQueryFn<\n string | QueryArguments,\n unknown,\n BaseQueryError | SerializedError\n> = async (query, api) => {\n const { signal, dispatch } = api;\n\n const executeQuery = async (queryToExecute: string | QueryArguments) => {\n const { get, post, del, put } = getFetchClient();\n if (typeof queryToExecute === 'string') {\n const result = await get(queryToExecute, { signal });\n return result;\n }\n\n const { url, method = 'GET', data, config } = queryToExecute;\n if (method === 'POST') {\n return post(url, data, { ...config, signal });\n }\n if (method === 'DELETE') {\n return del(url, { ...config, signal });\n }\n if (method === 'PUT') {\n return put(url, data, { ...config, signal });\n }\n return get(url, { ...config, signal });\n };\n\n try {\n const result = await executeQuery(query);\n return { data: result.data };\n } catch (err) {\n // Handle error of type FetchError\n\n if (isFetchError(err)) {\n // If we receive a 401 here, getFetchClient already tried to refresh and failed.\n // Log the user out since their session is no longer valid.\n if (err.status === 401) {\n const url = typeof query === 'string' ? query : query.url;\n\n if (!isAuthPath(url)) {\n try {\n const { post } = getFetchClient();\n await post('/admin/logout');\n } catch {\n // no-op\n }\n\n dispatch(logoutAction());\n // Notify the React layer so the active tab redirects to /auth/login.\n // Without this, only other tabs (via the storage event) would react;\n // the tab that originated the failing request would stay put until\n // the user clicked something or refreshed.\n triggerSessionExpired();\n }\n }\n\n
|
|
1
|
+
{"version":3,"file":"baseQuery.mjs","sources":["../../../../../admin/src/utils/baseQuery.ts"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\n\nimport { logout as logoutAction } from '../reducer';\nimport {\n getFetchClient,\n triggerSessionExpired,\n type FetchOptions,\n ApiError,\n isFetchError,\n} from '../utils/getFetchClient';\n\ninterface QueryArguments {\n url: string;\n method?: 'GET' | 'POST' | 'DELETE' | 'PUT';\n data?: unknown;\n config?: FetchOptions;\n}\n\ninterface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\ntype BaseQueryError = ApiError | UnknownApiError;\n\nconst isAuthPath = (url: string) => /^\\/admin\\/(login|logout|access-token)\\b/.test(url);\n\nconst simpleQuery: BaseQueryFn<\n string | QueryArguments,\n unknown,\n BaseQueryError | SerializedError\n> = async (query, api) => {\n const { signal, dispatch } = api;\n\n const executeQuery = async (queryToExecute: string | QueryArguments) => {\n const { get, post, del, put } = getFetchClient();\n if (typeof queryToExecute === 'string') {\n const result = await get(queryToExecute, { signal });\n return result;\n }\n\n const { url, method = 'GET', data, config } = queryToExecute;\n if (method === 'POST') {\n return post(url, data, { ...config, signal });\n }\n if (method === 'DELETE') {\n return del(url, { ...config, signal });\n }\n if (method === 'PUT') {\n return put(url, data, { ...config, signal });\n }\n return get(url, { ...config, signal });\n };\n\n try {\n const result = await executeQuery(query);\n return { data: result.data };\n } catch (err) {\n // Handle error of type FetchError\n\n if (isFetchError(err)) {\n // If we receive a 401 here, getFetchClient already tried to refresh and failed.\n // Log the user out since their session is no longer valid.\n if (err.status === 401) {\n const url = typeof query === 'string' ? query : query.url;\n\n if (!isAuthPath(url)) {\n try {\n const { post } = getFetchClient();\n await post('/admin/logout');\n } catch {\n // no-op\n }\n\n dispatch(logoutAction());\n // Notify the React layer so the active tab redirects to /auth/login.\n // Without this, only other tabs (via the storage event) would react;\n // the tab that originated the failing request would stay put until\n // the user clicked something or refreshed.\n triggerSessionExpired();\n }\n }\n\n const responseData = err.response?.data;\n\n if (typeof responseData === 'object' && responseData !== null && 'error' in responseData) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: responseData.error as BaseQueryError };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: err.message,\n details: err.response,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err instanceof Error ? err : new Error('Unknown error');\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n};\n\nconst fetchBaseQuery = () => simpleQuery;\n\nconst isBaseQueryError = (error: BaseQueryError | SerializedError): error is BaseQueryError => {\n return error.name !== undefined;\n};\n\nexport { fetchBaseQuery, isBaseQueryError };\nexport type { BaseQueryError, UnknownApiError, QueryArguments };\n"],"names":["isAuthPath","url","test","simpleQuery","query","api","signal","dispatch","executeQuery","queryToExecute","get","post","del","put","getFetchClient","result","method","data","config","err","isFetchError","status","logoutAction","triggerSessionExpired","responseData","response","undefined","error","name","message","details","Error","stack","fetchBaseQuery","isBaseQueryError"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch
|
|
1
|
+
{"version":3,"file":"users.js","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":";;AAEA;;;;AAMC,IACD,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAAA,EAAU;QACZ,OAAOA,QAAAA;AACT,IAAA;;AAGA,IAAA,IAAIF,SAAAA,EAAW;AACb,QAAA,OAAO,GAAGA,SAAAA,CAAU,CAAC,EAAEC,QAAAA,IAAY,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C,IAAA;AAEA,IAAA,OAAOD,KAAAA,IAAS,EAAA;AAClB;AAEA;;;;AAMC,IACD,MAAME,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAAA,IAAaM,IAAAA,EAAML,WAC5B,CAAA,EAAGK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAAA,CAAKL,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,GACnER,cAAAA,CAAeO,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAAA,CAAKH,SAAS,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT,IAAA;IAEA,IAAI;QACF,OAAO,MAAMY,aAAAA,CAAcD,OAAAA,CAAQX,KAAK,CAAA;AAC1C,IAAA,CAAA,CAAE,OAAM;QACN,OAAO,IAAA;AACT,IAAA;AACF;AAEA,MAAMa,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAAA,CAAWD,MAAAA;AAAQ,KAAA,CAACR,GAAG,CAAC,CAACU,CAAAA,GAAMA,CAAAA,CAAEC,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAA,EAAG,GAAA,CAAA,CAAA,CAAMV,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOO,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAW,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAA,EAAWN,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAAA,CAAYU,UAAAA,CAAAA;AACrB,CAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch
|
|
1
|
+
{"version":3,"file":"users.mjs","sources":["../../../../../admin/src/utils/users.ts"],"sourcesContent":["import type { User } from '../features/Auth';\n\n/* -------------------------------------------------------------------------------------------------\n * getDisplayName\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({ firstname, lastname, username, email }: Partial<User> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\n/* -------------------------------------------------------------------------------------------------\n * getInitials\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Retrieves the initials of the user (based on their firstname / lastname or their display name)\n */\nconst getInitials = (user: Partial<User> = {}): string => {\n return user?.firstname && user?.lastname\n ? `${user.firstname.substring(0, 1)}${user.lastname.substring(0, 1)}`\n : getDisplayName(user)\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 1)\n .toUpperCase();\n};\n\n/* -------------------------------------------------------------------------------------------------\n * hashAdminUserEmail\n * -----------------------------------------------------------------------------------------------*/\n\nconst hashAdminUserEmail = async (payload?: User) => {\n if (!payload || !payload.email) {\n return null;\n }\n\n try {\n return await digestMessage(payload.email);\n } catch {\n return null;\n }\n};\n\nconst bufferToHex = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, '0')).join('');\n};\nconst digestMessage = async (message: string) => {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\n return bufferToHex(hashBuffer);\n};\n\nexport { getDisplayName, getInitials, hashAdminUserEmail };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim","getInitials","user","substring","split","map","name","join","toUpperCase","hashAdminUserEmail","payload","digestMessage","bufferToHex","buffer","Uint8Array","b","toString","padStart","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest"],"mappings":"AAEA;;;;AAMC,IACD,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,KAAK,EAAiB,GAAG,EAAE,GAAA;AAClF,IAAA,IAAID,QAAAA,EAAU;QACZ,OAAOA,QAAAA;AACT,IAAA;;AAGA,IAAA,IAAIF,SAAAA,EAAW;AACb,QAAA,OAAO,GAAGA,SAAAA,CAAU,CAAC,EAAEC,QAAAA,IAAY,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C,IAAA;AAEA,IAAA,OAAOD,KAAAA,IAAS,EAAA;AAClB;AAEA;;;;AAMC,IACD,MAAME,WAAAA,GAAc,CAACC,IAAAA,GAAsB,EAAE,GAAA;AAC3C,IAAA,OAAOA,MAAMN,SAAAA,IAAaM,IAAAA,EAAML,WAC5B,CAAA,EAAGK,IAAAA,CAAKN,SAAS,CAACO,SAAS,CAAC,CAAA,EAAG,KAAKD,IAAAA,CAAKL,QAAQ,CAACM,SAAS,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,GACnER,cAAAA,CAAeO,IAAAA,CAAAA,CACZE,KAAK,CAAC,GAAA,CAAA,CACNC,GAAG,CAAC,CAACC,OAASA,IAAAA,CAAKH,SAAS,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAChCI,IAAI,CAAC,EAAA,CAAA,CACLJ,SAAS,CAAC,CAAA,EAAG,GACbK,WAAW,EAAA;AACpB;AAEA;;qGAIA,MAAMC,qBAAqB,OAAOC,OAAAA,GAAAA;AAChC,IAAA,IAAI,CAACA,OAAAA,IAAW,CAACA,OAAAA,CAAQX,KAAK,EAAE;QAC9B,OAAO,IAAA;AACT,IAAA;IAEA,IAAI;QACF,OAAO,MAAMY,aAAAA,CAAcD,OAAAA,CAAQX,KAAK,CAAA;AAC1C,IAAA,CAAA,CAAE,OAAM;QACN,OAAO,IAAA;AACT,IAAA;AACF;AAEA,MAAMa,cAAc,CAACC,MAAAA,GAAAA;IACnB,OAAO;AAAI,QAAA,GAAA,IAAIC,UAAAA,CAAWD,MAAAA;AAAQ,KAAA,CAACR,GAAG,CAAC,CAACU,CAAAA,GAAMA,CAAAA,CAAEC,QAAQ,CAAC,EAAA,CAAA,CAAIC,QAAQ,CAAC,CAAA,EAAG,GAAA,CAAA,CAAA,CAAMV,IAAI,CAAC,EAAA,CAAA;AACtF,CAAA;AACA,MAAMI,gBAAgB,OAAOO,OAAAA,GAAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAW,IAAIC,WAAAA,EAAAA,CAAcC,MAAM,CAACH,OAAAA,CAAAA;AAC1C,IAAA,MAAMI,aAAa,MAAMC,MAAAA,CAAOC,MAAM,CAACC,MAAM,CAAC,SAAA,EAAWN,QAAAA,CAAAA;AAEzD,IAAA,OAAOP,WAAAA,CAAYU,UAAAA,CAAAA;AACrB,CAAA;;;;"}
|