@strapi/admin 4.2.0-beta.3 → 4.2.1-alpha.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/admin/src/app.js +4 -7
- package/admin/src/components/ConfigurationsProvider/index.js +51 -0
- package/admin/src/components/ConfigurationsProvider/reducer.js +28 -0
- package/admin/src/components/LeftMenu/index.js +12 -2
- package/admin/src/components/Providers/index.js +8 -4
- package/admin/src/components/UnauthenticatedLogo/index.js +4 -2
- package/admin/src/hooks/useFetchMarketplaceProviders/index.js +23 -0
- package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +11 -0
- package/admin/src/pages/Admin/index.js +5 -15
- package/admin/src/pages/App/index.js +9 -18
- package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch/EmptyPluginGrid.js → EmptyNpmPackageSearch/EmptyNpmPackageGrid.js} +1 -1
- package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch → EmptyNpmPackageSearch}/index.js +6 -4
- package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/InstallPluginButton.js +0 -0
- package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/index.js +22 -10
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -0
- package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +12 -5
- package/admin/src/pages/MarketplacePage/index.js +99 -37
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +85 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/init.js +13 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +43 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +118 -0
- package/admin/src/pages/{App → SettingsPage/pages/ApplicationInfosPage/components/LogoInput}/reducer.js +13 -7
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +25 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +67 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +176 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +82 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +51 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +97 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +85 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +28 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +153 -91
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +16 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +3 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +17 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +76 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +17 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +21 -0
- package/admin/src/reducers.js +2 -4
- package/admin/src/translations/en.json +33 -3
- package/admin/src/translations/pl.json +264 -12
- package/admin/src/translations/vi.json +17 -17
- package/build/1856.6a94980b.chunk.js +172 -0
- package/build/2077.5456ccd1.chunk.js +194 -0
- package/build/2758.9475712b.chunk.js +162 -0
- package/build/2912.dd031292.chunk.js +253 -0
- package/build/4715.4588fdf5.chunk.js +385 -0
- package/build/4800.d3ebc81d.chunk.js +1 -0
- package/build/4982.c57c5675.chunk.js +308 -0
- package/build/7197.47565569.chunk.js +113 -0
- package/build/{6229.a5cca9f2.chunk.js → 7589.77ef4fbf.chunk.js} +2 -2
- package/build/{210.014495c1.chunk.js → 7757.f6eb5e92.chunk.js} +58 -58
- package/build/7841.9e9cf739.chunk.js +253 -0
- package/build/8681.aec05472.chunk.js +163 -0
- package/build/9066.2847fdff.chunk.js +101 -0
- package/build/{4073.41ac1235.chunk.js → 9115.623dc4f7.chunk.js} +1 -1
- package/build/9158.e48d88af.chunk.js +503 -0
- package/build/{7191.3bde3cbf.chunk.js → 9298.cb3b6bc1.chunk.js} +112 -113
- package/build/9420.ba035f29.chunk.js +508 -0
- package/build/948.d64fb515.chunk.js +2 -0
- package/build/Admin-authenticatedApp.63a5061a.chunk.js +80 -0
- package/build/{Admin_homePage.f157e33e.chunk.js → Admin_homePage.447df176.chunk.js} +2 -2
- package/build/Admin_marketplace.8a503eec.chunk.js +11 -0
- package/build/Admin_pluginsPage.91a96fa5.chunk.js +1 -0
- package/build/{Admin_profilePage.62c203ad.chunk.js → Admin_profilePage.249cbfc9.chunk.js} +2 -2
- package/build/Admin_settingsPage.0d138832.chunk.js +180 -0
- package/build/{admin-edit-roles-page.94e1403b.chunk.js → admin-edit-roles-page.7c2c9752.chunk.js} +1 -1
- package/build/admin-edit-users.b835bc48.chunk.js +11 -0
- package/build/admin-users.19900b75.chunk.js +12 -0
- package/build/api-tokens-create-page.8d299dde.chunk.js +1 -0
- package/build/api-tokens-edit-page.3e453fc1.chunk.js +1 -0
- package/build/{api-tokens-list-page.340750a6.chunk.js → api-tokens-list-page.872c3800.chunk.js} +1 -1
- package/build/{codemirror-css.b467b1de.chunk.js → codemirror-css.98490df3.chunk.js} +2 -2
- package/build/{codemirror-javacript.41bdefda.chunk.js → codemirror-javacript.cafbda9c.chunk.js} +1 -1
- package/build/codemirror-theme.b3c64617.chunk.js +34 -0
- package/build/{content-manager.6cdcfb6e.chunk.js → content-manager.002bfd99.chunk.js} +16 -16
- package/build/content-type-builder.a0450dfe.chunk.js +141 -0
- package/build/{cropper-css.ecc0d670.chunk.js → cropper-css.0055cd53.chunk.js} +2 -2
- package/build/email-settings-page.1f235173.chunk.js +103 -0
- package/build/en-json.0a5ba154.chunk.js +1 -0
- package/build/{fontawesome-css-all.04f33619.chunk.js → fontawesome-css-all.b88d464e.chunk.js} +3 -3
- package/build/{fontawesome-css.477ba714.chunk.js → fontawesome-css.a92a7b6c.chunk.js} +2 -2
- package/build/highlight.js.9d8ef460.chunk.js +86 -0
- package/build/i18n-settings-page.06e88cf2.chunk.js +101 -0
- package/build/index.html +1 -1
- package/build/main.e3a13431.js +8404 -0
- package/build/pl-json.f65302c2.chunk.js +1 -0
- package/build/{runtime~main.e7611418.js → runtime~main.dacf1aff.js} +2 -2
- package/build/sso-settings-page.a7c2e854.chunk.js +1 -0
- package/build/upload-settings.4ee2f135.chunk.js +101 -0
- package/build/upload.0d4153e8.chunk.js +105 -0
- package/build/users-advanced-settings-page.747b2ec1.chunk.js +101 -0
- package/build/users-email-settings-page.8b9a266d.chunk.js +1 -0
- package/build/users-providers-settings-page.fc9d8f9d.chunk.js +1 -0
- package/build/{users-roles-settings-page.988ebc3b.chunk.js → users-roles-settings-page.1bf4ffc5.chunk.js} +2 -2
- package/build/vi-json.bf3424be.chunk.js +1 -0
- package/build/webhook-edit-page.142b23ac.chunk.js +23 -0
- package/build/webhook-list-page.671582a0.chunk.js +133 -0
- package/index.js +239 -53
- package/package.json +8 -12
- package/scripts/build.js +3 -17
- package/server/config/admin-actions.js +14 -0
- package/server/controllers/admin.js +29 -12
- package/server/policies/index.js +0 -1
- package/server/routes/admin.js +28 -9
- package/server/routes/serve-admin-panel.js +1 -1
- package/server/services/index.js +1 -0
- package/server/services/project-settings.js +173 -0
- package/server/utils/index.d.ts +2 -0
- package/server/validation/project-settings.js +39 -0
- package/webpack.alias.js +30 -19
- package/webpack.config.js +5 -28
- package/admin/src/pages/App/constants.js +0 -1
- package/admin/src/tsconfig.json +0 -10
- package/build/1709.ceed0e18.chunk.js +0 -503
- package/build/1856.521a99fd.chunk.js +0 -172
- package/build/20.cf744c35.chunk.js +0 -308
- package/build/2077.51485bfb.chunk.js +0 -194
- package/build/2135.95ee6de1.chunk.js +0 -162
- package/build/2524.688d0355.chunk.js +0 -1
- package/build/2912.79c2b3c8.chunk.js +0 -253
- package/build/4715.77e04177.chunk.js +0 -385
- package/build/4761.3eabdf46.chunk.js +0 -101
- package/build/6281.f10a7e3a.chunk.js +0 -1
- package/build/7009.79fce86d.chunk.js +0 -164
- package/build/7841.f0e7d629.chunk.js +0 -253
- package/build/7863.bc7a8f3a.chunk.js +0 -112
- package/build/9420.cb0b75e8.chunk.js +0 -508
- package/build/Admin-authenticatedApp.4ce8d292.chunk.js +0 -80
- package/build/Admin_marketplace.1e3393c9.chunk.js +0 -11
- package/build/Admin_pluginsPage.788fb2f6.chunk.js +0 -1
- package/build/Admin_settingsPage.924a7816.chunk.js +0 -170
- package/build/admin-edit-users.6c2bf718.chunk.js +0 -10
- package/build/admin-users.e03db115.chunk.js +0 -11
- package/build/api-tokens-create-page.787ab302.chunk.js +0 -1
- package/build/api-tokens-edit-page.e4010c0c.chunk.js +0 -1
- package/build/codemirror-theme.cf9f9eb6.chunk.js +0 -34
- package/build/content-type-builder.e73879b9.chunk.js +0 -141
- package/build/email-settings-page.f67d13b2.chunk.js +0 -103
- package/build/en-json.3e1a222e.chunk.js +0 -1
- package/build/highlight.js.3381ffc3.chunk.js +0 -86
- package/build/i18n-settings-page.6b67cb75.chunk.js +0 -101
- package/build/main.45472ea9.js +0 -8404
- package/build/pl-json.94f05d2c.chunk.js +0 -1
- package/build/sso-settings-page.e9034e22.chunk.js +0 -1
- package/build/upload-settings.3db55de0.chunk.js +0 -101
- package/build/upload.070c189b.chunk.js +0 -105
- package/build/users-advanced-settings-page.a23cda17.chunk.js +0 -101
- package/build/users-email-settings-page.0a096388.chunk.js +0 -1
- package/build/users-providers-settings-page.bfe7755a.chunk.js +0 -1
- package/build/vi-json.3d14e91e.chunk.js +0 -1
- package/build/webhook-edit-page.2fa94db3.chunk.js +0 -23
- package/build/webhook-list-page.b594db49.chunk.js +0 -133
- package/server/policies/isTelemetryEnabled.js +0 -16
- package/utils/create-cache-dir.js +0 -161
- package/utils/get-custom-app-config-file.js +0 -23
- package/utils/get-custom-webpack-config.js +0 -38
- package/utils/get-plugins-path.js +0 -26
- package/utils/index.js +0 -13
- package/utils/should-build-admin.js +0 -52
- package/utils/watch-admin-files.js +0 -59
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3278],{50576:n=>{n.exports=JSON.parse('{"Analytics":"Ph\xE2n T\xEDch","Auth.components.Oops.text":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n \u0111\xE3 b\u1ECB kho\xE1","Auth.components.Oops.text.admin":"N\u1EBFu c\xF3 s\u1EF1 nh\u1EA7m l\u1EABn, h\xE3y li\xEAn h\u1EC7 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB","Auth.form.button.forgot-password":"G\u1EEDi Email","Auth.form.button.go-home":"QUAY V\u1EC0 TRANG CH\u1EE6","Auth.form.button.login":"\u0110\u0103ng nh\u1EADp","Auth.form.button.login.providers.error":"Kh\xF4ng th\u1EC3 k\u1EBFt n\u1ED1i b\u1EA1n v\u1EDBi d\u1ECBch v\u1EE5 \u0111\xE3 ch\u1ECDn.","Auth.form.button.login.strapi":"\u0110\u0103ng nh\u1EADp v\u1EDBi Strapi","Auth.form.button.password-recovery":"Kh\xF4i ph\u1EE5c m\u1EADt kh\u1EA9u","Auth.form.button.register":"S\u1EB5n s\xE0ng \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u","Auth.form.confirmPassword.label":"Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u","Auth.form.currentPassword.label":"M\u1EADt kh\u1EA9u hi\u1EC7n t\u1EA1i","Auth.form.email.label":"Email","Auth.form.email.placeholder":"kai@doe.com","Auth.form.error.blocked":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n b\u1ECB kh\xF3a b\u1EDFi ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB.","Auth.form.error.code.provide":"M\xE3 sai \u0111\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p.","Auth.form.error.confirmed":"Email c\u1EE7a t\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n ch\u01B0a \u0111\u01B0\u1EE3c x\xE1c nh\u1EADn.","Auth.form.error.email.invalid":"Email sai.","Auth.form.error.email.provide":"Vui l\xF2ng cung c\u1EA5p t\xEAn \u0111\u0103ng nh\u1EADp ho\u1EB7c email.","Auth.form.error.email.taken":"Email \u0111\xE3 \u0111\u01B0\u1EE3c d\xF9ng.","Auth.form.error.invalid":"\u0110\u1ECBnh danh ho\u1EB7c m\u1EADt kh\u1EA9u sai.","Auth.form.error.params.provide":"Tham s\u1ED1 sai \u0111\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p.","Auth.form.error.password.format":"M\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n kh\xF4ng th\u1EC3 ch\u1EE9a k\xFD t\u1EF1 `$` h\u01A1n ba l\u1EA7n","Auth.form.error.password.local":"Ng\u01B0\u1EDDi d\xF9ng n\xE0y ch\u01B0a t\u1EEBng \u0111\u1EB7t m\u1EADt kh\u1EA9u c\u1EE5c b\u1ED9, vui l\xF2ng \u0111\u0103ng nh\u1EADp th\xF4ng qua nh\xE0 cung c\u1EA5p \u0111\xE3 d\xF9ng trong l\xFAc t\u1EA1o t\xE0i kho\u1EA3n ban \u0111\u1EA7u","Auth.form.error.password.matching":"Nh\u1EEFng m\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp.","Auth.form.error.password.provide":"Vui l\xF2ng cung c\u1EA5p m\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n.","Auth.form.error.ratelimit":"Th\u1EED qu\xE1 nhi\u1EC1u l\u1EA7n, vui l\xF2ng th\u1EED l\u1EA1i trong m\u1ED9t ph\xFAt","Auth.form.error.user.not-exist":"Email n\xE0y ch\u01B0a t\u1ED3n t\u1EA1i.","Auth.form.error.username.taken":"T\xEAn \u0111\u0103ng nh\u1EADp \u0111\xE3 b\u1ECB l\u1EA5y.","Auth.form.firstname.label":"H\u1ECD","Auth.form.firstname.placeholder":"v.d. Kai","Auth.form.forgot-password.email.label":"Nh\u1EADp email c\u1EE7a b\u1EA1n","Auth.form.forgot-password.email.label.success":"Email \u0111\xE3 g\u1EEDi th\xE0nh c\xF4ng \u0111\u1EBFn","Auth.form.lastname.label":"T\xEAn","Auth.form.lastname.placeholder":"v.d. Doe","Auth.form.password.hide-password":"\u1EA8n m\u1EADt kh\u1EA9u","Auth.form.password.hint":"M\u1EADt kh\u1EA9u ph\u1EA3i ch\u1EE9a \xEDt nh\u1EA5t 8 k\xFD t\u1EF1, 1 vi\u1EBFt hoa, 1 vi\u1EBFt th\u01B0\u1EDDng, v\xE0 1 s\u1ED1","Auth.form.password.show-password":"Hi\u1EC3n th\u1ECB password","Auth.form.register.news.label":"C\u1EADp nh\u1EADt cho t\xF4i v\u1EC1 ch\u1EE9c n\u0103ng m\u1EDBi v\xE0 nh\u1EEFng c\u1EA3i thi\u1EC7n s\u1EAFp t\u1EDBi (th\xF4ng qua vi\u1EC7c n\xE0y b\u1EA1n \u0111\xE3 ch\u1EA5p nh\u1EADn {terms} v\xE0 {policy}).","Auth.form.register.subtitle":"Th\xF4ng tin c\u1EE7a b\u1EA1n ch\u1EC9 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 \u0111\u0103ng nh\u1EADp v\xE0o trang qu\u1EA3n tr\u1ECB. T\u1EA5t c\u1EA3 c\xE1c d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c l\u01B0u \u1EDF c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","Auth.form.rememberMe.label":"Nh\u1EDB t\xF4i","Auth.form.username.label":"T\xEAn \u0111\u0103ng nh\u1EADp","Auth.form.username.placeholder":"Kai Doe","Auth.form.welcome.subtitle":"\u0110\u0103ng nh\u1EADp v\xE0o t\xE0i kho\u1EA3n Strapi c\u1EE7a b\u1EA1n","Auth.form.welcome.title":"Ch\xE0o m\u1EEBng!","Auth.link.forgot-password":"Qu\xEAn m\u1EADt kh\u1EA9u?","Auth.link.ready":"S\u1EB5n s\xE0ng \u0111\u0103ng nh\u1EADp?","Auth.link.signin":"\u0110\u0103ng nh\u1EADp","Auth.link.signin.account":"\u0110\xE3 c\xF3 t\xE0i kho\u1EA3n?","Auth.login.sso.divider":"Ho\u1EB7c \u0111\u0103ng nh\u1EADp v\u1EDBi","Auth.login.sso.loading":"\u0110ang t\u1EA3i c\xE1c d\u1ECBch v\u1EE5 cung c\u1EA5p...","Auth.login.sso.subtitle":"\u0110\u0103ng nh\u1EADp qua SSO","Auth.privacy-policy-agreement.policy":"ch\xEDnh s\xE1ch b\u1EA3o m\u1EADt","Auth.privacy-policy-agreement.terms":"c\xE1c \u0111i\u1EC1u kho\u1EA3n","Auth.reset-password.title":"\u0110\u1EB7t l\u1EA1i m\u1EADt kh\u1EA9u","Content Manager":"Qu\u1EA3n L\xFD N\u1ED9i Dung","Documentation":"T\xE0i li\u1EC7u","Email":"Email","Files Upload":"T\u1EA3i T\xE2p Tin L\xEAn","HomePage.helmet.title":"Trang ch\u1EE7","HomePage.roadmap":"Xem l\u1ED9 tr\xECnh c\u1EE7a ch\xFAng t\xF4i","HomePage.welcome.congrats":"Ch\xFAc m\u1EEBng!","HomePage.welcome.congrats.content":"B\u1EA1n \u0111\xE3 \u0111\u0103ng nh\u1EADp nh\u01B0 l\xE0 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB \u0111\u1EA7u ti\xEAn. \u0110\u1EC3 kh\xE1m ph\xE1 nh\u1EEFng t\xEDnh n\u0103ng m\u1EA1nh m\u1EBD \u0111\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi Strapi.","New entry":"B\u1EA3n ghi m\u1EDBi","Password":"M\u1EADt Kh\u1EA9u","Provider":"Nh\xE0 Cung C\u1EA5p","ResetPasswordToken":"C\xE0i L\u1EA1i Chu\u1ED7i Kh\xF3a M\u1EADt Kh\u1EA9u","Role":"Vai tr\xF2","Username":"T\xEAn \u0111\u0103ng nh\u1EADp","Users":"Ng\u01B0\u1EDDi d\xF9ng","Users & Permissions":"Ng\u01B0\u1EDDi d\xF9ng v\xE0 Ph\xE2n quy\u1EC1n","app.components.BlockLink.code":"Code v\xED d\u1EE5","app.components.Button.cancel":"H\u1EE7y b\u1ECF","app.components.ComingSoonPage.comingSoon":"S\u1EAFp c\xF3","app.components.DownloadInfo.download":"\u0110ang t\u1EA3i v\u1EC1","app.components.DownloadInfo.text":"Vi\u1EC7c n\xE0y c\xF3 th\u1EC3 t\u1ED1n m\u1ED9t ph\xFAt. C\u1EA3m \u01A1n b\u1EA1n v\xEC s\u1EF1 ki\xEAn nh\u1EABn.","app.components.EmptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0o","app.components.HomePage.button.blog":"XEM TH\xCAM TR\xCAN BLOG","app.components.HomePage.community":"T\xECm c\u1ED9ng \u0111\u1ED3ng tr\xEAn web","app.components.HomePage.community.content":"Th\u1EA3o lu\u1EADn v\u1EDBi th\xE0nh vi\xEAn, ng\u01B0\u1EDDi \u0111\xF3ng g\xF3p v\xE0 l\u1EADp tr\xECnh vi\xEAn tr\xEAn nh\u1EEFng k\xEAnh kh\xE1c nhau.","app.components.HomePage.welcome":"Ch\xE0o m\u1EEBng b\u1EA1n l\xEAn t\xE0u!","app.components.HomePage.welcome.again":"Ch\xE0o m\u1EEBng ","app.components.HomePage.welcomeBlock.content":"Ch\xFAng t\xF4i h\u1EA1nh ph\xFAc khi c\xF3 b\u1EA1n l\xE0 m\u1ED9t ph\u1EA7n c\u1EE7a c\u1ED9ng \u0111\u1ED3ng. Ch\xFAng t\xF4i li\xEAn t\u1EE5c t\xECm ki\u1EBFm s\u1EF1 ph\u1EA3n h\u1ED3i, do \u0111\xF3 b\u1EA1n c\xF3 th\u1EC3 Li\xEAn h\u1EC7 tr\u1EF1c ti\u1EBFp v\u1EDBi ch\xFAng t\xF4i tr\xEAn ","app.components.HomePage.welcomeBlock.content.again":"Ch\xFAng t\xF4i hi v\u1ECDng b\u1EA1n c\xF3 ti\u1EBFn tri\u1EC3n tr\xEAn d\u1EF1 \xE1n c\u1EE7a b\u1EA1n... B\u1EA1n t\u1EF1 do \u0111\u1ECDc tin t\u1EE9c m\u1EDBi nh\u1EA5t v\u1EC1 Strapi. Ch\xFAng t\xF4i \u0111ang c\u1ED1 g\u1EAFng h\u1EBFt m\u1EE9c \u0111\u1EC3 c\u1EA3i thi\u1EC7n s\u1EA3n ph\u1EA9m d\u1EF1a tr\xEAn ph\u1EA3n h\u1ED3i c\u1EE7a b\u1EA1n.","app.components.HomePage.welcomeBlock.content.issues":"v\u1EA5n \u0111\u1EC1.","app.components.HomePage.welcomeBlock.content.raise":" ho\u1EB7c n\xEAu l\xEAn ","app.components.ImgPreview.hint":"K\xE9o v\xE0 th\u1EA3 t\u1EADp tin c\u1EE7a b\u1EA1n v\xE0o khu v\u1EF1c n\xE0y ho\u1EB7c {browse} \u0111\u1EC3 t\xECm t\u1EADp tin t\u1EA3i l\xEAn","app.components.ImgPreview.hint.browse":"duy\u1EC7t","app.components.InputFile.newFile":"Th\xEAm t\u1EADp tin m\u1EDBi","app.components.InputFileDetails.open":"M\u1EDF ra \u1EDF th\u1EBB m\u1EDBi","app.components.InputFileDetails.originalName":"T\xEAn g\u1ED1c:","app.components.InputFileDetails.remove":"Xo\xE1 t\u1EADp tin n\xE0y","app.components.InputFileDetails.size":"K\xEDch th\u01B0\u1EDBc:","app.components.InstallPluginPage.Download.description":"N\xF3 s\u1EBD t\u1ED1n m\u1ED9t v\xE0i gi\xE2y \u0111\u1EC3 t\u1EA3i v\u1EC1 v\xE0 c\xE0i \u0111\u1EB7t plugin.","app.components.InstallPluginPage.Download.title":"\u0110ang t\u1EA3i v\u1EC1...","app.components.InstallPluginPage.description":"M\u1EDF r\u1ED9ng \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n d\u1EC5 d\xE0ng","app.components.LeftMenuFooter.help":"Gi\xFAp \u0111\u1EE1","app.components.LeftMenuFooter.poweredBy":"Cung c\u1EA5p b\u1EDFi ","app.components.LeftMenuLinkContainer.configuration":"C\xE1c c\u1EA5u h\xECnh","app.components.LeftMenuLinkContainer.general":"Chung","app.components.LeftMenuLinkContainer.noPluginsInstalled":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.LeftMenuLinkContainer.plugins":"Plugins","app.components.ListPluginsPage.description":"Danh s\xE1ch plugins \u0111\xE3 c\xE0i trong d\u1EF1 \xE1n.","app.components.ListPluginsPage.helmet.title":"Danh s\xE1ch plugins","app.components.Logout.logout":"\u0110\u0103ng xu\u1EA5t","app.components.Logout.profile":"H\u1ED3 s\u01A1","app.components.NotFoundPage.back":"Tr\u1EDF v\u1EC1 trang ch\u1EE7","app.components.NotFoundPage.description":"Kh\xF4ng T\xECm Th\u1EA5y","app.components.Official":"Ch\xEDnh Th\u1EE9c","app.components.Onboarding.label.completed":"% \u0111\xE3 ho\xE0n th\xE0nh","app.components.Onboarding.title":"Videos B\u1EAFt \u0110\u1EA7u","app.components.PluginCard.Button.label.download":"T\u1EA3i v\u1EC1","app.components.PluginCard.Button.label.install":"\u0110\xE3 \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"Ch\u1EE9c n\u0103ng autoReload kh\xF4ng ho\u1EA1t \u0111\u1ED9ng. Vui l\xF2ng ch\u1EA1y \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n v\u1EDBi `yarn develop`.","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"T\xF4i hi\u1EC3u!","app.components.PluginCard.PopUpWarning.install.impossible.environment":"V\xEC nh\u1EEFng l\xFD do b\u1EA3o m\u1EADt, ch\u1EC9 m\u1ED9t plugin c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c t\u1EA3i v\u1EC1 trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n.","app.components.PluginCard.PopUpWarning.install.impossible.title":"T\u1EA3i v\u1EC1 kh\xF4ng kh\u1EA3 thi","app.components.PluginCard.compatible":"T\u01B0\u01A1ng th\xEDch v\u1EDBi \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n","app.components.PluginCard.compatibleCommunity":"T\u01B0\u01A1ng th\xEDch v\u1EDBi c\u1ED9ng \u0111\u1ED3ng","app.components.PluginCard.more-details":"Th\xEAm chi ti\u1EBFt","app.components.listPlugins.button":"Th\xEAm m\u1EDBi Plugin","app.components.listPlugins.title.none":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.listPluginsPage.deletePlugin.error":"M\u1ED9t l\u1ED7i x\u1EA3y ra trong khi g\u1EE1 b\u1ECF plugin","app.containers.App.notification.error.init":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi g\u1EEDi y\xEAu c\u1EA7u \u0111\u1EBFn API","app.utils.SelectOption.defaultMessage":" ","app.utils.defaultMessage":" ","app.utils.placeholder.defaultMessage":" ","components.AutoReloadBlocker.description":"Ch\u1EA1y Strapi v\u1EDBi m\u1ED9t trong c\xE1c l\u1EC7nh sau:","components.AutoReloadBlocker.header":"T\xEDnh n\u0103ng T\u1EA3i l\u1EA1i b\u1ECB b\u1EAFt bu\u1ED9c cho plugin n\xE0y.","components.ErrorBoundary.title":"\u0110i\u1EC1u g\xEC \u0111\xF3 kh\xF4ng \u1ED5n...","components.Input.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","components.Input.error.attribute.taken":"Tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"Nh\u1EEFng m\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp","components.Input.error.validation.email":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 email","components.Input.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 JSON","components.Input.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao.","components.Input.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i.","components.Input.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p.","components.Input.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn.","components.Input.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","components.Input.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","components.Input.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","components.InputSelect.option.placeholder":"Ch\u1ECDn \u1EDF \u0111\xE2y","components.ListRow.empty":"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u \u0111\u1EC3 hi\u1EC3n th\u1ECB.","components.OverlayBlocker.description":"B\u1EA1n \u0111ang d\xF9ng m\u1ED9t t\xEDnh n\u0103ng m\xE0 n\xF3 c\u1EA7n ph\u1EA3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i m\xE1y ch\u1EE7. Vui l\xF2ng ch\u1EDD cho m\xE1y ch\u1EE7 kh\u1EDFi \u0111\u1ED9ng xong.","components.OverlayBlocker.description.serverError":"M\xE1y ch\u1EE7 n\xEAn \u0111\u01B0\u1EE3c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i, vui l\xF2ng ki\u1EC3m tra nh\u1EADt k\xFD c\u1EE7a b\u1EA1n trong c\u1EEDa s\u1ED5 l\u1EC7nh","components.OverlayBlocker.title":"\u0110ang \u0111\u1EE3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i...","components.OverlayBlocker.title.serverError":"Vi\u1EC7c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i t\u1ED1n nhi\u1EC1u th\u1EDDi gian h\u01A1n mong \u0111\u1EE3i","components.PageFooter.select":"b\u1EA3n ghi tr\xEAn trang","components.ProductionBlocker.description":"V\xEC l\xFD do an to\xE0n ch\xFAng t\xF4i ph\u1EA3i v\xF4 hi\u1EC7u ho\xE1 plugin trong c\xE1c m\xF4i tr\u01B0\u1EDDng kh\xE1c","components.ProductionBlocker.header":"Plugin n\xE0y ch\u1EC9 hi\u1EC7u l\u1EE9c trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n","components.Wysiwyg.collapse":"Co l\u1EA1i","components.Wysiwyg.selectOptions.H1":"Ti\xEAu \u0111\u1EC1 H1","components.Wysiwyg.selectOptions.H2":"Ti\xEAu \u0111\u1EC1 H2","components.Wysiwyg.selectOptions.H3":"Ti\xEAu \u0111\u1EC1 H3","components.Wysiwyg.selectOptions.H4":"Ti\xEAu \u0111\u1EC1 H4","components.Wysiwyg.selectOptions.H5":"Ti\xEAu \u0111\u1EC1 H5","components.Wysiwyg.selectOptions.H6":"Ti\xEAu \u0111\u1EC1 H6","components.Wysiwyg.selectOptions.title":"Th\xEAm m\u1ED9t ti\xEAu \u0111\u1EC1","components.WysiwygBottomControls.charactersIndicators":"k\xFD t\u1EF1","components.WysiwygBottomControls.fullscreen":"Gi\xE3n ra","components.WysiwygBottomControls.uploadFiles":"K\xE9o v\xE0 th\u1EA3 c\xE1c t\u1EADp tin, d\xE1n t\u1EEB b\u1ED9 nh\u1EDB t\u1EA1m hay {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"ch\u1ECDn ch\xFAng","components.popUpWarning.message":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 b\u1EA1n mu\u1ED1n xo\xE1 n\xF3?","components.popUpWarning.title":"Vui l\xF2ng x\xE1c nh\u1EADn","content-manager.EditRelations.title":"D\u1EEF Li\u1EC7u Quan H\u1EC7","content-manager.components.AddFilterCTA.add":"L\u1ECDc","content-manager.components.AddFilterCTA.hide":"L\u1ECDc","content-manager.components.DraggableAttr.edit":"Nh\u1EA5n \u0111\u1EC3 ch\u1EC9nh s\u1EEDa","content-manager.components.EmptyAttributesBlock.button":"\u0110\u1EBFn trang c\xE0i \u0111\u1EB7t","content-manager.components.EmptyAttributesBlock.description":"B\u1EA1n c\xF3 th\u1EC3 thay \u0111\u1ED5i c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.components.FilterOptions.button.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.FiltersPickWrapper.PluginHeader.description":"C\xE0i \u0111\u1EB7t c\xE1c \u0111i\u1EC1u ki\u1EC7n \u0111\u1EC3 \xE1p d\u1EE5ng cho vi\u1EC7c l\u1ECDc c\xE1c b\u1EA3n ghi","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"C\xE1c b\u1ED9 l\u1ECDc","content-manager.components.FiltersPickWrapper.hide":"\u1EA8n \u0111i","content-manager.components.LimitSelect.itemsPerPage":"S\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi trong trang","content-manager.components.Search.placeholder":"T\xECm m\u1ED9t b\u1EA3n ghi...","content-manager.components.TableDelete.delete":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.TableDelete.deleteSelected":"X\xF3a \u0111\xE3 ch\u1ECDn","content-manager.components.TableEmpty.withFilters":"Kh\xF4ng c\xF3 {contentType} v\u1EDBi b\u1ED9 l\u1ECDc \u0111\u01B0\u1EE3c d\xF9ng","content-manager.components.TableEmpty.withSearch":"Kh\xF4ng c\xF3 {contentType} t\u01B0\u01A1ng \u1EE9ng v\u1EDBi t\xECm ki\u1EBFm ({search})...","content-manager.components.TableEmpty.withoutFilter":"Kh\xF4ng c\xF3 {contentType}...","content-manager.containers.Edit.Link.Layout":"C\u1EA5u h\xECnh b\u1ED1 c\u1EE5c","content-manager.containers.Edit.addAnItem":"Th\xEAm m\u1ED9t b\u1EA3n ghi...","content-manager.containers.Edit.clickToJump":"Nh\u1EA5n \u0111\u1EC3 nh\u1EA3y v\xE0o b\u1EA3n ghi","content-manager.containers.Edit.delete":"X\xF3a","content-manager.containers.Edit.editing":"\u0110\u0103ng s\u1EEDa...","content-manager.containers.Edit.pluginHeader.title.new":"T\u1EA1o m\u1ED9t B\u1EA3n ghi","content-manager.containers.Edit.reset":"L\xE0m l\u1EA1i","content-manager.containers.Edit.returnList":"Tr\u1EDF v\u1EC1 danh s\xE1ch","content-manager.containers.Edit.seeDetails":"Chi ti\u1EBFt","content-manager.containers.Edit.submit":"L\u01B0u","content-manager.containers.EditView.notification.errors":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","content-manager.containers.Home.introduction":"\u0110\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c b\u1EA3n ghi c\u1EE7a b\u1EA1n, \u0111i \u0111\u1EBFn li\xEAn k\u1EBFt \u1EDF menu b\xEAn tr\xE1i. Plugin n\xE0y ch\u01B0a c\xF3 c\xE1ch th\xEDch h\u1EE3p \u0111\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c c\xE0i \u0111\u1EB7t v\xE0 n\xF3 v\u1EABn \u0111ang \u0111\u01B0\u1EE3c ph\xE1t tri\u1EC3n.","content-manager.containers.Home.pluginHeaderDescription":"Qu\u1EA3n l\xFD c\xE1c b\u1EA3n ghi th\xF4ng qua m\u1ED9t giao di\u1EC7n m\u1EA1nh v\xE0 \u0111\u1EB9p.","content-manager.containers.Home.pluginHeaderTitle":"Qu\u1EA3n L\xFD N\u1ED9i Dung","content-manager.containers.List.errorFetchRecords":"L\u1ED7i","content-manager.containers.ListPage.displayedFields":"C\xE1c tr\u01B0\u1EDDng \u0111\xE3 \u0111\u01B0\u1EE3c tr\xECnh b\xE0y","content-manager.containers.SettingPage.attributes":"C\xE1c tr\u01B0\u1EDDng thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.attributes.description":"\u0110\u1ECBnh ngh\u0129a th\u1EE9 t\u1EF1 c\xE1c thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.editSettings.description":"K\xE9o & th\u1EA3 c\xE1c tr\u01B0\u1EDDng \u0111\u1EC3 x\xE2y d\u1EF1ng b\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.editSettings.entry.title":"T\xEAn b\u1EA3n ghi","content-manager.containers.SettingPage.editSettings.entry.title.description":"C\xE0i \u0111\u1EB7t tr\u01B0\u1EDDng \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong b\u1EA3n ghi c\u1EE7a b\u1EA1n","content-manager.containers.SettingPage.editSettings.title":"Ch\u1EC9nh s\u1EEDa hi\u1EC3n th\u1ECB (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.layout":"B\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.listSettings.title":"Hi\u1EC3n th\u1ECB danh s\xE1ch (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.relations":"C\xE1c tr\u01B0\u1EDDng Quan H\u1EC7","content-manager.containers.SettingPage.settings":"C\xE1c c\xE0i \u0111\u1EB7t","content-manager.containers.SettingViewModel.pluginHeader.title":"Qu\u1EA3n L\xFD N\u1ED9i Dung - {name}","content-manager.containers.SettingsPage.Block.contentType.description":"C\u1EA5u h\xECnh c\xE1c c\xE0i \u0111\u1EB7t ri\xEAng","content-manager.containers.SettingsPage.Block.generalSettings.title":"Chung","content-manager.containers.SettingsView.list.title":"C\xE1c c\u1EA5u h\xECnh v\u1EC1 Tr\xECnh b\xE0y","content-manager.emptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng n\xE0o h\u1EBFt","content-manager.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","content-manager.error.attribute.taken":"T\xEAn tr\u01B0\u1EDDng n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.model.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\u1EA5u h\xECnh n\u1ED9i dung.","content-manager.error.record.create":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA1o b\u1EA3n ghi.","content-manager.error.record.delete":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi xo\xE1 b\u1EA3n ghi.","content-manager.error.record.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 b\u1EA3n ghi.","content-manager.error.record.update":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi c\u1EADp nh\u1EADt b\u1EA3n ghi.","content-manager.error.records.count":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 s\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi.","content-manager.error.records.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\xE1c b\u1EA3n ghi.","content-manager.error.schema.generation":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi qu\xE1 tr\xECnh t\u1EA1o ra l\u01B0\u1EE3c \u0111\u1ED3.","content-manager.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 JSON","content-manager.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao.","content-manager.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i.","content-manager.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p.","content-manager.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn.","content-manager.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","content-manager.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","content-manager.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","content-manager.form.Input.bulkActions":"K\xEDch ho\u1EA1t ho\u1EA1t \u0111\u1ED9ng g\u1ED9p","content-manager.form.Input.defaultSort":"Thu\u1ED9c t\xEDnh s\u1EAFp x\u1EBFp m\u1EB7c \u0111\u1ECBnh","content-manager.form.Input.description":"M\xF4 t\u1EA3","content-manager.form.Input.description.placeholder":"T\xEAn hi\u1EC3n th\u1ECB trong h\u1ED3 s\u01A1","content-manager.form.Input.editable":"Tr\u01B0\u1EDDng ch\u1EC9nh s\u1EEDa \u0111\u01B0\u1EE3c","content-manager.form.Input.filters":"K\xEDch ho\u1EA1t c\xE1c b\u1ED9 l\u1ECDc","content-manager.form.Input.label":"Nh\xE3n","content-manager.form.Input.label.inputDescription":"Gi\xE1 tr\u1ECB n\xE0y ghi \u0111\xE8 l\xEAn nh\xE3n \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong ph\u1EA7n \u0111\u1EA7u c\u1EE7a b\u1EA3ng","content-manager.form.Input.pageEntries":"B\u1EA3n ghi trong trang","content-manager.form.Input.placeholder":"Ch\u1ED7 ch\u1EDD gi\xE1 tr\u1ECB","content-manager.form.Input.placeholder.placeholder":"Gi\xE1 tr\u1ECB tuy\u1EC7t v\u1EDDi c\u1EE7a t\xF4i","content-manager.form.Input.search":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm","content-manager.form.Input.search.field":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm cho tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.sort.field":"K\xEDch ho\u1EA1t s\u1EAFp x\u1EBFp tr\xEAn tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.wysiwyg":"Tr\xECnh b\xE0y nh\u01B0 l\xE0 WYSIWYG","content-manager.global.displayedFields":"C\xE1c Tr\u01B0\u1EDDng \u0110\xE3 \u0110\u01B0\u1EE3c Tr\xECnh B\xE0y","content-manager.groups":"Nh\xF3m","content-manager.groups.numbered":"Nh\xF3m ({number})","content-manager.notification.error.displayedFields":"B\u1EA1n c\u1EA7n tr\xECnh b\xE0y \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.error.relationship.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 m\u1ED1i quan h\u1EC7.","content-manager.notification.info.SettingPage.disableSort":"B\u1EA1n c\u1EA7n c\xF3 m\u1ED9t thu\u1ED9c t\xEDnh \u0111\u01B0\u1EE3c ph\xE9p s\u1EAFp x\u1EBFp","content-manager.notification.info.minimumFields":"B\u1EA1n c\u1EA7n hi\u1EC3n th\u1ECB \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.upload.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA3i l\xEAn c\xE1c t\u1EADp tin c\u1EE7a b\u1EA1n","content-manager.pageNotFound":"Kh\xF4ng T\xECm Th\u1EA5y Trang","content-manager.plugin.description.long":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.plugin.description.short":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.popUpWarning.bodyMessage.contentType.delete":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 c\xE1c b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.warning.cancelAllSettings":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n h\u1EE7y b\u1ECF c\xE1c thay \u0111\u1ED5i c\u1EE7a b\u1EA1n?","content-manager.popUpWarning.warning.updateAllSettings":"N\xF3 s\u1EBD thay \u0111\u1ED5i t\u1EA5t c\u1EA3 c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.success.record.delete":"\u0110\xE3 xo\xE1","content-manager.success.record.save":"\u0110\xE3 l\u01B0u","form.button.done":"Ho\xE0n th\xE0nh","notification.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra","notification.error.layout":"Kh\xF4ng th\u1EC3 kh\xF4i ph\u1EE5c","notification.form.error.fields":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","request.error.model.unknown":"C\u1EA5u tr\xFAc n\xE0y kh\xF4ng t\u1ED3n t\u1EA1i"}')}}]);
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{26972:(V,x,o)=>{"use strict";o.d(x,{Z:()=>it});var e=o(32735),u=o(10938),v=o(16540),l=o(84968),a=o(5141),s=o(41072),g=o(16558),P=o(60216),c=o.n(P),I=o(59716),Ee=o.n(I),ye=o(98221),Y=o.n(ye),be=o(46824),Pe=o.n(be),q=o(11856),F=o(9808),_=o(44526),w=o(90662),K=o(37178),M=o(78330),j=o(83281),L=o(5636),ee=o(20001),T=o(95602),te=o(19615),Ce=o(35980),Oe=o(52111),Me=o(23940),Se=o.n(Me);const H=({disabledEvents:n,name:t,events:r,inputValue:i,handleChange:f,handleChangeAll:y})=>{const C=r.filter(m=>!n.includes(m)),d=i.length===C.length,h=i.length>0,b=({target:{name:m}})=>{y({target:{name:m,value:!d}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(Oe.Checkbox,{indeterminate:h&&!d,"aria-label":"Select all entries",name:t,onChange:b,value:d},Se()(t))),r.map(m=>e.createElement("td",{key:m},e.createElement(Ce.BaseCheckbox,{disabled:n.includes(m),"aria-label":m,name:m,value:i.includes(m),onValueChange:E=>f({target:{name:m,value:E}})}))))};H.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange:()=>{},handleChangeAll:()=>{}},H.propTypes={disabledEvents:c().array,events:c().array,inputValue:c().array,handleChange:c().func,handleChangeAll:c().func,name:c().string.isRequired};const xe=H,Ie=n=>n.reduce((t,r)=>{const i=r.split(".")[0];return t[i]||(t[i]=[]),t[i].push(r),t},{}),we=te.default.table`
|
|
2
|
-
td {
|
|
3
|
-
height: ${52/16}rem;
|
|
4
|
-
width: 10%;
|
|
5
|
-
vertical-align: middle;
|
|
6
|
-
text-align: center;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
tbody tr:nth-child(odd) {
|
|
10
|
-
background: ${({theme:n})=>n.colors.neutral100};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
tbody tr td:first-child {
|
|
14
|
-
padding-left: ${({theme:n})=>n.spaces[7]};
|
|
15
|
-
}
|
|
16
|
-
`,z={headers:{default:["Settings.webhooks.events.create","Settings.webhooks.events.update","app.utils.delete"],draftAndPublish:["Settings.webhooks.events.create","Settings.webhooks.events.update","app.utils.delete","app.utils.publish","app.utils.unpublish"]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},ne=({isDraftAndPublish:n})=>{const t=n?z.headers.draftAndPublish:z.headers.default,r=n?z.events.draftAndPublish:z.events.default,{formatMessage:i}=(0,L.useIntl)(),{values:f,handleChange:y}=(0,j.useFormikContext)(),C="events",d=f.events,h=[],b=Ie(d),m=({target:{name:p,value:A}})=>{let O=new Set(d);A?O.add(p):O.delete(p),y({target:{name:C,value:Array.from(O)}})},E=({target:{name:p,value:A}})=>{let O=new Set(d);A?r[p].forEach(k=>{h.includes(k)||O.add(k)}):r[p].forEach(k=>O.delete(k)),y({target:{name:C,value:Array.from(O)}})};return e.createElement(w.Stack,{spacing:1},e.createElement(ee.FieldLabel,null,i({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(we,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),t.map(p=>p==="app.utils.publish"||p==="app.utils.unpublish"?e.createElement("td",{key:p,title:i({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for contents with Draft/Publish system enabled"})},e.createElement(T.Typography,{variant:"sigma",textColor:"neutral600"},i({id:p,defaultMessage:p}))):e.createElement("td",{key:p},e.createElement(T.Typography,{variant:"sigma",textColor:"neutral600"},i({id:p,defaultMessage:p})))))),e.createElement("tbody",null,Object.keys(r).map(p=>e.createElement(xe,{disabledEvents:h,key:p,name:p,events:r[p],inputValue:b[p],handleChange:m,handleChangeAll:E})))))};ne.propTypes={isDraftAndPublish:c().bool.isRequired};const Te=ne;var Re=o(32365),Ae=o.n(Re),B=o(19192),ke=o(74201),re=o(14715);const ae=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];var De=Object.defineProperty,je=Object.defineProperties,Le=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,oe=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable,se=(n,t,r)=>t in n?De(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,Ve=(n,t)=>{for(var r in t||(t={}))oe.call(t,r)&&se(n,r,t[r]);if(W)for(var r of W(t))le.call(t,r)&&se(n,r,t[r]);return n},Be=(n,t)=>je(n,Le(t)),Fe=(n,t)=>{var r={};for(var i in n)oe.call(n,i)&&t.indexOf(i)<0&&(r[i]=n[i]);if(n!=null&&W)for(var i of W(n))t.indexOf(i)<0&&le.call(n,i)&&(r[i]=n[i]);return r};const N=n=>{var t=n,{name:r,onChange:i,value:f}=t,y=Fe(t,["name","onChange","value"]);const[C,d]=(0,e.useState)(f?[...ae,f]:ae),h=m=>{i({target:{name:r,value:m}})},b=m=>{d(E=>[...E,m]),i({target:{name:r,value:m}})};return e.createElement(re.CreatableCombobox,Be(Ve({},y),{onChange:h,onCreateOption:b,placeholder:"",value:f}),C.map(m=>e.createElement(re.ComboboxOption,{value:m,key:m},m)))};N.defaultProps={value:void 0},N.propTypes={name:c().string.isRequired,onChange:c().func.isRequired,value:c().string};const ze=N,We=()=>{const{formatMessage:n}=(0,L.useIntl)(),{values:t,errors:r}=(0,j.useFormikContext)();return e.createElement(w.Stack,{spacing:1},e.createElement(ee.FieldLabel,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(F.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(j.FieldArray,{validateOnChange:!1,name:"headers",render:({push:i,remove:f})=>{var y;return e.createElement(M.Grid,{gap:4},(y=t.headers)==null?void 0:y.map((C,d)=>{var h,b,m,E,p,A,O,k,$,G;return e.createElement(e.Fragment,{key:d},e.createElement(M.GridItem,{col:6},e.createElement(j.Field,{as:ze,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:((b=(h=r.headers)==null?void 0:h[d])==null?void 0:b.key)&&n({id:(m=r.headers[d])==null?void 0:m.key,defaultMessage:(E=r.headers[d])==null?void 0:E.key})})),e.createElement(M.GridItem,{col:6},e.createElement(B.Flex,{alignItems:"flex-end"},e.createElement(F.Box,{style:{flex:1}},e.createElement(j.Field,{as:K.TextInput,"aria-label":`row ${d+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:((A=(p=r.headers)==null?void 0:p[d])==null?void 0:A.value)&&n({id:(O=r.headers[d])==null?void 0:O.value,defaultMessage:(k=r.headers[d])==null?void 0:k.value})})),e.createElement(B.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:(G=($=r.headers)==null?void 0:$[d])!=null&&G.value?0:5},e.createElement(u.RemoveRoundedButton,{onClick:()=>t.headers.length!==1&&f(d),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))}),e.createElement(M.GridItem,{col:12},e.createElement(ke.TextButton,{type:"button",onClick:()=>{i({key:"",value:""})},startIcon:e.createElement(Ae(),null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))}})))};var Ue=o(55633),ie=o.n(Ue),$e=o(22301),Ge=o.n($e);const U=te.default.svg(({theme:n,color:t})=>`
|
|
17
|
-
width: ${12/16}rem;
|
|
18
|
-
height: ${12/16}rem;
|
|
19
|
-
|
|
20
|
-
path {
|
|
21
|
-
fill: ${n.colors[t]};
|
|
22
|
-
}
|
|
23
|
-
`),Z=({isPending:n,statusCode:t})=>{const{formatMessage:r}=(0,L.useIntl)();return n?e.createElement(w.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:Ge()}),e.createElement(T.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):t>=200&&t<300?e.createElement(w.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:Y(),color:"success700"}),e.createElement(T.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):t>=300?e.createElement(w.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:ie(),color:"danger700"}),e.createElement(T.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",t)):null};Z.propTypes={isPending:c().bool.isRequired,statusCode:c().number},Z.defaultProps={statusCode:void 0};const X=({statusCode:n,message:t})=>{const{formatMessage:r}=(0,L.useIntl)();return n>=200&&n<300?e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement(T.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement(B.Flex,{maxWidth:(0,u.pxToRem)(250),justifyContent:"flex-end",title:t},e.createElement(T.Typography,{ellipsis:!0,textColor:"neutral600"},t))):null};X.propTypes={statusCode:c().number,message:c().string},X.defaultProps={statusCode:void 0,message:void 0};const ue=({onCancel:n})=>{const{formatMessage:t}=(0,L.useIntl)();return e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(w.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(T.Typography,{textColor:"neutral400"},t({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(U,{as:ie(),color:"neutral400"}))))};ue.propTypes={onCancel:c().func.isRequired};const Q=({isPending:n,onCancel:t,response:r})=>{const{statusCode:i,message:f}=r,{formatMessage:y}=(0,L.useIntl)();return e.createElement(F.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(M.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(M.GridItem,{col:3},e.createElement(T.Typography,null,y({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(M.GridItem,{col:3},e.createElement(Z,{isPending:n,statusCode:i})),e.createElement(M.GridItem,{col:6},n?e.createElement(ue,{onCancel:t}):e.createElement(X,{statusCode:i,message:f}))))};Q.defaultProps={isPending:!1,onCancel:()=>{},response:{}},Q.propTypes={isPending:c().bool,onCancel:c().func,response:c().object};const Ke=Q;var R=o(5173);const He=new RegExp("(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)"),Ne=new RegExp("(^$)|((https?://.*)(d*)/?(.*))"),Ze=R.Ry().shape({name:R.Z_(u.translatedErrors.string).required(u.translatedErrors.required).matches(He,u.translatedErrors.regex),url:R.Z_(u.translatedErrors.string).required(u.translatedErrors.required).matches(Ne,u.translatedErrors.regex),headers:R.Vo(n=>{let t=R.IX();if(n.length===1){const{key:r,value:i}=n[0];if(!r&&!i)return t}return t.of(R.Ry().shape({key:R.Z_().required(u.translatedErrors.required),value:R.Z_().required(u.translatedErrors.required)}))}),events:R.IX()}),J=({handleSubmit:n,data:t,triggerWebhook:r,isCreating:i,isTriggering:f,triggerResponse:y,isDraftAndPublishEvents:C})=>{const{formatMessage:d}=(0,L.useIntl)(),[h,b]=(0,e.useState)(!1);return e.createElement(j.Formik,{onSubmit:n,initialValues:{name:(t==null?void 0:t.name)||"",url:(t==null?void 0:t.url)||"",headers:Object.keys((t==null?void 0:t.headers)||[]).length?Object.entries(t.headers).map(([m,E])=>({key:m,value:E})):[{key:"",value:""}],events:(t==null?void 0:t.events)||[]},validationSchema:Ze,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:m,errors:E})=>e.createElement(u.Form,{noValidate:!0},e.createElement(q.HeaderLayout,{primaryAction:e.createElement(w.Stack,{horizontal:!0,spacing:2},e.createElement(_.Button,{onClick:()=>{r(),b(!0)},variant:"tertiary",startIcon:e.createElement(Pe(),null),disabled:i||f,size:"L"},d({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(_.Button,{startIcon:e.createElement(Y(),null),onClick:m,type:"submit",size:"L"},d({id:"global.save",defaultMessage:"Save"}))),title:i?d({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):t==null?void 0:t.name,navigationAction:e.createElement(u.Link,{startIcon:e.createElement(Ee(),null),to:"/settings/webhooks"},d({id:"global.back",defaultMessage:"Back"}))}),e.createElement(q.ContentLayout,null,e.createElement(w.Stack,{spacing:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(Ke,{isPending:f,response:y,onCancel:()=>b(!1)})),e.createElement(F.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(w.Stack,{spacing:6},e.createElement(M.Grid,{gap:6},e.createElement(M.GridItem,{col:6},e.createElement(j.Field,{as:K.TextInput,name:"name",error:E.name&&d({id:E.name}),label:d({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(M.GridItem,{col:12},e.createElement(j.Field,{as:K.TextInput,name:"url",error:E.url&&d({id:E.url}),label:d({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(We,null),e.createElement(Te,{isDraftAndPublish:C})))))))};J.propTypes={data:c().object,handleSubmit:c().func.isRequired,triggerWebhook:c().func.isRequired,isCreating:c().bool.isRequired,isDraftAndPublishEvents:c().bool.isRequired,isTriggering:c().bool.isRequired,triggerResponse:c().object},J.defaultProps={data:void 0,triggerResponse:void 0};const Xe=J;var Qe=o(92891),Je=Object.defineProperty,Ye=Object.defineProperties,qe=Object.getOwnPropertyDescriptors,de=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,ce=(n,t,r)=>t in n?Je(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,me=(n,t)=>{for(var r in t||(t={}))_e.call(t,r)&&ce(n,r,t[r]);if(de)for(var r of de(t))et.call(t,r)&&ce(n,r,t[r]);return n},tt=(n,t)=>Ye(n,qe(t));const nt=n=>{const t=me({},n);return(0,Qe.set)(t,"headers",rt(n.headers)),t},rt=n=>n.reduce((t,r)=>{const{key:i,value:f}=r;return i!==""?tt(me({},t),{[i]:f}):t},{}),ge=nt;var fe=o(98399),at=Object.defineProperty,pe=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable,he=(n,t,r)=>t in n?at(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,st=(n,t)=>{for(var r in t||(t={}))ot.call(t,r)&&he(n,r,t[r]);if(pe)for(var r of pe(t))lt.call(t,r)&&he(n,r,t[r]);return n},ve=(n,t,r)=>new Promise((i,f)=>{var y=h=>{try{d(r.next(h))}catch(b){f(b)}},C=h=>{try{d(r.throw(h))}catch(b){f(b)}},d=h=>h.done?i(h.value):Promise.resolve(h.value).then(y,C);d((r=r.apply(n,t)).next())});const it=()=>{const{params:{id:n}}=(0,a.useRouteMatch)("/settings/webhooks/:id"),{replace:t}=(0,a.useHistory)(),{lockApp:r,unlockApp:i}=(0,u.useOverlayBlocker)(),f=(0,u.useNotification)(),y=(0,l.useQueryClient)(),{isLoading:C,collectionTypes:d}=(0,s.bP)(),h=n==="create",b=(0,e.useCallback)(S=>ve(void 0,null,function*(){const[D,{data:mt}]=yield(0,u.to)((0,u.request)(`/admin/webhooks/${S}`,{method:"GET"}));return D?(f({type:"warning",message:{id:"notification.error"}}),null):mt}),[f]),{isLoading:m,data:E}=(0,l.useQuery)(["get-webhook",n],()=>b(n),{enabled:!h}),{isLoading:p,data:A,isIdle:O,mutate:k}=(0,l.useMutation)(()=>g.be.post(`/admin/webhooks/${n}/trigger`)),$=()=>k(null,{onError:()=>{f({type:"warning",message:{id:"notification.error"}})}}),G=(0,l.useMutation)(S=>(0,u.request)("/admin/webhooks",{method:"POST",body:S})),ut=(0,l.useMutation)(({id:S,body:D})=>(0,u.request)(`/admin/webhooks/${S}`,{method:"PUT",body:D})),dt=S=>ve(void 0,null,function*(){h?(r(),G.mutate(ge(S),{onSuccess:D=>{f({type:"success",message:{id:"Settings.webhooks.created"}}),t(`/settings/webhooks/${D.data.id}`),i()},onError:D=>{f({type:"warning",message:{id:"notification.error"}}),fe.log(D),i()}})):(r(),ut.mutate({id:n,body:ge(S)},{onSuccess:()=>{y.invalidateQueries(["get-webhook",n]),f({type:"success",message:{id:"notification.form.success.fields"}}),i()},onError:D=>{f({type:"warning",message:{id:"notification.error"}}),fe.log(D),i()}}))}),ct=(0,e.useMemo)(()=>d.some(S=>S.options.draftAndPublish===!0),[d]);return m||C?e.createElement(u.LoadingIndicatorPage,null):e.createElement(v.Main,null,e.createElement(u.SettingsPageTitle,{name:"Webhooks"}),e.createElement(Xe,st({},{handleSubmit:dt,data:E,triggerWebhook:$,isCreating:h,isTriggering:p,isTriggerIdle:O,triggerResponse:A==null?void 0:A.data.data,isDraftAndPublishEvents:ct})))}},12935:(V,x,o)=>{"use strict";o.r(x),o.d(x,{default:()=>g});var e=o(32735),u=o(10938),v=o.n(u),l=o(2805),a=o(26972);const g=()=>e.createElement(u.CheckPagePermissions,{permissions:l.Z.settings.webhooks.create},e.createElement(a.Z,null))},91849:(V,x,o)=>{"use strict";o.r(x),o.d(x,{default:()=>g});var e=o(32735),u=o(10938),v=o.n(u),l=o(2805),a=o(26972);const g=()=>e.createElement(u.CheckPagePermissions,{permissions:l.Z.settings.webhooks.update},e.createElement(a.Z,null))},22301:function(V,x,o){(function(e,u){V.exports=u(o(32735))})(this,function(e){return function(u){var v={};function l(a){if(v[a])return v[a].exports;var s=v[a]={i:a,l:!1,exports:{}};return u[a].call(s.exports,s,s.exports,l),s.l=!0,s.exports}return l.m=u,l.c=v,l.d=function(a,s,g){l.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:g})},l.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},l.t=function(a,s){if(1&s&&(a=l(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var g=Object.create(null);if(l.r(g),Object.defineProperty(g,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var P in a)l.d(g,P,function(c){return a[c]}.bind(null,P));return g},l.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return l.d(s,"a",s),s},l.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},l.p="",l(l.s=108)}({0:function(u,v){u.exports=e},108:function(u,v,l){"use strict";l.r(v);var a=l(0);function s(){return(s=Object.assign||function(g){for(var P=1;P<arguments.length;P++){var c=arguments[P];for(var I in c)Object.prototype.hasOwnProperty.call(c,I)&&(g[I]=c[I])}return g}).apply(this,arguments)}v.default=function(g){return a.createElement("svg",s({width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g),a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.057 18c.552 0 1 .451 1 .997v4.006a1 1 0 01-.941.995l-.059.002c-.552 0-1-.451-1-.997v-4.006a1 1 0 01.941-.995l.06-.002zm-3.06-.736l.055.03c.478.276.64.89.367 1.364l-2.002 3.468a1 1 0 01-1.31.394l-.055-.03a1.002 1.002 0 01-.368-1.363l2.003-3.469a1 1 0 011.31-.394zm7.42.394l2.002 3.468a1 1 0 01-.314 1.331l-.053.033a1.002 1.002 0 01-1.365-.363l-2.003-3.469a1 1 0 01.314-1.33l.054-.034a1.002 1.002 0 011.364.364zm-9.548-2.66l.033.054c.276.478.11 1.091-.364 1.364L3.07 18.42a1 1 0 01-1.331-.314l-.033-.053a1.001 1.001 0 01.364-1.365l3.468-2.003a1 1 0 011.33.314zm11.79-.313l3.468 2.002a1 1 0 01.393 1.31l-.03.055c-.276.478-.89.64-1.363.367l-3.469-2.003a1 1 0 01-.394-1.309l.03-.055c.276-.479.89-.64 1.364-.367zm4.344-3.628a1 1 0 01.995.941l.002.06c0 .551-.451 1-.997 1h-4.006a1 1 0 01-.995-.942L18 12.057c0-.552.451-1 .997-1h4.006zm-18 0a1 1 0 01.995.941l.002.06c0 .551-.451 1-.998 1H.998a1 1 0 01-.996-.942L0 12.057c0-.552.451-1 .998-1h4.004zm17.454-5.059l.033.054c.277.478.11 1.091-.363 1.365l-3.469 2.002a1 1 0 01-1.33-.314l-.034-.053a1.002 1.002 0 01.364-1.365l3.468-2.003a1 1 0 011.331.314zM3.07 5.684l3.468 2.003a1 1 0 01.394 1.31l-.03.055c-.276.478-.89.64-1.364.367L2.07 7.417a1 1 0 01-.394-1.31l.03-.055c.276-.479.89-.64 1.364-.368zm14.926-4.008l.056.03c.478.276.64.89.367 1.364l-2.003 3.468a1 1 0 01-1.309.394l-.055-.03a1.002 1.002 0 01-.367-1.364l2.002-3.468a1 1 0 011.31-.394zm-10.58.394L9.42 5.538a1 1 0 01-.314 1.33l-.053.034a1.002 1.002 0 01-1.365-.364L5.684 3.07a1 1 0 01.314-1.331l.054-.033a1.002 1.002 0 011.365.364zM12.058 0c.552 0 1 .451 1 .998v4.004a1 1 0 01-.941.996L12.057 6c-.552 0-1-.451-1-.998V.998a1 1 0 01.941-.996l.06-.002z",fill:"#212134"}))}}})})},46824:function(V,x,o){(function(e,u){V.exports=u(o(32735))})(this,function(e){return function(u){var v={};function l(a){if(v[a])return v[a].exports;var s=v[a]={i:a,l:!1,exports:{}};return u[a].call(s.exports,s,s.exports,l),s.l=!0,s.exports}return l.m=u,l.c=v,l.d=function(a,s,g){l.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:g})},l.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},l.t=function(a,s){if(1&s&&(a=l(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var g=Object.create(null);if(l.r(g),Object.defineProperty(g,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var P in a)l.d(g,P,function(c){return a[c]}.bind(null,P));return g},l.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return l.d(s,"a",s),s},l.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},l.p="",l(l.s=145)}({0:function(u,v){u.exports=e},145:function(u,v,l){"use strict";l.r(v);var a=l(0);function s(){return(s=Object.assign||function(g){for(var P=1;P<arguments.length;P++){var c=arguments[P];for(var I in c)Object.prototype.hasOwnProperty.call(c,I)&&(g[I]=c[I])}return g}).apply(this,arguments)}v.default=function(g){return a.createElement("svg",s({width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g),a.createElement("path",{d:"M4 20.252V3.748a1 1 0 011.507-.862l14.028 8.252a1 1 0 010 1.724L5.507 21.113A1 1 0 014 20.252z",fill:"#212134"}))}}})})}}]);
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{55470:(R,H,f)=>{"use strict";R.exports=f(17173)},17173:function(R,H,f){(function(l,y){R.exports=y(f(32735),f(19615))})(this,function(l,y){return function(a){var u={};function e(o){if(u[o])return u[o].exports;var i=u[o]={i:o,l:!1,exports:{}};return a[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=a,e.c=u,e.d=function(o,i,c){e.o(o,i)||Object.defineProperty(o,i,{enumerable:!0,get:c})},e.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},e.t=function(o,i){if(1&i&&(o=e(o)),8&i||4&i&&typeof o=="object"&&o&&o.__esModule)return o;var c=Object.create(null);if(e.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:o}),2&i&&typeof o!="string")for(var s in o)e.d(c,s,function(t){return o[t]}.bind(null,s));return c},e.n=function(o){var i=o&&o.__esModule?function(){return o.default}:function(){return o};return e.d(i,"a",i),i},e.o=function(o,i){return Object.prototype.hasOwnProperty.call(o,i)},e.p="",e(e.s=121)}({0:function(a,u,e){a.exports=e(19)()},1:function(a,u){a.exports=l},10:function(a,u,e){var o=e(25),i=e(26),c=e(22),s=e(27);a.exports=function(t,b){return o(t)||i(t,b)||c(t,b)||s()},a.exports.default=a.exports,a.exports.__esModule=!0},121:function(a,u,e){"use strict";e.r(u),e.d(u,"Switch",function(){return B});var o,i,c=e(5),s=e.n(c),t=e(4),b=e.n(t),h=e(3),g=e.n(h),k=e(1),O=e.n(k),n=e(0),r=e.n(n),d=e(2),w=e.n(d),j=e(9),I=e(6),J=["label","onChange","onLabel","offLabel","selected","visibleLabels"],F=w.a.div(o||(o=g()([`
|
|
2
|
-
background: `,`;
|
|
3
|
-
border: none;
|
|
4
|
-
border-radius: 16px;
|
|
5
|
-
position: relative;
|
|
6
|
-
height: `,`rem;
|
|
7
|
-
width: `,`rem;
|
|
8
|
-
|
|
9
|
-
& span {
|
|
10
|
-
font-size: `,`;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&:before {
|
|
14
|
-
content: '';
|
|
15
|
-
background: `,`;
|
|
16
|
-
width: 1rem;
|
|
17
|
-
height: 1rem;
|
|
18
|
-
border-radius: 50%;
|
|
19
|
-
position: absolute;
|
|
20
|
-
transition: all 0.5s;
|
|
21
|
-
left: `,`;
|
|
22
|
-
top: `,`;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@media (prefers-reduced-motion: reduce) {
|
|
26
|
-
&:before {
|
|
27
|
-
transition: none;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
`])),function(T){return T.theme.colors.danger500},1.5,2.5,function(T){return T.visibleLabels?"1rem":0},function(T){return T.theme.colors.neutral0},function(T){return T.theme.spaces[1]},function(T){return T.theme.spaces[1]}),_=w.a.button(i||(i=g()([`
|
|
31
|
-
background: transparent;
|
|
32
|
-
padding: 0;
|
|
33
|
-
border: none;
|
|
34
|
-
|
|
35
|
-
&[aria-checked='true'] `,` {
|
|
36
|
-
background: `,`;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
&[aria-checked='true'] `,`:before {
|
|
40
|
-
transform: translateX(1rem);
|
|
41
|
-
}
|
|
42
|
-
`])),F,function(T){return T.theme.colors.success500},F),B=O.a.forwardRef(function(T,q){var ee=T.label,ne=T.onChange,V=T.onLabel,K=T.offLabel,G=T.selected,$=T.visibleLabels,te=b()(T,J);return O.a.createElement(_,s()({ref:q,role:"switch","aria-checked":G,"aria-label":ee,onClick:ne,visibleLabels:$,type:"button"},te),O.a.createElement(j.Flex,null,O.a.createElement(F,null,O.a.createElement("span",null,V),O.a.createElement("span",null,K)),$&&O.a.createElement(I.Box,{as:"span","aria-hidden":!0,paddingLeft:2,color:G?"success600":"danger600"},G?V:K)))});B.defaultProps={onLabel:"On",offLabel:"Off",visibleLabels:!1},B.propTypes={label:r.a.string.isRequired,offLabel:r.a.string,onChange:r.a.func.isRequired,onLabel:r.a.string,selected:r.a.bool.isRequired,visibleLabels:r.a.bool},B.displayName="Switch"},13:function(a,u){function e(o){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(a.exports=e=function(i){return typeof i},a.exports.default=a.exports,a.exports.__esModule=!0):(a.exports=e=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},a.exports.default=a.exports,a.exports.__esModule=!0),e(o)}a.exports=e,a.exports.default=a.exports,a.exports.__esModule=!0},19:function(a,u,e){"use strict";var o=e(20);function i(){}function c(){}c.resetWarningCache=i,a.exports=function(){function s(h,g,k,O,n,r){if(r!==o){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}function t(){return s}s.isRequired=s;var b={array:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:t,element:s,elementType:s,instanceOf:t,node:s,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:c,resetWarningCache:i};return b.PropTypes=b,b}},2:function(a,u){a.exports=y},20:function(a,u,e){"use strict";a.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},21:function(a,u){a.exports=function(e,o){(o==null||o>e.length)&&(o=e.length);for(var i=0,c=new Array(o);i<o;i++)c[i]=e[i];return c},a.exports.default=a.exports,a.exports.__esModule=!0},22:function(a,u,e){var o=e(21);a.exports=function(i,c){if(i){if(typeof i=="string")return o(i,c);var s=Object.prototype.toString.call(i).slice(8,-1);return s==="Object"&&i.constructor&&(s=i.constructor.name),s==="Map"||s==="Set"?Array.from(i):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?o(i,c):void 0}},a.exports.default=a.exports,a.exports.__esModule=!0},24:function(a,u){a.exports=function(e,o){if(e==null)return{};var i,c,s={},t=Object.keys(e);for(c=0;c<t.length;c++)i=t[c],o.indexOf(i)>=0||(s[i]=e[i]);return s},a.exports.default=a.exports,a.exports.__esModule=!0},25:function(a,u){a.exports=function(e){if(Array.isArray(e))return e},a.exports.default=a.exports,a.exports.__esModule=!0},26:function(a,u){a.exports=function(e,o){var i=e==null?null:typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(i!=null){var c,s,t=[],b=!0,h=!1;try{for(i=i.call(e);!(b=(c=i.next()).done)&&(t.push(c.value),!o||t.length!==o);b=!0);}catch(g){h=!0,s=g}finally{try{b||i.return==null||i.return()}finally{if(h)throw s}}return t}},a.exports.default=a.exports,a.exports.__esModule=!0},27:function(a,u){a.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
43
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},a.exports.default=a.exports,a.exports.__esModule=!0},3:function(a,u){a.exports=function(e,o){return o||(o=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(o)}}))},a.exports.default=a.exports,a.exports.__esModule=!0},4:function(a,u,e){var o=e(24);a.exports=function(i,c){if(i==null)return{};var s,t,b=o(i,c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(i);for(t=0;t<h.length;t++)s=h[t],c.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(i,s)&&(b[s]=i[s])}return b},a.exports.default=a.exports,a.exports.__esModule=!0},5:function(a,u){function e(){return a.exports=e=Object.assign||function(o){for(var i=1;i<arguments.length;i++){var c=arguments[i];for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(o[s]=c[s])}return o},a.exports.default=a.exports,a.exports.__esModule=!0,e.apply(this,arguments)}a.exports=e,a.exports.default=a.exports,a.exports.__esModule=!0},6:function(a,u,e){"use strict";e.r(u),e.d(u,"Box",function(){return O});var o,i=e(3),c=e.n(i),s=e(0),t=e.n(s),b=e(2),h=e.n(b),g=e(7),k={color:!0},O=h.a.div.withConfig({shouldForwardProp:function(n,r){return!k[n]&&r(n)}})(o||(o=c()([`
|
|
44
|
-
// Font
|
|
45
|
-
font-size: `,`;
|
|
46
|
-
|
|
47
|
-
// Colors
|
|
48
|
-
background: `,`;
|
|
49
|
-
color: `,`;
|
|
50
|
-
|
|
51
|
-
// Spaces
|
|
52
|
-
`,`
|
|
53
|
-
`,`
|
|
54
|
-
`,`
|
|
55
|
-
`,`
|
|
56
|
-
`,`
|
|
57
|
-
`,`
|
|
58
|
-
`,`
|
|
59
|
-
`,`
|
|
60
|
-
`,`
|
|
61
|
-
|
|
62
|
-
// Responsive hiding
|
|
63
|
-
`,`
|
|
64
|
-
`,`
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// Borders
|
|
68
|
-
border-radius: `,`;
|
|
69
|
-
border-style: `,`;
|
|
70
|
-
border-width: `,`;
|
|
71
|
-
border-color: `,`;
|
|
72
|
-
border: `,`;
|
|
73
|
-
|
|
74
|
-
// Shadows
|
|
75
|
-
box-shadow: `,`;
|
|
76
|
-
|
|
77
|
-
// Handlers
|
|
78
|
-
pointer-events: `,`;
|
|
79
|
-
&:hover {
|
|
80
|
-
`,`
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Display
|
|
84
|
-
display: `,`;
|
|
85
|
-
|
|
86
|
-
// Position
|
|
87
|
-
position: `,`;
|
|
88
|
-
left: `,`;
|
|
89
|
-
right: `,`;
|
|
90
|
-
top: `,`;
|
|
91
|
-
bottom: `,`;
|
|
92
|
-
z-index: `,`;
|
|
93
|
-
overflow: `,`;
|
|
94
|
-
cursor: `,`;
|
|
95
|
-
|
|
96
|
-
// Size
|
|
97
|
-
width: `,`;
|
|
98
|
-
max-width: `,`;
|
|
99
|
-
min-width: `,`;
|
|
100
|
-
height: `,`;
|
|
101
|
-
max-height: `,`;
|
|
102
|
-
min-height: `,`;
|
|
103
|
-
|
|
104
|
-
// Animation
|
|
105
|
-
transition: `,`;
|
|
106
|
-
transform: `,`;
|
|
107
|
-
animation: `,`;
|
|
108
|
-
|
|
109
|
-
//Flexbox children props
|
|
110
|
-
flex-shrink: `,`;
|
|
111
|
-
flex-grow: `,`;
|
|
112
|
-
flex-basis: `,`;
|
|
113
|
-
flex: `,`;
|
|
114
|
-
|
|
115
|
-
// Text
|
|
116
|
-
text-align: `,`;
|
|
117
|
-
text-transform: `,`;
|
|
118
|
-
line-height: `,`;
|
|
119
|
-
|
|
120
|
-
// Cursor
|
|
121
|
-
cursor: `,`;
|
|
122
|
-
`])),function(n){var r=n.fontSize;return n.theme.fontSizes[r]||r},function(n){var r=n.theme,d=n.background;return r.colors[d]},function(n){var r=n.theme,d=n.color;return r.colors[d]},function(n){var r=n.theme,d=n.padding;return Object(g.a)("padding",d,r)},function(n){var r=n.theme,d=n.paddingTop;return Object(g.a)("padding-top",d,r)},function(n){var r=n.theme,d=n.paddingRight;return Object(g.a)("padding-right",d,r)},function(n){var r=n.theme,d=n.paddingBottom;return Object(g.a)("padding-bottom",d,r)},function(n){var r=n.theme,d=n.paddingLeft;return Object(g.a)("padding-left",d,r)},function(n){var r=n.theme,d=n.marginLeft;return Object(g.a)("margin-left",d,r)},function(n){var r=n.theme,d=n.marginRight;return Object(g.a)("margin-right",d,r)},function(n){var r=n.theme,d=n.marginTop;return Object(g.a)("margin-top",d,r)},function(n){var r=n.theme,d=n.marginBottom;return Object(g.a)("margin-bottom",d,r)},function(n){var r=n.theme;return n.hiddenS?"".concat(r.mediaQueries.tablet," { display: none; }"):void 0},function(n){var r=n.theme;return n.hiddenXS?"".concat(r.mediaQueries.mobile," { display: none; }"):void 0},function(n){var r=n.theme,d=n.hasRadius,w=n.borderRadius;return d?r.borderRadius:w},function(n){return n.borderStyle},function(n){return n.borderWidth},function(n){var r=n.borderColor;return n.theme.colors[r]},function(n){var r=n.theme,d=n.borderColor,w=n.borderStyle,j=n.borderWidth;if(d&&!w&&!j)return"1px solid ".concat(r.colors[d])},function(n){var r=n.theme,d=n.shadow;return r.shadows[d]},function(n){return n.pointerEvents},function(n){var r=n._hover,d=n.theme;return r?r(d):void 0},function(n){return n.display},function(n){return n.position},function(n){var r=n.left;return n.theme.spaces[r]||r},function(n){var r=n.right;return n.theme.spaces[r]||r},function(n){var r=n.top;return n.theme.spaces[r]||r},function(n){var r=n.bottom;return n.theme.spaces[r]||r},function(n){return n.zIndex},function(n){return n.overflow},function(n){return n.cursor},function(n){var r=n.width;return n.theme.spaces[r]||r},function(n){var r=n.maxWidth;return n.theme.spaces[r]||r},function(n){var r=n.minWidth;return n.theme.spaces[r]||r},function(n){var r=n.height;return n.theme.spaces[r]||r},function(n){var r=n.maxHeight;return n.theme.spaces[r]||r},function(n){var r=n.minHeight;return n.theme.spaces[r]||r},function(n){return n.transition},function(n){return n.transform},function(n){return n.animation},function(n){return n.shrink},function(n){return n.grow},function(n){return n.basis},function(n){return n.flex},function(n){return n.textAlign},function(n){return n.textTransform},function(n){return n.lineHeight},function(n){return n.cursor});O.displayName="Box",O.defaultProps={background:void 0,borderColor:void 0,color:void 0,hiddenS:!1,hiddenXS:!1,padding:void 0,paddingTop:void 0,paddingRight:void 0,paddingBottom:void 0,paddingLeft:void 0,hasRadius:!1,shadow:void 0,children:null,shrink:void 0,grow:void 0,basis:void 0,flex:void 0,_hover:function(){}},O.propTypes={_hover:t.a.func,background:t.a.string,basis:t.a.oneOfType([t.a.string,t.a.string]),borderColor:t.a.string,children:t.a.oneOfType([t.a.node,t.a.string]),color:t.a.string,flex:t.a.oneOfType([t.a.string,t.a.string]),grow:t.a.oneOfType([t.a.string,t.a.string]),hasRadius:t.a.bool,hiddenS:t.a.bool,hiddenXS:t.a.bool,padding:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingBottom:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingLeft:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingRight:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingTop:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),shadow:t.a.string,shrink:t.a.oneOfType([t.a.string,t.a.string])}},7:function(a,u,e){"use strict";var o=e(10),i=e.n(o),c=e(13),s=e.n(c);u.a=function(t,b,h){var g=b;if(Array.isArray(b)||s()(b)!=="object"||(g=[b==null?void 0:b.desktop,b==null?void 0:b.tablet,b==null?void 0:b.mobile]),g!==void 0){if(Array.isArray(g)){var k=g,O=i()(k,3),n=O[0],r=O[1],d=O[2],w="".concat(t,": ").concat(h.spaces[n],";");return r!==void 0&&(w+="".concat(h.mediaQueries.tablet,`{
|
|
123
|
-
`).concat(t,": ").concat(h.spaces[r],`;
|
|
124
|
-
}`)),d!==void 0&&(w+="".concat(h.mediaQueries.mobile,`{
|
|
125
|
-
`).concat(t,": ").concat(h.spaces[d],`;
|
|
126
|
-
}`)),w}var j=h.spaces[g]||g;return"".concat(t,": ").concat(j,";")}}},9:function(a,u,e){"use strict";e.r(u),e.d(u,"Flex",function(){return n});var o,i=e(3),c=e.n(i),s=e(0),t=e.n(s),b=e(2),h=e.n(b),g=e(6),k=e(7),O={direction:!0},n=h()(g.Box).withConfig({shouldForwardProp:function(r,d){return!O[r]&&d(r)}})(o||(o=c()([`
|
|
127
|
-
align-items: `,`;
|
|
128
|
-
display: `,`;
|
|
129
|
-
flex-direction: `,`;
|
|
130
|
-
flex-wrap: `,`;
|
|
131
|
-
`,`};
|
|
132
|
-
justify-content: `,`;
|
|
133
|
-
`])),function(r){return r.alignItems},function(r){return r.inline?"inline-flex":"flex"},function(r){return r.direction},function(r){return r.wrap},function(r){var d=r.gap,w=r.theme;return Object(k.a)("gap",d,w)},function(r){return r.justifyContent});n.defaultProps={alignItems:"center",basis:void 0,direction:"row",gap:void 0,inline:!1,justifyContent:void 0,reverse:!1,wrap:void 0},n.propTypes={alignItems:t.a.string,basis:t.a.oneOfType([t.a.string,t.a.number]),direction:t.a.string,gap:t.a.oneOfType([t.a.shape({desktop:t.a.number,mobile:t.a.number,tablet:t.a.number}),t.a.number,t.a.arrayOf(t.a.number),t.a.string]),inline:t.a.bool,justifyContent:t.a.string,reverse:t.a.bool,wrap:t.a.string}}})})},54999:(R,H,f)=>{"use strict";f.r(H),f.d(H,{default:()=>Ee});var l=f(32735),y=f(10938),a=f(2805),u=f(5141),e=f(5636),o=f(11856),i=f(64354),c=f(19192),s=f(90662),t=f(20763),b=f(35980),h=f(53214),g=f(95602),k=f(44526),O=f(28004),n=f(55470),r=f(16540),d=f(29270),w=f(9808),j=f(32365),I=f.n(j),J=f(97642),F=f.n(J),_=f(22081),B=f.n(_),T=f(7219),q=f.n(T),ee=f(49415),ne=f(3040),V=f.n(ne);const K={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0},$=(E,v)=>(0,ee.default)(E,m=>{switch(v.type){case"GET_DATA_SUCCEEDED":{m.webhooks=v.data,m.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{m.loadingWebhooks=!E.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{V()(m,["webhooks",...v.keys],v.value);break}case"SET_WEBHOOK_TO_DELETE":{m.webhookToDelete=v.id;break}case"SET_WEBHOOKS_TO_DELETE":{v.value?m.webhooksToDelete.push(v.id):m.webhooksToDelete=E.webhooksToDelete.filter(S=>S!==v.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{E.webhooksToDelete.length===0?m.webhooksToDelete=E.webhooks.map(S=>S.id):m.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{m.webhooks=E.webhooks.filter(S=>!E.webhooksToDelete.includes(S.id)),m.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{m.webhooks=E.webhooks.filter((S,W)=>W!==v.index),m.webhookToDelete=null;break}default:return m}});var te=f(98399),pe=Object.defineProperty,he=Object.defineProperties,me=Object.getOwnPropertyDescriptors,ae=Object.getOwnPropertySymbols,be=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,ie=(E,v,m)=>v in E?pe(E,v,{enumerable:!0,configurable:!0,writable:!0,value:m}):E[v]=m,z=(E,v)=>{for(var m in v||(v={}))be.call(v,m)&&ie(E,m,v[m]);if(ae)for(var m of ae(v))ge.call(v,m)&&ie(E,m,v[m]);return E},ve=(E,v)=>he(E,me(v)),U=(E,v,m)=>new Promise((S,W)=>{var A=D=>{try{x(m.next(D))}catch(M){W(M)}},C=D=>{try{x(m.throw(D))}catch(M){W(M)}},x=D=>D.done?S(D.value):Promise.resolve(D.value).then(A,C);x((m=m.apply(E,v)).next())});const ye=()=>{const{isLoading:E,allowedActions:{canCreate:v,canRead:m,canUpdate:S,canDelete:W}}=(0,y.useRBAC)(a.Z.settings.webhooks),A=(0,y.useNotification)(),C=(0,l.useRef)(!0),{formatMessage:x}=(0,e.useIntl)(),[D,M]=(0,l.useState)(!1),[{webhooks:Q,webhooksToDelete:X,webhookToDelete:re,loadingWebhooks:oe},P]=(0,l.useReducer)($,K),{notifyStatus:xe}=(0,d.useNotifyAT)();(0,y.useFocusWhenNavigate)();const{push:Oe}=(0,u.useHistory)(),{pathname:le}=(0,u.useLocation)(),Z=Q.length,N=X.length,se=p=>Q.findIndex(L=>L.id===p);(0,l.useEffect)(()=>(C.current=!0,()=>{C.current=!1}),[]),(0,l.useEffect)(()=>{m&&Te()},[m]);const Te=()=>U(void 0,null,function*(){try{const{data:p}=yield(0,y.request)("/admin/webhooks",{method:"GET"});C.current&&(P({type:"GET_DATA_SUCCEEDED",data:p}),xe("webhooks have been loaded"))}catch(p){te.log(p),C.current&&(p.code!==20&&A({type:"warning",message:{id:"notification.error"}}),P({type:"TOGGLE_LOADING"}))}}),we=()=>{M(p=>!p)},ke=()=>{re?Se():Le()},Se=()=>U(void 0,null,function*(){try{yield(0,y.request)(`/admin/webhooks/${re}`,{method:"DELETE"}),P({type:"WEBHOOK_DELETED",index:se(re)})}catch(p){p.code!==20&&A({type:"warning",message:{id:"notification.error"}})}M(!1)}),Le=()=>U(void 0,null,function*(){const p={ids:X};try{yield(0,y.request)("/admin/webhooks/batch-delete",{method:"POST",body:p}),C.current&&P({type:"WEBHOOKS_DELETED"})}catch(L){C.current&&L.code!==20&&A({type:"warning",message:{id:"notification.error"}})}M(!1)}),ue=p=>{M(!0),p!=="all"&&P({type:"SET_WEBHOOK_TO_DELETE",id:p})},Ce=(p,L)=>U(void 0,null,function*(){const ce=se(L),Me=Q[ce],de=[ce,"isEnabled"],fe=ve(z({},Me),{isEnabled:p});delete fe.id;try{P({type:"SET_WEBHOOK_ENABLED",keys:de,value:p}),yield(0,y.request)(`/admin/webhooks/${L}`,{method:"PUT",body:fe})}catch(je){C.current&&(P({type:"SET_WEBHOOK_ENABLED",keys:de,value:!p}),je.code!==20&&A({type:"warning",message:{id:"notification.error"}}))}}),De=()=>{P({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},Pe=(p,L)=>{P({type:"SET_WEBHOOKS_TO_DELETE",value:p,id:L})},Y=p=>{Oe(`${le}/${p}`)};return l.createElement(o.Layout,null,l.createElement(y.SettingsPageTitle,{name:"Webhooks"}),l.createElement(r.Main,{"aria-busy":E||oe},l.createElement(o.HeaderLayout,{title:x({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:x({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:v&&!oe&&l.createElement(y.LinkButton,{startIcon:l.createElement(I(),null),variant:"default",to:`${le}/create`,size:"L"},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),N>0&&W&&l.createElement(o.ActionLayout,{startActions:l.createElement(l.Fragment,null,l.createElement(g.Typography,{variant:"epsilon",textColor:"neutral600"},x({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:N})),l.createElement(k.Button,{onClick:()=>ue("all"),startIcon:l.createElement(B(),null),size:"L",variant:"danger-light"},x({id:"global.delete",defaultMessage:"Delete"})))}),l.createElement(o.ContentLayout,null,E||oe?l.createElement(w.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},l.createElement(y.LoadingIndicatorPage,null)):l.createElement(l.Fragment,null,Z>0?l.createElement(h.Table,{colCount:5,rowCount:Z+1,footer:l.createElement(h.TFooter,{onClick:()=>v?Y("create"):{},icon:l.createElement(I(),null)},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},l.createElement(h.Thead,null,l.createElement(h.Tr,null,l.createElement(h.Th,null,l.createElement(b.BaseCheckbox,{"aria-label":x({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:N>0&&N<Z,value:N===Z,onValueChange:De})),l.createElement(h.Th,{width:"20%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"global.name",defaultMessage:"Name"}))),l.createElement(h.Th,{width:"60%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),l.createElement(h.Th,{width:"20%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),l.createElement(h.Th,null,l.createElement(O.VisuallyHidden,null,x({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),l.createElement(h.Tbody,null,Q.map(p=>l.createElement(h.Tr,z({key:p.id},(0,y.onRowClick)({fn:()=>Y(p.id),condition:S})),l.createElement(h.Td,z({},y.stopPropagation),l.createElement(b.BaseCheckbox,{"aria-label":`${x({id:"global.select",defaultMessage:"Select"})} ${p.name}`,value:X==null?void 0:X.includes(p.id),onValueChange:L=>Pe(L,p.id),id:"select",name:"select"})),l.createElement(h.Td,null,l.createElement(g.Typography,{fontWeight:"semiBold",textColor:"neutral800"},p.name)),l.createElement(h.Td,null,l.createElement(g.Typography,{textColor:"neutral800"},p.url)),l.createElement(h.Td,null,l.createElement(c.Flex,z({},y.stopPropagation),l.createElement(n.Switch,{onLabel:x({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:x({id:"global.disabled",defaultMessage:"Disabled"}),label:`${p.name} ${x({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:p.isEnabled,onChange:()=>Ce(!p.isEnabled,p.id),visibleLabels:!0}))),l.createElement(h.Td,null,l.createElement(s.Stack,z({horizontal:!0,spacing:1},y.stopPropagation),S&&l.createElement(t.IconButton,{onClick:()=>{Y(p.id)},label:x({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:l.createElement(F(),null),noBorder:!0}),W&&l.createElement(t.IconButton,{onClick:()=>ue(p.id),label:x({id:"global.delete",defaultMessage:"Delete"}),icon:l.createElement(B(),null),noBorder:!0,id:`delete-${p.id}`}))))))):l.createElement(i.EmptyStateLayout,{icon:l.createElement(q(),{width:"160px"}),content:x({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:l.createElement(k.Button,{variant:"secondary",startIcon:l.createElement(I(),null),onClick:()=>v?Y("create"):{}},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))})))),l.createElement(y.ConfirmDialog,{isOpen:D,onToggleDialog:we,onConfirm:ke}))},Ee=()=>l.createElement(y.CheckPagePermissions,{permissions:a.Z.settings.webhooks.main},l.createElement(ye,null))},7219:function(R,H,f){(function(l,y){R.exports=y(f(32735))})(this,function(l){return function(y){var a={};function u(e){if(a[e])return a[e].exports;var o=a[e]={i:e,l:!1,exports:{}};return y[e].call(o.exports,o,o.exports,u),o.l=!0,o.exports}return u.m=y,u.c=a,u.d=function(e,o,i){u.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:i})},u.r=function(e){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(e,o){if(1&o&&(e=u(e)),8&o||4&o&&typeof e=="object"&&e&&e.__esModule)return e;var i=Object.create(null);if(u.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&o&&typeof e!="string")for(var c in e)u.d(i,c,function(s){return e[s]}.bind(null,c));return i},u.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(o,"a",o),o},u.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},u.p="",u(u.s=63)}({0:function(y,a){y.exports=l},63:function(y,a,u){"use strict";u.r(a);var e=u(0);function o(){return(o=Object.assign||function(i){for(var c=1;c<arguments.length;c++){var s=arguments[c];for(var t in s)Object.prototype.hasOwnProperty.call(s,t)&&(i[t]=s[t])}return i}).apply(this,arguments)}a.default=function(i){return e.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 216 120",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i),e.createElement("g",{opacity:.84,clipPath:"url(#EmptyDocuments_svg__clip0_1142_57509)"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M189.25 19.646a7.583 7.583 0 010 15.166h-43.333a7.583 7.583 0 010 15.167h23.833a7.583 7.583 0 010 15.167h-11.022c-5.28 0-9.561 3.395-9.561 7.583 0 1.956 1.063 3.782 3.19 5.48 2.017 1.608 4.824 1.817 7.064 3.096a7.583 7.583 0 01-3.754 14.174H65.75a7.583 7.583 0 010-15.166H23.5a7.583 7.583 0 110-15.167h43.333a7.583 7.583 0 100-15.167H39.75a7.583 7.583 0 110-15.166h43.333a7.583 7.583 0 010-15.167H189.25zm0 30.333a7.583 7.583 0 110 15.166 7.583 7.583 0 010-15.166z",fill:"#D9D8FF",fillOpacity:.8}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M132.561 19.646l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162zM73.162 26.33l4.97-.557-4.97.557z",fill:"#fff"}),e.createElement("path",{d:"M73.162 26.33l4.97-.557m54.429-6.127l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162z",stroke:"#7B79FF",strokeWidth:2.5}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M129.818 24.27l9.122 66.608.82 6.682c.264 2.153-1.246 4.11-3.373 4.371l-56.812 6.976c-2.127.261-4.066-1.272-4.33-3.425l-8.83-71.908a2.167 2.167 0 011.887-2.415l7.028-.863",fill:"#F0F0FF"}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M135.331 5.833H85.978a2.97 2.97 0 00-2.107.873A2.97 2.97 0 0083 8.813v82.333c0 .823.333 1.567.872 2.106a2.97 2.97 0 002.107.873h63.917a2.97 2.97 0 002.106-.873 2.97 2.97 0 00.873-2.106V23.367a2.98 2.98 0 00-.873-2.107L137.437 6.705a2.98 2.98 0 00-2.106-.872z",fill:"#fff",stroke:"#7B79FF",strokeWidth:2.5}),e.createElement("path",{d:"M135.811 7.082v12.564a3.25 3.25 0 003.25 3.25h8.595M94.644 78.146h28.167m-28.167-55.25h28.167-28.167zm0 13h46.584-46.584zm0 14.083h46.584-46.584zm0 14.084h46.584-46.584z",stroke:"#7B79FF",strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round"})),e.createElement("defs",null,e.createElement("clipPath",{id:"EmptyDocuments_svg__clip0_1142_57509"},e.createElement("path",{fill:"#fff",d:"M0 0h216v120H0z"}))))}}})})}}]);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { createPolicy } = require('@strapi/utils').policy;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* This policy is used for routes dealing with telemetry and analytics content.
|
|
7
|
-
* It will fails when the telemetry has been disabled on the server.
|
|
8
|
-
*/
|
|
9
|
-
module.exports = createPolicy({
|
|
10
|
-
name: 'admin::isTelemetryEnabled',
|
|
11
|
-
handler(_ctx, _config, { strapi }) {
|
|
12
|
-
if (strapi.telemetry.isDisabled) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
});
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const path = require('path');
|
|
4
|
-
const _ = require('lodash');
|
|
5
|
-
const fs = require('fs-extra');
|
|
6
|
-
const { isUsingTypeScript } = require('@strapi/typescript-utils');
|
|
7
|
-
const getCustomAppConfigFile = require('./get-custom-app-config-file');
|
|
8
|
-
|
|
9
|
-
const getPkgPath = name => path.dirname(require.resolve(`${name}/package.json`));
|
|
10
|
-
|
|
11
|
-
async function createPluginsJs(plugins, dest) {
|
|
12
|
-
const pluginsArray = plugins.map(({ pathToPlugin, name }) => {
|
|
13
|
-
const shortName = _.camelCase(name);
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* path.join, on windows, it uses backslashes to resolve path.
|
|
17
|
-
* The problem is that Webpack does not windows paths
|
|
18
|
-
* With this tool, we need to rely on "/" and not "\".
|
|
19
|
-
* This is the reason why '..\\..\\..\\node_modules\\@strapi\\plugin-content-type-builder/strapi-admin.js' was not working.
|
|
20
|
-
* The regexp at line 105 aims to replace the windows backslashes by standard slash so that webpack can deal with them.
|
|
21
|
-
* Backslash looks to work only for absolute paths with webpack => https://webpack.js.org/concepts/module-resolution/#absolute-paths
|
|
22
|
-
*/
|
|
23
|
-
const realPath = path
|
|
24
|
-
.join(path.relative(path.resolve(dest, 'admin', 'src'), pathToPlugin), 'strapi-admin.js')
|
|
25
|
-
.replace(/\\/g, '/');
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
name,
|
|
29
|
-
pathToPlugin: realPath,
|
|
30
|
-
shortName,
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const content = `
|
|
35
|
-
${pluginsArray
|
|
36
|
-
.map(({ pathToPlugin, shortName }) => {
|
|
37
|
-
const req = `'${pathToPlugin}'`;
|
|
38
|
-
|
|
39
|
-
return `import ${shortName} from ${req};`;
|
|
40
|
-
})
|
|
41
|
-
.join('\n')}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const plugins = {
|
|
45
|
-
${[...pluginsArray]
|
|
46
|
-
.map(({ name, shortName }) => {
|
|
47
|
-
return ` '${name}': ${shortName},`;
|
|
48
|
-
})
|
|
49
|
-
.join('\n')}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export default plugins;
|
|
53
|
-
`;
|
|
54
|
-
|
|
55
|
-
return fs.writeFile(path.resolve(dest, 'admin', 'src', 'plugins.js'), content);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
async function copyAdmin(dest) {
|
|
59
|
-
const adminPath = getPkgPath('@strapi/admin');
|
|
60
|
-
|
|
61
|
-
// TODO copy ee folders for plugins
|
|
62
|
-
await fs.copy(path.resolve(adminPath, 'ee', 'admin'), path.resolve(dest, 'ee', 'admin'));
|
|
63
|
-
|
|
64
|
-
await fs.ensureDir(path.resolve(dest, 'config'));
|
|
65
|
-
await fs.copy(path.resolve(adminPath, 'admin'), path.resolve(dest, 'admin'));
|
|
66
|
-
|
|
67
|
-
// Copy package.json
|
|
68
|
-
await fs.copy(path.resolve(adminPath, 'package.json'), path.resolve(dest, 'package.json'));
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async function createCacheDir({ appDir, plugins }) {
|
|
72
|
-
const cacheDir = path.resolve(appDir, '.cache');
|
|
73
|
-
|
|
74
|
-
const useTypeScript = await isUsingTypeScript(path.join(appDir, 'src', 'admin'), 'tsconfig.json');
|
|
75
|
-
|
|
76
|
-
const pluginsWithFront = Object.keys(plugins)
|
|
77
|
-
.filter(pluginName => {
|
|
78
|
-
const pluginInfo = plugins[pluginName];
|
|
79
|
-
return fs.existsSync(path.resolve(pluginInfo.pathToPlugin, 'strapi-admin.js'));
|
|
80
|
-
})
|
|
81
|
-
.map(name => ({ name, ...plugins[name] }));
|
|
82
|
-
|
|
83
|
-
// create .cache dir
|
|
84
|
-
await fs.emptyDir(cacheDir);
|
|
85
|
-
|
|
86
|
-
// copy admin core code
|
|
87
|
-
await copyAdmin(cacheDir);
|
|
88
|
-
|
|
89
|
-
// Retrieve the custom config file extension
|
|
90
|
-
const customAdminAppConfigFile = await getCustomAppConfigFile(appDir, useTypeScript);
|
|
91
|
-
|
|
92
|
-
if (customAdminAppConfigFile) {
|
|
93
|
-
const defaultAdminConfigFilePath = path.resolve(cacheDir, 'admin', 'src', 'app.js');
|
|
94
|
-
const customAdminAppConfigFilePath = path.join(
|
|
95
|
-
appDir,
|
|
96
|
-
'src',
|
|
97
|
-
'admin',
|
|
98
|
-
customAdminAppConfigFile
|
|
99
|
-
);
|
|
100
|
-
const dest = path.resolve(cacheDir, 'admin', 'src', customAdminAppConfigFile);
|
|
101
|
-
|
|
102
|
-
if (useTypeScript) {
|
|
103
|
-
// Remove the default config file
|
|
104
|
-
await fs.remove(defaultAdminConfigFilePath);
|
|
105
|
-
// Copy the custom one
|
|
106
|
-
await fs.copy(customAdminAppConfigFilePath, dest);
|
|
107
|
-
} else {
|
|
108
|
-
await fs.copy(customAdminAppConfigFilePath, dest);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// Copy admin extensions folder
|
|
113
|
-
const adminExtensionFolder = path.join(appDir, 'src', 'admin', 'extensions');
|
|
114
|
-
|
|
115
|
-
if (fs.existsSync(adminExtensionFolder)) {
|
|
116
|
-
await fs.copy(adminExtensionFolder, path.resolve(cacheDir, 'admin', 'src', 'extensions'));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// create plugins.js with plugins requires
|
|
120
|
-
await createPluginsJs(pluginsWithFront, cacheDir);
|
|
121
|
-
|
|
122
|
-
// create the tsconfig.json file so we can develop plugins in ts while being in a JS project
|
|
123
|
-
if (!useTypeScript) {
|
|
124
|
-
await createTSConfigFile(cacheDir);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
async function createTSConfigFile(dest) {
|
|
129
|
-
const tsConfig = {
|
|
130
|
-
compilerOptions: {
|
|
131
|
-
lib: ['es2019', 'es2020.promise', 'es2020.bigint', 'es2020.string', 'DOM'],
|
|
132
|
-
noImplicitAny: false,
|
|
133
|
-
module: 'es2020',
|
|
134
|
-
target: 'es5',
|
|
135
|
-
jsx: 'react',
|
|
136
|
-
allowJs: true,
|
|
137
|
-
strict: true,
|
|
138
|
-
moduleResolution: 'node',
|
|
139
|
-
skipLibCheck: true,
|
|
140
|
-
esModuleInterop: true,
|
|
141
|
-
allowSyntheticDefaultImports: true,
|
|
142
|
-
resolveJsonModule: true,
|
|
143
|
-
noEmit: false,
|
|
144
|
-
incremental: true,
|
|
145
|
-
},
|
|
146
|
-
include: ['../../../src/admin/*', '../../../src/**/**/admin/src/*'],
|
|
147
|
-
exclude: ['node_modules', '**/*.test.js', '*.js'],
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
const filePath = path.join(dest, 'admin', 'src', 'tsconfig.json');
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
await fs.ensureFile(filePath);
|
|
154
|
-
|
|
155
|
-
await fs.writeJSON(filePath, tsConfig, { spaces: 2 });
|
|
156
|
-
} catch (err) {
|
|
157
|
-
console.log(err);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
module.exports = createCacheDir;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { join } = require('path');
|
|
4
|
-
const fse = require('fs-extra');
|
|
5
|
-
const { isUsingTypeScript } = require('@strapi/typescript-utils');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Retrieve the custom admin entry file name
|
|
9
|
-
* @param {String} dir - Directory of the admin panel
|
|
10
|
-
* @returns String
|
|
11
|
-
*/
|
|
12
|
-
const getCustomAppConfigFile = async dir => {
|
|
13
|
-
const adminSrcPath = join(dir, 'src', 'admin');
|
|
14
|
-
const useTypeScript = await isUsingTypeScript(adminSrcPath, 'tsconfig.json');
|
|
15
|
-
|
|
16
|
-
const files = await fse.readdir(adminSrcPath);
|
|
17
|
-
|
|
18
|
-
const appRegex = new RegExp(`app.${useTypeScript ? 't' : 'j'}sx?$`);
|
|
19
|
-
|
|
20
|
-
return files.find(file => file.match(appRegex));
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
module.exports = getCustomAppConfigFile;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const path = require('path');
|
|
4
|
-
const chalk = require('chalk');
|
|
5
|
-
const _ = require('lodash');
|
|
6
|
-
const webpack = require('webpack');
|
|
7
|
-
const fs = require('fs-extra');
|
|
8
|
-
const getWebpackConfig = require('../webpack.config');
|
|
9
|
-
|
|
10
|
-
const getCustomWebpackConfig = (dir, config) => {
|
|
11
|
-
const adminConfigPath = path.join(dir, 'src', 'admin', 'webpack.config.js');
|
|
12
|
-
|
|
13
|
-
let webpackConfig = getWebpackConfig(config);
|
|
14
|
-
|
|
15
|
-
if (fs.existsSync(adminConfigPath)) {
|
|
16
|
-
const webpackAdminConfig = require(path.resolve(adminConfigPath));
|
|
17
|
-
|
|
18
|
-
if (_.isFunction(webpackAdminConfig)) {
|
|
19
|
-
// Expose the devServer configuration
|
|
20
|
-
if (config.devServer) {
|
|
21
|
-
webpackConfig.devServer = config.devServer;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
webpackConfig = webpackAdminConfig(webpackConfig, webpack);
|
|
25
|
-
|
|
26
|
-
if (!webpackConfig) {
|
|
27
|
-
console.error(
|
|
28
|
-
`${chalk.red('Error:')} Nothing was returned from your custom webpack configuration`
|
|
29
|
-
);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return webpackConfig;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
module.exports = getCustomWebpackConfig;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { join, resolve } = require('path');
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
|
-
// eslint-disable-next-line node/no-extraneous-require
|
|
6
|
-
const glob = require('glob');
|
|
7
|
-
|
|
8
|
-
const getPluginsPath = () => {
|
|
9
|
-
const rootPath = resolve(__dirname, '..', join('..', '..', '..', 'packages'));
|
|
10
|
-
const corePath = join(rootPath, 'core', '*');
|
|
11
|
-
const pluginsPath = join(rootPath, 'plugins', '*');
|
|
12
|
-
const corePackageDirs = glob.sync(corePath);
|
|
13
|
-
const pluginsPackageDirs = glob.sync(pluginsPath);
|
|
14
|
-
|
|
15
|
-
const packageDirs = [...corePackageDirs, ...pluginsPackageDirs].filter(dir => {
|
|
16
|
-
const isCoreAdmin = dir.includes('packages/core/admin');
|
|
17
|
-
const pathToEntryPoint = join(dir, 'admin', 'src', 'index.js');
|
|
18
|
-
const doesAdminFolderExist = fs.pathExistsSync(pathToEntryPoint);
|
|
19
|
-
|
|
20
|
-
return !isCoreAdmin && doesAdminFolderExist;
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
return packageDirs.map(dir => resolve(__dirname, '..', join(dir, 'admin', 'src')));
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
module.exports = getPluginsPath;
|
package/utils/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const createCacheDir = require('./create-cache-dir');
|
|
4
|
-
const getCustomWebpackConfig = require('./get-custom-webpack-config');
|
|
5
|
-
const shouldBuildAdmin = require('./should-build-admin');
|
|
6
|
-
const watchAdminFiles = require('./watch-admin-files');
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
createCacheDir,
|
|
10
|
-
getCustomWebpackConfig,
|
|
11
|
-
shouldBuildAdmin,
|
|
12
|
-
watchAdminFiles,
|
|
13
|
-
};
|