@strapi/content-manager 0.0.0-experimental.c72b48da735f44a3ccafb7a6dc9ba5213f3844db → 0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/components/LeftMenu.js +34 -30
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +36 -32
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +253 -0
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs +236 -3
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +24 -3
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +25 -4
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +6 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +7 -1
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +7 -6
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +8 -7
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/index.js +47 -8
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +47 -9
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/layout.js +1 -27
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin/layout.mjs +2 -9
- package/dist/admin/layout.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +90 -74
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +92 -76
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Blocker.js +36 -0
- package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs +34 -0
- package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/DocumentActions.js +83 -70
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +85 -72
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +15 -3
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +16 -4
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +158 -106
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +161 -109
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
- package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +46 -26
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +46 -26
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +40 -11
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +41 -12
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +103 -0
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +103 -1
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +227 -132
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +229 -134
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
- package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +4 -1
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.js +13 -3
- package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
- package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
- package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
- package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
- package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
- package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +231 -69
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +233 -71
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/utils/constants.js +9 -0
- package/dist/admin/preview/utils/constants.js.map +1 -0
- package/dist/admin/preview/utils/constants.mjs +7 -0
- package/dist/admin/preview/utils/constants.mjs.map +1 -0
- package/dist/admin/preview/utils/script.js +300 -0
- package/dist/admin/preview/utils/script.js.map +1 -0
- package/dist/admin/preview/utils/script.mjs +298 -0
- package/dist/admin/preview/utils/script.mjs.map +1 -0
- package/dist/admin/preview/utils/usePreviewInputManager.js +93 -0
- package/dist/admin/preview/utils/usePreviewInputManager.js.map +1 -0
- package/dist/admin/preview/utils/usePreviewInputManager.mjs +72 -0
- package/dist/admin/preview/utils/usePreviewInputManager.mjs.map +1 -0
- package/dist/admin/services/api.js +3 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +3 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +32 -16
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +32 -16
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/homepage.js +11 -2
- package/dist/admin/services/homepage.js.map +1 -1
- package/dist/admin/services/homepage.mjs +11 -3
- package/dist/admin/services/homepage.mjs.map +1 -1
- package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
- package/dist/admin/src/components/Widgets.d.ts +2 -1
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/Blocker.d.ts +2 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -7
- package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
- package/dist/admin/src/preview/pages/Preview.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/preview/utils/constants.d.ts +7 -0
- package/dist/admin/src/preview/utils/script.d.ts +23 -0
- package/dist/admin/src/preview/utils/usePreviewInputManager.d.ts +3 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +23 -17
- package/dist/admin/src/services/homepage.d.ts +6 -2
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/validation.d.ts +1 -0
- package/dist/admin/translations/en.json.js +7 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +7 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +5 -2
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +5 -2
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +10 -2
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +10 -2
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/utils/validation.js +19 -7
- package/dist/admin/utils/validation.js.map +1 -1
- package/dist/admin/utils/validation.mjs +19 -7
- package/dist/admin/utils/validation.mjs.map +1 -1
- package/dist/server/controllers/content-types.js +11 -1
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/content-types.mjs +11 -1
- package/dist/server/controllers/content-types.mjs.map +1 -1
- package/dist/server/controllers/relations.js +2 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +2 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/index.js +14 -2
- package/dist/server/controllers/validation/index.js.map +1 -1
- package/dist/server/controllers/validation/index.mjs +14 -2
- package/dist/server/controllers/validation/index.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +23 -19
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +23 -19
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +5 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -1
- package/dist/server/homepage/controllers/homepage.mjs +5 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
- package/dist/server/homepage/routes/homepage.js +11 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -1
- package/dist/server/homepage/routes/homepage.mjs +11 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +86 -46
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +86 -46
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/preview/services/preview-config.js +5 -1
- package/dist/server/preview/services/preview-config.js.map +1 -1
- package/dist/server/preview/services/preview-config.mjs +5 -1
- package/dist/server/preview/services/preview-config.mjs.map +1 -1
- package/dist/server/preview/services/preview.js +4 -0
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +4 -0
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/services/data-mapper.js +4 -1
- package/dist/server/services/data-mapper.js.map +1 -1
- package/dist/server/services/data-mapper.mjs +4 -1
- package/dist/server/services/data-mapper.mjs.map +1 -1
- package/dist/server/services/document-manager.js +8 -1
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +8 -1
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +3 -1
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +3 -1
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/utils/configuration/attributes.js +1 -1
- package/dist/server/services/utils/configuration/attributes.js.map +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs +1 -1
- package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
- package/dist/server/services/utils/configuration/layouts.js +1 -1
- package/dist/server/services/utils/configuration/layouts.js.map +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs +1 -1
- package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.js +8 -0
- package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
- package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
- package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
- package/dist/server/services/utils/populate.js +11 -0
- package/dist/server/services/utils/populate.js.map +1 -1
- package/dist/server/services/utils/populate.mjs +11 -0
- package/dist/server/services/utils/populate.mjs.map +1 -1
- package/dist/server/src/controllers/content-types.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/index.d.ts +6 -1
- package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts +2 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/index.d.ts +7 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -1
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts +4 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/homepage/services/index.d.ts +7 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +8 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/services/data-mapper.d.ts +1 -0
- package/dist/server/src/services/data-mapper.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +8 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +0 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +13 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +11 -9
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// NOTE: This override is for the properties on _user's site_, it's not about Strapi Admin.
|
|
2
|
+
/**
|
|
3
|
+
* previewScript will be injected into the preview iframe after being stringified.
|
|
4
|
+
* Therefore it CANNOT use any imports, or refer to any variables outside of its own scope.
|
|
5
|
+
* It's why many functions are defined within previewScript, it's the only way to avoid going full spaghetti.
|
|
6
|
+
* To get a better overview of everything previewScript does, go to the orchestration part at its end.
|
|
7
|
+
*/ const previewScript = (shouldRun = true)=>{
|
|
8
|
+
/* -----------------------------------------------------------------------------------------------
|
|
9
|
+
* Params
|
|
10
|
+
* ---------------------------------------------------------------------------------------------*/ const HIGHLIGHT_PADDING = 2; // in pixels
|
|
11
|
+
const HIGHLIGHT_COLOR = window.__strapi_HIGHLIGHT_COLOR ?? '#4945ff';
|
|
12
|
+
const DISABLE_STEGA_DECODING = window.__strapi_DISABLE_STEGA_DECODING ?? false;
|
|
13
|
+
const SOURCE_ATTRIBUTE = 'data-strapi-source';
|
|
14
|
+
const OVERLAY_ID = 'strapi-preview-overlay';
|
|
15
|
+
const EVENTS = {
|
|
16
|
+
WILL_EDIT_FIELD: 'willEditField',
|
|
17
|
+
STRAPI_READY: 'strapiReady',
|
|
18
|
+
STRAPI_FIELD_TYPING: 'strapiFieldTyping',
|
|
19
|
+
STRAPI_FIELD_FOCUS: 'strapiFieldFocus',
|
|
20
|
+
STRAPI_FIELD_BLUR: 'strapiFieldBlur'
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Calling the function in no-run mode lets us retrieve the constants from other files and keep
|
|
24
|
+
* a single source of truth for them. It's the only way to do this because this script can't
|
|
25
|
+
* refer to any variables outside of its own scope, because it's stringified before it's run.
|
|
26
|
+
*/ if (!shouldRun) {
|
|
27
|
+
return {
|
|
28
|
+
EVENTS
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/* -----------------------------------------------------------------------------------------------
|
|
32
|
+
* Utils
|
|
33
|
+
* ---------------------------------------------------------------------------------------------*/ const sendMessage = (type, payload)=>{
|
|
34
|
+
window.parent.postMessage({
|
|
35
|
+
type,
|
|
36
|
+
payload
|
|
37
|
+
}, '*');
|
|
38
|
+
};
|
|
39
|
+
/* -----------------------------------------------------------------------------------------------
|
|
40
|
+
* Functional blocks
|
|
41
|
+
* ---------------------------------------------------------------------------------------------*/ const setupStegaDecoding = async ()=>{
|
|
42
|
+
if (DISABLE_STEGA_DECODING) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const { vercelStegaDecode: stegaDecode } = await import(// @ts-expect-error it's not a local dependency
|
|
46
|
+
// eslint-disable-next-line import/no-unresolved
|
|
47
|
+
'https://cdn.jsdelivr.net/npm/@vercel/stega@0.1.2/+esm');
|
|
48
|
+
const allElements = document.querySelectorAll('*');
|
|
49
|
+
Array.from(allElements).forEach((element)=>{
|
|
50
|
+
const directTextContent = Array.from(element.childNodes).filter((node)=>node.nodeType === Node.TEXT_NODE).map((node)=>node.textContent || '').join('');
|
|
51
|
+
if (directTextContent) {
|
|
52
|
+
try {
|
|
53
|
+
const result = stegaDecode(directTextContent);
|
|
54
|
+
if (result) {
|
|
55
|
+
element.setAttribute(SOURCE_ATTRIBUTE, result.key);
|
|
56
|
+
}
|
|
57
|
+
} catch (error) {}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const createOverlaySystem = ()=>{
|
|
62
|
+
const existingOverlay = document.getElementById(OVERLAY_ID);
|
|
63
|
+
if (existingOverlay) {
|
|
64
|
+
existingOverlay.remove();
|
|
65
|
+
}
|
|
66
|
+
window.__strapi_previewCleanup?.();
|
|
67
|
+
const overlay = document.createElement('div');
|
|
68
|
+
overlay.id = OVERLAY_ID;
|
|
69
|
+
overlay.style.cssText = `
|
|
70
|
+
position: fixed;
|
|
71
|
+
top: 0;
|
|
72
|
+
left: 0;
|
|
73
|
+
width: 100%;
|
|
74
|
+
height: 100%;
|
|
75
|
+
pointer-events: none;
|
|
76
|
+
z-index: 9999;
|
|
77
|
+
`;
|
|
78
|
+
window.document.body.appendChild(overlay);
|
|
79
|
+
return overlay;
|
|
80
|
+
};
|
|
81
|
+
const createHighlightManager = (overlay)=>{
|
|
82
|
+
const elements = window.document.querySelectorAll(`[${SOURCE_ATTRIBUTE}]`);
|
|
83
|
+
const highlights = [];
|
|
84
|
+
let focusedField = null;
|
|
85
|
+
const focusedHighlights = [];
|
|
86
|
+
const drawOverlay = (target, highlight)=>{
|
|
87
|
+
if (!highlight) return;
|
|
88
|
+
const rect = target.getBoundingClientRect();
|
|
89
|
+
highlight.style.width = `${rect.width + HIGHLIGHT_PADDING * 2}px`;
|
|
90
|
+
highlight.style.height = `${rect.height + HIGHLIGHT_PADDING * 2}px`;
|
|
91
|
+
highlight.style.transform = `translate(${rect.left - HIGHLIGHT_PADDING}px, ${rect.top - HIGHLIGHT_PADDING}px)`;
|
|
92
|
+
};
|
|
93
|
+
const updateAllHighlights = ()=>{
|
|
94
|
+
highlights.forEach((highlight, index)=>{
|
|
95
|
+
const element = elements[index];
|
|
96
|
+
if (element && highlight) {
|
|
97
|
+
drawOverlay(element, highlight);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
elements.forEach((element)=>{
|
|
102
|
+
if (element instanceof HTMLElement) {
|
|
103
|
+
const highlight = document.createElement('div');
|
|
104
|
+
highlight.style.cssText = `
|
|
105
|
+
position: absolute;
|
|
106
|
+
outline: 2px solid transparent;
|
|
107
|
+
pointer-events: auto;
|
|
108
|
+
border-radius: 2px 0 2px 2px;
|
|
109
|
+
background-color: transparent;
|
|
110
|
+
will-change: transform;
|
|
111
|
+
transition: outline-color 0.1s ease-in-out;
|
|
112
|
+
`;
|
|
113
|
+
const editButton = document.createElement('button');
|
|
114
|
+
editButton.textContent = 'Edit';
|
|
115
|
+
editButton.style.cssText = `
|
|
116
|
+
position: absolute;
|
|
117
|
+
top: 0px;
|
|
118
|
+
right: -${HIGHLIGHT_PADDING}px;
|
|
119
|
+
transform: translateY(-100%);
|
|
120
|
+
font-size: 12px;
|
|
121
|
+
padding: 4px 8px;
|
|
122
|
+
background: ${HIGHLIGHT_COLOR};
|
|
123
|
+
color: white;
|
|
124
|
+
border: none;
|
|
125
|
+
border-radius: 4px 4px 0 0;
|
|
126
|
+
cursor: pointer;
|
|
127
|
+
pointer-events: auto;
|
|
128
|
+
display: none;
|
|
129
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
130
|
+
z-index: 10000;
|
|
131
|
+
user-select: none;
|
|
132
|
+
`;
|
|
133
|
+
highlight.addEventListener('mouseenter', ()=>{
|
|
134
|
+
highlight.style.outlineColor = HIGHLIGHT_COLOR;
|
|
135
|
+
editButton.style.display = 'block';
|
|
136
|
+
highlight.style.borderRadius = '2px 0 2px 2px';
|
|
137
|
+
});
|
|
138
|
+
highlight.addEventListener('mouseleave', ()=>{
|
|
139
|
+
const fieldPath = element.getAttribute(SOURCE_ATTRIBUTE);
|
|
140
|
+
if (fieldPath !== focusedField) {
|
|
141
|
+
highlight.style.outlineColor = 'transparent';
|
|
142
|
+
}
|
|
143
|
+
editButton.style.display = 'none';
|
|
144
|
+
highlight.style.borderRadius = '2px';
|
|
145
|
+
});
|
|
146
|
+
const triggerEdit = (e)=>{
|
|
147
|
+
e.stopPropagation();
|
|
148
|
+
e.preventDefault();
|
|
149
|
+
const fieldPath = element.getAttribute(SOURCE_ATTRIBUTE);
|
|
150
|
+
if (fieldPath && window.parent) {
|
|
151
|
+
const rect = element.getBoundingClientRect();
|
|
152
|
+
sendMessage(EVENTS.WILL_EDIT_FIELD, {
|
|
153
|
+
path: fieldPath,
|
|
154
|
+
position: {
|
|
155
|
+
top: rect.top,
|
|
156
|
+
left: rect.left,
|
|
157
|
+
width: rect.width,
|
|
158
|
+
height: rect.height
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
editButton.addEventListener('click', triggerEdit);
|
|
164
|
+
highlight.addEventListener('dblclick', triggerEdit);
|
|
165
|
+
highlight.appendChild(editButton);
|
|
166
|
+
highlights.push(highlight);
|
|
167
|
+
overlay.appendChild(highlight);
|
|
168
|
+
drawOverlay(element, highlight);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
return {
|
|
172
|
+
elements,
|
|
173
|
+
highlights,
|
|
174
|
+
focusedField,
|
|
175
|
+
focusedHighlights,
|
|
176
|
+
updateAllHighlights,
|
|
177
|
+
setFocusedField: (field)=>{
|
|
178
|
+
focusedField = field;
|
|
179
|
+
},
|
|
180
|
+
getFocusedField: ()=>focusedField
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
const setupEventHandlers = (highlightManager)=>{
|
|
184
|
+
const handleMessages = (event)=>{
|
|
185
|
+
if (event.data?.type === EVENTS.STRAPI_FIELD_TYPING) {
|
|
186
|
+
const { field, value } = event.data.payload;
|
|
187
|
+
if (field) {
|
|
188
|
+
const matchingElements = document.querySelectorAll(`[${SOURCE_ATTRIBUTE}="${field}"]`);
|
|
189
|
+
matchingElements.forEach((element)=>{
|
|
190
|
+
if (element instanceof HTMLElement) {
|
|
191
|
+
element.textContent = value || '';
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
} else if (event.data?.type === EVENTS.STRAPI_FIELD_FOCUS) {
|
|
196
|
+
const { field } = event.data.payload;
|
|
197
|
+
if (field) {
|
|
198
|
+
highlightManager.focusedHighlights.forEach((highlight)=>{
|
|
199
|
+
highlight.style.outlineColor = 'transparent';
|
|
200
|
+
});
|
|
201
|
+
highlightManager.focusedHighlights.length = 0;
|
|
202
|
+
highlightManager.setFocusedField(field);
|
|
203
|
+
const matchingElements = document.querySelectorAll(`[${SOURCE_ATTRIBUTE}="${field}"]`);
|
|
204
|
+
matchingElements.forEach((element)=>{
|
|
205
|
+
const highlight = highlightManager.highlights[Array.from(highlightManager.elements).indexOf(element)];
|
|
206
|
+
if (highlight) {
|
|
207
|
+
highlight.style.outlineColor = HIGHLIGHT_COLOR;
|
|
208
|
+
highlightManager.focusedHighlights.push(highlight);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
} else if (event.data?.type === EVENTS.STRAPI_FIELD_BLUR) {
|
|
213
|
+
const { field } = event.data.payload;
|
|
214
|
+
if (field === highlightManager.getFocusedField()) {
|
|
215
|
+
highlightManager.focusedHighlights.forEach((highlight)=>{
|
|
216
|
+
highlight.style.outlineColor = 'transparent';
|
|
217
|
+
});
|
|
218
|
+
highlightManager.focusedHighlights.length = 0;
|
|
219
|
+
highlightManager.setFocusedField(null);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
window.addEventListener('message', handleMessages);
|
|
224
|
+
return {
|
|
225
|
+
handleMessages
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
const setupObservers = (highlightManager)=>{
|
|
229
|
+
const resizeObserver = new ResizeObserver(()=>{
|
|
230
|
+
highlightManager.updateAllHighlights();
|
|
231
|
+
});
|
|
232
|
+
highlightManager.elements.forEach((element)=>{
|
|
233
|
+
resizeObserver.observe(element);
|
|
234
|
+
});
|
|
235
|
+
resizeObserver.observe(document.documentElement);
|
|
236
|
+
const updateOnScroll = ()=>{
|
|
237
|
+
highlightManager.updateAllHighlights();
|
|
238
|
+
};
|
|
239
|
+
// Find all scrollable ancestors for all tracked elements
|
|
240
|
+
const scrollableElements = new Set();
|
|
241
|
+
scrollableElements.add(window); // Add window as a special case
|
|
242
|
+
highlightManager.elements.forEach((element)=>{
|
|
243
|
+
let parent = element.parentElement;
|
|
244
|
+
while(parent){
|
|
245
|
+
const computedStyle = window.getComputedStyle(parent);
|
|
246
|
+
const overflow = computedStyle.overflow + computedStyle.overflowX + computedStyle.overflowY;
|
|
247
|
+
if (overflow.includes('scroll') || overflow.includes('auto')) {
|
|
248
|
+
scrollableElements.add(parent);
|
|
249
|
+
}
|
|
250
|
+
parent = parent.parentElement;
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
// Add scroll listeners to all scrollable elements
|
|
254
|
+
scrollableElements.forEach((element)=>{
|
|
255
|
+
if (element === window) {
|
|
256
|
+
window.addEventListener('scroll', updateOnScroll);
|
|
257
|
+
window.addEventListener('resize', updateOnScroll);
|
|
258
|
+
} else {
|
|
259
|
+
element.addEventListener('scroll', updateOnScroll);
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
return {
|
|
263
|
+
resizeObserver,
|
|
264
|
+
updateOnScroll,
|
|
265
|
+
scrollableElements
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
const createCleanupSystem = (overlay, observers, eventHandlers)=>{
|
|
269
|
+
window.__strapi_previewCleanup = ()=>{
|
|
270
|
+
observers.resizeObserver.disconnect();
|
|
271
|
+
// Remove all scroll listeners
|
|
272
|
+
observers.scrollableElements.forEach((element)=>{
|
|
273
|
+
if (element === window) {
|
|
274
|
+
window.removeEventListener('scroll', observers.updateOnScroll);
|
|
275
|
+
window.removeEventListener('resize', observers.updateOnScroll);
|
|
276
|
+
} else {
|
|
277
|
+
element.removeEventListener('scroll', observers.updateOnScroll);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
window.removeEventListener('message', eventHandlers.handleMessages);
|
|
281
|
+
if (overlay.parentNode) {
|
|
282
|
+
overlay.parentNode.removeChild(overlay);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
/* -----------------------------------------------------------------------------------------------
|
|
287
|
+
* Orchestration
|
|
288
|
+
* ---------------------------------------------------------------------------------------------*/ setupStegaDecoding().then(()=>{
|
|
289
|
+
const overlay = createOverlaySystem();
|
|
290
|
+
const highlightManager = createHighlightManager(overlay);
|
|
291
|
+
const eventHandlers = setupEventHandlers(highlightManager);
|
|
292
|
+
const observers = setupObservers(highlightManager);
|
|
293
|
+
createCleanupSystem(overlay, observers, eventHandlers);
|
|
294
|
+
});
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
export { previewScript };
|
|
298
|
+
//# sourceMappingURL=script.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script.mjs","sources":["../../../../admin/src/preview/utils/script.ts"],"sourcesContent":["// NOTE: This override is for the properties on _user's site_, it's not about Strapi Admin.\ndeclare global {\n interface Window {\n __strapi_previewCleanup?: () => void;\n __strapi_HIGHLIGHT_COLOR?: string;\n __strapi_DISABLE_STEGA_DECODING?: boolean;\n }\n}\n\n/**\n * previewScript will be injected into the preview iframe after being stringified.\n * Therefore it CANNOT use any imports, or refer to any variables outside of its own scope.\n * It's why many functions are defined within previewScript, it's the only way to avoid going full spaghetti.\n * To get a better overview of everything previewScript does, go to the orchestration part at its end.\n */\nconst previewScript = (shouldRun = true) => {\n /* -----------------------------------------------------------------------------------------------\n * Params\n * ---------------------------------------------------------------------------------------------*/\n\n const HIGHLIGHT_PADDING = 2; // in pixels\n const HIGHLIGHT_COLOR = window.__strapi_HIGHLIGHT_COLOR ?? '#4945ff';\n const DISABLE_STEGA_DECODING = window.__strapi_DISABLE_STEGA_DECODING ?? false;\n const SOURCE_ATTRIBUTE = 'data-strapi-source';\n const OVERLAY_ID = 'strapi-preview-overlay';\n const EVENTS = {\n WILL_EDIT_FIELD: 'willEditField',\n STRAPI_READY: 'strapiReady',\n STRAPI_FIELD_TYPING: 'strapiFieldTyping',\n STRAPI_FIELD_FOCUS: 'strapiFieldFocus',\n STRAPI_FIELD_BLUR: 'strapiFieldBlur',\n } as const;\n\n /**\n * Calling the function in no-run mode lets us retrieve the constants from other files and keep\n * a single source of truth for them. It's the only way to do this because this script can't\n * refer to any variables outside of its own scope, because it's stringified before it's run.\n */\n if (!shouldRun) {\n return { EVENTS };\n }\n\n /* -----------------------------------------------------------------------------------------------\n * Utils\n * ---------------------------------------------------------------------------------------------*/\n\n const sendMessage = (type: (typeof EVENTS)[keyof typeof EVENTS], payload: unknown) => {\n window.parent.postMessage({ type, payload }, '*');\n };\n\n /* -----------------------------------------------------------------------------------------------\n * Functional blocks\n * ---------------------------------------------------------------------------------------------*/\n\n const setupStegaDecoding = async () => {\n if (DISABLE_STEGA_DECODING) {\n return;\n }\n\n const { vercelStegaDecode: stegaDecode } = await import(\n // @ts-expect-error it's not a local dependency\n // eslint-disable-next-line import/no-unresolved\n 'https://cdn.jsdelivr.net/npm/@vercel/stega@0.1.2/+esm'\n );\n\n const allElements = document.querySelectorAll('*');\n\n Array.from(allElements).forEach((element) => {\n const directTextContent = Array.from(element.childNodes)\n .filter((node) => node.nodeType === Node.TEXT_NODE)\n .map((node) => node.textContent || '')\n .join('');\n\n if (directTextContent) {\n try {\n const result = stegaDecode(directTextContent);\n if (result) {\n element.setAttribute(SOURCE_ATTRIBUTE, result.key);\n }\n } catch (error) {}\n }\n });\n };\n\n const createOverlaySystem = () => {\n const existingOverlay = document.getElementById(OVERLAY_ID);\n if (existingOverlay) {\n existingOverlay.remove();\n }\n\n window.__strapi_previewCleanup?.();\n\n const overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n overlay.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 9999;\n `;\n\n window.document.body.appendChild(overlay);\n return overlay;\n };\n\n const createHighlightManager = (overlay: HTMLElement) => {\n const elements = window.document.querySelectorAll(`[${SOURCE_ATTRIBUTE}]`);\n const highlights: HTMLElement[] = [];\n let focusedField: string | null = null;\n const focusedHighlights: HTMLElement[] = [];\n\n const drawOverlay = (target: Element, highlight: HTMLElement) => {\n if (!highlight) return;\n\n const rect = target.getBoundingClientRect();\n highlight.style.width = `${rect.width + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.height = `${rect.height + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.transform = `translate(${rect.left - HIGHLIGHT_PADDING}px, ${rect.top - HIGHLIGHT_PADDING}px)`;\n };\n\n const updateAllHighlights = () => {\n highlights.forEach((highlight, index) => {\n const element = elements[index];\n if (element && highlight) {\n drawOverlay(element, highlight);\n }\n });\n };\n\n elements.forEach((element) => {\n if (element instanceof HTMLElement) {\n const highlight = document.createElement('div');\n highlight.style.cssText = `\n position: absolute;\n outline: 2px solid transparent;\n pointer-events: auto;\n border-radius: 2px 0 2px 2px;\n background-color: transparent;\n will-change: transform;\n transition: outline-color 0.1s ease-in-out;\n `;\n\n const editButton = document.createElement('button');\n editButton.textContent = 'Edit';\n editButton.style.cssText = `\n position: absolute;\n top: 0px;\n right: -${HIGHLIGHT_PADDING}px;\n transform: translateY(-100%);\n font-size: 12px;\n padding: 4px 8px;\n background: ${HIGHLIGHT_COLOR};\n color: white;\n border: none;\n border-radius: 4px 4px 0 0;\n cursor: pointer;\n pointer-events: auto;\n display: none;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n z-index: 10000;\n user-select: none;\n `;\n\n highlight.addEventListener('mouseenter', () => {\n highlight.style.outlineColor = HIGHLIGHT_COLOR;\n editButton.style.display = 'block';\n highlight.style.borderRadius = '2px 0 2px 2px';\n });\n\n highlight.addEventListener('mouseleave', () => {\n const fieldPath = element.getAttribute(SOURCE_ATTRIBUTE);\n if (fieldPath !== focusedField) {\n highlight.style.outlineColor = 'transparent';\n }\n editButton.style.display = 'none';\n highlight.style.borderRadius = '2px';\n });\n\n const triggerEdit = (e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n\n const fieldPath = element.getAttribute(SOURCE_ATTRIBUTE);\n if (fieldPath && window.parent) {\n const rect = element.getBoundingClientRect();\n sendMessage(EVENTS.WILL_EDIT_FIELD, {\n path: fieldPath,\n position: {\n top: rect.top,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n },\n });\n }\n };\n\n editButton.addEventListener('click', triggerEdit);\n highlight.addEventListener('dblclick', triggerEdit);\n\n highlight.appendChild(editButton);\n highlights.push(highlight);\n overlay.appendChild(highlight);\n\n drawOverlay(element, highlight);\n }\n });\n\n return {\n elements,\n highlights,\n focusedField,\n focusedHighlights,\n updateAllHighlights,\n setFocusedField: (field: string | null) => {\n focusedField = field;\n },\n getFocusedField: () => focusedField,\n };\n };\n\n type HighlightManager = ReturnType<typeof createHighlightManager>;\n\n const setupEventHandlers = (highlightManager: HighlightManager) => {\n const handleMessages = (event: MessageEvent) => {\n if (event.data?.type === EVENTS.STRAPI_FIELD_TYPING) {\n const { field, value } = event.data.payload;\n if (field) {\n const matchingElements = document.querySelectorAll(`[${SOURCE_ATTRIBUTE}=\"${field}\"]`);\n matchingElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n element.textContent = value || '';\n }\n });\n }\n } else if (event.data?.type === EVENTS.STRAPI_FIELD_FOCUS) {\n const { field } = event.data.payload;\n if (field) {\n highlightManager.focusedHighlights.forEach((highlight: HTMLElement) => {\n highlight.style.outlineColor = 'transparent';\n });\n highlightManager.focusedHighlights.length = 0;\n\n highlightManager.setFocusedField(field);\n const matchingElements = document.querySelectorAll(`[${SOURCE_ATTRIBUTE}=\"${field}\"]`);\n matchingElements.forEach((element) => {\n const highlight =\n highlightManager.highlights[Array.from(highlightManager.elements).indexOf(element)];\n if (highlight) {\n highlight.style.outlineColor = HIGHLIGHT_COLOR;\n highlightManager.focusedHighlights.push(highlight);\n }\n });\n }\n } else if (event.data?.type === EVENTS.STRAPI_FIELD_BLUR) {\n const { field } = event.data.payload;\n if (field === highlightManager.getFocusedField()) {\n highlightManager.focusedHighlights.forEach((highlight: HTMLElement) => {\n highlight.style.outlineColor = 'transparent';\n });\n highlightManager.focusedHighlights.length = 0;\n highlightManager.setFocusedField(null);\n }\n }\n };\n\n window.addEventListener('message', handleMessages);\n return { handleMessages };\n };\n\n const setupObservers = (highlightManager: HighlightManager) => {\n const resizeObserver = new ResizeObserver(() => {\n highlightManager.updateAllHighlights();\n });\n\n highlightManager.elements.forEach((element: Element) => {\n resizeObserver.observe(element);\n });\n\n resizeObserver.observe(document.documentElement);\n\n const updateOnScroll = () => {\n highlightManager.updateAllHighlights();\n };\n\n // Find all scrollable ancestors for all tracked elements\n const scrollableElements = new Set<Element | Window>();\n scrollableElements.add(window); // Add window as a special case\n\n highlightManager.elements.forEach((element) => {\n let parent = element.parentElement;\n while (parent) {\n const computedStyle = window.getComputedStyle(parent);\n const overflow = computedStyle.overflow + computedStyle.overflowX + computedStyle.overflowY;\n\n if (overflow.includes('scroll') || overflow.includes('auto')) {\n scrollableElements.add(parent);\n }\n\n parent = parent.parentElement;\n }\n });\n\n // Add scroll listeners to all scrollable elements\n scrollableElements.forEach((element) => {\n if (element === window) {\n window.addEventListener('scroll', updateOnScroll);\n window.addEventListener('resize', updateOnScroll);\n } else {\n (element as Element).addEventListener('scroll', updateOnScroll);\n }\n });\n\n return {\n resizeObserver,\n updateOnScroll,\n scrollableElements,\n };\n };\n\n const createCleanupSystem = (\n overlay: HTMLElement,\n observers: ReturnType<typeof setupObservers>,\n eventHandlers: ReturnType<typeof setupEventHandlers>\n ) => {\n window.__strapi_previewCleanup = () => {\n observers.resizeObserver.disconnect();\n\n // Remove all scroll listeners\n observers.scrollableElements.forEach((element) => {\n if (element === window) {\n window.removeEventListener('scroll', observers.updateOnScroll);\n window.removeEventListener('resize', observers.updateOnScroll);\n } else {\n (element as Element).removeEventListener('scroll', observers.updateOnScroll);\n }\n });\n\n window.removeEventListener('message', eventHandlers.handleMessages);\n if (overlay.parentNode) {\n overlay.parentNode.removeChild(overlay);\n }\n };\n };\n\n /* -----------------------------------------------------------------------------------------------\n * Orchestration\n * ---------------------------------------------------------------------------------------------*/\n\n setupStegaDecoding().then(() => {\n const overlay = createOverlaySystem();\n const highlightManager = createHighlightManager(overlay);\n const eventHandlers = setupEventHandlers(highlightManager);\n const observers = setupObservers(highlightManager);\n createCleanupSystem(overlay, observers, eventHandlers);\n });\n};\n\nexport { previewScript };\n"],"names":["previewScript","shouldRun","HIGHLIGHT_PADDING","HIGHLIGHT_COLOR","window","__strapi_HIGHLIGHT_COLOR","DISABLE_STEGA_DECODING","__strapi_DISABLE_STEGA_DECODING","SOURCE_ATTRIBUTE","OVERLAY_ID","EVENTS","WILL_EDIT_FIELD","STRAPI_READY","STRAPI_FIELD_TYPING","STRAPI_FIELD_FOCUS","STRAPI_FIELD_BLUR","sendMessage","type","payload","parent","postMessage","setupStegaDecoding","vercelStegaDecode","stegaDecode","allElements","document","querySelectorAll","Array","from","forEach","element","directTextContent","childNodes","filter","node","nodeType","Node","TEXT_NODE","map","textContent","join","result","setAttribute","key","error","createOverlaySystem","existingOverlay","getElementById","remove","__strapi_previewCleanup","overlay","createElement","id","style","cssText","body","appendChild","createHighlightManager","elements","highlights","focusedField","focusedHighlights","drawOverlay","target","highlight","rect","getBoundingClientRect","width","height","transform","left","top","updateAllHighlights","index","HTMLElement","editButton","addEventListener","outlineColor","display","borderRadius","fieldPath","getAttribute","triggerEdit","e","stopPropagation","preventDefault","path","position","push","setFocusedField","field","getFocusedField","setupEventHandlers","highlightManager","handleMessages","event","data","value","matchingElements","length","indexOf","setupObservers","resizeObserver","ResizeObserver","observe","documentElement","updateOnScroll","scrollableElements","Set","add","parentElement","computedStyle","getComputedStyle","overflow","overflowX","overflowY","includes","createCleanupSystem","observers","eventHandlers","disconnect","removeEventListener","parentNode","removeChild","then"],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
5
|
+
var reactRouterDom = require('react-router-dom');
|
|
6
|
+
var Preview = require('../pages/Preview.js');
|
|
7
|
+
var constants = require('./constants.js');
|
|
8
|
+
|
|
9
|
+
function _interopNamespaceDefault(e) {
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
27
|
+
|
|
28
|
+
function usePreviewInputManager(name) {
|
|
29
|
+
const [, setSearchParams] = reactRouterDom.useSearchParams();
|
|
30
|
+
const iframe = Preview.usePreviewContext('usePreviewInputManager', (state)=>state.iframeRef, false);
|
|
31
|
+
const isSideEditorOpen = Preview.usePreviewContext('usePreviewInputManager', (state)=>state.isSideEditorOpen, false);
|
|
32
|
+
const { value } = strapiAdmin.useField(name);
|
|
33
|
+
const isUsingPreview = iframe?.current;
|
|
34
|
+
const sendMessage = React__namespace.useCallback((type, payload)=>{
|
|
35
|
+
if (!isUsingPreview) return;
|
|
36
|
+
iframe?.current?.contentWindow?.postMessage({
|
|
37
|
+
type,
|
|
38
|
+
payload
|
|
39
|
+
}, new URL(iframe.current.src).origin);
|
|
40
|
+
}, [
|
|
41
|
+
iframe,
|
|
42
|
+
isUsingPreview
|
|
43
|
+
]);
|
|
44
|
+
React__namespace.useEffect(()=>{
|
|
45
|
+
if (!isUsingPreview) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
sendMessage(constants.EVENTS.STRAPI_FIELD_TYPING, {
|
|
49
|
+
field: name,
|
|
50
|
+
value
|
|
51
|
+
});
|
|
52
|
+
}, [
|
|
53
|
+
name,
|
|
54
|
+
value,
|
|
55
|
+
isUsingPreview,
|
|
56
|
+
sendMessage
|
|
57
|
+
]);
|
|
58
|
+
if (!isUsingPreview) {
|
|
59
|
+
// Return no-ops for convenience so we can always safely destructure these methods
|
|
60
|
+
return {
|
|
61
|
+
onBlur: ()=>{},
|
|
62
|
+
onFocus: ()=>{}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
onFocus: ()=>{
|
|
67
|
+
// If side editor is open, input renderers are inside popovers in the right location,
|
|
68
|
+
// so no need for focus highlights as it's clear where the field is used.
|
|
69
|
+
if (!isSideEditorOpen) return;
|
|
70
|
+
sendMessage(constants.EVENTS.STRAPI_FIELD_FOCUS, {
|
|
71
|
+
field: name
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
onBlur: ()=>{
|
|
75
|
+
// If side editor is open, input renderers are inside popovers in the right location,
|
|
76
|
+
// so no need for focus highlights as it's clear where the field is used.
|
|
77
|
+
if (!isSideEditorOpen) return;
|
|
78
|
+
// Clear the field query parameter when blurring so it can be autofocused again if needed
|
|
79
|
+
setSearchParams((prev)=>{
|
|
80
|
+
prev.delete('field');
|
|
81
|
+
return prev;
|
|
82
|
+
}, {
|
|
83
|
+
replace: true
|
|
84
|
+
});
|
|
85
|
+
sendMessage(constants.EVENTS.STRAPI_FIELD_BLUR, {
|
|
86
|
+
field: name
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
exports.usePreviewInputManager = usePreviewInputManager;
|
|
93
|
+
//# sourceMappingURL=usePreviewInputManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreviewInputManager.js","sources":["../../../../admin/src/preview/utils/usePreviewInputManager.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useField } from '@strapi/admin/strapi-admin';\nimport { useSearchParams } from 'react-router-dom';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nimport { EVENTS } from './constants';\n\nfunction usePreviewInputManager(\n name: string\n): Pick<Required<React.InputHTMLAttributes<HTMLInputElement>>, 'onFocus' | 'onBlur'> {\n const [, setSearchParams] = useSearchParams();\n const iframe = usePreviewContext('usePreviewInputManager', (state) => state.iframeRef, false);\n const isSideEditorOpen = usePreviewContext(\n 'usePreviewInputManager',\n (state) => state.isSideEditorOpen,\n false\n );\n const { value } = useField(name);\n\n const isUsingPreview = iframe?.current;\n\n const sendMessage = React.useCallback(\n (type: string, payload: unknown) => {\n if (!isUsingPreview) return;\n\n iframe?.current?.contentWindow?.postMessage(\n {\n type,\n payload,\n },\n new URL(iframe.current.src).origin\n );\n },\n [iframe, isUsingPreview]\n );\n\n React.useEffect(() => {\n if (!isUsingPreview) {\n return;\n }\n\n sendMessage(EVENTS.STRAPI_FIELD_TYPING, { field: name, value });\n }, [name, value, isUsingPreview, sendMessage]);\n\n if (!isUsingPreview) {\n // Return no-ops for convenience so we can always safely destructure these methods\n return { onBlur: () => {}, onFocus: () => {} };\n }\n\n return {\n onFocus: () => {\n // If side editor is open, input renderers are inside popovers in the right location,\n // so no need for focus highlights as it's clear where the field is used.\n if (!isSideEditorOpen) return;\n\n sendMessage(EVENTS.STRAPI_FIELD_FOCUS, { field: name });\n },\n onBlur: () => {\n // If side editor is open, input renderers are inside popovers in the right location,\n // so no need for focus highlights as it's clear where the field is used.\n if (!isSideEditorOpen) return;\n\n // Clear the field query parameter when blurring so it can be autofocused again if needed\n setSearchParams(\n (prev) => {\n prev.delete('field');\n return prev;\n },\n { replace: true }\n );\n sendMessage(EVENTS.STRAPI_FIELD_BLUR, { field: name });\n },\n };\n}\n\nexport { usePreviewInputManager };\n"],"names":["usePreviewInputManager","name","setSearchParams","useSearchParams","iframe","usePreviewContext","state","iframeRef","isSideEditorOpen","value","useField","isUsingPreview","current","sendMessage","React","useCallback","type","payload","contentWindow","postMessage","URL","src","origin","useEffect","EVENTS","STRAPI_FIELD_TYPING","field","onBlur","onFocus","STRAPI_FIELD_FOCUS","prev","delete","replace","STRAPI_FIELD_BLUR"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,SAASA,uBACPC,IAAY,EAAA;IAEZ,MAAM,GAAGC,gBAAgB,GAAGC,8BAAAA,EAAAA;AAC5B,IAAA,MAAMC,SAASC,yBAAkB,CAAA,wBAAA,EAA0B,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,EAAE,KAAA,CAAA;AACvF,IAAA,MAAMC,mBAAmBH,yBACvB,CAAA,wBAAA,EACA,CAACC,KAAUA,GAAAA,KAAAA,CAAME,gBAAgB,EACjC,KAAA,CAAA;AAEF,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,oBAAST,CAAAA,IAAAA,CAAAA;AAE3B,IAAA,MAAMU,iBAAiBP,MAAQQ,EAAAA,OAAAA;AAE/B,IAAA,MAAMC,WAAcC,GAAAA,gBAAAA,CAAMC,WAAW,CACnC,CAACC,IAAcC,EAAAA,OAAAA,GAAAA;AACb,QAAA,IAAI,CAACN,cAAgB,EAAA;QAErBP,MAAQQ,EAAAA,OAAAA,EAASM,eAAeC,WAC9B,CAAA;AACEH,YAAAA,IAAAA;AACAC,YAAAA;AACF,SAAA,EACA,IAAIG,GAAIhB,CAAAA,MAAAA,CAAOQ,OAAO,CAACS,GAAG,EAAEC,MAAM,CAAA;KAGtC,EAAA;AAAClB,QAAAA,MAAAA;AAAQO,QAAAA;AAAe,KAAA,CAAA;AAG1BG,IAAAA,gBAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACZ,cAAgB,EAAA;AACnB,YAAA;AACF;QAEAE,WAAYW,CAAAA,gBAAAA,CAAOC,mBAAmB,EAAE;YAAEC,KAAOzB,EAAAA,IAAAA;AAAMQ,YAAAA;AAAM,SAAA,CAAA;KAC5D,EAAA;AAACR,QAAAA,IAAAA;AAAMQ,QAAAA,KAAAA;AAAOE,QAAAA,cAAAA;AAAgBE,QAAAA;AAAY,KAAA,CAAA;AAE7C,IAAA,IAAI,CAACF,cAAgB,EAAA;;QAEnB,OAAO;AAAEgB,YAAAA,MAAAA,EAAQ,IAAO,EAAA;AAAGC,YAAAA,OAAAA,EAAS,IAAO;AAAE,SAAA;AAC/C;IAEA,OAAO;QACLA,OAAS,EAAA,IAAA;;;AAGP,YAAA,IAAI,CAACpB,gBAAkB,EAAA;YAEvBK,WAAYW,CAAAA,gBAAAA,CAAOK,kBAAkB,EAAE;gBAAEH,KAAOzB,EAAAA;AAAK,aAAA,CAAA;AACvD,SAAA;QACA0B,MAAQ,EAAA,IAAA;;;AAGN,YAAA,IAAI,CAACnB,gBAAkB,EAAA;;AAGvBN,YAAAA,eAAAA,CACE,CAAC4B,IAAAA,GAAAA;AACCA,gBAAAA,IAAAA,CAAKC,MAAM,CAAC,OAAA,CAAA;gBACZ,OAAOD,IAAAA;aAET,EAAA;gBAAEE,OAAS,EAAA;AAAK,aAAA,CAAA;YAElBnB,WAAYW,CAAAA,gBAAAA,CAAOS,iBAAiB,EAAE;gBAAEP,KAAOzB,EAAAA;AAAK,aAAA,CAAA;AACtD;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useField } from '@strapi/admin/strapi-admin';
|
|
3
|
+
import { useSearchParams } from 'react-router-dom';
|
|
4
|
+
import { usePreviewContext } from '../pages/Preview.mjs';
|
|
5
|
+
import { EVENTS } from './constants.mjs';
|
|
6
|
+
|
|
7
|
+
function usePreviewInputManager(name) {
|
|
8
|
+
const [, setSearchParams] = useSearchParams();
|
|
9
|
+
const iframe = usePreviewContext('usePreviewInputManager', (state)=>state.iframeRef, false);
|
|
10
|
+
const isSideEditorOpen = usePreviewContext('usePreviewInputManager', (state)=>state.isSideEditorOpen, false);
|
|
11
|
+
const { value } = useField(name);
|
|
12
|
+
const isUsingPreview = iframe?.current;
|
|
13
|
+
const sendMessage = React.useCallback((type, payload)=>{
|
|
14
|
+
if (!isUsingPreview) return;
|
|
15
|
+
iframe?.current?.contentWindow?.postMessage({
|
|
16
|
+
type,
|
|
17
|
+
payload
|
|
18
|
+
}, new URL(iframe.current.src).origin);
|
|
19
|
+
}, [
|
|
20
|
+
iframe,
|
|
21
|
+
isUsingPreview
|
|
22
|
+
]);
|
|
23
|
+
React.useEffect(()=>{
|
|
24
|
+
if (!isUsingPreview) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
sendMessage(EVENTS.STRAPI_FIELD_TYPING, {
|
|
28
|
+
field: name,
|
|
29
|
+
value
|
|
30
|
+
});
|
|
31
|
+
}, [
|
|
32
|
+
name,
|
|
33
|
+
value,
|
|
34
|
+
isUsingPreview,
|
|
35
|
+
sendMessage
|
|
36
|
+
]);
|
|
37
|
+
if (!isUsingPreview) {
|
|
38
|
+
// Return no-ops for convenience so we can always safely destructure these methods
|
|
39
|
+
return {
|
|
40
|
+
onBlur: ()=>{},
|
|
41
|
+
onFocus: ()=>{}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
onFocus: ()=>{
|
|
46
|
+
// If side editor is open, input renderers are inside popovers in the right location,
|
|
47
|
+
// so no need for focus highlights as it's clear where the field is used.
|
|
48
|
+
if (!isSideEditorOpen) return;
|
|
49
|
+
sendMessage(EVENTS.STRAPI_FIELD_FOCUS, {
|
|
50
|
+
field: name
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
onBlur: ()=>{
|
|
54
|
+
// If side editor is open, input renderers are inside popovers in the right location,
|
|
55
|
+
// so no need for focus highlights as it's clear where the field is used.
|
|
56
|
+
if (!isSideEditorOpen) return;
|
|
57
|
+
// Clear the field query parameter when blurring so it can be autofocused again if needed
|
|
58
|
+
setSearchParams((prev)=>{
|
|
59
|
+
prev.delete('field');
|
|
60
|
+
return prev;
|
|
61
|
+
}, {
|
|
62
|
+
replace: true
|
|
63
|
+
});
|
|
64
|
+
sendMessage(EVENTS.STRAPI_FIELD_BLUR, {
|
|
65
|
+
field: name
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { usePreviewInputManager };
|
|
72
|
+
//# sourceMappingURL=usePreviewInputManager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreviewInputManager.mjs","sources":["../../../../admin/src/preview/utils/usePreviewInputManager.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useField } from '@strapi/admin/strapi-admin';\nimport { useSearchParams } from 'react-router-dom';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nimport { EVENTS } from './constants';\n\nfunction usePreviewInputManager(\n name: string\n): Pick<Required<React.InputHTMLAttributes<HTMLInputElement>>, 'onFocus' | 'onBlur'> {\n const [, setSearchParams] = useSearchParams();\n const iframe = usePreviewContext('usePreviewInputManager', (state) => state.iframeRef, false);\n const isSideEditorOpen = usePreviewContext(\n 'usePreviewInputManager',\n (state) => state.isSideEditorOpen,\n false\n );\n const { value } = useField(name);\n\n const isUsingPreview = iframe?.current;\n\n const sendMessage = React.useCallback(\n (type: string, payload: unknown) => {\n if (!isUsingPreview) return;\n\n iframe?.current?.contentWindow?.postMessage(\n {\n type,\n payload,\n },\n new URL(iframe.current.src).origin\n );\n },\n [iframe, isUsingPreview]\n );\n\n React.useEffect(() => {\n if (!isUsingPreview) {\n return;\n }\n\n sendMessage(EVENTS.STRAPI_FIELD_TYPING, { field: name, value });\n }, [name, value, isUsingPreview, sendMessage]);\n\n if (!isUsingPreview) {\n // Return no-ops for convenience so we can always safely destructure these methods\n return { onBlur: () => {}, onFocus: () => {} };\n }\n\n return {\n onFocus: () => {\n // If side editor is open, input renderers are inside popovers in the right location,\n // so no need for focus highlights as it's clear where the field is used.\n if (!isSideEditorOpen) return;\n\n sendMessage(EVENTS.STRAPI_FIELD_FOCUS, { field: name });\n },\n onBlur: () => {\n // If side editor is open, input renderers are inside popovers in the right location,\n // so no need for focus highlights as it's clear where the field is used.\n if (!isSideEditorOpen) return;\n\n // Clear the field query parameter when blurring so it can be autofocused again if needed\n setSearchParams(\n (prev) => {\n prev.delete('field');\n return prev;\n },\n { replace: true }\n );\n sendMessage(EVENTS.STRAPI_FIELD_BLUR, { field: name });\n },\n };\n}\n\nexport { usePreviewInputManager };\n"],"names":["usePreviewInputManager","name","setSearchParams","useSearchParams","iframe","usePreviewContext","state","iframeRef","isSideEditorOpen","value","useField","isUsingPreview","current","sendMessage","React","useCallback","type","payload","contentWindow","postMessage","URL","src","origin","useEffect","EVENTS","STRAPI_FIELD_TYPING","field","onBlur","onFocus","STRAPI_FIELD_FOCUS","prev","delete","replace","STRAPI_FIELD_BLUR"],"mappings":";;;;;;AASA,SAASA,uBACPC,IAAY,EAAA;IAEZ,MAAM,GAAGC,gBAAgB,GAAGC,eAAAA,EAAAA;AAC5B,IAAA,MAAMC,SAASC,iBAAkB,CAAA,wBAAA,EAA0B,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,EAAE,KAAA,CAAA;AACvF,IAAA,MAAMC,mBAAmBH,iBACvB,CAAA,wBAAA,EACA,CAACC,KAAUA,GAAAA,KAAAA,CAAME,gBAAgB,EACjC,KAAA,CAAA;AAEF,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,QAAST,CAAAA,IAAAA,CAAAA;AAE3B,IAAA,MAAMU,iBAAiBP,MAAQQ,EAAAA,OAAAA;AAE/B,IAAA,MAAMC,WAAcC,GAAAA,KAAAA,CAAMC,WAAW,CACnC,CAACC,IAAcC,EAAAA,OAAAA,GAAAA;AACb,QAAA,IAAI,CAACN,cAAgB,EAAA;QAErBP,MAAQQ,EAAAA,OAAAA,EAASM,eAAeC,WAC9B,CAAA;AACEH,YAAAA,IAAAA;AACAC,YAAAA;AACF,SAAA,EACA,IAAIG,GAAIhB,CAAAA,MAAAA,CAAOQ,OAAO,CAACS,GAAG,EAAEC,MAAM,CAAA;KAGtC,EAAA;AAAClB,QAAAA,MAAAA;AAAQO,QAAAA;AAAe,KAAA,CAAA;AAG1BG,IAAAA,KAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACZ,cAAgB,EAAA;AACnB,YAAA;AACF;QAEAE,WAAYW,CAAAA,MAAAA,CAAOC,mBAAmB,EAAE;YAAEC,KAAOzB,EAAAA,IAAAA;AAAMQ,YAAAA;AAAM,SAAA,CAAA;KAC5D,EAAA;AAACR,QAAAA,IAAAA;AAAMQ,QAAAA,KAAAA;AAAOE,QAAAA,cAAAA;AAAgBE,QAAAA;AAAY,KAAA,CAAA;AAE7C,IAAA,IAAI,CAACF,cAAgB,EAAA;;QAEnB,OAAO;AAAEgB,YAAAA,MAAAA,EAAQ,IAAO,EAAA;AAAGC,YAAAA,OAAAA,EAAS,IAAO;AAAE,SAAA;AAC/C;IAEA,OAAO;QACLA,OAAS,EAAA,IAAA;;;AAGP,YAAA,IAAI,CAACpB,gBAAkB,EAAA;YAEvBK,WAAYW,CAAAA,MAAAA,CAAOK,kBAAkB,EAAE;gBAAEH,KAAOzB,EAAAA;AAAK,aAAA,CAAA;AACvD,SAAA;QACA0B,MAAQ,EAAA,IAAA;;;AAGN,YAAA,IAAI,CAACnB,gBAAkB,EAAA;;AAGvBN,YAAAA,eAAAA,CACE,CAAC4B,IAAAA,GAAAA;AACCA,gBAAAA,IAAAA,CAAKC,MAAM,CAAC,OAAA,CAAA;gBACZ,OAAOD,IAAAA;aAET,EAAA;gBAAEE,OAAS,EAAA;AAAK,aAAA,CAAA;YAElBnB,WAAYW,CAAAA,MAAAA,CAAOS,iBAAiB,EAAE;gBAAEP,KAAOzB,EAAAA;AAAK,aAAA,CAAA;AACtD;AACF,KAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;;;AAEMA,MAAAA,iBAAAA,GAAoBC,oBAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n 'GuidedTourMeta',\n 'CountDocuments',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;;;AAEMA,MAAAA,iBAAAA,GAAoBC,oBAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA,oBAAA;AACA,QAAA,gBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;AAEMA,MAAAA,iBAAAA,GAAoBC,QAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"api.mjs","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n 'GuidedTourMeta',\n 'CountDocuments',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;AAEMA,MAAAA,iBAAAA,GAAoBC,QAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA,oBAAA;AACA,QAAA,gBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
|