@useinsider/guido 2.1.0-beta.ab9a598 → 2.1.0-beta.abc38f2

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.
Files changed (23) hide show
  1. package/dist/@types/config/schemas.js +1 -1
  2. package/dist/components/organisms/base/Toaster.vue.js +4 -4
  3. package/dist/components/organisms/base/Toaster.vue2.js +12 -9
  4. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  5. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  6. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +11 -13
  7. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +54 -23
  8. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +7 -5
  9. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +34 -21
  10. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +11 -11
  11. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +48 -36
  12. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +11 -9
  13. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +58 -39
  14. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +116 -70
  15. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +8 -8
  16. package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +29 -0
  17. package/dist/guido.css +1 -1
  18. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +1 -0
  19. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +17 -1
  20. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -0
  21. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +18 -2
  22. package/dist/src/extensions/Blocks/Recommendation/validation/filterSchema.d.ts +15 -0
  23. package/package.json +2 -2
@@ -31,6 +31,8 @@ interface PerBlockState {
31
31
  filterGroup: number;
32
32
  /** Whether initial API data (filters, algorithms, products) has been fetched for this block */
33
33
  isInitialized: boolean;
34
+ /** Snapshot of filters taken when the drawer opens, used to revert on cancel */
35
+ filterSnapshot: Filter[] | null;
34
36
  }
35
37
  interface StoreState {
36
38
  recommendationCampaignUrls: Record<string, string>;
@@ -125,7 +127,9 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
125
127
  configVersion: number;
126
128
  } & import("pinia").PiniaCustomStateProperties<StoreState>): number;
127
129
  hasFilters(): boolean;
130
+ hasValidFilters(): boolean;
128
131
  getFilterGroupCount(): number;
132
+ getUniqueFilterGroups(): number[];
129
133
  getActivePredictiveAlgorithms: (state: {
130
134
  recommendationCampaignUrls: Record<string, string>;
131
135
  activePredictiveAlgorithms: number[];
@@ -203,19 +207,31 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
203
207
  patchCurrentBlockConfig(updates: Partial<PerBlockConfigs>, options?: {
204
208
  triggerRefetch?: boolean;
205
209
  }): void;
210
+ /**
211
+ * Creates a filter with the first available attribute and operator pre-selected.
212
+ */
213
+ createDefaultFilter(filterGroup: number, filterNumber: number): Filter;
206
214
  /**
207
215
  * Opens the filter selection drawer for the current block.
208
- * If no filters exist, initializes with a default empty filter
216
+ * Saves a snapshot of current filters for cancel/revert.
217
+ * If no filters exist, initializes with a default filter
209
218
  * so the user has a starting point for input.
210
219
  */
211
220
  openFilterDrawer(): void;
212
221
  /**
213
- * Closes the filter selection drawer for the current block
222
+ * Closes the filter selection drawer for the current block.
223
+ * Called after successful apply — discards the snapshot.
214
224
  */
215
225
  closeFilterDrawer(): void;
226
+ /**
227
+ * Cancels the filter selection drawer and reverts filters
228
+ * to the snapshot taken when the drawer was opened.
229
+ */
230
+ cancelFilterDrawer(): void;
216
231
  fetchRecommendationCreateData(): Promise<void>;
217
232
  fetchRecommendationFilters(): Promise<void>;
218
233
  addFilterGroup(filterGroup: number): void;
234
+ deleteFilterGroup(groupId: number): void;
219
235
  updateFilter(updatedFilter: Filter): void;
220
236
  deleteFilter(filter: Filter): void;
221
237
  addFilter(filter: Filter): void;
@@ -0,0 +1,15 @@
1
+ import type { Filter } from '@@/Types/recommendation';
2
+ import * as v from 'valibot';
3
+ export declare const FilterSchema: v.ObjectSchema<{
4
+ readonly type: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5
+ readonly attribute: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6
+ readonly operator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7
+ readonly innerGroupOperator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
8
+ readonly outerGroupOperator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
9
+ readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
10
+ readonly filterGroup: v.NumberSchema<undefined>;
11
+ readonly filterNumber: v.NumberSchema<undefined>;
12
+ readonly isValid: v.BooleanSchema<undefined>;
13
+ }, undefined>;
14
+ export declare function isFilterValid(filter: Filter): boolean;
15
+ export declare function getInvalidFilterFields(filter: Filter): Set<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.1.0-beta.ab9a598",
3
+ "version": "2.1.0-beta.abc38f2",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -32,7 +32,7 @@
32
32
  "license": "ISC",
33
33
  "dependencies": {
34
34
  "@stripoinc/ui-editor-extensions": "3.5.0",
35
- "@useinsider/design-system-vue": "0.14.20",
35
+ "@useinsider/design-system-vue": "0.14.28",
36
36
  "@vueuse/core": "11.3.0",
37
37
  "lodash-es": "4.17.21",
38
38
  "pinia": "2.3.1",