@rolatech/angular-course 17.2.8 → 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.
Files changed (47) hide show
  1. package/esm2022/lib/components/course-action/course-action.component.mjs +7 -5
  2. package/esm2022/lib/components/course-details/course-details.component.mjs +6 -6
  3. package/esm2022/lib/components/course-details-dialog/course-details-dialog.component.mjs +5 -5
  4. package/esm2022/lib/components/course-edit-dialog/course-edit-dialog.component.mjs +8 -8
  5. package/esm2022/lib/components/course-info/course-info.component.mjs +10 -7
  6. package/esm2022/lib/components/course-item/course-item.component.mjs +8 -6
  7. package/esm2022/lib/components/course-media/course-media.component.mjs +7 -7
  8. package/esm2022/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.mjs +3 -3
  9. package/esm2022/lib/components/course-preview/course-preview.component.mjs +3 -3
  10. package/esm2022/lib/components/course-pricing/course-pricing.component.mjs +3 -3
  11. package/esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.mjs +4 -4
  12. package/esm2022/lib/components/course-pricing-dialog/course-pricing-dialog.component.mjs +5 -5
  13. package/esm2022/lib/components/course-schedule/course-schedule.component.mjs +4 -4
  14. package/esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.mjs +5 -5
  15. package/esm2022/lib/components/course-schedule-dialog/course-schedule-dialog.component.mjs +5 -5
  16. package/esm2022/lib/components/course-section-item/course-section-item.component.mjs +6 -5
  17. package/esm2022/lib/components/course-section-lecture-item/course-section-lecture-item.component.mjs +7 -6
  18. package/esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.mjs +5 -5
  19. package/esm2022/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.mjs +3 -3
  20. package/esm2022/lib/components/course-sections/course-sections.component.mjs +5 -5
  21. package/esm2022/lib/components/detail-item/detail-item.component.mjs +5 -6
  22. package/esm2022/lib/components/pricing-item/pricing-item.component.mjs +5 -6
  23. package/esm2022/lib/components/schedule-item/schedule-item.component.mjs +7 -8
  24. package/esm2022/lib/pages/course/course-category/course-category.component.mjs +3 -3
  25. package/esm2022/lib/pages/course/course-detail/course-detail.component.mjs +27 -41
  26. package/esm2022/lib/pages/course/course-index/course-index.component.mjs +3 -3
  27. package/esm2022/lib/pages/course/course-layout/course-layout.component.mjs +3 -3
  28. package/esm2022/lib/pages/course/course-section-content/course-section-content.component.mjs +12 -19
  29. package/esm2022/lib/services/category.service.mjs +3 -3
  30. package/esm2022/lib/services/course-section.service.mjs +3 -3
  31. package/esm2022/lib/services/course.service.mjs +3 -3
  32. package/fesm2022/rolatech-angular-course.mjs +147 -166
  33. package/fesm2022/rolatech-angular-course.mjs.map +1 -1
  34. package/lib/components/course-edit-dialog/course-edit-dialog.component.d.ts +2 -2
  35. package/lib/components/course-info/course-info.component.d.ts +1 -0
  36. package/lib/components/course-item/course-item.component.d.ts +2 -1
  37. package/lib/components/course-media/course-media.component.d.ts +1 -1
  38. package/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.d.ts +1 -1
  39. package/lib/components/course-section-lecture-item/course-section-lecture-item.component.d.ts +1 -1
  40. package/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.d.ts +1 -1
  41. package/lib/components/detail-item/detail-item.component.d.ts +1 -2
  42. package/lib/components/pricing-item/pricing-item.component.d.ts +2 -3
  43. package/lib/components/schedule-item/schedule-item.component.d.ts +2 -3
  44. package/lib/pages/course/course-detail/course-detail.component.d.ts +2 -0
  45. package/lib/pages/course/course-section-content/course-section-content.component.d.ts +2 -1
  46. package/package.json +4 -4
  47. package/themes/_default.scss +1 -1
@@ -1,5 +1,5 @@
1
1
  import { isPlatformBrowser } from '@angular/common';
2
- import { Component, ElementRef, PLATFORM_ID, inject } from '@angular/core';
2
+ import { Component, ElementRef, PLATFORM_ID, effect, inject } from '@angular/core';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { CourseSectionService, CourseService } from '../../../services';
5
5
  import { AuthService, AuthUserService } from '@rolatech/angular-auth';
