@gomusdev/web-components 3.5.0 → 3.7.0

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 (24) hide show
  1. package/README.md +16 -0
  2. package/dist-js/components/cart/components/itemTitles/Coupon.svelte.d.ts +1 -0
  3. package/dist-js/gomus-webcomponents.iife.js +108 -42
  4. package/dist-js/gomus-webcomponents.js +108 -42
  5. package/dist-js/gomus-webcomponents.min.iife.js +19 -19
  6. package/dist-js/gomus-webcomponents.min.js +2733 -2683
  7. package/dist-js/src/components/cart/mocks/gomusTicketMocks.d.ts +0 -3
  8. package/dist-js/src/components/ticketSelection/filters/coupon.d.ts +9 -0
  9. package/dist-js/src/components/ticketSelection/filters/coupon.spec.d.ts +1 -0
  10. package/dist-js/src/components/ticketSelection/filters/registry.d.ts +1 -1
  11. package/dist-js/src/components/ticketSelection/filters/types.d.ts +1 -1
  12. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.d.ts +3 -3
  13. package/dist-js/src/factories/CartItemFactories.d.ts +4 -4
  14. package/dist-js/src/factories/CouponFactories.d.ts +4 -0
  15. package/dist-js/src/lib/models/cart/CartItem.d.ts +1 -1
  16. package/dist-js/src/lib/models/cart/cart.svelte.d.ts +6 -6
  17. package/dist-js/src/lib/models/cart/localStorage.svelte.d.ts +1 -1
  18. package/dist-js/src/lib/models/cart/types.d.ts +4 -1
  19. package/dist-js/src/lib/models/coupon/UICoupon.spec.d.ts +1 -0
  20. package/dist-js/src/lib/models/coupon/UICoupon.svelte.d.ts +25 -0
  21. package/dist-js/src/lib/models/eventTicket/UIEventTicket.svelte.d.ts +1 -2
  22. package/dist-js/src/lib/models/ticket/UITicket.svelte.d.ts +1 -4
  23. package/dist-js/src/lib/stores/shop.svelte.d.ts +13 -3
  24. package/package.json +2 -2
package/README.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.7.0 (2026-06-16)
4
+
5
+ ### Features
6
+
7
+ * **interactive-editor:** add HTML/CSS/JS tab navigation
8
+
9
+ ## 3.6.0 (2026-06-15)
10
+
11
+ ### Features
12
+
13
+ * **ticket-selection:** add coupons:giftcard filter for selling gift cards
14
+
15
+ ### Bug Fixes
16
+
17
+ * **models:** make product type guards null/undefined-safe
18
+
3
19
  ## 3.5.0 (2026-06-15)
4
20
 
