@strapi/admin 4.0.0-beta.12 → 4.0.0-beta.16
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/components/AuthenticatedApp/index.js +2 -1
- package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +3 -2
- package/admin/src/components/GlobalStyle/index.js +1 -0
- package/admin/src/components/LeftMenu/index.js +5 -5
- package/admin/src/components/{UpgradePlanModal /index.js → UpgradePlanModal/index.js} +7 -11
- package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +2 -7
- package/admin/src/content-manager/components/ComponentInitializer/index.js +48 -29
- package/admin/src/content-manager/components/DynamicTable/CellContent/Media/FileWrapper.js +4 -2
- package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/PopoverContent.js +4 -4
- package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/index.js +5 -5
- package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +5 -5
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +3 -3
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +3 -3
- package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +8 -3
- package/admin/src/content-manager/components/DynamicTable/index.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton/index.js +14 -6
- package/admin/src/content-manager/components/DynamicZone/components/Component/Rectangle.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/components/Component/index.js +52 -16
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +4 -4
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/index.js +1 -1
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/index.js +3 -3
- package/admin/src/content-manager/components/DynamicZone/components/DzLabel/index.js +10 -3
- package/admin/src/content-manager/components/DynamicZone/index.js +1 -0
- package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +17 -8
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +1 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +1 -1
- package/admin/src/content-manager/components/FieldComponent/Label.js +10 -4
- package/admin/src/content-manager/components/{InputJSON/Hint.js → Hint/index.js} +3 -3
- package/admin/src/content-manager/components/InputJSON/FieldError.js +9 -3
- package/admin/src/content-manager/components/InputJSON/Label.js +9 -3
- package/admin/src/content-manager/components/InputJSON/index.js +1 -1
- package/admin/src/content-manager/components/InputUID/index.js +7 -7
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -1
- package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +34 -6
- package/admin/src/content-manager/components/RepeatableComponent/AddFieldButton.js +3 -3
- package/admin/src/content-manager/components/RepeatableComponent/DragPreview.js +12 -7
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/DraggingSibling.js +3 -3
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +16 -25
- package/admin/src/content-manager/components/RepeatableComponent/index.js +34 -153
- package/admin/src/content-manager/components/SelectMany/ListItem.js +3 -4
- package/admin/src/content-manager/components/SelectMany/index.js +11 -2
- package/admin/src/content-manager/components/SelectOne/SingleValue.js +2 -2
- package/admin/src/content-manager/components/SelectOne/index.js +34 -21
- package/admin/src/content-manager/components/SelectWrapper/Label.js +9 -3
- package/admin/src/content-manager/components/SelectWrapper/Option.js +2 -2
- package/admin/src/content-manager/components/SelectWrapper/index.js +4 -7
- package/admin/src/content-manager/components/State/index.js +3 -3
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +6 -5
- package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +133 -0
- package/admin/src/content-manager/components/Wysiwyg/{EditorWrapper.js → EditorStylesContainer.js} +6 -5
- package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +3 -3
- package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +18 -21
- package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +0 -51
- package/admin/src/content-manager/components/Wysiwyg/index.js +80 -89
- package/admin/src/content-manager/components/Wysiwyg/utils/utils.js +7 -2
- package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +2 -2
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/FieldButton.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFields.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/index.js +5 -5
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +5 -5
- package/admin/src/content-manager/pages/EditView/Header/index.js +10 -10
- package/admin/src/content-manager/pages/EditView/Informations/index.js +11 -10
- package/admin/src/content-manager/pages/EditView/index.js +7 -8
- package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +3 -3
- package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +3 -3
- package/admin/src/content-manager/pages/ListView/PaginationFooter/index.js +1 -1
- package/admin/src/content-manager/pages/ListView/index.js +20 -25
- package/admin/src/content-manager/pages/ListViewLayoutManager/index.js +0 -1
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +2 -2
- package/admin/src/index.js +1 -0
- package/admin/src/pages/Admin/Onboarding/index.js +4 -4
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +10 -5
- package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +7 -7
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +12 -7
- package/admin/src/pages/AuthPage/components/Oops/index.js +6 -6
- package/admin/src/pages/AuthPage/components/Register/index.js +5 -14
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +10 -5
- package/admin/src/pages/AuthPage/index.js +1 -0
- package/admin/src/pages/AuthPage/utils/forms.js +2 -2
- package/admin/src/pages/HomePage/HomeHeader.js +5 -5
- package/admin/src/pages/HomePage/SocialLinks.js +5 -9
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +111 -0
- package/admin/src/pages/InstalledPluginsPage/index.js +4 -108
- package/admin/src/pages/InstalledPluginsPage/utils/api.js +11 -0
- package/admin/src/pages/MarketplacePage/assets/marketplace-coming-soon.png +0 -0
- package/admin/src/pages/MarketplacePage/index.js +93 -126
- package/admin/src/pages/ProfilePage/index.js +10 -9
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContentBox/index.js +5 -2
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +16 -4
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +6 -2
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +25 -15
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +7 -0
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +7 -16
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +0 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +6 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +6 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +7 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +4 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +8 -2
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/EmptyRole/index.js +0 -32
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +8 -4
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +8 -8
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +8 -8
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +6 -5
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +7 -5
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +5 -3
- package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +1 -0
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/edit.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +6 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +9 -5
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +8 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +24 -28
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +213 -220
- package/admin/src/plugins.js +14 -18
- package/admin/src/translations/en.json +12 -2
- package/admin/src/utils/getFullName.js +9 -0
- package/admin/src/utils/index.js +1 -1
- package/build/01a600d9e6e0dea21e33017a97bdf431.png +0 -0
- package/build/1024.1b15fbb5.chunk.js +1 -0
- package/build/1024.664cd4ee.chunk.js +1 -0
- package/build/1156.ef17a73a.chunk.js +1 -0
- package/build/1593.57ba5d9f.chunk.js +1 -0
- package/build/1856.53d42ce5.chunk.js +1 -0
- package/build/1856.e06c9787.chunk.js +1 -0
- package/build/2912.591ddc96.chunk.js +1 -0
- package/build/2912.b0ac46e0.chunk.js +1 -0
- package/build/3063.bafab3b5.chunk.js +1 -0
- package/build/3226.0dc582b2.chunk.js +2 -0
- package/build/3226.0dc582b2.chunk.js.LICENSE.txt +15 -0
- package/build/3226.e8fe1445.chunk.js +2 -0
- package/build/3226.e8fe1445.chunk.js.LICENSE.txt +15 -0
- package/build/3471.327fa7e3.chunk.js +2 -0
- package/build/3471.327fa7e3.chunk.js.LICENSE.txt +13 -0
- package/build/3480.86145dfa.chunk.js +1 -0
- package/build/3669.270feaf7.chunk.js +1 -0
- package/build/4064.2683bcce.chunk.js +1 -0
- package/build/4064.56677f11.chunk.js +1 -0
- package/build/4261.a08a535e.chunk.js +1 -0
- package/build/4261.b7b7ac00.chunk.js +1 -0
- package/build/4282.30e4e53c.chunk.js +2 -0
- package/build/4282.30e4e53c.chunk.js.LICENSE.txt +4 -0
- package/build/4362.60f0937a.chunk.js +1 -0
- package/build/4362.aefff6ad.chunk.js +1 -0
- package/build/4362.de6b3788.chunk.js +1 -0
- package/build/4362.fd69112c.chunk.js +1 -0
- package/build/4715.2f51454b.chunk.js +1 -0
- package/build/4715.35096dd7.chunk.js +1 -0
- package/build/4715.bb03cfd8.chunk.js +1 -0
- package/build/4741.1fb6ad6e.chunk.js +2 -0
- package/build/4741.1fb6ad6e.chunk.js.LICENSE.txt +9 -0
- package/build/4741.45afdeda.chunk.js +2 -0
- package/build/4741.45afdeda.chunk.js.LICENSE.txt +9 -0
- package/build/4868.7f99c7b9.chunk.js +1 -0
- package/build/497.05fa226b.chunk.js +1 -0
- package/build/497.838781d7.chunk.js +1 -0
- package/build/4982.5031302b.chunk.js +1 -0
- package/build/4982.a7f87e6c.chunk.js +1 -0
- package/build/5273.41d98db5.chunk.js +2 -0
- package/build/5273.41d98db5.chunk.js.LICENSE.txt +15 -0
- package/build/5367.5b2bdd38.chunk.js +1 -0
- package/build/5603.f1165699.chunk.js +1 -0
- package/build/5881.4bf14a31.chunk.js +2 -0
- package/build/5881.4bf14a31.chunk.js.LICENSE.txt +4 -0
- package/build/5936.2ec3e56a.chunk.js +1 -0
- package/build/6250.11ba8b50.chunk.js +1 -0
- package/build/6250.50133e63.chunk.js +1 -0
- package/build/6250.785ba0da.chunk.js +1 -0
- package/build/6456.9da00bc3.chunk.js +2 -0
- package/build/6456.9da00bc3.chunk.js.LICENSE.txt +13 -0
- package/build/6925.4767e761.chunk.js +2 -0
- package/build/6925.4767e761.chunk.js.LICENSE.txt +4 -0
- package/build/7427.881b5bba.chunk.js +1 -0
- package/build/7841.736189f7.chunk.js +1 -0
- package/build/7841.cc8241a5.chunk.js +1 -0
- package/build/8447.32ee17be.chunk.js +2 -0
- package/build/8447.32ee17be.chunk.js.LICENSE.txt +22 -0
- package/build/8447.686f702c.chunk.js +2 -0
- package/build/8447.686f702c.chunk.js.LICENSE.txt +22 -0
- package/build/8469.8d819a3c.chunk.js +1 -0
- package/build/849.3ddc11eb.chunk.js +1 -0
- package/build/849.abcc3b07.chunk.js +1 -0
- package/build/849.fc26299c.chunk.js +1 -0
- package/build/9238.9258f79b.chunk.js +1 -0
- package/build/9238.f112d6c9.chunk.js +1 -0
- package/build/9292.20d16885.chunk.js +2 -0
- package/build/9292.20d16885.chunk.js.LICENSE.txt +14 -0
- package/build/9293.cb94e2c6.chunk.js +1 -0
- package/build/9964.345994e8.chunk.js +2 -0
- package/build/9964.345994e8.chunk.js.LICENSE.txt +15 -0
- package/build/9965.d72ae284.chunk.js +2 -0
- package/build/9965.d72ae284.chunk.js.LICENSE.txt +1 -0
- package/build/Admin-authenticatedApp.62e5ca51.chunk.js +1 -0
- package/build/Admin-authenticatedApp.7bdfbab4.chunk.js +1 -0
- package/build/Admin-authenticatedApp.994268cd.chunk.js +1 -0
- package/build/Admin-authenticatedApp.b1104a6a.chunk.js +1 -0
- package/build/Admin-authenticatedApp.bfdec496.chunk.js +1 -0
- package/build/Admin_homePage.1745827a.chunk.js +1 -0
- package/build/Admin_homePage.31e37124.chunk.js +1 -0
- package/build/Admin_homePage.4398cf1a.chunk.js +1 -0
- package/build/Admin_marketplace.201373e2.chunk.js +1 -0
- package/build/Admin_marketplace.6582ddcf.chunk.js +1 -0
- package/build/Admin_pluginsPage.5e75b3e8.chunk.js +1 -0
- package/build/Admin_pluginsPage.db5748e1.chunk.js +1 -0
- package/build/Admin_profilePage.3aa61921.chunk.js +1 -0
- package/build/Admin_profilePage.e7eb483d.chunk.js +1 -0
- package/build/Admin_profilePage.e941f627.chunk.js +1 -0
- package/build/Admin_profilePage.f9369a69.chunk.js +1 -0
- package/build/Admin_settingsPage.174d91c2.chunk.js +1 -0
- package/build/Admin_settingsPage.363ad01d.chunk.js +1 -0
- package/build/Admin_settingsPage.60a92e51.chunk.js +1 -0
- package/build/Admin_settingsPage.ea6de611.chunk.js +1 -0
- package/build/admin-edit-roles-page.dbe15373.chunk.js +1 -0
- package/build/admin-edit-roles-page.e91bd9e5.chunk.js +1 -0
- package/build/admin-edit-users.110f6f05.chunk.js +1 -0
- package/build/admin-edit-users.bcdd2e4d.chunk.js +1 -0
- package/build/admin-edit-users.fa3fac98.chunk.js +1 -0
- package/build/admin-users.640b6123.chunk.js +1 -0
- package/build/admin-users.8f957bf7.chunk.js +1 -0
- package/build/admin-users.a2d08780.chunk.js +1 -0
- package/build/admin-users.fcabe1ed.chunk.js +1 -0
- package/build/api-tokens-create-page.451be52c.chunk.js +1 -0
- package/build/api-tokens-create-page.57119445.chunk.js +1 -0
- package/build/api-tokens-create-page.5e332b85.chunk.js +1 -0
- package/build/api-tokens-create-page.ac4285ba.chunk.js +1 -0
- package/build/api-tokens-edit-page.7b419f29.chunk.js +1 -0
- package/build/api-tokens-edit-page.b1c3ef5c.chunk.js +1 -0
- package/build/api-tokens-edit-page.b8900ddd.chunk.js +1 -0
- package/build/api-tokens-edit-page.e473ee7e.chunk.js +1 -0
- package/build/api-tokens-list-page.5acd2590.chunk.js +1 -0
- package/build/api-tokens-list-page.b053ddcd.chunk.js +1 -0
- package/build/api-tokens-list-page.d451255e.chunk.js +1 -0
- package/build/codemirror-addon-closebrackets.5d703a8f.chunk.js +1 -0
- package/build/codemirror-addon-lint-js.2bb54ef7.chunk.js +1 -0
- package/build/codemirror-addon-lint.91580cda.chunk.js +1 -0
- package/build/codemirror-addon-lint.d0f380b7.chunk.js +1 -0
- package/build/codemirror-addon-mark-selection.06aef3b0.chunk.js +1 -0
- package/build/codemirror-css.7b034e03.chunk.js +1 -0
- package/build/codemirror-javacript.debb6b5f.chunk.js +1 -0
- package/build/codemirror-theme.4a209ed5.chunk.js +1 -0
- package/build/codemirror-theme.4d046631.chunk.js +1 -0
- package/build/content-manager.08eae196.chunk.js +1 -0
- package/build/content-manager.196287ea.chunk.js +1 -0
- package/build/content-manager.a6c34b64.chunk.js +1 -0
- package/build/content-manager.d09d2a3a.chunk.js +1 -0
- package/build/content-manager.dae306dc.chunk.js +1 -0
- package/build/content-type-builder-translation-uk-json.dd141133.chunk.js +1 -0
- package/build/content-type-builder.0e689f6b.chunk.js +1 -0
- package/build/content-type-builder.d0e98469.chunk.js +1 -0
- package/build/content-type-builder.e9231547.chunk.js +1 -0
- package/build/cropper-css.b71d1229.chunk.js +1 -0
- package/build/cs-json.ff08076e.chunk.js +1 -0
- package/build/documentation-page.d8a45deb.chunk.js +1 -0
- package/build/documentation-settings.8c40ee4f.chunk.js +1 -0
- package/build/documentation-translation-pt-json.da1090dc.chunk.js +1 -0
- package/build/email-settings-page.8f0ee2a7.chunk.js +1 -0
- package/build/email-settings-page.b0b914fd.chunk.js +1 -0
- package/build/email-settings-page.b1048dc6.chunk.js +1 -0
- package/build/en-json.0e021d52.chunk.js +1 -0
- package/build/en-json.6282a00f.chunk.js +1 -0
- package/build/fontawesome-css-all.162c8569.chunk.js +1 -0
- package/build/fontawesome-css-all.5744d394.chunk.js +1 -0
- package/build/fontawesome-css.1638752f.chunk.js +1 -0
- package/build/fontawesome-css.b1736497.chunk.js +1 -0
- package/build/fontawesome-js.2639263c.chunk.js +2 -0
- package/build/fontawesome-js.2639263c.chunk.js.LICENSE.txt +4 -0
- package/build/fontawesome-js.6c44ac22.chunk.js +1 -0
- package/build/highlight.js.3f31aed7.chunk.js +1 -0
- package/build/i18n-settings-page.5fe86c22.chunk.js +1 -0
- package/build/i18n-settings-page.acc3a212.chunk.js +1 -0
- package/build/i18n-settings-page.f1881c6c.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/main.3414cc4f.js +2 -0
- package/build/main.3414cc4f.js.LICENSE.txt +91 -0
- package/build/main.af6b238d.js +2 -0
- package/build/main.af6b238d.js.LICENSE.txt +73 -0
- package/build/main.e21a82f5.js +2 -0
- package/build/main.e21a82f5.js.LICENSE.txt +91 -0
- package/build/main.f425e7e8.js +2 -0
- package/build/main.f425e7e8.js.LICENSE.txt +91 -0
- package/build/main.fa2000bd.js +2 -0
- package/build/main.fa2000bd.js.LICENSE.txt +82 -0
- package/build/runtime~main.15acd133.js +1 -0
- package/build/runtime~main.3f600349.js +1 -0
- package/build/runtime~main.44db7ede.js +1 -0
- package/build/runtime~main.a6ae89c4.js +1 -0
- package/build/runtime~main.cc96a027.js +1 -0
- package/build/sso-settings-page.0f5feb29.chunk.js +1 -0
- package/build/sso-settings-page.bd7a8fd7.chunk.js +1 -0
- package/build/upload-settings.4c2a1426.chunk.js +1 -0
- package/build/upload-settings.4daf6206.chunk.js +1 -0
- package/build/upload-settings.7d40d236.chunk.js +1 -0
- package/build/upload-translation-zh-json.9ad30216.chunk.js +1 -0
- package/build/upload.1090e6c4.chunk.js +1 -0
- package/build/upload.c11a292c.chunk.js +1 -0
- package/build/upload.e53f8430.chunk.js +1 -0
- package/build/users-advanced-settings-page.2dfeffe8.chunk.js +1 -0
- package/build/users-advanced-settings-page.669b059c.chunk.js +1 -0
- package/build/users-advanced-settings-page.e637319d.chunk.js +1 -0
- package/build/users-email-settings-page.a4e19b13.chunk.js +1 -0
- package/build/users-email-settings-page.b1d1f551.chunk.js +1 -0
- package/build/users-email-settings-page.cb6065a5.chunk.js +1 -0
- package/build/users-providers-settings-page.733a51ec.chunk.js +1 -0
- package/build/users-providers-settings-page.866ddeed.chunk.js +1 -0
- package/build/users-providers-settings-page.96c66f6f.chunk.js +1 -0
- package/build/users-roles-settings-page.2f12885b.chunk.js +1 -0
- package/build/users-roles-settings-page.3629c123.chunk.js +1 -0
- package/build/users-roles-settings-page.dd20c4ab.chunk.js +1 -0
- package/build/users-roles-settings-page.fafcbe29.chunk.js +1 -0
- package/build/webhook-edit-page.634e50da.chunk.js +1 -0
- package/build/webhook-edit-page.f4f6935d.chunk.js +1 -0
- package/build/webhook-edit-page.f6d2e962.chunk.js +1 -0
- package/build/webhook-list-page.68c100bf.chunk.js +1 -0
- package/build/webhook-list-page.aae66737.chunk.js +1 -0
- package/build/webhook-list-page.fc554fbe.chunk.js +1 -0
- package/ee/admin/pages/AuthPage/components/Login/index.js +3 -3
- package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +2 -2
- package/ee/admin/pages/AuthPage/components/Providers/index.js +12 -6
- package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +119 -115
- package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +5 -5
- package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +7 -7
- package/ee/server/controllers/authentication/middlewares.js +1 -1
- package/package.json +10 -15
- package/scripts/build.js +13 -1
- package/scripts/create-dev-plugins-file.js +69 -0
- package/scripts/create-plugins-file.js +92 -0
- package/server/controllers/admin.js +8 -2
- package/server/services/content-type.js +4 -4
- package/server/services/permission/permissions-manager/sanitize.js +14 -7
- package/server/services/user.js +14 -0
- package/server/strategies/api-token.js +19 -9
- package/server/validation/authentication/register.js +2 -2
- package/server/validation/common-validators.js +1 -1
- package/server/validation/user.js +3 -3
- package/webpack.alias.js +0 -6
- package/admin/src/content-manager/components/DraggedField/Close/index.js +0 -10
- package/admin/src/content-manager/components/DraggedField/GrabWrapper.js +0 -38
- package/admin/src/content-manager/components/DraggedField/Link.js +0 -17
- package/admin/src/content-manager/components/DraggedField/NameWrapper.js +0 -29
- package/admin/src/content-manager/components/DraggedField/RemoveWrapper.js +0 -32
- package/admin/src/content-manager/components/DraggedField/SubWrapper.js +0 -36
- package/admin/src/content-manager/components/DraggedField/Wrapper.js +0 -129
- package/admin/src/content-manager/components/DraggedField/index.js +0 -198
- package/admin/src/content-manager/components/DraggedField/utils/getColor.js +0 -12
- package/admin/src/content-manager/components/DraggedField/utils/getHeight.js +0 -3
- package/admin/src/content-manager/components/DraggedFieldWithPreview/Carret.js +0 -24
- package/admin/src/content-manager/components/DraggedFieldWithPreview/DynamicComponent.js +0 -71
- package/admin/src/content-manager/components/DraggedFieldWithPreview/DynamicZoneWrapper.js +0 -10
- package/admin/src/content-manager/components/DraggedFieldWithPreview/Tooltip.js +0 -19
- package/admin/src/content-manager/components/DraggedFieldWithPreview/Wrapper.js +0 -23
- package/admin/src/content-manager/components/DraggedFieldWithPreview/index.js +0 -194
- package/admin/src/content-manager/components/Inputs/ComingSoonInput.js +0 -72
- package/admin/src/content-manager/components/PopupForm/index.js +0 -93
- package/admin/src/content-manager/components/RepeatableComponent/Banner.js +0 -114
- package/admin/src/content-manager/components/Separator/index.js +0 -9
- package/admin/src/content-manager/components/SettingsViewWrapper/index.js +0 -306
- package/admin/src/content-manager/components/SortWrapper/index.js +0 -9
- package/admin/src/content-manager/components/Wysiwyg/MediaLibrary.js +0 -58
- package/admin/src/content-manager/components/Wysiwyg/WysiwygExpand.js +0 -135
- package/admin/src/content-manager/components/old/Wysiwyg/MediaLib.js +0 -68
- package/admin/src/pages/InstalledPluginsPage/ListWrapper.js +0 -7
- package/admin/src/pages/InstalledPluginsPage/Logo.js +0 -36
- package/admin/src/pages/InstalledPluginsPage/Row.js +0 -99
- package/admin/src/pages/InstalledPluginsPage/utils/generateRows.js +0 -19
- package/ee/admin/components/ProviderButton/ProviderButtonStyles.js +0 -31
- package/ee/admin/components/ProviderButton/index.js +0 -42
package/scripts/build.js
CHANGED
|
@@ -3,16 +3,28 @@
|
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const webpack = require('webpack');
|
|
5
5
|
const webpackConfig = require('../webpack.config');
|
|
6
|
+
const {
|
|
7
|
+
getCorePluginsPath,
|
|
8
|
+
getPluginToInstallPath,
|
|
9
|
+
createPluginsFile,
|
|
10
|
+
} = require('./create-plugins-file');
|
|
11
|
+
|
|
12
|
+
const PLUGINS_TO_INSTALL = ['i18n', 'users-permissions'];
|
|
6
13
|
|
|
7
14
|
const buildAdmin = async () => {
|
|
8
15
|
const entry = path.join(__dirname, '..', 'admin', 'src');
|
|
9
16
|
const dest = path.join(__dirname, '..', 'build');
|
|
17
|
+
const corePlugins = getCorePluginsPath();
|
|
18
|
+
const plugins = getPluginToInstallPath(PLUGINS_TO_INSTALL);
|
|
19
|
+
const allPlugins = { ...corePlugins, ...plugins };
|
|
20
|
+
|
|
21
|
+
await createPluginsFile(allPlugins);
|
|
10
22
|
|
|
11
23
|
const args = {
|
|
12
24
|
entry,
|
|
13
25
|
dest,
|
|
14
26
|
cacheDir: __dirname,
|
|
15
|
-
pluginsPath: [path.resolve(__dirname, '
|
|
27
|
+
pluginsPath: [path.resolve(__dirname, '../../../../packages')],
|
|
16
28
|
env: 'production',
|
|
17
29
|
optimize: true,
|
|
18
30
|
options: {
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { join, resolve, relative } = require('path');
|
|
4
|
+
const { promisify } = require('util');
|
|
5
|
+
// eslint-disable-next-line node/no-extraneous-require
|
|
6
|
+
const glob = promisify(require('glob').glob);
|
|
7
|
+
const fs = require('fs-extra');
|
|
8
|
+
const { getCorePluginsPath, createPluginsFile } = require('./create-plugins-file');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Retrieve all plugins that are inside the plugins folder
|
|
12
|
+
* @returns Object the plugins
|
|
13
|
+
*/
|
|
14
|
+
const getPluginsPackages = async () => {
|
|
15
|
+
const pathToPackages = resolve(__dirname, '..', '..', '..', 'plugins', '*');
|
|
16
|
+
const pluginsPackageDirs = await glob(pathToPackages);
|
|
17
|
+
|
|
18
|
+
return pluginsPackageDirs
|
|
19
|
+
.filter(pluginDir => {
|
|
20
|
+
return fs.existsSync(join(pluginDir, 'admin', 'src', 'index.js'));
|
|
21
|
+
})
|
|
22
|
+
.reduce((acc, current) => {
|
|
23
|
+
const depName = current
|
|
24
|
+
.replace(/\\/g, '/')
|
|
25
|
+
.split('/')
|
|
26
|
+
.slice(-1)[0];
|
|
27
|
+
|
|
28
|
+
const adminEntryPoint = join(__dirname, '..', 'admin', 'src');
|
|
29
|
+
|
|
30
|
+
const pathToPlugin = join(relative(adminEntryPoint, current), 'admin', 'src').replace(
|
|
31
|
+
/\\/g,
|
|
32
|
+
'/'
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
acc[depName] = pathToPlugin;
|
|
36
|
+
|
|
37
|
+
return acc;
|
|
38
|
+
}, {});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Write the plugins.js file or copy the plugins-dev.js file if it exists
|
|
43
|
+
*/
|
|
44
|
+
const createFile = async () => {
|
|
45
|
+
const customPluginFile = join(__dirname, '..', 'admin', 'src', 'plugins-dev.js');
|
|
46
|
+
const pluginFileDest = join(__dirname, '..', 'admin', 'src', 'plugins.js');
|
|
47
|
+
|
|
48
|
+
if (fs.existsSync(customPluginFile)) {
|
|
49
|
+
await fs.copy(customPluginFile, pluginFileDest);
|
|
50
|
+
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const corePlugins = getCorePluginsPath();
|
|
55
|
+
const plugins = await getPluginsPackages();
|
|
56
|
+
const allPlugins = { ...corePlugins, ...plugins };
|
|
57
|
+
|
|
58
|
+
return createPluginsFile(allPlugins);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
createFile()
|
|
62
|
+
.then(() => {
|
|
63
|
+
console.log('plugins.js file created');
|
|
64
|
+
process.exit();
|
|
65
|
+
})
|
|
66
|
+
.catch(err => {
|
|
67
|
+
console.error(err);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { join, resolve, relative } = require('path');
|
|
4
|
+
const { camelCase } = require('lodash');
|
|
5
|
+
const fs = require('fs-extra');
|
|
6
|
+
|
|
7
|
+
const CORE_PLUGINS = ['content-type-builder', 'email', 'upload'];
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Retrieve the core plugins path
|
|
11
|
+
* @returns {Object}
|
|
12
|
+
*/
|
|
13
|
+
const getCorePluginsPath = () => {
|
|
14
|
+
const corePlugins = {};
|
|
15
|
+
|
|
16
|
+
for (const dep of CORE_PLUGINS) {
|
|
17
|
+
const packageAdminPath = join(__dirname, '..', '..', dep, 'admin', 'src');
|
|
18
|
+
|
|
19
|
+
const adminEntryPoint = resolve(join(__dirname, '..', 'admin', 'src'));
|
|
20
|
+
const pathToPlugin = join(relative(adminEntryPoint, packageAdminPath)).replace(/\\/g, '/');
|
|
21
|
+
|
|
22
|
+
corePlugins[dep] = pathToPlugin;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return corePlugins;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve the plugins real path
|
|
30
|
+
* @param {Object[]} pluginsToInstall array of plugins located in the plugins folder
|
|
31
|
+
* @returns Object of plugin's paths
|
|
32
|
+
*/
|
|
33
|
+
const getPluginToInstallPath = pluginsToInstall => {
|
|
34
|
+
const plugins = {};
|
|
35
|
+
|
|
36
|
+
for (const dep of pluginsToInstall) {
|
|
37
|
+
const packageAdminPath = join(__dirname, '..', '..', '..', 'plugins', dep, 'admin', 'src');
|
|
38
|
+
|
|
39
|
+
const adminEntryPoint = resolve(join(__dirname, '..', 'admin', 'src'));
|
|
40
|
+
const pathToPlugin = join(relative(adminEntryPoint, packageAdminPath)).replace(/\\/g, '/');
|
|
41
|
+
|
|
42
|
+
plugins[dep] = pathToPlugin;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return plugins;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Write the plugins.js file
|
|
50
|
+
* @param {Object} plugins
|
|
51
|
+
*/
|
|
52
|
+
const createPluginsFile = async plugins => {
|
|
53
|
+
const pluginFileDest = resolve(__dirname, '..', 'admin', 'src', 'plugins.js');
|
|
54
|
+
|
|
55
|
+
const allPluginsArray = Object.entries(plugins).map(([plugin, pluginPath]) => {
|
|
56
|
+
return {
|
|
57
|
+
shortName: camelCase(plugin),
|
|
58
|
+
name: plugin,
|
|
59
|
+
pluginPath,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const content = `
|
|
64
|
+
// To override this file create a plugins-dev.js one and copy the content of the plugin.js one.
|
|
65
|
+
// When starting the app the script will copy the plugins-dev.js into this one instead.
|
|
66
|
+
${allPluginsArray
|
|
67
|
+
.map(({ shortName, pluginPath }) => {
|
|
68
|
+
const req = `'${pluginPath}'`;
|
|
69
|
+
|
|
70
|
+
return `import ${shortName} from ${req};`;
|
|
71
|
+
})
|
|
72
|
+
.join('\n')}
|
|
73
|
+
|
|
74
|
+
const plugins = {
|
|
75
|
+
${[...allPluginsArray]
|
|
76
|
+
.map(({ name, shortName }) => {
|
|
77
|
+
return ` '${name}': ${shortName},`;
|
|
78
|
+
})
|
|
79
|
+
.join('\n')}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export default plugins;
|
|
83
|
+
`;
|
|
84
|
+
|
|
85
|
+
return fs.writeFile(pluginFileDest, content);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
module.exports = {
|
|
89
|
+
createPluginsFile,
|
|
90
|
+
getCorePluginsPath,
|
|
91
|
+
getPluginToInstallPath,
|
|
92
|
+
};
|
|
@@ -76,8 +76,14 @@ module.exports = {
|
|
|
76
76
|
},
|
|
77
77
|
|
|
78
78
|
async plugins(ctx) {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const enabledPlugins = strapi.config.get('enabledPlugins');
|
|
80
|
+
|
|
81
|
+
const plugins = Object.entries(enabledPlugins).map(([key, plugin]) => ({
|
|
82
|
+
name: plugin.info.name || key,
|
|
83
|
+
displayName: plugin.info.displayName || plugin.info.name || key,
|
|
84
|
+
description: plugin.info.description || '',
|
|
85
|
+
}));
|
|
86
|
+
|
|
81
87
|
ctx.send({ plugins });
|
|
82
88
|
},
|
|
83
89
|
|
|
@@ -35,11 +35,11 @@ const getNestedFields = (
|
|
|
35
35
|
if (nonAuthorizableFields.includes(key)) return fields;
|
|
36
36
|
|
|
37
37
|
const fieldPath = prefix ? `${prefix}.${key}` : key;
|
|
38
|
-
const
|
|
38
|
+
const shouldBeIncluded = !requiredOnly || attr.required === true;
|
|
39
39
|
const insideExistingFields = existingFields && existingFields.some(startsWith(fieldPath));
|
|
40
40
|
|
|
41
41
|
if (attr.type === 'component') {
|
|
42
|
-
if (
|
|
42
|
+
if (shouldBeIncluded || insideExistingFields) {
|
|
43
43
|
const compoFields = getNestedFields(components[attr.component], {
|
|
44
44
|
nestingLevel: nestingLevel - 1,
|
|
45
45
|
prefix: fieldPath,
|
|
@@ -48,7 +48,7 @@ const getNestedFields = (
|
|
|
48
48
|
existingFields,
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
-
if (
|
|
51
|
+
if (compoFields.length === 0 && shouldBeIncluded) {
|
|
52
52
|
return fields.concat(fieldPath);
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -57,7 +57,7 @@ const getNestedFields = (
|
|
|
57
57
|
return fields;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
if (
|
|
60
|
+
if (shouldBeIncluded) {
|
|
61
61
|
return fields.concat(fieldPath);
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -13,9 +13,10 @@ const {
|
|
|
13
13
|
prop,
|
|
14
14
|
uniq,
|
|
15
15
|
intersection,
|
|
16
|
+
pick,
|
|
16
17
|
} = require('lodash/fp');
|
|
17
18
|
|
|
18
|
-
const { contentTypes, traverseEntity, sanitize } = require('@strapi/utils');
|
|
19
|
+
const { contentTypes, traverseEntity, sanitize, pipeAsync } = require('@strapi/utils');
|
|
19
20
|
|
|
20
21
|
const {
|
|
21
22
|
constants,
|
|
@@ -37,20 +38,20 @@ const STATIC_FIELDS = [ID_ATTRIBUTE];
|
|
|
37
38
|
module.exports = ({ action, ability, model }) => {
|
|
38
39
|
const schema = strapi.getModel(model);
|
|
39
40
|
|
|
40
|
-
const { allowedFields
|
|
41
|
+
const { allowedFields } = sanitize.visitors;
|
|
41
42
|
|
|
42
43
|
const createSanitizeOutput = (options = {}) => {
|
|
43
44
|
const { fields } = options;
|
|
44
45
|
|
|
45
46
|
const permittedFields = fields.shouldIncludeAll ? null : getOutputFields(fields.permitted);
|
|
46
47
|
|
|
47
|
-
return
|
|
48
|
-
// Remove
|
|
49
|
-
|
|
48
|
+
return pipeAsync(
|
|
49
|
+
// Remove unallowed fields from admin::user relations
|
|
50
|
+
traverseEntity(pickAllowedAdminUserFields, { schema }),
|
|
50
51
|
// Remove not allowed fields (RBAC)
|
|
51
52
|
traverseEntity(allowedFields(permittedFields), { schema }),
|
|
52
53
|
// Remove all fields of type 'password'
|
|
53
|
-
|
|
54
|
+
sanitize.sanitizers.sanitizePasswords(schema)
|
|
54
55
|
);
|
|
55
56
|
};
|
|
56
57
|
|
|
@@ -59,7 +60,7 @@ module.exports = ({ action, ability, model }) => {
|
|
|
59
60
|
|
|
60
61
|
const permittedFields = fields.shouldIncludeAll ? null : getInputFields(fields.permitted);
|
|
61
62
|
|
|
62
|
-
return
|
|
63
|
+
return pipeAsync(
|
|
63
64
|
// Remove not allowed fields (RBAC)
|
|
64
65
|
traverseEntity(allowedFields(permittedFields), { schema }),
|
|
65
66
|
// Remove roles from createdBy & updateBy fields
|
|
@@ -106,6 +107,12 @@ module.exports = ({ action, ability, model }) => {
|
|
|
106
107
|
|
|
107
108
|
const omitCreatorRoles = omit([`${CREATED_BY_ATTRIBUTE}.roles`, `${UPDATED_BY_ATTRIBUTE}.roles`]);
|
|
108
109
|
|
|
110
|
+
const pickAllowedAdminUserFields = ({ attribute, key, value }, { set }) => {
|
|
111
|
+
if (attribute.type === 'relation' && attribute.target === 'admin::user') {
|
|
112
|
+
set(key, pick(['id', 'firstname', 'lastname', 'username'], value));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
109
116
|
const getInputFields = (fields = []) => {
|
|
110
117
|
const nonVisibleAttributes = getNonVisibleAttributes(schema);
|
|
111
118
|
const writableAttributes = getWritableAttributes(schema);
|
package/server/services/user.js
CHANGED
|
@@ -180,6 +180,19 @@ const findOne = async (id, populate = ['roles']) => {
|
|
|
180
180
|
return strapi.entityService.findOne('admin::user', id, { populate });
|
|
181
181
|
};
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Find one user by its email
|
|
185
|
+
* @param {string} id email
|
|
186
|
+
* @param {string || string[] || object} populate
|
|
187
|
+
* @returns
|
|
188
|
+
*/
|
|
189
|
+
const findOneByEmail = async (email, populate = []) => {
|
|
190
|
+
return strapi.query('admin::user').findOne({
|
|
191
|
+
where: { email },
|
|
192
|
+
populate,
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
|
|
183
196
|
/** Find many users (paginated)
|
|
184
197
|
* @param query
|
|
185
198
|
* @returns {Promise<user>}
|
|
@@ -309,6 +322,7 @@ module.exports = {
|
|
|
309
322
|
register,
|
|
310
323
|
sanitizeUser,
|
|
311
324
|
findOne,
|
|
325
|
+
findOneByEmail,
|
|
312
326
|
findPage,
|
|
313
327
|
deleteById,
|
|
314
328
|
deleteByIds,
|
|
@@ -6,22 +6,32 @@ const { getService } = require('../utils');
|
|
|
6
6
|
|
|
7
7
|
const isReadScope = scope => scope.endsWith('find') || scope.endsWith('findOne');
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const { authorization } = ctx.request.header;
|
|
9
|
+
const extractToken = ctx => {
|
|
10
|
+
if (ctx.request && ctx.request.header && ctx.request.header.authorization) {
|
|
11
|
+
const parts = ctx.request.header.authorization.split(/\s+/);
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
if (parts[0].toLowerCase() !== 'bearer' || parts.length !== 2) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return parts[1];
|
|
18
|
+
}
|
|
19
|
+
if (ctx.query.access_token) {
|
|
20
|
+
return ctx.query.access_token;
|
|
16
21
|
}
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/** @type {import('.').AuthenticateFunction} */
|
|
27
|
+
const authenticate = async ctx => {
|
|
28
|
+
const apiTokenService = getService('api-token');
|
|
29
|
+
const token = extractToken(ctx);
|
|
19
30
|
|
|
20
|
-
if (
|
|
31
|
+
if (!token) {
|
|
21
32
|
return { authenticated: false };
|
|
22
33
|
}
|
|
23
34
|
|
|
24
|
-
const token = parts[1];
|
|
25
35
|
const apiToken = await apiTokenService.getBy({
|
|
26
36
|
accessKey: apiTokenService.hash(token),
|
|
27
37
|
});
|
|
@@ -11,7 +11,7 @@ const registrationSchema = yup
|
|
|
11
11
|
.object()
|
|
12
12
|
.shape({
|
|
13
13
|
firstname: validators.firstname.required(),
|
|
14
|
-
lastname: validators.lastname
|
|
14
|
+
lastname: validators.lastname,
|
|
15
15
|
password: validators.password.required(),
|
|
16
16
|
})
|
|
17
17
|
.required()
|
|
@@ -32,7 +32,7 @@ const adminRegistrationSchema = yup
|
|
|
32
32
|
.shape({
|
|
33
33
|
email: validators.email.required(),
|
|
34
34
|
firstname: validators.firstname.required(),
|
|
35
|
-
lastname: validators.lastname
|
|
35
|
+
lastname: validators.lastname,
|
|
36
36
|
password: validators.password.required(),
|
|
37
37
|
})
|
|
38
38
|
.required()
|
|
@@ -9,7 +9,7 @@ const userCreationSchema = yup
|
|
|
9
9
|
.shape({
|
|
10
10
|
email: validators.email.required(),
|
|
11
11
|
firstname: validators.firstname.required(),
|
|
12
|
-
lastname: validators.lastname
|
|
12
|
+
lastname: validators.lastname,
|
|
13
13
|
roles: validators.roles.min(1),
|
|
14
14
|
preferedLanguage: yup.string().nullable(),
|
|
15
15
|
})
|
|
@@ -20,7 +20,7 @@ const profileUpdateSchema = yup
|
|
|
20
20
|
.shape({
|
|
21
21
|
email: validators.email.notNull(),
|
|
22
22
|
firstname: validators.firstname.notNull(),
|
|
23
|
-
lastname: validators.lastname.
|
|
23
|
+
lastname: validators.lastname.nullable(),
|
|
24
24
|
username: validators.username.nullable(),
|
|
25
25
|
password: validators.password.notNull(),
|
|
26
26
|
currentPassword: yup
|
|
@@ -36,7 +36,7 @@ const userUpdateSchema = yup
|
|
|
36
36
|
.shape({
|
|
37
37
|
email: validators.email.notNull(),
|
|
38
38
|
firstname: validators.firstname.notNull(),
|
|
39
|
-
lastname: validators.lastname.
|
|
39
|
+
lastname: validators.lastname.nullable(),
|
|
40
40
|
username: validators.username.nullable(),
|
|
41
41
|
password: validators.password.notNull(),
|
|
42
42
|
isActive: yup.bool().notNull(),
|
package/webpack.alias.js
CHANGED
|
@@ -7,12 +7,6 @@ const alias = [
|
|
|
7
7
|
'whatwg-fetch',
|
|
8
8
|
'@fortawesome/fontawesome-svg-core',
|
|
9
9
|
'@fortawesome/free-solid-svg-icons',
|
|
10
|
-
'@buffetjs/core',
|
|
11
|
-
'@buffetjs/custom',
|
|
12
|
-
'@buffetjs/custom',
|
|
13
|
-
'@buffetjs/utils',
|
|
14
|
-
'@buffetjs/icons',
|
|
15
|
-
'@buffetjs/hooks',
|
|
16
10
|
'classnames',
|
|
17
11
|
'history',
|
|
18
12
|
'hoist-non-react-statics',
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
|
|
3
|
-
import styled, { css } from 'styled-components';
|
|
4
|
-
import getColor from './utils/getColor';
|
|
5
|
-
|
|
6
|
-
const GrabWrapper = styled.div`
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
justify-content: center;
|
|
10
|
-
position: absolute;
|
|
11
|
-
top: 0px;
|
|
12
|
-
bottom: 0px;
|
|
13
|
-
left: 0;
|
|
14
|
-
padding-left: 10px;
|
|
15
|
-
border-right: 1px solid
|
|
16
|
-
${({ isOverEditBlock, isOverRemove, isSelected }) =>
|
|
17
|
-
getColor(isOverRemove, isSelected, isOverEditBlock)};
|
|
18
|
-
cursor: move;
|
|
19
|
-
z-index: 99;
|
|
20
|
-
|
|
21
|
-
${({ isOverRemove }) =>
|
|
22
|
-
isOverRemove &&
|
|
23
|
-
css`
|
|
24
|
-
g {
|
|
25
|
-
fill: #ffa784;
|
|
26
|
-
}
|
|
27
|
-
`}
|
|
28
|
-
|
|
29
|
-
${({ isSelected, isOverEditBlock }) =>
|
|
30
|
-
(isSelected || isOverEditBlock) &&
|
|
31
|
-
css`
|
|
32
|
-
g {
|
|
33
|
-
fill: #aed4fb;
|
|
34
|
-
}
|
|
35
|
-
`}
|
|
36
|
-
`;
|
|
37
|
-
|
|
38
|
-
export default GrabWrapper;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
|
|
3
|
-
const Link = styled.div`
|
|
4
|
-
position: absolute;
|
|
5
|
-
bottom: 4px;
|
|
6
|
-
left: 38px;
|
|
7
|
-
font-weight: 400;
|
|
8
|
-
color: #007eff;
|
|
9
|
-
cursor: pointer;
|
|
10
|
-
font-size: 13px;
|
|
11
|
-
svg {
|
|
12
|
-
margin-right: 7px;
|
|
13
|
-
font-size: 11px;
|
|
14
|
-
}
|
|
15
|
-
`;
|
|
16
|
-
|
|
17
|
-
export default Link;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
|
|
3
|
-
/* eslint-disable indent */
|
|
4
|
-
const NameWrapper = styled.div`
|
|
5
|
-
position: relative;
|
|
6
|
-
line-height: 26px;
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
text-overflow: ellipsis;
|
|
9
|
-
white-space: nowrap;
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
|
|
12
|
-
${({ isOverEditBlock, isOverRemove, isSelected }) => {
|
|
13
|
-
if (isOverRemove) {
|
|
14
|
-
return `
|
|
15
|
-
color: #f64d0a;
|
|
16
|
-
`;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (isSelected || isOverEditBlock) {
|
|
20
|
-
return `
|
|
21
|
-
color: #007eff;
|
|
22
|
-
`;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return '';
|
|
26
|
-
}}
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
export default NameWrapper;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import getColor from './utils/getColor';
|
|
3
|
-
|
|
4
|
-
/* eslint-disable indent */
|
|
5
|
-
const RemoveWrapper = styled.div`
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: column;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
position: absolute;
|
|
10
|
-
top: 0px;
|
|
11
|
-
bottom: 0px;
|
|
12
|
-
right: 0;
|
|
13
|
-
width: 30px;
|
|
14
|
-
text-align: center;
|
|
15
|
-
background-color: ${({ isOverEditBlock, isOverRemove, isSelected }) => {
|
|
16
|
-
return getColor(isOverRemove, isSelected, isOverEditBlock);
|
|
17
|
-
}};
|
|
18
|
-
cursor: pointer;
|
|
19
|
-
svg {
|
|
20
|
-
align-self: center;
|
|
21
|
-
color: #b4b6ba;
|
|
22
|
-
}
|
|
23
|
-
${({ isOverRemove }) =>
|
|
24
|
-
isOverRemove &&
|
|
25
|
-
`
|
|
26
|
-
path {
|
|
27
|
-
fill: #f64d0a;
|
|
28
|
-
}
|
|
29
|
-
`};
|
|
30
|
-
`;
|
|
31
|
-
|
|
32
|
-
export default RemoveWrapper;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import getColor from './utils/getColor';
|
|
5
|
-
import getHeight from './utils/getHeight';
|
|
6
|
-
|
|
7
|
-
const SubWrapper = styled.div`
|
|
8
|
-
position: relative;
|
|
9
|
-
min-height: ${({ withLongerHeight }) => getHeight(withLongerHeight)};
|
|
10
|
-
${({ withLongerHeight }) => {
|
|
11
|
-
if (!withLongerHeight) {
|
|
12
|
-
return `
|
|
13
|
-
height: 30px;
|
|
14
|
-
`;
|
|
15
|
-
}
|
|
16
|
-
}};
|
|
17
|
-
|
|
18
|
-
line-height: ${({ withLongerHeight }) => getHeight(withLongerHeight)};
|
|
19
|
-
cursor: pointer;
|
|
20
|
-
|
|
21
|
-
background: ${({ isOverEditBlock, isOverRemove, isSelected }) => {
|
|
22
|
-
if (isOverRemove) {
|
|
23
|
-
return '#ffe9e0';
|
|
24
|
-
} else if (isSelected || isOverEditBlock) {
|
|
25
|
-
return '#e6f0fb';
|
|
26
|
-
} else {
|
|
27
|
-
return '#fafafb';
|
|
28
|
-
}
|
|
29
|
-
}};
|
|
30
|
-
border: 1px solid
|
|
31
|
-
${({ isOverEditBlock, isOverRemove, isSelected }) =>
|
|
32
|
-
getColor(isOverRemove, isSelected, isOverEditBlock)};
|
|
33
|
-
border-radius: 2px;
|
|
34
|
-
`;
|
|
35
|
-
|
|
36
|
-
export default SubWrapper;
|