@@ -19,6 +19,7 @@ export class CourseSectionContentComponent {
19
19
  this.authUserService = inject(AuthUserService);
20
20
  this.el = inject(ElementRef);
21
21
  this.platformId = inject(PLATFORM_ID);
22
+ this.authenticated = this.authService.authenticated;
22
23
  this.sections = [];
23
24
  this.courseId = '';
24
25
  this.sectionId = '';
@@ -28,6 +29,11 @@ export class CourseSectionContentComponent {
28
29
  this.instructorAvatar = '';
29
30
  this.instructorUsername = '';
30
31
  this.purchased = false;
32
+ effect(() => {
33
+ if (this.authenticated()) {
34
+ this.findPurchasedByCourseId();
35
+ }
36
+ });
31
37
  }
32
38
  ngOnInit() {
33
39
  this.route.params.subscribe((params) => {
@@ -36,7 +42,6 @@ export class CourseSectionContentComponent {
36
42
  this.lectureId = params['lectureId'];
37
43
  this.findCourse(this.courseId);
38
44
  this.findSections(this.courseId);
39
- this.introspect();
40
45
  });
41
46
  }
42
47
  ngOnDestroy() {
@@ -61,9 +66,6 @@ export class CourseSectionContentComponent {
61
66
  pic: thumbnail,
62
67
  },
63
68
  });
64
- // this.player.on('loadedmetadata', () => {
65
- // console.log('Video duration:', this.player.video.duration);
66
- // });
67
69
  }
68
70
  else {
69
71
  this.player.switchVideo({
@@ -101,15 +103,6 @@ export class CourseSectionContentComponent {
101
103
  },
102
104
  });
103
105
  }
