@gomusdev/web-components 1.57.0 → 2.1.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 (42) hide show
  1. package/dist-js/gomus-webcomponents.iife.js +594 -391
  2. package/dist-js/gomus-webcomponents.js +594 -391
  3. package/dist-js/gomus-webcomponents.min.css +1 -0
  4. package/dist-js/gomus-webcomponents.min.iife.js +13 -0
  5. package/dist-js/gomus-webcomponents.min.js +27299 -0
  6. package/dist-js/src/components/ticketSelection/TicketSelectionDetails.svelte.d.ts +6 -6
  7. package/dist-js/src/components/ticketSelection/filters/_helpers.d.ts +4 -0
  8. package/dist-js/src/components/ticketSelection/filters/event/admission-day.d.ts +3 -0
  9. package/dist-js/src/components/ticketSelection/filters/event/admission-timeslot.d.ts +3 -0
  10. package/dist-js/src/components/ticketSelection/filters/event/admission.d.ts +3 -0
  11. package/dist-js/src/components/ticketSelection/filters/event/price.d.ts +3 -0
  12. package/dist-js/src/components/ticketSelection/filters/events/admission-day.d.ts +3 -0
  13. package/dist-js/src/components/ticketSelection/filters/events/admission-timeslot.d.ts +3 -0
  14. package/dist-js/src/components/ticketSelection/filters/events/admission.d.ts +3 -0
  15. package/dist-js/src/components/ticketSelection/filters/events/price.d.ts +3 -0
  16. package/dist-js/src/components/ticketSelection/filters/events/spec/admission-day.spec.d.ts +1 -0
  17. package/dist-js/src/components/ticketSelection/filters/events/spec/admission-timeslot.spec.d.ts +1 -0
  18. package/dist-js/src/components/ticketSelection/filters/events/spec/admission.spec.d.ts +1 -0
  19. package/dist-js/src/components/ticketSelection/filters/events/spec/price.spec.d.ts +1 -0
  20. package/dist-js/src/components/ticketSelection/filters/registry.d.ts +4 -0
  21. package/dist-js/src/components/ticketSelection/filters/ticket/annual.d.ts +3 -0
  22. package/dist-js/src/components/ticketSelection/filters/ticket/day.d.ts +3 -0
  23. package/dist-js/src/components/ticketSelection/filters/ticket/spec/annual.spec.d.ts +1 -0
  24. package/dist-js/src/components/ticketSelection/filters/ticket/spec/day.spec.d.ts +1 -0
  25. package/dist-js/src/components/ticketSelection/filters/ticket/spec/timeslot.spec.d.ts +1 -0
  26. package/dist-js/src/components/ticketSelection/filters/ticket/timeslot.d.ts +3 -0
  27. package/dist-js/src/components/ticketSelection/filters/types.d.ts +23 -0
  28. package/dist-js/src/components/ticketSelection/subcomponents/calendar/lib/calendar.svelte.d.ts +2 -1
  29. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.d.ts +6 -4
  30. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/spec/SegmentDetails.spec.d.ts +1 -0
  31. package/dist-js/src/components/ticketSelection/subcomponents/timeslots/lib/lib.svelte.d.ts +2 -1
  32. package/package.json +5 -2
  33. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/annualTickets.svelte.d.ts +0 -2
  34. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/dayTickets.svelte.d.ts +0 -2
  35. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_ScaledPriceTickets.svelte.d.ts +0 -2
  36. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_Tickets.svelte.d.ts +0 -2
  37. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/events/events_ScaledPriceTickets.svelte.d.ts +0 -2
  38. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/timeslotTickets.svelte.d.ts +0 -2
  39. /package/dist-js/src/components/ticketSelection/{subcomponents/tickets/subcomponents/segment/TicketSegment.spec.d.ts → filters/event/spec/admission-day.spec.d.ts} +0 -0
  40. /package/dist-js/src/components/ticketSelection/{subcomponents/tickets/subcomponents/segment/lib/event/event_ScaledPriceTickets.spec.d.ts → filters/event/spec/admission-timeslot.spec.d.ts} +0 -0
  41. /package/dist-js/src/components/ticketSelection/{subcomponents/tickets/subcomponents/segment/lib/event/event_Tickets.svelte.spec.d.ts → filters/event/spec/admission.spec.d.ts} +0 -0
  42. /package/dist-js/src/components/ticketSelection/{subcomponents/tickets/subcomponents/segment/lib/events/events_ScaledPriceTickets.spec.d.ts → filters/event/spec/price.spec.d.ts} +0 -0
@@ -2,12 +2,12 @@ import { Cart } from '../../../lib/models/cart/cart.svelte.ts';
2
2
  import { SegmentDetails } from '../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
3
3
  import { Details as TimeslotDetails } from '../../../components/ticketSelection/subcomponents/timeslots/lib/lib.svelte.ts';
4
4
  import { CalendarDate } from '@internationalized/date';
