@3ddv/software-division-components 1.1.0 → 1.3.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.
package/README.md CHANGED
@@ -268,6 +268,10 @@ This project follows semantic versioning. We release patch versions for critical
268
268
 
269
269
  Refer to the [official manifesto](https://semver.org/) for any further information.
270
270
 
271
+ ### Releasing a new version
272
+
273
+ [Refer to the dedicated release guide](./docs/releasing.md) for detailed instructions on how to publish a new version of the library to npm.
274
+
271
275
  ### Conventional commits
272
276
 
273
277
  For managing our commit history and versioning, we follow the Conventional Commits specification. This structured format for commit messages enables us to handle our release process, making it clear when a commit introduces new features, fixes bugs, or includes breaking changes.
@@ -1,6 +1,31 @@
1
+ import { SeatGroup } from './seat-list.component';
2
+ import { CartItem } from './cart.types';
1
3
  import * as i0 from "@angular/core";
2
4
  export declare class CartComponent {
5
+ headerTitle: import("@angular/core").InputSignal<string>;
6
+ selectAllText: import("@angular/core").InputSignal<string>;
7
+ relocateButtonText: import("@angular/core").InputSignal<string>;
8
+ items: import("@angular/core").InputSignal<CartItem[]>;
9
+ groups: import("@angular/core").InputSignal<SeatGroup[]>;
10
+ selectAll: import("@angular/core").OutputEmitterRef<void>;
11
+ mapPinClick: import("@angular/core").OutputEmitterRef<CartItem>;
12
+ eyeClick: import("@angular/core").OutputEmitterRef<CartItem>;
13
+ relocateClick: import("@angular/core").OutputEmitterRef<CartItem>;
14
+ removeClick: import("@angular/core").OutputEmitterRef<CartItem>;
15
+ groupToggle: import("@angular/core").OutputEmitterRef<{
16
+ groupId: string | number;
17
+ expanded: boolean;
18
+ }>;
19
+ onSelectAll(): void;
20
+ onMapPinClick(item: CartItem): void;
21
+ onEyeClick(item: CartItem): void;
22
+ onRelocateClick(item: CartItem): void;
23
+ onRemoveClick(item: CartItem): void;
24
+ onGroupToggle(event: {
25
+ groupId: string | number;
26
+ expanded: boolean;
27
+ }): void;
3
28
  static ɵfac: i0.ɵɵFactoryDeclaration<CartComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<CartComponent, "sdc-cart", never, {}, {}, never, never, true, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<CartComponent, "sdc-cart", never, { "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "selectAllText": { "alias": "selectAllText"; "required": false; "isSignal": true; }; "relocateButtonText": { "alias": "relocateButtonText"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; }, { "selectAll": "selectAll"; "mapPinClick": "mapPinClick"; "eyeClick": "eyeClick"; "relocateClick": "relocateClick"; "removeClick": "removeClick"; "groupToggle": "groupToggle"; }, never, never, true, never>;
5
30
  }
6
31
  //# sourceMappingURL=cart.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart.component.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/cart.component.ts"],"names":[],"mappings":";AAEA,qBAKa,aAAa;yCAAb,aAAa;2CAAb,aAAa;CAAG"}
1
+ {"version":3,"file":"cart.component.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/cart.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;;AAExC,qBAOa,aAAa;IACxB,WAAW,8CAAyC;IACpD,aAAa,8CAA+B;IAC5C,kBAAkB,8CAA6B;IAC/C,KAAK,kDAAyB;IAC9B,MAAM,mDAA0B;IAEhC,SAAS,iDAAkB;IAC3B,WAAW,qDAAsB;IACjC,QAAQ,qDAAsB;IAC9B,aAAa,qDAAsB;IACnC,WAAW,qDAAsB;IACjC,WAAW;iBAAqB,MAAM,GAAG,MAAM;kBAAY,OAAO;OAAM;IAExE,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIhC,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIrC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,aAAa,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;yCAlChE,aAAa;2CAAb,aAAa;CAqCzB"}
@@ -0,0 +1,8 @@
1
+ export interface CartItem {
2
+ id: string | number;
3
+ section: string;
4
+ row: string;
5
+ seat: string;
6
+ price: number;
7
+ }
8
+ //# sourceMappingURL=cart.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.types.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/cart.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,4 @@
1
1
  export * from './cart.component';
2
- export * from './cart.service';
2
+ export * from './seat-list.component';
3
+ export * from './cart.types';
3
4
  //# sourceMappingURL=public-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { CartItem } from './cart.types';
2
+ import * as i0 from "@angular/core";
3
+ export interface SeatGroup {
4
+ id: string | number;
5
+ title: string;
6
+ count?: string;
7
+ seats: CartItem[];
8
+ expanded?: boolean;
9
+ indicatorColor?: string;
10
+ actionButtonText?: string;
11
+ }
12
+ export declare class SeatListComponent {
13
+ seats: import("@angular/core").InputSignal<CartItem[]>;
14
+ groups: import("@angular/core").InputSignal<SeatGroup[]>;
15
+ actionButtonText: import("@angular/core").InputSignal<string>;
16
+ indicatorColor: import("@angular/core").InputSignal<string>;
17
+ mapPinClick: import("@angular/core").OutputEmitterRef<CartItem>;
18
+ eyeClick: import("@angular/core").OutputEmitterRef<CartItem>;
19
+ actionClick: import("@angular/core").OutputEmitterRef<CartItem>;
20
+ groupToggle: import("@angular/core").OutputEmitterRef<{
21
+ groupId: string | number;
22
+ expanded: boolean;
23
+ }>;
24
+ removeClick: import("@angular/core").OutputEmitterRef<CartItem>;
25
+ isGroupedMode: import("@angular/core").Signal<boolean>;
26
+ onMapPinClick(item: CartItem): void;
27
+ onEyeClick(item: CartItem): void;
28
+ onActionClick(item: CartItem): void;
29
+ onRemoveClick(item: CartItem): void;
30
+ isGroupExpanded(group: SeatGroup): boolean;
31
+ toggleGroup(group: SeatGroup): void;
32
+ getGroupIndicatorColor(group: SeatGroup): string;
33
+ getGroupActionButtonText(group: SeatGroup): string;
34
+ getGroupSeatCount(group: SeatGroup): string;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatListComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatListComponent, "sdc-seat-list", never, { "seats": { "alias": "seats"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "actionButtonText": { "alias": "actionButtonText"; "required": false; "isSignal": true; }; "indicatorColor": { "alias": "indicatorColor"; "required": false; "isSignal": true; }; }, { "mapPinClick": "mapPinClick"; "eyeClick": "eyeClick"; "actionClick": "actionClick"; "groupToggle": "groupToggle"; "removeClick": "removeClick"; }, never, never, true, never>;
37
+ }
38
+ //# sourceMappingURL=seat-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-list.component.d.ts","sourceRoot":"","sources":["../../../projects/software-division-components/src/dvm/cart/seat-list.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;;AAExC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBASa,iBAAiB;IAC5B,KAAK,kDAAyB;IAC9B,MAAM,mDAA0B;IAChC,gBAAgB,8CAA6B;IAC7C,cAAc,8CAA4B;IAE1C,WAAW,qDAAsB;IACjC,QAAQ,qDAAsB;IAC9B,WAAW,qDAAsB;IACjC,WAAW;iBAAqB,MAAM,GAAG,MAAM;kBAAY,OAAO;OAAM;IACxE,WAAW,qDAAsB;IAEjC,aAAa,0CAA4C;IAEzD,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIhC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMnC,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIhD,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAIlD,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;yCAhDhC,iBAAiB;2CAAjB,iBAAiB;CAmD7B"}
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, signal, Component, InjectionToken, inject, Directive, NgModule, booleanAttribute, model, numberAttribute, viewChild, ChangeDetectionStrategy, Renderer2, ElementRef, effect, forwardRef, output, Injectable, ChangeDetectorRef, EventEmitter, Output, ViewChild, ApplicationRef, EnvironmentInjector, createEnvironmentInjector, createComponent, TemplateRef, Input, Inject, DestroyRef, untracked, ViewEncapsulation, contentChild } from '@angular/core';
2
+ import { input, computed, signal, Component, InjectionToken, inject, Directive, NgModule, booleanAttribute, model, numberAttribute, viewChild, ChangeDetectionStrategy, Renderer2, ElementRef, effect, forwardRef, output, ViewEncapsulation, Injectable, ChangeDetectorRef, EventEmitter, Output, ViewChild, ApplicationRef, EnvironmentInjector, createEnvironmentInjector, createComponent, TemplateRef, Input, Inject, DestroyRef, untracked, contentChild } from '@angular/core';
3
3
  import * as i1 from '@angular/forms';
4
4
  import { FormSubmittedEvent, ReactiveFormsModule, NG_VALUE_ACCESSOR, TouchedChangeEvent, PristineChangeEvent, FormsModule, FormControl } from '@angular/forms';
5
5
  import { injectDateAdapter, provideDateAdapter, BrnNativeDateAdapter } from '@spartan-ng/brain/date-time';
6
6
  import { NgIcon, provideIcons } from '@ng-icons/core';
7
- import { lucideChevronRight, lucideChevronLeft, lucideCalendar, lucideArrowDown, lucideArrowUp, lucideArrowUpDown, lucideChevronDown, lucideX, lucideCheck, lucideChevronUp } from '@ng-icons/lucide';
7
+ import { lucideChevronRight, lucideChevronLeft, lucideCalendar, lucideArrowDown, lucideArrowUp, lucideArrowUpDown, lucideChevronDown, lucideChevronUp, lucideEye, lucideMapPin, lucideX, lucideCheck } from '@ng-icons/lucide';
8
8
  import { hlm, injectExposesStateProvider, injectCustomClassSettable, injectExposedSideProvider } from '@spartan-ng/brain/core';
9
9
  import { BrnPopover, BrnPopoverTrigger, BrnPopoverContent } from '@spartan-ng/brain/popover';
10
10
  import { injectBrnCalendarI18n, BrnCalendar, BrnCalendarHeader, BrnCalendarNextButton, BrnCalendarPreviousButton, BrnCalendarWeekday, BrnCalendarWeek, BrnCalendarCellButton, BrnCalendarCell, BrnCalendarGrid, BrnCalendarMulti } from '@spartan-ng/brain/calendar';
@@ -387,7 +387,7 @@ let HlmIconModule$2 = class HlmIconModule {
387
387
  }], null, null); })();
