@rolatech/angular-course 17.3.28 → 17.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. package/esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.mjs +10 -18
  2. package/esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.mjs +10 -18
  3. package/esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.mjs +3 -3
  4. package/esm2022/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.mjs +42 -41
  5. package/esm2022/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.mjs +20 -22
  6. package/fesm2022/{rolatech-angular-course-course-index.component-DqjxHkQv.mjs → rolatech-angular-course-course-index.component-BILowjd2.mjs} +4 -4
  7. package/fesm2022/{rolatech-angular-course-course-index.component-DqjxHkQv.mjs.map → rolatech-angular-course-course-index.component-BILowjd2.mjs.map} +1 -1
  8. package/fesm2022/{rolatech-angular-course-rolatech-angular-course-B3LpO9fo.mjs → rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs} +76 -81
  9. package/fesm2022/rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs.map +1 -0
  10. package/fesm2022/rolatech-angular-course.mjs +1 -1
  11. package/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.d.ts +5 -7
  12. package/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.d.ts +5 -7
  13. package/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.d.ts +2 -9
  14. package/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.d.ts +0 -2
  15. package/package.json +1 -1
  16. package/themes/_default.scss +1 -1
  17. package/fesm2022/rolatech-angular-course-rolatech-angular-course-B3LpO9fo.mjs.map +0 -1
@@ -891,7 +891,7 @@ class CourseSectionLectureVideoDialogComponent {
891
891
  });
892
892
  }
893
893
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseSectionLectureVideoDialogComponent, isStandalone: true, selector: "rolatech-course-section-lecture-video-dialog", outputs: { thumbnailUpload: "thumbnailUpload" }, ngImport: i0, template: "<div class=\"flex flex-col-reverse sm:flex-row justify-between h-full gap-3\">\n <div class=\"w-full sm:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full sm:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video sm:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatStepperModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
894
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseSectionLectureVideoDialogComponent, isStandalone: true, selector: "rolatech-course-section-lecture-video-dialog", outputs: { thumbnailUpload: "thumbnailUpload" }, ngImport: i0, template: "<div class=\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\">\n <div class=\"w-full md:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full md:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video md:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatStepperModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
895
895
  }
896
896
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, decorators: [{
897
897
  type: Component,
@@ -904,7 +904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
904
904
  MatButtonModule,
905
905
  MatDialogClose,
906
906
  MatCheckboxModule,
907
- ], template: "<div class=\"flex flex-col-reverse sm:flex-row justify-between h-full gap-3\">\n <div class=\"w-full sm:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full sm:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video sm:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n" }]
907
+ ], template: "<div class=\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\">\n <div class=\"w-full md:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full md:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video md:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n" }]
908
908
  }], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
909
909
  type: Inject,
910
910
  args: [MAT_DIALOG_DATA]
@@ -1071,33 +1071,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
1071
1071
  }], ctorParameters: () => [] });
1072
1072
 
1073
1073
  class CoursePricingAddDialogComponent {
1074
- constructor(dialogRef, data) {
1075
- this.dialogRef = dialogRef;
1076
- this.data = data;
1074
+ constructor() {
1075
+ this.output = output();
1077
1076
  this.pricing = {
1078
1077
  min: 0,
1079
1078
  max: 0,
1080
1079
  total: 0,
1081
1080
  };
1082
1081
  }
1083
- close() {
1084
- this.dialogRef.close();
1082
+ ngDoCheck() {
1083
+ this.output.emit(this.pricing);
1085
1084
  }
1086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1087
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CoursePricingAddDialogComponent, isStandalone: true, selector: "rolatech-course-pricing-add-dialog", ngImport: i0, template: "<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-xl font-bold\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <div class=\"flex-1 overflow-hidden p-3 overflow-y-auto max-h-[55vh]\">\n <rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n </div>\n <div class=\"h-16 flex justify-end items-center px-5 gap-3\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-button [mat-dialog-close]=\"pricing\" cdkFocusInitial>\u4FDD\u5B58</button>\n </div>\n</div>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
1085
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1086
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: CoursePricingAddDialogComponent, isStandalone: true, selector: "rolatech-course-pricing-add-dialog", outputs: { output: "output" }, ngImport: i0, template: "<rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
1088
1087
  }
1089
1088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, decorators: [{
1090
1089
  type: Component,
1091
- args: [{ selector: 'rolatech-course-pricing-add-dialog', standalone: true, imports: [MatIconModule, PricingItemComponent, MatButtonModule, MatDialogClose], template: "<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-xl font-bold\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <div class=\"flex-1 overflow-hidden p-3 overflow-y-auto max-h-[55vh]\">\n <rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n </div>\n <div class=\"h-16 flex justify-end items-center px-5 gap-3\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-button [mat-dialog-close]=\"pricing\" cdkFocusInitial>\u4FDD\u5B58</button>\n </div>\n</div>\n", styles: ["mat-form-field{width:100%}\n"] }]
1092
- }], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
1093
- type: Inject,
1094
- args: [MAT_DIALOG_DATA]
1095
- }] }] });
1090
+ args: [{ selector: 'rolatech-course-pricing-add-dialog', standalone: true, imports: [MatIconModule, PricingItemComponent, MatButtonModule], template: "<rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n", styles: ["mat-form-field{width:100%}\n"] }]
1091
+ }] });
1096
1092
 
