@athoscommerce/snap-preact 1.2.3-beta.3 → 1.2.3-beta.5
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/README.md +16 -0
- package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
- package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +1 -1
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -3
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +29 -27
- package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts +1 -1
- package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/Result/Result.js +11 -6
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +3 -3
- package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
- package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/TemplatesEditor/Components/Control.js +31 -31
- package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -36
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +8 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +715 -427
- package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.js +13 -3
- package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts +3 -1
- package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/MessageText.js +22 -19
- package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts +3 -1
- package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.js +40 -23
- package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.js +8 -7
- package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +2 -1
- package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -1
- package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -2
- package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts +11 -0
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/ProductQuickView.js +461 -0
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/ProductQuickView/index.js +17 -0
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -2
- package/dist/cjs/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
- package/dist/cjs/components/src/hooks/useAcRenderedInput.js +65 -15
- package/dist/cjs/components/src/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/cjs/components/src/hooks/useMediaQuery.js +3 -1
- package/dist/cjs/components/src/index.d.ts +1 -0
- package/dist/cjs/components/src/index.d.ts.map +1 -1
- package/dist/cjs/components/src/index.js +1 -0
- package/dist/cjs/components/src/providers/theme.d.ts +1 -1
- package/dist/cjs/components/src/providers/theme.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/base/base.js +3 -3
- package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
- package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +161 -123
- package/dist/cjs/src/Snap.d.ts +1 -1
- package/dist/cjs/src/Snap.d.ts.map +1 -1
- package/dist/cjs/src/Snap.js +18 -6
- package/dist/cjs/src/SnapHybrid.d.ts.map +1 -1
- package/dist/cjs/src/Templates/SnapTemplates.d.ts +13 -72
- package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/cjs/src/Templates/SnapTemplates.js +123 -72
- package/dist/cjs/src/Templates/Stores/TargetStore.d.ts +7 -6
- package/dist/cjs/src/Templates/Stores/TargetStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TargetStore.js +14 -8
- package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +58 -8
- package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +467 -96
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +123 -70
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +86 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +33 -14
- package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +93 -30
- package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateStore.js +33 -41
- package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts +2 -8
- package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/ThemeStore.js +3 -28
- package/dist/cjs/src/Templates/index.d.ts +1 -1
- package/dist/cjs/src/Templates/index.d.ts.map +1 -1
- package/dist/cjs/src/create/createChatController.js +1 -1
- package/dist/cjs/src/index.d.ts +1 -0
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/setupEvents.d.ts +13 -0
- package/dist/cjs/src/setupEvents.d.ts.map +1 -1
- package/dist/cjs/src/setupEvents.js +56 -8
- package/dist/cjs/src/types.d.ts +3 -1
- package/dist/cjs/src/types.d.ts.map +1 -1
- package/dist/cjs/src/utils/combineMerge.d.ts +2 -0
- package/dist/cjs/src/utils/combineMerge.d.ts.map +1 -0
- package/dist/cjs/src/utils/combineMerge.js +22 -0
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -1
- package/dist/cjs/src/utils/index.js +3 -1
- package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +3 -3
- package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +7 -8
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +1 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -3
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +29 -28
- package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts +1 -1
- package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.js +9 -4
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +3 -3
- package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/AbstractedControls.js +5 -5
- package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/TemplatesEditor/Components/Control.js +29 -29
- package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +22 -35
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +8 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.js +636 -359
- package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/ChatResult.js +13 -3
- package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts +3 -1
- package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/MessageText.js +21 -19
- package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts +3 -1
- package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/MessageUser.js +37 -23
- package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.js +8 -7
- package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -1
- package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +1 -1
- package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -2
- package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts +11 -0
- package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/ProductQuickView/ProductQuickView.js +436 -0
- package/dist/esm/components/src/components/Organisms/ProductQuickView/index.d.ts +2 -0
- package/dist/esm/components/src/components/Organisms/ProductQuickView/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/ProductQuickView/index.js +1 -0
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -2
- package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
- package/dist/esm/components/src/hooks/useAcRenderedInput.js +61 -11
- package/dist/esm/components/src/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/esm/components/src/hooks/useMediaQuery.js +3 -1
- package/dist/esm/components/src/index.d.ts +1 -0
- package/dist/esm/components/src/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.js +1 -0
- package/dist/esm/components/src/providers/theme.d.ts +1 -1
- package/dist/esm/components/src/providers/theme.d.ts.map +1 -1
- package/dist/esm/components/src/themes/base/base.js +3 -3
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
- package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
- package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/esm/src/Instantiators/RecommendationInstantiator.js +130 -84
- package/dist/esm/src/Snap.d.ts +1 -1
- package/dist/esm/src/Snap.d.ts.map +1 -1
- package/dist/esm/src/Snap.js +21 -6
- package/dist/esm/src/SnapHybrid.d.ts.map +1 -1
- package/dist/esm/src/Templates/SnapTemplates.d.ts +13 -72
- package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/esm/src/Templates/SnapTemplates.js +137 -78
- package/dist/esm/src/Templates/Stores/TargetStore.d.ts +7 -6
- package/dist/esm/src/Templates/Stores/TargetStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TargetStore.js +14 -8
- package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts +58 -8
- package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +447 -89
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts +1 -0
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/autocompleteControllerUI.js +118 -66
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +9 -3
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts +1 -0
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/searchControllerUI.js +82 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/themeUI.js +27 -8
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +93 -30
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateStore.js +29 -38
- package/dist/esm/src/Templates/Stores/ThemeStore.d.ts +2 -8
- package/dist/esm/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/ThemeStore.js +3 -26
- package/dist/esm/src/Templates/index.d.ts +1 -1
- package/dist/esm/src/Templates/index.d.ts.map +1 -1
- package/dist/esm/src/create/createChatController.js +1 -1
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/setupEvents.d.ts +13 -0
- package/dist/esm/src/setupEvents.d.ts.map +1 -1
- package/dist/esm/src/setupEvents.js +25 -8
- package/dist/esm/src/types.d.ts +3 -1
- package/dist/esm/src/types.d.ts.map +1 -1
- package/dist/esm/src/utils/combineMerge.d.ts +2 -0
- package/dist/esm/src/utils/combineMerge.d.ts.map +1 -0
- package/dist/esm/src/utils/combineMerge.js +16 -0
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js +1 -0
- package/package.json +20 -14
|
@@ -1,82 +1,23 @@
|
|
|
1
1
|
import { Snap } from '../Snap';
|
|
2
2
|
import { TemplatesStore } from './Stores/TemplateStore';
|
|
3
|
-
import { type
|
|
3
|
+
import { type AutocompleteStoreConfigSettings } from '@athoscommerce/snap-store-mobx';
|
|
4
4
|
import type { UrlTranslatorConfig } from '@athoscommerce/snap-url-manager';
|
|
5
5
|
import type { PluginGrouping } from '@athoscommerce/snap-controller';
|
|
6
|
-
import type {
|
|
6
|
+
import type { RecommendationComponentObject } from '../Instantiators/RecommendationInstantiator';
|
|
7
7
|
import type { SnapFeatures } from '../types';
|
|
8
8
|
import type { SnapConfig, ExtendedTarget } from '../Snap';
|
|
9
|
-
import type {
|
|
10
|
-
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const TEMPLATE_EDITOR_PARAM = "athos-editor";
|
|
13
|
-
export type SearchTargetConfig = {
|
|
14
|
-
selector: string;
|
|
15
|
-
component: keyof LibraryImports['component']['search'];
|
|
16
|
-
};
|
|
17
|
-
export type AutocompleteTargetConfig = {
|
|
18
|
-
selector: string;
|
|
19
|
-
inputSelector?: string;
|
|
20
|
-
component: keyof LibraryImports['component']['autocomplete'];
|
|
21
|
-
};
|
|
22
|
-
export type RecommendationDefaultTargetConfig = {
|
|
23
|
-
component: keyof LibraryImports['component']['recommendation']['default'];
|
|
24
|
-
};
|
|
25
|
-
export type RecommendationEmailTargetConfig = {
|
|
26
|
-
component: keyof LibraryImports['component']['recommendation']['email'];
|
|
27
|
-
};
|
|
28
|
-
export type RecommendationBundleTargetConfig = {
|
|
29
|
-
component: keyof LibraryImports['component']['recommendation']['bundle'];
|
|
30
|
-
};
|
|
31
|
-
export type ChatTargetConfig = {
|
|
32
|
-
selector: string;
|
|
33
|
-
component: keyof LibraryImports['component']['chat'];
|
|
34
|
-
};
|
|
9
|
+
import type { TemplatesStoreConfigLocked, TemplatesStoreConfigUnlocked } from './Stores/TemplateStore';
|
|
10
|
+
export declare const TEMPLATE_EDITOR_COOKIE = "athosEditor";
|
|
11
|
+
export declare const TEMPLATE_EDITOR_UI_PARAM = "athos-editor";
|
|
35
12
|
export type SnapTemplatesConfig = SnapTemplatesConfigLocked;
|
|
36
|
-
export type
|
|
37
|
-
unlocked
|
|
13
|
+
export type SnapTemplatesConfigUnlocked = TemplatesStoreConfigUnlocked & {
|
|
14
|
+
unlocked: true;
|
|
38
15
|
url?: UrlTranslatorConfig;
|
|
39
16
|
features?: SnapFeatures;
|
|
40
|
-
search?: {
|
|
41
|
-
targets: SearchTargetConfig[];
|
|
42
|
-
settings?: SearchStoreConfigSettings;
|
|
43
|
-
plugins?: PluginsConfigs;
|
|
44
|
-
};
|
|
45
|
-
autocomplete?: {
|
|
46
|
-
targets: AutocompleteTargetConfig[];
|
|
47
|
-
settings?: AutocompleteStoreConfigSettings;
|
|
48
|
-
plugins?: PluginsConfigs;
|
|
49
|
-
};
|
|
50
|
-
recommendation?: {
|
|
51
|
-
email?: {
|
|
52
|
-
[profileComponentName: string]: RecommendationEmailTargetConfig;
|
|
53
|
-
};
|
|
54
|
-
default?: {
|
|
55
|
-
[profileComponentName: string]: RecommendationDefaultTargetConfig;
|
|
56
|
-
};
|
|
57
|
-
bundle?: {
|
|
58
|
-
[profileComponentName: string]: RecommendationBundleTargetConfig;
|
|
59
|
-
};
|
|
60
|
-
settings?: RecommendationInstantiatorConfigSettings;
|
|
61
|
-
plugins?: PluginsConfigs;
|
|
62
|
-
};
|
|
63
|
-
chat?: {
|
|
64
|
-
targets: ChatTargetConfig[];
|
|
65
|
-
settings?: ChatStoreConfigSettings;
|
|
66
|
-
plugins?: PluginsConfigs;
|
|
67
|
-
};
|
|
68
17
|
};
|
|
69
|
-
export type
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
plugins?: PluginsConfigsUnlocked;
|
|
73
|
-
};
|
|
74
|
-
autocomplete?: Omit<NonNullable<SnapTemplatesConfigLocked['autocomplete']>, 'plugins'> & {
|
|
75
|
-
plugins?: PluginsConfigsUnlocked;
|
|
76
|
-
};
|
|
77
|
-
recommendation?: Omit<NonNullable<SnapTemplatesConfigLocked['recommendation']>, 'plugins'> & {
|
|
78
|
-
plugins?: PluginsConfigsUnlocked;
|
|
79
|
-
};
|
|
18
|
+
export type SnapTemplatesConfigLocked = TemplatesStoreConfigLocked & {
|
|
19
|
+
url?: UrlTranslatorConfig;
|
|
20
|
+
features?: SnapFeatures;
|
|
80
21
|
};
|
|
81
22
|
export declare const DEFAULT_FEATURES: SnapFeatures;
|
|
82
23
|
export declare const DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS: AutocompleteStoreConfigSettings;
|
|
@@ -87,9 +28,9 @@ export declare class SnapTemplates extends Snap {
|
|
|
87
28
|
export declare function mapBreakpoints<ControllerConfigSettings>(breakpointsKeys: number[], breakpointSettings: ControllerConfigSettings[]): {
|
|
88
29
|
[key: string]: ControllerConfigSettings | Record<string, never>;
|
|
89
30
|
};
|
|
90
|
-
export declare const createSearchTargeters: (templateConfig: SnapTemplatesConfig
|
|
91
|
-
export declare const createChatTargeters: (templateConfig: SnapTemplatesConfig
|
|
92
|
-
export declare function createAutocompleteTargeters(templateConfig: SnapTemplatesConfig
|
|
31
|
+
export declare const createSearchTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
|
|
32
|
+
export declare const createChatTargeters: (templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore) => ExtendedTarget[];
|
|
33
|
+
export declare function createAutocompleteTargeters(templateConfig: SnapTemplatesConfig, templatesStore: TemplatesStore): ExtendedTarget[];
|
|
93
34
|
export declare function createRecommendationComponentMapping(templateConfig: SnapTemplatesConfig | SnapTemplatesConfigUnlocked, templatesStore: TemplatesStore): {
|
|
94
35
|
[name: string]: RecommendationComponentObject;
|
|
95
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapTemplates.d.ts","sourceRoot":"","sources":["../../../../src/Templates/SnapTemplates.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"SnapTemplates.d.ts","sourceRoot":"","sources":["../../../../src/Templates/SnapTemplates.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B,OAAO,EAAkB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAA0C,cAAc,EAAoB,MAAM,gCAAgC,CAAC;AAC/H,OAAO,KAAK,EAAE,6BAA6B,EAAoC,MAAM,6CAA6C,CAAC;AACnI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAOX,0BAA0B,EAC1B,4BAA4B,EAE5B,MAAM,wBAAwB,CAAC;AAoChC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,MAAM,2BAA2B,GAAG,4BAA4B,GAAG;IACxE,QAAQ,EAAE,IAAI,CAAC;IACf,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG;IACpE,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAwBF,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAC;AAEjD,eAAO,MAAM,wCAAwC,EAAE,+BAItD,CAAC;AAEF,qBAAa,aAAc,SAAQ,IAAI;IACtC,SAAS,EAAE,cAAc,CAAC;gBACd,MAAM,EAAE,mBAAmB,GAAG,2BAA2B;CAoGrE;AAED,wBAAgB,cAAc,CAAC,wBAAwB,EACtD,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,wBAAwB,EAAE,GAC5C;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,CAKrE;AAED,eAAO,MAAM,qBAAqB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EAoCzH,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,mBAAmB,kBAAkB,cAAc,KAAG,cAAc,EA2CvH,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,GAAG,cAAc,EAAE,CAqCjI;AAED,wBAAgB,oCAAoC,CACnD,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,GAC5B;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;CAAE,CAiDnD;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EAAE,cAAc,EAAE,cAAc,GAAG,UAAU,CA0J9I;AAED,wBAAgB,aAAa,CAC5B,cAAc,EAAE,mBAAmB,GAAG,2BAA2B,EACjE,cAAc,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,GACpE,cAAc,EAAE,CAmFlB"}
|
|
@@ -3,10 +3,11 @@ import { render } from 'preact';
|
|
|
3
3
|
import deepmerge from 'deepmerge';
|
|
4
4
|
import { Snap } from '../Snap';
|
|
5
5
|
import { TemplateSelect } from '../../components/src/components/Atoms/TemplateSelect';
|
|
6
|
-
import { DomTargeter, url, cookies, version } from '@athoscommerce/snap-toolbox';
|
|
6
|
+
import { DomTargeter, url, cookies, version, getContext } from '@athoscommerce/snap-toolbox';
|
|
7
7
|
import { TemplatesStore } from './Stores/TemplateStore';
|
|
8
|
-
|
|
9
|
-
export const
|
|
8
|
+
import { combineMerge } from '../utils';
|
|
9
|
+
export const TEMPLATE_EDITOR_COOKIE = 'athosEditor';
|
|
10
|
+
export const TEMPLATE_EDITOR_UI_PARAM = 'athos-editor';
|
|
10
11
|
export const DEFAULT_FEATURES = {};
|
|
11
12
|
export const DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = {
|
|
12
13
|
trending: {
|
|
@@ -15,61 +16,79 @@ export const DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = {
|
|
|
15
16
|
};
|
|
16
17
|
export class SnapTemplates extends Snap {
|
|
17
18
|
constructor(config) {
|
|
19
|
+
let context = {};
|
|
20
|
+
try {
|
|
21
|
+
context = getContext(['editor']);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
context = {};
|
|
25
|
+
}
|
|
26
|
+
const { editor } = context;
|
|
18
27
|
const urlParams = url(window.location.href);
|
|
19
|
-
const
|
|
28
|
+
const editorCookieValue = cookies.get(TEMPLATE_EDITOR_COOKIE);
|
|
29
|
+
const editUIMode = Boolean((urlParams?.params?.query && TEMPLATE_EDITOR_UI_PARAM in urlParams.params.query) || editorCookieValue === 'ui' || editor?.mode === 'ui');
|
|
30
|
+
const editMode = Boolean(editorCookieValue) || editUIMode || Boolean(editor?.mode === 'headless');
|
|
20
31
|
const templatesStore = new TemplatesStore({ config, settings: { editMode } });
|
|
21
32
|
const snapConfig = createSnapConfig(config, templatesStore);
|
|
22
33
|
super(snapConfig, { templatesStore });
|
|
23
34
|
this.templates = templatesStore;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
35
|
+
setTimeout(async () => {
|
|
36
|
+
if (editMode) {
|
|
37
|
+
// create templateditor store
|
|
27
38
|
// preload the library
|
|
28
39
|
await templatesStore.preLoad();
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
// create editor store and register controllers
|
|
41
|
+
const TemplateEditorStore = (await import('./Stores/TemplateEditor/TemplateEditorStore')).TemplateEditorStore;
|
|
42
|
+
const templateEditorStore = new TemplateEditorStore({ templatesStore });
|
|
43
|
+
// attach to the window object
|
|
44
|
+
window.athos = window.athos || {};
|
|
45
|
+
window.athos.editor = templateEditorStore;
|
|
46
|
+
const searchController = this.controllers['search'];
|
|
47
|
+
const autocompleteController = this.controllers['autocomplete'];
|
|
48
|
+
if (searchController) {
|
|
49
|
+
templateEditorStore.registerController(searchController);
|
|
50
|
+
}
|
|
51
|
+
if (autocompleteController) {
|
|
52
|
+
templateEditorStore.registerController(autocompleteController);
|
|
53
|
+
}
|
|
54
|
+
// render ui editor
|
|
55
|
+
if (editUIMode) {
|
|
56
|
+
cookies.set(TEMPLATE_EDITOR_COOKIE, 'ui');
|
|
57
|
+
new DomTargeter([
|
|
58
|
+
{
|
|
59
|
+
selector: 'body',
|
|
60
|
+
inject: {
|
|
61
|
+
action: 'append',
|
|
62
|
+
element: () => {
|
|
63
|
+
const themeEditContainer = document.createElement('div');
|
|
64
|
+
themeEditContainer.id = 'athos-template-editor';
|
|
65
|
+
return themeEditContainer;
|
|
66
|
+
},
|
|
38
67
|
},
|
|
39
68
|
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
69
|
+
], async (target, elem) => {
|
|
70
|
+
try {
|
|
71
|
+
const TemplateEditor = (await import('../../components/src')).TemplatesEditor;
|
|
72
|
+
render(_jsx(TemplateEditor, { templatesStore: templatesStore, editorStore: templateEditorStore, snap: this, onRemoveClick: () => {
|
|
73
|
+
cookies.unset(TEMPLATE_EDITOR_COOKIE);
|
|
74
|
+
const urlState = url(window.location.href);
|
|
75
|
+
delete urlState?.params.query[TEMPLATE_EDITOR_UI_PARAM];
|
|
76
|
+
const newUrl = urlState?.url();
|
|
77
|
+
if (newUrl && newUrl != window.location.href) {
|
|
78
|
+
window.location.href = newUrl;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
window.location.reload();
|
|
82
|
+
}
|
|
83
|
+
} }), elem);
|
|
50
84
|
}
|
|
51
|
-
|
|
52
|
-
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.error('Error rendering TemplateEditor:', error);
|
|
53
87
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const newUrl = urlState?.url();
|
|
59
|
-
if (newUrl && newUrl != window.location.href) {
|
|
60
|
-
window.location.href = newUrl;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
window.location.reload();
|
|
64
|
-
}
|
|
65
|
-
} }), elem);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
console.error('Error rendering TemplateEditor:', error);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
73
92
|
}
|
|
74
93
|
}
|
|
75
94
|
export function mapBreakpoints(breakpointsKeys, breakpointSettings) {
|
|
@@ -79,40 +98,63 @@ export function mapBreakpoints(breakpointsKeys, breakpointSettings) {
|
|
|
79
98
|
}, {});
|
|
80
99
|
}
|
|
81
100
|
export const createSearchTargeters = (templateConfig, templatesStore) => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
101
|
+
// initial target configs
|
|
102
|
+
const targetConfigs = templateConfig.search?.targets || [];
|
|
103
|
+
let mergedConfigs;
|
|
104
|
+
if (templatesStore.settings.editMode) {
|
|
105
|
+
const overrideConfigs = (templatesStore.storage.get('overrides.targets.search') || []);
|
|
106
|
+
mergedConfigs = deepmerge(targetConfigs, overrideConfigs, { arrayMerge: combineMerge });
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
mergedConfigs = targetConfigs;
|
|
110
|
+
}
|
|
111
|
+
// loop through mergedConfigs ---
|
|
112
|
+
return mergedConfigs.map((targetConfig) => {
|
|
113
|
+
const target = templatesStore.addTarget({ ...targetConfig, type: 'search' });
|
|
114
|
+
// const overrideTemplateStoreTarget = templatesStore.getTarget('search', target.index);
|
|
115
|
+
// console.log("templatesStore", templatesStore)
|
|
116
|
+
// console.log('selector', targetConfig.selector);
|
|
117
|
+
// console.log('overrideTemplateStoreTarget', overrideTemplateStoreTarget);
|
|
85
118
|
const targeter = {
|
|
86
|
-
selector:
|
|
119
|
+
selector: targetConfig.selector,
|
|
87
120
|
hideTarget: true,
|
|
88
121
|
component: async () => {
|
|
89
122
|
const componentImportPromises = [];
|
|
90
|
-
componentImportPromises.push(templatesStore.library.import.component.search[
|
|
123
|
+
componentImportPromises.push(templatesStore.library.import.component.search[targetConfig.component]());
|
|
91
124
|
await Promise.all(componentImportPromises);
|
|
92
125
|
return TemplateSelect;
|
|
93
126
|
},
|
|
94
|
-
props: {
|
|
127
|
+
props: { target, templatesStore },
|
|
95
128
|
};
|
|
96
129
|
return targeter;
|
|
97
130
|
});
|
|
98
131
|
};
|
|
99
132
|
export const createChatTargeters = (templateConfig, templatesStore) => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
133
|
+
// initial target configs
|
|
134
|
+
const targetConfigs = templateConfig.chat?.targets || [];
|
|
135
|
+
let mergedConfigs;
|
|
136
|
+
if (templatesStore.settings.editMode) {
|
|
137
|
+
const overrideConfigs = (templatesStore.storage.get('overrides.targets.chat') || []);
|
|
138
|
+
mergedConfigs = deepmerge(targetConfigs, overrideConfigs, { arrayMerge: combineMerge });
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
mergedConfigs = targetConfigs;
|
|
142
|
+
}
|
|
143
|
+
return mergedConfigs.map((targetConfig) => {
|
|
144
|
+
const target = templatesStore.addTarget({ ...targetConfig, type: 'chat' });
|
|
103
145
|
const targeter = {
|
|
104
|
-
selector:
|
|
146
|
+
selector: targetConfig.selector,
|
|
105
147
|
hideTarget: true,
|
|
106
148
|
component: async () => {
|
|
107
149
|
const componentImportPromises = [];
|
|
108
|
-
componentImportPromises.push(templatesStore.library.import.component.chat[
|
|
150
|
+
componentImportPromises.push(templatesStore.library.import.component.chat[targetConfig.component]());
|
|
109
151
|
await Promise.all(componentImportPromises);
|
|
110
152
|
return TemplateSelect;
|
|
111
153
|
},
|
|
112
|
-
props: {
|
|
154
|
+
props: { target, templatesStore },
|
|
113
155
|
};
|
|
114
156
|
// temporary change to allow injecting into body to append target
|
|
115
|
-
if (
|
|
157
|
+
if (targetConfig.selector == 'body') {
|
|
116
158
|
targeter.hideTarget = false;
|
|
117
159
|
targeter.inject = {
|
|
118
160
|
action: 'append',
|
|
@@ -127,22 +169,36 @@ export const createChatTargeters = (templateConfig, templatesStore) => {
|
|
|
127
169
|
});
|
|
128
170
|
};
|
|
129
171
|
export function createAutocompleteTargeters(templateConfig, templatesStore) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
172
|
+
// initial target configs
|
|
173
|
+
const targetConfigs = templateConfig.autocomplete?.targets || [];
|
|
174
|
+
let mergedConfigs;
|
|
175
|
+
if (templatesStore.settings.editMode) {
|
|
176
|
+
const overrideConfigs = (templatesStore.storage.get('overrides.targets.autocomplete') || []);
|
|
177
|
+
mergedConfigs = deepmerge(targetConfigs, overrideConfigs, { arrayMerge: combineMerge });
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
mergedConfigs = targetConfigs;
|
|
181
|
+
}
|
|
182
|
+
// load target override from localstorage OR from the editorStore (would be better);
|
|
183
|
+
return mergedConfigs.map((targetConfig) => {
|
|
184
|
+
const target = templatesStore.addTarget({ ...targetConfig, type: 'autocomplete', selector: targetConfig.selector || targetConfig.inputSelector });
|
|
133
185
|
const targeter = {
|
|
134
|
-
selector:
|
|
186
|
+
selector: targetConfig.selector || targetConfig.inputSelector,
|
|
135
187
|
component: async () => {
|
|
136
188
|
const componentImportPromises = [];
|
|
137
|
-
componentImportPromises.push(templatesStore.library.import.component.autocomplete[
|
|
189
|
+
componentImportPromises.push(templatesStore.library.import.component.autocomplete[targetConfig.component]());
|
|
138
190
|
await Promise.all(componentImportPromises);
|
|
139
191
|
return TemplateSelect;
|
|
140
192
|
},
|
|
141
|
-
props: {
|
|
193
|
+
props: {
|
|
194
|
+
target,
|
|
195
|
+
templatesStore,
|
|
196
|
+
//only set input if selector and inputSelector are different. else bind to orinalElem
|
|
197
|
+
...(targetConfig.selector && targetConfig.selector !== targetConfig.inputSelector ? { input: targetConfig.inputSelector } : {}),
|
|
198
|
+
},
|
|
142
199
|
hideTarget: true,
|
|
200
|
+
createControllerBeforeTargeting: templatesStore.settings.editMode,
|
|
143
201
|
};
|
|
144
|
-
if (target.inputSelector)
|
|
145
|
-
targeter.props.input = target.inputSelector;
|
|
146
202
|
return targeter;
|
|
147
203
|
});
|
|
148
204
|
}
|
|
@@ -152,38 +208,41 @@ export function createRecommendationComponentMapping(templateConfig, templatesSt
|
|
|
152
208
|
.filter((key) => ['default', 'email', 'bundle'].includes(key))
|
|
153
209
|
.reduce((mapping, type) => {
|
|
154
210
|
const recsType = type;
|
|
155
|
-
Object.keys(templateConfig.recommendation[recsType] || {}).forEach((targetName) => {
|
|
211
|
+
Object.keys(templateConfig.recommendation[recsType] || {}).forEach((targetName, index) => {
|
|
156
212
|
const type = `recommendation/${recsType}`;
|
|
157
|
-
const
|
|
213
|
+
const targetConfig = {
|
|
214
|
+
...templateConfig.recommendation[recsType][targetName],
|
|
215
|
+
index,
|
|
216
|
+
type,
|
|
217
|
+
};
|
|
158
218
|
const mappedConfig = {
|
|
159
219
|
component: async () => {
|
|
160
220
|
const componentImportPromises = [];
|
|
161
221
|
switch (recsType) {
|
|
162
222
|
case 'default': {
|
|
163
223
|
const importLocation = templatesStore.library.import.component.recommendation.default;
|
|
164
|
-
componentImportPromises.push(importLocation[
|
|
224
|
+
componentImportPromises.push(importLocation[targetConfig.component]());
|
|
165
225
|
break;
|
|
166
226
|
}
|
|
167
227
|
case 'bundle': {
|
|
168
228
|
const importLocation = templatesStore.library.import.component.recommendation.bundle;
|
|
169
|
-
componentImportPromises.push(importLocation[
|
|
229
|
+
componentImportPromises.push(importLocation[targetConfig.component]());
|
|
170
230
|
break;
|
|
171
231
|
}
|
|
172
232
|
case 'email': {
|
|
173
233
|
const importLocation = templatesStore.library.import.component.recommendation.email;
|
|
174
|
-
componentImportPromises.push(importLocation[
|
|
234
|
+
componentImportPromises.push(importLocation[targetConfig.component]());
|
|
175
235
|
break;
|
|
176
236
|
}
|
|
177
237
|
}
|
|
178
238
|
await Promise.all(componentImportPromises);
|
|
179
239
|
return TemplateSelect;
|
|
180
240
|
},
|
|
181
|
-
props: {
|
|
241
|
+
props: { templatesStore },
|
|
182
242
|
onTarget: function (domTarget, elem, injectedElem, controller) {
|
|
183
|
-
|
|
184
|
-
const targetId = templatesStore.addTarget(type, target);
|
|
243
|
+
targetConfig.selector = `#${controller.id}`;
|
|
185
244
|
this.props = this.props || {};
|
|
186
|
-
this.props.
|
|
245
|
+
this.props.target = templatesStore.addTarget(targetConfig);
|
|
187
246
|
},
|
|
188
247
|
};
|
|
189
248
|
mapping[targetName] = mappedConfig;
|
|
@@ -243,7 +302,7 @@ export function createSnapConfig(templateConfig, templatesStore) {
|
|
|
243
302
|
config: {
|
|
244
303
|
id: 'autocomplete',
|
|
245
304
|
plugins: createPlugins(templateConfig, templatesStore, 'autocomplete'),
|
|
246
|
-
selector: templateConfig.autocomplete.targets.map((target) => target.inputSelector
|
|
305
|
+
selector: templateConfig.autocomplete.targets.map((target) => target.inputSelector).join(', '),
|
|
247
306
|
settings: autocompleteControllerSettings,
|
|
248
307
|
},
|
|
249
308
|
targeters: createAutocompleteTargeters(templateConfig, templatesStore),
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { TemplateTarget, type
|
|
1
|
+
import { TemplateTarget, type TemplateTypes, type TemplateThemeTypes } from './TemplateStore';
|
|
2
2
|
export declare const GLOBAL_THEME_NAME = "global";
|
|
3
3
|
type TargetStoreConfig = {
|
|
4
|
-
target: TemplateTarget
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
target: TemplateTarget & {
|
|
5
|
+
index: number;
|
|
6
|
+
};
|
|
7
7
|
};
|
|
8
8
|
export declare class TargetStore {
|
|
9
|
+
index: number;
|
|
10
|
+
type: TemplateTypes;
|
|
9
11
|
selector: string;
|
|
10
12
|
component: string;
|
|
11
13
|
theme: {
|
|
12
14
|
location: TemplateThemeTypes;
|
|
13
15
|
name: string;
|
|
14
16
|
};
|
|
15
|
-
private dependencies;
|
|
16
17
|
constructor(params: TargetStoreConfig);
|
|
17
|
-
|
|
18
|
+
setValue(name: string, value: string): void;
|
|
18
19
|
setTheme(themeName: string, location: TemplateThemeTypes): void;
|
|
19
20
|
}
|
|
20
21
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/Templates/Stores/TargetStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"TargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/Templates/Stores/TargetStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,KAAK,iBAAiB,GAAG;IACxB,MAAM,EAAE,cAAc,GAAG;QACxB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF,CAAC;AACF,qBAAa,WAAW;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACb,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;gBAEU,MAAM,EAAE,iBAAiB;IAmB9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAWpC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB;CAM/D"}
|
|
@@ -2,11 +2,12 @@ import { observable, makeObservable } from 'mobx';
|
|
|
2
2
|
export const GLOBAL_THEME_NAME = 'global';
|
|
3
3
|
export class TargetStore {
|
|
4
4
|
constructor(params) {
|
|
5
|
-
const { target
|
|
6
|
-
this.
|
|
5
|
+
const { target } = params;
|
|
6
|
+
this.index = target.index;
|
|
7
|
+
this.type = target.type;
|
|
7
8
|
this.selector = target.selector || '';
|
|
8
|
-
this.component =
|
|
9
|
-
this.theme =
|
|
9
|
+
this.component = target.component || '';
|
|
10
|
+
this.theme = {
|
|
10
11
|
location: 'local',
|
|
11
12
|
name: GLOBAL_THEME_NAME,
|
|
12
13
|
};
|
|
@@ -16,15 +17,20 @@ export class TargetStore {
|
|
|
16
17
|
theme: observable,
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
setValue(name, value) {
|
|
21
|
+
switch (name) {
|
|
22
|
+
case 'selector':
|
|
23
|
+
this.selector = value;
|
|
24
|
+
break;
|
|
25
|
+
case 'component':
|
|
26
|
+
this.component = value;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
22
29
|
}
|
|
23
30
|
setTheme(themeName, location) {
|
|
24
31
|
this.theme = {
|
|
25
32
|
location,
|
|
26
33
|
name: themeName,
|
|
27
34
|
};
|
|
28
|
-
this.dependencies.storage.set(['templates', this.selector, 'theme'], this.theme);
|
|
29
35
|
}
|
|
30
36
|
}
|
|
@@ -1,35 +1,62 @@
|
|
|
1
|
-
import { AutocompleteStoreConfigSettings, SearchStoreConfigSettings
|
|
2
|
-
import {
|
|
1
|
+
import { AutocompleteStoreConfigSettings, SearchStoreConfigSettings } from '@athoscommerce/snap-store-mobx';
|
|
2
|
+
import { StorageStore } from '@athoscommerce/snap-toolbox';
|
|
3
|
+
import { TemplatesStore, TemplateTarget } from '../TemplateStore';
|
|
3
4
|
import { AutocompleteController, SearchController } from '@athoscommerce/snap-controller';
|
|
4
5
|
import type { AbstractionGroup } from '../../../types';
|
|
5
|
-
import { ThemeVariables, ThemeVariablesPartial } from '../../../../components/src';
|
|
6
|
+
import { ThemeVariables, ThemeVariablesPartial, ThemeResponsiveComplete } from '../../../../components/src';
|
|
6
7
|
import { TargetStore } from '../TargetStore';
|
|
7
|
-
import { SnapTemplatesConfig
|
|
8
|
+
import { SnapTemplatesConfig } from '../../SnapTemplates';
|
|
8
9
|
import { CurrencyCodes, LanguageCodes } from '../LibraryStore';
|
|
9
10
|
export type EditorTabs = 'templates' | 'configuration';
|
|
10
|
-
type
|
|
11
|
+
type EditorStoredState = {
|
|
11
12
|
hidden: boolean;
|
|
12
13
|
activeTab: EditorTabs;
|
|
13
14
|
};
|
|
15
|
+
type EditorState = {
|
|
16
|
+
activeDomSelector: string;
|
|
17
|
+
};
|
|
14
18
|
type EditorControllerConfigs = {
|
|
15
19
|
search?: SearchStoreConfigSettings;
|
|
16
20
|
autocomplete?: AutocompleteStoreConfigSettings;
|
|
17
21
|
};
|
|
22
|
+
type EditorTargets = {
|
|
23
|
+
search: Partial<TemplateTarget>[];
|
|
24
|
+
autocomplete: Partial<TemplateTarget>[];
|
|
25
|
+
};
|
|
18
26
|
type EditorInitialThemeConfig = {
|
|
19
27
|
extends: string;
|
|
20
28
|
variables: ThemeVariables;
|
|
29
|
+
overrides?: ThemeResponsiveComplete;
|
|
21
30
|
};
|
|
22
31
|
type EditorOverridesThemeConfig = {
|
|
23
32
|
extends?: string;
|
|
24
33
|
variables?: ThemeVariablesPartial;
|
|
34
|
+
overrides?: ThemeResponsiveComplete;
|
|
35
|
+
};
|
|
36
|
+
type SourceControl = {
|
|
37
|
+
initial?: boolean;
|
|
38
|
+
overrides?: boolean;
|
|
39
|
+
};
|
|
40
|
+
type GenerateTemplatesConfigOptions = {
|
|
41
|
+
config?: boolean | SourceControl;
|
|
42
|
+
theme?: boolean | {
|
|
43
|
+
extends?: boolean | SourceControl;
|
|
44
|
+
variables?: boolean | SourceControl;
|
|
45
|
+
overrides?: boolean | SourceControl;
|
|
46
|
+
};
|
|
47
|
+
search?: boolean;
|
|
48
|
+
autocomplete?: boolean;
|
|
49
|
+
unlocked?: boolean;
|
|
25
50
|
};
|
|
26
51
|
export declare class TemplateEditorStore {
|
|
27
52
|
storage: StorageStore;
|
|
53
|
+
storedState: EditorStoredState;
|
|
28
54
|
state: EditorState;
|
|
29
55
|
overrides: {
|
|
30
56
|
config: SnapTemplatesConfig['config'];
|
|
31
57
|
controller: EditorControllerConfigs;
|
|
32
58
|
theme: EditorOverridesThemeConfig;
|
|
59
|
+
targets: EditorTargets;
|
|
33
60
|
};
|
|
34
61
|
initial: {
|
|
35
62
|
config: SnapTemplatesConfig['config'] & {
|
|
@@ -38,6 +65,7 @@ export declare class TemplateEditorStore {
|
|
|
38
65
|
};
|
|
39
66
|
controller: EditorControllerConfigs;
|
|
40
67
|
theme: EditorInitialThemeConfig;
|
|
68
|
+
targets: EditorTargets;
|
|
41
69
|
};
|
|
42
70
|
tabs: EditorTabs[];
|
|
43
71
|
templatesStore: TemplatesStore;
|
|
@@ -50,12 +78,30 @@ export declare class TemplateEditorStore {
|
|
|
50
78
|
search: AbstractionGroup<SearchController>[];
|
|
51
79
|
autocomplete: AbstractionGroup<AutocompleteController>[];
|
|
52
80
|
};
|
|
81
|
+
targets: {
|
|
82
|
+
search?: AbstractionGroup<number>[];
|
|
83
|
+
autocomplete?: AbstractionGroup<number>[];
|
|
84
|
+
};
|
|
53
85
|
};
|
|
54
86
|
constructor({ templatesStore }: {
|
|
55
87
|
templatesStore: TemplatesStore;
|
|
56
88
|
});
|
|
57
89
|
switchTabs(tab: EditorTabs): void;
|
|
58
90
|
toggleHide(hide: boolean): void;
|
|
91
|
+
setOverrides(overrides: {
|
|
92
|
+
config?: SnapTemplatesConfig['config'];
|
|
93
|
+
theme?: EditorOverridesThemeConfig;
|
|
94
|
+
search?: {
|
|
95
|
+
targets?: Partial<TemplateTarget>[];
|
|
96
|
+
settings?: SearchStoreConfigSettings;
|
|
97
|
+
};
|
|
98
|
+
autocomplete?: {
|
|
99
|
+
targets?: Partial<TemplateTarget>[];
|
|
100
|
+
settings?: AutocompleteStoreConfigSettings;
|
|
101
|
+
};
|
|
102
|
+
}): void;
|
|
103
|
+
resetOverrides(): void;
|
|
104
|
+
setActiveDomSelector(selectorId: string | null): void;
|
|
59
105
|
setConfigOverride(obj: {
|
|
60
106
|
path: string[];
|
|
61
107
|
value: unknown;
|
|
@@ -70,14 +116,18 @@ export declare class TemplateEditorStore {
|
|
|
70
116
|
value?: unknown;
|
|
71
117
|
controller: ControllerType;
|
|
72
118
|
}): void;
|
|
119
|
+
setTargetOverride: (obj: {
|
|
120
|
+
path: string[];
|
|
121
|
+
value: string | undefined;
|
|
122
|
+
}) => void;
|
|
73
123
|
registerController<ControllerType extends SearchController | AutocompleteController>(controller: ControllerType): void;
|
|
74
124
|
getTargets(): {
|
|
75
125
|
type: string;
|
|
76
|
-
target:
|
|
77
|
-
template:
|
|
126
|
+
target: TargetStore;
|
|
127
|
+
template: string;
|
|
78
128
|
selector: string;
|
|
79
129
|
}[];
|
|
80
|
-
generateTemplatesConfig(): SnapTemplatesConfig
|
|
130
|
+
generateTemplatesConfig(options?: GenerateTemplatesConfigOptions): SnapTemplatesConfig;
|
|
81
131
|
}
|
|
82
132
|
export {};
|
|
83
133
|
//# sourceMappingURL=TemplateEditorStore.d.ts.map
|