388
388
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(HlmIconModule$2, { imports: [HlmIcon$2], exports: [HlmIcon$2] }); })();
389
389
 
390
- function _forTrack0$5($index, $item) { return this._dateAdapter.getTime($item); }
390
+ function _forTrack0$6($index, $item) { return this._dateAdapter.getTime($item); }
391
391
  function HlmCalendar_th_14_Template(rf, ctx) { if (rf & 1) {
392
392
  i0.ɵɵelementStart(0, "th", 15);
393
393
  i0.ɵɵtext(1);
@@ -414,7 +414,7 @@ function HlmCalendar_tr_16_For_2_Template(rf, ctx) { if (rf & 1) {
414
414
  } }
415
415
  function HlmCalendar_tr_16_Template(rf, ctx) { if (rf & 1) {
416
416
  i0.ɵɵelementStart(0, "tr", 16);
417
- i0.ɵɵrepeaterCreate(1, HlmCalendar_tr_16_For_2_Template, 3, 4, "td", 17, _forTrack0$5, true);
417
+ i0.ɵɵrepeaterCreate(1, HlmCalendar_tr_16_For_2_Template, 3, 4, "td", 17, _forTrack0$6, true);
418
418
  i0.ɵɵelementEnd();
419
419
  } if (rf & 2) {
420
420
  const week_r4 = ctx.$implicit;
@@ -581,7 +581,7 @@ class HlmCalendar {
581
581
  }], null, null); })();
582
582
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HlmCalendar, { className: "HlmCalendar", filePath: "backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts", lineNumber: 116 }); })();
583
583
 