1097
1093
  class CourseScheduleAddDialogComponent {
1098
- constructor(dialogRef, data) {
1099
- this.dialogRef = dialogRef;
1100
- this.data = data;
1094
+ constructor() {
1095
+ this.output = output();
1101
1096
  this.schedule = {
1102
1097
  title: '',
1103
1098
  content: '',
@@ -1105,19 +1100,16 @@ class CourseScheduleAddDialogComponent {
1105
1100
  endAt: '',
1106
1101
  };
1107
1102
  }
1108
- close() {
1109
- this.dialogRef.close();
1103
+ ngDoCheck() {
1104
+ this.output.emit(this.schedule);
1110
1105
  }
1111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseScheduleAddDialogComponent, isStandalone: true, selector: "rolatech-course-schedule-add-dialog", ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-xl font-bold\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <div class=\"flex-1 overflow-y-auto max-h-[55vh] px-3\">\n <rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n </div>\n <div class=\"h-16 flex justify-end items-center px-5 gap-3\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"schedule\" cdkFocusInitial>\u4FDD\u5B58</button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ScheduleItemComponent, selector: "rolatech-schedule-item", inputs: ["value", "actions"], outputs: ["delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] }); }
1106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: CourseScheduleAddDialogComponent, isStandalone: true, selector: "rolatech-course-schedule-add-dialog", outputs: { output: "output" }, ngImport: i0, template: "<rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ScheduleItemComponent, selector: "rolatech-schedule-item", inputs: ["value", "actions"], outputs: ["delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
1113
1108
  }
1114
1109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, decorators: [{
1115
1110
  type: Component,
1116
- args: [{ selector: 'rolatech-course-schedule-add-dialog', standalone: true, imports: [MatIconModule, ScheduleItemComponent, MatButtonModule, MatDialogClose], template: "<div class=\"flex flex-col h-full\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-xl font-bold\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <div class=\"flex-1 overflow-y-auto max-h-[55vh] px-3\">\n <rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n </div>\n <div class=\"h-16 flex justify-end items-center px-5 gap-3\">\n <button mat-button mat-dialog-close>\u53D6\u6D88</button>\n <button mat-flat-button [mat-dialog-close]=\"schedule\" cdkFocusInitial>\u4FDD\u5B58</button>\n </div>\n</div>\n" }]
1117
- }], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
1118
- type: Inject,
1119
- args: [MAT_DIALOG_DATA]
1120
- }] }] });
1111
+ args: [{ selector: 'rolatech-course-schedule-add-dialog', standalone: true, imports: [MatIconModule, ScheduleItemComponent, MatButtonModule], template: "<rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n" }]
1112
+ }] });
1121
1113
 
