@useinsider/guido 3.19.0-beta.cac604e → 3.19.0-beta.cc48fee
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/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +96 -85
- package/dist/components/organisms/base/AuthErrorModal.vue.js +18 -0
- package/dist/components/organisms/base/AuthErrorModal.vue2.js +42 -0
- package/dist/components/wrappers/WpModal.vue.js +1 -1
- package/dist/components/wrappers/WpModal.vue2.js +4 -3
- package/dist/composables/useAuthError.js +52 -0
- package/dist/composables/useAutoSave.js +11 -11
- package/dist/composables/useCortexBlueprintBridge.js +122 -54
- package/dist/composables/useEmailTemplateApplier.js +111 -50
- package/dist/composables/useHttp.js +64 -54
- package/dist/composables/useLegacyStrategyConversion.js +23 -19
- package/dist/composables/useStripo.js +24 -20
- package/dist/composables/useToaster.js +17 -15
- package/dist/composables/validators/useLiquidValidator.js +15 -15
- package/dist/config/migrator/index.js +14 -13
- package/dist/config/migrator/itemsBlockMigrator.js +236 -248
- package/dist/config/migrator/recommendationMigrator.js +28 -21
- package/dist/config/migrator/recommendationPartnerMigrator.js +56 -0
- package/dist/enums/extensions/recommendationBlock.js +30 -29
- package/dist/extensions/Blocks/Items/constants/cardLayout.js +20 -0
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +18 -17
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +114 -105
- package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +11 -9
- package/dist/extensions/Blocks/Items/template.js +219 -204
- package/dist/extensions/Blocks/Recommendation/block.js +54 -88
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +32 -51
- package/dist/extensions/Blocks/Recommendation/utils/partnerCustomizations.js +3 -1
- package/dist/extensions/Blocks/Recommendation/utils/partnerScope.js +11 -12
- package/dist/guido.css +1 -1
- package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
- package/dist/src/components/wrappers/WpModal.vue.d.ts +5 -1
- package/dist/src/composables/useAuthError.d.ts +12 -0
- package/dist/src/composables/useCortexBlueprintBridge.d.ts +2 -3
- package/dist/src/composables/useEmailTemplateApplier.d.ts +18 -5
- package/dist/src/composables/useGuidoActions.d.ts +2 -0
- package/dist/src/composables/useHttp.d.ts +2 -0
- package/dist/src/config/migrator/index.d.ts +2 -1
- package/dist/src/config/migrator/recommendationPartnerMigrator.d.ts +19 -0
- package/dist/src/enums/extensions/recommendationBlock.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/constants/cardLayout.d.ts +44 -0
- package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +3 -0
- package/dist/src/extensions/Blocks/Items/template.d.ts +19 -0
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -6
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/utils/partnerScope.d.ts +13 -7
- package/dist/src/mock/cortexChatStore.d.ts +12 -0
- package/dist/src/stores/guido-email-editor.d.ts +20 -10
- package/dist/src/stores/onboarding.d.ts +4 -0
- package/dist/src/stores/recommendation.d.ts +5 -0
- package/dist/src/utils/dateUtil.d.ts +10 -0
- package/dist/src/utils/genericUtil.d.ts +3 -0
- package/dist/static/styles/components/version-history.css.js +2 -6
- package/dist/stores/guido-email-editor.js +3 -1
- package/dist/stores/onboarding.js +4 -0
- package/dist/utils/pairProductVariables.js +71 -71
- package/package.json +2 -2
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
type ApplyStatus = 'pending' | 'applying' | 'applied' | 'failed';
|
|
2
|
+
/**
|
|
3
|
+
* Terminal outcome of an apply; every promise here settles with one, since the bridge acks on it.
|
|
4
|
+
* `superseded`: a newer payload for the same key replaced this one and owns the ack.
|
|
5
|
+
*/
|
|
6
|
+
export type ApplyOutcome = {
|
|
7
|
+
status: 'applied';
|
|
8
|
+
} | {
|
|
9
|
+
status: 'failed';
|
|
10
|
+
error: unknown;
|
|
11
|
+
} | {
|
|
12
|
+
status: 'superseded';
|
|
13
|
+
};
|
|
2
14
|
/**
|
|
3
15
|
* Applies email_template blueprints from the chat agent to the Stripo editor.
|
|
4
16
|
*
|
|
@@ -9,18 +21,19 @@ type ApplyStatus = 'pending' | 'applying' | 'applied' | 'failed';
|
|
|
9
21
|
* - manual Apply click (first apply): immediate.
|
|
10
22
|
* - blueprint_update after the user has applied once: debounced 250 ms trailing
|
|
11
23
|
* so rapid mid-stream updates don't thrash updateHtmlAndCss.
|
|
24
|
+
* - a click before Stripo is ready is queued and flushed when `isStripoInitialized` flips.
|
|
12
25
|
*/
|
|
13
26
|
export declare const useEmailTemplateApplier: () => {
|
|
14
27
|
applyStatus: import("vue").Ref<Record<string, ApplyStatus>>;
|
|
15
|
-
markPending: (
|
|
16
|
-
applyTemplate: (
|
|
28
|
+
markPending: (key: string) => void;
|
|
29
|
+
applyTemplate: (key: string, data: {
|
|
17
30
|
html?: string;
|
|
18
31
|
css?: string;
|
|
19
|
-
}) =>
|
|
20
|
-
applyTemplateDebounced: (
|
|
32
|
+
}) => Promise<ApplyOutcome>;
|
|
33
|
+
applyTemplateDebounced: (key: string, data: {
|
|
21
34
|
html?: string;
|
|
22
35
|
css?: string;
|
|
23
|
-
}) =>
|
|
36
|
+
}) => Promise<ApplyOutcome>;
|
|
24
37
|
};
|
|
25
38
|
export declare const resetEmailTemplateApplier: () => void;
|
|
26
39
|
export {};
|
|
@@ -19,6 +19,8 @@ export declare const provideGuidoActions: (actions: {
|
|
|
19
19
|
}) => void;
|
|
20
20
|
/**
|
|
21
21
|
* Provides individual Guido action handlers
|
|
22
|
+
* @deprecated No consumer in src/ and not exported from library.ts — provideGuidoActions
|
|
23
|
+
* provides all four keys itself. Slated for deletion, see the SD-667788 dead-code ledger.
|
|
22
24
|
*/
|
|
23
25
|
export declare const provideBackHandler: (handler: BackHandler) => void;
|
|
24
26
|
export declare const provideSaveStartHandler: (handler: SaveStartHandler) => void;
|
|
@@ -16,6 +16,7 @@ export interface HttpError {
|
|
|
16
16
|
status?: number;
|
|
17
17
|
statusText?: string;
|
|
18
18
|
response?: Response;
|
|
19
|
+
authReported?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare const useHttp: (defaultOptions?: HttpOptions) => {
|
|
21
22
|
loading: import("vue").ComputedRef<boolean>;
|
|
@@ -65,6 +66,7 @@ export declare const useHttp: (defaultOptions?: HttpOptions) => {
|
|
|
65
66
|
json: () => Promise<any>;
|
|
66
67
|
text: () => Promise<string>;
|
|
67
68
|
} | undefined;
|
|
69
|
+
authReported?: boolean | undefined;
|
|
68
70
|
} | null>;
|
|
69
71
|
hasError: import("vue").ComputedRef<boolean>;
|
|
70
72
|
request: <T = unknown>(method: HttpMethod, url: string, data?: unknown, options?: HttpOptions) => Promise<HttpResponse<T>>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { LegacyRecommendationConfig } from '@@/Types/config';
|
|
2
|
-
|
|
2
|
+
import { type PartnerScopeMigrationOptions } from './recommendationPartnerMigrator';
|
|
3
|
+
export declare const migrate: (html: string, recommendationConfigs?: Record<string, LegacyRecommendationConfig>, partnerScope?: PartnerScopeMigrationOptions) => Promise<string>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Empties recommendation blocks copied in from another account and stamps the
|
|
3
|
+
* current one, before the editor ever sees the template (SD-151945).
|
|
4
|
+
*
|
|
5
|
+
* Runs at load rather than on document change: the stamp makes it a one-time
|
|
6
|
+
* pass per template, the campaign-URL rule only ever applies to the loaded HTML,
|
|
7
|
+
* and Stripo takes the result as the original document, so nothing is dirtied.
|
|
8
|
+
*/
|
|
9
|
+
export interface PartnerScopeMigrationOptions {
|
|
10
|
+
partnerName: string;
|
|
11
|
+
/** `undefined` when the host does not pass the map — the unstamped check is then off. */
|
|
12
|
+
campaignUrls?: Record<string, unknown>;
|
|
13
|
+
rrsEnabled: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @param html Template HTML, already normalized by `migrateRecommendation`.
|
|
17
|
+
* @returns Migrated HTML, or the original when no block needed a reset or a stamp.
|
|
18
|
+
*/
|
|
19
|
+
export declare function migrateRecommendationPartnerScope(html: string, { partnerName, campaignUrls, rrsEnabled }: PartnerScopeMigrationOptions): string;
|
|
@@ -8,8 +8,8 @@ export declare const URLS: {
|
|
|
8
8
|
NEWSLETTER_RECOMMENDATIONS_PATH: string;
|
|
9
9
|
MIGRATE_STRATEGIES_PATH: string;
|
|
10
10
|
TEMPLATE_MIGRATE_STRATEGIES_PATH: string;
|
|
11
|
-
RECOMMENDATION_STRATEGY_CREATE_PATH: string;
|
|
12
11
|
};
|
|
12
|
+
export declare const strategyCreatePath: () => string;
|
|
13
13
|
export declare const strategyEditPath: (strategyId: string | number) => string;
|
|
14
14
|
export declare const MIGRATION_PATHS: Record<RrsMigrationTarget['scope'], string>;
|
|
15
15
|
export declare const QUERY_PARAMS: {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single owner for the Items card orientation-dependent layout contract (SD-149368).
|
|
3
|
+
*
|
|
4
|
+
* Two things depend on a card's orientation and are written across several layers:
|
|
5
|
+
*
|
|
6
|
+
* 1. Name column width — a horizontal card lays the name in a narrow side-by-side
|
|
7
|
+
* column, so it is capped; a vertical card gives it a full-width row.
|
|
8
|
+
* 2. Block-cell padding — the collapsible price / original-price block-cell carries its
|
|
9
|
+
* own inter-cell spacing (horizontal cards pad left/right, vertical cards pad
|
|
10
|
+
* top/bottom) so a hidden element removes its own spacing instead of leaving a gap.
|
|
11
|
+
*
|
|
12
|
+
* Every layer that writes these — template render, layouts/horizontal.html,
|
|
13
|
+
* NameTrimmingControl (trimming toggle) and settingsControl (orientation change) — MUST
|
|
14
|
+
* derive them here, or a migrated / re-toggled card silently drifts out of sync with
|
|
15
|
+
* freshly generated markup (convention B1: cross-layer literals live in one module).
|
|
16
|
+
*/
|
|
17
|
+
export declare const NAME_HORIZONTAL_MAX_WIDTH = "130px";
|
|
18
|
+
export declare const NAME_VERTICAL_MAX_WIDTH = "100%";
|
|
19
|
+
/** Name max-width for a card orientation. Non-horizontal (incl. undefined) → full width. */
|
|
20
|
+
export declare const nameMaxWidthFor: (orientation?: string) => string;
|
|
21
|
+
/** Orientation-dependent inter-cell padding classes for a collapsible block-cell. */
|
|
22
|
+
export declare const BLOCK_CELL_PADDING: {
|
|
23
|
+
readonly VERTICAL: "es-p5b es-p5t";
|
|
24
|
+
readonly HORIZONTAL: "es-p5l es-p5r";
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Attribute the block-cell carries to mark its LAYOUT-owned padding orientation ('v'|'h').
|
|
28
|
+
* The orientation toggle keys off this marker so it only ever rewrites the padding the
|
|
29
|
+
* layout itself baked — a user's own es-p* padding classes are never matched or clobbered
|
|
30
|
+
* (SD-149368 F1), and a cell without the marker is left untouched rather than mis-swapped.
|
|
31
|
+
*/
|
|
32
|
+
export declare const BLOCK_CELL_PAD_ATTR = "data-items-cell-pad";
|
|
33
|
+
/** Marker attribute (`data-items-cell-pad="v|h"`) for a block-cell in the given orientation. */
|
|
34
|
+
export declare const blockCellPadMarker: (isVertical: boolean) => string;
|
|
35
|
+
/** Padding classes (leading space included) for a block-cell in the given orientation. */
|
|
36
|
+
export declare const blockCellPaddingFor: (isVertical: boolean) => string;
|
|
37
|
+
/**
|
|
38
|
+
* Rewrites a block-cell's LAYOUT-owned padding classes to the target orientation, keyed off
|
|
39
|
+
* the BLOCK_CELL_PAD_ATTR marker. The orientation-change rebuild re-injects existing cells
|
|
40
|
+
* via getOuterHTML(), which still carry the previous orientation's padding — swap only the
|
|
41
|
+
* layout pair (and flip the marker) so price/original-price cells stay padded after a toggle
|
|
42
|
+
* (SD-149368 F3), while a user's own padding and any unmarked cell are left alone (F1).
|
|
43
|
+
*/
|
|
44
|
+
export declare const reorientBlockCellPadding: (html: string, toVertical: boolean) => string;
|
|
@@ -39,14 +39,17 @@ export declare const productPairs: {
|
|
|
39
39
|
CART_ITEMS: {
|
|
40
40
|
ATTR: string;
|
|
41
41
|
DEFAULT: string;
|
|
42
|
+
LEGACY_DEFAULTS: readonly string[];
|
|
42
43
|
};
|
|
43
44
|
BROWSED_ITEMS: {
|
|
44
45
|
ATTR: string;
|
|
45
46
|
DEFAULT: string;
|
|
47
|
+
LEGACY_DEFAULTS: readonly string[];
|
|
46
48
|
};
|
|
47
49
|
PURCHASED_ITEMS: {
|
|
48
50
|
ATTR: string;
|
|
49
51
|
DEFAULT: string;
|
|
52
|
+
LEGACY_DEFAULTS: readonly string[];
|
|
50
53
|
};
|
|
51
54
|
};
|
|
52
55
|
price: {
|
|
@@ -37,6 +37,25 @@ type TemplateParameters = {
|
|
|
37
37
|
/** Price orientation within the card ('vertical' = stacked, 'horizontal' = side-by-side) */
|
|
38
38
|
priceOrientation?: PriceOrientationType;
|
|
39
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Applies price orientation styles to the generated HTML template.
|
|
42
|
+
*
|
|
43
|
+
* For Vertical Layout:
|
|
44
|
+
* - vertical price orientation: both cells 100% (stacked)
|
|
45
|
+
* - horizontal price orientation with both visible: both cells 50% (side-by-side)
|
|
46
|
+
* - horizontal price orientation with one hidden: visible cell 100%
|
|
47
|
+
*
|
|
48
|
+
* For Horizontal Layout:
|
|
49
|
+
* - horizontal price orientation: .horizontal-price visible, .vertical-price hidden
|
|
50
|
+
* - vertical price orientation: .horizontal-price hidden, .vertical-price visible
|
|
51
|
+
* @param html - The HTML template string with placeholders replaced
|
|
52
|
+
* @param layoutOrientation - The card layout orientation ('vertical' or 'horizontal')
|
|
53
|
+
* @param priceOrientation - The price orientation within the card ('vertical' or 'horizontal')
|
|
54
|
+
* @param isPriceVisible - Whether the price element is visible
|
|
55
|
+
* @param isOriginalPriceVisible - Whether the original price element is visible
|
|
56
|
+
* @returns HTML string with price orientation styles applied
|
|
57
|
+
*/
|
|
58
|
+
export declare const applyPriceOrientationStyles: (html: string, layoutOrientation: OrientationType, priceOrientation: PriceOrientationType, isPriceVisible?: boolean, isOriginalPriceVisible?: boolean) => string;
|
|
40
59
|
/**
|
|
41
60
|
* Generates the default template for the Items Block.
|
|
42
61
|
* @param params - Template parameters including orientation, items type, item ID, and formatting options
|
|
@@ -137,12 +137,6 @@ export declare class RecommendationBlock extends Block {
|
|
|
137
137
|
* heals templates saved before this feature without dirtying current ones.
|
|
138
138
|
*/
|
|
139
139
|
private _healHidePriceAttr;
|
|
140
|
-
/**
|
|
141
|
-
* Empties a block copied in from another account: its strategy and attribute types
|
|
142
|
-
* are account-scoped and would not resolve here (SD-151945). Layout, locale and
|
|
143
|
-
* currency stay. The write stamps the current account, so the next pass is a no-op.
|
|
144
|
-
*/
|
|
145
|
-
private _resetForeignPartnerConfig;
|
|
146
140
|
/**
|
|
147
141
|
* Gets the recommendation-id from a block node
|
|
148
142
|
*/
|
|
@@ -543,11 +543,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
543
543
|
openRemoveStrategyModal(): void;
|
|
544
544
|
closeRemoveStrategyModal(): void;
|
|
545
545
|
fetchStrategies(): Promise<void>;
|
|
546
|
-
/**
|
|
547
|
-
* Drops what the store still holds for a block whose account-scoped config was just
|
|
548
|
-
* reset in the document (SD-151945), so the panel re-seeds from the emptied node.
|
|
549
|
-
*/
|
|
550
|
-
resetPartnerScopedConfig(id: number): void;
|
|
551
546
|
/**
|
|
552
547
|
* Clears what a block inherited from the id it arrived holding, so the panel fetches for it.
|
|
553
548
|
* A re-dropped saved module can keep the source's id — and its "already fetched" entry —
|
|
@@ -4,24 +4,30 @@ import type { RecommendationNodeConfig } from '../types/nodeConfig';
|
|
|
4
4
|
* string or an entry that names a strategy.
|
|
5
5
|
*/
|
|
6
6
|
export declare function isDefinedCampaignUrl(value: unknown): boolean;
|
|
7
|
-
/** Recommendation block ids present in the HTML the host loaded the editor with. */
|
|
8
|
-
export declare function loadedRecommendationIds(html: string): Set<number>;
|
|
9
7
|
export interface PartnerScopeInputs {
|
|
10
8
|
config: Pick<RecommendationNodeConfig, 'strategyId' | 'partnerName'>;
|
|
11
9
|
blockId: number;
|
|
12
10
|
partnerName: string;
|
|
13
11
|
/** `undefined` when the host does not pass the map — the unstamped check is then off. */
|
|
14
12
|
campaignUrls: Record<string, unknown> | undefined;
|
|
15
|
-
|
|
13
|
+
/** With RRS off `buildCampaignUrl` drops the block's map entry, so the map says nothing. */
|
|
14
|
+
rrsEnabled: boolean;
|
|
16
15
|
}
|
|
17
16
|
/**
|
|
18
17
|
* Whether a block carries another account's strategy config (SD-151945).
|
|
19
18
|
*
|
|
20
19
|
* A stamped block is judged by its stamp. An unstamped one predates the stamp, so it
|
|
21
20
|
* falls back to the backend's own signal: a cross-account duplicate drops the block's
|
|
22
|
-
* strategy entry from the campaign URL map but leaves the HTML untouched. That
|
|
23
|
-
* only holds
|
|
24
|
-
*
|
|
21
|
+
* strategy entry from the campaign URL map but leaves the HTML untouched. That signal
|
|
22
|
+
* only holds while RRS is on, and only for the HTML the host loaded — which is what
|
|
23
|
+
* the caller, a load-time migrator, runs on.
|
|
25
24
|
*/
|
|
26
|
-
export declare function carriesForeignPartnerConfig({ config, blockId, partnerName, campaignUrls,
|
|
25
|
+
export declare function carriesForeignPartnerConfig({ config, blockId, partnerName, campaignUrls, rrsEnabled }: PartnerScopeInputs): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether an unstamped block's ownership can be decided at all. `carriesForeignPartnerConfig`
|
|
28
|
+
* answers `false` both for "clean" and for "cannot tell", and stamping on the latter would
|
|
29
|
+
* record a foreign block as this account's and silence every later check. A block with no
|
|
30
|
+
* strategy reference has nothing foreign to carry, so it is always decidable.
|
|
31
|
+
*/
|
|
32
|
+
export declare function canJudgeUnstampedBlock({ config, campaignUrls, rrsEnabled }: Pick<PartnerScopeInputs, 'config' | 'campaignUrls' | 'rrsEnabled'>): boolean;
|
|
27
33
|
export declare function withoutCustomAttributes(composition: string[]): string[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-harness stand-in for the cortex-fe MFE's shared `chat` store.
|
|
3
|
+
*
|
|
4
|
+
* `useCortexBlueprintBridge` resolves that store by id off the host's pinia at
|
|
5
|
+
* Guido's setup time, so a store registered after mount is never seen. Installing
|
|
6
|
+
* it here — before `<Guido>` renders — lets e2e drive the bridge through its real
|
|
7
|
+
* registration path instead of re-invoking the composable by hand.
|
|
8
|
+
*
|
|
9
|
+
* Activated with `?chatStore=true`; the instance is exposed on `window` so a test
|
|
10
|
+
* can push agent messages into it.
|
|
11
|
+
*/
|
|
12
|
+
export declare const installMockChatStore: () => void;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/** Terminal outcome of an editor write, keyed by `${blueprintId}:${version}`. */
|
|
2
|
+
export interface ApplyAck {
|
|
3
|
+
status: 'applied' | 'failed';
|
|
4
|
+
/** The `applyRequestedAt` of the click this ack answers — lets cortex drop stale acks. */
|
|
5
|
+
requestedAt: number;
|
|
6
|
+
/** Strictly increasing per key, so two acks in the same millisecond still order. */
|
|
7
|
+
ackAt: number;
|
|
8
|
+
/** Stringified — cortex JSON-clones store-derived payloads, an Error would not survive. */
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
1
11
|
/** The published editor snapshot — the shape a consumer reads off the shared store. */
|
|
2
12
|
export interface GuidoEmailEditorState {
|
|
3
13
|
/** Current Stripo HTML — stripe tables only, no DOCTYPE/wrapper. */
|
|
@@ -8,6 +18,10 @@ export interface GuidoEmailEditorState {
|
|
|
8
18
|
lastUpdatedAt: number;
|
|
9
19
|
/** Template id from the editor config, so a consumer can scope per-template. */
|
|
10
20
|
templateId: string;
|
|
21
|
+
/** True while a mounted Guido bridge is consuming the chat store. Gates cortex's Apply button. */
|
|
22
|
+
bridgeActive: boolean;
|
|
23
|
+
/** `${blueprintId}:${version}` → terminal outcome of the editor write, written only after it settles. */
|
|
24
|
+
applyAcks: Record<string, ApplyAck>;
|
|
11
25
|
}
|
|
12
26
|
/**
|
|
13
27
|
* Outbound contract Guido publishes to the host's shared Pinia singleton so a
|
|
@@ -18,17 +32,11 @@ export interface GuidoEmailEditorState {
|
|
|
18
32
|
* Published as `@useinsider/guido/editor-state` and from the root barrel, so a
|
|
19
33
|
* consumer imports this store instead of re-declaring one under the same id.
|
|
20
34
|
*
|
|
21
|
-
* State
|
|
22
|
-
*
|
|
23
|
-
* enforces: publishing the definition hands a consumer `$patch` as well, exactly
|
|
24
|
-
* as the runtime `pinia._s` probe always did.
|
|
35
|
+
* State-only by contract: cortex-fe reads `pinia.state.value['guidoEmailEditor']`, which misses
|
|
36
|
+
* actions and getters. Intended writers: `useGuidoStateBridge` and `useCortexBlueprintBridge`.
|
|
25
37
|
*
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
28
|
-
* id stays part of the contract. The internal Guido editor store keeps id
|
|
29
|
-
* `guidoEditor` — these are intentionally separate. The internal store carries
|
|
30
|
-
* UI state a consumer should not see; this public store carries the contract
|
|
31
|
-
* Guido is willing to share.
|
|
38
|
+
* The id `guidoEmailEditor` is part of the cross-MFE contract; the internal
|
|
39
|
+
* store `guidoEditor` is intentionally separate.
|
|
32
40
|
*/
|
|
33
41
|
export declare const useGuidoEmailEditorStore: import("pinia").StoreDefinition<"guidoEmailEditor", GuidoEmailEditorState, {
|
|
34
42
|
/** True once the bridge has published at least one snapshot. */
|
|
@@ -37,5 +45,7 @@ export declare const useGuidoEmailEditorStore: import("pinia").StoreDefinition<"
|
|
|
37
45
|
css: string;
|
|
38
46
|
lastUpdatedAt: number;
|
|
39
47
|
templateId: string;
|
|
48
|
+
bridgeActive: boolean;
|
|
49
|
+
applyAcks: Record<string, ApplyAck>;
|
|
40
50
|
} & import("pinia").PiniaCustomStateProperties<GuidoEmailEditorState>) => boolean;
|
|
41
51
|
}, {}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { OnboardingCardConfig, OnboardingType, OnboardingStoreState } from '@@/Types/onboarding';
|
|
2
2
|
export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoOnboarding", OnboardingStoreState, {
|
|
3
|
+
/** @deprecated Components use the type-specific getters. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
3
4
|
getOnboarding: (state: {
|
|
4
5
|
onboardings: {
|
|
5
6
|
newVersionPopup: {
|
|
@@ -390,6 +391,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
|
|
|
390
391
|
};
|
|
391
392
|
isFetched: boolean;
|
|
392
393
|
} & import("pinia").PiniaCustomStateProperties<OnboardingStoreState>) => (type: OnboardingType) => boolean;
|
|
394
|
+
/** @deprecated Components use getGenericCurrentCard / getTextBlockCurrentCard. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
393
395
|
getCurrentCard: (state: {
|
|
394
396
|
onboardings: {
|
|
395
397
|
newVersionPopup: {
|
|
@@ -2190,6 +2192,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
|
|
|
2190
2192
|
close(type: OnboardingType): Promise<void>;
|
|
2191
2193
|
next(type: OnboardingType): void;
|
|
2192
2194
|
previous(type: OnboardingType): void;
|
|
2195
|
+
/** @deprecated No caller in src/. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
2193
2196
|
updateCardPosition(type: OnboardingType, cardIndex: number, position: {
|
|
2194
2197
|
top: string;
|
|
2195
2198
|
position: string;
|
|
@@ -2198,6 +2201,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
|
|
|
2198
2201
|
onDiscoverNowClicked(): Promise<void>;
|
|
2199
2202
|
onRemindMeLater(): void;
|
|
2200
2203
|
onNewVersionPopupClose(): Promise<void>;
|
|
2204
|
+
/** @deprecated No caller in src/. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
2201
2205
|
isOnboardingActive(): boolean;
|
|
2202
2206
|
fetchUserModalState(): Promise<void>;
|
|
2203
2207
|
setUserModalState(modal: string, state: string, page: string): Promise<void>;
|
|
@@ -6,5 +6,10 @@ type RecommendationConfig = {
|
|
|
6
6
|
interface StoreState {
|
|
7
7
|
recommendationConfigs: RecommendationConfig[];
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated recommendationConfigs has no writer in src/, so the store is
|
|
11
|
+
* permanently empty and its only readers (useHtmlValidator.ts:496-497) are a
|
|
12
|
+
* no-op. Slated for deletion, see the SD-667788 dead-code ledger.
|
|
13
|
+
*/
|
|
9
14
|
export declare const useRecommendationStore: import("pinia").StoreDefinition<"guidoRecommendation", StoreState, {}, {}>;
|
|
10
15
|
export {};
|
|
@@ -3,12 +3,22 @@
|
|
|
3
3
|
* en-US -> MM/DD/YYYY
|
|
4
4
|
* en-GB -> DD/MM/YYYY
|
|
5
5
|
* tr-TR -> DD.MM.YYYY
|
|
6
|
+
*
|
|
7
|
+
* The non-string branches below are unreachable: the only caller chain is
|
|
8
|
+
* formatShortDate -> AssignStrategyDrawer.vue:74, which passes a non-empty string.
|
|
9
|
+
* The function itself is live — do not delete it with them.
|
|
6
10
|
*/
|
|
7
11
|
export declare const convertToDateObject: (date: string | number | Date | null | undefined) => Date;
|
|
8
12
|
export declare const locale: () => string;
|
|
9
13
|
export declare const localTz: string;
|
|
10
14
|
export declare const timezone: () => string;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated No caller in src/ and not exported from library.ts. Slated for deletion, see the SD-667788 dead-code ledger.
|
|
17
|
+
*/
|
|
11
18
|
export declare const hour12: () => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated No caller in src/ and not exported from library.ts. Slated for deletion, see the SD-667788 dead-code ledger.
|
|
21
|
+
*/
|
|
12
22
|
export declare const dateFormat: () => string;
|
|
13
23
|
/**
|
|
14
24
|
* @example 04/22/2024
|
|
@@ -24,6 +24,9 @@ export declare const getCsrfToken: () => string;
|
|
|
24
24
|
*/
|
|
25
25
|
export declare const getUrlParams: () => URLSearchParams;
|
|
26
26
|
export declare const getUrlParam: (paramName: string, defaultValue?: string) => string;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated No caller in src/. Slated for deletion, see the SD-667788 dead-code ledger.
|
|
29
|
+
*/
|
|
27
30
|
export declare const replaceString: (string?: string, values?: Record<string, string | number>, isRemoveEmptyValues?: boolean) => string;
|
|
28
31
|
/**
|
|
29
32
|
* Narrows an unknown API value to a printable string; anything that is neither
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const r = `.patch-session-container {
|
|
2
2
|
row-gap: 16px;
|
|
3
3
|
}
|
|
4
4
|
|
|
@@ -28,11 +28,7 @@ ue-vh-patch.selected .patch-wrapper {
|
|
|
28
28
|
.change-history-panel-wrapper .control-panel-header {
|
|
29
29
|
padding: 16px 0 16px 16px;
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
.change-history-panel-wrapper .header-control-panel-label {
|
|
33
|
-
grid-area: 1 / 1 / 2 / 12;
|
|
34
|
-
}
|
|
35
31
|
`;
|
|
36
32
|
export {
|
|
37
|
-
|
|
33
|
+
r as default
|
|
38
34
|
};
|
|
@@ -20,8 +20,10 @@ const t = () => ({
|
|
|
20
20
|
}), c = s("guidoOnboarding", {
|
|
21
21
|
state: () => a(),
|
|
22
22
|
getters: {
|
|
23
|
+
/** @deprecated Components use the type-specific getters. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
23
24
|
getOnboarding: (n) => (o) => n.onboardings[o],
|
|
24
25
|
isActive: (n) => (o) => n.onboardings[o].isActive,
|
|
26
|
+
/** @deprecated Components use getGenericCurrentCard / getTextBlockCurrentCard. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
25
27
|
getCurrentCard: (n) => (o) => {
|
|
26
28
|
const i = n.onboardings[o];
|
|
27
29
|
return i.config[i.cardIndex];
|
|
@@ -81,6 +83,7 @@ const t = () => ({
|
|
|
81
83
|
previous(n) {
|
|
82
84
|
this.onboardings[n].cardIndex > 0 && this.onboardings[n].cardIndex--;
|
|
83
85
|
},
|
|
86
|
+
/** @deprecated No caller in src/. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
84
87
|
updateCardPosition(n, o, i) {
|
|
85
88
|
const r = this.onboardings[n].config[o];
|
|
86
89
|
r && (r.top = i.top, r.position = i.position);
|
|
@@ -97,6 +100,7 @@ const t = () => ({
|
|
|
97
100
|
async onNewVersionPopupClose() {
|
|
98
101
|
await this.setUserModalState("newVersionPopup", "true", "Guido");
|
|
99
102
|
},
|
|
103
|
+
/** @deprecated No caller in src/. Slated for deletion, see the SD-667788 dead-code ledger. */
|
|
100
104
|
isOnboardingActive() {
|
|
101
105
|
return Object.values(this.onboardings).some((n) => n.isActive);
|
|
102
106
|
},
|