584
- function _forTrack0$4($index, $item) { return this._dateAdapter.getTime($item); }
584
+ function _forTrack0$5($index, $item) { return this._dateAdapter.getTime($item); }
585
585
  function HlmCalendarMulti_th_14_Template(rf, ctx) { if (rf & 1) {
586
586
  i0.ɵɵelementStart(0, "th", 15);
587
587
  i0.ɵɵtext(1);
@@ -608,7 +608,7 @@ function HlmCalendarMulti_tr_16_For_2_Template(rf, ctx) { if (rf & 1) {
608
608
  } }
609
609
  function HlmCalendarMulti_tr_16_Template(rf, ctx) { if (rf & 1) {
610
610
  i0.ɵɵelementStart(0, "tr", 16);
611
- i0.ɵɵrepeaterCreate(1, HlmCalendarMulti_tr_16_For_2_Template, 3, 4, "td", 17, _forTrack0$4, true);
611
+ i0.ɵɵrepeaterCreate(1, HlmCalendarMulti_tr_16_For_2_Template, 3, 4, "td", 17, _forTrack0$5, true);
612
612
  i0.ɵɵelementEnd();
613
613
  } if (rf & 2) {
614
614
  const week_r4 = ctx.$implicit;
@@ -3018,7 +3018,7 @@ class HlmTableModule {
3018
3018
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(HlmTableModule, { imports: [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr], exports: [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr] }); })();
3019
3019
 
3020
3020
  const TableComponent_Defer_3_DepsFn = () => [FlexRenderDirective, HlmTable, HlmTBody, HlmTd, HlmTh, HlmTHead, HlmTr];
3021
- const _forTrack0$3 = ($index, $item) => $item.id;
3021
+ const _forTrack0$4 = ($index, $item) => $item.id;
3022
3022
  function TableComponent_Defer_2_For_3_For_2_Conditional_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
3023
3023
  i0.ɵɵelementContainerStart(0);
3024
3024
  i0.ɵɵelement(1, "div", 8);
@@ -3046,7 +3046,7 @@ function TableComponent_Defer_2_For_3_For_2_Template(rf, ctx) { if (rf & 1) {
3046
3046
  } }
3047
3047
  function TableComponent_Defer_2_For_3_Template(rf, ctx) { if (rf & 1) {
3048
3048
  i0.ɵɵelementStart(0, "tr", 4);
3049
- i0.ɵɵrepeaterCreate(1, TableComponent_Defer_2_For_3_For_2_Template, 2, 2, "th", 6, _forTrack0$3);
3049
+ i0.ɵɵrepeaterCreate(1, TableComponent_Defer_2_For_3_For_2_Template, 2, 2, "th", 6, _forTrack0$4);
3050
3050
  i0.ɵɵelementEnd();
3051
3051
  } if (rf & 2) {
3052
3052
  const headerGroup_r3 = ctx.$implicit;
@@ -3092,10 +3092,10 @@ function TableComponent_Defer_2_ForEmpty_7_Template(rf, ctx) { if (rf & 1) {
3092
3092
  } }
3093
3093
  function TableComponent_Defer_2_Template(rf, ctx) { if (rf & 1) {
3094
3094
  i0.ɵɵelementStart(0, "table", 2)(1, "thead", 3);
3095
- i0.ɵɵrepeaterCreate(2, TableComponent_Defer_2_For_3_Template, 3, 0, "tr", 4, _forTrack0$3);
3095
+ i0.ɵɵrepeaterCreate(2, TableComponent_Defer_2_For_3_Template, 3, 0, "tr", 4, _forTrack0$4);
3096
3096
  i0.ɵɵelementEnd();
3097
3097
  i0.ɵɵelementStart(4, "tbody", 5);
3098
- i0.ɵɵrepeaterCreate(5, TableComponent_Defer_2_For_6_Template, 3, 2, "tr", 4, _forTrack0$3, false, TableComponent_Defer_2_ForEmpty_7_Template, 3, 1, "tr", 4);
3098
+ i0.ɵɵrepeaterCreate(5, TableComponent_Defer_2_For_6_Template, 3, 2, "tr", 4, _forTrack0$4, false, TableComponent_Defer_2_ForEmpty_7_Template, 3, 1, "tr", 4);
3099
3099
  i0.ɵɵelementEnd()();
3100
3100
  } if (rf & 2) {
3101
3101
  const ctx_r3 = i0.ɵɵnextContext();
@@ -3398,31 +3398,281 @@ class TableComponent {
3398
3398
 
3399
3399
  // Export all necessary dependencies from @tanstack/angular-table for table functionality
3400
3400
 
3401
+ const _forTrack0$3 = ($index, $item) => $item.id;
3402
+ function SeatListComponent_Conditional_1_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
3403
+ const _r4 = i0.ɵɵgetCurrentView();
3404
+ i0.ɵɵelementStart(0, "div", 10);
3405
+ i0.ɵɵelement(1, "div", 11);
3406
+ i0.ɵɵelementStart(2, "div", 12)(3, "span");
3407
+ i0.ɵɵtext(4, "Section ");
3408
+ i0.ɵɵelementStart(5, "span", 13);
3409
+ i0.ɵɵtext(6);
3410
+ i0.ɵɵelementEnd()();
3411
+ i0.ɵɵelementStart(7, "span");
3412
+ i0.ɵɵtext(8, "Row ");
3413
+ i0.ɵɵelementStart(9, "span", 13);
3414
+ i0.ɵɵtext(10);
3415
+ i0.ɵɵelementEnd()();
3416
+ i0.ɵɵelementStart(11, "span");
3417
+ i0.ɵɵtext(12, "Seat ");
3418
+ i0.ɵɵelementStart(13, "span", 13);
3419
+ i0.ɵɵtext(14);
3420
+ i0.ɵɵelementEnd()()();
3421
+ i0.ɵɵelementStart(15, "div", 14)(16, "div", 15)(17, "div", 16);
3422
+ i0.ɵɵtext(18);
3423
+ i0.ɵɵelementEnd();
3424
+ i0.ɵɵelementStart(19, "div", 17)(20, "ng-icon", 18);
3425
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_1_For_2_For_10_Template_ng_icon_click_20_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onMapPinClick(item_r5)); });
3426
+ i0.ɵɵelementEnd()();
3427
+ i0.ɵɵelementStart(21, "div", 17)(22, "ng-icon", 19);
3428
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_1_For_2_For_10_Template_ng_icon_click_22_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onEyeClick(item_r5)); });
3429
+ i0.ɵɵelementEnd()()();
3430
+ i0.ɵɵelementStart(23, "button", 20);
3431
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_1_For_2_For_10_Template_button_click_23_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onRemoveClick(item_r5)); });
3432
+ i0.ɵɵtext(24);
3433
+ i0.ɵɵelementEnd()()();
3434
+ } if (rf & 2) {
3435
+ const item_r5 = ctx.$implicit;
3436
+ const group_r2 = i0.ɵɵnextContext().$implicit;
3437
+ const ctx_r2 = i0.ɵɵnextContext(2);
3438
+ i0.ɵɵadvance();
3439
+ i0.ɵɵstyleProp("background-color", ctx_r2.getGroupIndicatorColor(group_r2));
3440
+ i0.ɵɵadvance(5);
3441
+ i0.ɵɵtextInterpolate(item_r5.section);
3442
+ i0.ɵɵadvance(4);
3443
+ i0.ɵɵtextInterpolate(item_r5.row);
3444
+ i0.ɵɵadvance(4);
3445
+ i0.ɵɵtextInterpolate(item_r5.seat);
3446
+ i0.ɵɵadvance(4);
3447
+ i0.ɵɵtextInterpolate1("$", item_r5.price, "");
3448
+ i0.ɵɵadvance(6);
3449
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.getGroupActionButtonText(group_r2), " ");
3450
+ } }
3451
+ function SeatListComponent_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
3452
+ const _r1 = i0.ɵɵgetCurrentView();
3453
+ i0.ɵɵelementStart(0, "div", 3)(1, "button", 4);
3454
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_1_For_2_Template_button_click_1_listener() { const group_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleGroup(group_r2)); });
3455
+ i0.ɵɵelementStart(2, "div", 5)(3, "span", 6);
3456
+ i0.ɵɵtext(4);
3457
+ i0.ɵɵelementEnd();
3458
+ i0.ɵɵelementStart(5, "span", 7);
3459
+ i0.ɵɵtext(6);
3460
+ i0.ɵɵelementEnd()();
3461
+ i0.ɵɵelement(7, "ng-icon", 8);
3462
+ i0.ɵɵelementEnd();
3463
+ i0.ɵɵelementStart(8, "div", 9);
3464
+ i0.ɵɵrepeaterCreate(9, SeatListComponent_Conditional_1_For_2_For_10_Template, 25, 7, "div", 10, _forTrack0$3);
3465
+ i0.ɵɵelementEnd()();
3466
+ } if (rf & 2) {
3467
+ const group_r2 = ctx.$implicit;
3468
+ const ctx_r2 = i0.ɵɵnextContext(2);
3469
+ i0.ɵɵadvance(4);
3470
+ i0.ɵɵtextInterpolate(group_r2.title);
3471
+ i0.ɵɵadvance(2);
3472
+ i0.ɵɵtextInterpolate(ctx_r2.getGroupSeatCount(group_r2));
3473
+ i0.ɵɵadvance();
3474
+ i0.ɵɵproperty("name", ctx_r2.isGroupExpanded(group_r2) ? "lucideChevronUp" : "lucideChevronDown");
3475
+ i0.ɵɵadvance();
3476
+ i0.ɵɵclassProp("expanded", ctx_r2.isGroupExpanded(group_r2));
3477
+ i0.ɵɵadvance();
3478
+ i0.ɵɵrepeater(group_r2.seats);
3479
+ } }
3480
+ function SeatListComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3481
+ i0.ɵɵelementStart(0, "div", 1);
3482
+ i0.ɵɵrepeaterCreate(1, SeatListComponent_Conditional_1_For_2_Template, 11, 5, "div", 3, _forTrack0$3);
3483
+ i0.ɵɵelementEnd();
3484
+ } if (rf & 2) {
3485
+ const ctx_r2 = i0.ɵɵnextContext();
3486
+ i0.ɵɵadvance();
3487
+ i0.ɵɵrepeater(ctx_r2.groups());
3488
+ } }
3489
+ function SeatListComponent_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
3490
+ const _r6 = i0.ɵɵgetCurrentView();
3491
+ i0.ɵɵelementStart(0, "div", 10);
3492
+ i0.ɵɵelement(1, "div", 11);
3493
+ i0.ɵɵelementStart(2, "div", 12)(3, "span");
3494
+ i0.ɵɵtext(4, "Section ");
3495
+ i0.ɵɵelementStart(5, "span", 13);
3496
+ i0.ɵɵtext(6);
3497
+ i0.ɵɵelementEnd()();
3498
+ i0.ɵɵelementStart(7, "span");
3499
+ i0.ɵɵtext(8, "Row ");
3500
+ i0.ɵɵelementStart(9, "span", 13);
3501
+ i0.ɵɵtext(10);
3502
+ i0.ɵɵelementEnd()();
3503
+ i0.ɵɵelementStart(11, "span");
3504
+ i0.ɵɵtext(12, "Seat ");
3505
+ i0.ɵɵelementStart(13, "span", 13);
3506
+ i0.ɵɵtext(14);
3507
+ i0.ɵɵelementEnd()()();
3508
+ i0.ɵɵelementStart(15, "div", 14)(16, "div", 15)(17, "div", 16);
3509
+ i0.ɵɵtext(18);
3510
+ i0.ɵɵelementEnd();
3511
+ i0.ɵɵelementStart(19, "div", 17)(20, "ng-icon", 18);
3512
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_2_For_2_Template_ng_icon_click_20_listener() { const item_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onMapPinClick(item_r7)); });
3513
+ i0.ɵɵelementEnd()();
3514
+ i0.ɵɵelementStart(21, "div", 17)(22, "ng-icon", 19);
3515
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_2_For_2_Template_ng_icon_click_22_listener() { const item_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onEyeClick(item_r7)); });
3516
+ i0.ɵɵelementEnd()()();
3517
+ i0.ɵɵelementStart(23, "button", 20);
3518
+ i0.ɵɵlistener("click", function SeatListComponent_Conditional_2_For_2_Template_button_click_23_listener() { const item_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActionClick(item_r7)); });
3519
+ i0.ɵɵtext(24);
3520
+ i0.ɵɵelementEnd()()();
3521
+ } if (rf & 2) {
3522
+ const item_r7 = ctx.$implicit;
3523
+ const ctx_r2 = i0.ɵɵnextContext(2);
3524
+ i0.ɵɵadvance();
3525
+ i0.ɵɵstyleProp("background-color", ctx_r2.indicatorColor());
3526
+ i0.ɵɵadvance(5);
3527
+ i0.ɵɵtextInterpolate(item_r7.section);
3528
+ i0.ɵɵadvance(4);
3529
+ i0.ɵɵtextInterpolate(item_r7.row);
3530
+ i0.ɵɵadvance(4);
3531
+ i0.ɵɵtextInterpolate(item_r7.seat);
3532
+ i0.ɵɵadvance(4);
3533
+ i0.ɵɵtextInterpolate1("$", item_r7.price, "");
3534
+ i0.ɵɵadvance(6);
3535
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.actionButtonText(), " ");
3536
+ } }
3537
+ function SeatListComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3538
+ i0.ɵɵelementStart(0, "div", 2);
3539
+ i0.ɵɵrepeaterCreate(1, SeatListComponent_Conditional_2_For_2_Template, 25, 7, "div", 10, _forTrack0$3);
3540
+ i0.ɵɵelementEnd();
3541
+ } if (rf & 2) {
3542
+ const ctx_r2 = i0.ɵɵnextContext();
3543
+ i0.ɵɵadvance();
3544
+ i0.ɵɵrepeater(ctx_r2.seats());
3545
+ } }
3546
+ class SeatListComponent {
3547
+ seats = input([]);
3548
+ groups = input([]);
3549
+ actionButtonText = input('Relocate');
3550
+ indicatorColor = input('#f97316');
3551
+ mapPinClick = output();
3552
+ eyeClick = output();
3553
+ actionClick = output();
3554
+ groupToggle = output();
3555
+ removeClick = output();
3556
+ isGroupedMode = computed(() => this.groups().length > 0);
3557
+ onMapPinClick(item) {
3558
+ this.mapPinClick.emit(item);
3559
+ }
3560
+ onEyeClick(item) {
3561
+ this.eyeClick.emit(item);
3562
+ }
3563
+ onActionClick(item) {
3564
+ this.actionClick.emit(item);
3565
+ }
3566
+ onRemoveClick(item) {
3567
+ this.removeClick.emit(item);
3568
+ }
3569
+ isGroupExpanded(group) {
3570
+ return group.expanded !== false;
3571
+ }
3572
+ toggleGroup(group) {
3573
+ const expanded = !this.isGroupExpanded(group);
3574
+ group.expanded = expanded;
3575
+ this.groupToggle.emit({ groupId: group.id, expanded });
3576
+ }
3577
+ getGroupIndicatorColor(group) {
3578
+ return group.indicatorColor || this.indicatorColor();
3579
+ }
3580
+ getGroupActionButtonText(group) {
3581
+ return group.actionButtonText || this.actionButtonText();
3582
+ }
3583
+ getGroupSeatCount(group) {
3584
+ return `(${group.seats.length})`;
3585
+ }
3586
+ static ɵfac = function SeatListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SeatListComponent)(); };
3587
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SeatListComponent, selectors: [["sdc-seat-list"]], inputs: { seats: [1, "seats"], groups: [1, "groups"], actionButtonText: [1, "actionButtonText"], indicatorColor: [1, "indicatorColor"] }, outputs: { mapPinClick: "mapPinClick", eyeClick: "eyeClick", actionClick: "actionClick", groupToggle: "groupToggle", removeClick: "removeClick" }, features: [i0.ɵɵProvidersFeature([provideIcons({ lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp })])], decls: 3, vars: 1, consts: [[1, "sdc-seat-list"], [1, "seat-list", "seat-list--grouped"], [1, "seat-list", "seat-list--simple"], [1, "seat-group"], [1, "seat-group__header", 3, "click"], [1, "seat-group__header-content"], [1, "seat-group__title"], [1, "seat-group__count"], ["size", "16", 1, "seat-group__chevron", 3, "name"], [1, "seat-group__content"], [1, "ticket"], [1, "ticket__indicator"], [1, "ticket__info"], [1, "ticket__section"], [1, "ticket__actions"], [1, "ticket__actions-left"], [1, "ticket__price"], [1, "ticket__icon-box"], ["hlm", "", "name", "lucideMapPin", "size", "base", 1, "ticket__icon", 3, "click"], ["hlm", "", "name", "lucideEye", "size", "base", 1, "ticket__icon", 3, "click"], [1, "ticket__action-btn", 3, "click"]], template: function SeatListComponent_Template(rf, ctx) { if (rf & 1) {
3588
+ i0.ɵɵelementStart(0, "div", 0);
3589
+ i0.ɵɵtemplate(1, SeatListComponent_Conditional_1_Template, 3, 0, "div", 1)(2, SeatListComponent_Conditional_2_Template, 3, 0, "div", 2);
3590
+ i0.ɵɵelementEnd();
3591
+ } if (rf & 2) {
3592
+ i0.ɵɵadvance();
3593
+ i0.ɵɵconditional(ctx.isGroupedMode() ? 1 : 2);
3594
+ } }, dependencies: [NgIcon], styles: [".sdc-seat-list{--sdc-seat-list-primary-bg: #2a2d3a;--sdc-seat-list-card-bg: #ffffff;--sdc-seat-list-text-primary: #ffffff;--sdc-seat-list-text-secondary: #6b7280;--sdc-seat-list-text-dark: #1f2937;--sdc-seat-list-accent-orange: #f97316;--sdc-seat-list-accent-green: #10b981;--sdc-seat-list-accent-blue: #2563eb;--sdc-seat-list-accent-blue-hover: #1d4ed8;--sdc-seat-list-border-color: #e5e7eb;--sdc-seat-list-icon-bg: #f5f5f5;--sdc-seat-list-ticket-bg: #f9fafb;--sdc-seat-list-ticket-bg-hover: #f3f4f6;--sdc-seat-list-group-header-bg: #e4eaef;--sdc-seat-list-group-header-hover: #f9fafb;--sdc-seat-list-spacing-xs: .25rem;--sdc-seat-list-spacing-sm: .5rem;--sdc-seat-list-spacing-md: 1rem;--sdc-seat-list-spacing-lg: 1.5rem;--sdc-seat-list-spacing-xl: 2rem;--sdc-seat-list-border-radius-sm: .375rem;--sdc-seat-list-border-radius-md: .5rem;--sdc-seat-list-border-radius-lg: .75rem;--sdc-seat-list-border-radius-xl: 1.5rem;--sdc-seat-list-font-size-sm: .875rem;--sdc-seat-list-font-size-base: 1rem;--sdc-seat-list-font-size-lg: 1.125rem;--sdc-seat-list-font-size-xl: 1.25rem;--card-bg: var(--sdc-seat-list-card-bg);--text-primary: var(--sdc-seat-list-text-primary);--text-secondary: var(--sdc-seat-list-text-secondary);--text-dark: var(--sdc-seat-list-text-dark);--accent-orange: var(--sdc-seat-list-accent-orange);--accent-green: var(--sdc-seat-list-accent-green);--accent-blue: var(--sdc-seat-list-accent-blue);--accent-blue-hover: var(--sdc-seat-list-accent-blue-hover);--icon-bg: var(--sdc-seat-list-icon-bg);--spacing-xs: var(--sdc-seat-list-spacing-xs);--spacing-sm: var(--sdc-seat-list-spacing-sm);--spacing-md: var(--sdc-seat-list-spacing-md);--spacing-lg: var(--sdc-seat-list-spacing-lg);--spacing-xl: var(--sdc-seat-list-spacing-xl);--border-radius-sm: var(--sdc-seat-list-border-radius-sm);--border-radius-md: var(--sdc-seat-list-border-radius-md);--border-radius-lg: var(--sdc-seat-list-border-radius-lg);--border-radius-xl: var(--sdc-seat-list-border-radius-xl);--font-size-sm: var(--sdc-seat-list-font-size-sm);--font-size-base: var(--sdc-seat-list-font-size-base);--font-size-lg: var(--sdc-seat-list-font-size-lg);--font-size-xl: var(--sdc-seat-list-font-size-xl)}.seat-list{width:100%}.seat-list--simple{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-list--simple .ticket{margin-bottom:var(--spacing-sm)}.seat-list--simple .ticket:last-child{margin-bottom:0}.seat-list--grouped{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-group{border-radius:var(--border-radius-md);overflow:hidden;background-color:var(--card-bg);margin-bottom:var(--spacing-sm)}.seat-group:last-child{margin-bottom:0}.seat-group__header{width:100%;background-color:var(--sdc-seat-list-group-header-bg, transparent);border:none;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s ease}.seat-group__header-content{display:flex;align-items:center;gap:var(--spacing-sm)}.seat-group__title{font-size:var(--font-size-base);font-weight:600;color:var(--text-dark)}.seat-group__count{font-size:var(--font-size-sm);color:var(--text-secondary)}.seat-group__chevron{width:16px;height:16px;color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0;display:inline-block}.seat-group__content{max-height:0;overflow:hidden;padding:0 var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:max-height .2s ease-out,padding .2s ease-out}.seat-group__content.expanded{max-height:5000px;padding:var(--spacing-md);opacity:1;transition:max-height .2s ease-in,padding .2s ease-in}.seat-group__content .ticket{margin-bottom:0}.ticket{display:flex;align-items:center;padding:var(--spacing-md);background-color:var(--sdc-seat-list-ticket-bg, #f9fafb);border-radius:var(--border-radius-md);transition:all .2s ease}.ticket:hover{background-color:var(--sdc-seat-list-ticket-bg-hover, #f3f4f6);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.ticket__indicator{width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-md);flex-shrink:0}.ticket__info{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.ticket__section{font-weight:600;color:var(--text-dark)}.ticket__price{color:var(--accent-blue);font-weight:600;font-size:var(--font-size-base);margin:0 var(--spacing-md)}.ticket__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-sm)}.ticket__actions-left{display:flex;align-items:center;gap:var(--spacing-sm)}.ticket__icon-box{display:flex;align-items:center;justify-content:center;background-color:var(--icon-bg);border-radius:var(--border-radius-lg);padding:var(--spacing-xs)}.ticket__icon-box .ticket__icon{width:16px;height:16px;color:var(--accent-blue);cursor:pointer;transition:color .2s ease}.ticket__icon-box .ticket__icon:hover{color:var(--accent-blue-hover)}.ticket__action-btn{background-color:var(--accent-blue);color:var(--text-primary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.ticket__action-btn:hover{background-color:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}@media (max-width: 640px){.ticket{padding:var(--spacing-sm)}.ticket__info{font-size:.75rem;gap:var(--spacing-xs)}.ticket__price{font-size:var(--font-size-sm);margin:0 var(--spacing-sm)}.seat-group__header{padding:var(--spacing-sm) var(--spacing-md)}.seat-group__content{padding:var(--spacing-sm)}}\n"], encapsulation: 2 });
3595
+ }
3596
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SeatListComponent, [{
3597
+ type: Component,
3598
+ args: [{ imports: [NgIcon], providers: [provideIcons({ lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp })], selector: 'sdc-seat-list', standalone: true, encapsulation: ViewEncapsulation.None, template: "<div class=\"sdc-seat-list\">\n @if (isGroupedMode()) {\n <div class=\"seat-list seat-list--grouped\">\n @for (group of groups(); track group.id) {\n <div class=\"seat-group\">\n <button class=\"seat-group__header\" (click)=\"toggleGroup(group)\">\n <div class=\"seat-group__header-content\">\n <span class=\"seat-group__title\">{{ group.title }}</span>\n <span class=\"seat-group__count\">{{ getGroupSeatCount(group) }}</span>\n </div>\n <ng-icon\n [name]=\"isGroupExpanded(group) ? 'lucideChevronUp' : 'lucideChevronDown'\"\n size=\"16\"\n class=\"seat-group__chevron\" />\n </button>\n <div class=\"seat-group__content\" [class.expanded]=\"isGroupExpanded(group)\">\n @for (item of group.seats; track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"getGroupIndicatorColor(group)\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onRemoveClick(item)\">\n {{ getGroupActionButtonText(group) }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"seat-list seat-list--simple\">\n @for (item of seats(); track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"indicatorColor()\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onActionClick(item)\">\n {{ actionButtonText() }}\n </button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".sdc-seat-list{--sdc-seat-list-primary-bg: #2a2d3a;--sdc-seat-list-card-bg: #ffffff;--sdc-seat-list-text-primary: #ffffff;--sdc-seat-list-text-secondary: #6b7280;--sdc-seat-list-text-dark: #1f2937;--sdc-seat-list-accent-orange: #f97316;--sdc-seat-list-accent-green: #10b981;--sdc-seat-list-accent-blue: #2563eb;--sdc-seat-list-accent-blue-hover: #1d4ed8;--sdc-seat-list-border-color: #e5e7eb;--sdc-seat-list-icon-bg: #f5f5f5;--sdc-seat-list-ticket-bg: #f9fafb;--sdc-seat-list-ticket-bg-hover: #f3f4f6;--sdc-seat-list-group-header-bg: #e4eaef;--sdc-seat-list-group-header-hover: #f9fafb;--sdc-seat-list-spacing-xs: .25rem;--sdc-seat-list-spacing-sm: .5rem;--sdc-seat-list-spacing-md: 1rem;--sdc-seat-list-spacing-lg: 1.5rem;--sdc-seat-list-spacing-xl: 2rem;--sdc-seat-list-border-radius-sm: .375rem;--sdc-seat-list-border-radius-md: .5rem;--sdc-seat-list-border-radius-lg: .75rem;--sdc-seat-list-border-radius-xl: 1.5rem;--sdc-seat-list-font-size-sm: .875rem;--sdc-seat-list-font-size-base: 1rem;--sdc-seat-list-font-size-lg: 1.125rem;--sdc-seat-list-font-size-xl: 1.25rem;--card-bg: var(--sdc-seat-list-card-bg);--text-primary: var(--sdc-seat-list-text-primary);--text-secondary: var(--sdc-seat-list-text-secondary);--text-dark: var(--sdc-seat-list-text-dark);--accent-orange: var(--sdc-seat-list-accent-orange);--accent-green: var(--sdc-seat-list-accent-green);--accent-blue: var(--sdc-seat-list-accent-blue);--accent-blue-hover: var(--sdc-seat-list-accent-blue-hover);--icon-bg: var(--sdc-seat-list-icon-bg);--spacing-xs: var(--sdc-seat-list-spacing-xs);--spacing-sm: var(--sdc-seat-list-spacing-sm);--spacing-md: var(--sdc-seat-list-spacing-md);--spacing-lg: var(--sdc-seat-list-spacing-lg);--spacing-xl: var(--sdc-seat-list-spacing-xl);--border-radius-sm: var(--sdc-seat-list-border-radius-sm);--border-radius-md: var(--sdc-seat-list-border-radius-md);--border-radius-lg: var(--sdc-seat-list-border-radius-lg);--border-radius-xl: var(--sdc-seat-list-border-radius-xl);--font-size-sm: var(--sdc-seat-list-font-size-sm);--font-size-base: var(--sdc-seat-list-font-size-base);--font-size-lg: var(--sdc-seat-list-font-size-lg);--font-size-xl: var(--sdc-seat-list-font-size-xl)}.seat-list{width:100%}.seat-list--simple{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-list--simple .ticket{margin-bottom:var(--spacing-sm)}.seat-list--simple .ticket:last-child{margin-bottom:0}.seat-list--grouped{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-group{border-radius:var(--border-radius-md);overflow:hidden;background-color:var(--card-bg);margin-bottom:var(--spacing-sm)}.seat-group:last-child{margin-bottom:0}.seat-group__header{width:100%;background-color:var(--sdc-seat-list-group-header-bg, transparent);border:none;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s ease}.seat-group__header-content{display:flex;align-items:center;gap:var(--spacing-sm)}.seat-group__title{font-size:var(--font-size-base);font-weight:600;color:var(--text-dark)}.seat-group__count{font-size:var(--font-size-sm);color:var(--text-secondary)}.seat-group__chevron{width:16px;height:16px;color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0;display:inline-block}.seat-group__content{max-height:0;overflow:hidden;padding:0 var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:max-height .2s ease-out,padding .2s ease-out}.seat-group__content.expanded{max-height:5000px;padding:var(--spacing-md);opacity:1;transition:max-height .2s ease-in,padding .2s ease-in}.seat-group__content .ticket{margin-bottom:0}.ticket{display:flex;align-items:center;padding:var(--spacing-md);background-color:var(--sdc-seat-list-ticket-bg, #f9fafb);border-radius:var(--border-radius-md);transition:all .2s ease}.ticket:hover{background-color:var(--sdc-seat-list-ticket-bg-hover, #f3f4f6);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.ticket__indicator{width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-md);flex-shrink:0}.ticket__info{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.ticket__section{font-weight:600;color:var(--text-dark)}.ticket__price{color:var(--accent-blue);font-weight:600;font-size:var(--font-size-base);margin:0 var(--spacing-md)}.ticket__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-sm)}.ticket__actions-left{display:flex;align-items:center;gap:var(--spacing-sm)}.ticket__icon-box{display:flex;align-items:center;justify-content:center;background-color:var(--icon-bg);border-radius:var(--border-radius-lg);padding:var(--spacing-xs)}.ticket__icon-box .ticket__icon{width:16px;height:16px;color:var(--accent-blue);cursor:pointer;transition:color .2s ease}.ticket__icon-box .ticket__icon:hover{color:var(--accent-blue-hover)}.ticket__action-btn{background-color:var(--accent-blue);color:var(--text-primary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.ticket__action-btn:hover{background-color:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}@media (max-width: 640px){.ticket{padding:var(--spacing-sm)}.ticket__info{font-size:.75rem;gap:var(--spacing-xs)}.ticket__price{font-size:var(--font-size-sm);margin:0 var(--spacing-sm)}.seat-group__header{padding:var(--spacing-sm) var(--spacing-md)}.seat-group__content{padding:var(--spacing-sm)}}\n"] }]
3599
+ }], null, null); })();
3600
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SeatListComponent, { className: "SeatListComponent", filePath: "dvm/cart/seat-list.component.ts", lineNumber: 25 }); })();
3601
+
3602
+ function CartComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
3603
+ const _r1 = i0.ɵɵgetCurrentView();
3604
+ i0.ɵɵelementStart(0, "sdc-seat-list", 9);
3605
+ i0.ɵɵlistener("mapPinClick", function CartComponent_Conditional_9_Template_sdc_seat_list_mapPinClick_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMapPinClick($event)); })("eyeClick", function CartComponent_Conditional_9_Template_sdc_seat_list_eyeClick_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEyeClick($event)); })("removeClick", function CartComponent_Conditional_9_Template_sdc_seat_list_removeClick_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRemoveClick($event)); })("groupToggle", function CartComponent_Conditional_9_Template_sdc_seat_list_groupToggle_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onGroupToggle($event)); });
3606
+ i0.ɵɵelementEnd();
3607
+ } if (rf & 2) {
3608
+ const ctx_r1 = i0.ɵɵnextContext();
3609
+ i0.ɵɵproperty("groups", ctx_r1.groups())("actionButtonText", ctx_r1.relocateButtonText());
3610
+ } }
3611
+ function CartComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
3612
+ const _r3 = i0.ɵɵgetCurrentView();
3613
+ i0.ɵɵelementStart(0, "sdc-seat-list", 10);
3614
+ i0.ɵɵlistener("mapPinClick", function CartComponent_Conditional_10_Template_sdc_seat_list_mapPinClick_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMapPinClick($event)); })("eyeClick", function CartComponent_Conditional_10_Template_sdc_seat_list_eyeClick_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEyeClick($event)); })("actionClick", function CartComponent_Conditional_10_Template_sdc_seat_list_actionClick_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRelocateClick($event)); });
3615
+ i0.ɵɵelementEnd();
3616
+ } if (rf & 2) {
3617
+ const ctx_r1 = i0.ɵɵnextContext();
3618
+ i0.ɵɵproperty("seats", ctx_r1.items())("actionButtonText", ctx_r1.relocateButtonText());
3619
+ } }
3401
3620
  class CartComponent {
3621
+ headerTitle = input('Your Current Tickets');
3622
+ selectAllText = input('Select All');
3623
+ relocateButtonText = input('Relocate');
3624
+ items = input([]);
3625
+ groups = input([]);
3626
+ selectAll = output();
3627
+ mapPinClick = output();
3628
+ eyeClick = output();
3629
+ relocateClick = output();
3630
+ removeClick = output();
3631
+ groupToggle = output();
3632
+ onSelectAll() {
3633
+ this.selectAll.emit();
3634
+ }
3635
+ onMapPinClick(item) {
3636
+ this.mapPinClick.emit(item);
3637
+ }
3638
+ onEyeClick(item) {
3639
+ this.eyeClick.emit(item);
3640
+ }
3641
+ onRelocateClick(item) {
3642
+ this.relocateClick.emit(item);
3643
+ }
3644
+ onRemoveClick(item) {
3645
+ this.removeClick.emit(item);
3646
+ }
3647
+ onGroupToggle(event) {
3648
+ this.groupToggle.emit(event);
3649
+ }
3402
3650
  static ɵfac = function CartComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CartComponent)(); };