5
21
  ### Features
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -7193,7 +7193,7 @@ createHTML: (html) => {
7193
7193
  /** Returns a regex for validating an RFC 9562/4122 UUID.
7194
7194
  *
7195
7195
  * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */
7196
- var uuid$2 = (version) => {
7196
+ var uuid = (version) => {
7197
7197
  if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
7198
7198
  return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
7199
7199
  };
@@ -7761,8 +7761,8 @@ createHTML: (html) => {
7761
7761
  v8: 8
7762
7762
  }[def.version];
7763
7763
  if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`);
7764
- def.pattern ?? (def.pattern = uuid$2(v));
7765
- } else def.pattern ?? (def.pattern = uuid$2());
7764
+ def.pattern ?? (def.pattern = uuid(v));
7765
+ } else def.pattern ?? (def.pattern = uuid());
7766
7766
  $ZodStringFormat.init(inst, def);
7767
7767
  });
7768
7768
  var $ZodEmail = /*@__PURE__*/ $constructor("$ZodEmail", (inst, def) => {
@@ -11787,14 +11787,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11787
11787
  }
11788
11788
  //#endregion
11789
11789
  //#region src/lib/models/ticket/UITicket.svelte.ts
11790
- var uuid$1 = 1;
11791
11790
  function isUITicket(x) {
11792
- return x.type === "Ticket";
11791
+ return x?.type === "Ticket";
11793
11792
  }
11794
11793
  function createUITicket(apiTicket, options) {
11795
11794
  return {
11796
11795
  ...apiTicket,
11797
- uid: uuid$1++,
11798
11796
  selectedTime: options?.selectedTime ?? "",
11799
11797
  type: "Ticket",
11800
11798
  subtype: {
@@ -11837,12 +11835,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11837
11835
  //#endregion
11838
11836
  //#region src/lib/models/eventTicket/UIEventTicket.svelte.ts
11839
11837
  function isEventTicket(x) {
11840
- return x.type === "Event";
11838
+ return x?.type === "Event";
11841
11839
  }
11842
11840
  function isScaleEventTicket(x) {
11843
11841
  return isEventTicket(x) && x.subtype === "scale";
11844
11842
  }
11845
- var uuid = 1;
11846
11843
  function buildUIEventTicket(apiTicket, dateId, options) {
11847
11844
  const product = {
11848
11845
  type: "Event",
@@ -11860,7 +11857,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11860
11857
  options.price_description = apiTicket.description || "";
11861
11858
  }
11862
11859
  return {
11863
- uid: uuid++,
11864
11860
  dateId,
11865
11861
  minAvailableCapacity: 0,
11866
11862
  selectedTime: "",
@@ -12060,6 +12056,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12060
12056
  };
12061
12057
  default: throw new Error(`(orderAttributes) Unhandled Event subtype: ${product}`);
12062
12058
  }
12059
+ case "Coupon": return {
12060
+ ...base,
12061
+ quantity: this.quantity
12062
+ };
12063
12063
  default: throw new Error(`(orderAttributes) Unhandled product type: ${product}`);
12064
12064
  }
12065
12065
  },
@@ -12128,6 +12128,24 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12128
12128
  }
12129
12129
  }
12130
12130
  //#endregion
12131
+ //#region src/lib/models/coupon/UICoupon.svelte.ts
12132
+ /**
12133
+ * A purchasable coupon (German "Wertgutschein" = value voucher / gift card).
12134
+ *
12135
+ * Unlike tickets and event prices, a coupon is a fixed-value product: the API
12136
+ * returns predefined coupons and the order payload (`coupon_cart_item`) only
12137
+ * carries `id` + `quantity`. `coupon_index` has no `description`, so we default
12138
+ * it to an empty string to satisfy the shared `BaseProduct` shape.
12139
+ */
12140
+ function createUICoupon(apiCoupon) {
12141
+ return {
12142
+ ...apiCoupon,
12143
+ description: "",
12144
+ tax_included: true,
12145
+ type: "Coupon"
12146
+ };
12147
+ }
12148
+ //#endregion
12131
12149
  //#region src/lib/models/cart/localStorage.svelte.ts
12132
12150
  var KEY$7 = "go-cart";
12133
12151
  var persistCart = (items, coupons) => localStorage.setItem(KEY$7, JSON.stringify({
@@ -12150,6 +12168,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12150
12168
  time: cartItem.time,
12151
12169
  quantity: cartItem.quantity
12152
12170
  });
12171
+ case "Coupon": return createCartItem(createUICoupon(cartItem.product), { quantity: cartItem.quantity });
12153
12172
  default: throw new Error(`Unhandled case: ${type}`);
12154
12173
  }
12155
12174
  }
@@ -12394,6 +12413,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12394
12413
  case "scale": return "seats";
12395
12414
  default: throw new Error(`(getMaxAvailability) Unhandled case: ${subtype2}`);
12396
12415
  }
12416
+ case "Coupon": return "unlimited";
12397
12417
  default: throw new Error(`(getMaxAvailability) Unhandled case: ${type}`);
12398
12418
  }
12399
12419
  },
@@ -13667,6 +13687,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13667
13687
  getCouponSaleByBarcode(token) {
13668
13688
  return this.fetchAndCache(`/api/v4/coupon_sales/barcode/${token}`, `coupon_sale_barcode_${token}`, "coupon_sale");
13669
13689
  }
13690
+ getCoupons() {
13691
+ return this.fetchAndCache("/api/v4/coupons", "coupons", "coupons", { query: { online_available: true } });
13692
+ }
13670
13693
  getEventDetailsOnDate(eventId, dateId) {
13671
13694
  return this.fetchAndCache(`/api/v4/events/${eventId}/dates/${dateId}`, `/api/v4/events/${eventId}/dates/${dateId}`, "date");
13672
13695
  }
@@ -13936,7 +13959,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13936
13959
  var getPersonalizationDetails = createGetDetails(KEY$5);
13937
13960
  //#endregion
13938
13961
  //#region src/components/annualTicketPersonalization/components/AnnualTicketPersonalization.svelte
13939
- var root$51 = /* @__PURE__ */ from_html(`<li><a> </a></li>`);
13962
+ var root$52 = /* @__PURE__ */ from_html(`<li><a> </a></li>`);
13940
13963
  var root_1$17 = /* @__PURE__ */ from_html(`<ul class="go-annual-ticket"><li class="go-annual-ticket-title"> </li> <li class="go-annual-ticket-personalization-count"> </li> <!></ul>`);
13941
13964
  function AnnualTicketPersonalization($$anchor, $$props) {
13942
13965
  push($$props, true);
@@ -13971,7 +13994,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13971
13994
  reset(li_1);
13972
13995
  var node_2 = sibling(li_1, 2);
13973
13996
  var consequent = ($$anchor) => {
13974
- var li_2 = root$51();
13997
+ var li_2 = root$52();
13975
13998
  var a = child(li_2);
13976
13999
  var text_2 = child(a, true);
13977
14000
  reset(a);
@@ -14646,7 +14669,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14646
14669
  }
14647
14670
  //#endregion
14648
14671
  //#region src/components/forms/ui/generic/Form.svelte
14649
- var root$50 = /* @__PURE__ */ from_html(`<go-all-fields></go-all-fields> <go-form-feedback><go-errors-feedback></go-errors-feedback> <go-success-feedback></go-success-feedback></go-form-feedback> <go-submit> </go-submit>`, 3);
14672
+ var root$51 = /* @__PURE__ */ from_html(`<go-all-fields></go-all-fields> <go-form-feedback><go-errors-feedback></go-errors-feedback> <go-success-feedback></go-success-feedback></go-form-feedback> <go-submit> </go-submit>`, 3);
14650
14673
  function Form($$anchor, $$props) {
14651
14674
  push($$props, true);
14652
14675
  let formId = prop($$props, "formId", 7), custom = prop($$props, "custom", 7);
@@ -14691,7 +14714,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14691
14714
  var fragment = comment();
14692
14715
  var node = first_child(fragment);
14693
14716
  var consequent = ($$anchor) => {
14694
- var fragment_1 = root$50();
14717
+ var fragment_1 = root$51();
14695
14718
  var go_submit = sibling(sibling(first_child(fragment_1), 2), 2);
14696
14719
  var text = child(go_submit, true);
14697
14720
  reset(go_submit);
@@ -14718,7 +14741,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14718
14741
  }, [], ["details"]));
14719
14742
  //#endregion
14720
14743
  //#region src/components/auth/passwordReset/PasswordReset.svelte
14721
- var root$49 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
14744
+ var root$50 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
14722
14745
  function PasswordReset($$anchor, $$props) {
14723
14746
  push($$props, true);
14724
14747
  let custom = prop($$props, "custom", 7, false);
@@ -14751,7 +14774,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14751
14774
  flushSync();
14752
14775
  }
14753
14776
  };
14754
- var go_form = root$49();
14777
+ var go_form = root$50();
14755
14778
  set_custom_element_data(go_form, "formId", "passwordReset");
14756
14779
  template_effect(() => set_custom_element_data(go_form, "custom", custom()));
14757
14780
  event("submit", go_form, passwordReset);
@@ -15006,6 +15029,29 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15006
15029
  var setCartDetails = createSetDetails(KEY$3);
15007
15030
  var getCartDetails = createGetDetails(KEY$3);
15008
15031
  //#endregion
15032
+ //#region src/components/cart/components/itemTitles/Coupon.svelte
15033
+ var root$49 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span>`);
15034
+ function Coupon($$anchor, $$props) {
15035
+ push($$props, true);
15036
+ let cartItem = prop($$props, "cartItem", 7);
15037
+ var $$exports = {
15038
+ get cartItem() {
15039
+ return cartItem();
15040
+ },
15041
+ set cartItem($$value) {
15042
+ cartItem($$value);
15043
+ flushSync();
15044
+ }
15045
+ };
15046
+ var span = root$49();
15047
+ var text = child(span, true);
15048
+ reset(span);
15049
+ template_effect(() => set_text(text, cartItem().product.title));
15050
+ append($$anchor, span);
15051
+ return pop($$exports);
15052
+ }
15053
+ create_custom_element(Coupon, { cartItem: {} }, [], [], { mode: "open" });
15054
+ //#endregion
15009
15055
  //#region src/components/cart/components/itemTitles/Event.svelte
15010
15056
  var root$48 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span><span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
15011
15057
  var root_1$16 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"><span class="go-cart-item-title-event-title"> </span><span class="go-cart-item-title-ticket-title"> </span></span><!>`, 1);
@@ -15097,7 +15143,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15097
15143
  append($$anchor, span_2);
15098
15144
  };
