@elementor/editor 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +1 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/src/components/__tests__/shell.test.tsx +9 -9
- package/src/hooks/use-sync-document-title.ts +3 -3
- package/src/init.tsx +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.9.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.8.1...@elementor/editor@0.9.0) (2023-09-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **editor-documents:** mark experimental functions [ED-12066] ([#112](https://github.com/elementor/elementor-packages/issues/112)) ([f4b7a9a](https://github.com/elementor/elementor-packages/commit/f4b7a9ac7953a2b48062349495acff05b5640de3))
|
|
12
|
+
* **store:** mark experimental functions [ED-12070] ([#114](https://github.com/elementor/elementor-packages/issues/114)) ([d790829](https://github.com/elementor/elementor-packages/commit/d79082911195c75f6d3a89a5619b234e2f5ce158))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [0.8.1](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.8.0...@elementor/editor@0.8.1) (2023-08-02)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @elementor/editor
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
# [0.8.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor@0.7.3...@elementor/editor@0.8.0) (2023-08-01)
|
|
7
27
|
|
|
8
28
|
|
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -55,8 +55,8 @@ var import_react = require("react");
|
|
|
55
55
|
var import_editor_documents = require("@elementor/editor-documents");
|
|
56
56
|
var import_i18n = require("@wordpress/i18n");
|
|
57
57
|
function useSyncDocumentTitle() {
|
|
58
|
-
const activeDocument = (0, import_editor_documents.
|
|
59
|
-
const hostDocument = (0, import_editor_documents.
|
|
58
|
+
const activeDocument = (0, import_editor_documents.__useActiveDocument)();
|
|
59
|
+
const hostDocument = (0, import_editor_documents.__useHostDocument)();
|
|
60
60
|
const document = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
|
|
61
61
|
(0, import_react.useEffect)(() => {
|
|
62
62
|
if (document?.title === void 0) {
|
|
@@ -120,10 +120,10 @@ function ThemeProvider({ children }) {
|
|
|
120
120
|
// src/init.tsx
|
|
121
121
|
var import_query = require("@elementor/query");
|
|
122
122
|
function init(domElement) {
|
|
123
|
-
const store = (0, import_store.
|
|
123
|
+
const store = (0, import_store.__createStore)();
|
|
124
124
|
const queryClient = (0, import_query.createQueryClient)();
|
|
125
125
|
(0, import_editor_v1_adapters2.dispatchReadyEvent)();
|
|
126
|
-
render2(/* @__PURE__ */ React3.createElement(import_store.
|
|
126
|
+
render2(/* @__PURE__ */ React3.createElement(import_store.__StoreProvider, { store }, /* @__PURE__ */ React3.createElement(import_query.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React3.createElement(import_ui2.DirectionProvider, { rtl: window.document.dir === "rtl" }, /* @__PURE__ */ React3.createElement(ThemeProvider, null, /* @__PURE__ */ React3.createElement(Shell, null))))), domElement);
|
|
127
127
|
}
|
|
128
128
|
function render2(app, domElement) {
|
|
129
129
|
let renderFn;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/hooks/use-sync-document-title.ts","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["export { injectIntoTop } from './locations';\nexport { default as init } from './init';\n","import { createLocation } from '@elementor/locations';\n\nexport const {\n\tSlot: TopSlot,\n\tinject: injectIntoTop,\n} = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { StoreProvider,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/hooks/use-sync-document-title.ts","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["export { injectIntoTop } from './locations';\nexport { default as init } from './init';\n","import { createLocation } from '@elementor/locations';\n\nexport const {\n\tSlot: TopSlot,\n\tinject: injectIntoTop,\n} = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { __StoreProvider as StoreProvider, __createStore } from '@elementor/store';\nimport { dispatchReadyEvent } from '@elementor/editor-v1-adapters';\nimport ThemeProvider from './components/theme-provider';\nimport { createQueryClient, QueryClientProvider } from '@elementor/query';\n\nexport default function init( domElement: Element ): void {\n\tconst store = __createStore();\n\tconst queryClient = createQueryClient();\n\n\tdispatchReadyEvent();\n\n\trender( (\n\t\t<StoreProvider store={ store }>\n\t\t\t<QueryClientProvider client={ queryClient }>\n\t\t\t\t<DirectionProvider rtl={ window.document.dir === 'rtl' }>\n\t\t\t\t\t<ThemeProvider>\n\t\t\t\t\t\t<Shell />\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t</DirectionProvider>\n\t\t\t</QueryClientProvider>\n\t\t</StoreProvider>\n\t), domElement );\n}\n\n// Support conditional rendering based on the React version.\n// We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.\nfunction render( app: JSX.Element, domElement: Element ) {\n\tlet renderFn: () => void;\n\n\ttry {\n\t\tconst root = createRoot( domElement );\n\n\t\trenderFn = () => {\n\t\t\troot.render( app );\n\t\t};\n\t} catch ( e ) {\n\t\trenderFn = () => {\n\t\t\tReactDOM.render( app, domElement );\n\t\t};\n\t}\n\n\trenderFn();\n}\n","import * as React from 'react';\nimport useSyncDocumentTitle from '../hooks/use-sync-document-title';\nimport { TopSlot } from '../locations';\n\nexport default function Shell() {\n\tuseSyncDocumentTitle();\n\n\treturn (\n\t\t<TopSlot />\n\t);\n}\n","import { useEffect } from 'react';\nimport { __useActiveDocument, __useHostDocument } from '@elementor/editor-documents';\nimport { __ } from '@wordpress/i18n';\n\nexport default function useSyncDocumentTitle() {\n\tconst activeDocument = __useActiveDocument();\n\tconst hostDocument = __useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tuseEffect( () => {\n\t\t// Allow empty string as title.\n\t\tif ( document?.title === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// translators: %s: Document title.\n\t\tconst title = __( 'Edit \"%s\" with Elementor', 'elementor' )\n\t\t\t.replace( '%s', document.title );\n\n\t\twindow.document.title = title;\n\t}, [ document?.title ] );\n}\n","import * as React from 'react';\nimport { ThemeProvider as ThemeProviderBase } from '@elementor/ui';\nimport { useColorScheme } from '../sync/use-color-scheme';\n\nexport default function ThemeProvider( { children }: { children: React.ReactNode } ) {\n\tconst colorScheme = useColorScheme();\n\n\treturn (\n\t\t<ThemeProviderBase colorScheme={ colorScheme }>\n\t\t\t{ children }\n\t\t</ThemeProviderBase>\n\t);\n}\n","import { useEffect, useState } from 'react';\nimport { commandEndEvent, CommandEvent, listenTo, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nexport type ColorScheme = 'auto' | 'dark' | 'light';\n\nexport type ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPreferences: ( key: 'ui_theme' ) => ColorScheme,\n\t}\n}\n\nexport function useColorScheme() {\n\tconst [ colorScheme, setColorScheme ] = useState<ColorScheme>( () => getV1ColorScheme() );\n\n\tuseEffect( () => {\n\t\treturn listenTo(\n\t\t\tv1ReadyEvent(),\n\t\t\t() => setColorScheme( getV1ColorScheme() )\n\t\t);\n\t}, [] );\n\n\tuseEffect( () => {\n\t\treturn listenTo(\n\t\t\tcommandEndEvent( 'document/elements/settings' ),\n\t\t\t( e ) => {\n\t\t\t\tconst event = e as CommandEvent<{\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tui_theme?: ColorScheme,\n\t\t\t\t\t},\n\t\t\t\t}>;\n\n\t\t\t\t// The User-Preferences settings object has a key named `ui_theme` that controls the color scheme.\n\t\t\t\tconst isColorScheme = event.args?.settings && 'ui_theme' in event.args.settings;\n\n\t\t\t\tif ( isColorScheme ) {\n\t\t\t\t\tsetColorScheme( getV1ColorScheme() );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}, [] );\n\n\treturn colorScheme;\n}\n\nfunction getV1ColorScheme() {\n\treturn ( window as unknown as ExtendedWindow ).elementor?.getPreferences?.( 'ui_theme' ) || 'auto';\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAA+B;AAExB,IAAM;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AACT,QAAI,iCAAe;;;ACLnB,IAAAA,SAAuB;AACvB,eAA0B;AAE1B,oBAA2B;;;ACH3B,YAAuB;;;ACAvB,mBAA0B;AAC1B,8BAAuD;AACvD,kBAAmB;AAEJ,SAAR,uBAAwC;AAC9C,QAAM,qBAAiB,6CAAoB;AAC3C,QAAM,mBAAe,2CAAkB;AAEvC,QAAM,WAAW,kBAAkB,eAAe,KAAK,UAAU,QAC9D,iBACA;AAEH,8BAAW,MAAM;AAEhB,QAAK,UAAU,UAAU,QAAY;AACpC;AAAA,IACD;AAGA,UAAM,YAAQ,gBAAI,4BAA4B,WAAY,EACxD,QAAS,MAAM,SAAS,KAAM;AAEhC,WAAO,SAAS,QAAQ;AAAA,EACzB,GAAG,CAAE,UAAU,KAAM,CAAE;AACxB;;;ADpBe,SAAR,QAAyB;AAC/B,uBAAqB;AAErB,SACC,oCAAC,aAAQ;AAEX;;;ADLA,IAAAC,aAAkC;AAClC,mBAAgE;AAChE,IAAAC,6BAAmC;;;AGPnC,IAAAC,SAAuB;AACvB,gBAAmD;;;ACDnD,IAAAC,gBAAoC;AACpC,gCAAsE;AAU/D,SAAS,iBAAiB;AAChC,QAAM,CAAE,aAAa,cAAe,QAAI,wBAAuB,MAAM,iBAAiB,CAAE;AAExF,+BAAW,MAAM;AAChB,eAAO;AAAA,UACN,wCAAa;AAAA,MACb,MAAM,eAAgB,iBAAiB,CAAE;AAAA,IAC1C;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,+BAAW,MAAM;AAChB,eAAO;AAAA,UACN,2CAAiB,4BAA6B;AAAA,MAC9C,CAAE,MAAO;AACR,cAAM,QAAQ;AAOd,cAAM,gBAAgB,MAAM,MAAM,YAAY,cAAc,MAAM,KAAK;AAEvE,YAAK,eAAgB;AACpB,yBAAgB,iBAAiB,CAAE;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SAAO;AACR;AAEA,SAAS,mBAAmB;AAC3B,SAAS,OAAsC,WAAW,iBAAkB,UAAW,KAAK;AAC7F;;;AD1Ce,SAAR,cAAgC,EAAE,SAAS,GAAmC;AACpF,QAAM,cAAc,eAAe;AAEnC,SACC,qCAAC,UAAAC,eAAA,EAAkB,eAChB,QACH;AAEF;;;AHHA,mBAAuD;AAExC,SAAR,KAAuB,YAA4B;AACzD,QAAM,YAAQ,4BAAc;AAC5B,QAAM,kBAAc,gCAAkB;AAEtC,qDAAmB;AAEnB,EAAAC,QACC,qCAAC,aAAAC,iBAAA,EAAc,SACd,qCAAC,oCAAoB,QAAS,eAC7B,qCAAC,gCAAkB,KAAM,OAAO,SAAS,QAAQ,SAChD,qCAAC,qBACA,qCAAC,WAAM,CACR,CACD,CACD,CACD,GACE,UAAW;AACf;AAIA,SAASD,QAAQ,KAAkB,YAAsB;AACxD,MAAI;AAEJ,MAAI;AACH,UAAM,WAAO,0BAAY,UAAW;AAEpC,eAAW,MAAM;AAChB,WAAK,OAAQ,GAAI;AAAA,IAClB;AAAA,EACD,SAAU,GAAI;AACb,eAAW,MAAM;AAChB,MAAS,gBAAQ,KAAK,UAAW;AAAA,IAClC;AAAA,EACD;AAEA,WAAS;AACV;","names":["React","import_ui","import_editor_v1_adapters","React","import_react","ThemeProviderBase","render","StoreProvider"]}
|
package/dist/index.mjs
CHANGED
|
@@ -15,11 +15,11 @@ import * as React from "react";
|
|
|
15
15
|
|
|
16
16
|
// src/hooks/use-sync-document-title.ts
|
|
17
17
|
import { useEffect } from "react";
|
|
18
|
-
import {
|
|
18
|
+
import { __useActiveDocument, __useHostDocument } from "@elementor/editor-documents";
|
|
19
19
|
import { __ } from "@wordpress/i18n";
|
|
20
20
|
function useSyncDocumentTitle() {
|
|
21
|
-
const activeDocument =
|
|
22
|
-
const hostDocument =
|
|
21
|
+
const activeDocument = __useActiveDocument();
|
|
22
|
+
const hostDocument = __useHostDocument();
|
|
23
23
|
const document = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
|
|
24
24
|
useEffect(() => {
|
|
25
25
|
if (document?.title === void 0) {
|
|
@@ -38,7 +38,7 @@ function Shell() {
|
|
|
38
38
|
|
|
39
39
|
// src/init.tsx
|
|
40
40
|
import { DirectionProvider } from "@elementor/ui";
|
|
41
|
-
import { StoreProvider,
|
|
41
|
+
import { __StoreProvider as StoreProvider, __createStore } from "@elementor/store";
|
|
42
42
|
import { dispatchReadyEvent } from "@elementor/editor-v1-adapters";
|
|
43
43
|
|
|
44
44
|
// src/components/theme-provider.tsx
|
|
@@ -83,7 +83,7 @@ function ThemeProvider({ children }) {
|
|
|
83
83
|
// src/init.tsx
|
|
84
84
|
import { createQueryClient, QueryClientProvider } from "@elementor/query";
|
|
85
85
|
function init(domElement) {
|
|
86
|
-
const store =
|
|
86
|
+
const store = __createStore();
|
|
87
87
|
const queryClient = createQueryClient();
|
|
88
88
|
dispatchReadyEvent();
|
|
89
89
|
render2(/* @__PURE__ */ React3.createElement(StoreProvider, { store }, /* @__PURE__ */ React3.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React3.createElement(DirectionProvider, { rtl: window.document.dir === "rtl" }, /* @__PURE__ */ React3.createElement(ThemeProvider, null, /* @__PURE__ */ React3.createElement(Shell, null))))), domElement);
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/hooks/use-sync-document-title.ts","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["import { createLocation } from '@elementor/locations';\n\nexport const {\n\tSlot: TopSlot,\n\tinject: injectIntoTop,\n} = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { StoreProvider,
|
|
1
|
+
{"version":3,"sources":["../src/locations.ts","../src/init.tsx","../src/components/shell.tsx","../src/hooks/use-sync-document-title.ts","../src/components/theme-provider.tsx","../src/sync/use-color-scheme.ts"],"sourcesContent":["import { createLocation } from '@elementor/locations';\n\nexport const {\n\tSlot: TopSlot,\n\tinject: injectIntoTop,\n} = createLocation();\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { JSX } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Shell from './components/shell';\nimport { DirectionProvider } from '@elementor/ui';\nimport { __StoreProvider as StoreProvider, __createStore } from '@elementor/store';\nimport { dispatchReadyEvent } from '@elementor/editor-v1-adapters';\nimport ThemeProvider from './components/theme-provider';\nimport { createQueryClient, QueryClientProvider } from '@elementor/query';\n\nexport default function init( domElement: Element ): void {\n\tconst store = __createStore();\n\tconst queryClient = createQueryClient();\n\n\tdispatchReadyEvent();\n\n\trender( (\n\t\t<StoreProvider store={ store }>\n\t\t\t<QueryClientProvider client={ queryClient }>\n\t\t\t\t<DirectionProvider rtl={ window.document.dir === 'rtl' }>\n\t\t\t\t\t<ThemeProvider>\n\t\t\t\t\t\t<Shell />\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t</DirectionProvider>\n\t\t\t</QueryClientProvider>\n\t\t</StoreProvider>\n\t), domElement );\n}\n\n// Support conditional rendering based on the React version.\n// We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.\nfunction render( app: JSX.Element, domElement: Element ) {\n\tlet renderFn: () => void;\n\n\ttry {\n\t\tconst root = createRoot( domElement );\n\n\t\trenderFn = () => {\n\t\t\troot.render( app );\n\t\t};\n\t} catch ( e ) {\n\t\trenderFn = () => {\n\t\t\tReactDOM.render( app, domElement );\n\t\t};\n\t}\n\n\trenderFn();\n}\n","import * as React from 'react';\nimport useSyncDocumentTitle from '../hooks/use-sync-document-title';\nimport { TopSlot } from '../locations';\n\nexport default function Shell() {\n\tuseSyncDocumentTitle();\n\n\treturn (\n\t\t<TopSlot />\n\t);\n}\n","import { useEffect } from 'react';\nimport { __useActiveDocument, __useHostDocument } from '@elementor/editor-documents';\nimport { __ } from '@wordpress/i18n';\n\nexport default function useSyncDocumentTitle() {\n\tconst activeDocument = __useActiveDocument();\n\tconst hostDocument = __useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tuseEffect( () => {\n\t\t// Allow empty string as title.\n\t\tif ( document?.title === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// translators: %s: Document title.\n\t\tconst title = __( 'Edit \"%s\" with Elementor', 'elementor' )\n\t\t\t.replace( '%s', document.title );\n\n\t\twindow.document.title = title;\n\t}, [ document?.title ] );\n}\n","import * as React from 'react';\nimport { ThemeProvider as ThemeProviderBase } from '@elementor/ui';\nimport { useColorScheme } from '../sync/use-color-scheme';\n\nexport default function ThemeProvider( { children }: { children: React.ReactNode } ) {\n\tconst colorScheme = useColorScheme();\n\n\treturn (\n\t\t<ThemeProviderBase colorScheme={ colorScheme }>\n\t\t\t{ children }\n\t\t</ThemeProviderBase>\n\t);\n}\n","import { useEffect, useState } from 'react';\nimport { commandEndEvent, CommandEvent, listenTo, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nexport type ColorScheme = 'auto' | 'dark' | 'light';\n\nexport type ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPreferences: ( key: 'ui_theme' ) => ColorScheme,\n\t}\n}\n\nexport function useColorScheme() {\n\tconst [ colorScheme, setColorScheme ] = useState<ColorScheme>( () => getV1ColorScheme() );\n\n\tuseEffect( () => {\n\t\treturn listenTo(\n\t\t\tv1ReadyEvent(),\n\t\t\t() => setColorScheme( getV1ColorScheme() )\n\t\t);\n\t}, [] );\n\n\tuseEffect( () => {\n\t\treturn listenTo(\n\t\t\tcommandEndEvent( 'document/elements/settings' ),\n\t\t\t( e ) => {\n\t\t\t\tconst event = e as CommandEvent<{\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tui_theme?: ColorScheme,\n\t\t\t\t\t},\n\t\t\t\t}>;\n\n\t\t\t\t// The User-Preferences settings object has a key named `ui_theme` that controls the color scheme.\n\t\t\t\tconst isColorScheme = event.args?.settings && 'ui_theme' in event.args.settings;\n\n\t\t\t\tif ( isColorScheme ) {\n\t\t\t\t\tsetColorScheme( getV1ColorScheme() );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}, [] );\n\n\treturn colorScheme;\n}\n\nfunction getV1ColorScheme() {\n\treturn ( window as unknown as ExtendedWindow ).elementor?.getPreferences?.( 'ui_theme' ) || 'auto';\n}\n"],"mappings":";AAAA,SAAS,sBAAsB;AAExB,IAAM;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AACT,IAAI,eAAe;;;ACLnB,YAAYA,YAAW;AACvB,YAAY,cAAc;AAE1B,SAAS,kBAAkB;;;ACH3B,YAAY,WAAW;;;ACAvB,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB,yBAAyB;AACvD,SAAS,UAAU;AAEJ,SAAR,uBAAwC;AAC9C,QAAM,iBAAiB,oBAAoB;AAC3C,QAAM,eAAe,kBAAkB;AAEvC,QAAM,WAAW,kBAAkB,eAAe,KAAK,UAAU,QAC9D,iBACA;AAEH,YAAW,MAAM;AAEhB,QAAK,UAAU,UAAU,QAAY;AACpC;AAAA,IACD;AAGA,UAAM,QAAQ,GAAI,4BAA4B,WAAY,EACxD,QAAS,MAAM,SAAS,KAAM;AAEhC,WAAO,SAAS,QAAQ;AAAA,EACzB,GAAG,CAAE,UAAU,KAAM,CAAE;AACxB;;;ADpBe,SAAR,QAAyB;AAC/B,uBAAqB;AAErB,SACC,oCAAC,aAAQ;AAEX;;;ADLA,SAAS,yBAAyB;AAClC,SAAS,mBAAmB,eAAe,qBAAqB;AAChE,SAAS,0BAA0B;;;AGPnC,YAAYC,YAAW;AACvB,SAAS,iBAAiB,yBAAyB;;;ACDnD,SAAS,aAAAC,YAAW,gBAAgB;AACpC,SAAS,iBAA+B,UAAU,oBAAoB;AAU/D,SAAS,iBAAiB;AAChC,QAAM,CAAE,aAAa,cAAe,IAAI,SAAuB,MAAM,iBAAiB,CAAE;AAExF,EAAAA,WAAW,MAAM;AAChB,WAAO;AAAA,MACN,aAAa;AAAA,MACb,MAAM,eAAgB,iBAAiB,CAAE;AAAA,IAC1C;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,EAAAA,WAAW,MAAM;AAChB,WAAO;AAAA,MACN,gBAAiB,4BAA6B;AAAA,MAC9C,CAAE,MAAO;AACR,cAAM,QAAQ;AAOd,cAAM,gBAAgB,MAAM,MAAM,YAAY,cAAc,MAAM,KAAK;AAEvE,YAAK,eAAgB;AACpB,yBAAgB,iBAAiB,CAAE;AAAA,QACpC;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SAAO;AACR;AAEA,SAAS,mBAAmB;AAC3B,SAAS,OAAsC,WAAW,iBAAkB,UAAW,KAAK;AAC7F;;;AD1Ce,SAAR,cAAgC,EAAE,SAAS,GAAmC;AACpF,QAAM,cAAc,eAAe;AAEnC,SACC,qCAAC,qBAAkB,eAChB,QACH;AAEF;;;AHHA,SAAS,mBAAmB,2BAA2B;AAExC,SAAR,KAAuB,YAA4B;AACzD,QAAM,QAAQ,cAAc;AAC5B,QAAM,cAAc,kBAAkB;AAEtC,qBAAmB;AAEnB,EAAAC,QACC,qCAAC,iBAAc,SACd,qCAAC,uBAAoB,QAAS,eAC7B,qCAAC,qBAAkB,KAAM,OAAO,SAAS,QAAQ,SAChD,qCAAC,qBACA,qCAAC,WAAM,CACR,CACD,CACD,CACD,GACE,UAAW;AACf;AAIA,SAASA,QAAQ,KAAkB,YAAsB;AACxD,MAAI;AAEJ,MAAI;AACH,UAAM,OAAO,WAAY,UAAW;AAEpC,eAAW,MAAM;AAChB,WAAK,OAAQ,GAAI;AAAA,IAClB;AAAA,EACD,SAAU,GAAI;AACb,eAAW,MAAM;AAChB,MAAS,gBAAQ,KAAK,UAAW;AAAA,IAClC;AAAA,EACD;AAEA,WAAS;AACV;","names":["React","React","useEffect","render"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Elementor Team",
|
|
6
6
|
"homepage": "https://elementor.com/",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"dev": "tsup --config=../../tsup.dev.ts"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@elementor/editor-documents": "^0.
|
|
35
|
+
"@elementor/editor-documents": "^0.9.0",
|
|
36
36
|
"@elementor/editor-v1-adapters": "^0.5.0",
|
|
37
|
-
"@elementor/locations": "^0.
|
|
37
|
+
"@elementor/locations": "^0.7.0",
|
|
38
38
|
"@elementor/query": "^0.1.1",
|
|
39
|
-
"@elementor/store": "^0.
|
|
39
|
+
"@elementor/store": "^0.7.0",
|
|
40
40
|
"@elementor/ui": "^1.4.53",
|
|
41
41
|
"@wordpress/i18n": "^4.36.0"
|
|
42
42
|
},
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"elementor": {
|
|
48
48
|
"type": "app"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "7dc3971d2dd061848d6547aa2caed8332e7b9167"
|
|
51
51
|
}
|
|
@@ -2,12 +2,12 @@ import * as React from 'react';
|
|
|
2
2
|
import { render, screen } from '@testing-library/react';
|
|
3
3
|
import Shell from '../shell';
|
|
4
4
|
import { injectIntoTop } from '../../locations';
|
|
5
|
-
import {
|
|
5
|
+
import { __useActiveDocument, __useHostDocument } from '@elementor/editor-documents';
|
|
6
6
|
import { createMockDocument } from 'test-utils';
|
|
7
7
|
|
|
8
8
|
jest.mock( '@elementor/editor-documents', () => ( {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
__useActiveDocument: jest.fn(),
|
|
10
|
+
__useHostDocument: jest.fn(),
|
|
11
11
|
} ) );
|
|
12
12
|
|
|
13
13
|
describe( '@elementor/editor Shell component', () => {
|
|
@@ -31,7 +31,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
31
31
|
|
|
32
32
|
it( 'should set the document title to be the active document', () => {
|
|
33
33
|
// Arrange - set the initial document.
|
|
34
|
-
jest.mocked(
|
|
34
|
+
jest.mocked( __useActiveDocument ).mockReturnValue( createMockDocument( {
|
|
35
35
|
type: {
|
|
36
36
|
value: 'page',
|
|
37
37
|
label: 'Page',
|
|
@@ -46,7 +46,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
46
46
|
expect( window.document.title ).toBe( 'Edit "Initial Document" with Elementor' );
|
|
47
47
|
|
|
48
48
|
// Arrange - set the new document.
|
|
49
|
-
jest.mocked(
|
|
49
|
+
jest.mocked( __useActiveDocument ).mockReturnValue( createMockDocument( {
|
|
50
50
|
type: {
|
|
51
51
|
value: 'page',
|
|
52
52
|
label: 'Page',
|
|
@@ -63,7 +63,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
63
63
|
|
|
64
64
|
it( 'should use the host document title when the active document is a kit', () => {
|
|
65
65
|
// Arrange.
|
|
66
|
-
jest.mocked(
|
|
66
|
+
jest.mocked( __useActiveDocument ).mockReturnValue( createMockDocument( {
|
|
67
67
|
type: {
|
|
68
68
|
value: 'kit',
|
|
69
69
|
label: 'Kit',
|
|
@@ -71,7 +71,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
71
71
|
title: 'My Kit',
|
|
72
72
|
} ) );
|
|
73
73
|
|
|
74
|
-
jest.mocked(
|
|
74
|
+
jest.mocked( __useHostDocument ).mockReturnValue( createMockDocument( {
|
|
75
75
|
type: {
|
|
76
76
|
value: 'page',
|
|
77
77
|
label: 'Page',
|
|
@@ -90,7 +90,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
90
90
|
|
|
91
91
|
it( 'should not modify the title when there is no active document', () => {
|
|
92
92
|
// Arrange.
|
|
93
|
-
jest.mocked(
|
|
93
|
+
jest.mocked( __useActiveDocument ).mockReturnValue( null );
|
|
94
94
|
|
|
95
95
|
window.document.title = 'Old title';
|
|
96
96
|
|
|
@@ -103,7 +103,7 @@ describe( '@elementor/editor Shell component', () => {
|
|
|
103
103
|
|
|
104
104
|
it( 'should allow empty string as title', () => {
|
|
105
105
|
// Arrange.
|
|
106
|
-
jest.mocked(
|
|
106
|
+
jest.mocked( __useActiveDocument ).mockReturnValue( createMockDocument( {
|
|
107
107
|
title: '',
|
|
108
108
|
} ) );
|
|
109
109
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { __useActiveDocument, __useHostDocument } from '@elementor/editor-documents';
|
|
3
3
|
import { __ } from '@wordpress/i18n';
|
|
4
4
|
|
|
5
5
|
export default function useSyncDocumentTitle() {
|
|
6
|
-
const activeDocument =
|
|
7
|
-
const hostDocument =
|
|
6
|
+
const activeDocument = __useActiveDocument();
|
|
7
|
+
const hostDocument = __useHostDocument();
|
|
8
8
|
|
|
9
9
|
const document = activeDocument && activeDocument.type.value !== 'kit'
|
|
10
10
|
? activeDocument
|
package/src/init.tsx
CHANGED
|
@@ -4,13 +4,13 @@ import { JSX } from 'react';
|
|
|
4
4
|
import { createRoot } from 'react-dom/client';
|
|
5
5
|
import Shell from './components/shell';
|
|
6
6
|
import { DirectionProvider } from '@elementor/ui';
|
|
7
|
-
import { StoreProvider,
|
|
7
|
+
import { __StoreProvider as StoreProvider, __createStore } from '@elementor/store';
|
|
8
8
|
import { dispatchReadyEvent } from '@elementor/editor-v1-adapters';
|
|
9
9
|
import ThemeProvider from './components/theme-provider';
|
|
10
10
|
import { createQueryClient, QueryClientProvider } from '@elementor/query';
|
|
11
11
|
|
|
12
12
|
export default function init( domElement: Element ): void {
|
|
13
|
-
const store =
|
|
13
|
+
const store = __createStore();
|
|
14
14
|
const queryClient = createQueryClient();
|
|
15
15
|
|
|
16
16
|
dispatchReadyEvent();
|