@webiny/app-website-builder 0.0.0-unstable.f9f12f52a0 → 0.0.0-unstable.fdd9228b5d
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/BaseEditor/defaultConfig/Content/Preview/AddressBar.js +1 -1
- package/BaseEditor/defaultConfig/Content/Preview/AddressBar.js.map +1 -1
- package/BaseEditor/defaultConfig/Content/Preview/useIframeUrl.js +7 -2
- package/BaseEditor/defaultConfig/Content/Preview/useIframeUrl.js.map +1 -1
- package/BaseEditor/defaultConfig/Sidebar/ElementSettings/useBindingsForElement.js +1 -1
- package/BaseEditor/defaultConfig/Sidebar/ElementSettings/useBindingsForElement.js.map +1 -1
- package/BaseEditor/defaultConfig/Sidebar/InheritanceLabel.js +4 -1
- package/BaseEditor/defaultConfig/Sidebar/InheritanceLabel.js.map +1 -1
- package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StylesStore.js +3 -3
- package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StylesStore.js.map +1 -1
- package/BaseEditor/defaultConfig/Sidebar/StyleSettings/useStyles.js +4 -3
- package/BaseEditor/defaultConfig/Sidebar/StyleSettings/useStyles.js.map +1 -1
- package/BaseEditor/hooks/useBreakpoint.d.ts +2 -12
- package/BaseEditor/hooks/useBreakpoint.js +5 -1
- package/BaseEditor/hooks/useBreakpoint.js.map +1 -1
- package/inputRenderers/LexicalInput/TypographyDropDown.js +4 -7
- package/inputRenderers/LexicalInput/TypographyDropDown.js.map +1 -1
- package/modules/pages/PagesList/hooks/usePagePreviewLink.js +5 -0
- package/modules/pages/PagesList/hooks/usePagePreviewLink.js.map +1 -1
- package/package.json +27 -33
|
@@ -17,7 +17,7 @@ export const AddressBar = () => {
|
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
setAddressBarUrl(`${previewDomain}${path}`);
|
|
20
|
-
}, [previewDomain]);
|
|
20
|
+
}, [path, previewDomain]);
|
|
21
21
|
return /*#__PURE__*/React.createElement("div", {
|
|
22
22
|
className: "wby-w-full wby-h-[49px] wby-flex wby-flex-row wby-p-sm wby-bg-neutral-base wby-border-solid wby-border-b-sm wby-border-neutral-dimmed"
|
|
23
23
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","BreakpointSelector","PreviewInNewTab","OpenInNewTab","RefreshPreview","useSelectFromDocument","PreviewDomain","usePreviewDomain","AddressBar","path","document","properties","previewDomain","addressBarUrl","setAddressBarUrl","createElement","className"],"sources":["AddressBar.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { BreakpointSelector } from \"./BreakpointSelector\";\nimport { PreviewInNewTab } from \"./AddressBar/PreviewInNewTab\";\nimport { OpenInNewTab } from \"./AddressBar/OpenInNewTab\";\nimport { RefreshPreview } from \"./AddressBar/RefreshPreview\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { PreviewDomain } from \"./AddressBar/PreviewDomain\";\nimport { usePreviewDomain } from \"./usePreviewDomain\";\n\nexport const AddressBar = () => {\n const path = useSelectFromDocument(document => document.properties.path);\n\n const { previewDomain } = usePreviewDomain();\n const [addressBarUrl, setAddressBarUrl] = useState<string>(\"\");\n\n useEffect(() => {\n if (!previewDomain) {\n return;\n }\n\n setAddressBarUrl(`${previewDomain}${path}`);\n }, [previewDomain]);\n\n return (\n <div className=\"wby-w-full wby-h-[49px] wby-flex wby-flex-row wby-p-sm wby-bg-neutral-base wby-border-solid wby-border-b-sm wby-border-neutral-dimmed\">\n <div className={\"wby-relative wby-flex-auto wby-mr-sm\"}>\n <div\n className={\n \"wby-w-full wby-absolute wby-top-[-1px] wby-py-[6px] wby-pl-xl wby-border-sm wby-text-md wby-peer wby-cursor-not-allowed wby-rounded-md wby-border-neutral-subtle wby-text-neutral-muted wby-bg-neutral-disabled wby-text-neutral-disabled\"\n }\n >\n <PreviewDomain />\n {addressBarUrl}\n </div>\n <div className={\"wby-absolute wby-right-0 wby-top-0\"}>\n <RefreshPreview />\n <PreviewInNewTab />\n <OpenInNewTab />\n </div>\n </div>\n <div className={\"wby-flex-none\"}>\n <BreakpointSelector />\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AACxB,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,qBAAqB;AAC9B,SAASC,aAAa;AACtB,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC5B,MAAMC,IAAI,GAAGJ,qBAAqB,CAACK,QAAQ,IAAIA,QAAQ,CAACC,UAAU,CAACF,IAAI,CAAC;EAExE,MAAM;IAAEG;EAAc,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EAC5C,MAAM,CAACM,aAAa,EAAEC,gBAAgB,CAAC,GAAGd,QAAQ,CAAS,EAAE,CAAC;EAE9DD,SAAS,CAAC,MAAM;IACZ,IAAI,CAACa,aAAa,EAAE;MAChB;IACJ;IAEAE,gBAAgB,CAAC,GAAGF,aAAa,GAAGH,IAAI,EAAE,CAAC;EAC/C,CAAC,EAAE,
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","BreakpointSelector","PreviewInNewTab","OpenInNewTab","RefreshPreview","useSelectFromDocument","PreviewDomain","usePreviewDomain","AddressBar","path","document","properties","previewDomain","addressBarUrl","setAddressBarUrl","createElement","className"],"sources":["AddressBar.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { BreakpointSelector } from \"./BreakpointSelector\";\nimport { PreviewInNewTab } from \"./AddressBar/PreviewInNewTab\";\nimport { OpenInNewTab } from \"./AddressBar/OpenInNewTab\";\nimport { RefreshPreview } from \"./AddressBar/RefreshPreview\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { PreviewDomain } from \"./AddressBar/PreviewDomain\";\nimport { usePreviewDomain } from \"./usePreviewDomain\";\n\nexport const AddressBar = () => {\n const path = useSelectFromDocument(document => document.properties.path);\n\n const { previewDomain } = usePreviewDomain();\n const [addressBarUrl, setAddressBarUrl] = useState<string>(\"\");\n\n useEffect(() => {\n if (!previewDomain) {\n return;\n }\n\n setAddressBarUrl(`${previewDomain}${path}`);\n }, [path, previewDomain]);\n\n return (\n <div className=\"wby-w-full wby-h-[49px] wby-flex wby-flex-row wby-p-sm wby-bg-neutral-base wby-border-solid wby-border-b-sm wby-border-neutral-dimmed\">\n <div className={\"wby-relative wby-flex-auto wby-mr-sm\"}>\n <div\n className={\n \"wby-w-full wby-absolute wby-top-[-1px] wby-py-[6px] wby-pl-xl wby-border-sm wby-text-md wby-peer wby-cursor-not-allowed wby-rounded-md wby-border-neutral-subtle wby-text-neutral-muted wby-bg-neutral-disabled wby-text-neutral-disabled\"\n }\n >\n <PreviewDomain />\n {addressBarUrl}\n </div>\n <div className={\"wby-absolute wby-right-0 wby-top-0\"}>\n <RefreshPreview />\n <PreviewInNewTab />\n <OpenInNewTab />\n </div>\n </div>\n <div className={\"wby-flex-none\"}>\n <BreakpointSelector />\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AACxB,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,qBAAqB;AAC9B,SAASC,aAAa;AACtB,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC5B,MAAMC,IAAI,GAAGJ,qBAAqB,CAACK,QAAQ,IAAIA,QAAQ,CAACC,UAAU,CAACF,IAAI,CAAC;EAExE,MAAM;IAAEG;EAAc,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EAC5C,MAAM,CAACM,aAAa,EAAEC,gBAAgB,CAAC,GAAGd,QAAQ,CAAS,EAAE,CAAC;EAE9DD,SAAS,CAAC,MAAM;IACZ,IAAI,CAACa,aAAa,EAAE;MAChB;IACJ;IAEAE,gBAAgB,CAAC,GAAGF,aAAa,GAAGH,IAAI,EAAE,CAAC;EAC/C,CAAC,EAAE,CAACA,IAAI,EAAEG,aAAa,CAAC,CAAC;EAEzB,oBACId,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAC;EAAuI,gBAClJlB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAAuC,gBACnDlB,KAAA,CAAAiB,aAAA;IACIC,SAAS,EACL;EACH,gBAEDlB,KAAA,CAAAiB,aAAA,CAACT,aAAa,MAAE,CAAC,EAChBO,aACA,CAAC,eACNf,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAAqC,gBACjDlB,KAAA,CAAAiB,aAAA,CAACX,cAAc,MAAE,CAAC,eAClBN,KAAA,CAAAiB,aAAA,CAACb,eAAe,MAAE,CAAC,eACnBJ,KAAA,CAAAiB,aAAA,CAACZ,YAAY,MAAE,CACd,CACJ,CAAC,eACNL,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAAgB,gBAC5BlB,KAAA,CAAAiB,aAAA,CAACd,kBAAkB,MAAE,CACpB,CACJ,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
|
+
import { useTenancy } from "@webiny/app-tenancy";
|
|
2
3
|
import { useSelectFromDocument } from "../../../hooks/useSelectFromDocument";
|
|
3
4
|
import { usePreviewDomain } from "./usePreviewDomain";
|
|
4
5
|
export const useIframeUrl = () => {
|
|
6
|
+
const {
|
|
7
|
+
tenant
|
|
8
|
+
} = useTenancy();
|
|
5
9
|
const {
|
|
6
10
|
previewDomain
|
|
7
11
|
} = usePreviewDomain();
|
|
@@ -13,17 +17,18 @@ export const useIframeUrl = () => {
|
|
|
13
17
|
return null;
|
|
14
18
|
}
|
|
15
19
|
const newUrl = new URL(`${previewDomain}${path}`);
|
|
16
|
-
addSearchParamsFromDocument(newUrl, id, documentType);
|
|
20
|
+
addSearchParamsFromDocument(tenant, newUrl, id, documentType);
|
|
17
21
|
return newUrl.toString();
|
|
18
22
|
}, [previewDomain, id, path, documentType]);
|
|
19
23
|
};
|
|
20
|
-
function addSearchParamsFromDocument(url, id, documentType) {
|
|
24
|
+
function addSearchParamsFromDocument(tenant, url, id, documentType) {
|
|
21
25
|
const searchParams = url.searchParams;
|
|
22
26
|
searchParams.set("wb.editing", "true");
|
|
23
27
|
searchParams.set("wb.type", documentType);
|
|
24
28
|
searchParams.set("wb.id", id);
|
|
25
29
|
searchParams.set("wb.path", url.pathname);
|
|
26
30
|
searchParams.set("wb.referrer", window.location.origin);
|
|
31
|
+
searchParams.set("wb.tenant", tenant);
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
//# sourceMappingURL=useIframeUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useSelectFromDocument","usePreviewDomain","useIframeUrl","previewDomain","id","document","documentType","metadata","path","properties","newUrl","URL","addSearchParamsFromDocument","toString","url","searchParams","set","pathname","window","location","origin"],"sources":["useIframeUrl.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { usePreviewDomain } from \"./usePreviewDomain\";\n\nexport const useIframeUrl = () => {\n const { previewDomain } = usePreviewDomain();\n\n const id = useSelectFromDocument(document => document.id);\n const documentType = useSelectFromDocument(document => document.metadata.documentType);\n const path = useSelectFromDocument(document => document.properties.path);\n\n return useMemo(() => {\n if (!previewDomain) {\n return null;\n }\n const newUrl = new URL(`${previewDomain}${path}`);\n addSearchParamsFromDocument(newUrl, id, documentType);\n return newUrl.toString();\n }, [previewDomain, id, path, documentType]);\n};\n\nfunction addSearchParamsFromDocument(url: URL, id: string, documentType: string) {\n const searchParams = url.searchParams;\n searchParams.set(\"wb.editing\", \"true\");\n searchParams.set(\"wb.type\", documentType);\n searchParams.set(\"wb.id\", id);\n searchParams.set(\"wb.path\", url.pathname);\n searchParams.set(\"wb.referrer\", window.location.origin);\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,qBAAqB;AAC9B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAc,CAAC,
|
|
1
|
+
{"version":3,"names":["useMemo","useTenancy","useSelectFromDocument","usePreviewDomain","useIframeUrl","tenant","previewDomain","id","document","documentType","metadata","path","properties","newUrl","URL","addSearchParamsFromDocument","toString","url","searchParams","set","pathname","window","location","origin"],"sources":["useIframeUrl.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useTenancy } from \"@webiny/app-tenancy\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { usePreviewDomain } from \"./usePreviewDomain\";\n\nexport const useIframeUrl = () => {\n const { tenant } = useTenancy();\n const { previewDomain } = usePreviewDomain();\n\n const id = useSelectFromDocument(document => document.id);\n const documentType = useSelectFromDocument(document => document.metadata.documentType);\n const path = useSelectFromDocument(document => document.properties.path);\n\n return useMemo(() => {\n if (!previewDomain) {\n return null;\n }\n const newUrl = new URL(`${previewDomain}${path}`);\n addSearchParamsFromDocument(tenant!, newUrl, id, documentType);\n return newUrl.toString();\n }, [previewDomain, id, path, documentType]);\n};\n\nfunction addSearchParamsFromDocument(tenant: string, url: URL, id: string, documentType: string) {\n const searchParams = url.searchParams;\n searchParams.set(\"wb.editing\", \"true\");\n searchParams.set(\"wb.type\", documentType);\n searchParams.set(\"wb.id\", id);\n searchParams.set(\"wb.path\", url.pathname);\n searchParams.set(\"wb.referrer\", window.location.origin);\n searchParams.set(\"wb.tenant\", tenant);\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,qBAAqB;AAC9B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAO,CAAC,GAAGJ,UAAU,CAAC,CAAC;EAC/B,MAAM;IAAEK;EAAc,CAAC,GAAGH,gBAAgB,CAAC,CAAC;EAE5C,MAAMI,EAAE,GAAGL,qBAAqB,CAACM,QAAQ,IAAIA,QAAQ,CAACD,EAAE,CAAC;EACzD,MAAME,YAAY,GAAGP,qBAAqB,CAACM,QAAQ,IAAIA,QAAQ,CAACE,QAAQ,CAACD,YAAY,CAAC;EACtF,MAAME,IAAI,GAAGT,qBAAqB,CAACM,QAAQ,IAAIA,QAAQ,CAACI,UAAU,CAACD,IAAI,CAAC;EAExE,OAAOX,OAAO,CAAC,MAAM;IACjB,IAAI,CAACM,aAAa,EAAE;MAChB,OAAO,IAAI;IACf;IACA,MAAMO,MAAM,GAAG,IAAIC,GAAG,CAAC,GAAGR,aAAa,GAAGK,IAAI,EAAE,CAAC;IACjDI,2BAA2B,CAACV,MAAM,EAAGQ,MAAM,EAAEN,EAAE,EAAEE,YAAY,CAAC;IAC9D,OAAOI,MAAM,CAACG,QAAQ,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACV,aAAa,EAAEC,EAAE,EAAEI,IAAI,EAAEF,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAASM,2BAA2BA,CAACV,MAAc,EAAEY,GAAQ,EAAEV,EAAU,EAAEE,YAAoB,EAAE;EAC7F,MAAMS,YAAY,GAAGD,GAAG,CAACC,YAAY;EACrCA,YAAY,CAACC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;EACtCD,YAAY,CAACC,GAAG,CAAC,SAAS,EAAEV,YAAY,CAAC;EACzCS,YAAY,CAACC,GAAG,CAAC,OAAO,EAAEZ,EAAE,CAAC;EAC7BW,YAAY,CAACC,GAAG,CAAC,SAAS,EAAEF,GAAG,CAACG,QAAQ,CAAC;EACzCF,YAAY,CAACC,GAAG,CAAC,aAAa,EAAEE,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC;EACvDL,YAAY,CAACC,GAAG,CAAC,WAAW,EAAEd,MAAM,CAAC;AACzC","ignoreList":[]}
|
|
@@ -22,7 +22,7 @@ export const useBindingsForElement = elementId => {
|
|
|
22
22
|
resolvedBindings: bindingsProcessor.getBindings(bindings, breakpoint.name),
|
|
23
23
|
inheritanceMap: inheritanceProcessor.getInheritanceMap(bindings, breakpoint.name)
|
|
24
24
|
};
|
|
25
|
-
}, [elementId, breakpoint.name]);
|
|
25
|
+
}, [elementId, breakpoint.name, breakpoints.length]);
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
//# sourceMappingURL=useBindingsForElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toJS","BindingsProcessor","useBreakpoint","useSelectFromDocument","useElementInputsAst","InheritanceProcessor","useBindingsForElement","elementId","breakpoint","breakpoints","inputsAst","document","bindings","breakpointNames","map","bp","name","bindingsProcessor","inheritanceProcessor","rawBindings","resolvedBindings","getBindings","inheritanceMap","getInheritanceMap"],"sources":["useBindingsForElement.ts"],"sourcesContent":["import { toJS } from \"mobx\";\nimport { BindingsProcessor } from \"@webiny/website-builder-sdk\";\nimport { useBreakpoint } from \"~/BaseEditor/hooks/useBreakpoint\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { useElementInputsAst } from \"~/BaseEditor/hooks/useElementInputsAst\";\nimport { InheritanceProcessor } from \"@webiny/website-builder-sdk\";\n\nexport const useBindingsForElement = (elementId: string) => {\n const { breakpoint, breakpoints } = useBreakpoint();\n const inputsAst = useElementInputsAst(elementId);\n\n return useSelectFromDocument(\n document => {\n const bindings = toJS(document.bindings[elementId]) ?? {};\n\n // Merge element bindings.\n const breakpointNames = breakpoints.map(bp => bp.name);\n const bindingsProcessor = new BindingsProcessor(breakpointNames);\n const inheritanceProcessor = new InheritanceProcessor(breakpointNames, inputsAst);\n\n return {\n rawBindings: bindings,\n resolvedBindings: bindingsProcessor.getBindings(bindings, breakpoint.name),\n inheritanceMap: inheritanceProcessor.getInheritanceMap(bindings, breakpoint.name)\n };\n },\n [elementId, breakpoint.name]\n );\n};\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,MAAM;AAC3B,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB,QAAQ,6BAA6B;AAElE,OAAO,MAAMC,qBAAqB,GAAIC,SAAiB,IAAK;EACxD,MAAM;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAAGP,aAAa,CAAC,CAAC;EACnD,MAAMQ,SAAS,GAAGN,mBAAmB,CAACG,SAAS,CAAC;EAEhD,OAAOJ,qBAAqB,CACxBQ,QAAQ,IAAI;IACR,MAAMC,QAAQ,GAAGZ,IAAI,CAACW,QAAQ,CAACC,QAAQ,CAACL,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;;IAEzD;IACA,MAAMM,eAAe,GAAGJ,WAAW,CAACK,GAAG,CAACC,EAAE,IAAIA,EAAE,CAACC,IAAI,CAAC;IACtD,MAAMC,iBAAiB,GAAG,IAAIhB,iBAAiB,CAACY,eAAe,CAAC;IAChE,MAAMK,oBAAoB,GAAG,IAAIb,oBAAoB,CAACQ,eAAe,EAAEH,SAAS,CAAC;IAEjF,OAAO;MACHS,WAAW,EAAEP,QAAQ;MACrBQ,gBAAgB,EAAEH,iBAAiB,CAACI,WAAW,CAACT,QAAQ,EAAEJ,UAAU,CAACQ,IAAI,CAAC;MAC1EM,cAAc,EAAEJ,oBAAoB,CAACK,iBAAiB,CAACX,QAAQ,EAAEJ,UAAU,CAACQ,IAAI;IACpF,CAAC;EACL,CAAC,EACD,CAACT,SAAS,EAAEC,UAAU,CAACQ,IAAI,
|
|
1
|
+
{"version":3,"names":["toJS","BindingsProcessor","useBreakpoint","useSelectFromDocument","useElementInputsAst","InheritanceProcessor","useBindingsForElement","elementId","breakpoint","breakpoints","inputsAst","document","bindings","breakpointNames","map","bp","name","bindingsProcessor","inheritanceProcessor","rawBindings","resolvedBindings","getBindings","inheritanceMap","getInheritanceMap","length"],"sources":["useBindingsForElement.ts"],"sourcesContent":["import { toJS } from \"mobx\";\nimport { BindingsProcessor } from \"@webiny/website-builder-sdk\";\nimport { useBreakpoint } from \"~/BaseEditor/hooks/useBreakpoint\";\nimport { useSelectFromDocument } from \"~/BaseEditor/hooks/useSelectFromDocument\";\nimport { useElementInputsAst } from \"~/BaseEditor/hooks/useElementInputsAst\";\nimport { InheritanceProcessor } from \"@webiny/website-builder-sdk\";\n\nexport const useBindingsForElement = (elementId: string) => {\n const { breakpoint, breakpoints } = useBreakpoint();\n const inputsAst = useElementInputsAst(elementId);\n\n return useSelectFromDocument(\n document => {\n const bindings = toJS(document.bindings[elementId]) ?? {};\n\n // Merge element bindings.\n const breakpointNames = breakpoints.map(bp => bp.name);\n const bindingsProcessor = new BindingsProcessor(breakpointNames);\n const inheritanceProcessor = new InheritanceProcessor(breakpointNames, inputsAst);\n\n return {\n rawBindings: bindings,\n resolvedBindings: bindingsProcessor.getBindings(bindings, breakpoint.name),\n inheritanceMap: inheritanceProcessor.getInheritanceMap(bindings, breakpoint.name)\n };\n },\n [elementId, breakpoint.name, breakpoints.length]\n );\n};\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,MAAM;AAC3B,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB,QAAQ,6BAA6B;AAElE,OAAO,MAAMC,qBAAqB,GAAIC,SAAiB,IAAK;EACxD,MAAM;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAAGP,aAAa,CAAC,CAAC;EACnD,MAAMQ,SAAS,GAAGN,mBAAmB,CAACG,SAAS,CAAC;EAEhD,OAAOJ,qBAAqB,CACxBQ,QAAQ,IAAI;IACR,MAAMC,QAAQ,GAAGZ,IAAI,CAACW,QAAQ,CAACC,QAAQ,CAACL,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;;IAEzD;IACA,MAAMM,eAAe,GAAGJ,WAAW,CAACK,GAAG,CAACC,EAAE,IAAIA,EAAE,CAACC,IAAI,CAAC;IACtD,MAAMC,iBAAiB,GAAG,IAAIhB,iBAAiB,CAACY,eAAe,CAAC;IAChE,MAAMK,oBAAoB,GAAG,IAAIb,oBAAoB,CAACQ,eAAe,EAAEH,SAAS,CAAC;IAEjF,OAAO;MACHS,WAAW,EAAEP,QAAQ;MACrBQ,gBAAgB,EAAEH,iBAAiB,CAACI,WAAW,CAACT,QAAQ,EAAEJ,UAAU,CAACQ,IAAI,CAAC;MAC1EM,cAAc,EAAEJ,oBAAoB,CAACK,iBAAiB,CAACX,QAAQ,EAAEJ,UAAU,CAACQ,IAAI;IACpF,CAAC;EACL,CAAC,EACD,CAACT,SAAS,EAAEC,UAAU,CAACQ,IAAI,EAAEP,WAAW,CAACe,MAAM,CACnD,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React, { useMemo } from "react";
|
|
2
2
|
import { Text, Tag, Icon, Button, Separator, DropdownMenu, FormComponentLabel } from "@webiny/admin-ui";
|
|
3
3
|
import { useBreakpoint } from "../../hooks/useBreakpoint";
|
|
4
|
+
import { InlineSvg } from "../Toolbar/InsertElements/InlineSvg";
|
|
4
5
|
const getBreakpointIcon = (breakpoints, name) => {
|
|
5
6
|
const bp = breakpoints.find(breakpoint => breakpoint.name === name);
|
|
6
|
-
return bp ?
|
|
7
|
+
return bp ? /*#__PURE__*/React.createElement(InlineSvg, {
|
|
8
|
+
src: bp.icon
|
|
9
|
+
}) : null;
|
|
7
10
|
};
|
|
8
11
|
const iconClassName = "wby-cursor-pointer wby-mr-xs wby-mb-[2px]";
|
|
9
12
|
export const InheritanceLabel = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Text","Tag","Icon","Button","Separator","DropdownMenu","FormComponentLabel","useBreakpoint","getBreakpointIcon","breakpoints","name","bp","find","breakpoint","icon","iconClassName","InheritanceLabel","inheritedFrom","isOverridden","text","onReset","isBaseBreakpoint","baseBreakpoint","
|
|
1
|
+
{"version":3,"names":["React","useMemo","Text","Tag","Icon","Button","Separator","DropdownMenu","FormComponentLabel","useBreakpoint","InlineSvg","getBreakpointIcon","breakpoints","name","bp","find","breakpoint","createElement","src","icon","iconClassName","InheritanceLabel","inheritedFrom","isOverridden","text","onReset","isBaseBreakpoint","baseBreakpoint","className","trigger","label","size","color","style","fill","align","side","width","InheritedFrom","overriddenAt","variant","margin","onClick","content"],"sources":["InheritanceLabel.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n Text,\n Tag,\n Icon,\n Button,\n Separator,\n DropdownMenu,\n FormComponentLabel\n} from \"@webiny/admin-ui\";\nimport { useBreakpoint } from \"~/BaseEditor/hooks/useBreakpoint\";\nimport { InlineSvg } from \"~/BaseEditor/defaultConfig/Toolbar/InsertElements/InlineSvg\";\nimport type { Breakpoint } from \"@webiny/website-builder-sdk\";\n\nexport interface InheritanceLabelProps {\n text: React.ReactNode;\n isOverridden: boolean;\n onReset: () => void;\n inheritedFrom?: string;\n}\n\nconst getBreakpointIcon = (breakpoints: Breakpoint[], name: string) => {\n const bp = breakpoints.find(breakpoint => breakpoint.name === name);\n return bp ? <InlineSvg src={bp.icon} /> : null;\n};\n\nconst iconClassName = \"wby-cursor-pointer wby-mr-xs wby-mb-[2px]\";\n\nexport const InheritanceLabel = ({\n inheritedFrom,\n isOverridden,\n text,\n onReset\n}: InheritanceLabelProps) => {\n const { breakpoint, breakpoints, isBaseBreakpoint } = useBreakpoint();\n const baseBreakpoint = breakpoints[0];\n\n const icon = useMemo(() => {\n const bp = inheritedFrom ?? baseBreakpoint.name;\n return getBreakpointIcon(breakpoints, bp);\n }, [inheritedFrom, breakpoint.name]);\n\n if (isBaseBreakpoint) {\n return <FormComponentLabel text={text} />;\n }\n\n return (\n <div className={\"wby-flex wby-items-center\"}>\n <DropdownMenu\n trigger={\n isOverridden ? (\n <Icon\n icon={icon}\n label=\"\"\n size=\"sm\"\n color=\"neutral-strong\"\n className={iconClassName}\n style={{ fill: \"hsl(var(--bg-success-default))\" }}\n />\n ) : (\n <Icon\n icon={icon}\n label=\"\"\n size=\"sm\"\n color=\"neutral-strong\"\n className={iconClassName}\n />\n )\n }\n align=\"center\"\n side=\"bottom\"\n className={\"wy-p-sm wby-shadow-lg\"}\n >\n <div className={\"wby-p-sm wby-text-sm\"} style={{ width: 200 }}>\n <InheritedFrom\n inheritedFrom={inheritedFrom ?? baseBreakpoint.name}\n overriddenAt={isOverridden ? breakpoint.name : null}\n onReset={onReset}\n />\n </div>\n </DropdownMenu>\n <FormComponentLabel text={text} />\n </div>\n );\n};\n\ninterface InheritedFromProps {\n overriddenAt: string | null;\n inheritedFrom?: string;\n onReset: () => void;\n}\n\nexport const InheritedFrom = ({ overriddenAt, inheritedFrom, onReset }: InheritedFromProps) => {\n if (overriddenAt) {\n return (\n <div>\n This value is set on the current breakpoint.\n <Separator variant={\"dimmed\"} margin={\"lg\"} />\n <Button variant={\"primary\"} onClick={onReset} text={\"Reset value\"} size={\"sm\"} />\n <Separator variant={\"dimmed\"} margin={\"lg\"} />\n Resetting will inherit the value from the{\" \"}\n <Tag variant={\"neutral-muted\"} content={inheritedFrom} /> breakpoint.\n </div>\n );\n }\n\n return (\n <Text size={\"sm\"}>\n This value is inherited from the{\" \"}\n <Tag variant={\"neutral-muted\"} content={inheritedFrom} /> breakpoint.\n </Text>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,8 +19,8 @@ export class StylesStore {
|
|
|
19
19
|
this.breakpointNames = breakpointNames;
|
|
20
20
|
const manifest = $getComponentManifestByElementId(editor, elementId ?? "");
|
|
21
21
|
const inputsAst = ComponentManifestToAstConverter.convert(manifest?.inputs ?? []);
|
|
22
|
-
this.bindingsProcessor = new BindingsProcessor(
|
|
23
|
-
this.inheritanceProcessor = new InheritanceProcessor(
|
|
22
|
+
this.bindingsProcessor = new BindingsProcessor(breakpointNames);
|
|
23
|
+
this.inheritanceProcessor = new InheritanceProcessor(breakpointNames, inputsAst);
|
|
24
24
|
const document = this.editor.getDocumentState().read();
|
|
25
25
|
const editorState = this.editor.getEditorState().read();
|
|
26
26
|
const breakpoint = editorState.breakpoint ?? BASE_BREAKPOINT;
|
|
@@ -57,11 +57,11 @@ export class StylesStore {
|
|
|
57
57
|
});
|
|
58
58
|
const finalStyles = styles.getAll();
|
|
59
59
|
const updatedStyles = this.stylesProcessor.createUpdate(finalStyles, this.currentBreakpoint);
|
|
60
|
-
this.localPreviewStyles = undefined;
|
|
61
60
|
this.editor.updateDocument(document => {
|
|
62
61
|
updatedStyles.applyToDocument(document);
|
|
63
62
|
this.elementMetadata.applyToDocument(document);
|
|
64
63
|
});
|
|
64
|
+
this.localPreviewStyles = undefined;
|
|
65
65
|
};
|
|
66
66
|
onPreviewChange = cb => {
|
|
67
67
|
if (!this.stylesProcessor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StylesBindingsProcessor","BreakpointElementMetadata","ElementMetadata","NullMetadata","StylesMetadata","Commands","autorun","makeAutoObservable","runInAction","InheritanceProcessor","BindingsProcessor","$getComponentManifestByElementId","ComponentManifestToAstConverter","BASE_BREAKPOINT","StylesStore","elementMetadata","devFriendlyStyles","localPreviewStyles","undefined","inheritanceMap","rawBindings","constructor","editor","elementId","breakpointNames","manifest","inputsAst","convert","inputs","bindingsProcessor","inheritanceProcessor","document","getDocumentState","read","editorState","getEditorState","breakpoint","currentBreakpoint","calculateStuff","vm","styles","metadata","onChange","cb","stylesProcessor","StylesValueObject","finalStyles","getAll","updatedStyles","createUpdate","updateDocument","applyToDocument","onPreviewChange","structuredClone","executeCommand","PreviewPatchElement","patch","createJsonPatch","bindings","resolvedBindings","getBindings","getInheritanceMap","toDeepStyles","value","set","key","get","unset"],"sources":["StylesStore.ts"],"sourcesContent":["import type { useDocumentEditor } from \"~/DocumentEditor\";\nimport { StylesBindingsProcessor } from \"@webiny/website-builder-sdk\";\nimport type { IMetadata } from \"~/BaseEditor/metadata\";\nimport {\n BreakpointElementMetadata,\n ElementMetadata,\n NullMetadata,\n StylesMetadata\n} from \"~/BaseEditor/metadata\";\nimport { Commands } from \"~/BaseEditor\";\nimport type { Editor } from \"~/editorSdk/Editor\";\nimport { autorun, makeAutoObservable, runInAction } from \"mobx\";\nimport { type InheritanceInfo, InheritanceProcessor } from \"@webiny/website-builder-sdk\";\nimport {\n BindingsProcessor,\n type DocumentElementBindings,\n type Document\n} from \"@webiny/website-builder-sdk\";\nimport { $getComponentManifestByElementId } from \"~/editorSdk/utils\";\nimport { ComponentManifestToAstConverter } from \"@webiny/website-builder-sdk\";\nimport { BASE_BREAKPOINT } from \"~/constants\";\n\nexport type ElementBreakpointStyles = {\n styles: Record<string, any>;\n metadata: IMetadata;\n inheritanceMap: InheritanceInfo[\"styles\"];\n};\n\nexport class StylesStore {\n private editor: ReturnType<typeof useDocumentEditor>;\n private elementId: string;\n private breakpointNames: string[];\n private stylesProcessor: StylesBindingsProcessor | undefined;\n private elementMetadata: IMetadata = new NullMetadata();\n private devFriendlyStyles: Record<string, any> = {};\n private localPreviewStyles: Record<string, any> | undefined = undefined;\n private currentBreakpoint: string;\n private inheritanceMap: InheritanceInfo[\"styles\"] = {};\n private rawBindings: DocumentElementBindings = {};\n private bindingsProcessor: BindingsProcessor;\n private inheritanceProcessor: InheritanceProcessor;\n constructor(editor: Editor, elementId: string, breakpointNames: string[]) {\n this.editor = editor;\n this.elementId = elementId;\n this.breakpointNames = breakpointNames;\n\n const manifest = $getComponentManifestByElementId(editor, elementId ?? \"\");\n const inputsAst = ComponentManifestToAstConverter.convert(manifest?.inputs ?? []);\n\n this.bindingsProcessor = new BindingsProcessor(this.breakpointNames);\n this.inheritanceProcessor = new InheritanceProcessor(this.breakpointNames, inputsAst);\n\n const document = this.editor.getDocumentState().read();\n const editorState = this.editor.getEditorState().read();\n const breakpoint = editorState.breakpoint ?? BASE_BREAKPOINT;\n this.currentBreakpoint = breakpoint;\n\n // Initial setup.\n this.calculateStuff(document, breakpoint);\n\n autorun(() => {\n const document = this.editor.getDocumentState().read();\n const editorState = this.editor.getEditorState().read();\n const breakpoint = editorState.breakpoint ?? BASE_BREAKPOINT;\n\n runInAction(() => {\n this.currentBreakpoint = breakpoint;\n this.calculateStuff(document, breakpoint);\n });\n });\n\n makeAutoObservable(this);\n }\n\n get vm(): ElementBreakpointStyles {\n return {\n styles: this.localPreviewStyles ?? this.devFriendlyStyles,\n metadata: this.elementMetadata,\n inheritanceMap: this.inheritanceMap\n };\n }\n\n onChange = (cb: (params: { styles: StylesValueObject; metadata: IMetadata }) => void) => {\n if (!this.stylesProcessor) {\n return;\n }\n\n const styles = new StylesValueObject(this.devFriendlyStyles);\n cb({ styles, metadata: this.elementMetadata });\n\n const finalStyles = styles.getAll();\n\n const updatedStyles = this.stylesProcessor.createUpdate(\n finalStyles,\n this.currentBreakpoint\n );\n\n this.localPreviewStyles = undefined;\n\n this.editor.updateDocument(document => {\n updatedStyles.applyToDocument(document);\n this.elementMetadata.applyToDocument(document);\n });\n };\n\n onPreviewChange = (\n cb: (params: { styles: StylesValueObject; metadata: IMetadata }) => void\n ) => {\n if (!this.stylesProcessor) {\n return;\n }\n\n const styles = new StylesValueObject(structuredClone(this.devFriendlyStyles));\n\n cb({ styles, metadata: this.elementMetadata });\n\n const finalStyles = styles.getAll();\n\n this.localPreviewStyles = finalStyles;\n\n const updatedStyles = this.stylesProcessor.createUpdate(\n finalStyles,\n this.currentBreakpoint\n );\n\n this.editor.executeCommand(Commands.PreviewPatchElement, {\n elementId: this.elementId,\n patch: updatedStyles.createJsonPatch(this.rawBindings)\n });\n };\n\n private calculateStuff(document: Document, breakpoint: string) {\n const bindings = document.bindings[this.elementId] ?? {};\n\n this.rawBindings = bindings;\n const resolvedBindings = this.bindingsProcessor.getBindings(bindings, breakpoint);\n\n const inheritanceMap = this.inheritanceProcessor.getInheritanceMap(bindings, breakpoint);\n\n this.inheritanceMap = inheritanceMap.styles;\n\n this.stylesProcessor = new StylesBindingsProcessor(\n this.elementId,\n this.breakpointNames,\n bindings\n );\n\n this.elementMetadata = new StylesMetadata(\n new BreakpointElementMetadata(\n this.breakpointNames,\n breakpoint,\n new ElementMetadata(this.elementId, bindings.metadata)\n )\n );\n\n this.devFriendlyStyles = this.stylesProcessor.toDeepStyles(resolvedBindings.styles);\n }\n}\n\nexport class StylesValueObject {\n private readonly value: Record<string, any>;\n\n constructor(value: any = {}) {\n this.value = value;\n }\n\n set(key: string, value: any) {\n this.value[key] = value;\n }\n\n get(key: string) {\n return this.value[key];\n }\n\n getAll() {\n return this.value;\n }\n\n unset(key: string) {\n delete this.value[key];\n }\n}\n"],"mappings":"AACA,SAASA,uBAAuB,QAAQ,6BAA6B;AAErE,SACIC,yBAAyB,EACzBC,eAAe,EACfC,YAAY,EACZC,cAAc;AAElB,SAASC,QAAQ;AAEjB,SAASC,OAAO,EAAEC,kBAAkB,EAAEC,WAAW,QAAQ,MAAM;AAC/D,SAA+BC,oBAAoB,QAAQ,6BAA6B;AACxF,SACIC,iBAAiB,QAGd,6BAA6B;AACpC,SAASC,gCAAgC;AACzC,SAASC,+BAA+B,QAAQ,6BAA6B;AAC7E,SAASC,eAAe;AAQxB,OAAO,MAAMC,WAAW,CAAC;EAKbC,eAAe,GAAc,IAAIZ,YAAY,CAAC,CAAC;EAC/Ca,iBAAiB,GAAwB,CAAC,CAAC;EAC3CC,kBAAkB,GAAoCC,SAAS;EAE/DC,cAAc,GAA8B,CAAC,CAAC;EAC9CC,WAAW,GAA4B,CAAC,CAAC;EAGjDC,WAAWA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,eAAyB,EAAE;IACtE,IAAI,CAACF,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,eAAe,GAAGA,eAAe;IAEtC,MAAMC,QAAQ,GAAGd,gCAAgC,CAACW,MAAM,EAAEC,SAAS,IAAI,EAAE,CAAC;IAC1E,MAAMG,SAAS,GAAGd,+BAA+B,CAACe,OAAO,CAACF,QAAQ,EAAEG,MAAM,IAAI,EAAE,CAAC;IAEjF,IAAI,CAACC,iBAAiB,GAAG,IAAInB,iBAAiB,CAAC,IAAI,CAACc,eAAe,CAAC;IACpE,IAAI,CAACM,oBAAoB,GAAG,IAAIrB,oBAAoB,CAAC,IAAI,CAACe,eAAe,EAAEE,SAAS,CAAC;IAErF,MAAMK,QAAQ,GAAG,IAAI,CAACT,MAAM,CAACU,gBAAgB,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;IACtD,MAAMC,WAAW,GAAG,IAAI,CAACZ,MAAM,CAACa,cAAc,CAAC,CAAC,CAACF,IAAI,CAAC,CAAC;IACvD,MAAMG,UAAU,GAAGF,WAAW,CAACE,UAAU,IAAIvB,eAAe;IAC5D,IAAI,CAACwB,iBAAiB,GAAGD,UAAU;;IAEnC;IACA,IAAI,CAACE,cAAc,CAACP,QAAQ,EAAEK,UAAU,CAAC;IAEzC9B,OAAO,CAAC,MAAM;MACV,MAAMyB,QAAQ,GAAG,IAAI,CAACT,MAAM,CAACU,gBAAgB,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;MACtD,MAAMC,WAAW,GAAG,IAAI,CAACZ,MAAM,CAACa,cAAc,CAAC,CAAC,CAACF,IAAI,CAAC,CAAC;MACvD,MAAMG,UAAU,GAAGF,WAAW,CAACE,UAAU,IAAIvB,eAAe;MAE5DL,WAAW,CAAC,MAAM;QACd,IAAI,CAAC6B,iBAAiB,GAAGD,UAAU;QACnC,IAAI,CAACE,cAAc,CAACP,QAAQ,EAAEK,UAAU,CAAC;MAC7C,CAAC,CAAC;IACN,CAAC,CAAC;IAEF7B,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEA,IAAIgC,EAAEA,CAAA,EAA4B;IAC9B,OAAO;MACHC,MAAM,EAAE,IAAI,CAACvB,kBAAkB,IAAI,IAAI,CAACD,iBAAiB;MACzDyB,QAAQ,EAAE,IAAI,CAAC1B,eAAe;MAC9BI,cAAc,EAAE,IAAI,CAACA;IACzB,CAAC;EACL;EAEAuB,QAAQ,GAAIC,EAAwE,IAAK;IACrF,IAAI,CAAC,IAAI,CAACC,eAAe,EAAE;MACvB;IACJ;IAEA,MAAMJ,MAAM,GAAG,IAAIK,iBAAiB,CAAC,IAAI,CAAC7B,iBAAiB,CAAC;IAC5D2B,EAAE,CAAC;MAAEH,MAAM;MAAEC,QAAQ,EAAE,IAAI,CAAC1B;IAAgB,CAAC,CAAC;IAE9C,MAAM+B,WAAW,GAAGN,MAAM,CAACO,MAAM,CAAC,CAAC;IAEnC,MAAMC,aAAa,GAAG,IAAI,CAACJ,eAAe,CAACK,YAAY,CACnDH,WAAW,EACX,IAAI,CAACT,iBACT,CAAC;IAED,IAAI,CAACpB,kBAAkB,GAAGC,SAAS;IAEnC,IAAI,CAACI,MAAM,CAAC4B,cAAc,CAACnB,QAAQ,IAAI;MACnCiB,aAAa,CAACG,eAAe,CAACpB,QAAQ,CAAC;MACvC,IAAI,CAAChB,eAAe,CAACoC,eAAe,CAACpB,QAAQ,CAAC;IAClD,CAAC,CAAC;EACN,CAAC;EAEDqB,eAAe,GACXT,EAAwE,IACvE;IACD,IAAI,CAAC,IAAI,CAACC,eAAe,EAAE;MACvB;IACJ;IAEA,MAAMJ,MAAM,GAAG,IAAIK,iBAAiB,CAACQ,eAAe,CAAC,IAAI,CAACrC,iBAAiB,CAAC,CAAC;IAE7E2B,EAAE,CAAC;MAAEH,MAAM;MAAEC,QAAQ,EAAE,IAAI,CAAC1B;IAAgB,CAAC,CAAC;IAE9C,MAAM+B,WAAW,GAAGN,MAAM,CAACO,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC9B,kBAAkB,GAAG6B,WAAW;IAErC,MAAME,aAAa,GAAG,IAAI,CAACJ,eAAe,CAACK,YAAY,CACnDH,WAAW,EACX,IAAI,CAACT,iBACT,CAAC;IAED,IAAI,CAACf,MAAM,CAACgC,cAAc,CAACjD,QAAQ,CAACkD,mBAAmB,EAAE;MACrDhC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBiC,KAAK,EAAER,aAAa,CAACS,eAAe,CAAC,IAAI,CAACrC,WAAW;IACzD,CAAC,CAAC;EACN,CAAC;EAEOkB,cAAcA,CAACP,QAAkB,EAAEK,UAAkB,EAAE;IAC3D,MAAMsB,QAAQ,GAAG3B,QAAQ,CAAC2B,QAAQ,CAAC,IAAI,CAACnC,SAAS,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,CAACH,WAAW,GAAGsC,QAAQ;IAC3B,MAAMC,gBAAgB,GAAG,IAAI,CAAC9B,iBAAiB,CAAC+B,WAAW,CAACF,QAAQ,EAAEtB,UAAU,CAAC;IAEjF,MAAMjB,cAAc,GAAG,IAAI,CAACW,oBAAoB,CAAC+B,iBAAiB,CAACH,QAAQ,EAAEtB,UAAU,CAAC;IAExF,IAAI,CAACjB,cAAc,GAAGA,cAAc,CAACqB,MAAM;IAE3C,IAAI,CAACI,eAAe,GAAG,IAAI5C,uBAAuB,CAC9C,IAAI,CAACuB,SAAS,EACd,IAAI,CAACC,eAAe,EACpBkC,QACJ,CAAC;IAED,IAAI,CAAC3C,eAAe,GAAG,IAAIX,cAAc,CACrC,IAAIH,yBAAyB,CACzB,IAAI,CAACuB,eAAe,EACpBY,UAAU,EACV,IAAIlC,eAAe,CAAC,IAAI,CAACqB,SAAS,EAAEmC,QAAQ,CAACjB,QAAQ,CACzD,CACJ,CAAC;IAED,IAAI,CAACzB,iBAAiB,GAAG,IAAI,CAAC4B,eAAe,CAACkB,YAAY,CAACH,gBAAgB,CAACnB,MAAM,CAAC;EACvF;AACJ;AAEA,OAAO,MAAMK,iBAAiB,CAAC;EAG3BxB,WAAWA,CAAC0C,KAAU,GAAG,CAAC,CAAC,EAAE;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACtB;EAEAC,GAAGA,CAACC,GAAW,EAAEF,KAAU,EAAE;IACzB,IAAI,CAACA,KAAK,CAACE,GAAG,CAAC,GAAGF,KAAK;EAC3B;EAEAG,GAAGA,CAACD,GAAW,EAAE;IACb,OAAO,IAAI,CAACF,KAAK,CAACE,GAAG,CAAC;EAC1B;EAEAlB,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACgB,KAAK;EACrB;EAEAI,KAAKA,CAACF,GAAW,EAAE;IACf,OAAO,IAAI,CAACF,KAAK,CAACE,GAAG,CAAC;EAC1B;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["StylesBindingsProcessor","BreakpointElementMetadata","ElementMetadata","NullMetadata","StylesMetadata","Commands","autorun","makeAutoObservable","runInAction","InheritanceProcessor","BindingsProcessor","$getComponentManifestByElementId","ComponentManifestToAstConverter","BASE_BREAKPOINT","StylesStore","elementMetadata","devFriendlyStyles","localPreviewStyles","undefined","inheritanceMap","rawBindings","constructor","editor","elementId","breakpointNames","manifest","inputsAst","convert","inputs","bindingsProcessor","inheritanceProcessor","document","getDocumentState","read","editorState","getEditorState","breakpoint","currentBreakpoint","calculateStuff","vm","styles","metadata","onChange","cb","stylesProcessor","StylesValueObject","finalStyles","getAll","updatedStyles","createUpdate","updateDocument","applyToDocument","onPreviewChange","structuredClone","executeCommand","PreviewPatchElement","patch","createJsonPatch","bindings","resolvedBindings","getBindings","getInheritanceMap","toDeepStyles","value","set","key","get","unset"],"sources":["StylesStore.ts"],"sourcesContent":["import type { useDocumentEditor } from \"~/DocumentEditor\";\nimport { StylesBindingsProcessor } from \"@webiny/website-builder-sdk\";\nimport type { IMetadata } from \"~/BaseEditor/metadata\";\nimport {\n BreakpointElementMetadata,\n ElementMetadata,\n NullMetadata,\n StylesMetadata\n} from \"~/BaseEditor/metadata\";\nimport { Commands } from \"~/BaseEditor\";\nimport type { Editor } from \"~/editorSdk/Editor\";\nimport { autorun, makeAutoObservable, runInAction } from \"mobx\";\nimport { type InheritanceInfo, InheritanceProcessor } from \"@webiny/website-builder-sdk\";\nimport {\n BindingsProcessor,\n type DocumentElementBindings,\n type Document\n} from \"@webiny/website-builder-sdk\";\nimport { $getComponentManifestByElementId } from \"~/editorSdk/utils\";\nimport { ComponentManifestToAstConverter } from \"@webiny/website-builder-sdk\";\nimport { BASE_BREAKPOINT } from \"~/constants\";\n\nexport type ElementBreakpointStyles = {\n styles: Record<string, any>;\n metadata: IMetadata;\n inheritanceMap: InheritanceInfo[\"styles\"];\n};\n\nexport class StylesStore {\n private editor: ReturnType<typeof useDocumentEditor>;\n private elementId: string;\n private breakpointNames: string[];\n private stylesProcessor: StylesBindingsProcessor | undefined;\n private elementMetadata: IMetadata = new NullMetadata();\n private devFriendlyStyles: Record<string, any> = {};\n private localPreviewStyles: Record<string, any> | undefined = undefined;\n private currentBreakpoint: string;\n private inheritanceMap: InheritanceInfo[\"styles\"] = {};\n private rawBindings: DocumentElementBindings = {};\n private bindingsProcessor: BindingsProcessor;\n private inheritanceProcessor: InheritanceProcessor;\n constructor(editor: Editor, elementId: string, breakpointNames: string[]) {\n this.editor = editor;\n this.elementId = elementId;\n this.breakpointNames = breakpointNames;\n\n const manifest = $getComponentManifestByElementId(editor, elementId ?? \"\");\n const inputsAst = ComponentManifestToAstConverter.convert(manifest?.inputs ?? []);\n\n this.bindingsProcessor = new BindingsProcessor(breakpointNames);\n this.inheritanceProcessor = new InheritanceProcessor(breakpointNames, inputsAst);\n\n const document = this.editor.getDocumentState().read();\n const editorState = this.editor.getEditorState().read();\n const breakpoint = editorState.breakpoint ?? BASE_BREAKPOINT;\n this.currentBreakpoint = breakpoint;\n\n // Initial setup.\n this.calculateStuff(document, breakpoint);\n\n autorun(() => {\n const document = this.editor.getDocumentState().read();\n const editorState = this.editor.getEditorState().read();\n const breakpoint = editorState.breakpoint ?? BASE_BREAKPOINT;\n\n runInAction(() => {\n this.currentBreakpoint = breakpoint;\n this.calculateStuff(document, breakpoint);\n });\n });\n\n makeAutoObservable(this);\n }\n\n get vm(): ElementBreakpointStyles {\n return {\n styles: this.localPreviewStyles ?? this.devFriendlyStyles,\n metadata: this.elementMetadata,\n inheritanceMap: this.inheritanceMap\n };\n }\n\n onChange = (cb: (params: { styles: StylesValueObject; metadata: IMetadata }) => void) => {\n if (!this.stylesProcessor) {\n return;\n }\n\n const styles = new StylesValueObject(this.devFriendlyStyles);\n cb({ styles, metadata: this.elementMetadata });\n\n const finalStyles = styles.getAll();\n\n const updatedStyles = this.stylesProcessor.createUpdate(\n finalStyles,\n this.currentBreakpoint\n );\n\n this.editor.updateDocument(document => {\n updatedStyles.applyToDocument(document);\n this.elementMetadata.applyToDocument(document);\n });\n\n this.localPreviewStyles = undefined;\n };\n\n onPreviewChange = (\n cb: (params: { styles: StylesValueObject; metadata: IMetadata }) => void\n ) => {\n if (!this.stylesProcessor) {\n return;\n }\n\n const styles = new StylesValueObject(structuredClone(this.devFriendlyStyles));\n\n cb({ styles, metadata: this.elementMetadata });\n\n const finalStyles = styles.getAll();\n\n this.localPreviewStyles = finalStyles;\n\n const updatedStyles = this.stylesProcessor.createUpdate(\n finalStyles,\n this.currentBreakpoint\n );\n\n this.editor.executeCommand(Commands.PreviewPatchElement, {\n elementId: this.elementId,\n patch: updatedStyles.createJsonPatch(this.rawBindings)\n });\n };\n\n private calculateStuff(document: Document, breakpoint: string) {\n const bindings = document.bindings[this.elementId] ?? {};\n\n this.rawBindings = bindings;\n const resolvedBindings = this.bindingsProcessor.getBindings(bindings, breakpoint);\n\n const inheritanceMap = this.inheritanceProcessor.getInheritanceMap(bindings, breakpoint);\n\n this.inheritanceMap = inheritanceMap.styles;\n\n this.stylesProcessor = new StylesBindingsProcessor(\n this.elementId,\n this.breakpointNames,\n bindings\n );\n\n this.elementMetadata = new StylesMetadata(\n new BreakpointElementMetadata(\n this.breakpointNames,\n breakpoint,\n new ElementMetadata(this.elementId, bindings.metadata)\n )\n );\n\n this.devFriendlyStyles = this.stylesProcessor.toDeepStyles(resolvedBindings.styles);\n }\n}\n\nexport class StylesValueObject {\n private readonly value: Record<string, any>;\n\n constructor(value: any = {}) {\n this.value = value;\n }\n\n set(key: string, value: any) {\n this.value[key] = value;\n }\n\n get(key: string) {\n return this.value[key];\n }\n\n getAll() {\n return this.value;\n }\n\n unset(key: string) {\n delete this.value[key];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,14 +11,15 @@ export function useStyles(elementId) {
|
|
|
11
11
|
breakpoints
|
|
12
12
|
} = useBreakpoint();
|
|
13
13
|
const store = useMemo(() => {
|
|
14
|
+
const cacheKey = [elementId, ...breakpoints].join(";");
|
|
14
15
|
// Create or get existing store for this element
|
|
15
|
-
let store = stylesStores.get(
|
|
16
|
+
let store = stylesStores.get(cacheKey);
|
|
16
17
|
if (!store) {
|
|
17
18
|
store = new StylesStore(editor, elementId, breakpoints.map(bp => bp.name));
|
|
18
|
-
stylesStores.set(
|
|
19
|
+
stylesStores.set(cacheKey, store);
|
|
19
20
|
}
|
|
20
21
|
return store;
|
|
21
|
-
}, [elementId]);
|
|
22
|
+
}, [elementId, breakpoints.length]);
|
|
22
23
|
return {
|
|
23
24
|
store,
|
|
24
25
|
styles: store.vm.styles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useDocumentEditor","useBreakpoint","StylesStore","stylesStores","Map","useStyles","elementId","editor","breakpoints","store","get","map","bp","name","set","styles","vm","metadata","inheritanceMap","onChange","onPreviewChange"],"sources":["useStyles.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useDocumentEditor } from \"~/DocumentEditor\";\nimport { useBreakpoint } from \"~/BaseEditor/hooks/useBreakpoint\";\nimport { StylesStore, type ElementBreakpointStyles } from \"./StylesStore\";\n\n// Singleton store container\nconst stylesStores = new Map<string, StylesStore>();\n\nexport type { ElementBreakpointStyles };\n\nexport function useStyles(elementId: string) {\n const editor = useDocumentEditor();\n const { breakpoints } = useBreakpoint();\n\n const store = useMemo(() => {\n // Create or get existing store for this element\n let store = stylesStores.get(
|
|
1
|
+
{"version":3,"names":["useMemo","useDocumentEditor","useBreakpoint","StylesStore","stylesStores","Map","useStyles","elementId","editor","breakpoints","store","cacheKey","join","get","map","bp","name","set","length","styles","vm","metadata","inheritanceMap","onChange","onPreviewChange"],"sources":["useStyles.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useDocumentEditor } from \"~/DocumentEditor\";\nimport { useBreakpoint } from \"~/BaseEditor/hooks/useBreakpoint\";\nimport { StylesStore, type ElementBreakpointStyles } from \"./StylesStore\";\n\n// Singleton store container\nconst stylesStores = new Map<string, StylesStore>();\n\nexport type { ElementBreakpointStyles };\n\nexport function useStyles(elementId: string) {\n const editor = useDocumentEditor();\n const { breakpoints } = useBreakpoint();\n\n const store = useMemo(() => {\n const cacheKey = [elementId, ...breakpoints].join(\";\");\n // Create or get existing store for this element\n let store = stylesStores.get(cacheKey);\n\n if (!store) {\n store = new StylesStore(\n editor,\n elementId,\n breakpoints.map(bp => bp.name)\n );\n stylesStores.set(cacheKey, store);\n }\n\n return store;\n }, [elementId, breakpoints.length]);\n\n return {\n store,\n styles: store.vm.styles,\n metadata: store.vm.metadata,\n inheritanceMap: store.vm.inheritanceMap,\n onChange: store.onChange,\n onPreviewChange: store.onPreviewChange\n };\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,aAAa;AACtB,SAASC,WAAW;;AAEpB;AACA,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAsB,CAAC;AAInD,OAAO,SAASC,SAASA,CAACC,SAAiB,EAAE;EACzC,MAAMC,MAAM,GAAGP,iBAAiB,CAAC,CAAC;EAClC,MAAM;IAAEQ;EAAY,CAAC,GAAGP,aAAa,CAAC,CAAC;EAEvC,MAAMQ,KAAK,GAAGV,OAAO,CAAC,MAAM;IACxB,MAAMW,QAAQ,GAAG,CAACJ,SAAS,EAAE,GAAGE,WAAW,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;IACtD;IACA,IAAIF,KAAK,GAAGN,YAAY,CAACS,GAAG,CAACF,QAAQ,CAAC;IAEtC,IAAI,CAACD,KAAK,EAAE;MACRA,KAAK,GAAG,IAAIP,WAAW,CACnBK,MAAM,EACND,SAAS,EACTE,WAAW,CAACK,GAAG,CAACC,EAAE,IAAIA,EAAE,CAACC,IAAI,CACjC,CAAC;MACDZ,YAAY,CAACa,GAAG,CAACN,QAAQ,EAAED,KAAK,CAAC;IACrC;IAEA,OAAOA,KAAK;EAChB,CAAC,EAAE,CAACH,SAAS,EAAEE,WAAW,CAACS,MAAM,CAAC,CAAC;EAEnC,OAAO;IACHR,KAAK;IACLS,MAAM,EAAET,KAAK,CAACU,EAAE,CAACD,MAAM;IACvBE,QAAQ,EAAEX,KAAK,CAACU,EAAE,CAACC,QAAQ;IAC3BC,cAAc,EAAEZ,KAAK,CAACU,EAAE,CAACE,cAAc;IACvCC,QAAQ,EAAEb,KAAK,CAACa,QAAQ;IACxBC,eAAe,EAAEd,KAAK,CAACc;EAC3B,CAAC;AACL","ignoreList":[]}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
import type { Breakpoint } from "@webiny/website-builder-sdk";
|
|
3
|
-
export type EditorBreakpoint = Breakpoint & {
|
|
4
|
-
title: string;
|
|
5
|
-
description: string;
|
|
6
|
-
icon: React.ReactNode;
|
|
7
|
-
};
|
|
8
1
|
export declare const useBreakpoint: () => {
|
|
9
2
|
isBaseBreakpoint: boolean;
|
|
10
|
-
breakpoint: import("@webiny/website-builder-sdk
|
|
11
|
-
|
|
12
|
-
maxWidth: number;
|
|
13
|
-
};
|
|
14
|
-
breakpoints: import("@webiny/website-builder-sdk/types/WebsiteBuilderTheme").Breakpoint[];
|
|
3
|
+
breakpoint: import("@webiny/website-builder-sdk").Breakpoint;
|
|
4
|
+
breakpoints: import("@webiny/website-builder-sdk").Breakpoint[];
|
|
15
5
|
setBreakpoint: (mode: string) => void;
|
|
16
6
|
};
|
|
@@ -16,9 +16,13 @@ export const useBreakpoint = () => {
|
|
|
16
16
|
const bp = breakpoints.find(bp => bp.name === activeBreakpoint);
|
|
17
17
|
return bp ?? {
|
|
18
18
|
name: BASE_BREAKPOINT,
|
|
19
|
+
title: "Base Breakpoint",
|
|
20
|
+
description: "",
|
|
21
|
+
icon: "",
|
|
22
|
+
minWidth: 0,
|
|
19
23
|
maxWidth: 4000
|
|
20
24
|
};
|
|
21
|
-
}, [activeBreakpoint, breakpoints]);
|
|
25
|
+
}, [activeBreakpoint, breakpoints.length]);
|
|
22
26
|
const setBreakpoint = useCallback(mode => {
|
|
23
27
|
editor.updateEditor(state => {
|
|
24
28
|
state.breakpoint = mode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useDocumentEditor","useSelectFromEditor","BASE_BREAKPOINT","useWebsiteBuilderTheme","useBreakpoint","theme","breakpoints","editor","activeBreakpoint","state","breakpoint","name","bp","find","maxWidth","setBreakpoint","mode","updateEditor","isBaseBreakpoint"],"sources":["useBreakpoint.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useDocumentEditor","useSelectFromEditor","BASE_BREAKPOINT","useWebsiteBuilderTheme","useBreakpoint","theme","breakpoints","editor","activeBreakpoint","state","breakpoint","name","bp","find","title","description","icon","minWidth","maxWidth","length","setBreakpoint","mode","updateEditor","isBaseBreakpoint"],"sources":["useBreakpoint.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useDocumentEditor } from \"~/DocumentEditor\";\nimport { useSelectFromEditor } from \"~/BaseEditor/hooks/useSelectFromEditor\";\nimport { BASE_BREAKPOINT } from \"~/constants\";\nimport { useWebsiteBuilderTheme } from \"~/BaseEditor/components\";\n\nexport const useBreakpoint = () => {\n const { theme } = useWebsiteBuilderTheme();\n const breakpoints = theme?.breakpoints ?? [];\n\n const editor = useDocumentEditor();\n const activeBreakpoint = useSelectFromEditor<string>(state => {\n return state.breakpoint ?? breakpoints[0]?.name ?? \"desktop\";\n });\n\n const breakpoint = useMemo(() => {\n const bp = breakpoints.find(bp => bp.name === activeBreakpoint);\n return (\n bp ?? {\n name: BASE_BREAKPOINT,\n title: \"Base Breakpoint\",\n description: \"\",\n icon: \"\",\n minWidth: 0,\n maxWidth: 4000\n }\n );\n }, [activeBreakpoint, breakpoints.length]);\n\n const setBreakpoint = useCallback(\n (mode: string) => {\n editor.updateEditor(state => {\n state.breakpoint = mode;\n });\n },\n [editor]\n );\n\n return {\n isBaseBreakpoint: breakpoint.name === BASE_BREAKPOINT,\n breakpoint,\n breakpoints,\n setBreakpoint\n };\n};\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAC5C,SAASC,iBAAiB;AAC1B,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,sBAAsB;AAE/B,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC;EAAM,CAAC,GAAGF,sBAAsB,CAAC,CAAC;EAC1C,MAAMG,WAAW,GAAGD,KAAK,EAAEC,WAAW,IAAI,EAAE;EAE5C,MAAMC,MAAM,GAAGP,iBAAiB,CAAC,CAAC;EAClC,MAAMQ,gBAAgB,GAAGP,mBAAmB,CAASQ,KAAK,IAAI;IAC1D,OAAOA,KAAK,CAACC,UAAU,IAAIJ,WAAW,CAAC,CAAC,CAAC,EAAEK,IAAI,IAAI,SAAS;EAChE,CAAC,CAAC;EAEF,MAAMD,UAAU,GAAGX,OAAO,CAAC,MAAM;IAC7B,MAAMa,EAAE,GAAGN,WAAW,CAACO,IAAI,CAACD,EAAE,IAAIA,EAAE,CAACD,IAAI,KAAKH,gBAAgB,CAAC;IAC/D,OACII,EAAE,IAAI;MACFD,IAAI,EAAET,eAAe;MACrBY,KAAK,EAAE,iBAAiB;MACxBC,WAAW,EAAE,EAAE;MACfC,IAAI,EAAE,EAAE;MACRC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE;IACd,CAAC;EAET,CAAC,EAAE,CAACV,gBAAgB,EAAEF,WAAW,CAACa,MAAM,CAAC,CAAC;EAE1C,MAAMC,aAAa,GAAGtB,WAAW,CAC5BuB,IAAY,IAAK;IACdd,MAAM,CAACe,YAAY,CAACb,KAAK,IAAI;MACzBA,KAAK,CAACC,UAAU,GAAGW,IAAI;IAC3B,CAAC,CAAC;EACN,CAAC,EACD,CAACd,MAAM,CACX,CAAC;EAED,OAAO;IACHgB,gBAAgB,EAAEb,UAAU,CAACC,IAAI,KAAKT,eAAe;IACrDQ,UAAU;IACVJ,WAAW;IACXc;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
|
|
|
2
2
|
import { $getNearestNodeOfType } from "@lexical/utils";
|
|
3
3
|
import { DropDown, DropDownItem, useCurrentSelection, useCurrentElement, useTypographyAction } from "@webiny/lexical-editor";
|
|
4
4
|
import { $isHeadingNode, $isParagraphNode, $isQuoteNode, $isListNode, ListNode } from "@webiny/lexical-nodes";
|
|
5
|
-
import {
|
|
5
|
+
import { useWebsiteBuilderTheme } from "../../BaseEditor/components";
|
|
6
6
|
export const TypographyDropDown = () => {
|
|
7
7
|
const {
|
|
8
8
|
value,
|
|
@@ -10,7 +10,7 @@ export const TypographyDropDown = () => {
|
|
|
10
10
|
} = useTypographyAction();
|
|
11
11
|
const {
|
|
12
12
|
theme
|
|
13
|
-
} =
|
|
13
|
+
} = useWebsiteBuilderTheme();
|
|
14
14
|
const [styles, setStyles] = useState([]);
|
|
15
15
|
const {
|
|
16
16
|
element
|
|
@@ -63,7 +63,7 @@ export const TypographyDropDown = () => {
|
|
|
63
63
|
setStyles(getListStyles("ol"));
|
|
64
64
|
}
|
|
65
65
|
} else if ($isQuoteNode(element)) {
|
|
66
|
-
setStyles(theme?.styles
|
|
66
|
+
setStyles(theme?.styles?.typography?.quotes || []);
|
|
67
67
|
} else {
|
|
68
68
|
setStyles([]);
|
|
69
69
|
}
|
|
@@ -77,10 +77,7 @@ export const TypographyDropDown = () => {
|
|
|
77
77
|
showScroll: true
|
|
78
78
|
}, styles?.map(option => /*#__PURE__*/React.createElement(DropDownItem, {
|
|
79
79
|
className: `item typography-item ${value?.id === option.id ? "active dropdown-item-active" : ""}`,
|
|
80
|
-
onClick: () => applyTypography(
|
|
81
|
-
...option,
|
|
82
|
-
css: option.styles
|
|
83
|
-
}),
|
|
80
|
+
onClick: () => applyTypography(option),
|
|
84
81
|
key: option.id
|
|
85
82
|
}, /*#__PURE__*/React.createElement("span", {
|
|
86
83
|
className: "text"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","$getNearestNodeOfType","DropDown","DropDownItem","useCurrentSelection","useCurrentElement","useTypographyAction","$isHeadingNode","$isParagraphNode","$isQuoteNode","$isListNode","ListNode","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","$getNearestNodeOfType","DropDown","DropDownItem","useCurrentSelection","useCurrentElement","useTypographyAction","$isHeadingNode","$isParagraphNode","$isQuoteNode","$isListNode","ListNode","useWebsiteBuilderTheme","TypographyDropDown","value","applyTypography","theme","styles","setStyles","element","rangeSelection","getAllTextStyles","typography","headingsStyles","headings","paragraphStyles","paragraphs","getListStyles","tag","listStyles","lists","filter","x","length","fallbackTag","type","anchorNode","anchor","getNode","parentList","getListType","quotes","createElement","Fragment","buttonClassName","buttonAriaLabel","buttonLabel","name","stopCloseOnClickSelf","disabled","showScroll","map","option","className","id","onClick","key"],"sources":["TypographyDropDown.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { $getNearestNodeOfType } from \"@lexical/utils\";\nimport {\n DropDown,\n DropDownItem,\n useCurrentSelection,\n useCurrentElement,\n useTypographyAction\n} from \"@webiny/lexical-editor\";\nimport {\n $isHeadingNode,\n $isParagraphNode,\n $isQuoteNode,\n $isListNode,\n ListNode\n} from \"@webiny/lexical-nodes\";\nimport { useWebsiteBuilderTheme } from \"~/BaseEditor/components\";\nimport type { TypographyStyle } from \"@webiny/website-builder-sdk/types/WebsiteBuilderTheme\";\n\nexport const TypographyDropDown = () => {\n const { value, applyTypography } = useTypographyAction();\n const { theme } = useWebsiteBuilderTheme();\n const [styles, setStyles] = useState<TypographyStyle[]>([]);\n const { element } = useCurrentElement();\n const { rangeSelection } = useCurrentSelection();\n\n const getAllTextStyles = (): TypographyStyle[] => {\n if (!theme?.styles.typography) {\n return [];\n }\n const headingsStyles = theme.styles.typography?.headings || [];\n const paragraphStyles = theme.styles.typography?.paragraphs || [];\n return [...headingsStyles, ...paragraphStyles];\n };\n\n useEffect(() => {\n // In static toolbar typography, styles always need to be visible.\n if (theme?.styles) {\n setStyles(getAllTextStyles());\n }\n }, [theme?.styles]);\n\n const getListStyles = (tag: string): TypographyStyle[] => {\n const listStyles = theme?.styles.typography.lists?.filter(x => x.tag === tag) || [];\n if (listStyles.length > 0) {\n return listStyles;\n }\n\n const fallbackTag = tag === \"ul\" ? \"ol\" : \"ul\";\n return theme?.styles.typography.lists?.filter(x => x.tag === fallbackTag) || [];\n };\n\n useEffect(() => {\n if (!element || !rangeSelection) {\n return;\n }\n\n if ($isParagraphNode(element) || $isHeadingNode(element)) {\n setStyles(getAllTextStyles());\n } else if ($isListNode(element)) {\n let type;\n try {\n const anchorNode = rangeSelection.anchor.getNode();\n const parentList = $getNearestNodeOfType<ListNode>(anchorNode, ListNode);\n if (parentList) {\n type = parentList.getListType();\n }\n } catch {\n type = element.getListType();\n }\n\n if (type === \"bullet\") {\n setStyles(getListStyles(\"ul\"));\n } else {\n setStyles(getListStyles(\"ol\"));\n }\n } else if ($isQuoteNode(element)) {\n setStyles(theme?.styles?.typography?.quotes || []);\n } else {\n setStyles([]);\n }\n }, [element]);\n\n return (\n <>\n {!!styles?.length ? (\n <DropDown\n buttonClassName=\"toolbar-item typography-dropdown\"\n buttonAriaLabel={\"Typography formatting options\"}\n buttonLabel={value?.name || \"Typography\"}\n stopCloseOnClickSelf={true}\n disabled={false}\n showScroll={true}\n >\n {styles?.map(option => (\n <DropDownItem\n className={`item typography-item ${\n value?.id === option.id ? \"active dropdown-item-active\" : \"\"\n }`}\n onClick={() => applyTypography(option)}\n key={option.id}\n >\n <span className=\"text\">{option.name}</span>\n </DropDownItem>\n ))}\n </DropDown>\n ) : null}\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
|
+
import { useTenancy } from "@webiny/app-tenancy";
|
|
2
3
|
import { usePreviewDomain } from "../../../../BaseEditor/defaultConfig/Content/Preview/usePreviewDomain";
|
|
3
4
|
export const usePagePreviewLink = pageDto => {
|
|
5
|
+
const {
|
|
6
|
+
tenant
|
|
7
|
+
} = useTenancy();
|
|
4
8
|
const {
|
|
5
9
|
previewDomain
|
|
6
10
|
} = usePreviewDomain();
|
|
@@ -12,6 +16,7 @@ export const usePagePreviewLink = pageDto => {
|
|
|
12
16
|
url.searchParams.set("wb.preview", "true");
|
|
13
17
|
url.searchParams.set("wb.type", pageDto.metadata.documentType);
|
|
14
18
|
url.searchParams.set("wb.id", pageDto.id);
|
|
19
|
+
url.searchParams.set("wb.tenant", tenant);
|
|
15
20
|
url.searchParams.set("wb.path", pageDto.properties.path);
|
|
16
21
|
return url.toString();
|
|
17
22
|
}, [previewDomain]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","usePreviewDomain","usePagePreviewLink","pageDto","previewDomain","properties","path","url","URL","searchParams","set","metadata","documentType","id","toString"],"sources":["usePagePreviewLink.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport type { PageDto } from \"~/domain/Page\";\nimport { usePreviewDomain } from \"~/BaseEditor/defaultConfig/Content/Preview/usePreviewDomain\";\n\nexport const usePagePreviewLink = (pageDto: PageDto) => {\n const { previewDomain } = usePreviewDomain();\n\n return useMemo(() => {\n if (!previewDomain || !pageDto.properties.path) {\n return null;\n }\n\n const url = new URL(`${previewDomain}${pageDto.properties.path}`);\n url.searchParams.set(\"wb.preview\", \"true\");\n url.searchParams.set(\"wb.type\", pageDto.metadata.documentType);\n url.searchParams.set(\"wb.id\", pageDto.id);\n url.searchParams.set(\"wb.path\", pageDto.properties.path);\n return url.toString();\n }, [previewDomain]);\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["useMemo","useTenancy","usePreviewDomain","usePagePreviewLink","pageDto","tenant","previewDomain","properties","path","url","URL","searchParams","set","metadata","documentType","id","toString"],"sources":["usePagePreviewLink.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useTenancy } from \"@webiny/app-tenancy\";\nimport type { PageDto } from \"~/domain/Page\";\nimport { usePreviewDomain } from \"~/BaseEditor/defaultConfig/Content/Preview/usePreviewDomain\";\n\nexport const usePagePreviewLink = (pageDto: PageDto) => {\n const { tenant } = useTenancy();\n const { previewDomain } = usePreviewDomain();\n\n return useMemo(() => {\n if (!previewDomain || !pageDto.properties.path) {\n return null;\n }\n\n const url = new URL(`${previewDomain}${pageDto.properties.path}`);\n url.searchParams.set(\"wb.preview\", \"true\");\n url.searchParams.set(\"wb.type\", pageDto.metadata.documentType);\n url.searchParams.set(\"wb.id\", pageDto.id);\n url.searchParams.set(\"wb.tenant\", tenant!);\n url.searchParams.set(\"wb.path\", pageDto.properties.path);\n return url.toString();\n }, [previewDomain]);\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,kBAAkB,GAAIC,OAAgB,IAAK;EACpD,MAAM;IAAEC;EAAO,CAAC,GAAGJ,UAAU,CAAC,CAAC;EAC/B,MAAM;IAAEK;EAAc,CAAC,GAAGJ,gBAAgB,CAAC,CAAC;EAE5C,OAAOF,OAAO,CAAC,MAAM;IACjB,IAAI,CAACM,aAAa,IAAI,CAACF,OAAO,CAACG,UAAU,CAACC,IAAI,EAAE;MAC5C,OAAO,IAAI;IACf;IAEA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,GAAGJ,aAAa,GAAGF,OAAO,CAACG,UAAU,CAACC,IAAI,EAAE,CAAC;IACjEC,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;IAC1CH,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,SAAS,EAAER,OAAO,CAACS,QAAQ,CAACC,YAAY,CAAC;IAC9DL,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,OAAO,EAAER,OAAO,CAACW,EAAE,CAAC;IACzCN,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,WAAW,EAAEP,MAAO,CAAC;IAC1CI,GAAG,CAACE,YAAY,CAACC,GAAG,CAAC,SAAS,EAAER,OAAO,CAACG,UAAU,CAACC,IAAI,CAAC;IACxD,OAAOC,GAAG,CAACO,QAAQ,CAAC,CAAC;EACzB,CAAC,EAAE,CAACV,aAAa,CAAC,CAAC;AACvB,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-website-builder",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.fdd9228b5d",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
8
|
},
|
|
9
|
-
"exports": {
|
|
10
|
-
".": "./index.js",
|
|
11
|
-
"./ecommerce": "./ecommerce/index.js",
|
|
12
|
-
"./Extension": "./Extension.js"
|
|
13
|
-
},
|
|
14
9
|
"author": "Pavel Denisjuk",
|
|
15
10
|
"license": "MIT",
|
|
16
11
|
"dependencies": {
|
|
@@ -21,30 +16,29 @@
|
|
|
21
16
|
"@monaco-editor/react": "4.7.0",
|
|
22
17
|
"@svgr/webpack": "6.5.1",
|
|
23
18
|
"@types/react": "18.2.79",
|
|
24
|
-
"@webiny/admin-ui": "0.0.0-unstable.
|
|
25
|
-
"@webiny/app": "0.0.0-unstable.
|
|
26
|
-
"@webiny/app-aco": "0.0.0-unstable.
|
|
27
|
-
"@webiny/app-admin": "0.0.0-unstable.
|
|
28
|
-
"@webiny/app-headless-cms-common": "0.0.0-unstable.
|
|
29
|
-
"@webiny/app-i18n": "0.0.0-unstable.
|
|
30
|
-
"@webiny/app-security": "0.0.0-unstable.
|
|
31
|
-
"@webiny/app-tenancy": "0.0.0-unstable.
|
|
32
|
-
"@webiny/app-utils": "0.0.0-unstable.
|
|
33
|
-
"@webiny/error": "0.0.0-unstable.
|
|
34
|
-
"@webiny/form": "0.0.0-unstable.
|
|
35
|
-
"@webiny/icons": "0.0.0-unstable.
|
|
36
|
-
"@webiny/lexical-converter": "0.0.0-unstable.
|
|
37
|
-
"@webiny/lexical-editor": "0.0.0-unstable.
|
|
38
|
-
"@webiny/lexical-nodes": "0.0.0-unstable.
|
|
39
|
-
"@webiny/lexical-theme": "0.0.0-unstable.
|
|
40
|
-
"@webiny/react-composition": "0.0.0-unstable.
|
|
41
|
-
"@webiny/react-properties": "0.0.0-unstable.
|
|
42
|
-
"@webiny/react-router": "0.0.0-unstable.
|
|
43
|
-
"@webiny/
|
|
44
|
-
"@webiny/
|
|
45
|
-
"@webiny/
|
|
46
|
-
"@webiny/
|
|
47
|
-
"@webiny/website-builder-sdk": "0.0.0-unstable.f9f12f52a0",
|
|
19
|
+
"@webiny/admin-ui": "0.0.0-unstable.fdd9228b5d",
|
|
20
|
+
"@webiny/app": "0.0.0-unstable.fdd9228b5d",
|
|
21
|
+
"@webiny/app-aco": "0.0.0-unstable.fdd9228b5d",
|
|
22
|
+
"@webiny/app-admin": "0.0.0-unstable.fdd9228b5d",
|
|
23
|
+
"@webiny/app-headless-cms-common": "0.0.0-unstable.fdd9228b5d",
|
|
24
|
+
"@webiny/app-i18n": "0.0.0-unstable.fdd9228b5d",
|
|
25
|
+
"@webiny/app-security": "0.0.0-unstable.fdd9228b5d",
|
|
26
|
+
"@webiny/app-tenancy": "0.0.0-unstable.fdd9228b5d",
|
|
27
|
+
"@webiny/app-utils": "0.0.0-unstable.fdd9228b5d",
|
|
28
|
+
"@webiny/error": "0.0.0-unstable.fdd9228b5d",
|
|
29
|
+
"@webiny/form": "0.0.0-unstable.fdd9228b5d",
|
|
30
|
+
"@webiny/icons": "0.0.0-unstable.fdd9228b5d",
|
|
31
|
+
"@webiny/lexical-converter": "0.0.0-unstable.fdd9228b5d",
|
|
32
|
+
"@webiny/lexical-editor": "0.0.0-unstable.fdd9228b5d",
|
|
33
|
+
"@webiny/lexical-nodes": "0.0.0-unstable.fdd9228b5d",
|
|
34
|
+
"@webiny/lexical-theme": "0.0.0-unstable.fdd9228b5d",
|
|
35
|
+
"@webiny/react-composition": "0.0.0-unstable.fdd9228b5d",
|
|
36
|
+
"@webiny/react-properties": "0.0.0-unstable.fdd9228b5d",
|
|
37
|
+
"@webiny/react-router": "0.0.0-unstable.fdd9228b5d",
|
|
38
|
+
"@webiny/ui": "0.0.0-unstable.fdd9228b5d",
|
|
39
|
+
"@webiny/utils": "0.0.0-unstable.fdd9228b5d",
|
|
40
|
+
"@webiny/validation": "0.0.0-unstable.fdd9228b5d",
|
|
41
|
+
"@webiny/website-builder-sdk": "0.0.0-unstable.fdd9228b5d",
|
|
48
42
|
"apollo-cache": "1.3.5",
|
|
49
43
|
"apollo-client": "2.6.10",
|
|
50
44
|
"apollo-link": "1.2.14",
|
|
@@ -80,8 +74,8 @@
|
|
|
80
74
|
"@types/react-virtualized": "9.22.0",
|
|
81
75
|
"@types/resize-observer-browser": "0.1.7",
|
|
82
76
|
"@types/store": "2.0.2",
|
|
83
|
-
"@webiny/cli": "0.0.0-unstable.
|
|
84
|
-
"@webiny/project-utils": "0.0.0-unstable.
|
|
77
|
+
"@webiny/cli": "0.0.0-unstable.fdd9228b5d",
|
|
78
|
+
"@webiny/project-utils": "0.0.0-unstable.fdd9228b5d",
|
|
85
79
|
"execa": "5.1.1",
|
|
86
80
|
"rimraf": "6.0.1",
|
|
87
81
|
"typescript": "5.3.3"
|
|
@@ -101,5 +95,5 @@
|
|
|
101
95
|
]
|
|
102
96
|
}
|
|
103
97
|
},
|
|
104
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "fdd9228b5d2636463e8a34b6e0d26eea1e29c01d"
|
|
105
99
|
}
|