@sd-angular/core 0.0.973 → 0.0.977
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-grid-material.umd.js +1 -16
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +2 -2
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-loading.umd.js +5 -5
- package/bundles/sd-angular-core-loading.umd.js.map +1 -1
- package/bundles/sd-angular-core-loading.umd.min.js +1 -1
- package/bundles/sd-angular-core-loading.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +4 -1
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +1 -1
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-tab-router.umd.js +1 -1
- package/bundles/sd-angular-core-tab-router.umd.min.js +1 -1
- package/bundles/sd-angular-core-tab-router.umd.min.js.map +1 -1
- package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
- package/esm2015/grid-material/src/lib/pipes/editor-handler-column.pipe.js +1 -5
- package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +2 -2
- package/esm2015/loading/src/lib/loading.service.js +8 -8
- package/esm2015/select/src/lib/select.component.js +5 -2
- package/esm2015/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.js +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +1 -5
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-loading.js +5 -5
- package/fesm2015/sd-angular-core-loading.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +4 -1
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core-tab-router.js +1 -1
- package/grid-material/src/lib/models/grid-column.model.d.ts +6 -11
- package/package.json +1 -1
- package/{sd-angular-core-0.0.973.tgz → sd-angular-core-0.0.977.tgz} +0 -0
- package/tab-router/sd-angular-core-tab-router.metadata.json +1 -1
|
@@ -3,27 +3,27 @@ import $ from 'jquery';
|
|
|
3
3
|
|
|
4
4
|
class SdLoadingService {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.loadingId =
|
|
7
|
-
this.start = (element =
|
|
6
|
+
this.loadingId = "L8d556b9b-f6dd-46e9-9710-757e65d82839";
|
|
7
|
+
this.start = (element = "body") => {
|
|
8
8
|
$(element).append(this.loadingNormal);
|
|
9
9
|
};
|
|
10
10
|
this.isLoading = () => {
|
|
11
11
|
return $(`#${this.loadingId}`).length > 0;
|
|
12
12
|
};
|
|
13
|
-
this.stop = (element =
|
|
13
|
+
this.stop = (element = "body") => {
|
|
14
14
|
$(element).children(`#${this.loadingId}`).remove();
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
// Loading
|
|
18
18
|
get loadingNormal() {
|
|
19
19
|
// tslint:disable-next-line: max-line-length
|
|
20
|
-
return `<div id="${this.loadingId}" style="top:0;left:0;height:100vh;width:100vw;position:absolute;opacity:0.6;background:#FFFFFF;z-index: 99999;"><i class="fa fa-5x fa-spinner fa-pulse" style="margin-top:calc(50vh - 2.5rem);margin-left:calc(50vw - 2.5rem)"></i></div>`;
|
|
20
|
+
return `<div class="sd-loading" id="${this.loadingId}" style="top:0;left:0;height:100vh;width:100vw;position:absolute;opacity:0.6;background:#FFFFFF;z-index: 99999;"><i class="fa fa-5x fa-spinner fa-pulse" style="margin-top:calc(50vh - 2.5rem);margin-left:calc(50vw - 2.5rem)"></i></div>`;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
SdLoadingService.ɵprov = ɵɵdefineInjectable({ factory: function SdLoadingService_Factory() { return new SdLoadingService(); }, token: SdLoadingService, providedIn: "root" });
|
|
24
24
|
SdLoadingService.decorators = [
|
|
25
25
|
{ type: Injectable, args: [{
|
|
26
|
-
providedIn:
|
|
26
|
+
providedIn: "root",
|
|
27
27
|
},] }
|
|
28
28
|
];
|
|
29
29
|
SdLoadingService.ctorParameters = () => [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-loading.js","sources":["../../../../projects/sd-core/loading/src/lib/loading.service.ts","../../../../projects/sd-core/loading/src/public-api.ts","../../../../projects/sd-core/loading/sd-angular-core-loading.ts"],"sourcesContent":["import { Injectable } from
|
|
1
|
+
{"version":3,"file":"sd-angular-core-loading.js","sources":["../../../../projects/sd-core/loading/src/lib/loading.service.ts","../../../../projects/sd-core/loading/src/public-api.ts","../../../../projects/sd-core/loading/sd-angular-core-loading.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport $ from \"jquery\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SdLoadingService {\r\n private loadingId = \"L8d556b9b-f6dd-46e9-9710-757e65d82839\";\r\n\r\n constructor() {}\r\n\r\n // Loading\r\n private get loadingNormal() {\r\n // tslint:disable-next-line: max-line-length\r\n return `<div class=\"sd-loading\" id=\"${this.loadingId}\" style=\"top:0;left:0;height:100vh;width:100vw;position:absolute;opacity:0.6;background:#FFFFFF;z-index: 99999;\"><i class=\"fa fa-5x fa-spinner fa-pulse\" style=\"margin-top:calc(50vh - 2.5rem);margin-left:calc(50vw - 2.5rem)\"></i></div>`;\r\n }\r\n\r\n start = (element: string = \"body\") => {\r\n $(element).append(this.loadingNormal);\r\n };\r\n\r\n isLoading = () => {\r\n return $(`#${this.loadingId}`).length > 0;\r\n };\r\n\r\n stop = (element: string = \"body\") => {\r\n $(element).children(`#${this.loadingId}`).remove();\r\n };\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/loading.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,gBAAgB;IAG3B;QAFQ,cAAS,GAAG,uCAAuC,CAAC;QAU5D,UAAK,GAAG,CAAC,UAAkB,MAAM;YAC/B,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACvC,CAAC;QAEF,cAAS,GAAG;YACV,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3C,CAAC;QAEF,SAAI,GAAG,CAAC,UAAkB,MAAM;YAC9B,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACpD,CAAC;KAlBc;;IAGhB,IAAY,aAAa;;QAEvB,OAAO,+BAA+B,IAAI,CAAC,SAAS,4OAA4O,CAAC;KAClS;;;;YAZF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;ACLD;;;;ACAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-select.js","sources":["../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts","../../../../projects/sd-core/select/src/public-api.ts","../../../../projects/sd-core/select/sd-angular-core-select.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('input') input: MatInput;\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.formControl.setValue((value ?? '') + '', {\r\n emitEvent: false\r\n });\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n const items = await this.#loadItems(val, this.#items);\r\n this.#currentItems = items.filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n this.#currentItems = this.#items.filter(item => {\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue: any | any[] = this.formControl.value;\r\n if (this.valueField && this.displayField) {\r\n const value = item[this.valueField]?.toString() || '';\r\n const display = item[this.displayField]?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n } else {\r\n const value = item?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n }\r\n }).filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n if (this.multiple) {\r\n let objItem = {};\r\n if (this.valueField) {\r\n objItem = this.utilityService.arrayToObject(results, this.valueField);\r\n } else {\r\n results.forEach(item => objItem[item?.toString()] = item);\r\n }\r\n Object.assign(this.#allItem, objItem);\r\n const values: (number | string)[] = this.formControl.value || [];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.ref.detectChanges();\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.searchTerm$.next('');\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString())\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if(isOpened) {\r\n this.input.value = null;\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/select.module';\r\nexport * from './lib/select.component';\r\nexport * from './lib/select-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-select.js","sources":["../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts","../../../../projects/sd-core/select/src/public-api.ts","../../../../projects/sd-core/select/sd-angular-core-select.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('input') input: MatInput;\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.formControl.setValue((value ?? '') + '', {\r\n emitEvent: false\r\n });\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n const items = await this.#loadItems(val, this.#items);\r\n this.#currentItems = items.filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n this.#currentItems = this.#items.filter(item => {\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue: any | any[] = this.formControl.value;\r\n if (this.valueField && this.displayField) {\r\n const value = item[this.valueField]?.toString() || '';\r\n const display = item[this.displayField]?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n } else {\r\n const value = item?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n }\r\n }).filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n if (this.multiple) {\r\n let objItem = {};\r\n if (this.valueField) {\r\n objItem = this.utilityService.arrayToObject(results, this.valueField);\r\n } else {\r\n results.forEach(item => objItem[item?.toString()] = item);\r\n }\r\n Object.assign(this.#allItem, objItem);\r\n const values: (number | string)[] = this.formControl.value || [];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.ref.detectChanges();\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.searchTerm$.next('');\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString())\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if(isOpened) {\r\n this.ref.markForCheck();\r\n if(this.input) {\r\n this.input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/select.module';\r\nexport * from './lib/select.component';\r\nexport * from './lib/select-display-def.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
@@ -366,7 +366,7 @@ SdTabRouterOutletComponent.decorators = [
|
|
|
366
366
|
{ type: Component, args: [{
|
|
367
367
|
selector: 'sd-tab-router-outlet',
|
|
368
368
|
template: "<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n",
|
|
369
|
-
styles: [":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]
|
|
369
|
+
styles: [":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]
|
|
370
370
|
},] }
|
|
371
371
|
];
|
|
372
372
|
SdTabRouterOutletComponent.ctorParameters = () => [
|
|
@@ -31,8 +31,9 @@ interface SdGridMaterialColumnText<T = any> extends SdGridMaterialBaseColumn<T>
|
|
|
31
31
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
32
32
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
33
33
|
required?: boolean | ((rowData: T) => boolean);
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
minLength?: number;
|
|
35
|
+
maxLength?: number;
|
|
36
|
+
validator?: (rowData: T) => string;
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
39
|
interface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
@@ -44,8 +45,9 @@ interface SdGridMaterialColumnNumber<T = any> extends SdGridMaterialBaseColumn<T
|
|
|
44
45
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
45
46
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
46
47
|
required?: boolean | ((rowData: T) => boolean);
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
minValue?: number;
|
|
49
|
+
maxValue?: number;
|
|
50
|
+
validator?: (rowData: T) => string;
|
|
49
51
|
};
|
|
50
52
|
}
|
|
51
53
|
interface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
@@ -60,8 +62,6 @@ interface SdGridMaterialBool<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
|
60
62
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
61
63
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
62
64
|
required?: boolean | ((rowData: T) => boolean);
|
|
63
|
-
defaultValue?: boolean;
|
|
64
|
-
relatedColumns?: string[];
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
interface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
@@ -74,8 +74,6 @@ interface SdGridMaterialColumnDate<T = any> extends SdGridMaterialBaseColumn<T>
|
|
|
74
74
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
75
75
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
76
76
|
required?: boolean | ((rowData: T) => boolean);
|
|
77
|
-
defaultValue?: string;
|
|
78
|
-
relatedColumns?: string[];
|
|
79
77
|
};
|
|
80
78
|
}
|
|
81
79
|
interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
@@ -93,8 +91,6 @@ interface SdGridMaterialColumnValues<T = any> extends SdGridMaterialBaseColumn<T
|
|
|
93
91
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
94
92
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
95
93
|
required?: boolean | ((rowData: T) => boolean);
|
|
96
|
-
defaultValue?: string | number | boolean;
|
|
97
|
-
relatedColumns?: string[];
|
|
98
94
|
};
|
|
99
95
|
}
|
|
100
96
|
interface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T> {
|
|
@@ -108,7 +104,6 @@ interface SdGridMaterialColumnImage<T = any> extends SdGridMaterialBaseColumn<T>
|
|
|
108
104
|
hidden?: boolean | ((rowData: T) => boolean);
|
|
109
105
|
disabled?: boolean | ((rowData: T) => boolean);
|
|
110
106
|
required?: boolean | ((rowData: T) => boolean);
|
|
111
|
-
relatedColumns?: string[];
|
|
112
107
|
};
|
|
113
108
|
}
|
|
114
109
|
declare type SdGridMaterialNormalColumn<T> = Exclude<Exclude<SdGridMaterialColumn<T>, SdGridMaterialColumnChildren<T>>, SdGridMaterialColumnChildrenCol<T>>;
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdTabInfo":{"__symbolic":"interface"},"SdTab":{"__symbolic":"interface"},"SdTabBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTab"}]}]}},"SdTabActivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabDeactivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabEvent":{"__symbolic":"interface"},"SdTabAction":{"__symbolic":"interface"},"SdTabComponentBuilder":{"__symbolic":"interface"},"SdTabComponent":{"__symbolic":"function","parameters":["builder"],"value":{"__symbolic":"error","message":"Lambda not supported","line":14,"character":9,"module":"./src/lib/decorators/tab.decorator"}},"SdTabRouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":18,"character":37}]}]},"statics":{"ɵprov":{}}},"SdTabDecoratorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]},"statics":{"tabRouterService":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":7,"character":32},"arguments":[{"__symbolic":"reference","name":"undefined"}]},"ɵprov":{}}},"SdTabRouterItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"sd-tab-router-item","template":"<a [routerLink]=\"[tab.url]\" [queryParams]=\"tab.queryParams\" [state]=\"{ switchTab: true }\"\r\n class=\"tab-router__item d-flex align-items-center\" [ngClass]=\"{\r\n 'tab-router__item--active': tab.isActive\r\n }\">\r\n <ng-container *ngIf=\"tab | sdTabInfo | async as tabInfo\">\r\n <div class=\"\r\n tab-router__icon\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n mr-8\r\n \" [ngStyle]=\"{\r\n 'background-color': tabInfo.color\r\n }\" [matTooltip]=\"tabInfo.tooltip || tabInfo.name\" matTooltipPosition=\"below\" matTooltipShowDelay=\"1000\">\r\n {{ tabInfo.initialName || 'SD' }}\r\n </div>\r\n <div class=\"flex-1\">\r\n <div class=\"tab-router__name\">{{ tabInfo.name }}</div>\r\n </div>\r\n <button type=\"button\" class=\"\r\n tab-router__close\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n ml-4\r\n \" (click)=\"close($event)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n</a>","styles":[":host{flex:1 1 auto;max-width:240px;position:relative}:host:after{background:#dde0e5;bottom:0;content:\"\";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:1;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}"]}]}],"members":{"tab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]}},"SdTabRouterNavComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"sd-tab-router-nav","template":"<div\r\n #tabRouterNav\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n","styles":[".tab-router__nav{background:#f9f9f9}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["tabRouterNav"]}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":23,"character":3},"arguments":["window:resize",["$event"]]}]}]}},"SdTabRouterOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"sd-tab-router-outlet","template":"<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","styles":[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["tabRouterNav"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":52,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":53,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":55,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":56,"character":22},{"__symbolic":"reference","name":"SdTabDecoratorService"},{"__symbolic":"reference","name":"SdTabRouterService"},{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":59,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"},{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":18,"character":12},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":26},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":18,"character":40},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":18,"character":55}],"exports":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"}],"providers":[]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"sdTabInfo"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"SdTabInfo":"./src/lib/models/tab-router.model","SdTab":"./src/lib/models/tab-router.model","SdTabBase":"./src/lib/events/tab-router.event","SdTabActivated":"./src/lib/events/tab-router.event","SdTabDeactivated":"./src/lib/events/tab-router.event","SdTabEvent":"./src/lib/events/tab-router.event","SdTabAction":"./src/lib/actions/tab-router.action","SdTabComponentBuilder":"./src/lib/decorators/tab.decorator","SdTabComponent":"./src/lib/decorators/tab.decorator","SdTabRouterService":"./src/lib/services/tab-router.service","SdTabDecoratorService":"./src/lib/services/tab-decorator.service","SdTabRouterItemComponent":"./src/lib/components/tab-router-item/tab-router-item.component","SdTabRouterNavComponent":"./src/lib/components/tab-router-nav/tab-router-nav.component","SdTabRouterOutletComponent":"./src/lib/components/tab-router-outlet/tab-router-outlet.component","SdTabRouterModule":"./src/lib/tab-router.module","ɵa":"./src/lib/pipes/tab-info.pipe"},"importAs":"@sd-angular/core/tab-router"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdTabInfo":{"__symbolic":"interface"},"SdTab":{"__symbolic":"interface"},"SdTabBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTab"}]}]}},"SdTabActivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabDeactivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabEvent":{"__symbolic":"interface"},"SdTabAction":{"__symbolic":"interface"},"SdTabComponentBuilder":{"__symbolic":"interface"},"SdTabComponent":{"__symbolic":"function","parameters":["builder"],"value":{"__symbolic":"error","message":"Lambda not supported","line":14,"character":9,"module":"./src/lib/decorators/tab.decorator"}},"SdTabRouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":18,"character":37}]}]},"statics":{"ɵprov":{}}},"SdTabDecoratorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]},"statics":{"tabRouterService":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":7,"character":32},"arguments":[{"__symbolic":"reference","name":"undefined"}]},"ɵprov":{}}},"SdTabRouterItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"sd-tab-router-item","template":"<a [routerLink]=\"[tab.url]\" [queryParams]=\"tab.queryParams\" [state]=\"{ switchTab: true }\"\r\n class=\"tab-router__item d-flex align-items-center\" [ngClass]=\"{\r\n 'tab-router__item--active': tab.isActive\r\n }\">\r\n <ng-container *ngIf=\"tab | sdTabInfo | async as tabInfo\">\r\n <div class=\"\r\n tab-router__icon\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n mr-8\r\n \" [ngStyle]=\"{\r\n 'background-color': tabInfo.color\r\n }\" [matTooltip]=\"tabInfo.tooltip || tabInfo.name\" matTooltipPosition=\"below\" matTooltipShowDelay=\"1000\">\r\n {{ tabInfo.initialName || 'SD' }}\r\n </div>\r\n <div class=\"flex-1\">\r\n <div class=\"tab-router__name\">{{ tabInfo.name }}</div>\r\n </div>\r\n <button type=\"button\" class=\"\r\n tab-router__close\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n ml-4\r\n \" (click)=\"close($event)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n</a>","styles":[":host{flex:1 1 auto;max-width:240px;position:relative}:host:after{background:#dde0e5;bottom:0;content:\"\";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:1;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}"]}]}],"members":{"tab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]}},"SdTabRouterNavComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"sd-tab-router-nav","template":"<div\r\n #tabRouterNav\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n","styles":[".tab-router__nav{background:#f9f9f9}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["tabRouterNav"]}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":23,"character":3},"arguments":["window:resize",["$event"]]}]}]}},"SdTabRouterOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"sd-tab-router-outlet","template":"<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","styles":[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["tabRouterNav"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":52,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":53,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":55,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":56,"character":22},{"__symbolic":"reference","name":"SdTabDecoratorService"},{"__symbolic":"reference","name":"SdTabRouterService"},{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":59,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"},{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":18,"character":12},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":26},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":18,"character":40},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":18,"character":55}],"exports":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"}],"providers":[]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"sdTabInfo"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"SdTabInfo":"./src/lib/models/tab-router.model","SdTab":"./src/lib/models/tab-router.model","SdTabBase":"./src/lib/events/tab-router.event","SdTabActivated":"./src/lib/events/tab-router.event","SdTabDeactivated":"./src/lib/events/tab-router.event","SdTabEvent":"./src/lib/events/tab-router.event","SdTabAction":"./src/lib/actions/tab-router.action","SdTabComponentBuilder":"./src/lib/decorators/tab.decorator","SdTabComponent":"./src/lib/decorators/tab.decorator","SdTabRouterService":"./src/lib/services/tab-router.service","SdTabDecoratorService":"./src/lib/services/tab-decorator.service","SdTabRouterItemComponent":"./src/lib/components/tab-router-item/tab-router-item.component","SdTabRouterNavComponent":"./src/lib/components/tab-router-nav/tab-router-nav.component","SdTabRouterOutletComponent":"./src/lib/components/tab-router-outlet/tab-router-outlet.component","SdTabRouterModule":"./src/lib/tab-router.module","ɵa":"./src/lib/pipes/tab-info.pipe"},"importAs":"@sd-angular/core/tab-router"}
|