5
- export type TicketSelectionMode = 'ticket' | 'event' | 'tour';
6
- export declare const validTicketSelectionFilters: readonly ["timeslot", "day", "annual", "event:scaled-price", "event:ticket", "events:scaled-price"];
7
- export type TicketSelectionFilter = (typeof validTicketSelectionFilters)[number];
5
+ import { validFilterNames } from './filters/registry.ts';
6
+ import { FilterName } from './filters/types.ts';
7
+ export { validFilterNames as validTicketSelectionFilters };
8
+ export type TicketSelectionFilter = FilterName;
8
9
  export declare class TicketSelectionDetails {
9
10
  uid: number;
10
- mode: TicketSelectionMode | undefined;
11
11
  filters: TicketSelectionFilter[] | undefined;
12
12
  eventIds: number[] | undefined;
13
13
  museumIds: number[] | undefined;
@@ -21,9 +21,9 @@ export declare class TicketSelectionDetails {
21
21
  preCarts: Cart[];
22
22
  timeslotDetails: TimeslotDetails | undefined;
23
23
  addTicketSegment(ticketGroup: SegmentDetails): void;
24
- get isTimeslotsVisible(): boolean;
25
- get isTicketsVisible(): boolean | undefined;
26
24
  get isCalendarVisible(): boolean;
25
+ get isTimeslotsVisible(): boolean;
26
+ get isTicketsVisible(): boolean;
27
27
  }
28
28
  export declare const setTicketSelectionDetails: (host: HTMLElement, details: TicketSelectionDetails) => void;
29
29
  export declare const getTicketSelectionDetails: (host: HTMLElement, options?: {
@@ -0,0 +1,4 @@
1
+ import { TicketSelectionDetails } from '../../../../components/ticketSelection/TicketSelectionDetails.svelte.ts';
2
+ import { DateDetails } from '@gomus/types';
3
+ export declare function filterDatesInWindow(dates: ReadonlyArray<DateDetails>, selectedDate: string, selectedTime: string): DateDetails[];
4
+ export declare function loadEventsTimeslots(tsd: TicketSelectionDetails): Promise<void>;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,4 @@
1
+ import { FilterModule, FilterName } from './types.ts';
2
+ export declare function getFilter(name: FilterName): FilterModule;
3
+ export declare function allFilters(): FilterModule[];
4
+ export declare const validFilterNames: readonly ["ticket:timeslot", "ticket:day", "ticket:annual", "event:admission", "event:admission:day", "event:admission:timeslot", "event:price", "events:admission", "events:admission:day", "events:admission:timeslot", "events:price"];
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,3 @@
1
+ import { FilterModule } from '../types.ts';
2
+ declare const filter: FilterModule;
3
+ export default filter;
@@ -0,0 +1,23 @@
1
+ import { TicketSelectionDetails } from '../../../../components/ticketSelection/TicketSelectionDetails.svelte.ts';
2
+ import { SegmentDetails } from '../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
3
+ export declare const FILTER_NAMES: readonly ["ticket:timeslot", "ticket:day", "ticket:annual", "event:admission", "event:admission:day", "event:admission:timeslot", "event:price", "events:admission", "events:admission:day", "events:admission:timeslot", "events:price"];
4
+ export type FilterName = (typeof FILTER_NAMES)[number];
5
+ export type Required = {
6
+ kind: 'tsd';
7
+ field: keyof TicketSelectionDetails;
8
+ } | {
9
+ kind: 'segment';
10
+ field: keyof SegmentDetails;
11
+ };
12
+ export type CalendarEndpoint = 'tickets' | 'events' | null;
13
+ export interface FilterModule {
14
+ name: FilterName;
15
+ isCalendarVisible(tsd: TicketSelectionDetails): boolean;
16
+ isTimeslotsVisible(tsd: TicketSelectionDetails): boolean;
17
+ isTicketsVisible(tsd: TicketSelectionDetails): boolean;
18
+ loadProducts(segment: SegmentDetails): Promise<void>;
19
+ loadTimeslots(tsd: TicketSelectionDetails): Promise<void>;
20
+ calendarEndpoint: CalendarEndpoint;
21
+ apiToken?: string;
22
+ requires: ReadonlyArray<Required>;
23
+ }
@@ -10,10 +10,11 @@ export declare class Calendar {
10
10
  details: TicketSelectionDetails | undefined;
11
11
  startAt: CalendarDate;
12
12
  selected: CalendarDate | undefined;
13
+ get endpoint(): 'tickets' | 'events' | null;
13
14
  get dates(): CalendarDatesDepthAvailabilityStatus | undefined;
14
15
  isDateDisabled(date: DateValue): boolean;
15
16
  isDateUnavailable(date: DateValue): boolean;
16
- get apiFilters(): string[] | undefined;
17
+ get apiFilters(): (string | undefined)[] | undefined;
17
18
  params(startAt: CalendarDate): {
18
19
  locale?: string;
19
20
  by_bookable?: boolean;
@@ -1,6 +1,7 @@
1
1
  import { TicketSelectionDetails } from '../../../../../../../components/ticketSelection/TicketSelectionDetails.svelte.ts';
2
2
  import { DetailsWrapper } from '../../../../../../../lib/helpers/context.svelte.js';
3
- export type TicketSegmentFilter = 'timeslot' | 'annual' | 'custom' | 'day' | 'event:scaled-price' | 'event:ticket' | 'events:scaled-price';
3
+ import { FilterName } from '../../../../../../../components/ticketSelection/filters/types.ts';
4
+ export type TicketSegmentFilter = FilterName | 'custom';
4
5
  export declare class SegmentDetails {
5
6
  preCart: {
6
7
  items: {
@@ -128,7 +129,7 @@ export declare class SegmentDetails {
128
129
  removeCoupon(token: string): void;
129
130
  clearCoupons(): void;
130
131
  };
131
- filters: TicketSegmentFilter;
132
+ filters: TicketSegmentFilter[] | undefined;
132
133
  ticketSelectionDetails: TicketSelectionDetails | undefined;
133
134
  dateId: number | undefined;
134
135
  limit: number | undefined;
@@ -137,10 +138,11 @@ export declare class SegmentDetails {
137
138
  languageIds: number[] | undefined;
138
139
  catchWordIds: number[] | undefined;
139
140
  museumIds: number[] | undefined;
140
- constructor(type: TicketSegmentFilter, tsdWrapper: DetailsWrapper<TicketSelectionDetails>);
141
+ constructor(filters: TicketSegmentFilter | TicketSegmentFilter[] | undefined, tsdWrapper: DetailsWrapper<TicketSelectionDetails>);
142
+ get effectiveFilters(): TicketSegmentFilter[];
141
143
  clear(): void;
142
144
  toString(): string;
143
- loadTickets(): void;
145
+ loadTickets(): Promise<void>;
144
146
  }
145
147
  export declare const setSegmentDetails: (host: HTMLElement, details: SegmentDetails) => void;
146
148
  export declare const getSegmentDetails: (host: HTMLElement, options?: {
@@ -3,7 +3,8 @@ import { DetailsWrapper } from '../../../../../../lib/helpers/context.svelte.ts'
3
3
  import { TimeSlot } from '@gomus/types';
4
4
  export declare class Details {
5
5
  tsd: TicketSelectionDetails | undefined;
6
+ timeslots: TimeSlot[];
6
7
  constructor(tsdWrapper?: DetailsWrapper<TicketSelectionDetails>);
7
8
  get boockedOutCount(): number;
8
- get timeslots(): TimeSlot[];
9
+ recalculateCapacities(): void;
9
10
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "Giantmonkey GmbH"
5
5
  },
6
6
  "license": "MIT",
7
- "version": "1.57.0",
7
+ "version": "2.1.0",
8
8
  "type": "module",
9
9
  "main": "./dist-js/gomus-webcomponents.iife.js",
10
10
  "module": "./dist-js/gomus-webcomponents.iife.js",
@@ -17,7 +17,8 @@
17
17
  "test:a11y": "sh src/axe-a11y/test-a11y.sh",
18
18
  "npm:publish": "pnpm version patch && pnpm build && npm publish --tag latest",
19
19
  "Dev:Personalization": "vite dev -c vite.personalization.config.ts",
20
- "build": "vite build",
20
+ "build": "vite build && MINIFY=1 vite build",
21
+ "build:analyze": "vite build -c scripts/analyze-bundle/vite.config.ts && node scripts/analyze-bundle/analyze.mjs",
21
22
  "preview": "vite preview",
22
23
  "check": "svelte-check --tsconfig ./tsconfig.json && tsc -p tsconfig.node.json --output human-verbose",
23
24
  "prettier": "prettier --write \"src/**/*.{ts,js,svelte,css,scss,html,json,md}\"",
@@ -93,9 +94,11 @@
93
94
  "pretty": "^2.0.0",
94
95
  "radash": "^12.1.1",
95
96
  "remark-gfm": "^4.0.1",
97
+ "rollup-plugin-visualizer": "^7.0.1",
96
98
  "sass-embedded": "^1.97.3",
97
99
  "semantic-release": "^25.0.2",
98
100
  "shops": "workspace:*",
101
+ "source-map": "^0.7.6",
99
102
  "storybook": "^10.2.1",
100
103
  "svelte": "catalog:svelte5",
101
104
  "svelte-check": "^4.4.6",
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function loadAnnualTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function loadDayTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function load_Event_ScaledPricesTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function loadEventTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function load_Events_ScaledPricesTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +0,0 @@
1
- import { SegmentDetails } from '../../../../../../../../components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
2
- export declare function loadTimeslotTickets(segment: SegmentDetails): Promise<void>;