1122
1114
  class CoursePricingDialogComponent {
1123
1115
  constructor(dialogRef, data, courseService, snackBar, dialog) {
@@ -1932,7 +1924,7 @@ const courseRoutes = [
1932
1924
  children: [
1933
1925
  {
1934
1926
  path: '',
1935
- loadComponent: () => import('./rolatech-angular-course-course-index.component-DqjxHkQv.mjs').then((x) => x.CourseIndexComponent),
1927
+ loadComponent: () => import('./rolatech-angular-course-course-index.component-BILowjd2.mjs').then((x) => x.CourseIndexComponent),
1936
1928
  },
1937
1929
  {
1938
1930
  path: 'categories/:id',
@@ -2111,7 +2103,6 @@ class CourseManageScheduleComponent extends BaseComponent {
2111
2103
  constructor() {
2112
2104
  super(...arguments);
2113
2105
  this.courseService = inject(CourseService);
2114
- this.snackBar = inject(MatSnackBar);
2115
2106
  this.isLoading = false;
2116
2107
  this.schedule = [];
2117
2108
  this.status = CourseStatus;
@@ -2136,7 +2127,7 @@ class CourseManageScheduleComponent extends BaseComponent {
2136
2127
  title: '添加课表',
2137
2128
  cancelText: '取消',
2138
2129
  confirmText: '确认',
2139
- component: ScheduleItemComponent,
2130
+ component: CourseScheduleAddDialogComponent,
2140
2131
  data: {},
2141
2132
  };
2142
2133
  this.dialogService.open(options);
@@ -2146,10 +2137,10 @@ class CourseManageScheduleComponent extends BaseComponent {
2146
2137
  this.courseService.addSchedule(this.id, schedule).subscribe({
2147
2138
  next: (res) => {
2148
2139
  this.schedule.push(res.data);
2149
- this.snackBar.open('添加成功');
2140
+ this.snackBarService.open('添加成功');
2150
2141
  },
2151
2142
  error: (error) => {
2152
- this.snackBar.open(error.message);
2143
+ this.snackBarService.open(error.message);
2153
2144
  },
2154
2145
  });
2155
2146
  }
@@ -2175,10 +2166,10 @@ class CourseManageScheduleComponent extends BaseComponent {
2175
2166
  if (result) {
2176
2167
  this.courseService.addSchedule(this.id, { schedule: result }).subscribe({
2177
2168
  next: (res) => {
2178
- this.snackBar.open('编辑成功');
2169
+ this.snackBarService.open('编辑成功');
2179
2170
  },
2180
2171
  error: (error) => {
2181
- this.snackBar.open(error.message);
2172
+ this.snackBarService.open(error.message);
2182
2173
  },
2183
2174
  });
2184
2175
  }
@@ -2188,32 +2179,32 @@ class CourseManageScheduleComponent extends BaseComponent {
2188
2179
  onScheduleSave(schedule) {
2189
2180
  this.courseService.updateSchedule(this.id, schedule.id, schedule).subscribe({
2190
2181
  next: (res) => {
2191
- this.snackBar.open('保存成功');
2182
+ this.snackBarService.open('保存成功');
2192
2183
  },
2193
2184
  error: (e) => {
2194
- this.snackBar.open(e.message);
2185
+ this.snackBarService.open(e.message);
2195
2186
  },
2196
2187
  });
2197
2188
  }
2198
2189
  onScheduleDelete(schedule) {
2199
- const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
2200
- width: '400px',
2201
- data: {
2202
- title: '删除课表',
2203
- message: '确定删除此课表吗?',
2204
- },
2205
- });
2206
- dialogRef.afterClosed().subscribe((result) => {
2190
+ const options = {
2191
+ title: '删除课表',
2192
+ message: '确定删除此课表吗?',
2193
+ cancelText: '取消',
2194
+ confirmText: '确认',
2195
+ };
2196
+ this.dialogService.open(options);
2197
+ this.dialogService.confirmed().subscribe((result) => {
2207
2198
  if (result) {
2208
2199
  this.courseService.deleteSchedule(this.id, schedule.id).subscribe({
2209
2200
  next: (res) => {
2210
2201
  remove(this.schedule, {
2211
2202
  id: schedule.id,
2212
2203
  });
2213
- this.snackBar.open(res.data);
2204
+ this.snackBarService.open(res.data);
2214
2205
  },
2215
2206
  error: (e) => {
2216
- this.snackBar.open(e.message);
2207
+ this.snackBarService.open(e.message);
2217
2208
  },
2218
2209
  });
2219
2210
  }
@@ -2227,19 +2218,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
2227
2218
  args: [{ selector: 'rolatech-course-manage-schedule', standalone: true, imports: [ScheduleItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u8BFE\u7A0B\u8868\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of schedule; track item) {\n <rolatech-schedule-item\n [value]=\"item\"\n [actions]=\"true\"\n (save)=\"onScheduleSave($event)\"\n (delete)=\"onScheduleDelete($event)\"\n >\n </rolatech-schedule-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSchedule()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u589E\u52A0\u8BFE\u8868</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n" }]
2228
2219
  }] });
2229
2220
 
2230
- class CourseManagePricingComponent {
2221
+ class CourseManagePricingComponent extends BaseComponent {
2231
2222
  constructor() {
2232
- this.route = inject(ActivatedRoute);
2223
+ super(...arguments);
2233
2224
  this.courseService = inject(CourseService);
2234
- this.dialog = inject(MatDialog);
2235
- this.snackBar = inject(MatSnackBar);
2236
2225
  this.isLoading = false;
2237
2226
  this.pricing = [];
2238
2227
  this.status = CourseStatus;
2239
2228
  this.courseType = CourseType;
2240
- this.id = this.route.parent?.snapshot.paramMap.get('id');
2241
2229
  }
2242
2230
  ngOnInit() {
2231
+ this.id = this.route.parent?.snapshot.paramMap.get('id');
2243
2232
  this.find();
2244
2233
  }
2245
2234
  find() {
@@ -2252,45 +2241,51 @@ class CourseManagePricingComponent {
2252
2241
  });
2253
2242
  }
2254
2243
  editPricing() {
2255
- const dialogRef = this.dialog.open(CoursePricingDialogComponent, {
2244
+ const options = {
2256
2245
  width: '500px',
2246
+ title: '编辑价格',
2257
2247
  height: '90%',
2248
+ cancelText: '取消',
2249
+ confirmText: '确认',
2250
+ component: CoursePricingAddDialogComponent,
2258
2251
  data: {
2259
- title: '编辑价格',
2260
2252
  courseId: this.id,
2261
2253
  pricing: this.pricing,
2262
2254
  },
2263
- });
2264
- dialogRef.afterClosed().subscribe((result) => {
2255
+ };
2256
+ this.dialogService.open(options);
2257
+ this.dialogService.confirmed().subscribe((result) => {
2265
2258
  if (result) {
2266
2259
  this.courseService.addPricing(this.id, { pricing: result }).subscribe({
2267
2260
  next: (res) => {
2268
- this.snackBar.open('添加成功');
2261
+ this.snackBarService.open('编辑成功');
2269
2262
  },
2270
2263
  error: (error) => {
2271
- this.snackBar.open(error.message);
2264
+ this.snackBarService.open(error.message);
2272
2265
  },
2273
2266
  });
2274
2267
  }
2275
2268
  });
2276
2269
  }
2277
2270
  addPricing() {
2278
- const dialogRef = this.dialog.open(CoursePricingAddDialogComponent, {
2279
- disableClose: true,
2271
+ const options = {
2280
2272
  width: '500px',
2281
- data: {
2282
- title: '添加价格',
2283
- },
2284
- });
2285
- dialogRef.afterClosed().subscribe((pricing) => {
2273
+ title: '添加价格',
2274
+ cancelText: '取消',
2275
+ confirmText: '确认',
2276
+ component: CoursePricingAddDialogComponent,
2277
+ data: {},
2278
+ };
2279
+ this.dialogService.open(options);
2280
+ this.dialogService.confirmed().subscribe((pricing) => {
2286
2281
  if (pricing) {
2287
2282
  this.courseService.addPricing(this.id, { ...pricing, total: pricing.total * 100 }).subscribe({
2288
2283
  next: (res) => {
2289
2284
  this.pricing.push(res.data);
2290
- this.snackBar.open('添加成功');
2285
+ this.snackBarService.open('添加成功');
2291
2286
  },
2292
2287
  error: (error) => {
2293
- this.snackBar.open(error.message);
2288
+ this.snackBarService.open(error.message);
2294
2289
  },
2295
2290
  });
2296
2291
  }
@@ -2299,44 +2294,44 @@ class CourseManagePricingComponent {
2299
2294
  onPricingSave(pricing) {
2300
2295
  this.courseService.updatePricing(this.id, pricing.id, pricing).subscribe({
2301
2296
  next: (res) => {
2302
- this.snackBar.open('保存成功');
2297
+ this.snackBarService.open('保存成功');
2303
2298
  },
2304
2299
  error: (e) => {
2305
- this.snackBar.open(e.message);
2300
+ this.snackBarService.open(e.message);
2306
2301
  },
2307
2302
  });
2308
2303
  }
2309
2304
  onPricingDelete(pricing) {
2310
- const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
2311
- width: '400px',
2312
- data: {
2313
- title: '删除价格',
2314
- message: '确定删除此价格吗?',
2315
- },
2316
- });
2317
- dialogRef.afterClosed().subscribe((result) => {
2305
+ const options = {
2306
+ title: '删除价格',
2307
+ message: '确定删除此价格吗?',
2308
+ cancelText: '取消',
2309
+ confirmText: '确认',
2310
+ };
2311
+ this.dialogService.open(options);
2312
+ this.dialogService.confirmed().subscribe((result) => {
2318
2313
  if (result) {
2319
2314
  this.courseService.deletePricing(this.id, pricing.id).subscribe({
2320
2315
  next: (res) => {
2321
2316
  remove(this.pricing, {
2322
2317
  id: pricing.id,
2323
2318
  });
2324
- this.snackBar.open(res.data);
2319
+ this.snackBarService.open(res.data);
2325
2320
  },
2326
2321
  error: (e) => {
2327
- this.snackBar.open(e.message);
2322
+ this.snackBarService.open(e.message);
2328
2323
  },
2329
2324
  });
2330
2325
  }
2331
2326
  });
2332
2327
  }
2333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseManagePricingComponent, isStandalone: true, selector: "rolatech-course-manage-pricing", ngImport: i0, template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: CourseManageContentComponent, selector: "rolatech-course-manage-content" }] }); }
2328
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseManagePricingComponent, isStandalone: true, selector: "rolatech-course-manage-pricing", usesInheritance: true, ngImport: i0, template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: CourseManageContentComponent, selector: "rolatech-course-manage-content" }] }); }
2335
2330
  }
2336
2331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, decorators: [{
2337
2332
  type: Component,
2338
2333
  args: [{ selector: 'rolatech-course-manage-pricing', standalone: true, imports: [PricingItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n" }]
2339
- }], ctorParameters: () => [] });
2334
+ }] });
2340
2335
 
2341
2336
  class BookingService extends BaseService {
2342
2337
  init() {
@@ -3049,4 +3044,4 @@ const courseManageRoutes = [
3049
3044
  */
3050
3045
 
3051
3046
  export { CourseDetailsComponent as A, CourseMediaOwnerRendererComponent as B, CourseService as C, CourseSectionLectureVideoDialogComponent as D, ScheduleItemComponent as E, DetailItemComponent as F, courseItem_component as G, PricingItemComponent as P, ScheduleDate as S, CategoryService as a, courseManageRoutes as b, courseRoutes as c, CourseStatus as d, CourseRequestStatus as e, CourseType as f, CourseReviewStatus as g, CourseSectionLectureContentType as h, CoursePreviewComponent as i, CourseInfoComponent as j, CourseMediaComponent as k, CoursePricingComponent as l, CourseActionComponent as m, CourseScheduleComponent as n, CourseSectionsComponent as o, provideAngulaCourse as p, CourseSectionItemComponent as q, CourseSectionLectureItemComponent as r, CourseSectionLectureVideoItemComponent as s, CourseItemComponent as t, CoursePricingAddDialogComponent as u, CourseScheduleAddDialogComponent as v, CoursePricingDialogComponent as w, CourseScheduleDialogComponent as x, CourseDetailsDialogComponent as y, CourseEditDialogComponent as z };
3052
- //# sourceMappingURL=rolatech-angular-course-rolatech-angular-course-B3LpO9fo.mjs.map
3047
+ //# sourceMappingURL=rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs.map