@plitzi/sdk-elements 0.37.1 → 0.37.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1306 -0
- package/dist/Component/ComponentProvider.d.ts +1 -1
- package/dist/Component/ComponentProvider.mjs +10 -5
- package/dist/Element/JsxManager.d.ts +1 -1
- package/dist/Element/JsxManager.mjs +1 -0
- package/dist/Element/LayoutBody.d.ts +1 -1
- package/dist/Element/PluginManager.d.ts +1 -1
- package/dist/Element/PluginRemote.d.ts +3 -1
- package/dist/Element/PluginRemote.mjs +9 -9
- package/dist/Element/ReplicaProvider.d.ts +1 -1
- package/dist/Element/helpers/elementConstants.mjs +28 -0
- package/dist/Element/helpers/elementUtils.mjs +1 -1
- package/dist/Element/helpers/loadComponent.d.ts +6 -1
- package/dist/Element/helpers/loadComponent.mjs +7 -7
- package/dist/Element/helpers/pluginSelector.d.ts +1 -1
- package/dist/Element/helpers/pluginSelector.mjs +1 -0
- package/dist/Element/hocs/withElement.d.ts +1 -1
- package/dist/Element/hooks/useElementDataSource.mjs +23 -16
- package/dist/Element/hooks/useElementInternal.mjs +60 -52
- package/dist/Element/hooks/useInternalClassName.mjs +19 -18
- package/dist/Element/hooks/useKeyTriggers.d.ts +18 -0
- package/dist/Element/hooks/useKeyTriggers.mjs +36 -0
- package/dist/Element/hooks/useRootElementInteractions.mjs +70 -55
- package/dist/Element/hooks/useRscData.mjs +20 -15
- package/dist/components/ElementAdvancedEditor.d.ts +1 -1
- package/dist/dataSource/GlobalSources.mjs +115 -79
- package/dist/dataSource/getSourcesByElementId.mjs +2 -2
- package/dist/elements/advanced/BlockHtml/BlockHtml.d.ts +2 -2
- package/dist/elements/advanced/BlockHtml/Settings.d.ts +1 -1
- package/dist/elements/advanced/BlockHtml/index.d.ts +1 -1
- package/dist/elements/advanced/BlockJsx/BlockJsx.d.ts +2 -2
- package/dist/elements/advanced/BlockJsx/BlockJsx.mjs +1 -1
- package/dist/elements/advanced/BlockJsx/Settings.d.ts +1 -1
- package/dist/elements/advanced/BlockJsx/index.d.ts +1 -1
- package/dist/elements/advanced/Custom/Custom.d.ts +2 -2
- package/dist/elements/advanced/Custom/Settings.d.ts +1 -1
- package/dist/elements/advanced/Custom/index.d.ts +1 -1
- package/dist/elements/advanced/NodeHtml/declaration.d.ts +1 -1
- package/dist/elements/advanced/NodeHtml/index.d.ts +2 -2
- package/dist/elements/advanced/PlitziSdk/Settings.d.ts +1 -1
- package/dist/elements/advanced/Reference/Reference.d.ts +2 -2
- package/dist/elements/advanced/Reference/Settings.d.ts +1 -1
- package/dist/elements/advanced/Reference/index.d.ts +1 -1
- package/dist/elements/basic/Button/Button.d.ts +11 -4
- package/dist/elements/basic/Button/Button.mjs +5 -5
- package/dist/elements/basic/Button/Settings.d.ts +2 -1
- package/dist/elements/basic/Button/Settings.mjs +14 -7
- package/dist/elements/basic/Button/declaration.d.ts +8 -3
- package/dist/elements/basic/Button/declaration.mjs +14 -6
- package/dist/elements/basic/Button/index.d.ts +9 -4
- package/dist/elements/basic/Dropdown/Dropdown.d.ts +2 -2
- package/dist/elements/basic/Dropdown/Dropdown.mjs +48 -39
- package/dist/elements/basic/Dropdown/DropdownPopup/DropdownPopup.d.ts +2 -2
- package/dist/elements/basic/Dropdown/DropdownPopup/Settings.d.ts +1 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +2 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +2 -1
- package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +3 -2
- package/dist/elements/basic/Dropdown/Settings.d.ts +1 -1
- package/dist/elements/basic/Dropdown/declaration.d.ts +3 -0
- package/dist/elements/basic/Dropdown/declaration.mjs +9 -3
- package/dist/elements/basic/Dropdown/index.d.ts +7 -3
- package/dist/elements/basic/Dropdown/useDropdown.d.ts +6 -1
- package/dist/elements/basic/Dropdown/useDropdown.mjs +58 -41
- package/dist/elements/basic/Dropdown/useDropdownTrigger.d.ts +26 -0
- package/dist/elements/basic/Dropdown/useDropdownTrigger.mjs +30 -0
- package/dist/elements/basic/Heading/Heading.d.ts +2 -2
- package/dist/elements/basic/Heading/Settings.d.ts +1 -1
- package/dist/elements/basic/Heading/declaration.d.ts +9 -6
- package/dist/elements/basic/Heading/declaration.mjs +17 -9
- package/dist/elements/basic/Heading/index.d.ts +10 -7
- package/dist/elements/basic/Link/Link.d.ts +2 -2
- package/dist/elements/basic/Link/Link.mjs +5 -2
- package/dist/elements/basic/Link/Settings.d.ts +2 -1
- package/dist/elements/basic/Link/Settings.mjs +31 -24
- package/dist/elements/basic/Link/declaration.d.ts +5 -1
- package/dist/elements/basic/Link/declaration.mjs +16 -3
- package/dist/elements/basic/Link/index.d.ts +6 -2
- package/dist/elements/basic/Markdown/Markdown.d.ts +2 -2
- package/dist/elements/basic/Markdown/Settings.d.ts +1 -1
- package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
- package/dist/elements/basic/Markdown/declaration.mjs +1 -1
- package/dist/elements/basic/Markdown/index.d.ts +2 -2
- package/dist/elements/basic/Paragraph/Paragraph.d.ts +2 -2
- package/dist/elements/basic/Paragraph/Settings.d.ts +1 -1
- package/dist/elements/basic/Paragraph/index.d.ts +1 -1
- package/dist/elements/basic/RichText/RichText.d.ts +2 -2
- package/dist/elements/basic/RichText/Settings.d.ts +1 -1
- package/dist/elements/basic/RichText/declaration.d.ts +3 -0
- package/dist/elements/basic/RichText/declaration.mjs +8 -3
- package/dist/elements/basic/RichText/index.d.ts +4 -1
- package/dist/elements/basic/Text/Settings.d.ts +1 -1
- package/dist/elements/basic/Text/Text.d.ts +2 -2
- package/dist/elements/basic/Text/declaration.d.ts +1 -1
- package/dist/elements/basic/Text/declaration.mjs +1 -1
- package/dist/elements/basic/Text/index.d.ts +2 -2
- package/dist/elements/basic/ThemeToggle/ThemeToggle.d.ts +2 -2
- package/dist/elements/basic/ThemeToggle/ThemeToggle.mjs +58 -62
- package/dist/elements/basic/ThemeToggle/declaration.d.ts +15 -1
- package/dist/elements/basic/ThemeToggle/declaration.mjs +12 -4
- package/dist/elements/basic/ThemeToggle/index.d.ts +16 -2
- package/dist/elements/declarations/index.d.ts +530 -21
- package/dist/elements/declarations/index.mjs +24 -22
- package/dist/elements/form/Form/Form.d.ts +2 -2
- package/dist/elements/form/Form/Form.mjs +37 -57
- package/dist/elements/form/Form/Settings.d.ts +1 -1
- package/dist/elements/form/Form/declaration.d.ts +60 -0
- package/dist/elements/form/Form/declaration.mjs +59 -3
- package/dist/elements/form/Form/index.d.ts +62 -2
- package/dist/elements/form/FormControl/FormControl.d.ts +19 -7
- package/dist/elements/form/FormControl/FormControl.mjs +138 -138
- package/dist/elements/form/FormControl/Settings.d.ts +3 -1
- package/dist/elements/form/FormControl/Settings.mjs +73 -57
- package/dist/elements/form/FormControl/components/Label.d.ts +3 -1
- package/dist/elements/form/FormControl/components/Label.mjs +20 -18
- package/dist/elements/form/FormControl/components/visuallyHidden.d.ts +6 -0
- package/dist/elements/form/FormControl/components/visuallyHidden.mjs +14 -0
- package/dist/elements/form/FormControl/declaration.d.ts +17 -0
- package/dist/elements/form/FormControl/declaration.mjs +56 -30
- package/dist/elements/form/FormControl/hocs/withFieldValue.d.ts +1 -1
- package/dist/elements/form/FormControl/hocs/withFieldValue.mjs +68 -61
- package/dist/elements/form/FormControl/index.d.ts +19 -2
- package/dist/elements/form/FormControl/inputs/Checkbox.d.ts +6 -1
- package/dist/elements/form/FormControl/inputs/Checkbox.mjs +5 -3
- package/dist/elements/form/FormControl/inputs/Hidden.d.ts +1 -1
- package/dist/elements/form/FormControl/inputs/Input.d.ts +8 -1
- package/dist/elements/form/FormControl/inputs/Input.mjs +44 -38
- package/dist/elements/form/FormControl/inputs/Select.d.ts +6 -1
- package/dist/elements/form/FormControl/inputs/Select.mjs +12 -10
- package/dist/elements/form/FormControl/inputs/Textarea.d.ts +8 -1
- package/dist/elements/form/FormControl/inputs/Textarea.mjs +26 -21
- package/dist/elements/form/FormControl/inputs/useFocusWhenShown.d.ts +7 -0
- package/dist/elements/form/FormControl/inputs/useFocusWhenShown.mjs +9 -0
- package/dist/elements/index.d.ts +3 -1
- package/dist/elements/index.mjs +16 -14
- package/dist/elements/internal/LayoutContainer/LayoutContainer.d.ts +2 -2
- package/dist/elements/internal/LayoutContainer/Settings.d.ts +1 -1
- package/dist/elements/internal/LayoutContainer/declaration.d.ts +3 -0
- package/dist/elements/internal/LayoutContainer/declaration.mjs +15 -3
- package/dist/elements/internal/LayoutContainer/index.d.ts +4 -1
- package/dist/elements/internal/LayoutPicker/LayoutPicker.d.ts +1 -1
- package/dist/elements/internal/Loading/Loading.d.ts +2 -2
- package/dist/elements/internal/Loading/index.d.ts +1 -1
- package/dist/elements/internal/NotFound/NotFound.d.ts +2 -2
- package/dist/elements/internal/NotFound/index.d.ts +1 -1
- package/dist/elements/internal/Page/Page.d.ts +2 -2
- package/dist/elements/internal/Page/Page.mjs +34 -43
- package/dist/elements/internal/Page/Settings.d.ts +1 -1
- package/dist/elements/internal/Page/declaration.d.ts +13 -0
- package/dist/elements/internal/Page/declaration.mjs +11 -0
- package/dist/elements/internal/Page/index.d.ts +14 -1
- package/dist/elements/media/FontAwesome/FontAwesome.d.ts +9 -2
- package/dist/elements/media/FontAwesome/FontAwesome.mjs +12 -5
- package/dist/elements/media/FontAwesome/Settings.d.ts +2 -1
- package/dist/elements/media/FontAwesome/Settings.mjs +29 -22
- package/dist/elements/media/FontAwesome/declaration.d.ts +1 -0
- package/dist/elements/media/FontAwesome/index.d.ts +2 -1
- package/dist/elements/media/Image/Image.d.ts +14 -3
- package/dist/elements/media/Image/Image.mjs +25 -25
- package/dist/elements/media/Image/Settings.d.ts +3 -1
- package/dist/elements/media/Image/Settings.mjs +29 -15
- package/dist/elements/media/Image/declaration.d.ts +7 -1
- package/dist/elements/media/Image/declaration.mjs +16 -3
- package/dist/elements/media/Image/index.d.ts +8 -2
- package/dist/elements/media/Video/Settings.d.ts +1 -1
- package/dist/elements/media/Video/Video.d.ts +2 -2
- package/dist/elements/media/Video/index.d.ts +1 -1
- package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +11 -2
- package/dist/elements/provider/ApiContainer/ApiContainer.mjs +164 -198
- package/dist/elements/provider/ApiContainer/Settings.d.ts +2 -1
- package/dist/elements/provider/ApiContainer/Settings.mjs +129 -122
- package/dist/elements/provider/ApiContainer/components/FiltersInput/FiltersInput.d.ts +1 -1
- package/dist/elements/provider/ApiContainer/declaration.d.ts +88 -0
- package/dist/elements/provider/ApiContainer/declaration.mjs +112 -4
- package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.d.ts +16 -0
- package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.mjs +4 -0
- package/dist/elements/provider/ApiContainer/helpers/providerOutcome.d.ts +25 -0
- package/dist/elements/provider/ApiContainer/helpers/providerOutcome.mjs +7 -0
- package/dist/elements/provider/ApiContainer/helpers/queryInput.d.ts +5 -0
- package/dist/elements/provider/ApiContainer/helpers/queryInput.mjs +12 -0
- package/dist/elements/provider/ApiContainer/hooks/useAutoRefresh.d.ts +21 -0
- package/dist/elements/provider/ApiContainer/hooks/useAutoRefresh.mjs +18 -0
- package/dist/elements/provider/ApiContainer/index.d.ts +89 -1
- package/dist/elements/provider/Channel/Channel.d.ts +26 -0
- package/dist/elements/provider/Channel/Channel.mjs +92 -0
- package/dist/elements/provider/Channel/Settings.d.ts +9 -0
- package/dist/elements/provider/Channel/Settings.mjs +38 -0
- package/dist/elements/provider/Channel/declaration.d.ts +138 -0
- package/dist/elements/provider/Channel/declaration.mjs +125 -0
- package/dist/elements/provider/Channel/index.d.ts +137 -0
- package/dist/elements/provider/Channel/index.mjs +6 -0
- package/dist/elements/settings.mjs +25 -23
- package/dist/elements/structure/Container/Container.d.ts +17 -3
- package/dist/elements/structure/Container/Container.mjs +18 -9
- package/dist/elements/structure/Container/Settings.d.ts +4 -2
- package/dist/elements/structure/Container/Settings.mjs +110 -69
- package/dist/elements/structure/Container/declaration.d.ts +12 -1
- package/dist/elements/structure/Container/declaration.mjs +35 -3
- package/dist/elements/structure/Container/index.d.ts +7 -2
- package/dist/elements/structure/Container/index.mjs +3 -3
- package/dist/elements/structure/DialogContainer/DialogContainer.d.ts +2 -2
- package/dist/elements/structure/DialogContainer/DialogContainer.mjs +126 -153
- package/dist/elements/structure/DialogContainer/Settings.d.ts +1 -1
- package/dist/elements/structure/DialogContainer/declaration.d.ts +82 -1
- package/dist/elements/structure/DialogContainer/declaration.mjs +62 -1
- package/dist/elements/structure/DialogContainer/index.d.ts +83 -2
- package/dist/elements/structure/List/List.d.ts +2 -2
- package/dist/elements/structure/List/ListItem/ListItem.d.ts +2 -2
- package/dist/elements/structure/List/ListItem/Settings.d.ts +1 -1
- package/dist/elements/structure/List/ListItem/index.d.ts +1 -1
- package/dist/elements/structure/List/Settings.d.ts +1 -1
- package/dist/elements/structure/List/declaration.d.ts +4 -0
- package/dist/elements/structure/List/declaration.mjs +7 -3
- package/dist/elements/structure/List/index.d.ts +6 -2
- package/dist/elements/structure/List/modes/ListBasic.d.ts +1 -1
- package/dist/elements/structure/List/modes/ListControlled/ListControlled.d.ts +1 -1
- package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.d.ts +1 -1
- package/dist/elements/structure/ModalContainer/ModalContainer.d.ts +2 -2
- package/dist/elements/structure/ModalContainer/ModalContainer.mjs +92 -107
- package/dist/elements/structure/ModalContainer/Settings.d.ts +1 -1
- package/dist/elements/structure/ModalContainer/declaration.d.ts +48 -2
- package/dist/elements/structure/ModalContainer/declaration.mjs +40 -2
- package/dist/elements/structure/ModalContainer/index.d.ts +49 -3
- package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +1 -0
- package/dist/elements/structure/ModalContainer/metadataFromText.mjs +10 -0
- package/dist/elements/structure/ModalContainer/useModalDialog.d.ts +20 -0
- package/dist/elements/structure/ModalContainer/useModalDialog.mjs +31 -0
- package/dist/elements/structure/Pagination/Pagination.d.ts +7 -2
- package/dist/elements/structure/Pagination/Pagination.mjs +49 -52
- package/dist/elements/structure/Pagination/Settings.d.ts +2 -1
- package/dist/elements/structure/Pagination/Settings.mjs +16 -9
- package/dist/elements/structure/Pagination/declaration.d.ts +16 -0
- package/dist/elements/structure/Pagination/declaration.mjs +14 -3
- package/dist/elements/structure/Pagination/index.d.ts +17 -1
- package/dist/elements/structure/TabContainer/Settings.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainer.d.ts +2 -2
- package/dist/elements/structure/TabContainer/TabContainer.mjs +19 -17
- package/dist/elements/structure/TabContainer/TabContainerBody/Settings.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.d.ts +2 -2
- package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.mjs +8 -6
- package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +1 -0
- package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +1 -0
- package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +2 -1
- package/dist/elements/structure/TabContainer/TabContainerContext.d.ts +2 -0
- package/dist/elements/structure/TabContainer/TabContainerHeader/Settings.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.d.ts +2 -2
- package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.mjs +18 -14
- package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +1 -0
- package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +1 -0
- package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +2 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/Settings.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.d.ts +6 -2
- package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.mjs +48 -13
- package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +1 -1
- package/dist/elements/structure/TabContainer/index.d.ts +6 -4
- package/dist/index.d.ts +570 -57
- package/dist/index.mjs +20 -17
- package/dist/realtime/useChannel.d.ts +35 -0
- package/dist/realtime/useChannel.mjs +57 -0
- package/package.json +75 -11
- package/dist/elements/media/FontAwesome/FontAwesome.stories-paused.d.ts +0 -1
|
@@ -5,5 +5,5 @@ export type ComponentProviderProps = {
|
|
|
5
5
|
localCustomComponents?: Record<string, ComponentPluginWithHOC>;
|
|
6
6
|
children?: ReactNode;
|
|
7
7
|
};
|
|
8
|
-
declare const ComponentProvider: ({ localComponents, localCustomComponents, children }: ComponentProviderProps) => import(
|
|
8
|
+
declare const ComponentProvider: ({ localComponents, localCustomComponents, children }: ComponentProviderProps) => import('react').JSX.Element;
|
|
9
9
|
export default ComponentProvider;
|
|
@@ -10,10 +10,10 @@ var d = ({ localComponents: d, localCustomComponents: f, children: p }) => {
|
|
|
10
10
|
...n(r),
|
|
11
11
|
...n(d),
|
|
12
12
|
...t(f)
|
|
13
|
-
}), [d, f]), h = o({}), g =
|
|
13
|
+
}), [d, f]), h = o({}), g = a(() => ({ current: {
|
|
14
14
|
...h.current,
|
|
15
15
|
...m
|
|
16
|
-
}), _ = i((t = [], n = !1) => {
|
|
16
|
+
} }), [m]), _ = i((t = [], n = !1) => {
|
|
17
17
|
if (typeof t == "string" && !n) return g.current[t];
|
|
18
18
|
if (typeof t == "string" && n) {
|
|
19
19
|
let n = g.current[t];
|
|
@@ -30,7 +30,7 @@ var d = ({ localComponents: d, localCustomComponents: f, children: p }) => {
|
|
|
30
30
|
...c(e(i), [t])
|
|
31
31
|
} : r[t] = i);
|
|
32
32
|
}), r;
|
|
33
|
-
}, []), v = i((t = []) => {
|
|
33
|
+
}, [g]), v = i((t = []) => {
|
|
34
34
|
let n = {};
|
|
35
35
|
return Array.isArray(t) || (t = [t]), t.forEach((t) => {
|
|
36
36
|
t.type && !g.current[t.type] && (n = {
|
|
@@ -46,7 +46,7 @@ var d = ({ localComponents: d, localCustomComponents: f, children: p }) => {
|
|
|
46
46
|
...h.current,
|
|
47
47
|
...n
|
|
48
48
|
}, n);
|
|
49
|
-
}, [m]), y = i((e) => {
|
|
49
|
+
}, [g, m]), y = i((e) => {
|
|
50
50
|
if (!e) return [];
|
|
51
51
|
Array.isArray(e) || (e = [e]);
|
|
52
52
|
let t = e;
|
|
@@ -57,7 +57,11 @@ var d = ({ localComponents: d, localCustomComponents: f, children: p }) => {
|
|
|
57
57
|
...c(h.current, t),
|
|
58
58
|
...m
|
|
59
59
|
}, h.current = c(h.current, t), t;
|
|
60
|
-
}, [
|
|
60
|
+
}, [
|
|
61
|
+
g,
|
|
62
|
+
_,
|
|
63
|
+
m
|
|
64
|
+
]), b = o(Object.keys(g.current).reduce((e, t) => {
|
|
61
65
|
let n = s(g.current, t, void 0);
|
|
62
66
|
return !n || !n.content ? e : {
|
|
63
67
|
...e,
|
|
@@ -83,6 +87,7 @@ var d = ({ localComponents: d, localCustomComponents: f, children: p }) => {
|
|
|
83
87
|
unregisterDefinition: S,
|
|
84
88
|
registerDefinition: x
|
|
85
89
|
}), [
|
|
90
|
+
g,
|
|
86
91
|
v,
|
|
87
92
|
y,
|
|
88
93
|
x,
|
|
@@ -7,5 +7,5 @@ export type JsxManagerProps = {
|
|
|
7
7
|
internalProps: InternalPropsSTG1;
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
};
|
|
10
|
-
declare const _default: import('react').MemoExoticComponent<({ plitziJsxSkipHOC, as: type, internalProps, children, ...plitziJsxProps }: JsxManagerProps) => import(
|
|
10
|
+
declare const _default: import('react').MemoExoticComponent<({ plitziJsxSkipHOC, as: type, internalProps, children, ...plitziJsxProps }: JsxManagerProps) => import('react').JSX.Element | null>;
|
|
11
11
|
export default _default;
|
|
@@ -15,7 +15,7 @@ export type LayoutBodyProps = {
|
|
|
15
15
|
* `current` is the body as of the first render, which is what the server renders and what hydration reads. Later
|
|
16
16
|
* bodies are announced after the commit, and the slot renders them before the browser paints.
|
|
17
17
|
*/
|
|
18
|
-
declare const LayoutBody: ({ body, children }: LayoutBodyProps) => import(
|
|
18
|
+
declare const LayoutBody: ({ body, children }: LayoutBodyProps) => import('react').JSX.Element;
|
|
19
19
|
/** The body of the nearest shell, for the element that is its slot; nothing, and no subscription, for any other. */
|
|
20
20
|
export declare const useLayoutBody: (isSlot: boolean) => ReactNode;
|
|
21
21
|
export default LayoutBody;
|
|
@@ -4,5 +4,5 @@ export type PluginManagerProps = {
|
|
|
4
4
|
type: string;
|
|
5
5
|
internalProps: InternalPropsSTG0;
|
|
6
6
|
};
|
|
7
|
-
declare const _default: import('react').MemoExoticComponent<({ plitziElementLayout, type, internalProps }: PluginManagerProps) => import(
|
|
7
|
+
declare const _default: import('react').MemoExoticComponent<({ plitziElementLayout, type, internalProps }: PluginManagerProps) => import('react').JSX.Element | undefined>;
|
|
8
8
|
export default _default;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { InternalPropsSTG1 } from '@plitzi/sdk-shared';
|
|
2
2
|
export type PluginRemoteProps = {
|
|
3
3
|
url: string;
|
|
4
|
+
/** The element's type, when it is not the plugin's main one: a plugin's other elements load from the same URL. */
|
|
5
|
+
type?: string;
|
|
4
6
|
internalProps: InternalPropsSTG1;
|
|
5
7
|
autoRegister?: boolean;
|
|
6
8
|
plitziJsxSkipHOC?: boolean;
|
|
7
9
|
plitziJsxProps?: Record<string, unknown>;
|
|
8
10
|
};
|
|
9
|
-
declare const PluginRemote: ({ url, internalProps, autoRegister, plitziJsxSkipHOC, plitziJsxProps }: PluginRemoteProps) => import(
|
|
11
|
+
declare const PluginRemote: ({ url, type, internalProps, autoRegister, plitziJsxSkipHOC, plitziJsxProps }: PluginRemoteProps) => import('react').JSX.Element | null;
|
|
10
12
|
export default PluginRemote;
|
|
@@ -4,15 +4,15 @@ import s from "@plitzi/sdk-shared/elements/ComponentContext";
|
|
|
4
4
|
import { emptyObject as c } from "@plitzi/sdk-shared/helpers/utils";
|
|
5
5
|
import { jsx as l } from "react/jsx-runtime";
|
|
6
6
|
//#region src/Element/PluginRemote.tsx
|
|
7
|
-
var u = ({ url: u = "",
|
|
8
|
-
let { register:
|
|
9
|
-
i(() =>
|
|
10
|
-
let
|
|
11
|
-
return
|
|
12
|
-
internalProps:
|
|
13
|
-
plitziJsxSkipHOC:
|
|
14
|
-
...
|
|
15
|
-
}) }) : /* @__PURE__ */ l(t, { children: /* @__PURE__ */ l(
|
|
7
|
+
var u = ({ url: u = "", type: d, internalProps: f, autoRegister: p = !0, plitziJsxSkipHOC: m = !1, plitziJsxProps: h = c }) => {
|
|
8
|
+
let { register: g } = r(s), [_, v] = o(!1);
|
|
9
|
+
i(() => v(!0), []);
|
|
10
|
+
let y = a(() => n(e(u, g, p, m, d)), [u, d]);
|
|
11
|
+
return _ ? m ? /* @__PURE__ */ l(t, { children: /* @__PURE__ */ l(y, {
|
|
12
|
+
internalProps: f,
|
|
13
|
+
plitziJsxSkipHOC: m,
|
|
14
|
+
...h
|
|
15
|
+
}) }) : /* @__PURE__ */ l(t, { children: /* @__PURE__ */ l(y, { internalProps: f }) }) : null;
|
|
16
16
|
};
|
|
17
17
|
//#endregion
|
|
18
18
|
export { u as default };
|
|
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
export type ReplicaProviderProps = {
|
|
3
3
|
children?: ReactNode;
|
|
4
4
|
};
|
|
5
|
-
declare const ReplicaProvider: ({ children }: ReplicaProviderProps) => import(
|
|
5
|
+
declare const ReplicaProvider: ({ children }: ReplicaProviderProps) => import('react').JSX.Element;
|
|
6
6
|
export default ReplicaProvider;
|
|
@@ -19,6 +19,18 @@ var e = {
|
|
|
19
19
|
label: "Propagate Event"
|
|
20
20
|
} }
|
|
21
21
|
},
|
|
22
|
+
onPointerDown: {
|
|
23
|
+
action: "onPointerDown",
|
|
24
|
+
title: "On Pointer Down",
|
|
25
|
+
type: "trigger",
|
|
26
|
+
preview: { propagateEvent: "" },
|
|
27
|
+
params: { propagateEvent: {
|
|
28
|
+
canBind: !1,
|
|
29
|
+
defaultValue: !1,
|
|
30
|
+
type: "boolean",
|
|
31
|
+
label: "Propagate Event"
|
|
32
|
+
} }
|
|
33
|
+
},
|
|
22
34
|
onMouseEnter: {
|
|
23
35
|
action: "onMouseEnter",
|
|
24
36
|
title: "On Mouse Enter",
|
|
@@ -79,6 +91,21 @@ var e = {
|
|
|
79
91
|
label: "Propagate Event"
|
|
80
92
|
} }
|
|
81
93
|
},
|
|
94
|
+
onKey: {
|
|
95
|
+
action: "onKey",
|
|
96
|
+
title: "On Key",
|
|
97
|
+
type: "trigger",
|
|
98
|
+
preview: {
|
|
99
|
+
key: "",
|
|
100
|
+
shortcuts: ""
|
|
101
|
+
},
|
|
102
|
+
params: { keys: {
|
|
103
|
+
canBind: !1,
|
|
104
|
+
defaultValue: "",
|
|
105
|
+
type: "text",
|
|
106
|
+
label: "Keys (e.g. f, shift+f, mod+k, escape)"
|
|
107
|
+
} }
|
|
108
|
+
},
|
|
82
109
|
onFlowEnd: {
|
|
83
110
|
action: "onFlowEnd",
|
|
84
111
|
title: "On Server Action End",
|
|
@@ -116,6 +143,7 @@ var e = {
|
|
|
116
143
|
}
|
|
117
144
|
}, t = [
|
|
118
145
|
"onClick",
|
|
146
|
+
"onPointerDown",
|
|
119
147
|
"onHover",
|
|
120
148
|
"onFocus",
|
|
121
149
|
"onBlur",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { ComponentContextValue, ComponentPluginWithHOC } from '@plitzi/sdk-shared';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* A remote plugin's component, loaded from its module — the one of `type` when the element is not the plugin's main
|
|
4
|
+
* one. A plugin packs several elements into one module (the main as `default`, the others under `plugins`), and every
|
|
5
|
+
* element of it is loaded from the same URL: handing each the main component rendered the main element in all of them.
|
|
6
|
+
*/
|
|
7
|
+
declare const loadComponent: (url: string, registerCallback: ComponentContextValue["register"], autoRegister?: boolean, plitziJsxSkipHOC?: boolean, type?: string) => () => Promise<{
|
|
3
8
|
default: ComponentPluginWithHOC;
|
|
4
9
|
}>;
|
|
5
10
|
export default loadComponent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { generatePluginModule as e } from "./elementUtils.mjs";
|
|
2
2
|
import { get as t } from "@plitzi/plitzi-ui/helpers";
|
|
3
3
|
//#region src/Element/helpers/loadComponent.ts
|
|
4
|
-
var n = /* @__PURE__ */ new Map(), r = (r, i, a = !0, o = !1) => async () => {
|
|
4
|
+
var n = /* @__PURE__ */ new Map(), r = (r, i, a = !0, o = !1, s) => async () => {
|
|
5
5
|
if (!n.get(r)) {
|
|
6
6
|
let t = e(r).finally(() => {
|
|
7
7
|
n.delete(r);
|
|
@@ -11,16 +11,16 @@ var n = /* @__PURE__ */ new Map(), r = (r, i, a = !0, o = !1) => async () => {
|
|
|
11
11
|
timestamp: Date.now()
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
let
|
|
14
|
+
let c = await n.get(r)?.promise, [{ default: l }, { default: u }, { nestedInject: d }] = await Promise.all([
|
|
15
15
|
import("../hocs/withElement.mjs"),
|
|
16
16
|
import("../../elements/internal/NotFound/NotFound.mjs"),
|
|
17
17
|
import("../../Component/ComponentHelper.mjs")
|
|
18
18
|
]);
|
|
19
|
-
if (!
|
|
20
|
-
let { type:
|
|
21
|
-
if (!
|
|
22
|
-
let
|
|
23
|
-
return o || (
|
|
19
|
+
if (!c) return { default: u };
|
|
20
|
+
let { type: f, pluginSettings: p } = t(c, "default", {}), { version: m, initialItems: h, plugins: g } = c;
|
|
21
|
+
if (!f) return { default: u };
|
|
22
|
+
let _ = c.default;
|
|
23
|
+
return o || (_ = l(c.default)), _.version = m, _.origin = "remote", _.type = f, _.initialItems = h, _.pluginSettings = p, _.plugins = d(g, "remote"), a && i(_), !s || s === f ? { default: _ } : { default: (o ? g?.[s] : _.plugins[s]) ?? u };
|
|
24
24
|
};
|
|
25
25
|
//#endregion
|
|
26
26
|
export { r as default };
|
|
@@ -14,5 +14,5 @@ export declare const getRemoteSettings: ({ type, plugins }: {
|
|
|
14
14
|
}) => {
|
|
15
15
|
url: string;
|
|
16
16
|
} | undefined;
|
|
17
|
-
declare const pluginSelector: ({ key, plitziElementLayout, type, internalProps: internalPropsProp, components, plugins }: pluginSelectorProps) => import(
|
|
17
|
+
declare const pluginSelector: ({ key, plitziElementLayout, type, internalProps: internalPropsProp, components, plugins }: pluginSelectorProps) => import('react').JSX.Element | undefined;
|
|
18
18
|
export default pluginSelector;
|
|
@@ -8,7 +8,7 @@ export type WithElementProps<T> = {
|
|
|
8
8
|
extraProps?: Record<string, unknown>;
|
|
9
9
|
} & T;
|
|
10
10
|
declare const withElement: <T extends object>(WrappedComponent: FC<T>) => {
|
|
11
|
-
(props: WithElementProps<T>): import(
|
|
11
|
+
(props: WithElementProps<T>): import('react').JSX.Element;
|
|
12
12
|
displayName: string;
|
|
13
13
|
};
|
|
14
14
|
export default withElement;
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
import { useMemo as e } from "react";
|
|
2
2
|
import { useCommonStore as t } from "@plitzi/sdk-shared/store";
|
|
3
|
-
import {
|
|
3
|
+
import { templatePaths as n } from "@plitzi/sdk-shared/helpers/twigWrapper";
|
|
4
4
|
//#region src/Element/hooks/useElementDataSource.ts
|
|
5
|
-
var r = ({ source: e, transformers: t }) => {
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
var r = ({ source: e, transformers: t, when: r }) => {
|
|
6
|
+
let a = e ? [e] : [];
|
|
7
|
+
for (let { action: e, params: r } of t ?? []) e === "twigTemplate" && typeof r.template == "string" && r.template && a.push(...n(r.template).filter((e) => e !== "source" && !e.startsWith("source.")));
|
|
8
|
+
return r && a.push(...i(r)), a;
|
|
9
|
+
}, i = (e) => e.rules.flatMap((e) => "rules" in e ? i(e) : [e.field, ...e.isBinding && typeof e.value == "string" ? [e.value] : []]), a = (e) => {
|
|
10
|
+
let t = [];
|
|
11
|
+
for (let n of [...new Set(e)].filter(Boolean).sort((e, t) => e.length - t.length)) t.some((e) => n.startsWith(`${e}.`)) || t.push(n);
|
|
12
|
+
return t;
|
|
13
|
+
}, o = (e) => typeof e == "object" && !!e && !Array.isArray(e), s = (e, t, n) => {
|
|
14
|
+
let r = t.split("."), i = e;
|
|
15
|
+
for (let e of r.slice(0, -1)) {
|
|
16
|
+
let t = i[e], n = o(t) ? t : {};
|
|
17
|
+
i[e] = n, i = n;
|
|
10
18
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
let a = e(() => {
|
|
19
|
+
i[r[r.length - 1]] = n;
|
|
20
|
+
}, c = ({ bindings: n, sources: i }) => {
|
|
21
|
+
let o = e(() => {
|
|
15
22
|
let e = new Set(i ?? []);
|
|
16
23
|
for (let t of Object.values(n ?? {})) if (Array.isArray(t)) for (let n of t) for (let t of r(n)) e.add(t);
|
|
17
|
-
return e.size > 0 &&
|
|
18
|
-
}, [n, i]),
|
|
24
|
+
return e.size > 0 && e.add("variables"), a(e);
|
|
25
|
+
}, [n, i]), c = e(() => o.map((e) => `runtime.sources.${e}`), [o]), [l] = t(c);
|
|
19
26
|
return e(() => {
|
|
20
27
|
let e = {};
|
|
21
|
-
return
|
|
22
|
-
|
|
28
|
+
return o.forEach((t, n) => {
|
|
29
|
+
l[n] !== void 0 && s(e, t, l[n]);
|
|
23
30
|
}), e;
|
|
24
|
-
}, [
|
|
31
|
+
}, [o, l]);
|
|
25
32
|
};
|
|
26
33
|
//#endregion
|
|
27
|
-
export {
|
|
34
|
+
export { c as default };
|
|
@@ -8,51 +8,56 @@ import { useMemo as o } from "react";
|
|
|
8
8
|
import { useCommonStore as s } from "@plitzi/sdk-shared/store";
|
|
9
9
|
import { get as c } from "@plitzi/plitzi-ui/helpers";
|
|
10
10
|
import l from "@plitzi/sdk-shared/dataSource/getBindingsDetails";
|
|
11
|
-
import { hasValidToken as u, processTwig as d } from "@plitzi/sdk-shared/helpers/twigWrapper";
|
|
11
|
+
import { hasValidToken as u, processTwig as d, templatePaths as f } from "@plitzi/sdk-shared/helpers/twigWrapper";
|
|
12
12
|
//#region src/Element/hooks/useElementInternal.ts
|
|
13
|
-
var
|
|
14
|
-
let
|
|
15
|
-
|
|
16
|
-
...
|
|
17
|
-
...
|
|
18
|
-
|
|
19
|
-
let t = l(r, {
|
|
20
|
-
...e,
|
|
21
|
-
attributes: s
|
|
22
|
-
}, o);
|
|
23
|
-
({attributes: s, definition: f, style: o} = t);
|
|
24
|
-
}
|
|
25
|
-
let { queryParams: h = {}, routeParams: g = {}, variables: _ = {}, origin: v = "" } = r, y = {
|
|
26
|
-
..._,
|
|
27
|
-
...g,
|
|
28
|
-
...h,
|
|
13
|
+
var p = (e, t, n) => {
|
|
14
|
+
let { queryParams: r = {}, routeParams: i = {}, variables: a = {}, origin: o = "", navigation: s, ...c } = n, l = {
|
|
15
|
+
...a,
|
|
16
|
+
...i,
|
|
17
|
+
...r,
|
|
18
|
+
...c,
|
|
29
19
|
navigation: {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
35
|
-
if (Object.keys(y).length > 0) {
|
|
36
|
-
let e = {};
|
|
37
|
-
for (let t of Object.keys(s)) {
|
|
38
|
-
let n = s[t];
|
|
39
|
-
e[t] = typeof n == "string" && u(n) ? d(n, y, !0) : n;
|
|
20
|
+
...s,
|
|
21
|
+
routeParams: i,
|
|
22
|
+
queryParams: r,
|
|
23
|
+
origin: o
|
|
40
24
|
}
|
|
41
|
-
|
|
25
|
+
}, u = { ...e };
|
|
26
|
+
for (let n of t) u[n] = d(e[n], l, !0);
|
|
27
|
+
return u;
|
|
28
|
+
}, m = (e) => !!e && Object.values(e).some((e) => Array.isArray(e) && e.length > 0), h = (e, n, r = {}, i = {}) => {
|
|
29
|
+
let o, { attributes: s, definition: d } = e, { rootId: f, plitziElementLayout: h } = n;
|
|
30
|
+
n.attributes && (s = {
|
|
31
|
+
...s,
|
|
32
|
+
...n.attributes
|
|
33
|
+
});
|
|
34
|
+
let g = s;
|
|
35
|
+
if (Object.keys(r).length > 0) {
|
|
36
|
+
if (m(d.bindings)) {
|
|
37
|
+
let t = l(r, {
|
|
38
|
+
...e,
|
|
39
|
+
attributes: s
|
|
40
|
+
}, o);
|
|
41
|
+
({attributes: s, definition: d, style: o} = t);
|
|
42
|
+
} else o = {};
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
let _ = Object.keys(s).filter((e) => {
|
|
45
|
+
let t = s[e];
|
|
46
|
+
return typeof t == "string" && t === g[e] && u(t);
|
|
47
|
+
});
|
|
48
|
+
return _.length > 0 && (s = p(s, _, r)), s = {
|
|
44
49
|
...s,
|
|
45
50
|
...t(i, ["visibility", "styleSelectors"])
|
|
46
|
-
},
|
|
47
|
-
...
|
|
51
|
+
}, d = {
|
|
52
|
+
...d,
|
|
48
53
|
styleSelectors: {
|
|
49
|
-
...
|
|
50
|
-
...
|
|
54
|
+
...d.styleSelectors,
|
|
55
|
+
...d.initialState?.styleSelectors,
|
|
51
56
|
...i.styleSelectors ?? {}
|
|
52
57
|
}
|
|
53
|
-
},
|
|
58
|
+
}, d.styleSelectors = a(d), {
|
|
54
59
|
...n,
|
|
55
|
-
rootId: c(
|
|
60
|
+
rootId: c(h, "rootId", f),
|
|
56
61
|
attributes: {
|
|
57
62
|
...s,
|
|
58
63
|
...t(n, [
|
|
@@ -63,33 +68,36 @@ var f = (e, n, r = {}, i = {}) => {
|
|
|
63
68
|
"plitziElementLayout"
|
|
64
69
|
])
|
|
65
70
|
},
|
|
66
|
-
definition:
|
|
71
|
+
definition: d,
|
|
67
72
|
elementState: {
|
|
68
|
-
...
|
|
73
|
+
...d.initialState,
|
|
69
74
|
...i
|
|
70
75
|
},
|
|
71
76
|
style: o
|
|
72
77
|
};
|
|
73
|
-
},
|
|
74
|
-
let { id:
|
|
75
|
-
id:
|
|
78
|
+
}, g = (e) => Object.values(e ?? {}).filter((e) => typeof e == "string" && u(e)), _ = (e) => ["variables", ...new Set(e.flatMap((e) => f(e)))], v = ({ element: a, children: c, internalProps: l, previewMode: u = !1, parentVisible: d = !0 }) => {
|
|
79
|
+
let { id: f } = l, { state: p, setElementState: m } = r({
|
|
80
|
+
id: f,
|
|
76
81
|
bindings: a.definition.bindings,
|
|
77
82
|
previewMode: u
|
|
78
|
-
}), v = o(() =>
|
|
83
|
+
}), v = o(() => {
|
|
84
|
+
let e = [...g(a.attributes), ...g(l.attributes)];
|
|
85
|
+
return e.length > 0 ? _(e) : void 0;
|
|
86
|
+
}, [a.attributes, l.attributes]), [[y, b, x]] = s([
|
|
79
87
|
"navigation.routeParams",
|
|
80
88
|
"navigation.queryParams",
|
|
81
89
|
"navigation.origin"
|
|
82
|
-
], { enabled: v }), S = n({
|
|
90
|
+
], { enabled: v !== void 0 }), S = n({
|
|
83
91
|
bindings: a.definition.bindings,
|
|
84
|
-
sources: v
|
|
92
|
+
sources: v
|
|
85
93
|
}), C = o(() => ({
|
|
86
|
-
...
|
|
94
|
+
...h(a, l, {
|
|
87
95
|
...S,
|
|
88
96
|
routeParams: y,
|
|
89
97
|
queryParams: b,
|
|
90
98
|
origin: x
|
|
91
|
-
},
|
|
92
|
-
setElementState:
|
|
99
|
+
}, p),
|
|
100
|
+
setElementState: m
|
|
93
101
|
}), [
|
|
94
102
|
a,
|
|
95
103
|
l,
|
|
@@ -97,12 +105,12 @@ var f = (e, n, r = {}, i = {}) => {
|
|
|
97
105
|
y,
|
|
98
106
|
b,
|
|
99
107
|
x,
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
p,
|
|
109
|
+
m
|
|
102
110
|
]);
|
|
103
111
|
return {
|
|
104
112
|
internalProps: C,
|
|
105
|
-
customProps: t(C, [
|
|
113
|
+
customProps: o(() => t(C, [
|
|
106
114
|
"id",
|
|
107
115
|
"rootId",
|
|
108
116
|
"plitziElementLayout",
|
|
@@ -111,9 +119,9 @@ var f = (e, n, r = {}, i = {}) => {
|
|
|
111
119
|
"style",
|
|
112
120
|
"elementState",
|
|
113
121
|
"setElementState"
|
|
114
|
-
]),
|
|
122
|
+
]), [C]),
|
|
115
123
|
children: i({
|
|
116
|
-
id:
|
|
124
|
+
id: f,
|
|
117
125
|
definition: C.definition,
|
|
118
126
|
plitziElementLayout: C.plitziElementLayout,
|
|
119
127
|
children: c,
|
|
@@ -123,4 +131,4 @@ var f = (e, n, r = {}, i = {}) => {
|
|
|
123
131
|
};
|
|
124
132
|
};
|
|
125
133
|
//#endregion
|
|
126
|
-
export {
|
|
134
|
+
export { v as default, h as getProps };
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { isVisible as e } from "../helpers/isVisible.mjs";
|
|
2
2
|
import { useMemo as t } from "react";
|
|
3
3
|
import n from "clsx";
|
|
4
|
+
import { HIDDEN_CLASS as r } from "@plitzi/sdk-shared/style/styleStates";
|
|
4
5
|
//#region src/Element/hooks/useInternalClassName.ts
|
|
5
|
-
var
|
|
6
|
-
let { items:
|
|
7
|
-
return t(() => n(
|
|
8
|
-
|
|
9
|
-
"plitzi-component": !
|
|
10
|
-
"plitzi-component--layout": !
|
|
11
|
-
with__container: !
|
|
12
|
-
"container--empty": !
|
|
13
|
-
"container--base-element": !
|
|
14
|
-
"plitzi-component--layout-body":
|
|
15
|
-
},
|
|
16
|
-
i,
|
|
17
|
-
d,
|
|
6
|
+
var i = ({ id: i, className: a, previewMode: o, baseElementId: s, plitziElementLayout: c, definition: l, elementState: u }) => {
|
|
7
|
+
let { items: d } = l, f = e(u.visibility);
|
|
8
|
+
return t(() => n(a, {
|
|
9
|
+
[r]: !f,
|
|
10
|
+
"plitzi-component": !o && !c,
|
|
11
|
+
"plitzi-component--layout": !o && !!c,
|
|
12
|
+
with__container: !o && !!d,
|
|
13
|
+
"container--empty": !o && !!d && d.length === 0 && !c,
|
|
14
|
+
"container--base-element": !o && !!d && s === i,
|
|
15
|
+
"plitzi-component--layout-body": c && i === c.containerId
|
|
16
|
+
}, l.styleSelectors.base), [
|
|
18
17
|
a,
|
|
19
|
-
|
|
20
|
-
u,
|
|
18
|
+
f,
|
|
21
19
|
o,
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
c,
|
|
21
|
+
d,
|
|
22
|
+
s,
|
|
23
|
+
i,
|
|
24
|
+
l.styleSelectors.base
|
|
24
25
|
]);
|
|
25
26
|
};
|
|
26
27
|
//#endregion
|
|
27
|
-
export {
|
|
28
|
+
export { i as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InteractionsManager } from '@plitzi/sdk-interactions';
|
|
2
|
+
import { ElementInteraction } from '@plitzi/sdk-shared';
|
|
3
|
+
export type UseKeyTriggersProps = {
|
|
4
|
+
id: string;
|
|
5
|
+
interactions?: Record<string, ElementInteraction>;
|
|
6
|
+
previewMode: boolean;
|
|
7
|
+
interactionsManager: InteractionsManager;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* The element's keyboard shortcuts: its `onKey` flows, heard on the window for as long as it is mounted.
|
|
11
|
+
*
|
|
12
|
+
* On the window rather than the element, because a shortcut is for the page — nobody focuses a map before pressing
|
|
13
|
+
* `+`. A press while typing in a field is the field's, unless it holds Ctrl, ⌘ or Alt or is Escape — and even then
|
|
14
|
+
* the field keeps its own editing (⌘A, ⌘Z, ⌘C/⌘V, moving by word: `isFieldEditing`). A press that
|
|
15
|
+
* matches is the shortcut's alone: the browser's own use of the key (an arrow scrolling the page) does not happen.
|
|
16
|
+
*/
|
|
17
|
+
declare const useKeyTriggers: ({ id, interactions, previewMode, interactionsManager }: UseKeyTriggersProps) => void;
|
|
18
|
+
export default useKeyTriggers;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useEffect as e, useMemo as t } from "react";
|
|
2
|
+
import { KEY_TRIGGER as n, isFieldEditing as r, keyPressCombo as i, parseKeys as a } from "@plitzi/sdk-shared/helpers/keys";
|
|
3
|
+
//#region src/Element/hooks/useKeyTriggers.ts
|
|
4
|
+
var o = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"]", s = (e) => e instanceof Element && e.closest(o) !== null, c = () => /Mac|iPhone|iPad|iPod/.test(navigator.userAgent), l = ({ id: o, interactions: l, previewMode: u, interactionsManager: d }) => {
|
|
5
|
+
let f = t(() => [...new Set(Object.values(l ?? {}).flatMap((e) => {
|
|
6
|
+
let { keys: t } = e.params;
|
|
7
|
+
return e.type === "trigger" && e.action === n && e.enabled && typeof t == "string" ? [t] : [];
|
|
8
|
+
}))], [l]);
|
|
9
|
+
e(() => {
|
|
10
|
+
if (!u || !f.length) return;
|
|
11
|
+
let e = c(), t = f.map((t) => ({
|
|
12
|
+
spec: t,
|
|
13
|
+
combos: a(t, e).combos
|
|
14
|
+
})), l = (e) => {
|
|
15
|
+
if (e.isComposing) return;
|
|
16
|
+
let a = i(e), c = e.ctrlKey || e.metaKey || e.altKey;
|
|
17
|
+
if (s(e.target) && (!c && a !== "escape" || r(a))) return;
|
|
18
|
+
let l = t.filter((e) => e.combos.includes(a)).map((e) => e.spec);
|
|
19
|
+
if (!l.length) return;
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
let u = {
|
|
22
|
+
key: a,
|
|
23
|
+
shortcuts: l
|
|
24
|
+
};
|
|
25
|
+
d.interactionTrigger(o, n, u);
|
|
26
|
+
};
|
|
27
|
+
return window.addEventListener("keydown", l), () => window.removeEventListener("keydown", l);
|
|
28
|
+
}, [
|
|
29
|
+
o,
|
|
30
|
+
d,
|
|
31
|
+
u,
|
|
32
|
+
f
|
|
33
|
+
]);
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { l as default };
|