@rolatech/angular-course 17.2.9 → 17.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/course-action/course-action.component.mjs +7 -5
- package/esm2022/lib/components/course-details/course-details.component.mjs +6 -6
- package/esm2022/lib/components/course-details-dialog/course-details-dialog.component.mjs +5 -5
- package/esm2022/lib/components/course-edit-dialog/course-edit-dialog.component.mjs +8 -8
- package/esm2022/lib/components/course-info/course-info.component.mjs +10 -7
- package/esm2022/lib/components/course-item/course-item.component.mjs +8 -6
- package/esm2022/lib/components/course-media/course-media.component.mjs +7 -7
- package/esm2022/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.mjs +3 -3
- package/esm2022/lib/components/course-preview/course-preview.component.mjs +3 -3
- package/esm2022/lib/components/course-pricing/course-pricing.component.mjs +3 -3
- package/esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.mjs +4 -4
- package/esm2022/lib/components/course-pricing-dialog/course-pricing-dialog.component.mjs +5 -5
- package/esm2022/lib/components/course-schedule/course-schedule.component.mjs +4 -4
- package/esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.mjs +5 -5
- package/esm2022/lib/components/course-schedule-dialog/course-schedule-dialog.component.mjs +5 -5
- package/esm2022/lib/components/course-section-item/course-section-item.component.mjs +6 -5
- package/esm2022/lib/components/course-section-lecture-item/course-section-lecture-item.component.mjs +10 -6
- package/esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.mjs +8 -5
- package/esm2022/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.mjs +3 -3
- package/esm2022/lib/components/course-sections/course-sections.component.mjs +5 -5
- package/esm2022/lib/components/detail-item/detail-item.component.mjs +5 -6
- package/esm2022/lib/components/pricing-item/pricing-item.component.mjs +5 -6
- package/esm2022/lib/components/schedule-item/schedule-item.component.mjs +7 -8
- package/esm2022/lib/pages/course/course-category/course-category.component.mjs +3 -3
- package/esm2022/lib/pages/course/course-detail/course-detail.component.mjs +3 -3
- package/esm2022/lib/pages/course/course-index/course-index.component.mjs +3 -3
- package/esm2022/lib/pages/course/course-layout/course-layout.component.mjs +3 -3
- package/esm2022/lib/pages/course/course-section-content/course-section-content.component.mjs +3 -3
- package/esm2022/lib/services/category.service.mjs +3 -3
- package/esm2022/lib/services/course-section.service.mjs +3 -3
- package/esm2022/lib/services/course.service.mjs +3 -3
- package/fesm2022/rolatech-angular-course.mjs +124 -116
- package/fesm2022/rolatech-angular-course.mjs.map +1 -1
- package/lib/components/course-edit-dialog/course-edit-dialog.component.d.ts +2 -2
- package/lib/components/course-info/course-info.component.d.ts +1 -0
- package/lib/components/course-item/course-item.component.d.ts +2 -1
- package/lib/components/course-media/course-media.component.d.ts +1 -1
- package/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.d.ts +1 -1
- package/lib/components/course-section-lecture-item/course-section-lecture-item.component.d.ts +1 -1
- package/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.d.ts +1 -1
- package/lib/components/detail-item/detail-item.component.d.ts +1 -2
- package/lib/components/pricing-item/pricing-item.component.d.ts +2 -3
- package/lib/components/schedule-item/schedule-item.component.d.ts +2 -3
- package/package.json +1 -1
- package/themes/_default.scss +1 -1
|
@@ -14,7 +14,6 @@ import * as i5 from "@angular/material/divider";
|
|
|
14
14
|
export class PricingItemComponent {
|
|
15
15
|
constructor() {
|
|
16
16
|
this.actions = input(false);
|
|
17
|
-
this.shadow = input(false);
|
|
18
17
|
this.pricing = model.required();
|
|
19
18
|
this.delete = output();
|
|
20
19
|
this.save = output();
|
|
@@ -35,11 +34,11 @@ export class PricingItemComponent {
|
|
|
35
34
|
setTwoNumberDecimal(e) {
|
|
36
35
|
this.pricing().total = e;
|
|
37
36
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PricingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: PricingItemComponent, isStandalone: true, selector: "rolatech-pricing-item", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, pricing: { classPropertyName: "pricing", publicName: "pricing", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pricing: "pricingChange", delete: "delete", save: "save" }, ngImport: i0, template: "<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6700\u5C11\u4EBA\u6570 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().min\" name=\"min\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6700\u591A\u4EBA\u6570 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().max\" name=\"max\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4EF7\u683C </mat-label>\n <!-- <input matInput type=\"number\" step=\"0.01\" [ngModel]=\"pricing().total\"\n (ngModelChange)=\"setTwoNumberDecimal($event)\" name=\"total\" required placeholder=\"20.23\" /> -->\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"pricing().total\" name=\"total\" required />\n </mat-form-field>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3\">\n <button mat-button (click)=\"onDelete(pricing())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(pricing())\">\u4FDD\u5B58</button>\n </div>\n}\n<mat-divider></mat-divider>\n", styles: [""], 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"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] }); }
|
|
40
39
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PricingItemComponent, decorators: [{
|
|
42
41
|
type: Component,
|
|
43
|
-
args: [{ selector: 'rolatech-pricing-item', standalone: true, imports: [NgClass, MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatDividerModule], template: "<div class=\"flex flex-col py-3\"
|
|
42
|
+
args: [{ selector: 'rolatech-pricing-item', standalone: true, imports: [NgClass, MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatDividerModule], template: "<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6700\u5C11\u4EBA\u6570 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().min\" name=\"min\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6700\u591A\u4EBA\u6570 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().max\" name=\"max\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4EF7\u683C </mat-label>\n <!-- <input matInput type=\"number\" step=\"0.01\" [ngModel]=\"pricing().total\"\n (ngModelChange)=\"setTwoNumberDecimal($event)\" name=\"total\" required placeholder=\"20.23\" /> -->\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"pricing().total\" name=\"total\" required />\n </mat-form-field>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3\">\n <button mat-button (click)=\"onDelete(pricing())\">\u5220\u9664</button>\n <button mat-flat-button (click)=\"onSave(pricing())\">\u4FDD\u5B58</button>\n </div>\n}\n<mat-divider></mat-divider>\n" }]
|
|
44
43
|
}], ctorParameters: () => [] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2luZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL3ByaWNpbmctaXRlbS9wcmljaW5nLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpY2luZy1pdGVtL3ByaWNpbmctaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CO1FBTEEsWUFBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUMzQixTQUFJLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFFVixDQUFDO0lBQ2hCLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZ0I7UUFDckIsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxPQUFPO1lBQ1YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRztTQUMzQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUFnQjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBTTtRQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXZCVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwrWkNoQmpDLGtuQ0F1QkEseUREVHFCLGtCQUFrQiwwU0FBRSxjQUFjLDBXQUFFLFdBQVcsNitCQUFFLGVBQWUsMk5BQUUsZ0JBQWdCOzsyRkFFMUYsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByaWNpbmcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJpY2luZy1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaWNpbmctaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ByaWNpbmctaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFByaWNpbmdJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYWN0aW9ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpY2luZyA9IG1vZGVsLnJlcXVpcmVkPFByaWNpbmc+KCk7XG4gIGRlbGV0ZSA9IG91dHB1dDxQcmljaW5nPigpO1xuICBzYXZlID0gb3V0cHV0PFByaWNpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByaWNpbmcoKS50b3RhbCA9IHRoaXMucHJpY2luZygpLnRvdGFsIC8gMTAwO1xuICB9XG5cbiAgb25TYXZlKHByaWNpbmc6IFByaWNpbmcpIHtcbiAgICBjb25zdCBmaW5hbFByaWNpbmcgPSB7XG4gICAgICAuLi5wcmljaW5nLFxuICAgICAgdG90YWw6IHByaWNpbmcudG90YWwgKiAxMDAsXG4gICAgfTtcbiAgICB0aGlzLnNhdmUuZW1pdChmaW5hbFByaWNpbmcpO1xuICB9XG4gIG9uRGVsZXRlKHByaWNpbmc6IFByaWNpbmcpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHByaWNpbmcpO1xuICB9XG4gIHNldFR3b051bWJlckRlY2ltYWwoZTogYW55KSB7XG4gICAgdGhpcy5wcmljaW5nKCkudG90YWwgPSBlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS0zXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWw+IOacgOWwkeS6uuaVsCA8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicHJpY2luZygpLm1pblwiIG5hbWU9XCJtaW5cIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsPiDmnIDlpJrkurrmlbAgPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInByaWNpbmcoKS5tYXhcIiBuYW1lPVwibWF4XCIgcmVxdWlyZWQgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgPG1hdC1sYWJlbD4g5Lu35qC8IDwvbWF0LWxhYmVsPlxuICAgIDwhLS0gPGlucHV0IG1hdElucHV0ICB0eXBlPVwibnVtYmVyXCIgc3RlcD1cIjAuMDFcIiBbbmdNb2RlbF09XCJwcmljaW5nKCkudG90YWxcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFR3b051bWJlckRlY2ltYWwoJGV2ZW50KVwiIG5hbWU9XCJ0b3RhbFwiIHJlcXVpcmVkIHBsYWNlaG9sZGVyPVwiMjAuMjNcIiAvPiAtLT5cbiAgICA8aW5wdXQgbWF0SW5wdXQgcm9sYXRlY2hEZWNpbWFsIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcmljaW5nKCkudG90YWxcIiBuYW1lPVwidG90YWxcIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG5AaWYgKGFjdGlvbnMoKSkge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTNcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uRGVsZXRlKHByaWNpbmcoKSlcIj7liKDpmaQ8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwib25TYXZlKHByaWNpbmcoKSlcIj7kv53lrZg8L2J1dHRvbj5cbiAgPC9kaXY+XG59XG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
2
2
|
import { Component, output, input, effect } from '@angular/core';
|
|
3
3
|
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOptionModule } from '@angular/material/core';
|
|
4
|
-
import { ScheduleDate } from '../..//interfaces';
|
|
5
4
|
import moment from 'moment';
|
|
6
5
|
import { DatePipe, NgClass } from '@angular/common';
|
|
7
6
|
import { MatDividerModule } from '@angular/material/divider';
|
|
@@ -12,6 +11,7 @@ import { TextFieldModule } from '@angular/cdk/text-field';
|
|
|
12
11
|
import { FormsModule } from '@angular/forms';
|
|
13
12
|
import { MatInputModule } from '@angular/material/input';
|
|
14
13
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
14
|
+
import { ScheduleDate } from '../../interfaces';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "@angular/material/form-field";
|
|
17
17
|
import * as i2 from "@angular/material/input";
|
|
@@ -37,7 +37,6 @@ export class ScheduleItemComponent {
|
|
|
37
37
|
constructor() {
|
|
38
38
|
this.value = input();
|
|
39
39
|
this.actions = input(false);
|
|
40
|
-
this.shadow = input(false);
|
|
41
40
|
this.delete = output();
|
|
42
41
|
this.save = output();
|
|
43
42
|
this.date = ScheduleDate;
|
|
@@ -87,8 +86,8 @@ export class ScheduleItemComponent {
|
|
|
87
86
|
this.schedule.startAt = this.schedule.startDate + ' ' + this.schedule.startTime;
|
|
88
87
|
this.schedule.endAt = this.schedule.endDate + ' ' + this.schedule.endTime;
|
|
89
88
|
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScheduleItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ScheduleItemComponent, isStandalone: true, selector: "rolatech-schedule-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete", save: "save" }, providers: [
|
|
92
91
|
{
|
|
93
92
|
provide: DateAdapter,
|
|
94
93
|
useClass: MomentDateAdapter,
|
|
@@ -96,9 +95,9 @@ export class ScheduleItemComponent {
|
|
|
96
95
|
},
|
|
97
96
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
98
97
|
DatePipe,
|
|
99
|
-
], ngImport: i0, template: "<div class=\"flex flex-col
|
|
98
|
+
], ngImport: i0, template: "<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6807\u9898 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"schedule.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5185\u5BB9 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"schedule.content\"\n name=\"content\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\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)]=\"schedule.startDate\"\n (ngModelChange)=\"startDateChanged($event)\"\n (dateInput)=\"schedule.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>\u5F00\u59CB\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"schedule.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 </div>\n <div class=\"flex flex-row gap-3\">\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 (ngModelChange)=\"endDateChanged($event)\"\n [(ngModel)]=\"schedule.endDate\"\n (dateInput)=\"schedule.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 <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"schedule.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</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(schedule)\">\u5220\u9664</button>\n <button mat-button (click)=\"onSave(schedule)\">\u4FDD\u5B58</button>\n </div>\n}\n<mat-divider></mat-divider>\n", styles: [""], 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"], exportAs: ["matInput"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] }); }
|
|
100
99
|
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScheduleItemComponent, decorators: [{
|
|
102
101
|
type: Component,
|
|
103
102
|
args: [{ selector: 'rolatech-schedule-item', providers: [
|
|
104
103
|
{
|
|
@@ -119,6 +118,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
119
118
|
MatOptionModule,
|
|
120
119
|
MatButtonModule,
|
|
121
120
|
MatDividerModule,
|
|
122
|
-
], template: "<div class=\"flex flex-col
|
|
121
|
+
], template: "<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u6807\u9898 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"schedule.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5185\u5BB9 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"schedule.content\"\n name=\"content\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\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)]=\"schedule.startDate\"\n (ngModelChange)=\"startDateChanged($event)\"\n (dateInput)=\"schedule.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>\u5F00\u59CB\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"schedule.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 </div>\n <div class=\"flex flex-row gap-3\">\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 (ngModelChange)=\"endDateChanged($event)\"\n [(ngModel)]=\"schedule.endDate\"\n (dateInput)=\"schedule.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 <mat-form-field appearance=\"fill\">\n <mat-label>\u7ED3\u675F\u65F6\u95F4</mat-label>\n <mat-select [(ngModel)]=\"schedule.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</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(schedule)\">\u5220\u9664</button>\n <button mat-button (click)=\"onSave(schedule)\">\u4FDD\u5B58</button>\n </div>\n}\n<mat-divider></mat-divider>\n" }]
|
|
123
122
|
}] });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS1pdGVtL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUtaXRlbS9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBUyxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBWSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxF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M0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO3dCQUNuRCxRQUFRO3FCQUNULGNBQ1csSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIG91dHB1dCwgbW9kZWwsIGlucHV0LCBlZmZlY3QsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IFNjaGVkdWxlLCBTY2hlZHVsZURhdGUgfSBmcm9tICcuLi8uLi8vaW50ZXJmYWNlcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmV4cG9ydCBjb25zdCBNWV9GT1JNQVRTID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1zY2hlZHVsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gICAgRGF0ZVBpcGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHZhbHVlID0gaW5wdXQ8U2NoZWR1bGUgfCB1bmRlZmluZWQ+KCk7XG4gIGFjdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHNoYWRvdyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGVsZXRlID0gb3V0cHV0PFNjaGVkdWxlPigpO1xuICBzYXZlID0gb3V0cHV0PFNjaGVkdWxlPigpO1xuICBkYXRlID0gU2NoZWR1bGVEYXRlO1xuICBzY2hlZHVsZTogYW55ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLnNjaGVkdWxlID0gdGhpcy52YWx1ZSgpO1xuICAgIHRoaXMuc2NoZWR1bGUuc3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuc3RhcnRBdCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgdGhpcy5zY2hlZHVsZS5zdGFydFRpbWUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5zdGFydEF0KS5mb3JtYXQoJ0hIOm1tJyk7XG4gICAgdGhpcy5zY2hlZHVsZS5lbmREYXRlID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuZW5kQXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgIHRoaXMuc2NoZWR1bGUuZW5kVGltZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLmVuZEF0KS5mb3JtYXQoJ0hIOm1tJyk7XG4gIH0pO1xuICAvLyBjb25zdHJ1Y3RvcigpIHtcbiAgLy8gICB0aGlzLnNjaGVkdWxlID0gdGhpcy52YWx1ZSgpO1xuICAvLyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5zY2hlZHVsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMudmFsdWUoKSk7XG4gICAgLy8gICByZXR1cm4gdGhpcy52YWx1ZSgpO1xuICAgIC8vIH0pKCk7XG4gICAgLy8gdGhpcy5zY2hlZHVsZSA9IHRoaXMudmFsdWUoKTtcbiAgICAvLyB0aGlzLnNjaGVkdWxlLnN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLnN0YXJ0QXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgIC8vIHRoaXMuc2NoZWR1bGUuc3RhcnRUaW1lID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuc3RhcnRBdCkuZm9ybWF0KCdISDptbScpO1xuICAgIC8vIHRoaXMuc2NoZWR1bGUuZW5kRGF0ZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLmVuZEF0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAvLyB0aGlzLnNjaGVkdWxlLmVuZFRpbWUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5lbmRBdCkuZm9ybWF0KCdISDptbScpO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgc3RhcnRBdCwgZW5kQXQsIHN0YXJ0VGltZSwgc3RhcnREYXRlLCBlbmREYXRlLCBlbmRUaW1lIH0gPSB0aGlzLnNjaGVkdWxlO1xuICAgIHRoaXMuc2NoZWR1bGUuc3RhcnRBdCA9IHRoaXMuc2NoZWR1bGUuc3RhcnREYXRlICsgJyAnICsgdGhpcy5zY2hlZHVsZS5zdGFydFRpbWU7XG4gICAgdGhpcy5zY2hlZHVsZS5lbmRBdCA9IHRoaXMuc2NoZWR1bGUuZW5kRGF0ZSArICcgJyArIHRoaXMuc2NoZWR1bGUuZW5kVGltZTtcbiAgICBkZWxldGUgdGhpcy5zY2hlZHVsZS5zdGFydERhdGU7XG4gICAgZGVsZXRlIHRoaXMuc2NoZWR1bGUuc3RhcnRUaW1lO1xuICAgIGRlbGV0ZSB0aGlzLnNjaGVkdWxlLmVuZERhdGU7XG4gICAgZGVsZXRlIHRoaXMuc2NoZWR1bGUuZW5kVGltZTtcbiAgfVxuICBzdGFydERhdGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHt9XG4gIHN0YXJ0VGltZUNoYW5nZWQoZXZlbnQ6IGFueSkge31cblxuICBlbmREYXRlQ2hhbmdlZChldmVudDogYW55KSB7fVxuICBlbmRUaW1lQ2hhbmdlZChldmVudDogYW55KSB7fVxuXG4gIG9uU2F2ZShzY2hlZHVsZTogU2NoZWR1bGUpIHtcbiAgICB0aGlzLmZvcm1hdCgpO1xuICAgIHRoaXMuc2F2ZS5lbWl0KHNjaGVkdWxlKTtcbiAgfVxuICBvbkRlbGV0ZShzY2hlZHVsZTogU2NoZWR1bGUpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHNjaGVkdWxlKTtcbiAgfVxuICBwcml2YXRlIGZvcm1hdCgpIHtcbiAgICB0aGlzLnNjaGVkdWxlLnN0YXJ0QXQgPSB0aGlzLnNjaGVkdWxlLnN0YXJ0RGF0ZSArICcgJyArIHRoaXMuc2NoZWR1bGUuc3RhcnRUaW1lO1xuICAgIHRoaXMuc2NoZWR1bGUuZW5kQXQgPSB0aGlzLnNjaGVkdWxlLmVuZERhdGUgKyAnICcgKyB0aGlzLnNjaGVkdWxlLmVuZFRpbWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCIgW25nQ2xhc3NdPVwieyBzaGFkb3c6IHNoYWRvdygpIH1cIj5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgPG1hdC1sYWJlbD4g5qCH6aKYIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2NoZWR1bGUudGl0bGVcIiBuYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsPiDlhoXlrrkgPC9tYXQtbGFiZWw+XG4gICAgPHRleHRhcmVhXG4gICAgICBtYXRJbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS5jb250ZW50XCJcbiAgICAgIG5hbWU9XCJjb250ZW50XCJcbiAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgcmVxdWlyZWRcbiAgICA+PC90ZXh0YXJlYT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTNcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWw+5byA5aeL5pel5pyfPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIlxuICAgICAgICBuYW1lPVwic3RhcnRBdFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGUuc3RhcnREYXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic3RhcnREYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKGRhdGVJbnB1dCk9XCJzY2hlZHVsZS5zdGFydERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICByZWFkb25seVxuICAgICAgICByZXF1aXJlZFxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbD7lvIDlp4vml7bpl7Q8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2NoZWR1bGUuc3RhcnRUaW1lXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzdGFydFRpbWVDaGFuZ2VkKCRldmVudClcIiByZXF1aXJlZCByZWFkb25seT5cbiAgICAgICAgQGZvciAoZCBvZiBkYXRlOyB0cmFjayBkKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImRcIj5cbiAgICAgICAgICAgIHt7IGQgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTNcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWw+57uT5p2f5pel5pyfPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMlwiXG4gICAgICAgIG5hbWU9XCJlbmRBdFwiXG4gICAgICAgIChmb2N1cyk9XCJwaWNrZXIyLm9wZW4oKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVuZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNjaGVkdWxlLmVuZERhdGVcIlxuICAgICAgICAoZGF0ZUlucHV0KT1cInNjaGVkdWxlLmVuZERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICByZWFkb25seVxuICAgICAgICByZXF1aXJlZFxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cInBpY2tlcjJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyMj48L21hdC1kYXRlcGlja2VyPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8bWF0LWxhYmVsPue7k+adn+aXtumXtDwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS5lbmRUaW1lXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJlbmRUaW1lQ2hhbmdlZCgkZXZlbnQpXCIgcmVxdWlyZWQgcmVhZG9ubHk+XG4gICAgICAgIEBmb3IgKGQgb2YgZGF0ZTsgdHJhY2sgZCkge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJkXCI+XG4gICAgICAgICAgICB7eyBkIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoYWN0aW9ucygpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktZW5kIHAtNFwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwib25EZWxldGUoc2NoZWR1bGUpXCI+5Yig6ZmkPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvblNhdmUoc2NoZWR1bGUpXCI+5L+d5a2YPC9idXR0b24+XG4gIDwvZGl2PlxufVxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS1pdGVtL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUtaXRlbS9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBUyxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxF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QUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7d0JBQ25ELFFBQVE7cUJBQ1QsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgb3V0cHV0LCBtb2RlbCwgaW5wdXQsIGVmZmVjdCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUsIE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBTY2hlZHVsZSwgU2NoZWR1bGVEYXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ1lZWVktTU0tREQnLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtc2NoZWR1bGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdLFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICAgIERhdGVQaXBlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICB2YWx1ZSA9IGlucHV0PFNjaGVkdWxlIHwgdW5kZWZpbmVkPigpO1xuICBhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBkZWxldGUgPSBvdXRwdXQ8U2NoZWR1bGU+KCk7XG4gIHNhdmUgPSBvdXRwdXQ8U2NoZWR1bGU+KCk7XG4gIGRhdGUgPSBTY2hlZHVsZURhdGU7XG4gIHNjaGVkdWxlOiBhbnkgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2NoZWR1bGUgPSB0aGlzLnZhbHVlKCk7XG4gICAgdGhpcy5zY2hlZHVsZS5zdGFydERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5zdGFydEF0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLnN0YXJ0QXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgICB0aGlzLnNjaGVkdWxlLmVuZERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5lbmRBdCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgdGhpcy5zY2hlZHVsZS5lbmRUaW1lID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuZW5kQXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgfSk7XG4gIC8vIGNvbnN0cnVjdG9yKCkge1xuICAvLyAgIHRoaXMuc2NoZWR1bGUgPSB0aGlzLnZhbHVlKCk7XG4gIC8vIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNjaGVkdWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vICAgY29uc29sZS5sb2codGhpcy52YWx1ZSgpKTtcbiAgICAvLyAgIHJldHVybiB0aGlzLnZhbHVlKCk7XG4gICAgLy8gfSkoKTtcbiAgICAvLyB0aGlzLnNjaGVkdWxlID0gdGhpcy52YWx1ZSgpO1xuICAgIC8vIHRoaXMuc2NoZWR1bGUuc3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuc3RhcnRBdCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgLy8gdGhpcy5zY2hlZHVsZS5zdGFydFRpbWUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5zdGFydEF0KS5mb3JtYXQoJ0hIOm1tJyk7XG4gICAgLy8gdGhpcy5zY2hlZHVsZS5lbmREYXRlID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuZW5kQXQpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgIC8vIHRoaXMuc2NoZWR1bGUuZW5kVGltZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLmVuZEF0KS5mb3JtYXQoJ0hIOm1tJyk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgeyBzdGFydEF0LCBlbmRBdCwgc3RhcnRUaW1lLCBzdGFydERhdGUsIGVuZERhdGUsIGVuZFRpbWUgfSA9IHRoaXMuc2NoZWR1bGU7XG4gICAgdGhpcy5zY2hlZHVsZS5zdGFydEF0ID0gdGhpcy5zY2hlZHVsZS5zdGFydERhdGUgKyAnICcgKyB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZTtcbiAgICB0aGlzLnNjaGVkdWxlLmVuZEF0ID0gdGhpcy5zY2hlZHVsZS5lbmREYXRlICsgJyAnICsgdGhpcy5zY2hlZHVsZS5lbmRUaW1lO1xuICAgIGRlbGV0ZSB0aGlzLnNjaGVkdWxlLnN0YXJ0RGF0ZTtcbiAgICBkZWxldGUgdGhpcy5zY2hlZHVsZS5zdGFydFRpbWU7XG4gICAgZGVsZXRlIHRoaXMuc2NoZWR1bGUuZW5kRGF0ZTtcbiAgICBkZWxldGUgdGhpcy5zY2hlZHVsZS5lbmRUaW1lO1xuICB9XG4gIHN0YXJ0RGF0ZUNoYW5nZWQoZXZlbnQ6IGFueSkge31cbiAgc3RhcnRUaW1lQ2hhbmdlZChldmVudDogYW55KSB7fVxuXG4gIGVuZERhdGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHt9XG4gIGVuZFRpbWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHt9XG5cbiAgb25TYXZlKHNjaGVkdWxlOiBTY2hlZHVsZSkge1xuICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgdGhpcy5zYXZlLmVtaXQoc2NoZWR1bGUpO1xuICB9XG4gIG9uRGVsZXRlKHNjaGVkdWxlOiBTY2hlZHVsZSkge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoc2NoZWR1bGUpO1xuICB9XG4gIHByaXZhdGUgZm9ybWF0KCkge1xuICAgIHRoaXMuc2NoZWR1bGUuc3RhcnRBdCA9IHRoaXMuc2NoZWR1bGUuc3RhcnREYXRlICsgJyAnICsgdGhpcy5zY2hlZHVsZS5zdGFydFRpbWU7XG4gICAgdGhpcy5zY2hlZHVsZS5lbmRBdCA9IHRoaXMuc2NoZWR1bGUuZW5kRGF0ZSArICcgJyArIHRoaXMuc2NoZWR1bGUuZW5kVGltZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktM1wiPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsPiDmoIfpopggPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS50aXRsZVwiIG5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWw+IOWGheWuuSA8L21hdC1sYWJlbD5cbiAgICA8dGV4dGFyZWFcbiAgICAgIG1hdElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNjaGVkdWxlLmNvbnRlbnRcIlxuICAgICAgbmFtZT1cImNvbnRlbnRcIlxuICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICByZXF1aXJlZFxuICAgID48L3RleHRhcmVhPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtM1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbD7lvIDlp4vml6XmnJ88L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiXG4gICAgICAgIG5hbWU9XCJzdGFydEF0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS5zdGFydERhdGVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzdGFydERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAoZGF0ZUlucHV0KT1cInNjaGVkdWxlLnN0YXJ0RGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAvPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8bWF0LWxhYmVsPuW8gOWni+aXtumXtDwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS5zdGFydFRpbWVcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInN0YXJ0VGltZUNoYW5nZWQoJGV2ZW50KVwiIHJlcXVpcmVkIHJlYWRvbmx5PlxuICAgICAgICBAZm9yIChkIG9mIGRhdGU7IHRyYWNrIGQpIHtcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZFwiPlxuICAgICAgICAgICAge3sgZCB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtM1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbD7nu5PmnZ/ml6XmnJ88L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCJcbiAgICAgICAgbmFtZT1cImVuZEF0XCJcbiAgICAgICAgKGZvY3VzKT1cInBpY2tlcjIub3BlbigpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW5kRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGUuZW5kRGF0ZVwiXG4gICAgICAgIChkYXRlSW5wdXQpPVwic2NoZWR1bGUuZW5kRGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAvPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicGlja2VyMlwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWw+57uT5p2f5pe26Ze0PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNjaGVkdWxlLmVuZFRpbWVcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImVuZFRpbWVDaGFuZ2VkKCRldmVudClcIiByZXF1aXJlZCByZWFkb25seT5cbiAgICAgICAgQGZvciAoZCBvZiBkYXRlOyB0cmFjayBkKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImRcIj5cbiAgICAgICAgICAgIHt7IGQgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChhY3Rpb25zKCkpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgcC00XCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZShzY2hlZHVsZSlcIj7liKDpmaQ8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uU2F2ZShzY2hlZHVsZSlcIj7kv53lrZg8L2J1dHRvbj5cbiAgPC9kaXY+XG59XG48bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiJdfQ==
|
|
@@ -64,10 +64,10 @@ export class CourseCategoryComponent extends BaseComponent {
|
|
|
64
64
|
relativeTo: this.route,
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseCategoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CourseCategoryComponent, isStandalone: true, selector: "rolatech-course-category", usesInheritance: true, ngImport: i0, template: "<div>\n @if (category) {\n <div class=\"p-3 hidden sm:block text-2xl font-medium\">{{ category.name }}</div>\n } @else {\n <div class=\"flex flex-row animate-pulse w-full\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n </div>\n }\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 sm:w-1/4 aspect-video bg-gray-200 rounded-lg\"></div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-slate-200 rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n @for (item of courses; track item) {\n <div\n class=\"py-2 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-gray-100\"\n [routerLink]=\"['../../', item.id]\"\n >\n <rolatech-course-item [course]=\"item\"></rolatech-course-item>\n </div>\n }\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: CourseItemComponent, selector: "rolatech-course-item", inputs: ["course", "row", "inset"] }] }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseCategoryComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, CourseItemComponent], selector: 'rolatech-course-category', template: "<div>\n @if (category) {\n <div class=\"p-3 hidden sm:block text-2xl font-medium\">{{ category.name }}</div>\n } @else {\n <div class=\"flex flex-row animate-pulse w-full\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n </div>\n }\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 sm:w-1/4 aspect-video bg-gray-200 rounded-lg\"></div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-slate-200 rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n @for (item of courses; track item) {\n <div\n class=\"py-2 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-gray-100\"\n [routerLink]=\"['../../', item.id]\"\n >\n <rolatech-course-item [course]=\"item\"></rolatech-course-item>\n </div>\n }\n }\n</div>\n" }]
|
|
73
73
|
}] });
|
|
@@ -121,10 +121,10 @@ export class CourseDetailComponent extends BaseComponent {
|
|
|
121
121
|
},
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CourseDetailComponent, isStandalone: true, selector: "rolatech-course-detail", usesInheritance: true, ngImport: i0, template: "@if (course) {\n <rolatech-app-container>\n <div class=\"flex flex-col-reverse gap-2 sm:flex-row md:flex-row w-full justify-between\">\n <div class=\"sm:w-3/4\">\n <rolatech-course-info [course]=\"course\" [instructor]=\"instructorName\" [username]=\"username\"> </rolatech-course-info>\n <rolatech-course-sections\n [sections]=\"sections\"\n (section)=\"onSection($event)\"\n (checkout)=\"checkout($event)\"\n [purchased]=\"purchased\"\n ></rolatech-course-sections>\n <rolatech-course-schedule [schedule]=\"course.schedule\"></rolatech-course-schedule>\n <rolatech-course-details [details]=\"course.details\"></rolatech-course-details>\n <rolatech-comments [itemId]=\"course.id\"></rolatech-comments>\n </div>\n <div>\n <!-- <rolatech-course-media [min]=\"!purchased\" [media]=\"course.media\" [min]=\"true\"></rolatech-course-media> -->\n <rolatech-course-media [media]=\"course.media\" [min]=\"true\"></rolatech-course-media>\n @if (!purchased) {\n <rolatech-course-pricing [pricing]=\"course.pricing\"></rolatech-course-pricing>\n <rolatech-course-action\n [course]=\"course\"\n (checkout)=\"checkout($event)\"\n (wish)=\"onWish($event)\"\n [inWishList]=\"inWishList\"\n ></rolatech-course-action>\n }\n </div>\n </div>\n </rolatech-app-container>\n}\n", styles: ["mat-expansion-panel mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: CourseInfoComponent, selector: "rolatech-course-info", inputs: ["course", "instructor", "username"] }, { kind: "component", type: CourseSectionsComponent, selector: "rolatech-course-sections", inputs: ["purchased", "sections"], outputs: ["section", "checkout"] }, { kind: "component", type: CourseScheduleComponent, selector: "rolatech-course-schedule", inputs: ["schedule"] }, { kind: "component", type: CourseDetailsComponent, selector: "rolatech-course-details", inputs: ["details", "instructor", "username"] }, { kind: "component", type: CourseMediaComponent, selector: "rolatech-course-media", inputs: ["media", "min"] }, { kind: "component", type: CoursePricingComponent, selector: "rolatech-course-pricing", inputs: ["pricing"] }, { kind: "component", type: CourseActionComponent, selector: "rolatech-course-action", inputs: ["course", "inWishList"], outputs: ["cart", "wish", "checkout"] }, { kind: "component", type: CommentsComponent, selector: "rolatech-comments", inputs: ["itemId"] }, { kind: "component", type: AppContainerComponent, selector: "rolatech-app-container" }] }); }
|
|
126
126
|
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseDetailComponent, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
129
|
args: [{ standalone: true, imports: [
|
|
130
130
|
AngularCommonModule,
|
|
@@ -43,10 +43,10 @@ export class CourseIndexComponent extends BaseComponent {
|
|
|
43
43
|
},
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CourseIndexComponent, isStandalone: true, selector: "rolatech-course-index", usesInheritance: true, ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden sm:block text-2xl font-medium\">\u5168\u90E8\u8BFE\u7A0B</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 sm:w-1/4 aspect-video bg-gray-200 rounded-lg\"></div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-slate-200 rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n @for (item of courses; track $index) {\n <div\n class=\"py-2 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-gray-100\"\n [routerLink]=\"['./', item.id]\"\n >\n <rolatech-course-item [course]=\"item\"></rolatech-course-item>\n </div>\n }\n }\n</div>\n", styles: ["img:before{border-radius:12px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: CourseItemComponent, selector: "rolatech-course-item", inputs: ["course", "row", "inset"] }] }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseIndexComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, CourseItemComponent], selector: 'rolatech-course-index', template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden sm:block text-2xl font-medium\">\u5168\u90E8\u8BFE\u7A0B</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 sm:w-1/4 aspect-video bg-gray-200 rounded-lg\"></div>\n <div class=\"w-3/5 sm:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-slate-200 rounded col-span-2\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1\"></div>\n <div class=\"h-2 bg-slate-200 rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-slate-200 rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n @for (item of courses; track $index) {\n <div\n class=\"py-2 cursor-pointer min-w-[80%] md:min-w-[25%] sm:min-w-[33%] hover:bg-gray-100\"\n [routerLink]=\"['./', item.id]\"\n >\n <rolatech-course-item [course]=\"item\"></rolatech-course-item>\n </div>\n }\n }\n</div>\n", styles: ["img:before{border-radius:12px}\n"] }]
|
|
52
52
|
}] });
|
|
@@ -39,10 +39,10 @@ export class CourseLayoutComponent extends BaseComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
nextCategory() { }
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CourseLayoutComponent, isStandalone: true, selector: "rolatech-course-layout", usesInheritance: true, ngImport: i0, template: "@if (categories) {\n <rolatech-app-container>\n <div class=\"flex flex-col sm:flex-row min-w-[320px] max-w-[1280px] m-auto\">\n <div class=\"h-14 sm:h-auto min-w-[256px] sm:py-3\">\n <div class=\"hidden sm:block text-2xl font-medium p-3\">\u5206\u7C7B</div>\n <div\n class=\"flex flex-row sm:flex-col sm:h-full items-center sm:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <a\n class=\"cursor-pointer h-8 sm:hover:bg-gray-200 hover:rounded flex items-center sm:mb-1\"\n routerLinkActive=\"active\"\n routerLink=\"/courses\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"px-3 text-md sm:text-lg\">\u5168\u90E8</span>\n </a>\n @for (category of categories; track category; let index = $index) {\n <a\n class=\"cursor-pointer h-8 sm:hover:bg-gray-200 hover:rounded flex items-center sm:mb-1\"\n routerLinkActive=\"active\"\n [routerLink]=\"['../courses/categories/', category.id]\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"px-3 text-md sm:text-lg\">{{ category.name }}</span>\n </a>\n }\n </div>\n </div>\n <div class=\"w-full sm:py-3\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </rolatech-app-container>\n}\n", styles: [".active{border-radius:8px;color:#ff4500}@media (max-width: 600px){.active{border-radius:8px;background-color:#303030;color:#fff}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: AppContainerComponent, selector: "rolatech-app-container" }] }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseLayoutComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, AppContainerComponent], selector: 'rolatech-course-layout', template: "@if (categories) {\n <rolatech-app-container>\n <div class=\"flex flex-col sm:flex-row min-w-[320px] max-w-[1280px] m-auto\">\n <div class=\"h-14 sm:h-auto min-w-[256px] sm:py-3\">\n <div class=\"hidden sm:block text-2xl font-medium p-3\">\u5206\u7C7B</div>\n <div\n class=\"flex flex-row sm:flex-col sm:h-full items-center sm:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <a\n class=\"cursor-pointer h-8 sm:hover:bg-gray-200 hover:rounded flex items-center sm:mb-1\"\n routerLinkActive=\"active\"\n routerLink=\"/courses\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"px-3 text-md sm:text-lg\">\u5168\u90E8</span>\n </a>\n @for (category of categories; track category; let index = $index) {\n <a\n class=\"cursor-pointer h-8 sm:hover:bg-gray-200 hover:rounded flex items-center sm:mb-1\"\n routerLinkActive=\"active\"\n [routerLink]=\"['../courses/categories/', category.id]\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"px-3 text-md sm:text-lg\">{{ category.name }}</span>\n </a>\n }\n </div>\n </div>\n <div class=\"w-full sm:py-3\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </rolatech-app-container>\n}\n", styles: [".active{border-radius:8px;color:#ff4500}@media (max-width: 600px){.active{border-radius:8px;background-color:#303030;color:#fff}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
|
|
48
48
|
}] });
|
package/esm2022/lib/pages/course/course-section-content/course-section-content.component.mjs
CHANGED
|
@@ -117,10 +117,10 @@ export class CourseSectionContentComponent {
|
|
|
117
117
|
checkout(e) {
|
|
118
118
|
this.router.navigateByUrl(`/carts/checkout/express/courses/${this.courseId}`);
|
|
119
119
|
}
|
|
120
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CourseSectionContentComponent, isStandalone: true, selector: "rolatech-course-section-content", ngImport: i0, template: "<div class=\"flex sm:flex-row flex-col justify-between w-full mt-2 sm:mt-4\">\n <div class=\"sm:w-[70%] flex flex-col items-start justify-center px-4 sm:px-6 h-fit\">\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video rounded-xl\"></div>\n <div class=\"py-3 w-full\">\n @if (course) {\n <div class=\"text-xl font-medium py-3\">\n {{ course.name }}\n </div>\n <div>\n <rolatech-course-media-owner-renderer\n [name]=\"instructorName\"\n [avatar]=\"instructorAvatar\"\n [username]=\"instructorUsername\"\n ></rolatech-course-media-owner-renderer>\n </div>\n <div>\n <rolatech-comments [itemId]=\"lectureId\"></rolatech-comments>\n </div>\n }\n </div>\n </div>\n <div class=\"sm:w-[30%] px-4 sm:px-0 sm:pr-6\">\n <rolatech-course-sections\n [sections]=\"sections\"\n [purchased]=\"purchased\"\n (section)=\"onSection($event)\"\n (checkout)=\"checkout($event)\"\n ></rolatech-course-sections>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: CourseSectionsComponent, selector: "rolatech-course-sections", inputs: ["purchased", "sections"], outputs: ["section", "checkout"] }, { kind: "component", type: CourseMediaOwnerRendererComponent, selector: "rolatech-course-media-owner-renderer", inputs: ["name", "avatar", "username"] }, { kind: "component", type: CommentsComponent, selector: "rolatech-comments", inputs: ["itemId"] }] }); }
|
|
122
122
|
}
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionContentComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
125
125
|
args: [{ standalone: true, imports: [
|
|
126
126
|
AngularCommonModule,
|
|
@@ -26,10 +26,10 @@ export class CategoryService extends BaseService {
|
|
|
26
26
|
withCredentials: true,
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CategoryService, decorators: [{
|
|
33
33
|
type: Injectable,
|
|
34
34
|
args: [{
|
|
35
35
|
providedIn: 'root',
|
|
@@ -14,10 +14,10 @@ export class CourseSectionService extends BaseService {
|
|
|
14
14
|
withCredentials: true,
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
18
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionService, providedIn: 'root' }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionService, decorators: [{
|
|
21
21
|
type: Injectable,
|
|
22
22
|
args: [{
|
|
23
23
|
providedIn: 'root',
|
|
@@ -268,10 +268,10 @@ export class CourseService extends BaseService {
|
|
|
268
268
|
withCredentials: true,
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
272
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
271
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
272
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseService, providedIn: 'root' }); }
|
|
273
273
|
}
|
|
274
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseService, decorators: [{
|
|
275
275
|
type: Injectable,
|
|
276
276
|
args: [{
|
|
277
277
|
providedIn: 'root',
|