@rolatech/angular-booking 19.0.0-beta.15 → 19.0.0-beta.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -24,7 +24,6 @@ import * as i1$2 from '@angular/material/checkbox';
|
|
|
24
24
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
25
25
|
import { map } from 'lodash';
|
|
26
26
|
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
27
|
-
import * as i5$1 from '@angular/material/core';
|
|
28
27
|
import { MatOptionModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
29
28
|
import * as i4 from '@angular/material/select';
|
|
30
29
|
import { MatSelectModule } from '@angular/material/select';
|
|
@@ -32,7 +31,41 @@ import moment from 'moment';
|
|
|
32
31
|
import * as i4$1 from '@angular/material/datepicker';
|
|
33
32
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
34
33
|
|
|
35
|
-
const bookingRoutes = [
|
|
34
|
+
const bookingRoutes = [
|
|
35
|
+
// { path: 'book', canActivate: [AuthGuard], component: BookingBookComponent },
|
|
36
|
+
// {
|
|
37
|
+
// path: '',
|
|
38
|
+
// component: BookingLayoutComponent,
|
|
39
|
+
// canActivate: [AuthGuard],
|
|
40
|
+
// children: [
|
|
41
|
+
// { path: '', component: BookingIndexComponent },
|
|
42
|
+
// {
|
|
43
|
+
// path: 'awaiting',
|
|
44
|
+
// component: BookingAwaitingComponent,
|
|
45
|
+
// },
|
|
46
|
+
// {
|
|
47
|
+
// path: 'paid',
|
|
48
|
+
// component: BookingPaidComponent,
|
|
49
|
+
// },
|
|
50
|
+
// {
|
|
51
|
+
// path: 'refunded',
|
|
52
|
+
// component: BookingRefundedComponent,
|
|
53
|
+
// },
|
|
54
|
+
// {
|
|
55
|
+
// path: 'canceled',
|
|
56
|
+
// component: BookingCanceledComponent,
|
|
57
|
+
// },
|
|
58
|
+
// ],
|
|
59
|
+
// },
|
|
60
|
+
// {
|
|
61
|
+
// path: ':id',
|
|
62
|
+
// component: BookingDetailComponent,
|
|
63
|
+
// },
|
|
64
|
+
// {
|
|
65
|
+
// path: ':id/qrcodepay',
|
|
66
|
+
// component: BookingQrcodepayComponent,
|
|
67
|
+
// },
|
|
68
|
+
];
|
|
36
69
|
|
|
37
70
|
class BookingManageResourceItemComponent {
|
|
38
71
|
isUploading = input();
|
|
@@ -67,10 +100,10 @@ class BookingManageResourceItemComponent {
|
|
|
67
100
|
onDeleteMedia(id, media) {
|
|
68
101
|
this.deleteMedia.emit({ id, media });
|
|
69
102
|
}
|
|
70
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
71
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingManageResourceItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: BookingManageResourceItemComponent, isStandalone: true, selector: "rolatech-booking-manage-resource-item", inputs: { isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, resource: { classPropertyName: "resource", publicName: "resource", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: "selectMedia", publicName: "selectMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: "upload", delete: "delete", save: "save", deleteMedia: "deleteMedia" }, ngImport: i0, template: "<div class=\"mb-8\">\n <div class=\"flex flex-col md:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u540D\u79F0</mat-label>\n <input matInput placeholder=\"\u540D\u79F0\" [(ngModel)]=\"resource().name\" />\n </mat-form-field>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u9762\u79EF</mat-label>\n <input matInput placeholder=\"\u9762\u79EF\" [(ngModel)]=\"resource().area\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u5BB9\u7EB3\u4EBA\u6570</mat-label>\n <input matInput placeholder=\"\u5BB9\u7EB3\u4EBA\u6570\" [(ngModel)]=\"resource().capacity\" />\n </mat-form-field>\n </div>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u8054\u7CFB\u4EBA</mat-label>\n <input matInput placeholder=\"\u8054\u7CFB\u4EBA\" [(ngModel)]=\"resource().contact\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u624B\u673A\u53F7</mat-label>\n <input matInput placeholder=\"\u624B\u673A\u53F7\" [(ngModel)]=\"resource().phone\" />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u5907\u6CE8</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"\u5907\u6CE8\"\n [(ngModel)]=\"resource().notes\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- media -->\n <div class=\"md:basis-1/2 px-3\">\n <div class=\"\">\u6559\u5BA4\u56FE\u7247</div>\n <div class=\"flex flex-row justify-center pb-4 p-1\">\n @if (selectedImg) {\n <img class=\"object-contain w-80 h-80\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n }\n @if (selectedImg) {\n <button mat-icon-button (click)=\"onDeleteMedia(resource().id, selectedImg)\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (resource().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of resource().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload(resource().id, $event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(resource())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(resource())\">\u4FDD\u5B58</button>\n </div>\n}\n<mat-divider></mat-divider>\n", styles: [".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;border:1px solid grey;padding:6px;position:relative;box-sizing:border-box}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.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: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
|
|
72
105
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingManageResourceItemComponent, decorators: [{
|
|
74
107
|
type: Component,
|
|
75
108
|
args: [{ selector: 'rolatech-booking-manage-resource-item', imports: [
|
|
76
109
|
MatFormFieldModule,
|
|
@@ -86,10 +119,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
86
119
|
|
|
87
120
|
class BookingResourceInfoComponent {
|
|
88
121
|
resource = input();
|
|
89
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
90
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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"] }] });
|
|
91
124
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceInfoComponent, decorators: [{
|
|
93
126
|
type: Component,
|
|
94
127
|
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" }]
|
|
95
128
|
}] });
|
|
@@ -99,10 +132,10 @@ class BookingResourceMediaComponent {
|
|
|
99
132
|
hasClass = true;
|
|
100
133
|
media = input();
|
|
101
134
|
mediaIndex = 0;
|
|
102
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
103
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }] });
|
|
104
137
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceMediaComponent, decorators: [{
|
|
106
139
|
type: Component,
|
|
107
140
|
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" }]
|
|
108
141
|
}], propDecorators: { hasId: [{
|
|
@@ -115,10 +148,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
115
148
|
|
|
116
149
|
class BookingResourceSectionComponent {
|
|
117
150
|
section = input();
|
|
118
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
119
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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 }] });
|
|
120
153
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceSectionComponent, decorators: [{
|
|
122
155
|
type: Component,
|
|
123
156
|
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" }]
|
|
124
157
|
}] });
|
|
@@ -130,10 +163,10 @@ class MinPipe {
|
|
|
130
163
|
variants.sort((a, b) => a.pricing.total - b.pricing.total);
|
|
131
164
|
return variants[0].pricing.total / 100;
|
|
132
165
|
}
|
|
133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
134
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
166
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: MinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
167
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: MinPipe, isStandalone: true, name: "min", pure: false });
|
|
135
168
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: MinPipe, decorators: [{
|
|
137
170
|
type: Pipe,
|
|
138
171
|
args: [{
|
|
139
172
|
name: 'min',
|
|
@@ -143,19 +176,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
|
|
|
143
176
|
|
|
144
177
|
class BookingResourceItemComponent {
|
|
145
178
|
resource = input.required();
|
|
146
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
147
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
179
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
|
|
148
181
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingResourceItemComponent, decorators: [{
|
|
150
183
|
type: Component,
|
|
151
184
|
args: [{ selector: 'rolatech-booking-resource-item', imports: [CommonModule, RouterLink, ThumbnailComponent, MinPipe, MatButtonModule], 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" }]
|
|
152
185
|
}] });
|
|
153
186
|
|
|
154
187
|
class BookingReturnItemComponent {
|
|
155
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
156
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingReturnItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", 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 }] });
|
|
157
190
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingReturnItemComponent, decorators: [{
|
|
159
192
|
type: Component,
|
|
160
193
|
args: [{ selector: 'rolatech-booking-return-item', imports: [CommonModule], template: "<p>booking-return-item works!</p>\n" }]
|
|
161
194
|
}] });
|
|
@@ -187,10 +220,10 @@ class BookingReturnRequestComponent {
|
|
|
187
220
|
const items = map(filterItems, 'id');
|
|
188
221
|
this.output.emit(items);
|
|
189
222
|
}
|
|
190
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
191
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
223
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingReturnRequestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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$2.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
192
225
|
}
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingReturnRequestComponent, decorators: [{
|
|
194
227
|
type: Component,
|
|
195
228
|
args: [{ selector: 'rolatech-booking-return-request', imports: [MatCheckboxModule, FormsModule], 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" }]
|
|
196
229
|
}] });
|
|
@@ -340,8 +373,8 @@ class PeriodItemComponent {
|
|
|
340
373
|
ngDoCheck() {
|
|
341
374
|
this.output.emit(this.period());
|
|
342
375
|
}
|
|
343
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
344
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
376
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PeriodItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
377
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: PeriodItemComponent, isStandalone: true, selector: "rolatech-period-item", inputs: { period: { classPropertyName: "period", publicName: "period", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { period: "periodChange", delete: "delete", save: "save", output: "output" }, providers: [
|
|
345
378
|
{
|
|
346
379
|
provide: DateAdapter,
|
|
347
380
|
useClass: MomentDateAdapter,
|
|
@@ -349,9 +382,9 @@ class PeriodItemComponent {
|
|
|
349
382
|
},
|
|
350
383
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS$1 },
|
|
351
384
|
DatePipe,
|
|
352
|
-
], 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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.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:
|
|
385
|
+
], 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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.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: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
|
|
353
386
|
}
|
|
354
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PeriodItemComponent, decorators: [{
|
|
355
388
|
type: Component,
|
|
356
389
|
args: [{ selector: 'rolatech-period-item', providers: [
|
|
357
390
|
{
|
|
@@ -395,8 +428,8 @@ class SessionItemComponent {
|
|
|
395
428
|
ngDoCheck() {
|
|
396
429
|
this.output.emit(this.session());
|
|
397
430
|
}
|
|
398
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
399
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
431
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SessionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
432
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SessionItemComponent, isStandalone: true, selector: "rolatech-session-item", inputs: { session: { classPropertyName: "session", publicName: "session", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { session: "sessionChange", delete: "delete", save: "save", output: "output" }, providers: [
|
|
400
433
|
{
|
|
401
434
|
provide: DateAdapter,
|
|
402
435
|
useClass: MomentDateAdapter,
|
|
@@ -406,7 +439,7 @@ class SessionItemComponent {
|
|
|
406
439
|
DatePipe,
|
|
407
440
|
], 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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.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: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
|
|
408
441
|
}
|
|
409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SessionItemComponent, decorators: [{
|
|
410
443
|
type: Component,
|
|
411
444
|
args: [{ selector: 'rolatech-session-item', providers: [
|
|
412
445
|
{
|
|
@@ -466,10 +499,10 @@ var BookingTimelineStatus;
|
|
|
466
499
|
class BookingItemComponent {
|
|
467
500
|
booking = input.required();
|
|
468
501
|
status = BookingStatus;
|
|
469
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
470
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
502
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
503
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", 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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
471
504
|
}
|
|
472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
505
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: BookingItemComponent, decorators: [{
|
|
473
506
|
type: Component,
|
|
474
507
|
args: [{ selector: 'rolatech-booking-item', imports: [MatIconModule], 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" }]
|
|
475
508
|
}] });
|
|
@@ -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-manage-resource-item/booking-manage-resource-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-manage-resource-item/booking-manage-resource-item.component.html","../../../../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, OnInit, output } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Media } from '@rolatech/angular-common';\nimport { ResourceItem } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-booking-manage-resource-item',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n MatDividerModule,\n ],\n templateUrl: './booking-manage-resource-item.component.html',\n styleUrl: './booking-manage-resource-item.component.scss',\n})\nexport class BookingManageResourceItemComponent implements OnInit {\n isUploading = input<boolean>();\n resource = input.required<ResourceItem>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n\n upload = output<{ id: string; data: FormData | null }>();\n delete = output<ResourceItem>();\n save = output<ResourceItem>();\n deleteMedia = output<{ id: string; media: Media }>();\n\n selectedImg!: Media | null;\n\n constructor() {}\n\n ngOnInit(): void {\n this.selectedImg = this.resource().media ? this.resource().media[0] : null;\n }\n onUpload(id: string, data: any) {\n this.upload.emit({ id, data });\n }\n onMediaItemClick(image: Media) {\n this.selectedImg = image;\n }\n\n select(item: any) {\n this.selectedImg = item;\n }\n deleteImage() {}\n onSave(resource: ResourceItem) {\n this.save.emit(resource);\n }\n onDelete(resource: ResourceItem) {\n this.delete.emit(resource);\n }\n onDeleteMedia(id: string, media: Media) {\n this.deleteMedia.emit({ id, media });\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col md:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"名称\" [(ngModel)]=\"resource().name\" />\n </mat-form-field>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>面积</mat-label>\n <input matInput placeholder=\"面积\" [(ngModel)]=\"resource().area\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>容纳人数</mat-label>\n <input matInput placeholder=\"容纳人数\" [(ngModel)]=\"resource().capacity\" />\n </mat-form-field>\n </div>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>联系人</mat-label>\n <input matInput placeholder=\"联系人\" [(ngModel)]=\"resource().contact\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>手机号</mat-label>\n <input matInput placeholder=\"手机号\" [(ngModel)]=\"resource().phone\" />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>备注</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"备注\"\n [(ngModel)]=\"resource().notes\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- media -->\n <div class=\"md:basis-1/2 px-3\">\n <div class=\"\">教室图片</div>\n <div class=\"flex flex-row justify-center pb-4 p-1\">\n @if (selectedImg) {\n <img class=\"object-contain w-80 h-80\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n }\n @if (selectedImg) {\n <button mat-icon-button (click)=\"onDeleteMedia(resource().id, selectedImg)\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (resource().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of resource().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload(resource().id, $event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(resource())\">删除</button>\n <button mat-flat-button (click)=\"onSave(resource())\">保存</button>\n </div>\n}\n<mat-divider></mat-divider>\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';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-booking-resource-item',\n imports: [CommonModule, RouterLink, ThumbnailComponent, MinPipe, MatButtonModule],\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 ResourceItem {\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":["i4","i1","i2","MY_FORMATS","i3","i5","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-booking.mjs","sources":["../../../../packages/angular-booking/src/lib/pages/booking/booking.routes.ts","../../../../packages/angular-booking/src/lib/components/booking-manage-resource-item/booking-manage-resource-item.component.ts","../../../../packages/angular-booking/src/lib/components/booking-manage-resource-item/booking-manage-resource-item.component.html","../../../../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":["import { Routes } from '@angular/router';\nimport { AuthGuard } from '@rolatech/angular-auth';\n\nexport const bookingRoutes: Routes = [\n // { path: 'book', canActivate: [AuthGuard], component: BookingBookComponent },\n // {\n // path: '',\n // component: BookingLayoutComponent,\n // canActivate: [AuthGuard],\n // children: [\n // { path: '', component: BookingIndexComponent },\n // {\n // path: 'awaiting',\n // component: BookingAwaitingComponent,\n // },\n // {\n // path: 'paid',\n // component: BookingPaidComponent,\n // },\n // {\n // path: 'refunded',\n // component: BookingRefundedComponent,\n // },\n // {\n // path: 'canceled',\n // component: BookingCanceledComponent,\n // },\n // ],\n // },\n // {\n // path: ':id',\n // component: BookingDetailComponent,\n // },\n // {\n // path: ':id/qrcodepay',\n // component: BookingQrcodepayComponent,\n // },\n];\n","import { Component, input, OnInit, output } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Media } from '@rolatech/angular-common';\nimport { ResourceItem } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-booking-manage-resource-item',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n MatDividerModule,\n ],\n templateUrl: './booking-manage-resource-item.component.html',\n styleUrl: './booking-manage-resource-item.component.scss',\n})\nexport class BookingManageResourceItemComponent implements OnInit {\n isUploading = input<boolean>();\n resource = input.required<ResourceItem>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n\n upload = output<{ id: string; data: FormData | null }>();\n delete = output<ResourceItem>();\n save = output<ResourceItem>();\n deleteMedia = output<{ id: string; media: Media }>();\n\n selectedImg!: Media | null;\n\n constructor() {}\n\n ngOnInit(): void {\n this.selectedImg = this.resource().media ? this.resource().media[0] : null;\n }\n onUpload(id: string, data: any) {\n this.upload.emit({ id, data });\n }\n onMediaItemClick(image: Media) {\n this.selectedImg = image;\n }\n\n select(item: any) {\n this.selectedImg = item;\n }\n deleteImage() {}\n onSave(resource: ResourceItem) {\n this.save.emit(resource);\n }\n onDelete(resource: ResourceItem) {\n this.delete.emit(resource);\n }\n onDeleteMedia(id: string, media: Media) {\n this.deleteMedia.emit({ id, media });\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col md:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"名称\" [(ngModel)]=\"resource().name\" />\n </mat-form-field>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>面积</mat-label>\n <input matInput placeholder=\"面积\" [(ngModel)]=\"resource().area\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>容纳人数</mat-label>\n <input matInput placeholder=\"容纳人数\" [(ngModel)]=\"resource().capacity\" />\n </mat-form-field>\n </div>\n <div class=\"flex justify-between gap-3\">\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>联系人</mat-label>\n <input matInput placeholder=\"联系人\" [(ngModel)]=\"resource().contact\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>手机号</mat-label>\n <input matInput placeholder=\"手机号\" [(ngModel)]=\"resource().phone\" />\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>备注</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"备注\"\n [(ngModel)]=\"resource().notes\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- media -->\n <div class=\"md:basis-1/2 px-3\">\n <div class=\"\">教室图片</div>\n <div class=\"flex flex-row justify-center pb-4 p-1\">\n @if (selectedImg) {\n <img class=\"object-contain w-80 h-80\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n }\n @if (selectedImg) {\n <button mat-icon-button (click)=\"onDeleteMedia(resource().id, selectedImg)\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (resource().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of resource().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload(resource().id, $event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button (click)=\"onDelete(resource())\">删除</button>\n <button mat-flat-button (click)=\"onSave(resource())\">保存</button>\n </div>\n}\n<mat-divider></mat-divider>\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';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-booking-resource-item',\n imports: [CommonModule, RouterLink, ThumbnailComponent, MinPipe, MatButtonModule],\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 ResourceItem {\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":["i4","i1","i2","MY_FORMATS","i3"],"mappings":"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"}
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const bookingRoutes: never[];
|