Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@rolatech/angular-instructor

Package Overview
Dependencies
Maintainers
2
Versions
124
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rolatech/angular-instructor - npm Package Compare versions

Comparing version
20.2.8-beta.11
to
20.2.8-beta.12
+11
-11
fesm2022/rolatech-angular-instructor.mjs
import * as i0 from '@angular/core';
import { input, output, Component } from '@angular/core';
import { input, output, Component, inject } from '@angular/core';
import { BaseComponent, LocationSelectorComponent, MediaListComponent, MediaListItemComponent, TitleComponent } from '@rolatech/angular-components';

@@ -16,3 +16,3 @@ import * as i3 from '@angular/cdk/text-field';

import { CommonModule } from '@angular/common';
import * as i1$1 from '@angular/router';
import { ActivatedRoute } from '@angular/router';

@@ -75,6 +75,6 @@ class InstructorLocationComponent extends BaseComponent {

}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InstructorLocationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: InstructorLocationComponent, isStandalone: true, selector: "rolatech-instructor-location", inputs: { isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, classroom: { classPropertyName: "classroom", publicName: "classroom", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: "selectMedia", publicName: "selectMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: "upload", delete: "delete", save: "save", deleteMedia: "deleteMedia", mediaItemClick: "mediaItemClick" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mb-8\">\n <div class=\"flex flex-col pt-6\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <rolatech-title title=\"\u57FA\u672C\u4FE1\u606F\"></rolatech-title>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"classroom().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Contact </mat-label>\n <input matInput [(ngModel)]=\"classroom().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"classroom().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"\u57FA\u672C\u4FE1\u606F\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\" i18n>Location select</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Province </mat-label>\n <input matInput [(ngModel)]=\"classroom().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"classroom().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> County </mat-label>\n <input matInput [(ngModel)]=\"classroom().county\" name=\"county\" required disabled />\n </mat-form-field>\n </div>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input\n matInput\n [(ngModel)]=\"classroom().town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> <Address></Address> </mat-label>\n <input matInput [(ngModel)]=\"classroom().address\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"classroom().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <div class=\"py-3\">\n <rolatech-title title=\"Basic info\"></rolatech-title>\n <div class=\"text-sm font-thin text-gray-500\" i18n>Limit 5MB per image</div>\n </div>\n <!-- media -->\n <div>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading()\">\n @for (item of classroom().media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onMediaItemClick(i, item)\"\n (deleteMedia)=\"onDeleteMedia(classroom().id, item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(classroom())\" i18n>Delete</button>\n <button mat-flat-button (click)=\"onSave(classroom())\" i18n>Save</button>\n </div>\n}\n", styles: [".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;border:1px solid grey;padding:6px;position:relative;box-sizing:border-box}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: 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: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "component", type: MediaListComponent, selector: "rolatech-media-list", inputs: ["isUploading", "media", "showAdd"], outputs: ["mediaItemClick", "upload"] }, { kind: "component", type: MediaListItemComponent, selector: "rolatech-media-list-item", inputs: ["media", "uploadProgress", "uploading"], outputs: ["mediaItemClick", "deleteMedia"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: TitleComponent, selector: "rolatech-title", inputs: ["title", "subtitle", "large"] }] }); }
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: InstructorLocationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: InstructorLocationComponent, isStandalone: true, selector: "rolatech-instructor-location", inputs: { isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, classroom: { classPropertyName: "classroom", publicName: "classroom", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: "selectMedia", publicName: "selectMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: "upload", delete: "delete", save: "save", deleteMedia: "deleteMedia", mediaItemClick: "mediaItemClick" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mb-8\">\n <div class=\"flex flex-col pt-6\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <rolatech-title title=\"\u57FA\u672C\u4FE1\u606F\"></rolatech-title>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"classroom().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Contact </mat-label>\n <input matInput [(ngModel)]=\"classroom().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"classroom().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"\u57FA\u672C\u4FE1\u606F\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\" i18n>Location select</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Province </mat-label>\n <input matInput [(ngModel)]=\"classroom().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"classroom().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> County </mat-label>\n <input matInput [(ngModel)]=\"classroom().county\" name=\"county\" required disabled />\n </mat-form-field>\n </div>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input\n matInput\n [(ngModel)]=\"classroom().town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> <Address></Address> </mat-label>\n <input matInput [(ngModel)]=\"classroom().address\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"classroom().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <div class=\"py-3\">\n <rolatech-title title=\"Basic info\"></rolatech-title>\n <div class=\"text-sm font-thin text-gray-500\" i18n>Limit 5MB per image</div>\n </div>\n <!-- media -->\n <div>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading()\">\n @for (item of classroom().media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onMediaItemClick(i, item)\"\n (deleteMedia)=\"onDeleteMedia(classroom().id, item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(classroom())\" i18n>Delete</button>\n <button mat-flat-button (click)=\"onSave(classroom())\" i18n>Save</button>\n </div>\n}\n", styles: [".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;border:1px solid grey;padding:6px;position:relative;box-sizing:border-box}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: 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: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "component", type: MediaListComponent, selector: "rolatech-media-list", inputs: ["isUploading", "media", "showAdd"], outputs: ["mediaItemClick", "upload"] }, { kind: "component", type: MediaListItemComponent, selector: "rolatech-media-list-item", inputs: ["media", "uploadProgress", "uploading"], outputs: ["mediaItemClick", "deleteMedia"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: TitleComponent, selector: "rolatech-title", inputs: ["title", "subtitle", "large"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InstructorLocationComponent, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: InstructorLocationComponent, decorators: [{
type: Component,

@@ -95,4 +95,4 @@ args: [{ selector: 'rolatech-instructor-location', imports: [

class InstructorInfoComponent {
constructor(route) {
this.route = route;
constructor() {
this.route = inject(ActivatedRoute);
this.username = '';

@@ -105,9 +105,9 @@ }

}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InstructorInfoComponent, deps: [{ token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: InstructorInfoComponent, isStandalone: true, selector: "rolatech-instructor-info", ngImport: i0, template: "<p>instructor-info works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: InstructorInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: InstructorInfoComponent, isStandalone: true, selector: "rolatech-instructor-info", ngImport: i0, template: "<p>instructor-info works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InstructorInfoComponent, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: InstructorInfoComponent, decorators: [{
type: Component,
args: [{ selector: 'rolatech-instructor-info', imports: [CommonModule], template: "<p>instructor-info works!</p>\n" }]
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }] });
}] });

@@ -114,0 +114,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"rolatech-angular-instructor.mjs","sources":["../../../../packages/angular-instructor/src/lib/components/instructor-location/instructor-location.component.ts","../../../../packages/angular-instructor/src/lib/components/instructor-location/instructor-location.component.html","../../../../packages/angular-instructor/src/lib/components/instructor-info/instructor-info.component.ts","../../../../packages/angular-instructor/src/lib/components/instructor-info/instructor-info.component.html","../../../../packages/angular-instructor/src/rolatech-angular-instructor.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { Media } from '@rolatech/angular-common';\nimport {\n BaseComponent,\n LocationSelectorComponent,\n MediaListComponent,\n MediaListItemComponent,\n TitleComponent,\n} from '@rolatech/angular-components';\nimport { CourseClassroom } from '@rolatech/angular-course';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'rolatech-instructor-location',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n MatButtonModule,\n TextFieldModule,\n MediaListComponent,\n MediaListItemComponent,\n MatDividerModule,\n TitleComponent,\n ],\n templateUrl: './instructor-location.component.html',\n styleUrl: './instructor-location.component.scss',\n})\nexport class InstructorLocationComponent extends BaseComponent {\n isUploading = input<boolean>();\n classroom = input.required<CourseClassroom>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n\n upload = output<{ id: string; data: FormData | null }>();\n delete = output<CourseClassroom>();\n save = output<CourseClassroom>();\n deleteMedia = output<{ id: string; media: Media }>();\n mediaItemClick = output<{\n selected: number;\n media: Media;\n }>();\n\n selectedLocation: any;\n\n onUpload(id: string, data: any) {\n this.upload.emit({ id, data });\n }\n deleteImage() {}\n onSave(classroom: CourseClassroom) {\n this.save.emit(classroom);\n }\n onDelete(classroom: CourseClassroom) {\n this.delete.emit(classroom);\n }\n onDeleteMedia(id: string, media: Media) {\n this.deleteMedia.emit({ id, media });\n }\n onUploadMedia(event: any) {\n this.upload.emit(event);\n }\n onMediaItemClick(index: number, media: Media) {\n this.mediaItemClick.emit({ selected: index, media });\n }\n selectLocation() {\n const options = {\n title: '选择位置',\n width: '90%',\n component: LocationSelectorComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.selectedLocation = result;\n const address = result.address;\n const { lat, lng } = result.location;\n this.classroom().address = address;\n this.classroom().latitude = lat;\n this.classroom().longitude = lng;\n this.classroom().province = result.province;\n this.classroom().city = result.city;\n this.classroom().county = result.district;\n this.classroom().detail = result.title;\n }\n },\n });\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col pt-6\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <rolatech-title title=\"基本信息\"></rolatech-title>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"classroom().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Contact </mat-label>\n <input matInput [(ngModel)]=\"classroom().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"classroom().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"基本信息\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\" i18n>Location select</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Province </mat-label>\n <input matInput [(ngModel)]=\"classroom().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"classroom().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> County </mat-label>\n <input matInput [(ngModel)]=\"classroom().county\" name=\"county\" required disabled />\n </mat-form-field>\n </div>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input\n matInput\n [(ngModel)]=\"classroom().town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> <Address></Address> </mat-label>\n <input matInput [(ngModel)]=\"classroom().address\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"classroom().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <div class=\"py-3\">\n <rolatech-title title=\"Basic info\"></rolatech-title>\n <div class=\"text-sm font-thin text-gray-500\" i18n>Limit 5MB per image</div>\n </div>\n <!-- media -->\n <div>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading()\">\n @for (item of classroom().media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onMediaItemClick(i, item)\"\n (deleteMedia)=\"onDeleteMedia(classroom().id, item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(classroom())\" i18n>Delete</button>\n <button mat-flat-button (click)=\"onSave(classroom())\" i18n>Save</button>\n </div>\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'rolatech-instructor-info',\n imports: [CommonModule],\n templateUrl: './instructor-info.component.html',\n styleUrl: './instructor-info.component.scss',\n})\nexport class InstructorInfoComponent implements OnInit {\n username = '';\n\n constructor(private route: ActivatedRoute) {}\n\n ngOnInit() {\n this.route.paramMap.subscribe((params) => {\n this.username = params.get('username') || '';\n });\n }\n}\n","<p>instructor-info works!</p>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
{"version":3,"file":"rolatech-angular-instructor.mjs","sources":["../../../../packages/angular-instructor/src/lib/components/instructor-location/instructor-location.component.ts","../../../../packages/angular-instructor/src/lib/components/instructor-location/instructor-location.component.html","../../../../packages/angular-instructor/src/lib/components/instructor-info/instructor-info.component.ts","../../../../packages/angular-instructor/src/lib/components/instructor-info/instructor-info.component.html","../../../../packages/angular-instructor/src/rolatech-angular-instructor.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { Media } from '@rolatech/angular-common';\nimport {\n BaseComponent,\n LocationSelectorComponent,\n MediaListComponent,\n MediaListItemComponent,\n TitleComponent,\n} from '@rolatech/angular-components';\nimport { CourseClassroom } from '@rolatech/angular-course';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'rolatech-instructor-location',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n MatButtonModule,\n TextFieldModule,\n MediaListComponent,\n MediaListItemComponent,\n MatDividerModule,\n TitleComponent,\n ],\n templateUrl: './instructor-location.component.html',\n styleUrl: './instructor-location.component.scss',\n})\nexport class InstructorLocationComponent extends BaseComponent {\n isUploading = input<boolean>();\n classroom = input.required<CourseClassroom>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n\n upload = output<{ id: string; data: FormData | null }>();\n delete = output<CourseClassroom>();\n save = output<CourseClassroom>();\n deleteMedia = output<{ id: string; media: Media }>();\n mediaItemClick = output<{\n selected: number;\n media: Media;\n }>();\n\n selectedLocation: any;\n\n onUpload(id: string, data: any) {\n this.upload.emit({ id, data });\n }\n deleteImage() {}\n onSave(classroom: CourseClassroom) {\n this.save.emit(classroom);\n }\n onDelete(classroom: CourseClassroom) {\n this.delete.emit(classroom);\n }\n onDeleteMedia(id: string, media: Media) {\n this.deleteMedia.emit({ id, media });\n }\n onUploadMedia(event: any) {\n this.upload.emit(event);\n }\n onMediaItemClick(index: number, media: Media) {\n this.mediaItemClick.emit({ selected: index, media });\n }\n selectLocation() {\n const options = {\n title: '选择位置',\n width: '90%',\n component: LocationSelectorComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.selectedLocation = result;\n const address = result.address;\n const { lat, lng } = result.location;\n this.classroom().address = address;\n this.classroom().latitude = lat;\n this.classroom().longitude = lng;\n this.classroom().province = result.province;\n this.classroom().city = result.city;\n this.classroom().county = result.district;\n this.classroom().detail = result.title;\n }\n },\n });\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col pt-6\">\n <div class=\"flex flex-col\">\n <!-- base -->\n <div class=\"flex flex-col\">\n <rolatech-title title=\"基本信息\"></rolatech-title>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"classroom().name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Contact </mat-label>\n <input matInput [(ngModel)]=\"classroom().contact\" name=\"contact\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"classroom().phone\" name=\"phone\" required />\n </mat-form-field>\n </div>\n <!-- location -->\n <div class=\"flex flex-col\">\n <div class=\"py-3 flex justify-between\">\n <rolatech-title title=\"基本信息\"></rolatech-title>\n\n <button mat-stroked-button (click)=\"selectLocation()\" i18n>Location select</button>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Province </mat-label>\n <input matInput [(ngModel)]=\"classroom().province\" name=\"province\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"classroom().city\" name=\"city\" required disabled />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> County </mat-label>\n <input matInput [(ngModel)]=\"classroom().county\" name=\"county\" required disabled />\n </mat-form-field>\n </div>\n <!-- <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input\n matInput\n [(ngModel)]=\"classroom().town\"\n name=\"town\"\n required\n readonly\n />\n </mat-form-field> -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> <Address></Address> </mat-label>\n <input matInput [(ngModel)]=\"classroom().address\" name=\"address\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <textarea\n matInput\n [(ngModel)]=\"classroom().detail\"\n name=\"detail\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </div>\n </div>\n <div>\n <div class=\"py-3\">\n <rolatech-title title=\"Basic info\"></rolatech-title>\n <div class=\"text-sm font-thin text-gray-500\" i18n>Limit 5MB per image</div>\n </div>\n <!-- media -->\n <div>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading()\">\n @for (item of classroom().media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onMediaItemClick(i, item)\"\n (deleteMedia)=\"onDeleteMedia(classroom().id, item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-4\">\n <button mat-button (click)=\"onDelete(classroom())\" i18n>Delete</button>\n <button mat-flat-button (click)=\"onSave(classroom())\" i18n>Save</button>\n </div>\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'rolatech-instructor-info',\n imports: [CommonModule],\n templateUrl: './instructor-info.component.html',\n styleUrl: './instructor-info.component.scss',\n})\nexport class InstructorInfoComponent implements OnInit {\n route = inject(ActivatedRoute);\n username = '';\n\n ngOnInit() {\n this.route.paramMap.subscribe((params) => {\n this.username = params.get('username') || '';\n });\n }\n}\n","<p>instructor-info works!</p>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
{
"name": "@rolatech/angular-instructor",
"version": "20.2.8-beta.11",
"version": "20.2.8-beta.12",
"private": false,

@@ -5,0 +5,0 @@ "peerDependencies": {

@@ -41,5 +41,4 @@ import * as _angular_core from '@angular/core';

declare class InstructorInfoComponent implements OnInit {
private route;
route: ActivatedRoute;
username: string;
constructor(route: ActivatedRoute);
ngOnInit(): void;

@@ -46,0 +45,0 @@ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InstructorInfoComponent, never>;