15099
15145
  if_block(node_1, ($$render) => {
15100
- if (cartItem().product.subtype === "timeslot") $$render(consequent);
15146
+ if (cartItem().product.type === "Ticket" && cartItem().product.subtype === "timeslot") $$render(consequent);
15101
15147
  });
15102
15148
  template_effect(($0) => set_text(text_1, $0), [() => formatDate(cartItem().time, {
15103
15149
  month: "numeric",
@@ -15197,7 +15243,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15197
15243
  };
15198
15244
  var fragment = comment();
15199
15245
  var node = first_child(fragment);
15200
- var consequent_5 = ($$anchor) => {
15246
+ var consequent_6 = ($$anchor) => {
15201
15247
  var article = root_6$2();
15202
15248
  var ul = child(article);
15203
15249
  var li = child(ul);
@@ -15212,16 +15258,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15212
15258
  return displayItem();
15213
15259
  } });
15214
15260
  };
15261
+ var consequent_2 = ($$anchor) => {
15262
+ Coupon($$anchor, { get cartItem() {
15263
+ return displayItem();
15264
+ } });
15265
+ };
15215
15266
  if_block(node_1, ($$render) => {
15216
15267
  if (displayItem().product.type === "Ticket") $$render(consequent);
15217
15268
  else if (displayItem().product.type === "Event") $$render(consequent_1, 1);
15269
+ else if (displayItem().product.type === "Coupon") $$render(consequent_2, 2);
15218
15270
  });
15219
15271
  reset(li);
15220
15272
  var li_1 = sibling(li, 2);
15221
15273
  var node_2 = child(li_1);
15222
- var consequent_2 = ($$anchor) => {
15223
- var fragment_3 = root$46();
15224
- var s = first_child(fragment_3);
15274
+ var consequent_3 = ($$anchor) => {
15275
+ var fragment_4 = root$46();
15276
+ var s = first_child(fragment_4);
15225
15277
  var text = child(s, true);
15226
15278
  reset(s);
15227
15279
  var span = sibling(s, 2);
@@ -15231,7 +15283,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15231
15283
  set_text(text, $0);
15232
15284
  set_text(text_1, $1);
15233
15285
  }, [() => formatCurrency(displayItem().display.originalPrice), () => formatCurrency(displayItem().final_price_cents)]);
15234
- append($$anchor, fragment_3);
15286
+ append($$anchor, fragment_4);
15235
15287
  };
