@gomusdev/web-components 1.33.1 → 1.34.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 (34) hide show
  1. package/dist-js/components/forms/ui/generic/FormDetails.svelte.d.ts +14 -1
  2. package/dist-js/components/profile/details/Details.spec.d.ts +1 -0
  3. package/dist-js/components/profile/details/Details.svelte.d.ts +1 -0
  4. package/dist-js/components/profile/entry.d.ts +0 -0
  5. package/dist-js/components/profile/overview/Overview.spec.d.ts +1 -0
  6. package/dist-js/components/profile/overview/Overview.svelte.d.ts +1 -0
  7. package/dist-js/components/profile/password/Password.spec.d.ts +1 -0
  8. package/dist-js/components/profile/password/Password.svelte.d.ts +1 -0
  9. package/dist-js/components/ticketSelection/TicketSelectionDetails.svelte.d.ts +4 -4
  10. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/{TicketSegmentDetails.svelte.d.ts → SegmentDetails.svelte.d.ts} +10 -5
  11. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/TicketSegmentEmpty.svelte.d.ts +1 -0
  12. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/annualTickets.svelte.d.ts +2 -2
  13. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/dayTickets.svelte.d.ts +2 -2
  14. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_ScaledPriceTickets.spec.d.ts +1 -0
  15. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_ScaledPriceTickets.svelte.d.ts +2 -0
  16. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_Tickets.svelte.d.ts +2 -0
  17. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/event_Tickets.svelte.spec.d.ts +1 -0
  18. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/events/events_ScaledPriceTickets.spec.d.ts +1 -0
  19. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/events/events_ScaledPriceTickets.svelte.d.ts +2 -0
  20. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/timeslotTickets.svelte.d.ts +2 -2
  21. package/dist-js/factories/DateFactories.d.ts +161 -0
  22. package/dist-js/factories/ScalingPriceFactories.d.ts +11 -0
  23. package/dist-js/gomus-webcomponents.css +25 -36
  24. package/dist-js/gomus-webcomponents.iife.js +563 -199
  25. package/dist-js/gomus-webcomponents.js +563 -199
  26. package/dist-js/lib/models/scalePrice/UIScaledPrice.svelte.d.ts +5 -5
  27. package/dist-js/lib/stores/auth.svelte.d.ts +1 -1
  28. package/dist-js/lib/stores/shop.svelte.d.ts +76 -2
  29. package/dist-js/mocks/MSWMocks.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/eventScaledPriceTickets.svelte.d.ts +0 -2
  32. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/eventTickets.svelte.d.ts +0 -2
  33. /package/dist-js/components/{ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/eventScaledPriceTickets.spec.d.ts → forms/ui/specs/fill.spec.d.ts} +0 -0
  34. /package/dist-js/components/{ticketSelection/subcomponents/tickets/subcomponents/segment/lib/event/eventTickets.svelte.spec.d.ts → forms/ui/specs/onsubmit.spec.d.ts} +0 -0
