@webiny/website-builder-sdk 0.0.0-unstable.06b2ede40f
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/BindingsApi.d.ts +25 -0
- package/BindingsApi.js +42 -0
- package/BindingsApi.js.map +1 -0
- package/BindingsProcessor.d.ts +11 -0
- package/BindingsProcessor.js +49 -0
- package/BindingsProcessor.js.map +1 -0
- package/BindingsProcessor.test.d.ts +1 -0
- package/BindingsProcessor.test.js +86 -0
- package/BindingsProcessor.test.js.map +1 -0
- package/BindingsResolver.d.ts +20 -0
- package/BindingsResolver.js +134 -0
- package/BindingsResolver.js.map +1 -0
- package/BindingsResolver.test.d.ts +1 -0
- package/BindingsResolver.test.js +382 -0
- package/BindingsResolver.test.js.map +1 -0
- package/ComponentInputTraverser.d.ts +18 -0
- package/ComponentInputTraverser.js +56 -0
- package/ComponentInputTraverser.js.map +1 -0
- package/ComponentManifestToAstConverter.d.ts +13 -0
- package/ComponentManifestToAstConverter.js +24 -0
- package/ComponentManifestToAstConverter.js.map +1 -0
- package/ComponentRegistry.d.ts +15 -0
- package/ComponentRegistry.js +25 -0
- package/ComponentRegistry.js.map +1 -0
- package/ComponentResolver.d.ts +14 -0
- package/ComponentResolver.js +36 -0
- package/ComponentResolver.js.map +1 -0
- package/ContentSdk.d.ts +44 -0
- package/ContentSdk.js +106 -0
- package/ContentSdk.js.map +1 -0
- package/DocumentStore.d.ts +15 -0
- package/DocumentStore.js +67 -0
- package/DocumentStore.js.map +1 -0
- package/DocumentStoreManager.d.ts +11 -0
- package/DocumentStoreManager.js +22 -0
- package/DocumentStoreManager.js.map +1 -0
- package/EditingSdk.d.ts +21 -0
- package/EditingSdk.js +143 -0
- package/EditingSdk.js.map +1 -0
- package/ElementFactory.d.ts +54 -0
- package/ElementFactory.js +183 -0
- package/ElementFactory.js.map +1 -0
- package/Environment.d.ts +9 -0
- package/Environment.js +23 -0
- package/Environment.js.map +1 -0
- package/FunctionConverter.d.ts +6 -0
- package/FunctionConverter.js +11 -0
- package/FunctionConverter.js.map +1 -0
- package/HashObject.d.ts +6 -0
- package/HashObject.js +17 -0
- package/HashObject.js.map +1 -0
- package/HotkeyManager.d.ts +6 -0
- package/HotkeyManager.js +58 -0
- package/HotkeyManager.js.map +1 -0
- package/IBindingsUpdater.d.ts +6 -0
- package/IBindingsUpdater.js +3 -0
- package/IBindingsUpdater.js.map +1 -0
- package/IRedirects.d.ts +5 -0
- package/IRedirects.js +3 -0
- package/IRedirects.js.map +1 -0
- package/InheritanceProcessor.d.ts +29 -0
- package/InheritanceProcessor.js +147 -0
- package/InheritanceProcessor.js.map +1 -0
- package/InheritanceProcessor.test.d.ts +1 -0
- package/InheritanceProcessor.test.js +192 -0
- package/InheritanceProcessor.test.js.map +1 -0
- package/InheritedValueResolver.d.ts +10 -0
- package/InheritedValueResolver.js +24 -0
- package/InheritedValueResolver.js.map +1 -0
- package/InputBindingsProcessor.d.ts +38 -0
- package/InputBindingsProcessor.js +306 -0
- package/InputBindingsProcessor.js.map +1 -0
- package/InputsBindingsProcessor.test.d.ts +1 -0
- package/InputsBindingsProcessor.test.js +327 -0
- package/InputsBindingsProcessor.test.js.map +1 -0
- package/InputsUpdater.d.ts +12 -0
- package/InputsUpdater.js +34 -0
- package/InputsUpdater.js.map +1 -0
- package/LICENSE +21 -0
- package/LiveSdk.d.ts +7 -0
- package/LiveSdk.js +18 -0
- package/LiveSdk.js.map +1 -0
- package/Logger.d.ts +1 -0
- package/Logger.js +10 -0
- package/Logger.js.map +1 -0
- package/MouseTracker.d.ts +39 -0
- package/MouseTracker.js +93 -0
- package/MouseTracker.js.map +1 -0
- package/NullSdk.d.ts +8 -0
- package/NullSdk.js +17 -0
- package/NullSdk.js.map +1 -0
- package/PreviewDocument.d.ts +8 -0
- package/PreviewDocument.js +35 -0
- package/PreviewDocument.js.map +1 -0
- package/PreviewSdk.d.ts +8 -0
- package/PreviewSdk.js +22 -0
- package/PreviewSdk.js.map +1 -0
- package/PreviewViewport.d.ts +9 -0
- package/PreviewViewport.js +88 -0
- package/PreviewViewport.js.map +1 -0
- package/README.md +3 -0
- package/ResizeObserver.d.ts +5 -0
- package/ResizeObserver.js +41 -0
- package/ResizeObserver.js.map +1 -0
- package/StylesBindingsProcessor.d.ts +33 -0
- package/StylesBindingsProcessor.js +91 -0
- package/StylesBindingsProcessor.js.map +1 -0
- package/StylesUpdater.d.ts +10 -0
- package/StylesUpdater.js +34 -0
- package/StylesUpdater.js.map +1 -0
- package/Theme.d.ts +4 -0
- package/Theme.js +36 -0
- package/Theme.js.map +1 -0
- package/ViewportManager.d.ts +34 -0
- package/ViewportManager.js +106 -0
- package/ViewportManager.js.map +1 -0
- package/constants.d.ts +6 -0
- package/constants.js +8 -0
- package/constants.js.map +1 -0
- package/createElement.d.ts +10 -0
- package/createElement.js +8 -0
- package/createElement.js.map +1 -0
- package/createInput.d.ts +17 -0
- package/createInput.js +128 -0
- package/createInput.js.map +1 -0
- package/createTheme.d.ts +3 -0
- package/createTheme.js +5 -0
- package/createTheme.js.map +1 -0
- package/dataProviders/ApiClient.d.ts +13 -0
- package/dataProviders/ApiClient.js +43 -0
- package/dataProviders/ApiClient.js.map +1 -0
- package/dataProviders/DefaultDataProvider.d.ts +14 -0
- package/dataProviders/DefaultDataProvider.js +47 -0
- package/dataProviders/DefaultDataProvider.js.map +1 -0
- package/dataProviders/GET_ACTIVE_REDIRECTS.d.ts +1 -0
- package/dataProviders/GET_ACTIVE_REDIRECTS.js +21 -0
- package/dataProviders/GET_ACTIVE_REDIRECTS.js.map +1 -0
- package/dataProviders/GET_PAGE_BY_ID.d.ts +1 -0
- package/dataProviders/GET_PAGE_BY_ID.js +21 -0
- package/dataProviders/GET_PAGE_BY_ID.js.map +1 -0
- package/dataProviders/GET_PAGE_BY_PATH.d.ts +1 -0
- package/dataProviders/GET_PAGE_BY_PATH.js +21 -0
- package/dataProviders/GET_PAGE_BY_PATH.js.map +1 -0
- package/dataProviders/LIST_PUBLISHED_PAGES.d.ts +1 -0
- package/dataProviders/LIST_PUBLISHED_PAGES.js +21 -0
- package/dataProviders/LIST_PUBLISHED_PAGES.js.map +1 -0
- package/dataProviders/NullDataProvider.d.ts +7 -0
- package/dataProviders/NullDataProvider.js +16 -0
- package/dataProviders/NullDataProvider.js.map +1 -0
- package/dataProviders/RedirectsProvider.d.ts +11 -0
- package/dataProviders/RedirectsProvider.js +33 -0
- package/dataProviders/RedirectsProvider.js.map +1 -0
- package/defaultBreakpoints.d.ts +2 -0
- package/defaultBreakpoints.js +25 -0
- package/defaultBreakpoints.js.map +1 -0
- package/documentOperations/$addElementReferenceToParent.d.ts +9 -0
- package/documentOperations/$addElementReferenceToParent.js +31 -0
- package/documentOperations/$addElementReferenceToParent.js.map +1 -0
- package/documentOperations/AddElement.d.ts +7 -0
- package/documentOperations/AddElement.js +10 -0
- package/documentOperations/AddElement.js.map +1 -0
- package/documentOperations/AddToParent.d.ts +8 -0
- package/documentOperations/AddToParent.js +17 -0
- package/documentOperations/AddToParent.js.map +1 -0
- package/documentOperations/IDocumentOperation.d.ts +4 -0
- package/documentOperations/IDocumentOperation.js +3 -0
- package/documentOperations/IDocumentOperation.js.map +1 -0
- package/documentOperations/RemoveElement.d.ts +7 -0
- package/documentOperations/RemoveElement.js +10 -0
- package/documentOperations/RemoveElement.js.map +1 -0
- package/documentOperations/SetGlobalInputBinding.d.ts +9 -0
- package/documentOperations/SetGlobalInputBinding.js +25 -0
- package/documentOperations/SetGlobalInputBinding.js.map +1 -0
- package/documentOperations/SetGlobalStyleBinding.d.ts +9 -0
- package/documentOperations/SetGlobalStyleBinding.js +26 -0
- package/documentOperations/SetGlobalStyleBinding.js.map +1 -0
- package/documentOperations/SetInputBindingOverride.d.ts +10 -0
- package/documentOperations/SetInputBindingOverride.js +33 -0
- package/documentOperations/SetInputBindingOverride.js.map +1 -0
- package/documentOperations/SetStyleBindingOverride.d.ts +10 -0
- package/documentOperations/SetStyleBindingOverride.js +35 -0
- package/documentOperations/SetStyleBindingOverride.js.map +1 -0
- package/documentOperations/index.d.ts +17 -0
- package/documentOperations/index.js +18 -0
- package/documentOperations/index.js.map +1 -0
- package/findMatchingAstNode.d.ts +2 -0
- package/findMatchingAstNode.js +17 -0
- package/findMatchingAstNode.js.map +1 -0
- package/generateElementId.d.ts +1 -0
- package/generateElementId.js +7 -0
- package/generateElementId.js.map +1 -0
- package/headersProvider.d.ts +4 -0
- package/headersProvider.js +7 -0
- package/headersProvider.js.map +1 -0
- package/index.d.ts +31 -0
- package/index.js +33 -0
- package/index.js.map +1 -0
- package/jsonPatch.d.ts +6 -0
- package/jsonPatch.js +12 -0
- package/jsonPatch.js.map +1 -0
- package/lexical/createDefaultLexicalTheme.d.ts +2 -0
- package/lexical/createDefaultLexicalTheme.js +84 -0
- package/lexical/createDefaultLexicalTheme.js.map +1 -0
- package/lexical/createLexicalTheme.d.ts +2 -0
- package/lexical/createLexicalTheme.js +7 -0
- package/lexical/createLexicalTheme.js.map +1 -0
- package/lexical/deepMerge.d.ts +1 -0
- package/lexical/deepMerge.js +23 -0
- package/lexical/deepMerge.js.map +1 -0
- package/messages.d.ts +11 -0
- package/messages.js +13 -0
- package/messages.js.map +1 -0
- package/messenger/MessageOrigin.d.ts +7 -0
- package/messenger/MessageOrigin.js +14 -0
- package/messenger/MessageOrigin.js.map +1 -0
- package/messenger/Messenger.d.ts +22 -0
- package/messenger/Messenger.js +80 -0
- package/messenger/Messenger.js.map +1 -0
- package/messenger/index.d.ts +2 -0
- package/messenger/index.js +4 -0
- package/messenger/index.js.map +1 -0
- package/package.json +54 -0
- package/registerComponentGroup.d.ts +2 -0
- package/registerComponentGroup.js +10 -0
- package/registerComponentGroup.js.map +1 -0
- package/types/LexicalEditorTheme.d.ts +2 -0
- package/types/LexicalEditorTheme.js +3 -0
- package/types/LexicalEditorTheme.js.map +1 -0
- package/types/ShorthandCssProperties.d.ts +1 -0
- package/types/ShorthandCssProperties.js +3 -0
- package/types/ShorthandCssProperties.js.map +1 -0
- package/types/WebsiteBuilderTheme.d.ts +92 -0
- package/types/WebsiteBuilderTheme.js +3 -0
- package/types/WebsiteBuilderTheme.js.map +1 -0
- package/types.d.ts +295 -0
- package/types.js +3 -0
- package/types.js.map +1 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { environment } from "./Environment";
|
|
4
|
+
export class ViewportManager {
|
|
5
|
+
/**
|
|
6
|
+
* We need this fallback breakpoint for server environments.
|
|
7
|
+
*/
|
|
8
|
+
breakpoints = [{
|
|
9
|
+
name: "desktop",
|
|
10
|
+
title: "",
|
|
11
|
+
description: "",
|
|
12
|
+
icon: "",
|
|
13
|
+
minWidth: 0,
|
|
14
|
+
maxWidth: 4000
|
|
15
|
+
}];
|
|
16
|
+
constructor(timeout = 150) {
|
|
17
|
+
this.changeTimeout = timeout;
|
|
18
|
+
this.changeStartSubscribers = new Set();
|
|
19
|
+
this.changeEndSubscribers = new Set();
|
|
20
|
+
this.isChanging = false;
|
|
21
|
+
this.changeTimer = null;
|
|
22
|
+
this.handleViewportChange = this.handleViewportChange.bind(this);
|
|
23
|
+
this.handleResize = this.handleResize.bind(this);
|
|
24
|
+
if (environment.isClient()) {
|
|
25
|
+
window.addEventListener("resize", this.handleResize, {
|
|
26
|
+
passive: true
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
setBreakpoints(breakpoints) {
|
|
31
|
+
this.breakpoints = breakpoints;
|
|
32
|
+
}
|
|
33
|
+
onViewportChangeStart(callback) {
|
|
34
|
+
this.changeStartSubscribers.add(callback);
|
|
35
|
+
return () => this.changeStartSubscribers.delete(callback);
|
|
36
|
+
}
|
|
37
|
+
onViewportChangeEnd(callback) {
|
|
38
|
+
this.changeEndSubscribers.add(callback);
|
|
39
|
+
return () => this.changeEndSubscribers.delete(callback);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Get the current viewport information
|
|
44
|
+
*/
|
|
45
|
+
getViewport() {
|
|
46
|
+
return this.getViewportInfo();
|
|
47
|
+
}
|
|
48
|
+
destroy() {
|
|
49
|
+
if (environment.isClient()) {
|
|
50
|
+
window.removeEventListener("resize", this.handleResize);
|
|
51
|
+
if (this.changeTimer !== null) {
|
|
52
|
+
clearTimeout(this.changeTimer);
|
|
53
|
+
}
|
|
54
|
+
this.changeStartSubscribers.clear();
|
|
55
|
+
this.changeEndSubscribers.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
handleResize() {
|
|
59
|
+
this.handleViewportChange();
|
|
60
|
+
}
|
|
61
|
+
handleViewportChange() {
|
|
62
|
+
const viewportInfo = this.getViewportInfo();
|
|
63
|
+
if (!this.isChanging) {
|
|
64
|
+
this.isChanging = true;
|
|
65
|
+
this.notifySubscribers(this.changeStartSubscribers, viewportInfo);
|
|
66
|
+
}
|
|
67
|
+
if (this.changeTimer !== null) {
|
|
68
|
+
clearTimeout(this.changeTimer);
|
|
69
|
+
}
|
|
70
|
+
this.changeTimer = window.setTimeout(() => {
|
|
71
|
+
this.isChanging = false;
|
|
72
|
+
this.notifySubscribers(this.changeEndSubscribers, viewportInfo);
|
|
73
|
+
}, this.changeTimeout);
|
|
74
|
+
}
|
|
75
|
+
getViewportInfo() {
|
|
76
|
+
const modes = [...this.breakpoints].reverse();
|
|
77
|
+
const viewport = environment.isClient() ? {
|
|
78
|
+
width: window.innerWidth,
|
|
79
|
+
height: window.innerHeight,
|
|
80
|
+
scrollX: window.scrollX,
|
|
81
|
+
scrollY: window.scrollY
|
|
82
|
+
} : {
|
|
83
|
+
// During SSR or Next.js build, viewport is not available.
|
|
84
|
+
height: 0,
|
|
85
|
+
width: 2000,
|
|
86
|
+
scrollX: 0,
|
|
87
|
+
scrollY: 0
|
|
88
|
+
};
|
|
89
|
+
const [breakpoint] = modes.filter(mode => mode.maxWidth >= viewport.width);
|
|
90
|
+
return {
|
|
91
|
+
...viewport,
|
|
92
|
+
breakpoint: breakpoint.name,
|
|
93
|
+
breakpoints: this.breakpoints
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
notifySubscribers(subscribers, viewportInfo) {
|
|
97
|
+
subscribers.forEach(callback => {
|
|
98
|
+
if (typeof callback === "function") {
|
|
99
|
+
callback(viewportInfo);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export const viewportManager = new ViewportManager();
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=ViewportManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["environment","ViewportManager","breakpoints","name","title","description","icon","minWidth","maxWidth","constructor","timeout","changeTimeout","changeStartSubscribers","Set","changeEndSubscribers","isChanging","changeTimer","handleViewportChange","bind","handleResize","isClient","window","addEventListener","passive","setBreakpoints","onViewportChangeStart","callback","add","delete","onViewportChangeEnd","getViewport","getViewportInfo","destroy","removeEventListener","clearTimeout","clear","viewportInfo","notifySubscribers","setTimeout","modes","reverse","viewport","width","innerWidth","height","innerHeight","scrollX","scrollY","breakpoint","filter","mode","subscribers","forEach","viewportManager"],"sources":["ViewportManager.ts"],"sourcesContent":["\"use client\";\nimport type { Breakpoint } from \"~/types\";\nimport { environment } from \"~/Environment\";\n\nexport interface ViewportInfo {\n width: number;\n height: number;\n scrollX: number;\n scrollY: number;\n breakpoint: string;\n breakpoints: Breakpoint[];\n}\n\nexport class ViewportManager {\n private readonly changeTimeout: number;\n private readonly changeStartSubscribers: Set<(info: ViewportInfo) => void>;\n private readonly changeEndSubscribers: Set<(info: ViewportInfo) => void>;\n private isChanging: boolean;\n private changeTimer: number | null;\n\n /**\n * We need this fallback breakpoint for server environments.\n */\n private breakpoints: Breakpoint[] = [\n {\n name: \"desktop\",\n title: \"\",\n description: \"\",\n icon: \"\",\n minWidth: 0,\n maxWidth: 4000\n }\n ];\n\n constructor(timeout: number = 150) {\n this.changeTimeout = timeout;\n this.changeStartSubscribers = new Set();\n this.changeEndSubscribers = new Set();\n this.isChanging = false;\n this.changeTimer = null;\n\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n if (environment.isClient()) {\n window.addEventListener(\"resize\", this.handleResize, { passive: true });\n }\n }\n\n public setBreakpoints(breakpoints: Breakpoint[]) {\n this.breakpoints = breakpoints;\n }\n\n public onViewportChangeStart(callback: (info: ViewportInfo) => void): () => void {\n this.changeStartSubscribers.add(callback);\n return () => this.changeStartSubscribers.delete(callback);\n }\n\n public onViewportChangeEnd(callback: (info: ViewportInfo) => void): () => void {\n this.changeEndSubscribers.add(callback);\n return () => this.changeEndSubscribers.delete(callback);\n }\n\n /**\n * Get the current viewport information\n */\n public getViewport(): ViewportInfo {\n return this.getViewportInfo();\n }\n\n public destroy(): void {\n if (environment.isClient()) {\n window.removeEventListener(\"resize\", this.handleResize);\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n this.changeStartSubscribers.clear();\n this.changeEndSubscribers.clear();\n }\n }\n\n private handleResize(): void {\n this.handleViewportChange();\n }\n\n private handleViewportChange(): void {\n const viewportInfo = this.getViewportInfo();\n\n if (!this.isChanging) {\n this.isChanging = true;\n this.notifySubscribers(this.changeStartSubscribers, viewportInfo);\n }\n\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n\n this.changeTimer = window.setTimeout(() => {\n this.isChanging = false;\n this.notifySubscribers(this.changeEndSubscribers, viewportInfo);\n }, this.changeTimeout);\n }\n\n private getViewportInfo(): ViewportInfo {\n const modes = [...this.breakpoints].reverse();\n const viewport = environment.isClient()\n ? {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollX: window.scrollX,\n scrollY: window.scrollY\n }\n : {\n // During SSR or Next.js build, viewport is not available.\n height: 0,\n width: 2000,\n scrollX: 0,\n scrollY: 0\n };\n\n const [breakpoint] = modes.filter(mode => mode.maxWidth >= viewport.width);\n\n return { ...viewport, breakpoint: breakpoint.name, breakpoints: this.breakpoints };\n }\n\n private notifySubscribers(\n subscribers: Set<(info: ViewportInfo) => void>,\n viewportInfo: ViewportInfo\n ): void {\n subscribers.forEach(callback => {\n if (typeof callback === \"function\") {\n callback(viewportInfo);\n }\n });\n }\n}\n\nexport const viewportManager = new ViewportManager();\n"],"mappings":"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","ignoreList":[]}
|
package/constants.d.ts
ADDED
package/constants.js
ADDED
package/constants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSettings","Layout","Visibility","Background","MarginPadding"],"sources":["constants.ts"],"sourcesContent":["export const StyleSettings = {\n Layout: \"layout\",\n Visibility: \"visibility\",\n Background: \"background\",\n MarginPadding: \"marginPadding\"\n};\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;EACzBC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBC,aAAa,EAAE;AACnB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ResponsiveStyles } from "./types";
|
|
2
|
+
export interface CreateElementParams {
|
|
3
|
+
component: string;
|
|
4
|
+
inputs?: Record<string, any>;
|
|
5
|
+
styles?: ResponsiveStyles;
|
|
6
|
+
}
|
|
7
|
+
export declare const createElement: (params: CreateElementParams) => {
|
|
8
|
+
action: string;
|
|
9
|
+
params: CreateElementParams;
|
|
10
|
+
};
|
package/createElement.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createElement","params","action"],"sources":["createElement.ts"],"sourcesContent":["import type { ResponsiveStyles } from \"~/types\";\n\nexport interface CreateElementParams {\n component: string;\n inputs?: Record<string, any>;\n styles?: ResponsiveStyles;\n}\n\nexport const createElement = (params: CreateElementParams) => {\n return {\n action: \"CreateElement\",\n params\n };\n};\n"],"mappings":"AAQA,OAAO,MAAMA,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO;IACHC,MAAM,EAAE,eAAe;IACvBD;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
package/createInput.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TextInput, LongTextInput, NumberInput, BooleanInput, ColorInput, FileInput, LexicalInput, SelectInput, RadioInput, ObjectInput, DateTimeInput, ComponentInput, TagsInput, SlotInput } from "./types";
|
|
2
|
+
type OmitType<T> = Omit<T, "type">;
|
|
3
|
+
export declare function createTextInput(input: OmitType<TextInput>): TextInput;
|
|
4
|
+
export declare function createLongTextInput(input: OmitType<LongTextInput>): ComponentInput;
|
|
5
|
+
export declare function createNumberInput(input: OmitType<NumberInput>): NumberInput;
|
|
6
|
+
export declare function createBooleanInput(input: OmitType<BooleanInput>): BooleanInput;
|
|
7
|
+
export declare function createColorInput(input: OmitType<ColorInput>): ColorInput;
|
|
8
|
+
export declare function createFileInput(input: OmitType<FileInput>): FileInput;
|
|
9
|
+
export declare function createDateInput(input: OmitType<DateTimeInput>): DateTimeInput;
|
|
10
|
+
export declare function createLexicalInput(input: OmitType<LexicalInput>): LexicalInput;
|
|
11
|
+
export declare function createSelectInput(input: OmitType<SelectInput>): SelectInput;
|
|
12
|
+
export declare function createRadioInput(input: OmitType<RadioInput>): RadioInput;
|
|
13
|
+
export declare function createObjectInput(input: OmitType<ObjectInput>): ObjectInput;
|
|
14
|
+
export declare function createTagsInput(input: OmitType<TagsInput>): TagsInput;
|
|
15
|
+
export declare function createSlotInput(input: OmitType<SlotInput>): SlotInput;
|
|
16
|
+
export declare function createInput(input: ComponentInput): ComponentInput;
|
|
17
|
+
export {};
|
package/createInput.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { functionConverter } from "./FunctionConverter";
|
|
2
|
+
// Text
|
|
3
|
+
export function createTextInput(input) {
|
|
4
|
+
return createInput({
|
|
5
|
+
type: "text",
|
|
6
|
+
renderer: "Webiny/Input",
|
|
7
|
+
...input
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Long Text
|
|
12
|
+
export function createLongTextInput(input) {
|
|
13
|
+
return createInput({
|
|
14
|
+
type: "longText",
|
|
15
|
+
renderer: "Webiny/Textarea",
|
|
16
|
+
...input
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Number
|
|
21
|
+
export function createNumberInput(input) {
|
|
22
|
+
return createInput({
|
|
23
|
+
type: "number",
|
|
24
|
+
renderer: "Webiny/Number",
|
|
25
|
+
...input
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Boolean
|
|
30
|
+
export function createBooleanInput(input) {
|
|
31
|
+
return createInput({
|
|
32
|
+
type: "boolean",
|
|
33
|
+
renderer: "Webiny/Switch",
|
|
34
|
+
...input
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Color
|
|
39
|
+
export function createColorInput(input) {
|
|
40
|
+
return createInput({
|
|
41
|
+
type: "color",
|
|
42
|
+
renderer: "Webiny/ColorPicker",
|
|
43
|
+
...input
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// File
|
|
48
|
+
export function createFileInput(input) {
|
|
49
|
+
return createInput({
|
|
50
|
+
type: "file",
|
|
51
|
+
renderer: "Webiny/FileManager",
|
|
52
|
+
...input
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Date
|
|
57
|
+
export function createDateInput(input) {
|
|
58
|
+
return createInput({
|
|
59
|
+
type: "datetime",
|
|
60
|
+
renderer: "Webiny/DateTime",
|
|
61
|
+
...input
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Rich Text
|
|
66
|
+
export function createLexicalInput(input) {
|
|
67
|
+
return createInput({
|
|
68
|
+
type: "lexical",
|
|
69
|
+
renderer: "Webiny/Lexical",
|
|
70
|
+
...input
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Select
|
|
75
|
+
export function createSelectInput(input) {
|
|
76
|
+
return createInput({
|
|
77
|
+
type: "select",
|
|
78
|
+
renderer: "Webiny/Select",
|
|
79
|
+
...input
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Radio
|
|
84
|
+
export function createRadioInput(input) {
|
|
85
|
+
return createInput({
|
|
86
|
+
type: "radio",
|
|
87
|
+
renderer: "Webiny/RadioGroup",
|
|
88
|
+
...input
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Object
|
|
93
|
+
export function createObjectInput(input) {
|
|
94
|
+
return createInput({
|
|
95
|
+
type: "object",
|
|
96
|
+
renderer: "Webiny/Object",
|
|
97
|
+
...input
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Tags
|
|
102
|
+
export function createTagsInput(input) {
|
|
103
|
+
return createInput({
|
|
104
|
+
type: "text",
|
|
105
|
+
list: true,
|
|
106
|
+
renderer: "Webiny/Tags",
|
|
107
|
+
...input
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
export function createSlotInput(input) {
|
|
111
|
+
return createInput({
|
|
112
|
+
type: "slot",
|
|
113
|
+
list: true,
|
|
114
|
+
renderer: "Webiny/Slot",
|
|
115
|
+
...input
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Implementation
|
|
120
|
+
export function createInput(input) {
|
|
121
|
+
if (input.onChange) {
|
|
122
|
+
// @ts-expect-error We don't use this function on the frontend, so this is ok.
|
|
123
|
+
input.onChange = functionConverter.serialize(input.onChange);
|
|
124
|
+
}
|
|
125
|
+
return input;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=createInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["functionConverter","createTextInput","input","createInput","type","renderer","createLongTextInput","createNumberInput","createBooleanInput","createColorInput","createFileInput","createDateInput","createLexicalInput","createSelectInput","createRadioInput","createObjectInput","createTagsInput","list","createSlotInput","onChange","serialize"],"sources":["createInput.ts"],"sourcesContent":["import type {\n TextInput,\n LongTextInput,\n NumberInput,\n BooleanInput,\n ColorInput,\n FileInput,\n LexicalInput,\n SelectInput,\n RadioInput,\n ObjectInput,\n DateTimeInput,\n ComponentInput,\n TagsInput,\n SlotInput\n} from \"./types\";\nimport { functionConverter } from \"~/FunctionConverter\";\n\ntype OmitType<T> = Omit<T, \"type\">;\n\n// Text\nexport function createTextInput(input: OmitType<TextInput>) {\n return createInput({\n type: \"text\",\n renderer: \"Webiny/Input\",\n ...input\n }) as TextInput;\n}\n\n// Long Text\nexport function createLongTextInput(input: OmitType<LongTextInput>) {\n return createInput({\n type: \"longText\",\n renderer: \"Webiny/Textarea\",\n ...input\n });\n}\n\n// Number\nexport function createNumberInput(input: OmitType<NumberInput>) {\n return createInput({\n type: \"number\",\n renderer: \"Webiny/Number\",\n ...input\n }) as NumberInput;\n}\n\n// Boolean\nexport function createBooleanInput(input: OmitType<BooleanInput>) {\n return createInput({\n type: \"boolean\",\n renderer: \"Webiny/Switch\",\n ...input\n }) as BooleanInput;\n}\n\n// Color\nexport function createColorInput(input: OmitType<ColorInput>) {\n return createInput({\n type: \"color\",\n renderer: \"Webiny/ColorPicker\",\n ...input\n }) as ColorInput;\n}\n\n// File\nexport function createFileInput(input: OmitType<FileInput>) {\n return createInput({\n type: \"file\",\n renderer: \"Webiny/FileManager\",\n ...input\n }) as FileInput;\n}\n\n// Date\nexport function createDateInput(input: OmitType<DateTimeInput>) {\n return createInput({\n type: \"datetime\",\n renderer: \"Webiny/DateTime\",\n ...input\n }) as DateTimeInput;\n}\n\n// Rich Text\nexport function createLexicalInput(input: OmitType<LexicalInput>) {\n return createInput({\n type: \"lexical\",\n renderer: \"Webiny/Lexical\",\n ...input\n }) as LexicalInput;\n}\n\n// Select\nexport function createSelectInput(input: OmitType<SelectInput>) {\n return createInput({\n type: \"select\",\n renderer: \"Webiny/Select\",\n ...input\n }) as SelectInput;\n}\n\n// Radio\nexport function createRadioInput(input: OmitType<RadioInput>) {\n return createInput({\n type: \"radio\",\n renderer: \"Webiny/RadioGroup\",\n ...input\n }) as RadioInput;\n}\n\n// Object\nexport function createObjectInput(input: OmitType<ObjectInput>) {\n return createInput({\n type: \"object\",\n renderer: \"Webiny/Object\",\n ...input\n }) as ObjectInput;\n}\n\n// Tags\nexport function createTagsInput(input: OmitType<TagsInput>) {\n return createInput({\n type: \"text\",\n list: true,\n renderer: \"Webiny/Tags\",\n ...input\n }) as TagsInput;\n}\n\nexport function createSlotInput(input: OmitType<SlotInput>) {\n return createInput({\n type: \"slot\",\n list: true,\n renderer: \"Webiny/Slot\",\n ...input\n }) as SlotInput;\n}\n\n// Implementation\nexport function createInput(input: ComponentInput): ComponentInput {\n if (input.onChange) {\n // @ts-expect-error We don't use this function on the frontend, so this is ok.\n input.onChange = functionConverter.serialize(input.onChange!);\n }\n return input;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/createTheme.d.ts
ADDED
package/createTheme.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createTheme","theme"],"sources":["createTheme.ts"],"sourcesContent":["import type { WebsiteBuilderThemeInput } from \"~/types/WebsiteBuilderTheme\";\n\nexport type { WebsiteBuilderThemeInput };\n\nexport const createTheme = (theme: WebsiteBuilderThemeInput) => {\n return theme;\n};\n"],"mappings":"AAIA,OAAO,MAAMA,WAAW,GAAIC,KAA+B,IAAK;EAC5D,OAAOA,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface QueryParams {
|
|
2
|
+
query: string;
|
|
3
|
+
variables: Record<string, any>;
|
|
4
|
+
preview?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class ApiClient {
|
|
7
|
+
private readonly apiEndpoint;
|
|
8
|
+
private readonly apiKey;
|
|
9
|
+
private readonly apiTenant;
|
|
10
|
+
constructor(apiHost: string, apiKey: string, apiTenant: string);
|
|
11
|
+
query({ query, variables, preview }: QueryParams): Promise<any>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class ApiClient {
|
|
2
|
+
constructor(apiHost, apiKey, apiTenant) {
|
|
3
|
+
this.apiTenant = apiTenant;
|
|
4
|
+
this.apiEndpoint = apiHost + "/graphql";
|
|
5
|
+
this.apiKey = apiKey;
|
|
6
|
+
}
|
|
7
|
+
async query({
|
|
8
|
+
query,
|
|
9
|
+
variables,
|
|
10
|
+
preview
|
|
11
|
+
}) {
|
|
12
|
+
const fetchOptions = {
|
|
13
|
+
next: {
|
|
14
|
+
revalidate: preview ? 0 : 60
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const request = {
|
|
18
|
+
...fetchOptions,
|
|
19
|
+
method: "POST",
|
|
20
|
+
headers: {
|
|
21
|
+
"Content-Type": "application/json",
|
|
22
|
+
"X-Tenant": this.apiTenant,
|
|
23
|
+
Authorization: "Bearer " + this.apiKey
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify({
|
|
26
|
+
query,
|
|
27
|
+
variables
|
|
28
|
+
})
|
|
29
|
+
};
|
|
30
|
+
const res = await fetch(this.apiEndpoint, request);
|
|
31
|
+
const json = await res.json();
|
|
32
|
+
if (json.message) {
|
|
33
|
+
throw new Error(json.message);
|
|
34
|
+
}
|
|
35
|
+
if (json.errors) {
|
|
36
|
+
console.error(json.errors);
|
|
37
|
+
throw new Error("Failed to fetch API");
|
|
38
|
+
}
|
|
39
|
+
return json.data;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=ApiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ApiClient","constructor","apiHost","apiKey","apiTenant","apiEndpoint","query","variables","preview","fetchOptions","next","revalidate","request","method","headers","Authorization","body","JSON","stringify","res","fetch","json","message","Error","errors","console","error","data"],"sources":["ApiClient.ts"],"sourcesContent":["interface QueryParams {\n query: string;\n variables: Record<string, any>;\n preview?: boolean;\n}\n\nexport class ApiClient {\n private readonly apiEndpoint: string;\n private readonly apiKey: string;\n private readonly apiTenant: string;\n\n constructor(apiHost: string, apiKey: string, apiTenant: string) {\n this.apiTenant = apiTenant;\n this.apiEndpoint = apiHost + \"/graphql\";\n this.apiKey = apiKey;\n }\n\n async query({ query, variables, preview }: QueryParams) {\n const fetchOptions = {\n next: {\n revalidate: preview ? 0 : 60\n }\n };\n\n const request = {\n ...fetchOptions,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-Tenant\": this.apiTenant,\n Authorization: \"Bearer \" + this.apiKey\n },\n body: JSON.stringify({\n query,\n variables\n })\n };\n\n const res = await fetch(this.apiEndpoint, request);\n const json = await res.json();\n\n if (json.message) {\n throw new Error(json.message);\n }\n\n if (json.errors) {\n console.error(json.errors);\n throw new Error(\"Failed to fetch API\");\n }\n\n return json.data;\n }\n}\n"],"mappings":"AAMA,OAAO,MAAMA,SAAS,CAAC;EAKnBC,WAAWA,CAACC,OAAe,EAAEC,MAAc,EAAEC,SAAiB,EAAE;IAC5D,IAAI,CAACA,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGH,OAAO,GAAG,UAAU;IACvC,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EAEA,MAAMG,KAAKA,CAAC;IAAEA,KAAK;IAAEC,SAAS;IAAEC;EAAqB,CAAC,EAAE;IACpD,MAAMC,YAAY,GAAG;MACjBC,IAAI,EAAE;QACFC,UAAU,EAAEH,OAAO,GAAG,CAAC,GAAG;MAC9B;IACJ,CAAC;IAED,MAAMI,OAAO,GAAG;MACZ,GAAGH,YAAY;MACfI,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACL,cAAc,EAAE,kBAAkB;QAClC,UAAU,EAAE,IAAI,CAACV,SAAS;QAC1BW,aAAa,EAAE,SAAS,GAAG,IAAI,CAACZ;MACpC,CAAC;MACDa,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QACjBZ,KAAK;QACLC;MACJ,CAAC;IACL,CAAC;IAED,MAAMY,GAAG,GAAG,MAAMC,KAAK,CAAC,IAAI,CAACf,WAAW,EAAEO,OAAO,CAAC;IAClD,MAAMS,IAAI,GAAG,MAAMF,GAAG,CAACE,IAAI,CAAC,CAAC;IAE7B,IAAIA,IAAI,CAACC,OAAO,EAAE;MACd,MAAM,IAAIC,KAAK,CAACF,IAAI,CAACC,OAAO,CAAC;IACjC;IAEA,IAAID,IAAI,CAACG,MAAM,EAAE;MACbC,OAAO,CAACC,KAAK,CAACL,IAAI,CAACG,MAAM,CAAC;MAC1B,MAAM,IAAID,KAAK,CAAC,qBAAqB,CAAC;IAC1C;IAEA,OAAOF,IAAI,CAACM,IAAI;EACpB;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IDataProvider, PublicPage } from "../types.js";
|
|
2
|
+
import type { ApiClient } from "./ApiClient";
|
|
3
|
+
interface DefaultDataProviderConfig {
|
|
4
|
+
apiClient: ApiClient;
|
|
5
|
+
}
|
|
6
|
+
export declare class DefaultDataProvider implements IDataProvider {
|
|
7
|
+
private config;
|
|
8
|
+
constructor(config: DefaultDataProviderConfig);
|
|
9
|
+
getPageByPath(path: string): Promise<PublicPage | null>;
|
|
10
|
+
getPageById(id: string): Promise<PublicPage | null>;
|
|
11
|
+
listPages(): Promise<any>;
|
|
12
|
+
private checkForErrors;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { GET_PAGE_BY_PATH } from "./GET_PAGE_BY_PATH";
|
|
2
|
+
import { GET_PAGE_BY_ID } from "./GET_PAGE_BY_ID";
|
|
3
|
+
import { LIST_PUBLISHED_PAGES } from "./LIST_PUBLISHED_PAGES";
|
|
4
|
+
export class DefaultDataProvider {
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.config = config;
|
|
7
|
+
}
|
|
8
|
+
async getPageByPath(path) {
|
|
9
|
+
const result = await this.config.apiClient.query({
|
|
10
|
+
query: GET_PAGE_BY_PATH,
|
|
11
|
+
variables: {
|
|
12
|
+
path
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
this.checkForErrors(`getPageByPath:${path}`, result.websiteBuilder.getPageByPath);
|
|
16
|
+
return result.websiteBuilder.getPageByPath.data;
|
|
17
|
+
}
|
|
18
|
+
async getPageById(id) {
|
|
19
|
+
const result = await this.config.apiClient.query({
|
|
20
|
+
query: GET_PAGE_BY_ID,
|
|
21
|
+
variables: {
|
|
22
|
+
id
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
this.checkForErrors("getPageById", result.websiteBuilder.getPageById);
|
|
26
|
+
return result.websiteBuilder.getPageById.data;
|
|
27
|
+
}
|
|
28
|
+
async listPages() {
|
|
29
|
+
const result = await this.config.apiClient.query({
|
|
30
|
+
query: LIST_PUBLISHED_PAGES,
|
|
31
|
+
variables: {
|
|
32
|
+
where: {
|
|
33
|
+
published: true
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
this.checkForErrors("listPages", result.websiteBuilder.listPages);
|
|
38
|
+
return result.websiteBuilder.listPages.data ?? [];
|
|
39
|
+
}
|
|
40
|
+
checkForErrors(action, data) {
|
|
41
|
+
if (data.error) {
|
|
42
|
+
console.error(`Could not execute "${action}". Reason: ${data.error.message}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=DefaultDataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GET_PAGE_BY_PATH","GET_PAGE_BY_ID","LIST_PUBLISHED_PAGES","DefaultDataProvider","constructor","config","getPageByPath","path","result","apiClient","query","variables","checkForErrors","websiteBuilder","data","getPageById","id","listPages","where","published","action","error","console","message"],"sources":["DefaultDataProvider.ts"],"sourcesContent":["import type { IDataProvider, PublicPage } from \"~/types.js\";\nimport type { ApiClient } from \"~/dataProviders/ApiClient\";\nimport { GET_PAGE_BY_PATH } from \"./GET_PAGE_BY_PATH\";\nimport { GET_PAGE_BY_ID } from \"./GET_PAGE_BY_ID\";\nimport { LIST_PUBLISHED_PAGES } from \"./LIST_PUBLISHED_PAGES\";\n\ninterface DefaultDataProviderConfig {\n apiClient: ApiClient;\n}\n\nexport class DefaultDataProvider implements IDataProvider {\n private config: DefaultDataProviderConfig;\n\n constructor(config: DefaultDataProviderConfig) {\n this.config = config;\n }\n\n public async getPageByPath(path: string): Promise<PublicPage | null> {\n const result = await this.config.apiClient.query({\n query: GET_PAGE_BY_PATH,\n variables: {\n path\n }\n });\n\n this.checkForErrors(`getPageByPath:${path}`, result.websiteBuilder.getPageByPath);\n\n return result.websiteBuilder.getPageByPath.data;\n }\n\n public async getPageById(id: string): Promise<PublicPage | null> {\n const result = await this.config.apiClient.query({\n query: GET_PAGE_BY_ID,\n variables: {\n id\n }\n });\n\n this.checkForErrors(\"getPageById\", result.websiteBuilder.getPageById);\n\n return result.websiteBuilder.getPageById.data;\n }\n\n public async listPages() {\n const result = await this.config.apiClient.query({\n query: LIST_PUBLISHED_PAGES,\n variables: {\n where: {\n published: true\n }\n }\n });\n\n this.checkForErrors(\"listPages\", result.websiteBuilder.listPages);\n\n return result.websiteBuilder.listPages.data ?? [];\n }\n\n private checkForErrors(action: string, data: any) {\n if (data.error) {\n console.error(`Could not execute \"${action}\". Reason: ${data.error.message}`);\n }\n }\n}\n"],"mappings":"AAEA,SAASA,gBAAgB;AACzB,SAASC,cAAc;AACvB,SAASC,oBAAoB;AAM7B,OAAO,MAAMC,mBAAmB,CAA0B;EAGtDC,WAAWA,CAACC,MAAiC,EAAE;IAC3C,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEA,MAAaC,aAAaA,CAACC,IAAY,EAA8B;IACjE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,MAAM,CAACI,SAAS,CAACC,KAAK,CAAC;MAC7CA,KAAK,EAAEV,gBAAgB;MACvBW,SAAS,EAAE;QACPJ;MACJ;IACJ,CAAC,CAAC;IAEF,IAAI,CAACK,cAAc,CAAC,iBAAiBL,IAAI,EAAE,EAAEC,MAAM,CAACK,cAAc,CAACP,aAAa,CAAC;IAEjF,OAAOE,MAAM,CAACK,cAAc,CAACP,aAAa,CAACQ,IAAI;EACnD;EAEA,MAAaC,WAAWA,CAACC,EAAU,EAA8B;IAC7D,MAAMR,MAAM,GAAG,MAAM,IAAI,CAACH,MAAM,CAACI,SAAS,CAACC,KAAK,CAAC;MAC7CA,KAAK,EAAET,cAAc;MACrBU,SAAS,EAAE;QACPK;MACJ;IACJ,CAAC,CAAC;IAEF,IAAI,CAACJ,cAAc,CAAC,aAAa,EAAEJ,MAAM,CAACK,cAAc,CAACE,WAAW,CAAC;IAErE,OAAOP,MAAM,CAACK,cAAc,CAACE,WAAW,CAACD,IAAI;EACjD;EAEA,MAAaG,SAASA,CAAA,EAAG;IACrB,MAAMT,MAAM,GAAG,MAAM,IAAI,CAACH,MAAM,CAACI,SAAS,CAACC,KAAK,CAAC;MAC7CA,KAAK,EAAER,oBAAoB;MAC3BS,SAAS,EAAE;QACPO,KAAK,EAAE;UACHC,SAAS,EAAE;QACf;MACJ;IACJ,CAAC,CAAC;IAEF,IAAI,CAACP,cAAc,CAAC,WAAW,EAAEJ,MAAM,CAACK,cAAc,CAACI,SAAS,CAAC;IAEjE,OAAOT,MAAM,CAACK,cAAc,CAACI,SAAS,CAACH,IAAI,IAAI,EAAE;EACrD;EAEQF,cAAcA,CAACQ,MAAc,EAAEN,IAAS,EAAE;IAC9C,IAAIA,IAAI,CAACO,KAAK,EAAE;MACZC,OAAO,CAACD,KAAK,CAAC,sBAAsBD,MAAM,cAAcN,IAAI,CAACO,KAAK,CAACE,OAAO,EAAE,CAAC;IACjF;EACJ;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GET_ACTIVE_REDIRECTS = "\n query GetActiveRedirects {\n websiteBuilder {\n getActiveRedirects {\n data {\n id\n from\n to\n permanent\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const GET_ACTIVE_REDIRECTS = /* GraphQL*/`
|
|
2
|
+
query GetActiveRedirects {
|
|
3
|
+
websiteBuilder {
|
|
4
|
+
getActiveRedirects {
|
|
5
|
+
data {
|
|
6
|
+
id
|
|
7
|
+
from
|
|
8
|
+
to
|
|
9
|
+
permanent
|
|
10
|
+
}
|
|
11
|
+
error {
|
|
12
|
+
code
|
|
13
|
+
message
|
|
14
|
+
data
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=GET_ACTIVE_REDIRECTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GET_ACTIVE_REDIRECTS"],"sources":["GET_ACTIVE_REDIRECTS.ts"],"sourcesContent":["export const GET_ACTIVE_REDIRECTS = /* GraphQL*/ `\n query GetActiveRedirects {\n websiteBuilder {\n getActiveRedirects {\n data {\n id\n from\n to\n permanent\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,oBAAoB,GAAG,YAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GET_PAGE_BY_ID = "\n query GetPageById($id: ID!) {\n websiteBuilder {\n getPageById(id: $id) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const GET_PAGE_BY_ID = /* GraphQL*/`
|
|
2
|
+
query GetPageById($id: ID!) {
|
|
3
|
+
websiteBuilder {
|
|
4
|
+
getPageById(id: $id) {
|
|
5
|
+
data {
|
|
6
|
+
id
|
|
7
|
+
properties
|
|
8
|
+
elements
|
|
9
|
+
bindings
|
|
10
|
+
}
|
|
11
|
+
error {
|
|
12
|
+
code
|
|
13
|
+
message
|
|
14
|
+
data
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=GET_PAGE_BY_ID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GET_PAGE_BY_ID"],"sources":["GET_PAGE_BY_ID.ts"],"sourcesContent":["export const GET_PAGE_BY_ID = /* GraphQL*/ `\n query GetPageById($id: ID!) {\n websiteBuilder {\n getPageById(id: $id) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,cAAc,GAAG,YAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GET_PAGE_BY_PATH = "\n query GetPageByPath($path: String!) {\n websiteBuilder {\n getPageByPath(path: $path) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const GET_PAGE_BY_PATH = /* GraphQL*/`
|
|
2
|
+
query GetPageByPath($path: String!) {
|
|
3
|
+
websiteBuilder {
|
|
4
|
+
getPageByPath(path: $path) {
|
|
5
|
+
data {
|
|
6
|
+
id
|
|
7
|
+
properties
|
|
8
|
+
elements
|
|
9
|
+
bindings
|
|
10
|
+
}
|
|
11
|
+
error {
|
|
12
|
+
code
|
|
13
|
+
message
|
|
14
|
+
data
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=GET_PAGE_BY_PATH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GET_PAGE_BY_PATH"],"sources":["GET_PAGE_BY_PATH.ts"],"sourcesContent":["export const GET_PAGE_BY_PATH = /* GraphQL*/ `\n query GetPageByPath($path: String!) {\n websiteBuilder {\n getPageByPath(path: $path) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,GAAG,YAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LIST_PUBLISHED_PAGES = "\n query ListPublishedPages($where: WbPagesListWhereInput) {\n websiteBuilder {\n listPages(where: $where) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const LIST_PUBLISHED_PAGES = /* GraphQL*/`
|
|
2
|
+
query ListPublishedPages($where: WbPagesListWhereInput) {
|
|
3
|
+
websiteBuilder {
|
|
4
|
+
listPages(where: $where) {
|
|
5
|
+
data {
|
|
6
|
+
id
|
|
7
|
+
properties
|
|
8
|
+
elements
|
|
9
|
+
bindings
|
|
10
|
+
}
|
|
11
|
+
error {
|
|
12
|
+
code
|
|
13
|
+
message
|
|
14
|
+
data
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=LIST_PUBLISHED_PAGES.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LIST_PUBLISHED_PAGES"],"sources":["LIST_PUBLISHED_PAGES.ts"],"sourcesContent":["export const LIST_PUBLISHED_PAGES = /* GraphQL*/ `\n query ListPublishedPages($where: WbPagesListWhereInput) {\n websiteBuilder {\n listPages(where: $where) {\n data {\n id\n properties\n elements\n bindings\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAO,MAAMA,oBAAoB,GAAG,YAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IDataProvider, Page, PublicRedirect } from "../types.js";
|
|
2
|
+
export declare class NullDataProvider implements IDataProvider {
|
|
3
|
+
getPageById(): Promise<Page | null>;
|
|
4
|
+
getPageByPath(): Promise<Page | null>;
|
|
5
|
+
listPages(): Promise<never[]>;
|
|
6
|
+
listRedirects(): Promise<PublicRedirect[]>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class NullDataProvider {
|
|
2
|
+
getPageById() {
|
|
3
|
+
return Promise.resolve(null);
|
|
4
|
+
}
|
|
5
|
+
getPageByPath() {
|
|
6
|
+
return Promise.resolve(null);
|
|
7
|
+
}
|
|
8
|
+
async listPages() {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
listRedirects() {
|
|
12
|
+
return Promise.resolve([]);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=NullDataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NullDataProvider","getPageById","Promise","resolve","getPageByPath","listPages","listRedirects"],"sources":["NullDataProvider.ts"],"sourcesContent":["import type { IDataProvider, Page, PublicRedirect } from \"~/types.js\";\n\nexport class NullDataProvider implements IDataProvider {\n getPageById(): Promise<Page | null> {\n return Promise.resolve(null);\n }\n\n getPageByPath(): Promise<Page | null> {\n return Promise.resolve(null);\n }\n\n public async listPages() {\n return [];\n }\n\n listRedirects(): Promise<PublicRedirect[]> {\n return Promise.resolve([]);\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,CAA0B;EACnDC,WAAWA,CAAA,EAAyB;IAChC,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEAC,aAAaA,CAAA,EAAyB;IAClC,OAAOF,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEA,MAAaE,SAASA,CAAA,EAAG;IACrB,OAAO,EAAE;EACb;EAEAC,aAAaA,CAAA,EAA8B;IACvC,OAAOJ,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;EAC9B;AACJ","ignoreList":[]}
|