3403
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CartComponent, selectors: [["sdc-cart"]], decls: 2, vars: 0, template: function CartComponent_Template(rf, ctx) { if (rf & 1) {
3404
- i0.ɵɵelementStart(0, "div");
3405
- i0.ɵɵtext(1, "cart component!");
3651
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CartComponent, selectors: [["sdc-cart"]], inputs: { headerTitle: [1, "headerTitle"], selectAllText: [1, "selectAllText"], relocateButtonText: [1, "relocateButtonText"], items: [1, "items"], groups: [1, "groups"] }, outputs: { selectAll: "selectAll", mapPinClick: "mapPinClick", eyeClick: "eyeClick", relocateClick: "relocateClick", removeClick: "removeClick", groupToggle: "groupToggle" }, decls: 11, vars: 3, consts: [[1, "sdc-cart"], [1, "cart"], [1, "cart__container"], [1, "cart__header"], [1, "cart__header-title"], [1, "cart__select-all", 3, "click"], [1, "cart__tickets"], [3, "groups", "actionButtonText"], [3, "seats", "actionButtonText"], [3, "mapPinClick", "eyeClick", "removeClick", "groupToggle", "groups", "actionButtonText"], [3, "mapPinClick", "eyeClick", "actionClick", "seats", "actionButtonText"]], template: function CartComponent_Template(rf, ctx) { if (rf & 1) {
3652
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "h2", 4);
3653
+ i0.ɵɵtext(5);
3406
3654
  i0.ɵɵelementEnd();
3407
- } }, encapsulation: 2 });
3655
+ i0.ɵɵelementStart(6, "button", 5);
3656
+ i0.ɵɵlistener("click", function CartComponent_Template_button_click_6_listener() { return ctx.onSelectAll(); });
3657
+ i0.ɵɵtext(7);
3658
+ i0.ɵɵelementEnd()();
3659
+ i0.ɵɵelementStart(8, "div", 6);
3660
+ i0.ɵɵtemplate(9, CartComponent_Conditional_9_Template, 1, 2, "sdc-seat-list", 7)(10, CartComponent_Conditional_10_Template, 1, 2, "sdc-seat-list", 8);
3661
+ i0.ɵɵelementEnd()()()();
3662
+ } if (rf & 2) {
3663
+ i0.ɵɵadvance(5);
3664
+ i0.ɵɵtextInterpolate(ctx.headerTitle());
3665
+ i0.ɵɵadvance(2);
3666
+ i0.ɵɵtextInterpolate(ctx.selectAllText());
3667
+ i0.ɵɵadvance(2);
3668
+ i0.ɵɵconditional(ctx.groups().length > 0 ? 9 : 10);
3669
+ } }, dependencies: [SeatListComponent], styles: [".sdc-cart[_ngcontent-%COMP%]{--primary-bg: #2a2d3a;--card-bg: #ffffff;--card-header-bg: #9ca3af;--text-primary: #ffffff;--text-secondary: #6b7280;--text-dark: #1f2937;--accent-orange: #f97316;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--border-color: #e5e7eb;--icon-bg: #f5f5f5;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem}.cart[_ngcontent-%COMP%]{max-width:500px;margin:0 auto}.cart__title[_ngcontent-%COMP%]{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-lg);text-align:left}.cart__container[_ngcontent-%COMP%]{background-color:var(--card-bg);border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:0 10px 25px #0000001a}.cart__header[_ngcontent-%COMP%]{background-color:var(--card-header-bg);padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.cart__header-title[_ngcontent-%COMP%]{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.cart__select-all[_ngcontent-%COMP%]{background-color:var(--text-primary);color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.cart__select-all[_ngcontent-%COMP%]:hover{background-color:#f3f4f6;transform:translateY(-1px)}.cart__tickets[_ngcontent-%COMP%]{padding:var(--spacing-md)}@media (max-width: 640px){body[_ngcontent-%COMP%]{padding:var(--spacing-md)}.cart__title[_ngcontent-%COMP%]{font-size:var(--font-size-xl)}}"] });
3408
3670
  }
