@strapi/admin 4.2.0-beta.1 → 4.2.0-beta.4

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.
Files changed (166) hide show
  1. package/admin/src/assets/images/homepage-logo.png +0 -0
  2. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +2 -6
  3. package/admin/src/components/ConfigurationsProvider/index.js +51 -0
  4. package/admin/src/components/ConfigurationsProvider/reducer.js +28 -0
  5. package/admin/src/components/GuidedTour/Homepage/index.js +1 -2
  6. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +1 -2
  7. package/admin/src/components/LeftMenu/index.js +19 -7
  8. package/admin/src/components/Notifications/Notification/index.js +2 -2
  9. package/admin/src/components/Providers/index.js +8 -4
  10. package/admin/src/components/UnauthenticatedLogo/index.js +4 -2
  11. package/admin/src/components/UpgradePlanModal/index.js +6 -2
  12. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  13. package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -2
  14. package/admin/src/content-manager/components/SelectWrapper/index.js +8 -7
  15. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +1 -1
  16. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +2 -2
  17. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -0
  18. package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -7
  19. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  20. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -2
  21. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -2
  22. package/admin/src/content-manager/pages/EditView/Header/index.js +3 -3
  23. package/admin/src/content-manager/pages/EditView/index.js +1 -4
  24. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -2
  25. package/admin/src/content-manager/pages/ListView/index.js +1 -1
  26. package/admin/src/content-manager/pages/NoContentType/index.js +1 -2
  27. package/admin/src/pages/App/index.js +7 -2
  28. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -2
  29. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  30. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -2
  31. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -2
  32. package/admin/src/pages/AuthPage/components/Register/index.js +12 -12
  33. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -4
  34. package/admin/src/pages/HomePage/ContentBlocks.js +15 -2
  35. package/admin/src/pages/HomePage/HomeHeader.js +2 -2
  36. package/admin/src/pages/HomePage/SocialLinks.js +4 -3
  37. package/admin/src/pages/InternalErrorPage/index.js +1 -2
  38. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +2 -1
  39. package/admin/src/pages/MarketplacePage/components/PluginCard/index.js +4 -3
  40. package/admin/src/pages/NotFoundPage/index.js +1 -2
  41. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +5 -4
  42. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +1 -1
  43. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +1 -1
  44. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +1 -1
  45. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +85 -0
  46. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/init.js +13 -0
  47. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +43 -0
  48. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +118 -0
  49. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +28 -0
  50. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +25 -0
  51. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +67 -0
  52. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +176 -0
  53. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +82 -0
  54. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +51 -0
  55. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +97 -0
  56. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +85 -0
  57. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +28 -0
  58. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +155 -87
  59. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +16 -0
  60. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +3 -0
  61. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +17 -0
  62. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +76 -0
  63. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +17 -0
  64. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +21 -0
  65. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  66. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +1 -1
  67. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +1 -2
  68. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +1 -1
  69. package/admin/src/translations/ca.json +699 -0
  70. package/admin/src/translations/en.json +26 -0
  71. package/admin/src/translations/languageNativeNames.js +1 -0
  72. package/admin/src/translations/ru.json +34 -0
  73. package/build/1541.6c1c96f9.chunk.js +307 -0
  74. package/build/1856.521a99fd.chunk.js +172 -0
  75. package/build/2077.51485bfb.chunk.js +194 -0
  76. package/build/2912.79c2b3c8.chunk.js +253 -0
  77. package/build/3214.9196aeff.chunk.js +235 -0
  78. package/build/3865.21cec9de.chunk.js +310 -0
  79. package/build/4073.e144a91a.chunk.js +1 -0
  80. package/build/4715.77e04177.chunk.js +385 -0
  81. package/build/{272.d442e5ca.chunk.js → 472.0350a5bd.chunk.js} +91 -102
  82. package/build/4982.f53b78a4.chunk.js +308 -0
  83. package/build/6229.a5cca9f2.chunk.js +194 -0
  84. package/build/7351.b95e65ae.chunk.js +428 -0
  85. package/build/7418.6db737ce.chunk.js +112 -0
  86. package/build/7841.f0e7d629.chunk.js +253 -0
  87. package/build/8826.58e236d4.chunk.js +1057 -0
  88. package/build/9066.118ecccd.chunk.js +101 -0
  89. package/build/{9298.dab64a1b.chunk.js → 9298.aff28744.chunk.js} +80 -91
  90. package/build/9420.cb0b75e8.chunk.js +508 -0
  91. package/build/{9988.9b6e1d79.chunk.js → 9988.f84412d9.chunk.js} +15 -14
  92. package/build/Admin-authenticatedApp.162a5805.chunk.js +80 -0
  93. package/build/Admin_homePage.0ac648e8.chunk.js +71 -0
  94. package/build/Admin_marketplace.0bb91ec8.chunk.js +11 -0
  95. package/build/Admin_settingsPage.23e873f0.chunk.js +178 -0
  96. package/build/admin-edit-roles-page.fb374555.chunk.js +1 -0
  97. package/build/admin-edit-users.a360deaf.chunk.js +10 -0
  98. package/build/api-tokens-create-page.698f132d.chunk.js +1 -0
  99. package/build/api-tokens-edit-page.afece2fe.chunk.js +1 -0
  100. package/build/api-tokens-list-page.46d96dee.chunk.js +15 -0
  101. package/build/ca-json.0097e443.chunk.js +1 -0
  102. package/build/content-manager.7cd28f84.chunk.js +1204 -0
  103. package/build/content-type-builder.7456cabe.chunk.js +141 -0
  104. package/build/{email-settings-page.d807edfd.chunk.js → email-settings-page.f67d13b2.chunk.js} +5 -5
  105. package/build/en-json.40ee00aa.chunk.js +1 -0
  106. package/build/fb376b132d18bf4522ca.png +0 -0
  107. package/build/{i18n-settings-page.c8f3b78b.chunk.js → i18n-settings-page.6b67cb75.chunk.js} +5 -5
  108. package/build/index.html +1 -1
  109. package/build/main.b632a0d6.js +11625 -0
  110. package/build/ru-json.28147733.chunk.js +1 -0
  111. package/build/runtime~main.38d418e9.js +2 -0
  112. package/build/{upload-settings.17202e3b.chunk.js → upload-settings.3db55de0.chunk.js} +5 -5
  113. package/build/upload-translation-ca-json.79159984.chunk.js +1 -0
  114. package/build/{upload.d647d59d.chunk.js → upload.070c189b.chunk.js} +5 -5
  115. package/build/{users-advanced-settings-page.22690469.chunk.js → users-advanced-settings-page.a23cda17.chunk.js} +5 -5
  116. package/build/users-roles-settings-page.988ebc3b.chunk.js +30 -0
  117. package/build/{webhook-edit-page.043fe03f.chunk.js → webhook-edit-page.a7ae6e3b.chunk.js} +3 -3
  118. package/build/webhook-list-page.83297d98.chunk.js +133 -0
  119. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  120. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  121. package/ee/server/controllers/user.js +4 -0
  122. package/package.json +9 -9
  123. package/server/config/admin-actions.js +14 -0
  124. package/server/controllers/admin.js +33 -1
  125. package/server/controllers/user.js +4 -0
  126. package/server/routes/admin.js +28 -0
  127. package/server/services/index.js +1 -0
  128. package/server/services/permission/permissions-manager/sanitize.js +22 -0
  129. package/server/services/project-settings.js +173 -0
  130. package/server/services/user.js +1 -1
  131. package/server/utils/index.d.ts +2 -0
  132. package/server/validation/project-settings.js +39 -0
  133. package/utils/create-cache-dir.js +2 -5
  134. package/webpack.config.js +2 -2
  135. package/admin/src/content-manager/components/DynamicComponentCard/index.js +0 -43
  136. package/build/1856.e2bce2e8.chunk.js +0 -171
  137. package/build/2481.5fe150c7.chunk.js +0 -184
  138. package/build/2912.5a7b0406.chunk.js +0 -252
  139. package/build/2a9e9ef5c4c775bb7c7b.png +0 -0
  140. package/build/306.28d21ab8.chunk.js +0 -896
  141. package/build/4073.4765687b.chunk.js +0 -1
  142. package/build/4715.7f616cf6.chunk.js +0 -387
  143. package/build/497.2ba35e90.chunk.js +0 -284
  144. package/build/4982.91235074.chunk.js +0 -310
  145. package/build/6229.f558fd19.chunk.js +0 -194
  146. package/build/6404.25d0f0d8.chunk.js +0 -508
  147. package/build/7841.0d73dde1.chunk.js +0 -252
  148. package/build/7863.996e70df.chunk.js +0 -112
  149. package/build/9853.6cc1043a.chunk.js +0 -354
  150. package/build/Admin-authenticatedApp.d26b3032.chunk.js +0 -80
  151. package/build/Admin_homePage.fc4a8408.chunk.js +0 -71
  152. package/build/Admin_marketplace.c406a140.chunk.js +0 -11
  153. package/build/Admin_settingsPage.c40fdef1.chunk.js +0 -170
  154. package/build/admin-edit-roles-page.c69fe8ab.chunk.js +0 -1
  155. package/build/admin-edit-users.be232f6b.chunk.js +0 -10
  156. package/build/api-tokens-create-page.9774f0fe.chunk.js +0 -1
  157. package/build/api-tokens-edit-page.8f03c9a1.chunk.js +0 -1
  158. package/build/api-tokens-list-page.126fbca6.chunk.js +0 -15
  159. package/build/content-manager.ca66b566.chunk.js +0 -1204
  160. package/build/content-type-builder.d12fd5cd.chunk.js +0 -141
  161. package/build/en-json.3e1a222e.chunk.js +0 -1
  162. package/build/main.36da7eeb.js +0 -7918
  163. package/build/ru-json.4560906c.chunk.js +0 -1
  164. package/build/runtime~main.251e9cca.js +0 -2
  165. package/build/users-roles-settings-page.487f3346.chunk.js +0 -30
  166. package/build/webhook-list-page.2d2d71a1.chunk.js +0 -132
