@useinsider/guido 2.0.0-beta.afc5689 → 2.0.0-beta.b0493eb
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/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
- package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
- package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
- package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
- package/dist/config/migrator/index.js +8 -9
- package/dist/config/migrator/recommendationMigrator.js +2 -2
- package/dist/extensions/Blocks/Items/block.js +40 -39
- package/dist/extensions/Blocks/Items/controls/button/link.js +29 -22
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
- package/dist/extensions/Blocks/Items/controls/image/link.js +30 -23
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +15 -13
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +1 -1
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +1 -1
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +17 -15
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +15 -15
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +27 -29
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +136 -145
- package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
- package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
- package/dist/extensions/Blocks/Items/settingsPanel.js +4 -4
- package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
- package/dist/extensions/Blocks/Items/template.js +125 -312
- package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +44 -17
- package/dist/extensions/Blocks/Recommendation/block.js +40 -6
- package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
- package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +108 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +148 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +124 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
- package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
- package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +39 -34
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +181 -0
- package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +71 -0
- package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +116 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +211 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
- package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -0
- package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
- package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
- package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
- package/dist/extensions/Blocks/common-control.js +53 -64
- package/dist/extensions/Blocks/controlFactories.js +130 -106
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +221 -173
- package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +2 -0
- package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +2 -0
- package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
- package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +36 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +62 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
- package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
- package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +8 -13
- package/dist/static/styles/components/wide-panel.css.js +0 -4
- package/dist/static/styles/customEditorStyle.css.js +38 -2
- package/package.json +1 -1
- package/dist/config/migrator/itemsBlockMigrator.js +0 -283
- package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
- package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
- package/dist/extensions/Blocks/Recommendation/control.js +0 -306
- package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
- package/dist/src/config/migrator/itemsBlockMigrator.d.ts +0 -6
- package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
- package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommendation Block Controls
|
|
3
|
+
*
|
|
4
|
+
* This module exports all controls for the Recommendation extension.
|
|
5
|
+
* Controls are organized by element type for better discoverability.
|
|
6
|
+
* @example
|
|
7
|
+
* // Grouped imports (recommended)
|
|
8
|
+
* import { NameControls, ButtonControls } from './controls';
|
|
9
|
+
* // Or individual imports
|
|
10
|
+
* import { NameAlignControl, ButtonColorControl } from './controls';
|
|
11
|
+
*/
|
|
12
|
+
export { RecommendationBlockControl, CONTROL_BLOCK_ID, AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, } from './main';
|
|
13
|
+
export * from './main/utils';
|
|
14
|
+
export { NameControls } from './name';
|
|
15
|
+
export { PriceControls } from './price';
|
|
16
|
+
export { OldPriceControls } from './oldPrice';
|
|
17
|
+
export { OmnibusPriceControls } from './omnibusPrice';
|
|
18
|
+
export { OmnibusDiscountControls } from './omnibusDiscount';
|
|
19
|
+
export { ButtonControls } from './button';
|
|
20
|
+
export { ImageControls } from './image';
|
|
21
|
+
export { SpacingControl, SPACING_CONTROL_ID } from './spacing';
|
|
22
|
+
export { CardBackgroundColorControl, CARD_BACKGROUND_COLOR_CONTROL_ID } from './cardBackground';
|
|
23
|
+
export { LayoutControl, LAYOUT_CONTROL_ID } from './layout';
|
|
24
|
+
export { RecommendationCardCompositionControl, COMPOSITION_CONTROL_BLOCK_ID } from './cardComposition';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout Control
|
|
3
|
+
*
|
|
4
|
+
* Manages recommendation block layout orientation
|
|
5
|
+
* Allows switching between vertical (grid) and horizontal (list) layouts
|
|
6
|
+
*
|
|
7
|
+
* Configuration is stored via node config (persists with template).
|
|
8
|
+
*/
|
|
9
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
10
|
+
import { CommonControl } from '../../../common-control';
|
|
11
|
+
import { type Orientation } from '../../templates';
|
|
12
|
+
export declare const LAYOUT_CONTROL_ID = "recommendation-layout-control";
|
|
13
|
+
/**
|
|
14
|
+
* Control for managing recommendation block layout orientation
|
|
15
|
+
* Allows switching between vertical (grid) and horizontal (list) layouts
|
|
16
|
+
*/
|
|
17
|
+
export declare class LayoutControl extends CommonControl {
|
|
18
|
+
private store;
|
|
19
|
+
private isChangingLayout;
|
|
20
|
+
getId(): string;
|
|
21
|
+
getTemplate(): string;
|
|
22
|
+
onRender(): void;
|
|
23
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
24
|
+
_setFormValues(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Handles layout change
|
|
27
|
+
* Updates node config, data attribute and regenerates product rows
|
|
28
|
+
*/
|
|
29
|
+
_onLayoutChange(layout: Orientation): void;
|
|
30
|
+
/**
|
|
31
|
+
* Regenerates product rows based on the selected layout
|
|
32
|
+
* Special handling: captures and reapplies background color across layout changes
|
|
33
|
+
*/
|
|
34
|
+
_regenerateProductRows(layout: Orientation): void;
|
|
35
|
+
_listenToFormUpdates(): void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Algorithm Selection Control
|
|
3
|
+
*
|
|
4
|
+
* Handles recommendation algorithm selection and product IDs for manual merchandising:
|
|
5
|
+
* - Algorithm/strategy selection
|
|
6
|
+
* - Product IDs input (visible only for manual merchandising)
|
|
7
|
+
*
|
|
8
|
+
* Configuration is stored via node config (persists with template).
|
|
9
|
+
* Algorithm options are fetched from API and cached in Pinia store.
|
|
10
|
+
*/
|
|
11
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
12
|
+
import { CommonControl } from '../../../common-control';
|
|
13
|
+
export declare const ALGORITHM_CONTROL_ID = "recommendation-algorithm-control";
|
|
14
|
+
/**
|
|
15
|
+
* Control for selecting recommendation algorithm and manual product IDs
|
|
16
|
+
*/
|
|
17
|
+
export declare class AlgorithmControl extends CommonControl {
|
|
18
|
+
private store;
|
|
19
|
+
getId(): string;
|
|
20
|
+
getTemplate(): string;
|
|
21
|
+
onRender(): void;
|
|
22
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
23
|
+
_setFormValues(): void;
|
|
24
|
+
_initializeSelectItems(): void;
|
|
25
|
+
_setProductIdsVisibility(strategy?: string): void;
|
|
26
|
+
_onAlgorithmChange(value: string): void;
|
|
27
|
+
_onProductIdsChange(value: string): void;
|
|
28
|
+
_listenToFormUpdates(): void;
|
|
29
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Currency Settings Control
|
|
3
|
+
*
|
|
4
|
+
* Handles all currency-related configuration for recommendation products:
|
|
5
|
+
* - Currency type
|
|
6
|
+
* - Currency location (before/after)
|
|
7
|
+
* - Currency symbol
|
|
8
|
+
* - Thousand separator
|
|
9
|
+
* - Decimal separator
|
|
10
|
+
* - Decimal count
|
|
11
|
+
*
|
|
12
|
+
* Configuration is stored via node config (persists with template).
|
|
13
|
+
* Currency options are fetched from API and cached in Pinia store.
|
|
14
|
+
*/
|
|
15
|
+
import type { CurrencyConfig } from '../../types/nodeConfig';
|
|
16
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
17
|
+
import { CommonControl } from '../../../common-control';
|
|
18
|
+
export declare const CURRENCY_CONTROL_ID = "recommendation-currency-control";
|
|
19
|
+
/**
|
|
20
|
+
* Control for managing currency display settings in recommendation blocks
|
|
21
|
+
*/
|
|
22
|
+
export declare class CurrencyControl extends CommonControl {
|
|
23
|
+
private store;
|
|
24
|
+
private storeUnsubscription;
|
|
25
|
+
getId(): string;
|
|
26
|
+
getTemplate(): string;
|
|
27
|
+
onRender(): void;
|
|
28
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
29
|
+
onDestroy(): void;
|
|
30
|
+
_setFormValues(): void;
|
|
31
|
+
_initializeSelectItems(): void;
|
|
32
|
+
_updateCurrency(updates: Partial<CurrencyConfig>): void;
|
|
33
|
+
_onCurrencyChange(value: string): void;
|
|
34
|
+
_onCurrencyLocationChange(value: string): void;
|
|
35
|
+
_onCurrencySymbolChange(value: string): void;
|
|
36
|
+
_onThousandSeparatorChange(value: string): void;
|
|
37
|
+
_onDecimalSeparatorChange(value: string): void;
|
|
38
|
+
_onDecimalCountChange(value: string): void;
|
|
39
|
+
_listenToFormUpdates(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Subscribe to store changes to update currency selects when API data arrives
|
|
42
|
+
* This handles the case where the control renders before currency list is loaded
|
|
43
|
+
*/
|
|
44
|
+
_subscribeToStoreChanges(): void;
|
|
45
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filters Control
|
|
3
|
+
*
|
|
4
|
+
* Handles the filter selection UI for recommendation products
|
|
5
|
+
* Opens filter selection drawer when button is clicked
|
|
6
|
+
*/
|
|
7
|
+
import { CommonControl } from '../../../common-control';
|
|
8
|
+
export declare const FILTERS_CONTROL_ID = "recommendation-filters-control";
|
|
9
|
+
/**
|
|
10
|
+
* Control for managing recommendation product filters
|
|
11
|
+
*/
|
|
12
|
+
export declare class FiltersControl extends CommonControl {
|
|
13
|
+
private store;
|
|
14
|
+
private addFilterListener;
|
|
15
|
+
private addFilterButton;
|
|
16
|
+
getId(): string;
|
|
17
|
+
getTemplate(): string;
|
|
18
|
+
onRender(): void;
|
|
19
|
+
onDestroy(): void;
|
|
20
|
+
_onFilterSelectClick(): void;
|
|
21
|
+
_setupButtonListener(): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main Recommendation Block Control
|
|
3
|
+
*
|
|
4
|
+
* This is a coordinator control that composes all recommendation configuration
|
|
5
|
+
* sub-controls into a single settings panel. It handles:
|
|
6
|
+
* - Initial API data fetching
|
|
7
|
+
* - Store subscriptions for product refresh
|
|
8
|
+
* - Coordinating lifecycle of sub-controls
|
|
9
|
+
*
|
|
10
|
+
* Sub-controls are also exported individually for flexibility:
|
|
11
|
+
* - AlgorithmControl: Strategy and product IDs
|
|
12
|
+
* - LocaleControl: Language selection
|
|
13
|
+
* - CurrencyControl: Currency formatting settings
|
|
14
|
+
* - ProductLayoutControl: Product count and grid layout
|
|
15
|
+
* - FiltersControl: Filter selection
|
|
16
|
+
* - ShuffleControl: Product shuffle toggle
|
|
17
|
+
*/
|
|
18
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
19
|
+
import { CommonControl } from '../../../common-control';
|
|
20
|
+
import { AlgorithmControl, ALGORITHM_CONTROL_ID } from './algorithm';
|
|
21
|
+
import { CurrencyControl, CURRENCY_CONTROL_ID } from './currency';
|
|
22
|
+
import { FiltersControl, FILTERS_CONTROL_ID } from './filters';
|
|
23
|
+
import { LocaleControl, LOCALE_CONTROL_ID } from './locale';
|
|
24
|
+
import { ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID } from './productLayout';
|
|
25
|
+
import { ShuffleControl, SHUFFLE_CONTROL_ID } from './shuffle';
|
|
26
|
+
export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
|
|
27
|
+
export { AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, };
|
|
28
|
+
export * from './utils';
|
|
29
|
+
/**
|
|
30
|
+
* Main recommendation block control that composes all sub-controls
|
|
31
|
+
* Registered in the Settings tab of the block's settings panel
|
|
32
|
+
*/
|
|
33
|
+
export declare class RecommendationBlockControl extends CommonControl {
|
|
34
|
+
private store;
|
|
35
|
+
private storeUnsubscription;
|
|
36
|
+
private algorithmControl;
|
|
37
|
+
private localeControl;
|
|
38
|
+
private currencyControl;
|
|
39
|
+
private productLayoutControl;
|
|
40
|
+
private filtersControl;
|
|
41
|
+
private shuffleControl;
|
|
42
|
+
getId(): string;
|
|
43
|
+
getTemplate(): string;
|
|
44
|
+
onRender(): Promise<void>;
|
|
45
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
46
|
+
onDestroy(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Initialize all sub-controls with the shared API context
|
|
49
|
+
* Each sub-control manages its own form values and event listeners
|
|
50
|
+
*/
|
|
51
|
+
_initializeSubControls(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Debounced product fetch to prevent rapid API calls during config changes
|
|
54
|
+
*/
|
|
55
|
+
private _debouncedFetchProducts;
|
|
56
|
+
/**
|
|
57
|
+
* Listen to store changes that require product refresh
|
|
58
|
+
* Only triggers for meaningful config changes (size, strategy, filters, etc.)
|
|
59
|
+
* Uses debounce to prevent rapid API calls
|
|
60
|
+
*/
|
|
61
|
+
_listenStateUpdates(): void;
|
|
62
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Locale Selection Control
|
|
3
|
+
*
|
|
4
|
+
* Handles locale/language selection for recommendation products.
|
|
5
|
+
* Configuration is stored via node config (persists with template).
|
|
6
|
+
* Language options are fetched from API and cached in Pinia store.
|
|
7
|
+
*/
|
|
8
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
9
|
+
import { CommonControl } from '../../../common-control';
|
|
10
|
+
export declare const LOCALE_CONTROL_ID = "recommendation-locale-control";
|
|
11
|
+
/**
|
|
12
|
+
* Control for selecting recommendation content locale/language
|
|
13
|
+
*/
|
|
14
|
+
export declare class LocaleControl extends CommonControl {
|
|
15
|
+
private store;
|
|
16
|
+
getId(): string;
|
|
17
|
+
getTemplate(): string;
|
|
18
|
+
onRender(): void;
|
|
19
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
20
|
+
_setFormValues(): void;
|
|
21
|
+
_initializeSelectItems(): void;
|
|
22
|
+
_onLocaleChange(value: string): void;
|
|
23
|
+
_listenToFormUpdates(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product Layout Control
|
|
3
|
+
*
|
|
4
|
+
* Handles product display configuration:
|
|
5
|
+
* - Number of products to show
|
|
6
|
+
* - Products per row (hidden for horizontal layout)
|
|
7
|
+
* - Triggers product row regeneration on changes
|
|
8
|
+
*
|
|
9
|
+
* Configuration is stored via node config (persists with template).
|
|
10
|
+
*/
|
|
11
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
12
|
+
import { CommonControl } from '../../../common-control';
|
|
13
|
+
export declare const PRODUCT_LAYOUT_CONTROL_ID = "recommendation-product-layout-control";
|
|
14
|
+
/**
|
|
15
|
+
* Control for configuring product count and layout density
|
|
16
|
+
*/
|
|
17
|
+
export declare class ProductLayoutControl extends CommonControl {
|
|
18
|
+
private store;
|
|
19
|
+
private storeUnsubscription;
|
|
20
|
+
getId(): string;
|
|
21
|
+
getTemplate(): string;
|
|
22
|
+
onRender(): void;
|
|
23
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
24
|
+
onDestroy(): void;
|
|
25
|
+
_setFormValues(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Updates "Products in One Row" visibility based on layout orientation
|
|
28
|
+
* This control is hidden for horizontal layout (products always take full width)
|
|
29
|
+
* Reads from node config first, falls back to DOM
|
|
30
|
+
*/
|
|
31
|
+
_updateProductsInRowVisibility(): void;
|
|
32
|
+
_onProductCountChange(value: string): void;
|
|
33
|
+
_onProductsInRowChange(value: number): void;
|
|
34
|
+
_regenerateProductRows(): void;
|
|
35
|
+
_debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
|
|
36
|
+
_listenToFormUpdates(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribe to store changes to update visibility when layout changes
|
|
39
|
+
* This is still needed because layout changes come from LayoutControl
|
|
40
|
+
*/
|
|
41
|
+
_listenStateUpdates(): void;
|
|
42
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shuffle Products Control
|
|
3
|
+
*
|
|
4
|
+
* Handles the toggle for shuffling/randomizing recommended products.
|
|
5
|
+
* Configuration is stored via node config (persists with template).
|
|
6
|
+
*/
|
|
7
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
8
|
+
import { CommonControl } from '../../../common-control';
|
|
9
|
+
export declare const SHUFFLE_CONTROL_ID = "recommendation-shuffle-control";
|
|
10
|
+
/**
|
|
11
|
+
* Control for toggling product shuffle/randomization
|
|
12
|
+
*/
|
|
13
|
+
export declare class ShuffleControl extends CommonControl {
|
|
14
|
+
private store;
|
|
15
|
+
getId(): string;
|
|
16
|
+
getTemplate(): string;
|
|
17
|
+
onRender(): void;
|
|
18
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
19
|
+
_setFormValues(): void;
|
|
20
|
+
_initializeToggle(): void;
|
|
21
|
+
_onShuffleChange(value: boolean): void;
|
|
22
|
+
_listenToFormUpdates(): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for Recommendation block controls
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality used across multiple controls:
|
|
5
|
+
* - Layout detection from DOM
|
|
6
|
+
* - Card composition retrieval
|
|
7
|
+
* - Product row regeneration
|
|
8
|
+
* - Spacing reapplication
|
|
9
|
+
*/
|
|
10
|
+
import type { CurrencyConfig } from '../../types/nodeConfig';
|
|
11
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
12
|
+
import { ModificationDescription } from '@stripoinc/ui-editor-extensions';
|
|
13
|
+
import { type Orientation } from '../../templates';
|
|
14
|
+
type DocumentModifier = ReturnType<{
|
|
15
|
+
getDocumentModifier: () => {
|
|
16
|
+
modifyHtml: (node: ImmutableHtmlNode) => {
|
|
17
|
+
setStyle: (prop: string, value: string) => DocumentModifier;
|
|
18
|
+
setInnerHtml: (html: string) => DocumentModifier;
|
|
19
|
+
setAttribute: (name: string, value: string) => DocumentModifier;
|
|
20
|
+
};
|
|
21
|
+
apply: (description: ModificationDescription) => void;
|
|
22
|
+
};
|
|
23
|
+
}['getDocumentModifier']>;
|
|
24
|
+
/**
|
|
25
|
+
* Gets the block element from the current node
|
|
26
|
+
* The currentNode could BE the block element or contain it
|
|
27
|
+
* @param currentNode - The current template node
|
|
28
|
+
* @returns The block element or null if not found
|
|
29
|
+
*/
|
|
30
|
+
export declare function getBlockElement(currentNode: ImmutableHtmlNode | null | undefined): ImmutableHtmlNode | null;
|
|
31
|
+
/**
|
|
32
|
+
* Gets the current layout orientation from the block's data attribute
|
|
33
|
+
* @param currentNode - The current template node
|
|
34
|
+
* @returns The layout value ('vertical' or 'horizontal'), defaults to 'vertical'
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCurrentLayout(currentNode: ImmutableHtmlNode | null | undefined): Orientation;
|
|
37
|
+
/**
|
|
38
|
+
* Gets the current card composition from block data attribute or use default
|
|
39
|
+
* @param currentNode - The current template node
|
|
40
|
+
* @returns Array of card element types in order
|
|
41
|
+
*/
|
|
42
|
+
export declare function getCardComposition(currentNode: ImmutableHtmlNode | null | undefined): string[];
|
|
43
|
+
export interface RegenerateProductRowsOptions {
|
|
44
|
+
currentNode: ImmutableHtmlNode | null | undefined;
|
|
45
|
+
documentModifier: DocumentModifier;
|
|
46
|
+
afterRegenerate?: () => void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Regenerates product rows based on current store configuration
|
|
50
|
+
* Reads products, layout, and composition from store/DOM and rebuilds the HTML
|
|
51
|
+
* @param options - Configuration options for regeneration
|
|
52
|
+
*/
|
|
53
|
+
export declare function regenerateProductRows(options: RegenerateProductRowsOptions): void;
|
|
54
|
+
export interface ReapplySpacingOptions {
|
|
55
|
+
currentNode: ImmutableHtmlNode | null | undefined;
|
|
56
|
+
documentModifier: DocumentModifier;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reapplies spacing values from data attributes after product regeneration
|
|
60
|
+
* This ensures spacing persists when products are regenerated
|
|
61
|
+
* @param options - Configuration options
|
|
62
|
+
*/
|
|
63
|
+
export declare function reapplySpacing(options: ReapplySpacingOptions): void;
|
|
64
|
+
/**
|
|
65
|
+
* Gets current card background color from existing elements
|
|
66
|
+
* Checks both vertical (.product-card-segment) and horizontal (.product-card-wrapper) selectors
|
|
67
|
+
* @param currentNode - The current template node
|
|
68
|
+
* @returns Background color string or null if not found
|
|
69
|
+
*/
|
|
70
|
+
export declare function getCurrentCardBackgroundColor(currentNode: ImmutableHtmlNode | null | undefined): string | null;
|
|
71
|
+
export interface ApplyCardBackgroundColorOptions {
|
|
72
|
+
currentNode: ImmutableHtmlNode | null | undefined;
|
|
73
|
+
documentModifier: DocumentModifier;
|
|
74
|
+
bgColor: string | null;
|
|
75
|
+
layout: Orientation;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Applies card background color to appropriate elements based on layout
|
|
79
|
+
* @param options - Configuration options
|
|
80
|
+
*/
|
|
81
|
+
export declare function applyCardBackgroundColor(options: ApplyCardBackgroundColorOptions): void;
|
|
82
|
+
export interface SetCurrencyAttributesOptions {
|
|
83
|
+
currentNode: ImmutableHtmlNode | null | undefined;
|
|
84
|
+
documentModifier: DocumentModifier;
|
|
85
|
+
currency: CurrencyConfig;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Sets currency configuration as HTML attributes on the block element
|
|
89
|
+
* These attributes are read by the HTML compiler at runtime to format prices
|
|
90
|
+
* @param options - Configuration options
|
|
91
|
+
*/
|
|
92
|
+
export declare function setCurrencyAttributes(options: SetCurrencyAttributesOptions): void;
|
|
93
|
+
/**
|
|
94
|
+
* Reads currency configuration from block HTML attributes
|
|
95
|
+
* Used to restore settings when loading a template
|
|
96
|
+
* @param currentNode - The current template node
|
|
97
|
+
* @returns CurrencyConfig or null if attributes not found
|
|
98
|
+
*/
|
|
99
|
+
export declare function getCurrencyAttributesFromBlock(currentNode: ImmutableHtmlNode | null | undefined): Partial<CurrencyConfig> | null;
|
|
100
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Name Element Controls
|
|
3
|
+
*
|
|
4
|
+
* Controls for styling the product name element in recommendation cards.
|
|
5
|
+
*/
|
|
6
|
+
import { NameTextTrimControl } from './textTrim';
|
|
7
|
+
/**
|
|
8
|
+
* Grouped Name Controls
|
|
9
|
+
* Use this object for cleaner imports in extension.ts
|
|
10
|
+
*/
|
|
11
|
+
export declare const NameControls: {
|
|
12
|
+
readonly align: {
|
|
13
|
+
new (): {
|
|
14
|
+
getId(): string;
|
|
15
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
16
|
+
getParentControlId(): string;
|
|
17
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
18
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
19
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
20
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
21
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
readonly color: {
|
|
25
|
+
new (): {
|
|
26
|
+
getId(): string;
|
|
27
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
28
|
+
getParentControlId(): string;
|
|
29
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
30
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
31
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
32
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
33
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
readonly size: {
|
|
37
|
+
new (): {
|
|
38
|
+
getId(): string;
|
|
39
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
40
|
+
getParentControlId(): string;
|
|
41
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
42
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
43
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
44
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
45
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
readonly style: {
|
|
49
|
+
new (): {
|
|
50
|
+
getId(): string;
|
|
51
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
52
|
+
getParentControlId(): string;
|
|
53
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
54
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
55
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
56
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
57
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
readonly fontFamily: {
|
|
61
|
+
new (): {
|
|
62
|
+
getId(): string;
|
|
63
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
64
|
+
getParentControlId(): string;
|
|
65
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
66
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
67
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
68
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
69
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly background: {
|
|
73
|
+
new (): {
|
|
74
|
+
getId(): string;
|
|
75
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
76
|
+
getParentControlId(): string;
|
|
77
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
78
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
79
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
80
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
81
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
readonly paddings: {
|
|
85
|
+
new (): {
|
|
86
|
+
getId(): string;
|
|
87
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
88
|
+
getParentControlId(): string;
|
|
89
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
90
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
91
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
92
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
93
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
readonly textTrim: typeof NameTextTrimControl;
|
|
97
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
+
import { CommonControl } from '../../../common-control';
|
|
3
|
+
/**
|
|
4
|
+
* Control for enabling/disabling text trimming on product names
|
|
5
|
+
* When enabled, adds a CSS class that applies text-overflow: ellipsis
|
|
6
|
+
*/
|
|
7
|
+
export declare class NameTextTrimControl extends CommonControl {
|
|
8
|
+
getId(): string;
|
|
9
|
+
getTemplate(): string;
|
|
10
|
+
onRender(): void;
|
|
11
|
+
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
12
|
+
_setFormValues(): void;
|
|
13
|
+
_getCurrentTrimState(): boolean;
|
|
14
|
+
_onTextTrimChange(enabled: boolean): void;
|
|
15
|
+
_listenToFormUpdates(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Old Price Element Controls
|
|
3
|
+
*
|
|
4
|
+
* Controls for styling the original/old price element in recommendation cards.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Grouped Old Price Controls
|
|
8
|
+
* Use this object for cleaner imports in extension.ts
|
|
9
|
+
*/
|
|
10
|
+
export declare const OldPriceControls: {
|
|
11
|
+
readonly align: {
|
|
12
|
+
new (): {
|
|
13
|
+
getId(): string;
|
|
14
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
15
|
+
getParentControlId(): string;
|
|
16
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
17
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
18
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
19
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
20
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
readonly color: {
|
|
24
|
+
new (): {
|
|
25
|
+
getId(): string;
|
|
26
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
27
|
+
getParentControlId(): string;
|
|
28
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
29
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
30
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
31
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
32
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
readonly size: {
|
|
36
|
+
new (): {
|
|
37
|
+
getId(): string;
|
|
38
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
39
|
+
getParentControlId(): string;
|
|
40
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
41
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
42
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
43
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
44
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
readonly style: {
|
|
48
|
+
new (): {
|
|
49
|
+
getId(): string;
|
|
50
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
51
|
+
getParentControlId(): string;
|
|
52
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
53
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
54
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
55
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
56
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
readonly fontFamily: {
|
|
60
|
+
new (): {
|
|
61
|
+
getId(): string;
|
|
62
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
63
|
+
getParentControlId(): string;
|
|
64
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
65
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
66
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
67
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
68
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly background: {
|
|
72
|
+
new (): {
|
|
73
|
+
getId(): string;
|
|
74
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
75
|
+
getParentControlId(): string;
|
|
76
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
77
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
78
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
79
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
80
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
readonly paddings: {
|
|
84
|
+
new (): {
|
|
85
|
+
getId(): string;
|
|
86
|
+
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
87
|
+
getParentControlId(): string;
|
|
88
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
89
|
+
getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
|
|
90
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
91
|
+
getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
92
|
+
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|