15236
15288
  var alternate = ($$anchor) => {
15237
15289
  var span_1 = root_1$14();
@@ -15241,13 +15293,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15241
15293
  append($$anchor, span_1);
15242
15294
  };
15243
15295
  if_block(node_2, ($$render) => {
15244
- if (displayItem().display?.discounted) $$render(consequent_2);
15296
+ if (displayItem().display?.discounted) $$render(consequent_3);
15245
15297
  else $$render(alternate, -1);
15246
15298
  });
15247
15299
  reset(li_1);
15248
15300
  var li_2 = sibling(li_1, 2);
15249
15301
  var node_3 = child(li_2);
15250
- var consequent_3 = ($$anchor) => {
15302
+ var consequent_4 = ($$anchor) => {
15251
15303
  var span_2 = root_2$10();
15252
15304
  var text_3 = child(span_2, true);
15253
15305
  reset(span_2);
@@ -15274,12 +15326,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15274
15326
  append($$anchor, select);
15275
15327
  };
15276
15328
  if_block(node_3, ($$render) => {
15277
- if (preview()) $$render(consequent_3);
15329
+ if (preview()) $$render(consequent_4);
15278
15330
  else $$render(alternate_1, -1);
15279
15331
  });
15280
15332
  reset(li_2);
15281
15333
  var node_4 = sibling(li_2, 2);
15282
- var consequent_4 = ($$anchor) => {
15334
+ var consequent_5 = ($$anchor) => {
15283
15335
  var li_3 = root_5$2();
15284
15336
  var button = child(li_3);
15285
15337
  reset(li_3);
@@ -15288,7 +15340,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15288
15340
  append($$anchor, li_3);
15289
15341
  };
15290
15342
  if_block(node_4, ($$render) => {
15291
- if (!preview()) $$render(consequent_4);
15343
+ if (!preview()) $$render(consequent_5);
15292
15344
  });
15293
15345
  var li_4 = sibling(node_4, 2);
15294
15346
  var text_5 = child(li_4, true);
@@ -15299,7 +15351,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15299
15351
  append($$anchor, article);
15300
15352
  };
15301
15353
  if_block(node, ($$render) => {
15302
- if (get$2(capacity)) $$render(consequent_5);
15354
+ if (get$2(capacity)) $$render(consequent_6);
15303
15355
  });
15304
15356
  append($$anchor, fragment);
15305
15357
  return pop($$exports);
@@ -32349,11 +32401,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32349
32401
  "events:admission",
32350
32402
  "events:admission:day",
32351
32403
  "events:admission:timeslot",
32352
- "events:price"
32404
+ "events:price",
32405
+ "coupon"
32353
32406
  ];