@@ -14,6 +14,7 @@ const {
14
14
  uniq,
15
15
  intersection,
16
16
  pick,
17
+ getOr,
17
18
  } = require('lodash/fp');
18
19
 
19
20
  const { contentTypes, traverseEntity, sanitize, pipeAsync } = require('@strapi/utils');
@@ -46,6 +47,8 @@ module.exports = ({ action, ability, model }) => {
46
47
  const permittedFields = fields.shouldIncludeAll ? null : getOutputFields(fields.permitted);
47
48
 
48
49
  return pipeAsync(
50
+ // Remove fields hidden from the admin
51
+ traverseEntity(omitHiddenFields, { schema }),
49
52
  // Remove unallowed fields from admin::user relations
50
53
  traverseEntity(pickAllowedAdminUserFields, { schema }),
51
54
  // Remove not allowed fields (RBAC)
@@ -61,6 +64,8 @@ module.exports = ({ action, ability, model }) => {
61
64
  const permittedFields = fields.shouldIncludeAll ? null : getInputFields(fields.permitted);
62
65
 
63
66
  return pipeAsync(
67
+ // Remove fields hidden from the admin
68
+ traverseEntity(omitHiddenFields, { schema }),
64
69
  // Remove not allowed fields (RBAC)
65
70
  traverseEntity(allowedFields(permittedFields), { schema }),
66
71
  // Remove roles from createdBy & updateBy fields
@@ -107,8 +112,25 @@ module.exports = ({ action, ability, model }) => {
107
112
  return defaults({ subject: asSubject(model, data), action }, options);
108
113
  };
109
114
 
115
+ /**
116
+ * Omit creator fields' (createdBy & updatedBy) roles from the admin API responses
117
+ */
110
118
  const omitCreatorRoles = omit([`${CREATED_BY_ATTRIBUTE}.roles`, `${UPDATED_BY_ATTRIBUTE}.roles`]);
111
119
 
120
+ /**
121
+ * Visitor used to remove hidden fields from the admin API responses
122
+ */
123
+ const omitHiddenFields = ({ key, schema }, { remove }) => {
124
+ const isHidden = getOr(false, ['config', 'attributes', key, 'hidden'], schema);
125
+
126
+ if (isHidden) {
127
+ remove(key);
128
+ }
129
+ };
130
+
131
+ /**
132
+ * Visitor used to only select needed fields from the admin users entities & avoid leaking sensitive information
133
+ */
112
134
  const pickAllowedAdminUserFields = ({ attribute, key, value }, { set }) => {
113
135
  const pickAllowedFields = pick(['id', 'firstname', 'lastname', 'username']);
114
136
 
@@ -0,0 +1,173 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const { pick } = require('lodash');
5
+
6
+ const PROJECT_SETTINGS_FILE_INPUTS = ['menuLogo'];
7
+ const DEFAULT_PROJECT_SETTINGS = {
8
+ menuLogo: null,
9
+ };
10
+
11
+ const parseFilesData = async files => {
12
+ const formatedFilesData = {};
13
+
14
+ await Promise.all(
15
+ PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
16
+ const file = files[inputName];
17
+
18
+ // Skip empty file inputs
19
+ if (!file) {
20
+ return;
21
+ }
22
+
23
+ const getStream = () => fs.createReadStream(file.path);
24
+
25
+ // Add formated data for the upload provider
26
+ formatedFilesData[inputName] = strapi
27
+ .plugin('upload')
28
+ .service('upload')
29
+ .formatFileInfo({
30
+ filename: file.name,
31
+ type: file.type,
32
+ size: file.size,
33
+ });
34
+
35
+ // Add image dimensions
36
+ Object.assign(
37
+ formatedFilesData[inputName],
38
+ await strapi
39
+ .plugin('upload')
40
+ .service('image-manipulation')
41
+ .getDimensions({ getStream })
42
+ );
43
+
44
+ // Add file path, and stream
45
+ Object.assign(formatedFilesData[inputName], {
46
+ stream: getStream(),
47
+ tmpPath: file.path,
48
+ provider: strapi.config.get('plugin.upload').provider,
49
+ });
50
+ })
51
+ );
52
+
53
+ return formatedFilesData;
54
+ };
55
+
56
+ const getProjectSettings = async () => {
57
+ const store = strapi.store({ type: 'core', name: 'admin' });
58
+ const projectSettings = {
59
+ ...DEFAULT_PROJECT_SETTINGS,
60
+ ...(await store.get({ key: 'project-settings' })),
61
+ };
62
+
63
+ // Filter file input fields
64
+ PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
65
+ if (!projectSettings[inputName]) {
66
+ return;
67
+ }
68
+
69
+ projectSettings[inputName] = pick(projectSettings[inputName], [
70
+ 'name',
71
+ 'url',
72
+ 'width',
73
+ 'height',
74
+ 'ext',
75
+ 'size',
76
+ ]);
77
+ });
78
+
79
+ return projectSettings;
80
+ };
81
+
82
+ const uploadFiles = async (files = {}) => {
83
+ // Call the provider upload function for each file
84
+ return Promise.all(
85
+ Object.values(files)
86
+ .filter(file => file.stream instanceof fs.ReadStream)
87
+ .map(file => strapi.plugin('upload').provider.uploadStream(file))
88
+ );
89
+ };
90
+
91
+ const deleteOldFiles = async ({ previousSettings, newSettings }) => {
92
+ return Promise.all(
93
+ PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
94
+ // Skip if the store doesn't contain project settings
95
+ if (!previousSettings) {
96
+ return;
97
+ }
98
+
99
+ // Skip if there was no previous file
100
+ if (!previousSettings[inputName]) {
101
+ return;
102
+ }
103
+
104
+ // Skip if the file was not changed
105
+ if (
106
+ newSettings[inputName] &&
107
+ previousSettings[inputName].hash === newSettings[inputName].hash
108
+ ) {
109
+ return;
110
+ }
111
+
112
+ // Skip if the file was not uploaded with the current provider
113
+ if (strapi.config.get('plugin.upload').provider !== previousSettings[inputName].provider) {
114
+ return;
115
+ }
116
+
117
+ // There was a previous file and an new file was uploaded
118
+ // Remove the previous file
119
+ strapi.plugin('upload').provider.delete(previousSettings[inputName]);
120
+ })
121
+ );
122
+ };
123
+
124
+ const updateProjectSettings = async newSettings => {
125
+ const store = strapi.store({ type: 'core', name: 'admin' });
126
+ const previousSettings = await store.get({ key: 'project-settings' });
127
+ const files = pick(newSettings, PROJECT_SETTINGS_FILE_INPUTS);
128
+
129
+ await uploadFiles(files);
130
+
131
+ PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
132
+ // If the user input exists but is not a formdata "file" remove it
133
+ if (newSettings[inputName] !== undefined && !(typeof newSettings[inputName] === 'object')) {
134
+ newSettings[inputName] = null;
135
+ return;
136
+ }
137
+
138
+ // If the user input is undefined reuse previous setting (do not update field)
139
+ if (!newSettings[inputName]) {
140
+ newSettings[inputName] = previousSettings[inputName];
141
+ return;
142
+ }
143
+
144
+ // Update the file
145
+ newSettings[inputName] = pick(newSettings[inputName], [
146
+ 'name',
147
+ 'hash',
148
+ 'url',
149
+ 'width',
150
+ 'height',
151
+ 'ext',
152
+ 'size',
153
+ 'provider',
154
+ ]);
155
+ });
156
+
157
+ // No await to proceed asynchronously
158
+ deleteOldFiles({ previousSettings, newSettings });
159
+
160
+ await store.set({
161
+ key: 'project-settings',
162
+ value: { ...previousSettings, ...newSettings },
163
+ });
164
+
165
+ return getProjectSettings();
166
+ };
167
+
168
+ module.exports = {
169
+ deleteOldFiles,
170
+ parseFilesData,
171
+ getProjectSettings,
172
+ updateProjectSettings,
173
+ };
@@ -17,7 +17,7 @@ const sanitizeUserRoles = role => _.pick(role, ['id', 'name', 'description', 'co
17
17
  */
18
18
  const sanitizeUser = user => {
19
19
  return {
20
- ..._.omit(user, ['password', 'resetPasswordToken', 'roles']),
20
+ ..._.omit(user, ['password', 'resetPasswordToken', 'registrationToken', 'roles']),
21
21
  roles: user.roles && user.roles.map(sanitizeUserRoles),
22
22
  };
23
23
  };
@@ -6,6 +6,7 @@ import * as metrics from '../services/metrics';
6
6
  import * as token from '../services/token';
7
7
  import * as auth from '../services/auth';
8
8
  import * as apiToken from '../services/api-token';
9
+ import * as projectSettings from '../services/project-settings';
9
10
 
10
11
  type S = {
11
12
  role: typeof role;
@@ -16,6 +17,7 @@ type S = {
16
17
  auth: typeof auth;
17
18
  metrics: typeof metrics;
18
19
  'api-token': typeof apiToken;
20
+ 'project-settings': typeof projectSettings;
19
21
  };
20
22
 
21
23
  export function getService<T extends keyof S>(name: T): S[T];
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ const { yup, validateYupSchemaSync } = require('@strapi/utils');
4
+
5
+ const MAX_IMAGE_WIDTH = 750;
6
+ const MAX_IMAGE_HEIGHT = MAX_IMAGE_WIDTH;
7
+ const MAX_IMAGE_FILE_SIZE = 1024 * 1024; // 1Mo
8
+ const ALLOWED_IMAGE_FILE_TYPES = ['image/jpeg', 'image/png', 'image/svg+xml'];
9
+
10
+ const updateProjectSettings = yup
11
+ .object({
12
+ menuLogo: yup.string(),
13
+ })
14
+ .noUnknown();
15
+
16
+ const updateProjectSettingsFiles = yup
17
+ .object({
18
+ menuLogo: yup.object({
19
+ name: yup.string(),
20
+ type: yup.string().oneOf(ALLOWED_IMAGE_FILE_TYPES),
21
+ size: yup.number().max(MAX_IMAGE_FILE_SIZE),
22
+ }),
23
+ })
24
+ .noUnknown();
25
+
26
+ const updateProjectSettingsImagesDimensions = yup.object({
27
+ menuLogo: yup.object({
28
+ width: yup.number().max(MAX_IMAGE_WIDTH),
29
+ height: yup.number().max(MAX_IMAGE_HEIGHT),
30
+ }),
31
+ });
32
+
33
+ module.exports = {
34
+ validateUpdateProjectSettings: validateYupSchemaSync(updateProjectSettings),
35
+ validateUpdateProjectSettingsFiles: validateYupSchemaSync(updateProjectSettingsFiles),
36
+ validateUpdateProjectSettingsImagesDimensions: validateYupSchemaSync(
37
+ updateProjectSettingsImagesDimensions
38
+ ),
39
+ };
@@ -71,10 +71,7 @@ async function copyAdmin(dest) {
71
71
  async function createCacheDir({ appDir, plugins }) {
72
72
  const cacheDir = path.resolve(appDir, '.cache');
73
73
 
74
- const useTypeScript = await isUsingTypeScript(
75
- path.join(appDir, 'src', 'admin'),
76
- 'tsconfig.json'
77
- );
74
+ const useTypeScript = await isUsingTypeScript(path.join(appDir, 'src', 'admin'), 'tsconfig.json');
78
75
 
79
76
  const pluginsWithFront = Object.keys(plugins)
80
77
  .filter(pluginName => {
@@ -146,7 +143,7 @@ async function createTSConfigFile(dest) {
146
143
  noEmit: false,
147
144
  incremental: true,
148
145
  },
149
- include: ['../../../src/admin/src/*', '../../../src/**/**/admin/src/*'],
146
+ include: ['../../../src/admin/*', '../../../src/**/**/admin/src/*'],
150
147
  exclude: ['node_modules', '**/*.test.js', '*.js'],
151
148
  };
152
149
 
package/webpack.config.js CHANGED
@@ -95,7 +95,7 @@ module.exports = ({
95
95
  },
96
96
  },
97
97
  {
98
- test: /\.m?js$/,
98
+ test: /\.m?jsx?$/,
99
99
  include: cacheDir,
100
100
  oneOf: [
101
101
  // Use babel-loader for files that distinct the ee and ce code
@@ -162,7 +162,7 @@ module.exports = ({
162
162
  ],
163
163
  },
164
164
  {
165
- test: /\.m?js$/,
165
+ test: /\.m?jsx?$/,
166
166
  include: pluginsPath,
167
167
  use: {
168
168
  loader: require.resolve('esbuild-loader'),
@@ -1,43 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
- import Wrapper from './Wrapper';
5
-
6
- const DynamicComponentCard = ({ children, componentUid, friendlyName, icon, onClick }) => {
7
- return (
8
- <Wrapper
9
- onClick={e => {
10
- e.preventDefault();
11
- e.stopPropagation();
12
-
13
- onClick(componentUid);
14
- }}
15
- >
16
- <button className="component-icon" type="button">
17
- <FontAwesomeIcon icon={icon} />
18
- </button>
19
-
20
- <div className="component-uid">
21
- <span>{friendlyName}</span>
22
- </div>
23
- {children}
24
- </Wrapper>
25
- );
26
- };
27
-
28
- DynamicComponentCard.defaultProps = {
29
- children: null,
30
- friendlyName: '',
31
- onClick: () => {},
32
- icon: 'smile',
33
- };
34
-
35
- DynamicComponentCard.propTypes = {
36
- children: PropTypes.node,
37
- componentUid: PropTypes.string.isRequired,
38
- friendlyName: PropTypes.string,
39
- icon: PropTypes.string,
40
- onClick: PropTypes.func,
41
- };
42
-
43
- export default DynamicComponentCard;
@@ -1,171 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1856],{11856:(V,on,I)=>{"use strict";V.exports=I(34796)},34796:function(V,on,I){(function(Z,X){V.exports=X(I(32735),I(19615))})(this,function(Z,X){return function(o){var f={};function t(a){if(f[a])return f[a].exports;var i=f[a]={i:a,l:!1,exports:{}};return o[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=o,t.c=f,t.d=function(a,i,c){t.o(a,i)||Object.defineProperty(a,i,{enumerable:!0,get:c})},t.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},t.t=function(a,i){if(1&i&&(a=t(a)),8&i||4&i&&typeof a=="object"&&a&&a.__esModule)return a;var c=Object.create(null);if(t.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:a}),2&i&&typeof a!="string")for(var s in a)t.d(c,s,function(e){return a[e]}.bind(null,s));return c},t.n=function(a){var i=a&&a.__esModule?function(){return a.default}:function(){return a};return t.d(i,"a",i),i},t.o=function(a,i){return Object.prototype.hasOwnProperty.call(a,i)},t.p="",t(t.s=96)}({0:function(o,f,t){o.exports=t(17)()},1:function(o,f){o.exports=Z},10:function(o,f,t){var a=t(23),i=t(24),c=t(20),s=t(25);o.exports=function(e,u){return a(e)||i(e,u)||c(e,u)||s()},o.exports.default=o.exports,o.exports.__esModule=!0},13:function(o,f){function t(a){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(o.exports=t=function(i){return typeof i},o.exports.default=o.exports,o.exports.__esModule=!0):(o.exports=t=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},o.exports.default=o.exports,o.exports.__esModule=!0),t(a)}o.exports=t,o.exports.default=o.exports,o.exports.__esModule=!0},17:function(o,f,t){"use strict";var a=t(18);function i(){}function c(){}c.resetWarningCache=i,o.exports=function(){function s(m,d,y,p,n,r){if(r!==a){var l=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 l.name="Invariant Violation",l}}function e(){return s}s.isRequired=s;var u={array:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:e,element:s,elementType:s,instanceOf:e,node:s,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:c,resetWarningCache:i};return u.PropTypes=u,u}},18:function(o,f,t){"use strict";o.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},19:function(o,f){o.exports=function(t,a){(a==null||a>t.length)&&(a=t.length);for(var i=0,c=new Array(a);i<a;i++)c[i]=t[i];return c},o.exports.default=o.exports,o.exports.__esModule=!0},2:function(o,f){o.exports=X},20:function(o,f,t){var a=t(19);o.exports=function(i,c){if(i){if(typeof i=="string")return a(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)?a(i,c):void 0}},o.exports.default=o.exports,o.exports.__esModule=!0},22:function(o,f){o.exports=function(t,a){if(t==null)return{};var i,c,s={},e=Object.keys(t);for(c=0;c<e.length;c++)i=e[c],a.indexOf(i)>=0||(s[i]=t[i]);return s},o.exports.default=o.exports,o.exports.__esModule=!0},23:function(o,f){o.exports=function(t){if(Array.isArray(t))return t},o.exports.default=o.exports,o.exports.__esModule=!0},24:function(o,f){o.exports=function(t,a){var i=t==null?null:typeof Symbol!="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(i!=null){var c,s,e=[],u=!0,m=!1;try{for(i=i.call(t);!(u=(c=i.next()).done)&&(e.push(c.value),!a||e.length!==a);u=!0);}catch(d){m=!0,s=d}finally{try{u||i.return==null||i.return()}finally{if(m)throw s}}return e}},o.exports.default=o.exports,o.exports.__esModule=!0},25:function(o,f){o.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},o.exports.default=o.exports,o.exports.__esModule=!0},3:function(o,f){o.exports=function(t,a){return a||(a=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(a)}}))},o.exports.default=o.exports,o.exports.__esModule=!0},4:function(o,f,t){"use strict";t.r(f),t.d(f,"Box",function(){return p});var a,i=t(3),c=t.n(i),s=t(0),e=t.n(s),u=t(2),m=t.n(u),d=t(7),y={color:!0},p=m.a.div.withConfig({shouldForwardProp:function(n,r){return!y[n]&&r(n)}})(a||(a=c()([`
3
- // Font
4
- font-size: `,`;
5
-
6
- // Colors
7
- background: `,`;
8
- color: `,`;
9
-
10
- // Spaces
11
- `,`
12
- `,`
13
- `,`
14
- `,`
15
- `,`
16
- `,`
17
- `,`
18
- `,`
19
- `,`
20
-
21
- // Responsive hiding
22
- `,`
23
- `,`
24
-
25
-
26
- // Borders
27
- border-radius: `,`;
28
- border-style: `,`;
29
- border-width: `,`;
30
- border-color: `,`;
31
- border: `,`;
32
-
33
- // Shadows
34
- box-shadow: `,`;
35
-
36
- // Handlers
37
- pointer-events: `,`;
38
- &:hover {
39
- `,`
40
- }
41
-
42
- // Display
43
- display: `,`;
44
-
45
- // Position
46
- position: `,`;
47
- left: `,`;
48
- right: `,`;
49
- top: `,`;
50
- bottom: `,`;
51
- z-index: `,`;
52
- overflow: `,`;
53
- cursor: `,`;
54
-
55
- // Size
56
- width: `,`;
57
- max-width: `,`;
58
- min-width: `,`;
59
- height: `,`;
60
- max-height: `,`;
61
- min-height: `,`;
62
-
63
- // Animation
64
- transition: `,`;
65
- transform: `,`;
66
- animation: `,`;
67
-
68
- //Flexbox children props
69
- flex-shrink: `,`;
70
- flex-grow: `,`;
71
- flex-basis: `,`;
72
- flex: `,`;
73
-
74
- // Text
75
- text-align: `,`;
76
- text-transform: `,`;
77
- line-height: `,`;
78
-
79
- // Cursor
80
- cursor: `,`;
81
- `])),function(n){var r=n.fontSize;return n.theme.fontSizes[r]||r},function(n){var r=n.theme,l=n.background;return r.colors[l]},function(n){var r=n.theme,l=n.color;return r.colors[l]},function(n){var r=n.theme,l=n.padding;return Object(d.a)("padding",l,r)},function(n){var r=n.theme,l=n.paddingTop;return Object(d.a)("padding-top",l,r)},function(n){var r=n.theme,l=n.paddingRight;return Object(d.a)("padding-right",l,r)},function(n){var r=n.theme,l=n.paddingBottom;return Object(d.a)("padding-bottom",l,r)},function(n){var r=n.theme,l=n.paddingLeft;return Object(d.a)("padding-left",l,r)},function(n){var r=n.theme,l=n.marginLeft;return Object(d.a)("margin-left",l,r)},function(n){var r=n.theme,l=n.marginRight;return Object(d.a)("margin-right",l,r)},function(n){var r=n.theme,l=n.marginTop;return Object(d.a)("margin-top",l,r)},function(n){var r=n.theme,l=n.marginBottom;return Object(d.a)("margin-bottom",l,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,l=n.hasRadius,x=n.borderRadius;return l?r.borderRadius:x},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,l=n.borderColor,x=n.borderStyle,O=n.borderWidth;if(l&&!x&&!O)return"1px solid ".concat(r.colors[l])},function(n){var r=n.theme,l=n.shadow;return r.shadows[l]},function(n){return n.pointerEvents},function(n){var r=n._hover,l=n.theme;return r?r(l):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});p.displayName="Box",p.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(){}},p.propTypes={_hover:e.a.func,background:e.a.string,basis:e.a.oneOfType([e.a.string,e.a.string]),borderColor:e.a.string,children:e.a.oneOfType([e.a.node,e.a.string]),color:e.a.string,flex:e.a.oneOfType([e.a.string,e.a.string]),grow:e.a.oneOfType([e.a.string,e.a.string]),hasRadius:e.a.bool,hiddenS:e.a.bool,hiddenXS:e.a.bool,padding:e.a.oneOfType([e.a.number,e.a.arrayOf(e.a.number)]),paddingBottom:e.a.oneOfType([e.a.number,e.a.arrayOf(e.a.number)]),paddingLeft:e.a.oneOfType([e.a.number,e.a.arrayOf(e.a.number)]),paddingRight:e.a.oneOfType([e.a.number,e.a.arrayOf(e.a.number)]),paddingTop:e.a.oneOfType([e.a.number,e.a.arrayOf(e.a.number)]),shadow:e.a.string,shrink:e.a.oneOfType([e.a.string,e.a.string])}},47:function(o,f,t){"use strict";t.d(f,"a",function(){return i});var a=t(1),i=function(c,s){Object(a.useEffect)(function(){var e=new ResizeObserver(s);return Array.isArray(c)?c.map(function(u){return e.observe(u.current)}):e.observe(c.current),function(){e.disconnect()}},[])}},49:function(o,f,t){"use strict";t.r(f),t.d(f,"Grid",function(){return k}),t.d(f,"GridItem",function(){return P});var a,i=t(6),c=t.n(i),s=t(5),e=t.n(s),u=t(3),m=t.n(u),d=t(1),y=t.n(d),p=t(2),n=t.n(p),r=t(0),l=t.n(r),x=Object(d.createContext)({gap:0,gridCols:12}),O=t(4),W=t(7),S=["gap","gridCols"],F=n()(O.Box)(a||(a=m()([`
82
- display: grid;
83
- grid-template-columns: repeat(`,`, 1fr);
84
- `,`
85
- `])),function(h){return h.gridCols},function(h){var j=h.theme,w=h.gap;return Object(W.a)("gap",w,j)}),k=function(h){var j=h.gap,w=h.gridCols,L=e()(h,S);return y.a.createElement(x.Provider,{value:{gap:j,gridCols:w}},y.a.createElement(F,c()({gap:j,gridCols:w},L)))};k.defaultProps={gap:0,gridCols:12},k.propTypes={gap:l.a.oneOfType([l.a.number,l.a.arrayOf(l.a.number)]),gridCols:l.a.number};var R,N=["col","xs","s"],q=n.a.div(R||(R=m()([`
86
- grid-column: span `,`;
87
- max-width: 100%;
88
-
89
- `,` {
90
- grid-column: span `,`;
91
- }
92
-
93
- `,` {
94
- grid-column: span `,`;
95
- }
96
- `])),function(h){return h.col},function(h){return h.theme.mediaQueries.tablet},function(h){return h.s},function(h){return h.theme.mediaQueries.mobile},function(h){return h.xs}),P=function(h){var j=h.col,w=h.xs,L=h.s,A=e()(h,N),C=Object(d.useContext)(x),Y=C.gap,$=C.gridCols;return y.a.createElement(q,{gap:Y,gridCols:$,col:j,xs:w,s:L},y.a.createElement(O.Box,A))};P.defaultProps={col:void 0,s:void 0,xs:void 0},P.propTypes={col:l.a.number,s:l.a.number,xs:l.a.number}},5:function(o,f,t){var a=t(22);o.exports=function(i,c){if(i==null)return{};var s,e,u=a(i,c);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);for(e=0;e<m.length;e++)s=m[e],c.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(i,s)&&(u[s]=i[s])}return u},o.exports.default=o.exports,o.exports.__esModule=!0},6:function(o,f){function t(){return o.exports=t=Object.assign||function(a){for(var i=1;i<arguments.length;i++){var c=arguments[i];for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(a[s]=c[s])}return a},o.exports.default=o.exports,o.exports.__esModule=!0,t.apply(this,arguments)}o.exports=t,o.exports.default=o.exports,o.exports.__esModule=!0},7:function(o,f,t){"use strict";var a=t(10),i=t.n(a),c=t(13),s=t.n(c);f.a=function(e,u,m){var d=u;if(Array.isArray(u)||s()(u)!=="object"||(d=[u==null?void 0:u.desktop,u==null?void 0:u.tablet,u==null?void 0:u.mobile]),d!==void 0){if(Array.isArray(d)){var y=d,p=i()(y,3),n=p[0],r=p[1],l=p[2],x="".concat(e,": ").concat(m.spaces[n],";");return r!==void 0&&(x+="".concat(m.mediaQueries.tablet,`{
97
- `).concat(e,": ").concat(m.spaces[r],`;
98
- }`)),l!==void 0&&(x+="".concat(m.mediaQueries.mobile,`{
99
- `).concat(e,": ").concat(m.spaces[l],`;
100
- }`)),x}var O=m.spaces[d]||d;return"".concat(e,": ").concat(O,";")}}},8:function(o,f,t){"use strict";t.r(f),t.d(f,"Typography",function(){return y});var a,i=t(3),c=t.n(i),s=t(0),e=t.n(s),u=t(2),m=["alpha","beta","delta","epsilon","omega","pi","sigma"],d={fontSize:!0,fontWeight:!0},y=t.n(u).a.span.withConfig({shouldForwardProp:function(p,n){return!d[p]&&n(p)}})(a||(a=c()([`
101
- font-weight: `,`;
102
- font-size: `,`;
103
- line-height: `,`;
104
- color: `,`;
105
- text-transform: `,`;
106
- `,`
107
- `,`
108
- `])),function(p){var n=p.theme,r=p.fontWeight;return n.fontWeights[r]},function(p){var n=p.theme,r=p.fontSize;return n.fontSizes[r]},function(p){var n=p.theme,r=p.lineHeight;return n.lineHeights[r]},function(p){var n=p.theme,r=p.textColor;return n.colors[r||"neutral800"]},function(p){return p.textTransform},function(p){return p.ellipsis&&`
109
- display: block;
110
- white-space: nowrap;
111
- overflow: hidden;
112
- text-overflow: ellipsis;
113
- `},function(p){var n=p.variant,r=p.theme;switch(n){case"alpha":return`
114
- font-weight: `.concat(r.fontWeights.bold,`;
115
- font-size: `).concat(r.fontSizes[5],`;
116
- line-height: `).concat(r.lineHeights[2],`;
117
- `);case"beta":return`
118
- font-weight: `.concat(r.fontWeights.bold,`;
119
- font-size: `).concat(r.fontSizes[4],`;
120
- line-height: `).concat(r.lineHeights[1],`;
121
- `);case"delta":return`
122
- font-weight: `.concat(r.fontWeights.semiBold,`;
123
- font-size: `).concat(r.fontSizes[3],`;
124
- line-height: `).concat(r.lineHeights[2],`;
125
- `);case"epsilon":return`
126
- font-size: `.concat(r.fontSizes[3],`;
127
- line-height: `).concat(r.lineHeights[6],`;
128
- `);case"omega":return`
129
- font-size: `.concat(r.fontSizes[2],`;
130
- line-height: `).concat(r.lineHeights[4],`;
131
- `);case"pi":return`
132
- font-size: `.concat(r.fontSizes[1],`;
133
- line-height: `).concat(r.lineHeights[3],`;
134
- `);case"sigma":return`
135
- font-weight: `.concat(r.fontWeights.bold,`;
136
- font-size: `).concat(r.fontSizes[0],`;
137
- line-height: `).concat(r.lineHeights[5],`;
138
- text-transform: uppercase;
139
- `);default:return`
140
- font-size: `.concat(r.fontSizes[2],`;
141
- `)}});y.defaultProps={fontWeight:void 0,fontSize:void 0,lineHeight:void 0,textColor:void 0,textTransform:void 0,variant:"omega"},y.propTypes={fontSize:e.a.oneOfType([e.a.number,e.a.string]),fontWeight:e.a.string,lineHeight:e.a.oneOfType([e.a.number,e.a.string]),textColor:e.a.string,textTransform:e.a.string,variant:e.a.oneOf(m)}},9:function(o,f,t){"use strict";t.r(f),t.d(f,"Flex",function(){return p});var a,i=t(3),c=t.n(i),s=t(0),e=t.n(s),u=t(2),m=t.n(u),d=t(4),y={direction:!0},p=m()(d.Box).withConfig({shouldForwardProp:function(n,r){return!y[n]&&r(n)}})(a||(a=c()([`
142
- display: `,`;
143
- flex-direction: `,`;
144
- justify-content: `,`;
145
- align-items: `,`;
146
- flex-wrap: `,`;
147
- `])),function(n){return n.inline?"inline-flex":"flex"},function(n){return n.direction},function(n){return n.justifyContent},function(n){return n.alignItems},function(n){return n.wrap});p.defaultProps={alignItems:"center",basis:void 0,direction:"row",inline:!1,justifyContent:void 0,reverse:!1,wrap:void 0},p.propTypes={alignItems:e.a.string,basis:e.a.oneOfType([e.a.string,e.a.number]),direction:e.a.string,inline:e.a.bool,justifyContent:e.a.string,reverse:e.a.bool,wrap:e.a.string}},96:function(o,f,t){"use strict";t.r(f),t.d(f,"Layout",function(){return x}),t.d(f,"ActionLayout",function(){return R}),t.d(f,"ContentLayout",function(){return N}),t.d(f,"HeaderLayout",function(){return G}),t.d(f,"BaseHeaderLayout",function(){return B}),t.d(f,"TwoColsLayout",function(){return tn}),t.d(f,"GridLayout",function(){return en});var a,i,c=t(3),s=t.n(c),e=t(1),u=t.n(e),m=t(0),d=t.n(m),y=t(2),p=t.n(y),n=t(4),r=p()(n.Box)(a||(a=s()([`
148
- display: grid;
149
- grid-template-columns: `,`;
150
- `])),function(g){return g.hasSideNav?"auto 1fr":"1fr"}),l=p()(n.Box)(i||(i=s()([`
151
- overflow-x: hidden;
152
- `]))),x=function(g){var v=g.sideNav,b=g.children;return u.a.createElement(r,{hasSideNav:Boolean(v)},v,u.a.createElement(l,{paddingBottom:10},b))};x.defaultProps={sideNav:void 0},x.propTypes={children:d.a.node.isRequired,sideNav:d.a.node};var O,W,S=t(9),F=p()(S.Flex)(O||(O=s()([`
153
- & > * + * {
154
- margin-left: `,`;
155
- }
156
-
157
- margin-left: `,`;
158
- `])),function(g){return g.theme.spaces[2]},function(g){return g.pullRight?"auto":void 0}),k=p()(F)(W||(W=s()([`
159
- flex-shrink: 0;
160
- `]))),R=function(g){var v=g.startActions,b=g.endActions;return v||b?u.a.createElement(n.Box,{paddingLeft:10,paddingRight:10},u.a.createElement(n.Box,{paddingBottom:4},u.a.createElement(S.Flex,{justifyContent:"space-between",alignItems:"flex-start"},v&&u.a.createElement(F,{wrap:"wrap"},v),b&&u.a.createElement(k,{pullRight:!0},b)))):null};R.defaultProps={endActions:void 0,startActions:void 0},R.propTypes={endActions:d.a.node,startActions:d.a.node};var N=function(g){var v=g.children;return u.a.createElement(n.Box,{paddingLeft:10,paddingRight:10},v)};N.propTypes={children:d.a.node.isRequired};var q,P=t(5),h=t.n(P),j=t(6),w=t.n(j),L=t(10),A=t.n(L),C=t(8),Y=t(47),$=["navigationAction","primaryAction","secondaryAction","subtitle","title","sticky","width"],an=function(){var g=Object(e.useRef)(null),v=Object(e.useState)(null),b=A()(v,2),E=b[0],T=b[1],_=function(M){var Q=Object(e.useRef)(null),sn=Object(e.useState)(!0),rn=A()(sn,2),cn=rn[0],dn=rn[1],ln=function(D){var U=A()(D,1)[0];dn(U.isIntersecting)};return Object(e.useEffect)(function(){var D=Q.current,U=new IntersectionObserver(ln,M);return D&&U.observe(Q.current),function(){D&&U.disconnect()}},[Q,M]),[Q,cn]}({root:null,rootMargin:"0px",threshold:0}),H=A()(_,2),z=H[0],K=H[1];return Object(Y.a)(z,function(){z.current&&T(z.current.getBoundingClientRect())}),Object(e.useEffect)(function(){g.current&&T(g.current.getBoundingClientRect())},[g]),{containerRef:z,isVisible:K,baseHeaderLayoutRef:g,headerSize:E}},G=function(g){var v=an(),b=v.containerRef,E=v.isVisible,T=v.baseHeaderLayoutRef,_=v.headerSize;return u.a.createElement(u.a.Fragment,null,u.a.createElement("div",{style:{height:_==null?void 0:_.height},ref:b},E&&u.a.createElement(B,w()({ref:T},g))),!E&&u.a.createElement(B,w()({},g,{sticky:!0,width:_==null?void 0:_.width})))};G.displayName="HeaderLayout";var un=p()(n.Box)(q||(q=s()([`
161
- position: fixed;
162
- top: 0;
163
- right: 0;
164
- width: `,`px;
165
- z-index: 4;
166
- box-shadow: `,`;
167
- `])),function(g){return g.width},function(g){return g.theme.shadows.tableShadow}),B=u.a.forwardRef(function(g,v){var b=g.navigationAction,E=g.primaryAction,T=g.secondaryAction,_=g.subtitle,H=g.title,z=g.sticky,K=g.width,M=h()(g,$);return z?u.a.createElement(un,{paddingLeft:6,paddingRight:6,paddingTop:3,paddingBottom:3,background:"neutral0",width:K,"data-strapi-header-sticky":!0},u.a.createElement(S.Flex,{justifyContent:"space-between"},u.a.createElement(S.Flex,null,b&&u.a.createElement(n.Box,{paddingRight:3},b),u.a.createElement(n.Box,null,u.a.createElement(C.Typography,w()({variant:"beta",as:"h1"},M),H),u.a.createElement(C.Typography,{variant:"pi",textColor:"neutral600"},_)),T?u.a.createElement(n.Box,{paddingLeft:4},T):null),u.a.createElement(S.Flex,null,E?u.a.createElement(n.Box,{paddingLeft:2},E):void 0))):u.a.createElement(n.Box,{ref:v,paddingLeft:10,paddingRight:10,paddingBottom:8,paddingTop:b?6:8,background:"neutral100","data-strapi-header":!0},b?u.a.createElement(n.Box,{paddingBottom:2},b):null,u.a.createElement(S.Flex,{justifyContent:"space-between"},u.a.createElement(S.Flex,null,u.a.createElement(C.Typography,w()({as:"h1",variant:"alpha"},M),H),T?u.a.createElement(n.Box,{paddingLeft:4},T):null),E),u.a.createElement(C.Typography,{variant:"epsilon",textColor:"neutral600",as:"p"},_))});B.displayName="BaseHeaderLayout",B.defaultProps={navigationAction:void 0,primaryAction:void 0,secondaryAction:void 0,subtitle:void 0,sticky:!1,width:void 0},B.propTypes={navigationAction:d.a.node,primaryAction:d.a.node,secondaryAction:d.a.node,sticky:d.a.bool,subtitle:d.a.string,title:d.a.string.isRequired,width:d.a.number},G.defaultProps={navigationAction:void 0,primaryAction:void 0,secondaryAction:void 0,subtitle:void 0},G.propTypes={navigationAction:d.a.node,primaryAction:d.a.node,secondaryAction:d.a.node,subtitle:d.a.string,title:d.a.string.isRequired};var nn,J=t(49),tn=function(g){var v=g.startCol,b=g.endCol;return u.a.createElement(J.Grid,{gap:4},u.a.createElement(J.GridItem,{col:9,s:12},u.a.createElement(n.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow"},v)),u.a.createElement(J.GridItem,{col:3,s:12},u.a.createElement(n.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow"},b)))};tn.propTypes={endCol:d.a.node.isRequired,startCol:d.a.node.isRequired};var en=p.a.div(nn||(nn=s()([`
168
- display: grid;
169
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
170
- grid-gap: `,`;
171
- `])),function(g){return g.theme.spaces[4]});en.propTypes={children:d.a.node.isRequired}}})})}}]);