@@ -4,12 +4,17 @@ export declare class FormDetails {
4
4
  formId: string;
5
5
  form: HTMLFormElement;
6
6
  isValid: boolean;
7
+ /**
8
+ * will be shown as a success message in the form
9
+ */
7
10
  successMessage: string | undefined;
8
11
  get formData(): any;
9
12
  get apiErrors(): string[] | Record<string, string[]>;
10
13
  /**
11
14
  * Sets API errors for the current instance.
12
15
  *
16
+ * The API returns errors in very different shapes, this method should consume all those shapes
17
+ *
13
18
  * @param {string[] | Record<string, string[]>} errors - Errors passed as an array or an object where keys are API field keys and values are arrays of error messages. If an array is provided, it assigns the errors directly. If an object is provided, it maps the errors to the respective fields based on their API keys.
14
19
  */
15
20
  set apiErrors(errors: string[] | Record<string, string[]>);
@@ -18,7 +23,15 @@ export declare class FormDetails {
18
23
  /**
19
24
  * The list of fields associated with form in the config.
20
25
  */
21
- get fields(): any[];
26
+ get fields(): Field[];
27
+ toString(): string;
28
+ /**
29
+ * Populates the fields of the current instance with the corresponding values from the provided data object.
30
+ * Filters the fields by matching their `apiKey` to keys in the data object and updates their `value`.
31
+ *
32
+ * @param {Record<string, any>} data - An object containing key-value pairs where keys represent the `apiKey` of fields and values represent the data to be filled into each field.
33
+ */
34
+ fill(data: Record<string, any>): void;
22
35
  constructor(formId: string, form: HTMLFormElement);
23
36
  }
24
37
  export declare const setDetails: (host: HTMLElement, details: FormDetails) => void;
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
File without changes
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -1,8 +1,8 @@
1
1
  import { Cart } from '../../lib/models/cart/cart.svelte.ts';
2
- import { TicketSegmentDetails } from './subcomponents/tickets/subcomponents/segment/TicketSegmentDetails.svelte.ts';
2
+ import { SegmentDetails } from './subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.ts';
3
3
  import { CalendarDate } from '@internationalized/date';
4
4
  export type TicketSelectionMode = 'ticket' | 'event' | 'tour';
5
- export declare const validTicketSelectionFilters: readonly ["timeslot", "day", "annual", "event:scaled-price", "event:ticket"];
5
+ export declare const validTicketSelectionFilters: readonly ["timeslot", "day", "annual", "event:scaled-price", "event:ticket", "events:scaled-price"];
6
6
  export type TicketSelectionFilter = (typeof validTicketSelectionFilters)[number];
7
7
  export declare class TicketSelectionDetails {
8
8
  uid: number;
@@ -16,9 +16,9 @@ export declare class TicketSelectionDetails {
16
16
  selectedDate: CalendarDate | undefined;
17
17
  selectedTimeslot: string | undefined;
18
18
  selectedTime: string | undefined;
19
- ticketSegments: TicketSegmentDetails[];
19
+ ticketSegments: SegmentDetails[];
20
20
  preCarts: Cart[];
21
- addTicketSegment(ticketGroup: TicketSegmentDetails): void;
21
+ addTicketSegment(ticketGroup: SegmentDetails): void;
22
22
  get isTimeslotsVisible(): boolean;
23
23
  get isTicketsVisible(): boolean | undefined;
24
24
  get isCalendarVisible(): boolean;
@@ -1,7 +1,7 @@
1
1
  import { TicketSelectionDetails } from '../../../../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';
4
- export declare class TicketSegmentDetails {
3
+ export type TicketSegmentFilter = 'timeslot' | 'annual' | 'custom' | 'day' | 'event:scaled-price' | 'event:ticket' | 'events:scaled-price';
4
+ export declare class SegmentDetails {
5
5
  preCart: {
6
6
  items: import('../../../../../../lib/models/cart/types').CartItem[];
7
7
  contingent: number;
@@ -47,12 +47,17 @@ export declare class TicketSegmentDetails {
47
47
  filters: TicketSegmentFilter;
48
48
  ticketSelectionDetails: TicketSelectionDetails | undefined;
49
49
  dateId: number | undefined;
50
+ limit: number | undefined;
51
+ query: string | undefined;
52
+ ticketGroupIds: number[] | undefined;
53
+ languageIds: number[] | undefined;
54
+ catchWordIds: number[] | undefined;
50
55
  constructor(type: TicketSegmentFilter, tsdWrapper: DetailsWrapper<TicketSelectionDetails>);
51
56
  clear(): void;
52
57
  toString(): string;
53
58
  loadTickets(): void;
54
59
  }
55
- export declare const setTicketSegmentDetails: (host: HTMLElement, details: TicketSegmentDetails) => void;
56
- export declare const getTicketSegmentDetails: (host: HTMLElement, options?: {
60
+ export declare const setSegmentDetails: (host: HTMLElement, details: SegmentDetails) => void;
61
+ export declare const getSegmentDetails: (host: HTMLElement, options?: {
57
62
  pollDuration: number;
58
- }) => DetailsWrapper<TicketSegmentDetails>;
63
+ }) => DetailsWrapper<SegmentDetails>;
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -1,2 +1,2 @@
1
- import { TicketSegmentDetails } from '../TicketSegmentDetails.svelte.ts';
2
- export declare function loadAnnualTickets(segment: TicketSegmentDetails): Promise<void>;
1
+ import { SegmentDetails } from '../SegmentDetails.svelte.ts';
2
+ export declare function loadAnnualTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { TicketSegmentDetails } from '../TicketSegmentDetails.svelte.ts';
2
- export declare function loadDayTickets(segment: TicketSegmentDetails): Promise<void>;
1
+ import { SegmentDetails } from '../SegmentDetails.svelte.ts';
2
+ export declare function loadDayTickets(segment: SegmentDetails): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { SegmentDetails } from '../../SegmentDetails.svelte.ts';
2
+ export declare function load_Event_ScaledPricesTickets(segment: SegmentDetails): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { SegmentDetails } from '../../SegmentDetails.svelte.ts';
2
+ export declare function loadEventTickets(segment: SegmentDetails): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { SegmentDetails } from '../../SegmentDetails.svelte.ts';
2
+ export declare function load_Events_ScaledPricesTickets(segment: SegmentDetails): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { TicketSegmentDetails } from '../TicketSegmentDetails.svelte.ts';
2
- export declare function loadTimeslotTickets(segment: TicketSegmentDetails): Promise<void>;
1
+ import { SegmentDetails } from '../SegmentDetails.svelte.ts';
2
+ export declare function loadTimeslotTickets(segment: SegmentDetails): Promise<void>;
@@ -0,0 +1,161 @@
1
+ export declare function dateFactory(options?: Partial<ReturnType<typeof defaultDate>>): {
2
+ status: string;
3
+ id: number;
4
+ event_id: number;
5
+ exhibition_id: number;
6
+ museum_id: number;
7
+ foreign_id: null;
8
+ category: {
9
+ id: number;
10
+ name: string;
11
+ filtername: string;
12
+ };
13
+ bookable: boolean;
14
+ registerable: boolean;
15
+ entry_fee: number;
16
+ title: string;
17
+ sub_title: null;
18
+ description: null;
19
+ meeting_point: null;
20
+ event_title: string;
21
+ event_sub_title: null;
22
+ start_time: string;
23
+ duration: number;
24
+ seats: {
25
+ min: number;
26
+ max: number;
27
+ booked: number;
28
+ available: number;
29
+ max_per_registration: null;
30
+ overbook: boolean;
31
+ };
32
+ created_at: string;
33
+ updated_at: string;
34
+ language: {
35
+ id: number;
36
+ name: string;
37
+ locale: string;
38
+ };
39
+ location: {
40
+ id: number;
41
+ name: string;
42
+ city: null;
43
+ country: string;
44
+ country_code: string;
45
+ street: null;
46
+ zip: null;
47
+ latitude: null;
48
+ longitude: null;
49
+ };
50
+ prices: {
51
+ scale_price_id: number;
52
+ title: string;
53
+ description: string;
54
+ group: boolean;
55
+ optional: boolean;
56
+ price_cents: number;
57
+ vat_pct: number;
58
+ accounting_article_id: number;
59
+ accounting_article_type: string;
60
+ }[];
61
+ };
62
+ export declare function priceFactory(options?: Partial<ReturnType<typeof defaultPrice>>): {
63
+ scale_price_id: number;
64
+ title: string;
65
+ description: string;
66
+ group: boolean;
67
+ optional: boolean;
68
+ price_cents: number;
69
+ vat_pct: number;
70
+ accounting_article_id: number;
71
+ accounting_article_type: string;
72
+ };
73
+ export declare function seatsFactory(options?: Partial<ReturnType<typeof defaultSeats>>): {
74
+ min: number;
75
+ max: number;
76
+ booked: number;
77
+ available: number;
78
+ max_per_registration: null;
79
+ overbook: boolean;
80
+ };
81
+ export declare function defaultPrice(): {
82
+ scale_price_id: number;
83
+ title: string;
84
+ description: string;
85
+ group: boolean;
86
+ optional: boolean;
87
+ price_cents: number;
88
+ vat_pct: number;
89
+ accounting_article_id: number;
90
+ accounting_article_type: string;
91
+ };
92
+ declare function defaultSeats(): {
93
+ min: number;
94
+ max: number;
95
+ booked: number;
96
+ available: number;
97
+ max_per_registration: null;
98
+ overbook: boolean;
99
+ };
100
+ declare function defaultDate(): {
101
+ status: string;
102
+ id: number;
103
+ event_id: number;
104
+ exhibition_id: number;
105
+ museum_id: number;
106
+ foreign_id: null;
107
+ category: {
108
+ id: number;
109
+ name: string;
110
+ filtername: string;
111
+ };
112
+ bookable: boolean;
113
+ registerable: boolean;
114
+ entry_fee: number;
115
+ title: string;
116
+ sub_title: null;
117
+ description: null;
118
+ meeting_point: null;
119
+ event_title: string;
120
+ event_sub_title: null;
121
+ start_time: string;
122
+ duration: number;
123
+ seats: {
124
+ min: number;
125
+ max: number;
126
+ booked: number;
127
+ available: number;
128
+ max_per_registration: null;
129
+ overbook: boolean;
130
+ };
131
+ created_at: string;
132
+ updated_at: string;
133
+ language: {
134
+ id: number;
135
+ name: string;
136
+ locale: string;
137
+ };
138
+ location: {
139
+ id: number;
140
+ name: string;
141
+ city: null;
142
+ country: string;
143
+ country_code: string;
144
+ street: null;
145
+ zip: null;
146
+ latitude: null;
147
+ longitude: null;
148
+ };
149
+ prices: {
150
+ scale_price_id: number;
151
+ title: string;
152
+ description: string;
153
+ group: boolean;
154
+ optional: boolean;
155
+ price_cents: number;
156
+ vat_pct: number;
157
+ accounting_article_id: number;
158
+ accounting_article_type: string;
159
+ }[];
160
+ };
161
+ export {};
@@ -0,0 +1,11 @@
1
+ export declare function createScalingPrice(title: string, price_cents: number, scale_price_id: number, description?: string): {
2
+ scale_price_id: number;
3
+ title: string;
4
+ description: string;
5
+ group: boolean;
6
+ optional: boolean;
7
+ price_cents: number;
8
+ vat_pct: number;
9
+ accounting_article_id: number;
10
+ accounting_article_type: string;
11
+ };
@@ -1,17 +1,16 @@
1
-
2
- /* General reset for list items */
3
-
1
+ * {
2
+ font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
3
+ }
4
+ /* General reset for list items */
4
5
  :global .innerZoomElementWrapper h3 {
5
6
  margin-top: 4rem;
6
7
  margin-bottom: 1rem;
7
8
  }
8
-
9
9
  :global .innerZoomElementWrapper go-tickets {
10
10
  display: flex;
11
11
  flex-direction: column;
12
12
  gap: 1rem;
13
13
  }
14
-
15
14
  :global .innerZoomElementWrapper go-tickets label {
16
15
  display: inline-block;
17
16
  padding: 10px 20px;
@@ -21,20 +20,15 @@
21
20
  transition:
22
21
  background-color 0.3s, border-color 0.3s;
23
22
  }
24
-
25
23
  /* Available timeslot */
26
-
27
24
  :global .innerZoomElementWrapper go-tickets .available {
28
25
  background-color: #fff;
29
26
  color: #333;
30
27
  }
31
-
32
28
  :global .innerZoomElementWrapper go-tickets input[type='checkbox'] {
33
29
  display: none; /* Hide the radio button */
34
30
  }
35
-
36
31
  /* When a timeslot is selected (checked radio button) */
37
-
38
32
  :global .innerZoomElementWrapper go-tickets label:has(input[type='checkbox']:checked) {
39
33
  background-color: #12826a;
40
34
  background-color: var(--primary); /* blue-green color */
@@ -42,38 +36,29 @@
42
36
  border-color: var(--primary);
43
37
  color: white;
44
38
  }
45
-
46
39
  /* Finished (unavailable) timeslot */
47
-
48
40
  :global .innerZoomElementWrapper go-tickets .finished {
49
41
  background-color: #f0f0f0;
50
42
  color: #999;
51
43
  }
52
-
53
44
  :global .innerZoomElementWrapper go-tickets .finished input {
54
45
  display: none;
55
46
  }
56
-
57
47
  :global .innerZoomElementWrapper go-tickets .finished {
58
48
  pointer-events: none;
59
49
  }
60
-
61
50
  /* Disabled radio button appearance */
62
-
63
51
  :global .innerZoomElementWrapper go-tickets input:disabled + label {
64
52
  background-color: #e0e0e0;
65
53
  color: #bbb;
66
54
  cursor: not-allowed;
67
55
  border-color: #ddd;
68
56
  }
69
-
70
57
  :global .innerZoomElementWrapper go-tickets label:hover {
71
58
  background-color: #f0f0f0;
72
59
  border-color: #aaa;
73
60
  }
74
-
75
61
  /* Focus state for better accessibility */
76
-
77
62
  :global .innerZoomElementWrapper go-tickets input:focus + label {
78
63
  outline: 2px solid #0052cc;
79
64
  }
@@ -1021,7 +1006,7 @@ go-tickets {
1021
1006
  --col-qty: 1;
1022
1007
  }
1023
1008
 
1024
- go-tickets [data-testid='tickets'] {
1009
+ go-tickets ol.go-tickets {
1025
1010
  margin: 0;
1026
1011
  padding: 0;
1027
1012
  list-style: none;
@@ -1029,12 +1014,12 @@ go-tickets [data-testid='tickets'] {
1029
1014
  /*// Header row*/
1030
1015
  }
1031
1016
 
1032
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] {
1017
+ go-tickets ol.go-tickets > .go-tickets-header {
1033
1018
  top: 0;
1034
1019
  background: inherit;
1035
1020
  }
1036
1021
 
1037
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul {
1022
+ go-tickets ol.go-tickets > .go-tickets-header > ul {
1038
1023
  display: flex;
1039
1024
  align-items: center;
1040
1025
  gap: 1rem;
@@ -1043,41 +1028,41 @@ go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul {
1043
1028
  font-weight: 600;
1044
1029
  }
1045
1030
 
1046
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul > li {
1031
+ go-tickets ol.go-tickets > .go-tickets-header > ul > li {
1047
1032
  list-style: none;
1048
1033
  /*// allow truncation*/
1049
1034
  min-width: 0;
1050
1035
  }
1051
1036
 
1052
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul > li:first-child {
1037
+ go-tickets ol.go-tickets > .go-tickets-header > ul > li:first-child {
1053
1038
  padding-left: 0;
1054
1039
  }
1055
1040
 
1056
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul [data-go-tickets-title] {
1041
+ go-tickets ol.go-tickets > .go-tickets-header > ul .go-tickets-header-title {
1057
1042
  flex: var(--col-title) 0 0;
1058
1043
  }
1059
1044
 
1060
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul [data-go-tickets-description] {
1045
+ go-tickets ol.go-tickets > .go-tickets-header > ul .go-tickets-description {
1061
1046
  flex: var(--col-desc) 0 0;
1062
1047
  }
1063
1048
 
1064
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul [data-go-tickets-price] {
1049
+ go-tickets ol.go-tickets > .go-tickets-header > ul .go-tickets-price {
1065
1050
  flex: var(--col-price) 0 0;
1066
1051
  text-align: right;
1067
1052
  }
1068
1053
 
1069
- go-tickets [data-testid='tickets'] > li[data-go-tickets-header] > ul [data-go-tickets-quality] {
1054
+ go-tickets ol.go-tickets > .go-tickets-header > ul .go-tickets-quality {
1070
1055
  flex: var(--col-qty) 0 0;
1071
1056
  text-align: right;
1072
1057
  }
1073
1058
 
1074
1059
  /*// Data rows*/
1075
1060
 
1076
- go-tickets [data-testid='tickets'] > li {
1061
+ go-tickets ol.go-tickets > li {
1077
1062
  list-style: none;
1078
1063
  }
1079
1064
 
1080
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul {
1065
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul {
1081
1066
  display: flex;
1082
1067
  align-items: center;
1083
1068
  gap: 1rem;
@@ -1085,7 +1070,7 @@ go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul {
1085
1070
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
1086
1071
  }
1087
1072
 
1088
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul > li {
1073
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul > li {
1089
1074
  list-style: none;
1090
1075
  /*// enable text truncation*/
1091
1076
  min-width: 0;
@@ -1095,25 +1080,25 @@ go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul > li {
1095
1080
  /*text-overflow: ellipsis;*/
1096
1081
  }
1097
1082
 
1098
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-tickets-title] {
1083
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul .go-tickets-item-title {
1099
1084
  flex: var(--col-title) 0 0;
1100
1085
  }
1101
1086
 
1102
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-tickets-description] {
1087
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul .go-tickets-item-description {
1103
1088
  flex: var(--col-desc) 0 0;
1104
1089
  }
1105
1090
 
1106
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-tickets-price] {
1091
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul .go-tickets-item-price {
1107
1092
  flex: var(--col-price) 0 0;
1108
1093
  text-align: right;
1109
1094
  }
1110
1095
 
1111
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-tickets-quality] {
1096
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul .go-tickets-item-quality {
1112
1097
  flex: var(--col-qty) 0 0;
1113
1098
  text-align: right;
1114
1099
  }
1115
1100
 
1116
- go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-tickets-quality] select {
1101
+ go-tickets ol.go-tickets > li > article.go-tickets-item > ul .go-tickets-item-quality select {
1117
1102
  /*// keeps the quantity control aligned but not stretched*/
1118
1103
  margin-left: auto;
1119
1104
  /*// adjust as needed*/
@@ -1124,6 +1109,10 @@ go-tickets [data-testid='tickets'] > li > article[data-go-ticket] > ul [data-go-
1124
1109
  width: auto;
1125
1110
  }
1126
1111
 
1112
+ go-tickets go-ticket-segment.is-empty .sum-container {
1113
+ display: none;
1114
+ }
1115
+
1127
1116
  /*=== CART ===*/
1128
1117
  go-cart {
1129
1118
  display: block;