3409
3671
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CartComponent, [{
3410
3672
  type: Component,
3411
- args: [{ selector: 'sdc-cart', standalone: true, template: "<div>cart component!</div>\n" }]
3673
+ args: [{ imports: [SeatListComponent], selector: 'sdc-cart', standalone: true, template: "<div class=\"sdc-cart\">\n <div class=\"cart\">\n <div class=\"cart__container\">\n <div class=\"cart__header\">\n <h2 class=\"cart__header-title\">{{ headerTitle() }}</h2>\n <button class=\"cart__select-all\" (click)=\"onSelectAll()\">{{ selectAllText() }}</button>\n </div>\n\n <div class=\"cart__tickets\">\n @if (groups().length > 0) {\n <sdc-seat-list\n [groups]=\"groups()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (removeClick)=\"onRemoveClick($event)\"\n (groupToggle)=\"onGroupToggle($event)\">\n </sdc-seat-list>\n } @else {\n <sdc-seat-list\n [seats]=\"items()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (actionClick)=\"onRelocateClick($event)\">\n </sdc-seat-list>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: [".sdc-cart{--primary-bg: #2a2d3a;--card-bg: #ffffff;--card-header-bg: #9ca3af;--text-primary: #ffffff;--text-secondary: #6b7280;--text-dark: #1f2937;--accent-orange: #f97316;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--border-color: #e5e7eb;--icon-bg: #f5f5f5;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem}.cart{max-width:500px;margin:0 auto}.cart__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-lg);text-align:left}.cart__container{background-color:var(--card-bg);border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:0 10px 25px #0000001a}.cart__header{background-color:var(--card-header-bg);padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.cart__header-title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.cart__select-all{background-color:var(--text-primary);color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.cart__select-all:hover{background-color:#f3f4f6;transform:translateY(-1px)}.cart__tickets{padding:var(--spacing-md)}@media (max-width: 640px){body{padding:var(--spacing-md)}.cart__title{font-size:var(--font-size-xl)}}\n"] }]
3412
3674
  }], null, null); })();