104
- introspect() {
105
- this.authService.introspect().subscribe({
106
- next: (res) => {
107
- if (res.authenticated) {
108
- this.findPurchasedByCourseId();
109
- }
110
- },
111
- });
112
- }
113
106
  findPurchasedByCourseId() {
114
107
  this.courseService.findPurchasedByCourseId(this.courseId).subscribe({
115
108
  next: (res) => {
@@ -124,10 +117,10 @@ export class CourseSectionContentComponent {
124
117
  checkout(e) {
125
118
  this.router.navigateByUrl(`/carts/checkout/express/courses/${this.courseId}`);
126
119
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CourseSectionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", 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"] }] }); }
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"] }] }); }
129
122
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CourseSectionContentComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CourseSectionContentComponent, decorators: [{
131
124
  type: Component,
132
125
  args: [{ standalone: true, imports: [
133
126
  AngularCommonModule,
@@ -136,5 +129,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
136
129
  CourseMediaOwnerRendererComponent,
137
130
  CommentsComponent,
138
131
  ], selector: 'rolatech-course-section-content', 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" }]
139
- }] });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQvY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQvY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMxSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFrQnhHLE1BQU0sT0FBTyw2QkFBNkI7SUFiMUM7UUFjRSxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixjQUFTLEdBQUcsS0FBSyxDQUFDO0tBa0duQjtJQWhHQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsZUFBZSxLQUFVLENBQUM7SUFDMUIsVUFBVSxDQUFDLEdBQVcsRUFBRSxTQUFrQjtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFDRCwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQztnQkFDeEIsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsS0FBSyxFQUFFO29CQUNMLEdBQUcsRUFBRSxHQUFHO29CQUNSLEdBQUcsRUFBRSxTQUFTO2lCQUNmO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsMkNBQTJDO1lBQzNDLGdFQUFnRTtZQUNoRSxNQUFNO1FBQ1IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDdEIsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsR0FBRyxFQUFFLFNBQVM7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxRQUFhO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM5RSxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ25DLE1BQU0sU0FBUyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUUzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsTUFBYztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2RCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUN6QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbEUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVTtRQUNsQixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQU07UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQzs4R0FwSFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsMkZDNUIxQyxrakNBOEJBLHlERFpJLG1CQUFtQiw4QkFDbkIsdUJBQXVCLCtCQUN2Qix1QkFBdUIsMElBQ3ZCLGlDQUFpQyx5SEFDakMsaUJBQWlCOzsyRkFNUiw2QkFBNkI7a0JBYnpDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLGlDQUFpQzt3QkFDakMsaUJBQWlCO3FCQUNsQixZQUNTLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFBMQVRGT1JNX0lELCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvblNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWVkaWFPd25lclJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXIvY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLXNlY3Rpb25zL2NvdXJzZS1zZWN0aW9ucy5jb21wb25lbnQnO1xuXG4vLyBpbXBvcnQgRFBsYXllciBmcm9tICdEUGxheWVyJztcbmRlY2xhcmUgY29uc3QgRFBsYXllcjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgQ291cnNlU2VjdGlvbnNDb21wb25lbnQsXG4gICAgQ291cnNlTWVkaWFPd25lclJlbmRlcmVyQ29tcG9uZW50LFxuICAgIENvbW1lbnRzQ29tcG9uZW50LFxuICBdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1zZWN0aW9uLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlU2VjdGlvbkNvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvdXJzZVNlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlY3Rpb25TZXJ2aWNlKTtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwbGF5ZXI6IGFueTtcbiAgc2VjdGlvbnM6IENvdXJzZVNlY3Rpb25bXSA9IFtdO1xuICBjb3Vyc2VJZCA9ICcnO1xuICBzZWN0aW9uSWQgPSAnJztcbiAgbGVjdHVyZUlkID0gJyc7XG4gIHZpZGVvVXJsOiBhbnkgPSAnJztcbiAgaW5zdHJ1Y3Rvck5hbWUgPSAnJztcbiAgaW5zdHJ1Y3RvckF2YXRhciA9ICcnO1xuICBpbnN0cnVjdG9yVXNlcm5hbWUgPSAnJztcbiAgY291cnNlOiBhbnk7XG4gIHB1cmNoYXNlZCA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLmNvdXJzZUlkID0gcGFyYW1zWydpZCddO1xuICAgICAgdGhpcy5zZWN0aW9uSWQgPSBwYXJhbXNbJ3NlY3Rpb25JZCddO1xuICAgICAgdGhpcy5sZWN0dXJlSWQgPSBwYXJhbXNbJ2xlY3R1cmVJZCddO1xuICAgICAgdGhpcy5maW5kQ291cnNlKHRoaXMuY291cnNlSWQpO1xuICAgICAgdGhpcy5maW5kU2VjdGlvbnModGhpcy5jb3Vyc2VJZCk7XG4gICAgICB0aGlzLmludHJvc3BlY3QoKTtcbiAgICB9KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wbGF5ZXIpIHtcbiAgICAgIHRoaXMucGxheWVyLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cbiAgaW5pdFBsYXllcih1cmw6IHN0cmluZywgdGh1bWJuYWlsPzogc3RyaW5nKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vICdodHRwczovL2Nvcy12aWRlby0xMjU4MzQ0Njk5LmNvcy5hcC1ndWFuZ3pob3UudGVuY2VudGNvcy5jbi90ZXN0Lm1wNCcsXG4gICAgaWYgKCF0aGlzLnBsYXllcikge1xuICAgICAgY29uc3QgcGxheWVyQ29udGFpbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNkcGxheWVyJyk7XG4gICAgICB0aGlzLnBsYXllciA9IG5ldyBEUGxheWVyKHtcbiAgICAgICAgY29udGFpbmVyOiBwbGF5ZXJDb250YWluZXIsXG4gICAgICAgIHNjcmVlbnNob3Q6IHRydWUsXG4gICAgICAgIHByZWxvYWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHZpZGVvOiB7XG4gICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgcGljOiB0aHVtYm5haWwsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIC8vIHRoaXMucGxheWVyLm9uKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHtcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ1ZpZGVvIGR1cmF0aW9uOicsIHRoaXMucGxheWVyLnZpZGVvLmR1cmF0aW9uKTtcbiAgICAgIC8vIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBsYXllci5zd2l0Y2hWaWRlbyh7XG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBwaWM6IHRodW1ibmFpbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmaW5kU2VjdGlvbnMoY291cnNlSWQ6IGFueSkge1xuICAgIHRoaXMuY291cnNlU2VjdGlvblNlcnZpY2UuZmluZFNlY3Rpb25zKGNvdXJzZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNlY3Rpb25zID0gcmVzLmRhdGE7XG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnNlY3Rpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5zZWN0aW9uSWQpO1xuICAgICAgICBjb25zdCBsZXRjdHVyZSA9IHNlY3Rpb24/LmxlY3R1cmVzLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5sZWN0dXJlSWQpO1xuICAgICAgICB0aGlzLnZpZGVvVXJsID0gbGV0Y3R1cmU/Lml0ZW0udXJsO1xuICAgICAgICBjb25zdCB0aHVtYm5haWwgPSBsZXRjdHVyZT8uaXRlbS50aHVtYm5haWw7XG5cbiAgICAgICAgdGhpcy5pbml0UGxheWVyKHRoaXMudmlkZW9VcmwsIHRodW1ibmFpbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRDb3Vyc2UoY291cnNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5nZXQoY291cnNlSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb3Vyc2UgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5maW5kVXNlckJhc2VJbmZvKHRoaXMuY291cnNlLmluc3RydWN0b3JJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRVc2VyQmFzZUluZm8odXNlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyh1c2VySWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rvck5hbWUgPSByZXMubmFtZTtcbiAgICAgICAgdGhpcy5pbnN0cnVjdG9yQXZhdGFyID0gcmVzLmF2YXRhcjtcbiAgICAgICAgdGhpcy5pbnN0cnVjdG9yVXNlcm5hbWUgPSByZXMudXNlcm5hbWU7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGludHJvc3BlY3QoKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5pbnRyb3NwZWN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgdGhpcy5maW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmRQdXJjaGFzZWRCeUNvdXJzZUlkKHRoaXMuY291cnNlSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wdXJjaGFzZWQgPSByZXMuZGF0YSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25TZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB7IHNlY3Rpb24sIGxlY3R1cmUgfSA9IGV2ZW50O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2NvdXJzZXMnLCB0aGlzLmNvdXJzZUlkLCAnc2VjdGlvbnMnLCBzZWN0aW9uLmlkLCAnbGVjdHVyZXMnLCBsZWN0dXJlLmlkXSk7XG4gIH1cbiAgY2hlY2tvdXQoZTogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2NhcnRzL2NoZWNrb3V0L2V4cHJlc3MvY291cnNlcy8ke3RoaXMuY291cnNlSWR9YCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IHNtOmZsZXgtcm93IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgbXQtMiBzbTptdC00XCI+XG4gIDxkaXYgY2xhc3M9XCJzbTp3LVs3MCVdIGZsZXggZmxleC1jb2wgaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgcHgtNCBzbTpweC02IGgtZml0XCI+XG4gICAgPGRpdiBpZD1cImRwbGF5ZXJcIiBjbGFzcz1cInctZnVsbCBoLWF1dG8gYXNwZWN0LXZpZGVvIHJvdW5kZWQteGxcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHktMyB3LWZ1bGxcIj5cbiAgICAgIEBpZiAoY291cnNlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtbWVkaXVtIHB5LTNcIj5cbiAgICAgICAgICB7eyBjb3Vyc2UubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cm9sYXRlY2gtY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyXG4gICAgICAgICAgICBbbmFtZV09XCJpbnN0cnVjdG9yTmFtZVwiXG4gICAgICAgICAgICBbYXZhdGFyXT1cImluc3RydWN0b3JBdmF0YXJcIlxuICAgICAgICAgICAgW3VzZXJuYW1lXT1cImluc3RydWN0b3JVc2VybmFtZVwiXG4gICAgICAgICAgPjwvcm9sYXRlY2gtY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cm9sYXRlY2gtY29tbWVudHMgW2l0ZW1JZF09XCJsZWN0dXJlSWRcIj48L3JvbGF0ZWNoLWNvbW1lbnRzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzbTp3LVszMCVdIHB4LTQgc206cHgtMCBzbTpwci02XCI+XG4gICAgPHJvbGF0ZWNoLWNvdXJzZS1zZWN0aW9uc1xuICAgICAgW3NlY3Rpb25zXT1cInNlY3Rpb25zXCJcbiAgICAgIFtwdXJjaGFzZWRdPVwicHVyY2hhc2VkXCJcbiAgICAgIChzZWN0aW9uKT1cIm9uU2VjdGlvbigkZXZlbnQpXCJcbiAgICAgIChjaGVja291dCk9XCJjaGVja291dCgkZXZlbnQpXCJcbiAgICA+PC9yb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbnM+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
132
+ }], ctorParameters: () => [] });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQvY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQvY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUZBQXVGLENBQUM7QUFDMUksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0RBQStELENBQUM7O0FBa0J4RyxNQUFNLE9BQU8sNkJBQTZC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QjFDLGtqQ0E4QkEseUREWkksbUJBQW1CLDhCQUNuQix1QkFBdUIsK0JBQ3ZCLHVCQUF1QiwwSUFDdkIsaUNBQWlDLHlIQUNqQyxpQkFBaUI7OzJGQU1SLDZCQUE2QjtrQkFiekMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsaUNBQWlDO3dCQUNqQyxpQkFBaUI7cUJBQ2xCLFlBQ1MsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25TZXJ2aWNlLCBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tZW50JztcbmltcG9ydCB7IENvdXJzZU1lZGlhT3duZXJSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyL2NvdXJzZS1tZWRpYS1vd25lci1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1zZWN0aW9ucy9jb3Vyc2Utc2VjdGlvbnMuY29tcG9uZW50JztcblxuLy8gaW1wb3J0IERQbGF5ZXIgZnJvbSAnRFBsYXllcic7XG5kZWNsYXJlIGNvbnN0IERQbGF5ZXI6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIENvdXJzZVNlY3Rpb25zQ29tcG9uZW50LFxuICAgIENvdXJzZU1lZGlhT3duZXJSZW5kZXJlckNvbXBvbmVudCxcbiAgICBDb21tZW50c0NvbXBvbmVudCxcbiAgXSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2Utc2VjdGlvbi1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlY3Rpb25Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb3Vyc2VTZWN0aW9uU2VydmljZSA9IGluamVjdChDb3Vyc2VTZWN0aW9uU2VydmljZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgYXV0aGVudGljYXRlZCA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZDtcbiAgcGxheWVyOiBhbnk7XG4gIHNlY3Rpb25zOiBDb3Vyc2VTZWN0aW9uW10gPSBbXTtcbiAgY291cnNlSWQgPSAnJztcbiAgc2VjdGlvbklkID0gJyc7XG4gIGxlY3R1cmVJZCA9ICcnO1xuICB2aWRlb1VybDogYW55ID0gJyc7XG4gIGluc3RydWN0b3JOYW1lID0gJyc7XG4gIGluc3RydWN0b3JBdmF0YXIgPSAnJztcbiAgaW5zdHJ1Y3RvclVzZXJuYW1lID0gJyc7XG4gIGNvdXJzZTogYW55O1xuICBwdXJjaGFzZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgICB0aGlzLmZpbmRQdXJjaGFzZWRCeUNvdXJzZUlkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIHRoaXMuY291cnNlSWQgPSBwYXJhbXNbJ2lkJ107XG4gICAgICB0aGlzLnNlY3Rpb25JZCA9IHBhcmFtc1snc2VjdGlvbklkJ107XG4gICAgICB0aGlzLmxlY3R1cmVJZCA9IHBhcmFtc1snbGVjdHVyZUlkJ107XG4gICAgICB0aGlzLmZpbmRDb3Vyc2UodGhpcy5jb3Vyc2VJZCk7XG4gICAgICB0aGlzLmZpbmRTZWN0aW9ucyh0aGlzLmNvdXJzZUlkKTtcbiAgICB9KTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wbGF5ZXIpIHtcbiAgICAgIHRoaXMucGxheWVyLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cbiAgaW5pdFBsYXllcih1cmw6IHN0cmluZywgdGh1bWJuYWlsPzogc3RyaW5nKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vICdodHRwczovL2Nvcy12aWRlby0xMjU4MzQ0Njk5LmNvcy5hcC1ndWFuZ3pob3UudGVuY2VudGNvcy5jbi90ZXN0Lm1wNCcsXG4gICAgaWYgKCF0aGlzLnBsYXllcikge1xuICAgICAgY29uc3QgcGxheWVyQ29udGFpbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNkcGxheWVyJyk7XG4gICAgICB0aGlzLnBsYXllciA9IG5ldyBEUGxheWVyKHtcbiAgICAgICAgY29udGFpbmVyOiBwbGF5ZXJDb250YWluZXIsXG4gICAgICAgIHNjcmVlbnNob3Q6IHRydWUsXG4gICAgICAgIHByZWxvYWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHZpZGVvOiB7XG4gICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgcGljOiB0aHVtYm5haWwsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wbGF5ZXIuc3dpdGNoVmlkZW8oe1xuICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgcGljOiB0aHVtYm5haWwsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZmluZFNlY3Rpb25zKGNvdXJzZUlkOiBhbnkpIHtcbiAgICB0aGlzLmNvdXJzZVNlY3Rpb25TZXJ2aWNlLmZpbmRTZWN0aW9ucyhjb3Vyc2VJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlcy5kYXRhO1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5zZWN0aW9ucy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IHRoaXMuc2VjdGlvbklkKTtcbiAgICAgICAgY29uc3QgbGV0Y3R1cmUgPSBzZWN0aW9uPy5sZWN0dXJlcy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IHRoaXMubGVjdHVyZUlkKTtcbiAgICAgICAgdGhpcy52aWRlb1VybCA9IGxldGN0dXJlPy5pdGVtLnVybDtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gbGV0Y3R1cmU/Lml0ZW0udGh1bWJuYWlsO1xuXG4gICAgICAgIHRoaXMuaW5pdFBsYXllcih0aGlzLnZpZGVvVXJsLCB0aHVtYm5haWwpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQ291cnNlKGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0KGNvdXJzZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLmNvdXJzZS5pbnN0cnVjdG9ySWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVXNlckJhc2VJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8odXNlcklkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluc3RydWN0b3JOYW1lID0gcmVzLm5hbWU7XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3RvckF2YXRhciA9IHJlcy5hdmF0YXI7XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3RvclVzZXJuYW1lID0gcmVzLnVzZXJuYW1lO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQodGhpcy5jb3Vyc2VJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnB1cmNoYXNlZCA9IHJlcy5kYXRhID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHsgc2VjdGlvbiwgbGVjdHVyZSB9ID0gZXZlbnQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY291cnNlcycsIHRoaXMuY291cnNlSWQsICdzZWN0aW9ucycsIHNlY3Rpb24uaWQsICdsZWN0dXJlcycsIGxlY3R1cmUuaWRdKTtcbiAgfVxuICBjaGVja291dChlOiBhbnkpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvY2FydHMvY2hlY2tvdXQvZXhwcmVzcy9jb3Vyc2VzLyR7dGhpcy5jb3Vyc2VJZH1gKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggc206ZmxleC1yb3cgZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBtdC0yIHNtOm10LTRcIj5cbiAgPGRpdiBjbGFzcz1cInNtOnctWzcwJV0gZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlciBweC00IHNtOnB4LTYgaC1maXRcIj5cbiAgICA8ZGl2IGlkPVwiZHBsYXllclwiIGNsYXNzPVwidy1mdWxsIGgtYXV0byBhc3BlY3QtdmlkZW8gcm91bmRlZC14bFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJweS0zIHctZnVsbFwiPlxuICAgICAgQGlmIChjb3Vyc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1tZWRpdW0gcHktM1wiPlxuICAgICAgICAgIHt7IGNvdXJzZS5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXJcbiAgICAgICAgICAgIFtuYW1lXT1cImluc3RydWN0b3JOYW1lXCJcbiAgICAgICAgICAgIFthdmF0YXJdPVwiaW5zdHJ1Y3RvckF2YXRhclwiXG4gICAgICAgICAgICBbdXNlcm5hbWVdPVwiaW5zdHJ1Y3RvclVzZXJuYW1lXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxyb2xhdGVjaC1jb21tZW50cyBbaXRlbUlkXT1cImxlY3R1cmVJZFwiPjwvcm9sYXRlY2gtY29tbWVudHM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNtOnctWzMwJV0gcHgtNCBzbTpweC0wIHNtOnByLTZcIj5cbiAgICA8cm9sYXRlY2gtY291cnNlLXNlY3Rpb25zXG4gICAgICBbc2VjdGlvbnNdPVwic2VjdGlvbnNcIlxuICAgICAgW3B1cmNoYXNlZF09XCJwdXJjaGFzZWRcIlxuICAgICAgKHNlY3Rpb24pPVwib25TZWN0aW9uKCRldmVudClcIlxuICAgICAgKGNoZWNrb3V0KT1cImNoZWNrb3V0KCRldmVudClcIlxuICAgID48L3JvbGF0ZWNoLWNvdXJzZS1zZWN0aW9ucz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -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: "17.3.2", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
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: "17.3.2", ngImport: i0, type: CategoryService, decorators: [{
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: "17.3.2", ngImport: i0, type: CourseSectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
18
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CourseSectionService, providedIn: 'root' }); }
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: "17.3.2", ngImport: i0, type: CourseSectionService, decorators: [{
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: "17.3.2", ngImport: i0, type: CourseService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
272
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CourseService, providedIn: 'root' }); }
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: "17.3.2", ngImport: i0, type: CourseService, decorators: [{
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',