@rolatech/angular-booking 19.0.0-beta.13 → 19.0.0-beta.14

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.
@@ -1,9 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, input, output, model } from '@angular/core';
2
+ import { input, Component, HostBinding, Pipe, output, model } from '@angular/core';
3
+ import * as i1 from '@angular/common';
3
4
  import { CommonModule, DatePipe } from '@angular/common';
5
+ import * as i1$3 from '@angular/material/icon';
6
+ import { MatIcon, MatIconModule } from '@angular/material/icon';
7
+ import { ThumbnailComponent } from '@rolatech/angular-components';
8
+ import { RouterLink } from '@angular/router';
4
9
  import * as i3 from '@angular/forms';
5
10
  import { FormsModule } from '@angular/forms';
6
- import * as i1 from '@angular/material/checkbox';
11
+ import * as i1$1 from '@angular/material/checkbox';
7
12
  import { MatCheckboxModule } from '@angular/material/checkbox';
8
13
  import { map } from 'lodash';
9
14
  import { MomentDateAdapter } from '@angular/material-moment-adapter';
@@ -15,16 +20,81 @@ import * as i4 from '@angular/material/select';
15
20
  import { MatSelectModule } from '@angular/material/select';
16
21
  import * as i2 from '@angular/material/input';
17
22
  import { MatInputModule } from '@angular/material/input';
18
- import * as i1$1 from '@angular/material/form-field';
23
+ import * as i1$2 from '@angular/material/form-field';
19
24
  import { MatFormFieldModule } from '@angular/material/form-field';
20
25
  import moment from 'moment';
21
26
  import * as i4$1 from '@angular/material/datepicker';
22
27
  import { MatDatepickerModule } from '@angular/material/datepicker';
23
- import * as i1$2 from '@angular/material/icon';
24
- import { MatIconModule } from '@angular/material/icon';
25
28
 
26
29
  const bookingRoutes = [];
27
30
 