3413
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CartComponent, { className: "CartComponent", filePath: "dvm/cart/cart.component.ts", lineNumber: 8 }); })();
3414
-
3415
- class CartService {
3416
- constructor() { }
3417
- static ɵfac = function CartService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CartService)(); };
3418
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CartService, factory: CartService.ɵfac, providedIn: 'root' });
3419
- }
3420
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CartService, [{
3421
- type: Injectable,
3422
- args: [{
3423
- providedIn: 'root',
3424
- }]
3425
- }], () => [], null); })();
3675
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CartComponent, { className: "CartComponent", filePath: "dvm/cart/cart.component.ts", lineNumber: 12 }); })();
3426
3676
 
3427
3677
  /*
3428
3678
  * Public API Surface of software-division-components
@@ -6594,5 +6844,5 @@ function provideScreenObserver(screens) {
6594
6844
  * Generated bundle index. Do not edit.
6595
6845
  */
6596
6846
 
6597
- export { AddDigitalWalletComponent, BasePopoverComponent, BasePopoverDataTransformer, BaseSeatDataTransformer, BaseSectionDataTransformer, BraintreeComponent, ButtonComponent, CONFIGURATION_SERVICE, CartComponent, CartItemComponent, CartItemService, CartService, CheckboxComponent, DVM_FORMATTER, DVM_SERVICE, DatePickerComponent, DialogComponent, HlmDialogService as DialogService, DrawerComponent, DrawerService, DvmPopoverPositionerService, InputComponent, LegendComponent, LegendElementsComponent, LoaderComponent, LoaderService, MapLoaderComponent, NeighborsComponent, POPOVER_MANAGER, POPOVER_POSITIONER, PopoverComponent, PopoverManagerService, PopoverService, RadioComponent, ScreenObserver, SeatPopoverComponent, SectionPopoverComponent, SelectComponent, StepperComponent, SvgIconComponent, THUMBNAIL_PROVIDER, TableComponent, TicketInfoItemComponent, TicketInfoItemService, declareGlobalCssVariables, provideScreenObserver, provideSdc };
6847
+ export { AddDigitalWalletComponent, BasePopoverComponent, BasePopoverDataTransformer, BaseSeatDataTransformer, BaseSectionDataTransformer, BraintreeComponent, ButtonComponent, CONFIGURATION_SERVICE, CartComponent, CartItemComponent, CartItemService, CheckboxComponent, DVM_FORMATTER, DVM_SERVICE, DatePickerComponent, DialogComponent, HlmDialogService as DialogService, DrawerComponent, DrawerService, DvmPopoverPositionerService, InputComponent, LegendComponent, LegendElementsComponent, LoaderComponent, LoaderService, MapLoaderComponent, NeighborsComponent, POPOVER_MANAGER, POPOVER_POSITIONER, PopoverComponent, PopoverManagerService, PopoverService, RadioComponent, ScreenObserver, SeatListComponent, SeatPopoverComponent, SectionPopoverComponent, SelectComponent, StepperComponent, SvgIconComponent, THUMBNAIL_PROVIDER, TableComponent, TicketInfoItemComponent, TicketInfoItemService, declareGlobalCssVariables, provideScreenObserver, provideSdc };
6598
6848
  //# sourceMappingURL=3ddv-software-division-components.mjs.map