32354
32407
  //#endregion
32355
32408
  //#region src/components/ticketSelection/filters/ticket/timeslot.ts
32356
- var filter$10 = {
32409
+ var filter$11 = {
32357
32410
  name: "ticket:timeslot",
32358
32411
  calendarEndpoint: "tickets",
32359
32412
  apiToken: "time_slot",
@@ -32399,7 +32452,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32399
32452
  };
32400
32453
  //#endregion
32401
32454
  //#region src/components/ticketSelection/filters/ticket/day.ts
32402
- var filter$9 = {
32455
+ var filter$10 = {
32403
32456
  name: "ticket:day",
32404
32457
  calendarEndpoint: "tickets",
32405
32458
  apiToken: "normal",
@@ -32432,7 +32485,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32432
32485
  };
32433
32486
  //#endregion
32434
32487
  //#region src/components/ticketSelection/filters/ticket/annual.ts
32435
- var filter$8 = {
32488
+ var filter$9 = {
32436
32489
  name: "ticket:annual",
32437
32490
  calendarEndpoint: null,
32438
32491
  apiToken: "annual",
@@ -32455,7 +32508,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32455
32508
  };
32456
32509
  //#endregion
32457
32510
  //#region src/components/ticketSelection/filters/event/admission.ts
32458
- var filter$7 = {
32511
+ var filter$8 = {
32459
32512
  name: "event:admission",
32460
32513
  calendarEndpoint: "events",
32461
32514
  requires: [{
@@ -32495,7 +32548,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32495
32548
  };
32496
32549
  //#endregion
32497
32550
  //#region src/components/ticketSelection/filters/event/admission-day.ts
32498
- var filter$6 = {
32551
+ var filter$7 = {
32499
32552
  name: "event:admission:day",
32500
32553
  calendarEndpoint: "events",
32501
32554
  requires: [{
@@ -32529,7 +32582,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32529
32582
  };
32530
32583
  //#endregion
32531
32584
  //#region src/components/ticketSelection/filters/event/admission-timeslot.ts
32532
- var filter$5 = {
32585
+ var filter$6 = {
32533
32586
  name: "event:admission:timeslot",
32534
32587
  calendarEndpoint: "events",
32535
32588
  requires: [
@@ -32579,7 +32632,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32579
32632
  };
32580
32633
  //#endregion
32581
32634
  //#region src/components/ticketSelection/filters/event/price.ts
32582
- var filter$4 = {
32635
+ var filter$5 = {
32583
32636
  name: "event:price",
32584
32637
  calendarEndpoint: "events",
32585
32638
  requires: [{
@@ -32632,13 +32685,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32632
32685
  //#endregion
32633
32686
  //#region src/components/ticketSelection/filters/registry.ts
32634
32687
  var REGISTRY = {
32635
- "ticket:timeslot": filter$10,
32636
- "ticket:day": filter$9,
32637
- "ticket:annual": filter$8,
32638
- "event:admission": filter$7,
32639
- "event:admission:day": filter$6,
32640
- "event:admission:timeslot": filter$5,
32641
- "event:price": filter$4,
32688
+ "ticket:timeslot": filter$11,
32689
+ "ticket:day": filter$10,
32690
+ "ticket:annual": filter$9,
32691
+ "event:admission": filter$8,
32692
+ "event:admission:day": filter$7,
32693
+ "event:admission:timeslot": filter$6,
32694
+ "event:price": filter$5,
32642
32695
  "events:admission": {
32643
32696
  name: "events:admission",
32644
32697
  calendarEndpoint: "events",
@@ -32807,6 +32860,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32807
32860
  if (date.seats) shop.capacityManager.addSeats(date.id, date.seats);
32808
32861
  }
32809
32862
  }
32863
+ },
32864
+ coupon: {
32865
+ name: "coupon",
32866
+ calendarEndpoint: null,
32867
+ requires: [],
32868
+ isCalendarVisible: () => false,
32869
+ isTimeslotsVisible: () => false,
32870
+ isTicketsVisible: () => true,
32871
+ loadTimeslots: async () => {},
32872
+ async loadProducts(segment) {
32873
+ const coupons = await shop.asyncFetch(() => shop.getCoupons());
32874
+ for (const coupon of coupons ?? []) segment.preCart.addItem(createCartItem(createUICoupon(coupon)));
32875
+ }
32810
32876
  }
32811
32877
  };
32812
32878
  function getFilter(name) {