31
+ class BookingResourceInfoComponent {
32
+ resource = input();
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingResourceInfoComponent, isStandalone: true, selector: "rolatech-booking-resource-info", inputs: { resource: { classPropertyName: "resource", publicName: "resource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div>\n <div class=\"text-3xl font-medium\">{{ resource().name }}</div>\n <div class=\"flex items-center py-2\">\n <mat-icon>place</mat-icon>\n <span class=\"text-sm font-thin\">{{ resource().location?.address }}</span>\n </div>\n <div>\n <ng-content select=\"rolatech-booking-resource-media\"></ng-content>\n </div>\n <!-- description -->\n <div class=\"flex flex-col\">\n <div class=\"text-2xl font-bold py-3\">\u7B80\u4ECB</div>\n <div class=\"\">{{ resource().description }}</div>\n </div>\n <!-- facilities -->\n <div class=\"\">\n <div class=\"text-2xl font-bold py-3\">\u53EF\u7528\u8BBE\u65BD</div>\n <div class=\"flex flex-row flex-wrap items-center font-thin text-sm\">\n @for (facility of resource().facilities; track facility) {\n <div class=\"flex items-center mr-2\">\n <mat-icon>check</mat-icon>\n <span>{{ facility.name }}</span>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceInfoComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'rolatech-booking-resource-info', imports: [CommonModule, MatIcon], template: "<div>\n <div class=\"text-3xl font-medium\">{{ resource().name }}</div>\n <div class=\"flex items-center py-2\">\n <mat-icon>place</mat-icon>\n <span class=\"text-sm font-thin\">{{ resource().location?.address }}</span>\n </div>\n <div>\n <ng-content select=\"rolatech-booking-resource-media\"></ng-content>\n </div>\n <!-- description -->\n <div class=\"flex flex-col\">\n <div class=\"text-2xl font-bold py-3\">\u7B80\u4ECB</div>\n <div class=\"\">{{ resource().description }}</div>\n </div>\n <!-- facilities -->\n <div class=\"\">\n <div class=\"text-2xl font-bold py-3\">\u53EF\u7528\u8BBE\u65BD</div>\n <div class=\"flex flex-row flex-wrap items-center font-thin text-sm\">\n @for (facility of resource().facilities; track facility) {\n <div class=\"flex items-center mr-2\">\n <mat-icon>check</mat-icon>\n <span>{{ facility.name }}</span>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
39
+ }] });
40
+
41
+ class BookingResourceMediaComponent {
42
+ hasId = 'rolatech-booking-resource-media';
43
+ hasClass = true;
44
+ media = input();
45
+ mediaIndex = 0;
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingResourceMediaComponent, isStandalone: true, selector: "rolatech-booking-resource-media", inputs: { media: { classPropertyName: "media", publicName: "media", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "this.hasId", "class.rolatech-booking-resource-media": "this.hasClass" } }, ngImport: i0, template: "<div>\n <div class=\"object-cover aspect-video bg-[--rt-raised-background]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\"></rolatech-thumbnail>\n </div>\n @for (media of media(); track media; let index = $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md w-32\"\n (click)=\"mediaIndex = index\"\n [ngClass]=\"mediaIndex === index ? '' : 'opacity-30'\"\n >\n <rolatech-thumbnail [src]=\"media.url\" size=\"small\"></rolatech-thumbnail>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }] });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceMediaComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'rolatech-booking-resource-media', imports: [CommonModule, ThumbnailComponent], template: "<div>\n <div class=\"object-cover aspect-video bg-[--rt-raised-background]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\"></rolatech-thumbnail>\n </div>\n @for (media of media(); track media; let index = $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md w-32\"\n (click)=\"mediaIndex = index\"\n [ngClass]=\"mediaIndex === index ? '' : 'opacity-30'\"\n >\n <rolatech-thumbnail [src]=\"media.url\" size=\"small\"></rolatech-thumbnail>\n </div>\n }\n</div>\n" }]
52
+ }], propDecorators: { hasId: [{
53
+ type: HostBinding,
54
+ args: ['id']
55
+ }], hasClass: [{
56
+ type: HostBinding,
57
+ args: ['class.rolatech-booking-resource-media']
58
+ }] } });
59
+
60
+ class BookingResourceSectionComponent {
61
+ section = input();
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingResourceSectionComponent, isStandalone: true, selector: "rolatech-booking-resource-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div>\n @if (section().title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section().title }}</span>\n </div>\n }\n @if (section().content) {\n <div>\n {{ section().content }}\n </div>\n }\n @if (section().media) {\n <div class=\"w-80%\">\n @for (item of section().media; track item) {\n <div class=\"py-3\">\n <img class=\"object-cover aspect-video\" [src]=\"item.url\" alt />\n </div>\n }\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceSectionComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'rolatech-booking-resource-section', imports: [CommonModule], template: "<div>\n @if (section().title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section().title }}</span>\n </div>\n }\n @if (section().content) {\n <div>\n {{ section().content }}\n </div>\n }\n @if (section().media) {\n <div class=\"w-80%\">\n @for (item of section().media; track item) {\n <div class=\"py-3\">\n <img class=\"object-cover aspect-video\" [src]=\"item.url\" alt />\n </div>\n }\n </div>\n }\n</div>\n" }]
68
+ }] });
69
+
70
+ class MinPipe {
71
+ transform(variants) {
72
+ if (variants === undefined)
73
+ return variants;
74
+ variants.sort((a, b) => a.pricing.total - b.pricing.total);
75
+ return variants[0].pricing.total / 100;
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: MinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
78
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.2", ngImport: i0, type: MinPipe, isStandalone: true, name: "min", pure: false });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: MinPipe, decorators: [{
81
+ type: Pipe,
82
+ args: [{
83
+ name: 'min',
84
+ pure: false,
85
+ }]
86
+ }] });
87
+
88
+ class BookingResourceItemComponent {
89
+ resource = input.required();
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingResourceItemComponent, isStandalone: true, selector: "rolatech-booking-resource-item", inputs: { resource: { classPropertyName: "resource", publicName: "resource", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"py-3 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-[--rt-raised-background]\">\n <div class=\"flex\">\n <div class=\"w-2/5 sm:w-1/4 aspect-video\">\n @if (resource().media) {\n <rolatech-thumbnail [src]=\"resource().media[0].url + '!w400'\" size=\"small\"></rolatech-thumbnail>\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col justify-between\">\n <div>\n <div class=\"mb-1 sm:text-xl font-bold\">\n {{ resource().name }}\n </div>\n <div class=\"text-sm font-thin\">\n <span class=\"mr-3\">\u9762\u79EF{{ resource().area }}m\u00B2 </span>\n <span>\u53EF\u5BB9\u7EB3{{ resource().capacity }}\u4EBA</span>\n </div>\n </div>\n <div class=\"flex justify-between mt-1\">\n <div>\n <span class=\"sm:text-lg font-medium text-orange-600\">\u00A5{{ resource().variants | min }}</span\n ><span class=\"text-sm font-thin\">\u8D77</span>\n </div>\n <button\n mat-flat-button\n class=\"max-h-8 mr-3\"\n [routerLink]=\"['../../bookings/book']\"\n [queryParams]=\"{ resource: resource().id }\"\n >\n \u9884\u8BA2\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }, { kind: "pipe", type: MinPipe, name: "min" }] });
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingResourceItemComponent, decorators: [{
94
+ type: Component,
95
+ args: [{ selector: 'rolatech-booking-resource-item', imports: [CommonModule, RouterLink, ThumbnailComponent, MinPipe], template: "<div class=\"py-3 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-[--rt-raised-background]\">\n <div class=\"flex\">\n <div class=\"w-2/5 sm:w-1/4 aspect-video\">\n @if (resource().media) {\n <rolatech-thumbnail [src]=\"resource().media[0].url + '!w400'\" size=\"small\"></rolatech-thumbnail>\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col justify-between\">\n <div>\n <div class=\"mb-1 sm:text-xl font-bold\">\n {{ resource().name }}\n </div>\n <div class=\"text-sm font-thin\">\n <span class=\"mr-3\">\u9762\u79EF{{ resource().area }}m\u00B2 </span>\n <span>\u53EF\u5BB9\u7EB3{{ resource().capacity }}\u4EBA</span>\n </div>\n </div>\n <div class=\"flex justify-between mt-1\">\n <div>\n <span class=\"sm:text-lg font-medium text-orange-600\">\u00A5{{ resource().variants | min }}</span\n ><span class=\"text-sm font-thin\">\u8D77</span>\n </div>\n <button\n mat-flat-button\n class=\"max-h-8 mr-3\"\n [routerLink]=\"['../../bookings/book']\"\n [queryParams]=\"{ resource: resource().id }\"\n >\n \u9884\u8BA2\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
96
+ }] });
97
+
28
98
  class BookingReturnItemComponent {
29
99
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingReturnItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
100
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.2", type: BookingReturnItemComponent, isStandalone: true, selector: "rolatech-booking-return-item", ngImport: i0, template: "<p>booking-return-item works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
@@ -62,7 +132,7 @@ class BookingReturnRequestComponent {
62
132
  this.output.emit(items);
63
133
  }
64
134
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingReturnRequestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingReturnRequestComponent, isStandalone: true, selector: "rolatech-booking-return-request", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { output: "output" }, ngImport: i0, template: "<div>\n <div class=\"flex justify-between items-center\">\n <div class=\"flex items-center gap-3\">\n <mat-checkbox [checked]=\"allComplete\" [indeterminate]=\"someComplete()\" (change)=\"setAll($event.checked)\"> </mat-checkbox>\n <div>\u5168\u9009</div>\n </div>\n <div>\u9000\u6B3E\u91D1\u989D: \u00A5{{ total.toFixed(2) }}</div>\n </div>\n @for (item of items(); track item) {\n <div class=\"flex flex-col\">\n <div class=\"hover:bg-[--rt-raised-background] cursor-pointer py-2\">\n <div class=\"flex justify-between items-center\">\n <div class=\"flex flex-row w-full\">\n <mat-checkbox [(ngModel)]=\"item.completed\" (ngModelChange)=\"updateAllComplete()\"> </mat-checkbox>\n <div class=\"w-2/5 sm:w-1/4 bg-[--rt-raised-background]\">\n @if (item.variant) {\n <img class=\"w-full h-full object-cover sm:aspect-video\" [src]=\"item.variant.classroom.media[0].url\" alt />\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col py-1\">\n <span class=\"font-bold break-words line-clamp-2\">\u6559\u5BA4: {{ item.variant.classroom.name }}</span>\n <span class=\"font-thin text-md\">\u53EF\u7528\u65F6\u95F4: {{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
135
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingReturnRequestComponent, isStandalone: true, selector: "rolatech-booking-return-request", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { output: "output" }, ngImport: i0, template: "<div>\n <div class=\"flex justify-between items-center\">\n <div class=\"flex items-center gap-3\">\n <mat-checkbox [checked]=\"allComplete\" [indeterminate]=\"someComplete()\" (change)=\"setAll($event.checked)\"> </mat-checkbox>\n <div>\u5168\u9009</div>\n </div>\n <div>\u9000\u6B3E\u91D1\u989D: \u00A5{{ total.toFixed(2) }}</div>\n </div>\n @for (item of items(); track item) {\n <div class=\"flex flex-col\">\n <div class=\"hover:bg-[--rt-raised-background] cursor-pointer py-2\">\n <div class=\"flex justify-between items-center\">\n <div class=\"flex flex-row w-full\">\n <mat-checkbox [(ngModel)]=\"item.completed\" (ngModelChange)=\"updateAllComplete()\"> </mat-checkbox>\n <div class=\"w-2/5 sm:w-1/4 bg-[--rt-raised-background]\">\n @if (item.variant) {\n <img class=\"w-full h-full object-cover sm:aspect-video\" [src]=\"item.variant.classroom.media[0].url\" alt />\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col py-1\">\n <span class=\"font-bold break-words line-clamp-2\">\u6559\u5BA4: {{ item.variant.classroom.name }}</span>\n <span class=\"font-thin text-md\">\u53EF\u7528\u65F6\u95F4: {{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
66
136
  }
67
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingReturnRequestComponent, decorators: [{
68
138
  type: Component,
@@ -223,7 +293,7 @@ class PeriodItemComponent {
223
293
  },
224
294
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS$1 },
225
295
  DatePipe,
226
- ], ngImport: i0, template: "<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"period().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u5F00\u59CB\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"period().startTime\" (selectionChange)=\"startTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"period().endTime\" (selectionChange)=\"endTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(period())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(period())\">\u4FDD\u5B58</button>\n </div>\n }\n</div>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
296
+ ], ngImport: i0, template: "<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"period().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u5F00\u59CB\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"period().startTime\" (selectionChange)=\"startTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"period().endTime\" (selectionChange)=\"endTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(period())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(period())\">\u4FDD\u5B58</button>\n </div>\n }\n</div>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
227
297
  }
228
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: PeriodItemComponent, decorators: [{
229
299
  type: Component,
@@ -278,7 +348,7 @@ class SessionItemComponent {
278
348
  },
279
349
  { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
280
350
  DatePipe,
281
- ], ngImport: i0, template: "<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"session().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u5F00\u59CB\u65E5\u671F</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n (focus)=\"picker.open()\"\n name=\"startAt\"\n [(ngModel)]=\"session().startDate\"\n (dateInput)=\"session().startDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65E5\u671F</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker2\"\n name=\"endAt\"\n (focus)=\"picker2.open()\"\n [(ngModel)]=\"session().endDate\"\n (dateInput)=\"session().endDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(session())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(session())\">\u4FDD\u5B58</button>\n </div>\n }\n</div>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
351
+ ], ngImport: i0, template: "<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"session().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u5F00\u59CB\u65E5\u671F</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n (focus)=\"picker.open()\"\n name=\"startAt\"\n [(ngModel)]=\"session().startDate\"\n (dateInput)=\"session().startDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65E5\u671F</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker2\"\n name=\"endAt\"\n (focus)=\"picker2.open()\"\n [(ngModel)]=\"session().endDate\"\n (dateInput)=\"session().endDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(session())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(session())\">\u4FDD\u5B58</button>\n </div>\n }\n</div>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
282
352
  }
283
353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: SessionItemComponent, decorators: [{
284
354
  type: Component,
@@ -341,7 +411,7 @@ class BookingItemComponent {
341
411
  booking = input.required();
342
412
  status = BookingStatus;
343
413
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
344
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingItemComponent, isStandalone: true, selector: "rolatech-booking-item", inputs: { booking: { classPropertyName: "booking", publicName: "booking", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-col p-3 hover:bg-[--rt-raised-background] cursor-pointer\">\n <div class=\"flex justify-between w-full\">\n <span>\u9884\u8BA2\u53F7: {{ booking().bookingNo }}</span>\n <span class=\"font-medium text-sm\">{{ status[booking().status] }}</span>\n </div>\n @if (booking().product) {\n <div class=\"flex items-center justify-between\">\n <div>\n <span class=\"font-bold break-words line-clamp-2\">\u5546\u54C1: {{ booking().product.name }}</span>\n @if (booking().items) {\n <span class=\"font-bold break-words line-clamp-2\">\u6559\u5BA4: {{ booking().items[0].variant.classroom.name }}</span>\n }\n <span class=\"mt-2 text-md\">\u91D1\u989D: \u00A5{{ booking().total / 100 }}</span>\n </div>\n <div class=\"pl-2\">\n <mat-icon>navigate_next</mat-icon>\n </div>\n </div>\n }\n</div>\n<hr />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
414
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: BookingItemComponent, isStandalone: true, selector: "rolatech-booking-item", inputs: { booking: { classPropertyName: "booking", publicName: "booking", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-col p-3 hover:bg-[--rt-raised-background] cursor-pointer\">\n <div class=\"flex justify-between w-full\">\n <span>\u9884\u8BA2\u53F7: {{ booking().bookingNo }}</span>\n <span class=\"font-medium text-sm\">{{ status[booking().status] }}</span>\n </div>\n @if (booking().product) {\n <div class=\"flex items-center justify-between\">\n <div>\n <span class=\"font-bold break-words line-clamp-2\">\u5546\u54C1: {{ booking().product.name }}</span>\n @if (booking().items) {\n <span class=\"font-bold break-words line-clamp-2\">\u6559\u5BA4: {{ booking().items[0].variant.classroom.name }}</span>\n }\n <span class=\"mt-2 text-md\">\u91D1\u989D: \u00A5{{ booking().total / 100 }}</span>\n </div>\n <div class=\"pl-2\">\n <mat-icon>navigate_next</mat-icon>\n </div>\n </div>\n }\n</div>\n<hr />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
345
415
  }
346
416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: BookingItemComponent, decorators: [{
347
417
  type: Component,
@@ -352,5 +422,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
352
422
  * Generated bundle index. Do not edit.
353
423
  */
354
424
 
355
- export { BookingItemComponent, BookingItemStatus, BookingReturnItemComponent, BookingReturnRequestComponent, BookingReturnStatus, BookingStatus, BookingTimelineStatus, PeriodDate, PeriodItemComponent, ResourceStatus, ResourceType, SessionItemComponent, bookingRoutes };
425
+ export { BookingItemComponent, BookingItemStatus, BookingResourceInfoComponent, BookingResourceItemComponent, BookingResourceMediaComponent, BookingResourceSectionComponent, BookingReturnItemComponent, BookingReturnRequestComponent, BookingReturnStatus, BookingStatus, BookingTimelineStatus, PeriodDate, PeriodItemComponent, ResourceStatus, ResourceType, SessionItemComponent, bookingRoutes };
356
426
  //# sourceMappingURL=rolatech-angular-booking.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-booking.mjs","sources":["../../../../packages/angular-booking/src/lib/pages/booking.routes.ts","../../../../packages/angular-booking/src/lib/components/booking-return-item/booking-return-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-return-item/booking-return-item.component.html","../../../../packages/angular-booking/src/lib/components/booking-return-request/booking-return-request.component.ts","../../../../packages/angular-booking/src/lib/components/booking-return-request/booking-return-request.component.html","../../../../packages/angular-booking/src/lib/interfaces/resource.ts","../../../../packages/angular-booking/src/lib/components/period-item/period-item.component.ts","../../../../packages/angular-booking/src/lib/components/period-item/period-item.component.html","../../../../packages/angular-booking/src/lib/components/session-item/session-item.component.ts","../../../../packages/angular-booking/src/lib/components/session-item/session-item.component.html","../../../../packages/angular-booking/src/lib/interfaces/booking.ts","../../../../packages/angular-booking/src/lib/components/booking-item/booking-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-item/booking-item.component.html","../../../../packages/angular-booking/src/rolatech-angular-booking.ts"],"sourcesContent":["export const bookingRoutes = [];\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-booking-return-item',\n imports: [CommonModule],\n templateUrl: './booking-return-item.component.html',\n styleUrl: './booking-return-item.component.scss',\n})\nexport class BookingReturnItemComponent {}\n","<p>booking-return-item works!</p>\n","import { Component, DoCheck, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { map } from 'lodash';\n\n@Component({\n selector: 'rolatech-booking-return-request',\n imports: [MatCheckboxModule, FormsModule],\n templateUrl: './booking-return-request.component.html',\n styleUrl: './booking-return-request.component.scss',\n})\nexport class BookingReturnRequestComponent implements DoCheck {\n items = input.required<any>();\n allComplete = false;\n total = 0;\n selectedItems: any;\n output = output<any>();\n\n updateAllComplete() {\n this.allComplete = this.items() != null && this.items().every((t: any) => t.completed);\n }\n someComplete(): boolean {\n if (this.items() == null) {\n return false;\n }\n return this.items().filter((t: any) => t.completed).length > 0 && !this.allComplete;\n }\n\n setAll(completed: boolean) {\n this.allComplete = completed;\n if (this.items() == null) {\n return;\n }\n this.items().forEach((t: any) => (t.completed = completed));\n }\n\n ngDoCheck(): void {\n const filterItems = this.items().filter((item: any) => item.completed);\n const items = map(filterItems, 'id');\n this.output.emit(items);\n }\n}\n","<div>\n <div class=\"flex justify-between items-center\">\n <div class=\"flex items-center gap-3\">\n <mat-checkbox [checked]=\"allComplete\" [indeterminate]=\"someComplete()\" (change)=\"setAll($event.checked)\"> </mat-checkbox>\n <div>全选</div>\n </div>\n <div>退款金额: ¥{{ total.toFixed(2) }}</div>\n </div>\n @for (item of items(); track item) {\n <div class=\"flex flex-col\">\n <div class=\"hover:bg-[--rt-raised-background] cursor-pointer py-2\">\n <div class=\"flex justify-between items-center\">\n <div class=\"flex flex-row w-full\">\n <mat-checkbox [(ngModel)]=\"item.completed\" (ngModelChange)=\"updateAllComplete()\"> </mat-checkbox>\n <div class=\"w-2/5 sm:w-1/4 bg-[--rt-raised-background]\">\n @if (item.variant) {\n <img class=\"w-full h-full object-cover sm:aspect-video\" [src]=\"item.variant.classroom.media[0].url\" alt />\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col py-1\">\n <span class=\"font-bold break-words line-clamp-2\">教室: {{ item.variant.classroom.name }}</span>\n <span class=\"font-thin text-md\">可用时间: {{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n","import { Booking } from './booking';\nimport { Category } from './category';\nimport { Facility } from './facility';\nimport { Media } from './media';\n\nexport interface Resource {\n id: string;\n createdAt: string;\n updatedAt: string;\n name: number;\n description: string;\n status: ResourceStatus;\n type: ResourceType;\n price: number;\n partnerId: string;\n location?: ResourceLocation;\n bookings: Booking[];\n sessions: ResourceSession[];\n media: Media[];\n categories: Category[];\n details: ResourceDetail[];\n facilities?: Facility[];\n periods: any;\n}\nexport enum ResourceStatus {\n DRAFT = <any>'草稿',\n AWAITING = <any>'审核中',\n PENDING = <any>'审核中',\n ACTIVE = <any>'已发布',\n ACCEPTED = <any>'已通过',\n DELETED = <any>'已删除',\n}\nexport enum ResourceType {\n CLASSROOM = <any>'教室',\n}\nexport interface ResourceSession {\n id?: string;\n name: string;\n startDate: string;\n endDate: string;\n}\nexport interface ResourcePeriod {\n id?: string;\n name: string;\n startTime: string;\n endTime: string;\n}\nexport interface ResourceRate {\n userId: string;\n rate: number;\n}\nexport interface ResourceLocation {\n id: string;\n name: string;\n contact: string;\n phone: string;\n province: string;\n city: string;\n county: string;\n town: string;\n address: string;\n detail: string;\n latitude: string;\n longitude: string;\n}\nexport interface ResourceDetail {\n id: string;\n title: string;\n description: string;\n content: string;\n media: Media[];\n isUploading?: boolean;\n}\nexport interface ResourceClassroom {\n id: string;\n name: string;\n capacity: number;\n area: number;\n contact: string;\n phone: string;\n notes: string;\n facilities?: Facility[];\n media: Media[];\n productId?: string;\n isUploading?: boolean;\n}\nexport const PeriodDate = [\n '00:00',\n '00:15',\n '00:30',\n '00:45',\n\n '01:00',\n '01:15',\n '01:30',\n '01:45',\n\n '02:00',\n '02:15',\n '02:30',\n '02:45',\n '03:00',\n '03:15',\n '03:30',\n '03:45',\n\n '04:00',\n '04:15',\n '04:30',\n '04:45',\n '05:00',\n '05:15',\n '05:30',\n '05:45',\n\n '06:00',\n '06:15',\n '06:30',\n '06:45',\n '07:00',\n '07:15',\n '07:30',\n '07:45',\n\n '08:00',\n '08:15',\n '08:30',\n '08:45',\n '09:00',\n '09:15',\n '09:30',\n '09:45',\n\n '10:00',\n '10:15',\n '10:30',\n '10:45',\n '11:00',\n '11:15',\n '11:30',\n '11:45',\n\n '12:00',\n '12:15',\n '12:30',\n '12:45',\n '13:00',\n '13:15',\n '13:30',\n '13:45',\n\n '14:00',\n '14:15',\n '14:30',\n '14:45',\n '15:00',\n '15:15',\n '15:30',\n '15:45',\n\n '16:00',\n '16:15',\n '16:30',\n '16:45',\n '17:00',\n '17:15',\n '17:30',\n '17:45',\n\n '18:00',\n '18:15',\n '18:30',\n '18:45',\n '19:00',\n '19:15',\n '19:30',\n '19:45',\n\n '20:00',\n '20:15',\n '20:30',\n '20:45',\n '21:00',\n '21:15',\n '21:30',\n '21:45',\n\n '22:00',\n '22:15',\n '22:30',\n '22:45',\n '23:00',\n '23:15',\n '23:30',\n '23:45',\n];\n","import { DatePipe } from '@angular/common';\nimport { Component, DoCheck, OnInit, input, model, output } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';\nimport moment from 'moment';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ResourcePeriod, PeriodDate } from '../../interfaces/resource';\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n@Component({\n selector: 'rolatech-period-item',\n templateUrl: './period-item.component.html',\n styleUrls: ['./period-item.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n DatePipe,\n ],\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatSelectModule, MatOptionModule, MatButtonModule],\n})\nexport class PeriodItemComponent implements OnInit, DoCheck {\n period = model.required<ResourcePeriod>();\n actions = input<boolean>(false);\n delete = output<ResourcePeriod>();\n save = output<ResourcePeriod>();\n output = output<any>();\n date = PeriodDate;\n\n ngOnInit(): void {\n // this.period.startTime = moment(this.period.startTime).format('HH:mm');\n // this.period.endTime = moment(this.period.endTime).format('HH:mm');\n }\n startTimeChanged(event: any) {}\n endTimeChanged(event: any) {}\n\n onSave(period: ResourcePeriod) {\n this.save.emit(period);\n }\n onDelete(period: ResourcePeriod) {\n this.delete.emit(period);\n }\n ngDoCheck(): void {\n this.output.emit(this.period());\n }\n}\n","<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"period().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>开始时间</mat-label>\n <mat-select [(ngModel)]=\"period().startTime\" (selectionChange)=\"startTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>结束时间</mat-label>\n <mat-select [(ngModel)]=\"period().endTime\" (selectionChange)=\"endTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(period())\">删除</button>\n <button mat-flat-button (click)=\"onSave(period())\">保存</button>\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, model, output } from '@angular/core';\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { PeriodDate, ResourceSession } from '../../interfaces/resource';\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'rolatech-session-item',\n templateUrl: './session-item.component.html',\n styleUrls: ['./session-item.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n DatePipe,\n ],\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatDatepickerModule, MatButtonModule],\n})\nexport class SessionItemComponent implements OnInit, DoCheck {\n session = model.required<ResourceSession>();\n actions = input<boolean>(false);\n delete = output<ResourceSession>();\n save = output<ResourceSession>();\n date = PeriodDate;\n output = output<any>();\n\n ngOnInit(): void {\n this.session().startDate = moment(this.session().startDate).format('YYYY-MM-DD');\n this.session().endDate = moment(this.session().endDate).format('YYYY-MM-DD');\n }\n onSave(session: ResourceSession) {\n this.save.emit(session);\n }\n onDelete(session: ResourceSession) {\n this.delete.emit(session);\n }\n ngDoCheck(): void {\n this.output.emit(this.session());\n }\n}\n","<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"session().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>开始日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n (focus)=\"picker.open()\"\n name=\"startAt\"\n [(ngModel)]=\"session().startDate\"\n (dateInput)=\"session().startDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>结束日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker2\"\n name=\"endAt\"\n (focus)=\"picker2.open()\"\n [(ngModel)]=\"session().endDate\"\n (dateInput)=\"session().endDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(session())\">删除</button>\n <button mat-flat-button (click)=\"onSave(session())\">保存</button>\n </div>\n }\n</div>\n","import { Resource, ResourceType } from './resource';\nimport { ResourceVariant } from './resource-variant';\n\nexport interface Booking {\n id?: string;\n createdAt: string;\n bookingNo?: string;\n total: number;\n status: BookingStatus | string;\n userId: string;\n partnerId: string;\n notes: string;\n type: ResourceType;\n items: BookingItem[];\n product: Resource;\n}\nexport enum BookingStatus {\n CREATED = <any>'待付款',\n PAID = <any>'已支付',\n COMPLETED = <any>'已完成',\n CLOSED = <any>'交易关闭',\n CANCELED = <any>'交易取消',\n REFUNDED = <any>'已退款',\n}\nexport enum BookingReturnStatus {\n CREATED = <any>'等待审核',\n CANCELED = <any>'用户取消',\n APPROVED = <any>'已通过',\n REJECTED = <any>'已拒绝',\n PROCESSING = <any>'平台处理中',\n RETURNED = <any>'已退款',\n}\n\nexport interface BookingItem {\n total: number;\n variant: ResourceVariant;\n startAt: string;\n endAt: string;\n status: BookingItemStatus;\n}\nexport enum BookingItemStatus {\n CREATED = <any>'创建',\n CANCELED = <any>'已取消',\n CLOSED = <any>'已关闭',\n RETURN_REQUESTED = <any>'等待审核',\n RETURN_APPROVED = <any>'商家同意退款',\n RETURN_REJECTED = <any>'商家拒绝退款',\n RETURN_PROCESSING = <any>'退款处理中',\n REFUNDED = <any>'已退款',\n}\nexport enum BookingTimelineStatus {\n BOOKING_CREATE = <any>'交易创建',\n BOOKING_CLOSED = <any>'交易关闭',\n BOOKING_CANCELED = <any>'交易取消',\n BOOKING_PAID = <any>'订单已支付',\n BOOKING_REFUNDED = <any>'订单已退款',\n BOOKING_COMPLETED = <any>'订单已完成',\n BOOKING_RETURN_REQUESTED = <any>'退款申请',\n BOOKING_RETURN_APPROVED = <any>'商家同意退款',\n BOOKING_RETURN_REJECTED = <any>'商家拒绝退款',\n BOOKING_RETURN_PROCESSING = <any>'退款处理中',\n BOOKING_RETURN_REFUNDED = <any>'退款处理完成,已入账',\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Booking, BookingStatus } from '../../interfaces/booking';\n\n@Component({\n selector: 'rolatech-booking-item',\n imports: [MatIconModule],\n templateUrl: './booking-item.component.html',\n styleUrl: './booking-item.component.scss',\n})\nexport class BookingItemComponent {\n booking = input.required<Booking>();\n status: any = BookingStatus;\n}\n","<div class=\"flex flex-col p-3 hover:bg-[--rt-raised-background] cursor-pointer\">\n <div class=\"flex justify-between w-full\">\n <span>预订号: {{ booking().bookingNo }}</span>\n <span class=\"font-medium text-sm\">{{ status[booking().status] }}</span>\n </div>\n @if (booking().product) {\n <div class=\"flex items-center justify-between\">\n <div>\n <span class=\"font-bold break-words line-clamp-2\">商品: {{ booking().product.name }}</span>\n @if (booking().items) {\n <span class=\"font-bold break-words line-clamp-2\">教室: {{ booking().items[0].variant.classroom.name }}</span>\n }\n <span class=\"mt-2 text-md\">金额: ¥{{ booking().total / 100 }}</span>\n </div>\n <div class=\"pl-2\">\n <mat-icon>navigate_next</mat-icon>\n </div>\n </div>\n }\n</div>\n<hr />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","MY_FORMATS","i1","i4","i5"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-booking.mjs","sources":["../../../../packages/angular-booking/src/lib/pages/booking.routes.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-info/booking-resource-info.component.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-info/booking-resource-info.component.html","../../../../packages/angular-booking/src/lib/components/booking-resource-media/booking-resource-media.component.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-media/booking-resource-media.component.html","../../../../packages/angular-booking/src/lib/components/booking-resource-section/booking-resource-section.component.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-section/booking-resource-section.component.html","../../../../packages/angular-booking/src/lib/pipes/min.pipe.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-item/booking-resource-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-resource-item/booking-resource-item.component.html","../../../../packages/angular-booking/src/lib/components/booking-return-item/booking-return-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-return-item/booking-return-item.component.html","../../../../packages/angular-booking/src/lib/components/booking-return-request/booking-return-request.component.ts","../../../../packages/angular-booking/src/lib/components/booking-return-request/booking-return-request.component.html","../../../../packages/angular-booking/src/lib/interfaces/resource.ts","../../../../packages/angular-booking/src/lib/components/period-item/period-item.component.ts","../../../../packages/angular-booking/src/lib/components/period-item/period-item.component.html","../../../../packages/angular-booking/src/lib/components/session-item/session-item.component.ts","../../../../packages/angular-booking/src/lib/components/session-item/session-item.component.html","../../../../packages/angular-booking/src/lib/interfaces/booking.ts","../../../../packages/angular-booking/src/lib/components/booking-item/booking-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-item/booking-item.component.html","../../../../packages/angular-booking/src/rolatech-angular-booking.ts"],"sourcesContent":["export const bookingRoutes = [];\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-booking-resource-info',\n imports: [CommonModule, MatIcon],\n templateUrl: './booking-resource-info.component.html',\n styleUrl: './booking-resource-info.component.scss',\n})\nexport class BookingResourceInfoComponent {\n resource = input<any>();\n}\n","<div>\n <div class=\"text-3xl font-medium\">{{ resource().name }}</div>\n <div class=\"flex items-center py-2\">\n <mat-icon>place</mat-icon>\n <span class=\"text-sm font-thin\">{{ resource().location?.address }}</span>\n </div>\n <div>\n <ng-content select=\"rolatech-booking-resource-media\"></ng-content>\n </div>\n <!-- description -->\n <div class=\"flex flex-col\">\n <div class=\"text-2xl font-bold py-3\">简介</div>\n <div class=\"\">{{ resource().description }}</div>\n </div>\n <!-- facilities -->\n <div class=\"\">\n <div class=\"text-2xl font-bold py-3\">可用设施</div>\n <div class=\"flex flex-row flex-wrap items-center font-thin text-sm\">\n @for (facility of resource().facilities; track facility) {\n <div class=\"flex items-center mr-2\">\n <mat-icon>check</mat-icon>\n <span>{{ facility.name }}</span>\n </div>\n }\n </div>\n </div>\n</div>\n","import { Component, HostBinding, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-booking-resource-media',\n imports: [CommonModule, ThumbnailComponent],\n templateUrl: './booking-resource-media.component.html',\n styleUrl: './booking-resource-media.component.scss',\n})\nexport class BookingResourceMediaComponent {\n @HostBinding('id') hasId = 'rolatech-booking-resource-media';\n @HostBinding('class.rolatech-booking-resource-media') hasClass = true;\n media = input<any>();\n mediaIndex = 0;\n}\n","<div>\n <div class=\"object-cover aspect-video bg-[--rt-raised-background]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\"></rolatech-thumbnail>\n </div>\n @for (media of media(); track media; let index = $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md w-32\"\n (click)=\"mediaIndex = index\"\n [ngClass]=\"mediaIndex === index ? '' : 'opacity-30'\"\n >\n <rolatech-thumbnail [src]=\"media.url\" size=\"small\"></rolatech-thumbnail>\n </div>\n }\n</div>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-booking-resource-section',\n imports: [CommonModule],\n templateUrl: './booking-resource-section.component.html',\n styleUrl: './booking-resource-section.component.scss',\n})\nexport class BookingResourceSectionComponent {\n section = input<any>();\n}\n","<div>\n @if (section().title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section().title }}</span>\n </div>\n }\n @if (section().content) {\n <div>\n {{ section().content }}\n </div>\n }\n @if (section().media) {\n <div class=\"w-80%\">\n @for (item of section().media; track item) {\n <div class=\"py-3\">\n <img class=\"object-cover aspect-video\" [src]=\"item.url\" alt />\n </div>\n }\n </div>\n }\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'min',\n pure: false,\n})\nexport class MinPipe implements PipeTransform {\n transform(variants: any[]): unknown {\n if (variants === undefined) return variants;\n\n variants.sort((a, b) => a.pricing.total - b.pricing.total);\n return variants[0].pricing.total / 100;\n }\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { MinPipe } from '../../pipes/min.pipe';\n\n@Component({\n selector: 'rolatech-booking-resource-item',\n imports: [CommonModule, RouterLink, ThumbnailComponent, MinPipe],\n templateUrl: './booking-resource-item.component.html',\n styleUrl: './booking-resource-item.component.scss',\n})\nexport class BookingResourceItemComponent {\n resource = input.required<any>();\n}\n","<div class=\"py-3 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-[--rt-raised-background]\">\n <div class=\"flex\">\n <div class=\"w-2/5 sm:w-1/4 aspect-video\">\n @if (resource().media) {\n <rolatech-thumbnail [src]=\"resource().media[0].url + '!w400'\" size=\"small\"></rolatech-thumbnail>\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col justify-between\">\n <div>\n <div class=\"mb-1 sm:text-xl font-bold\">\n {{ resource().name }}\n </div>\n <div class=\"text-sm font-thin\">\n <span class=\"mr-3\">面积{{ resource().area }}m² </span>\n <span>可容纳{{ resource().capacity }}人</span>\n </div>\n </div>\n <div class=\"flex justify-between mt-1\">\n <div>\n <span class=\"sm:text-lg font-medium text-orange-600\">¥{{ resource().variants | min }}</span\n ><span class=\"text-sm font-thin\">起</span>\n </div>\n <button\n mat-flat-button\n class=\"max-h-8 mr-3\"\n [routerLink]=\"['../../bookings/book']\"\n [queryParams]=\"{ resource: resource().id }\"\n >\n 预订\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-booking-return-item',\n imports: [CommonModule],\n templateUrl: './booking-return-item.component.html',\n styleUrl: './booking-return-item.component.scss',\n})\nexport class BookingReturnItemComponent {}\n","<p>booking-return-item works!</p>\n","import { Component, DoCheck, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { map } from 'lodash';\n\n@Component({\n selector: 'rolatech-booking-return-request',\n imports: [MatCheckboxModule, FormsModule],\n templateUrl: './booking-return-request.component.html',\n styleUrl: './booking-return-request.component.scss',\n})\nexport class BookingReturnRequestComponent implements DoCheck {\n items = input.required<any>();\n allComplete = false;\n total = 0;\n selectedItems: any;\n output = output<any>();\n\n updateAllComplete() {\n this.allComplete = this.items() != null && this.items().every((t: any) => t.completed);\n }\n someComplete(): boolean {\n if (this.items() == null) {\n return false;\n }\n return this.items().filter((t: any) => t.completed).length > 0 && !this.allComplete;\n }\n\n setAll(completed: boolean) {\n this.allComplete = completed;\n if (this.items() == null) {\n return;\n }\n this.items().forEach((t: any) => (t.completed = completed));\n }\n\n ngDoCheck(): void {\n const filterItems = this.items().filter((item: any) => item.completed);\n const items = map(filterItems, 'id');\n this.output.emit(items);\n }\n}\n","<div>\n <div class=\"flex justify-between items-center\">\n <div class=\"flex items-center gap-3\">\n <mat-checkbox [checked]=\"allComplete\" [indeterminate]=\"someComplete()\" (change)=\"setAll($event.checked)\"> </mat-checkbox>\n <div>全选</div>\n </div>\n <div>退款金额: ¥{{ total.toFixed(2) }}</div>\n </div>\n @for (item of items(); track item) {\n <div class=\"flex flex-col\">\n <div class=\"hover:bg-[--rt-raised-background] cursor-pointer py-2\">\n <div class=\"flex justify-between items-center\">\n <div class=\"flex flex-row w-full\">\n <mat-checkbox [(ngModel)]=\"item.completed\" (ngModelChange)=\"updateAllComplete()\"> </mat-checkbox>\n <div class=\"w-2/5 sm:w-1/4 bg-[--rt-raised-background]\">\n @if (item.variant) {\n <img class=\"w-full h-full object-cover sm:aspect-video\" [src]=\"item.variant.classroom.media[0].url\" alt />\n }\n </div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 flex flex-col py-1\">\n <span class=\"font-bold break-words line-clamp-2\">教室: {{ item.variant.classroom.name }}</span>\n <span class=\"font-thin text-md\">可用时间: {{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n","import { Booking } from './booking';\nimport { Category } from './category';\nimport { Facility } from './facility';\nimport { Media } from './media';\n\nexport interface Resource {\n id: string;\n createdAt: string;\n updatedAt: string;\n name: number;\n description: string;\n status: ResourceStatus;\n type: ResourceType;\n price: number;\n partnerId: string;\n location?: ResourceLocation;\n bookings: Booking[];\n sessions: ResourceSession[];\n media: Media[];\n categories: Category[];\n details: ResourceDetail[];\n facilities?: Facility[];\n periods: any;\n}\nexport enum ResourceStatus {\n DRAFT = <any>'草稿',\n AWAITING = <any>'审核中',\n PENDING = <any>'审核中',\n ACTIVE = <any>'已发布',\n ACCEPTED = <any>'已通过',\n DELETED = <any>'已删除',\n}\nexport enum ResourceType {\n CLASSROOM = <any>'教室',\n}\nexport interface ResourceSession {\n id?: string;\n name: string;\n startDate: string;\n endDate: string;\n}\nexport interface ResourcePeriod {\n id?: string;\n name: string;\n startTime: string;\n endTime: string;\n}\nexport interface ResourceRate {\n userId: string;\n rate: number;\n}\nexport interface ResourceLocation {\n id: string;\n name: string;\n contact: string;\n phone: string;\n province: string;\n city: string;\n county: string;\n town: string;\n address: string;\n detail: string;\n latitude: string;\n longitude: string;\n}\nexport interface ResourceDetail {\n id: string;\n title: string;\n description: string;\n content: string;\n media: Media[];\n isUploading?: boolean;\n}\nexport interface ResourceClassroom {\n id: string;\n name: string;\n capacity: number;\n area: number;\n contact: string;\n phone: string;\n notes: string;\n facilities?: Facility[];\n media: Media[];\n productId?: string;\n isUploading?: boolean;\n}\nexport const PeriodDate = [\n '00:00',\n '00:15',\n '00:30',\n '00:45',\n\n '01:00',\n '01:15',\n '01:30',\n '01:45',\n\n '02:00',\n '02:15',\n '02:30',\n '02:45',\n '03:00',\n '03:15',\n '03:30',\n '03:45',\n\n '04:00',\n '04:15',\n '04:30',\n '04:45',\n '05:00',\n '05:15',\n '05:30',\n '05:45',\n\n '06:00',\n '06:15',\n '06:30',\n '06:45',\n '07:00',\n '07:15',\n '07:30',\n '07:45',\n\n '08:00',\n '08:15',\n '08:30',\n '08:45',\n '09:00',\n '09:15',\n '09:30',\n '09:45',\n\n '10:00',\n '10:15',\n '10:30',\n '10:45',\n '11:00',\n '11:15',\n '11:30',\n '11:45',\n\n '12:00',\n '12:15',\n '12:30',\n '12:45',\n '13:00',\n '13:15',\n '13:30',\n '13:45',\n\n '14:00',\n '14:15',\n '14:30',\n '14:45',\n '15:00',\n '15:15',\n '15:30',\n '15:45',\n\n '16:00',\n '16:15',\n '16:30',\n '16:45',\n '17:00',\n '17:15',\n '17:30',\n '17:45',\n\n '18:00',\n '18:15',\n '18:30',\n '18:45',\n '19:00',\n '19:15',\n '19:30',\n '19:45',\n\n '20:00',\n '20:15',\n '20:30',\n '20:45',\n '21:00',\n '21:15',\n '21:30',\n '21:45',\n\n '22:00',\n '22:15',\n '22:30',\n '22:45',\n '23:00',\n '23:15',\n '23:30',\n '23:45',\n];\n","import { DatePipe } from '@angular/common';\nimport { Component, DoCheck, OnInit, input, model, output } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';\nimport moment from 'moment';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ResourcePeriod, PeriodDate } from '../../interfaces/resource';\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n@Component({\n selector: 'rolatech-period-item',\n templateUrl: './period-item.component.html',\n styleUrls: ['./period-item.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n DatePipe,\n ],\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatSelectModule, MatOptionModule, MatButtonModule],\n})\nexport class PeriodItemComponent implements OnInit, DoCheck {\n period = model.required<ResourcePeriod>();\n actions = input<boolean>(false);\n delete = output<ResourcePeriod>();\n save = output<ResourcePeriod>();\n output = output<any>();\n date = PeriodDate;\n\n ngOnInit(): void {\n // this.period.startTime = moment(this.period.startTime).format('HH:mm');\n // this.period.endTime = moment(this.period.endTime).format('HH:mm');\n }\n startTimeChanged(event: any) {}\n endTimeChanged(event: any) {}\n\n onSave(period: ResourcePeriod) {\n this.save.emit(period);\n }\n onDelete(period: ResourcePeriod) {\n this.delete.emit(period);\n }\n ngDoCheck(): void {\n this.output.emit(this.period());\n }\n}\n","<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"period().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>开始时间</mat-label>\n <mat-select [(ngModel)]=\"period().startTime\" (selectionChange)=\"startTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>结束时间</mat-label>\n <mat-select [(ngModel)]=\"period().endTime\" (selectionChange)=\"endTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(period())\">删除</button>\n <button mat-flat-button (click)=\"onSave(period())\">保存</button>\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, model, output } from '@angular/core';\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { PeriodDate, ResourceSession } from '../../interfaces/resource';\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'rolatech-session-item',\n templateUrl: './session-item.component.html',\n styleUrls: ['./session-item.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n DatePipe,\n ],\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatDatepickerModule, MatButtonModule],\n})\nexport class SessionItemComponent implements OnInit, DoCheck {\n session = model.required<ResourceSession>();\n actions = input<boolean>(false);\n delete = output<ResourceSession>();\n save = output<ResourceSession>();\n date = PeriodDate;\n output = output<any>();\n\n ngOnInit(): void {\n this.session().startDate = moment(this.session().startDate).format('YYYY-MM-DD');\n this.session().endDate = moment(this.session().endDate).format('YYYY-MM-DD');\n }\n onSave(session: ResourceSession) {\n this.save.emit(session);\n }\n onDelete(session: ResourceSession) {\n this.delete.emit(session);\n }\n ngDoCheck(): void {\n this.output.emit(this.session());\n }\n}\n","<div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"session().name\" name=\"name\" required />\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>开始日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n (focus)=\"picker.open()\"\n name=\"startAt\"\n [(ngModel)]=\"session().startDate\"\n (dateInput)=\"session().startDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>结束日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker2\"\n name=\"endAt\"\n (focus)=\"picker2.open()\"\n [(ngModel)]=\"session().endDate\"\n (dateInput)=\"session().endDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </mat-form-field>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(session())\">删除</button>\n <button mat-flat-button (click)=\"onSave(session())\">保存</button>\n </div>\n }\n</div>\n","import { Resource, ResourceType } from './resource';\nimport { ResourceVariant } from './resource-variant';\n\nexport interface Booking {\n id?: string;\n createdAt: string;\n bookingNo?: string;\n total: number;\n status: BookingStatus | string;\n userId: string;\n partnerId: string;\n notes: string;\n type: ResourceType;\n items: BookingItem[];\n product: Resource;\n}\nexport enum BookingStatus {\n CREATED = <any>'待付款',\n PAID = <any>'已支付',\n COMPLETED = <any>'已完成',\n CLOSED = <any>'交易关闭',\n CANCELED = <any>'交易取消',\n REFUNDED = <any>'已退款',\n}\nexport enum BookingReturnStatus {\n CREATED = <any>'等待审核',\n CANCELED = <any>'用户取消',\n APPROVED = <any>'已通过',\n REJECTED = <any>'已拒绝',\n PROCESSING = <any>'平台处理中',\n RETURNED = <any>'已退款',\n}\n\nexport interface BookingItem {\n total: number;\n variant: ResourceVariant;\n startAt: string;\n endAt: string;\n status: BookingItemStatus;\n}\nexport enum BookingItemStatus {\n CREATED = <any>'创建',\n CANCELED = <any>'已取消',\n CLOSED = <any>'已关闭',\n RETURN_REQUESTED = <any>'等待审核',\n RETURN_APPROVED = <any>'商家同意退款',\n RETURN_REJECTED = <any>'商家拒绝退款',\n RETURN_PROCESSING = <any>'退款处理中',\n REFUNDED = <any>'已退款',\n}\nexport enum BookingTimelineStatus {\n BOOKING_CREATE = <any>'交易创建',\n BOOKING_CLOSED = <any>'交易关闭',\n BOOKING_CANCELED = <any>'交易取消',\n BOOKING_PAID = <any>'订单已支付',\n BOOKING_REFUNDED = <any>'订单已退款',\n BOOKING_COMPLETED = <any>'订单已完成',\n BOOKING_RETURN_REQUESTED = <any>'退款申请',\n BOOKING_RETURN_APPROVED = <any>'商家同意退款',\n BOOKING_RETURN_REJECTED = <any>'商家拒绝退款',\n BOOKING_RETURN_PROCESSING = <any>'退款处理中',\n BOOKING_RETURN_REFUNDED = <any>'退款处理完成,已入账',\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Booking, BookingStatus } from '../../interfaces/booking';\n\n@Component({\n selector: 'rolatech-booking-item',\n imports: [MatIconModule],\n templateUrl: './booking-item.component.html',\n styleUrl: './booking-item.component.scss',\n})\nexport class BookingItemComponent {\n booking = input.required<Booking>();\n status: any = BookingStatus;\n}\n","<div class=\"flex flex-col p-3 hover:bg-[--rt-raised-background] cursor-pointer\">\n <div class=\"flex justify-between w-full\">\n <span>预订号: {{ booking().bookingNo }}</span>\n <span class=\"font-medium text-sm\">{{ status[booking().status] }}</span>\n </div>\n @if (booking().product) {\n <div class=\"flex items-center justify-between\">\n <div>\n <span class=\"font-bold break-words line-clamp-2\">商品: {{ booking().product.name }}</span>\n @if (booking().items) {\n <span class=\"font-bold break-words line-clamp-2\">教室: {{ booking().items[0].variant.classroom.name }}</span>\n }\n <span class=\"mt-2 text-md\">金额: ¥{{ booking().total / 100 }}</span>\n </div>\n <div class=\"pl-2\">\n <mat-icon>navigate_next</mat-icon>\n </div>\n </div>\n }\n</div>\n<hr />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","MY_FORMATS","i1","i4","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,aAAa,GAAG;;MCUhB,4BAA4B,CAAA;IACvC,QAAQ,GAAG,KAAK,EAAO;uGADZ,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,ECVzC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,q8BA2BA,EDrBY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIpB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EACjC,OAAA,EAAA,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,q8BAAA,EAAA;;;MEIrB,6BAA6B,CAAA;IACrB,KAAK,GAAG,iCAAiC;IACN,QAAQ,GAAG,IAAI;IACrE,KAAK,GAAG,KAAK,EAAO;IACpB,UAAU,GAAG,CAAC;uGAJH,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,ECV1C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,uCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2iBAcA,EDRY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,6HAAE,kBAAkB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI/B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAClC,OAAA,EAAA,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,2iBAAA,EAAA;8BAKxB,KAAK,EAAA,CAAA;sBAAvB,WAAW;uBAAC,IAAI;gBACqC,QAAQ,EAAA,CAAA;sBAA7D,WAAW;uBAAC,uCAAuC;;;MEHzC,+BAA+B,CAAA;IAC1C,OAAO,GAAG,KAAK,EAAO;uGADX,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT5C,+lBAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;+BACE,mCAAmC,EAAA,OAAA,EACpC,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+lBAAA,EAAA;;;MECZ,OAAO,CAAA;AAClB,IAAA,SAAS,CAAC,QAAe,EAAA;QACvB,IAAI,QAAQ,KAAK,SAAS;AAAE,YAAA,OAAO,QAAQ;QAE3C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1D,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG;;uGAL7B,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAJnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA;;;MCOY,4BAA4B,CAAA;AACvC,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAO;uGADrB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZzC,kxCAkCA,ED1BY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,OAAO,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA;;2FAIpD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,gCAAgC,EAAA,OAAA,EACjC,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,kxCAAA,EAAA;;;MECrD,0BAA0B,CAAA;uGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTvC,qCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACE,8BAA8B,EAAA,OAAA,EAC/B,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qCAAA,EAAA;;;MEMZ,6BAA6B,CAAA;AACxC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAO;IAC7B,WAAW,GAAG,KAAK;IACnB,KAAK,GAAG,CAAC;AACT,IAAA,aAAa;IACb,MAAM,GAAG,MAAM,EAAO;IAEtB,iBAAiB,GAAA;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,SAAS,CAAC;;IAExF,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;AACxB,YAAA,OAAO,KAAK;;QAEd,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;;AAGrF,IAAA,MAAM,CAAC,SAAkB,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;YACxB;;AAEF,QAAA,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAM,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;;IAG7D,SAAS,GAAA;AACP,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;uGA5Bd,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,ECX1C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u4CA6BA,EDtBY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,qbAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAClC,OAAA,EAAA,CAAC,iBAAiB,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,u4CAAA,EAAA;;;IEiB/B;AAAZ,CAAA,UAAY,cAAc,EAAA;IACxB,cAAa,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,IAAI,WAAA;IACjB,cAAgB,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;IACrB,cAAe,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,KAAK,aAAA;IACpB,cAAc,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,KAAK,YAAA;IACnB,cAAgB,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;IACrB,cAAe,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,KAAK,aAAA;AACtB,CAAC,EAPW,cAAc,KAAd,cAAc,GAOzB,EAAA,CAAA,CAAA;IACW;AAAZ,CAAA,UAAY,YAAY,EAAA;IACtB,YAAiB,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,IAAI,eAAA;AACvB,CAAC,EAFW,YAAY,KAAZ,YAAY,GAEvB,EAAA,CAAA,CAAA;AAoDY,MAAA,UAAU,GAAG;IACxB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IAEP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;;;ACvLF,MAAMC,YAAU,GAAG;AACxB,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,YAAY;AAC3B,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;CACF;MAgBY,mBAAmB,CAAA;AAC9B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAkB;AACzC,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;IAC/B,MAAM,GAAG,MAAM,EAAkB;IACjC,IAAI,GAAG,MAAM,EAAkB;IAC/B,MAAM,GAAG,MAAM,EAAO;IACtB,IAAI,GAAG,UAAU;IAEjB,QAAQ,GAAA;;;;IAIR,gBAAgB,CAAC,KAAU,EAAA;IAC3B,cAAc,CAAC,KAAU,EAAA;AAEzB,IAAA,MAAM,CAAC,MAAsB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;AAExB,IAAA,QAAQ,CAAC,MAAsB,EAAA;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;IAE1B,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;;uGAtBtB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAXnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,iBAAiB;gBAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAEA,YAAU,EAAE;YACnD,QAAQ;AACT,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCH,2yCAkCA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCY,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEjG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,iBAAiB;4BAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAED,YAAU,EAAE;wBACnD,QAAQ;AACT,qBAAA,EAAA,OAAA,EACQ,CAAC,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,2yCAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;;;AExBxG,MAAM,UAAU,GAAG;AACxB,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,YAAY;AAC3B,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;CACF;MAiBY,oBAAoB,CAAA;AAC/B,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;IAC/B,MAAM,GAAG,MAAM,EAAmB;IAClC,IAAI,GAAG,MAAM,EAAmB;IAChC,IAAI,GAAG,UAAU;IACjB,MAAM,GAAG,MAAM,EAAO;IAEtB,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAChF,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;;AAE9E,IAAA,MAAM,CAAC,OAAwB,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEzB,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;;IAE3B,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;uGAnBvB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAXpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,iBAAiB;gBAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE;YACnD,QAAQ;SACT,ECnCH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,snDA4CA,EDRY,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,iYAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEpF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGtB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,iBAAiB;4BAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE;wBACnD,QAAQ;qBACT,EACQ,OAAA,EAAA,CAAC,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,snDAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;;;IEpBtF;AAAZ,CAAA,UAAY,aAAa,EAAA;IACvB,aAAe,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,KAAK,aAAA;IACpB,aAAY,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,KAAK,UAAA;IACjB,aAAiB,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,KAAK,eAAA;IACtB,aAAc,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,MAAM,YAAA;IACpB,aAAgB,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,MAAM,cAAA;IACtB,aAAgB,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,GAOxB,EAAA,CAAA,CAAA;IACW;AAAZ,CAAA,UAAY,mBAAmB,EAAA;IAC7B,mBAAe,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,MAAM,aAAA;IACrB,mBAAgB,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,MAAM,cAAA;IACtB,mBAAgB,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;IACrB,mBAAgB,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;IACrB,mBAAkB,CAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,OAAO,gBAAA;IACzB,mBAAgB,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;AACvB,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,GAO9B,EAAA,CAAA,CAAA;IASW;AAAZ,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAe,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,IAAI,aAAA;IACnB,iBAAgB,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;IACrB,iBAAc,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,KAAK,YAAA;IACnB,iBAAwB,CAAA,iBAAA,CAAA,kBAAA,CAAA,GAAA,MAAM,sBAAA;IAC9B,iBAAuB,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,QAAQ,qBAAA;IAC/B,iBAAuB,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,QAAQ,qBAAA;IAC/B,iBAAyB,CAAA,iBAAA,CAAA,mBAAA,CAAA,GAAA,OAAO,uBAAA;IAChC,iBAAgB,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,KAAK,cAAA;AACvB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,GAS5B,EAAA,CAAA,CAAA;IACW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;IAC/B,qBAAsB,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,MAAM,oBAAA;IAC5B,qBAAsB,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,MAAM,oBAAA;IAC5B,qBAAwB,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,MAAM,sBAAA;IAC9B,qBAAoB,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,OAAO,kBAAA;IAC3B,qBAAwB,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,OAAO,sBAAA;IAC/B,qBAAyB,CAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,OAAO,uBAAA;IAChC,qBAAgC,CAAA,qBAAA,CAAA,0BAAA,CAAA,GAAA,MAAM,8BAAA;IACtC,qBAA+B,CAAA,qBAAA,CAAA,yBAAA,CAAA,GAAA,QAAQ,6BAAA;IACvC,qBAA+B,CAAA,qBAAA,CAAA,yBAAA,CAAA,GAAA,QAAQ,6BAAA;IACvC,qBAAiC,CAAA,qBAAA,CAAA,2BAAA,CAAA,GAAA,OAAO,+BAAA;IACxC,qBAA+B,CAAA,qBAAA,CAAA,yBAAA,CAAA,GAAA,YAAY,6BAAA;AAC7C,CAAC,EAZW,qBAAqB,KAArB,qBAAqB,GAYhC,EAAA,CAAA,CAAA;;MCpDY,oBAAoB,CAAA;AAC/B,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAW;IACnC,MAAM,GAAQ,aAAa;uGAFhB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVjC,83BAqBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfY,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,uBAAuB,EAAA,OAAA,EACxB,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,83BAAA,EAAA;;;AEN1B;;AAEG;;;;"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BookingResourceInfoComponent {
3
+ resource: import("@angular/core").InputSignal<any>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BookingResourceInfoComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<BookingResourceInfoComponent, "rolatech-booking-resource-info", never, { "resource": { "alias": "resource"; "required": false; "isSignal": true; }; }, {}, never, ["rolatech-booking-resource-media"], true, never>;
6
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BookingResourceItemComponent {
3
+ resource: import("@angular/core").InputSignal<any>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BookingResourceItemComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<BookingResourceItemComponent, "rolatech-booking-resource-item", never, { "resource": { "alias": "resource"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BookingResourceMediaComponent {
3
+ hasId: string;
4
+ hasClass: boolean;
5
+ media: import("@angular/core").InputSignal<any>;
6
+ mediaIndex: number;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<BookingResourceMediaComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<BookingResourceMediaComponent, "rolatech-booking-resource-media", never, { "media": { "alias": "media"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BookingResourceSectionComponent {
3
+ section: import("@angular/core").InputSignal<any>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BookingResourceSectionComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<BookingResourceSectionComponent, "rolatech-booking-resource-section", never, { "section": { "alias": "section"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6
+ }
@@ -1,3 +1,7 @@
1
+ export { BookingResourceInfoComponent } from './booking-resource-info/booking-resource-info.component';
2
+ export { BookingResourceMediaComponent } from './booking-resource-media/booking-resource-media.component';
3
+ export { BookingResourceSectionComponent } from './booking-resource-section/booking-resource-section.component';
4
+ export { BookingResourceItemComponent } from './booking-resource-item/booking-resource-item.component';
1
5
  export { BookingReturnItemComponent } from './booking-return-item/booking-return-item.component';
2
6
  export { BookingReturnRequestComponent } from './booking-return-request/booking-return-request.component';
3
7
  export { PeriodItemComponent } from './period-item/period-item.component';
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MinPipe implements PipeTransform {
4
+ transform(variants: any[]): unknown;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MinPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<MinPipe, "min", true>;
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolatech/angular-booking",
3
- "version": "19.0.0-beta.13",
3
+ "version": "19.0.0-beta.14",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.2.0",