@sd-angular/core 0.0.1004 → 0.0.1008
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/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
- package/autocomplete/src/lib/autocomplete.component.d.ts +9 -5
- package/bundles/sd-angular-core-api.umd.js +29 -12
- package/bundles/sd-angular-core-api.umd.js.map +1 -1
- package/bundles/sd-angular-core-api.umd.min.js +1 -1
- package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +65 -42
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +2 -2
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-button.umd.js +29 -12
- package/bundles/sd-angular-core-button.umd.js.map +1 -1
- package/bundles/sd-angular-core-button.umd.min.js +1 -1
- package/bundles/sd-angular-core-button.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-cache.umd.js +29 -12
- package/bundles/sd-angular-core-cache.umd.js.map +1 -1
- package/bundles/sd-angular-core-cache.umd.min.js +2 -2
- package/bundles/sd-angular-core-cache.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-chart.umd.js +29 -12
- package/bundles/sd-angular-core-chart.umd.js.map +1 -1
- package/bundles/sd-angular-core-chart.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.js +29 -12
- package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
- package/bundles/sd-angular-core-checkbox.umd.min.js +1 -1
- package/bundles/sd-angular-core-checkbox.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.js +29 -12
- package/bundles/sd-angular-core-chip.umd.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.js +446 -0
- package/bundles/sd-angular-core-comment.umd.js.map +1 -0
- package/bundles/sd-angular-core-comment.umd.min.js +16 -0
- package/bundles/sd-angular-core-comment.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-common.umd.js +71 -16
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.min.js +3 -2
- package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-range.umd.js +29 -12
- package/bundles/sd-angular-core-date-range.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-range.umd.min.js +2 -2
- package/bundles/sd-angular-core-date-range.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.js +29 -12
- package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js +2 -2
- package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.js +29 -12
- package/bundles/sd-angular-core-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-excel.umd.js +29 -12
- package/bundles/sd-angular-core-excel.umd.js.map +1 -1
- package/bundles/sd-angular-core-excel.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.js +29 -12
- package/bundles/sd-angular-core-export.umd.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.min.js +1 -1
- package/bundles/sd-angular-core-export.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +31 -12
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid.umd.js +29 -12
- package/bundles/sd-angular-core-grid.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.js +29 -12
- package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.min.js +2 -2
- package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.js +29 -12
- package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-dropdown.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-upload-file.umd.js +29 -12
- package/bundles/sd-angular-core-input-upload-file.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-upload-file.umd.min.js +2 -2
- package/bundles/sd-angular-core-input-upload-file.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.js +54 -17
- package/bundles/sd-angular-core-input.umd.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.min.js +2 -2
- package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-konva.umd.js +29 -12
- package/bundles/sd-angular-core-konva.umd.js.map +1 -1
- package/bundles/sd-angular-core-konva.umd.min.js +1 -1
- package/bundles/sd-angular-core-konva.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.js +29 -12
- package/bundles/sd-angular-core-radio.umd.js.map +1 -1
- package/bundles/sd-angular-core-radio.umd.min.js +1 -1
- package/bundles/sd-angular-core-radio.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js +29 -12
- package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.min.js +2 -2
- package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +162 -135
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.js +29 -12
- package/bundles/sd-angular-core-setting.umd.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-side-drawer.umd.js +29 -12
- package/bundles/sd-angular-core-side-drawer.umd.js.map +1 -1
- package/bundles/sd-angular-core-side-drawer.umd.min.js +2 -2
- package/bundles/sd-angular-core-side-drawer.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.js +29 -12
- package/bundles/sd-angular-core-switch.umd.js.map +1 -1
- package/bundles/sd-angular-core-switch.umd.min.js +2 -2
- package/bundles/sd-angular-core-switch.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-tab-router.umd.js +29 -12
- package/bundles/sd-angular-core-tab-router.umd.js.map +1 -1
- package/bundles/sd-angular-core-tab-router.umd.min.js +2 -2
- package/bundles/sd-angular-core-tab-router.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.js +29 -12
- package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.min.js +2 -2
- package/bundles/sd-angular-core-textarea.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-time.umd.js +29 -12
- package/bundles/sd-angular-core-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-time.umd.min.js +2 -2
- package/bundles/sd-angular-core-time.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.js +29 -12
- package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.min.js +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-upload-file.umd.js +29 -12
- package/bundles/sd-angular-core-upload-file.umd.js.map +1 -1
- package/bundles/sd-angular-core-upload-file.umd.min.js +2 -2
- package/bundles/sd-angular-core-upload-file.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-utility.umd.js +29 -12
- package/bundles/sd-angular-core-utility.umd.js.map +1 -1
- package/bundles/sd-angular-core-utility.umd.min.js +1 -1
- package/bundles/sd-angular-core-utility.umd.min.js.map +1 -1
- package/bundles/sd-angular-core.umd.js +33 -16
- package/bundles/sd-angular-core.umd.js.map +1 -1
- package/bundles/sd-angular-core.umd.min.js +1 -1
- package/bundles/sd-angular-core.umd.min.js.map +1 -1
- package/comment/index.d.ts +1 -0
- package/comment/package.json +12 -0
- package/comment/sd-angular-core-comment.d.ts +4 -0
- package/comment/sd-angular-core-comment.metadata.json +1 -0
- package/comment/src/lib/comment.component.d.ts +17 -0
- package/comment/src/lib/comment.model.d.ts +21 -0
- package/comment/src/lib/comment.module.d.ts +2 -0
- package/comment/src/public-api.d.ts +3 -0
- package/common/sd-angular-core-common.metadata.json +1 -1
- package/common/src/lib/common.module.d.ts +2 -0
- package/common/src/lib/directives/view-def.directive.d.ts +5 -0
- package/common/src/public-api.d.ts +2 -0
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +35 -26
- package/esm2015/autocomplete/src/lib/autocomplete.module.js +6 -3
- package/esm2015/comment/index.js +2 -0
- package/esm2015/comment/sd-angular-core-comment.js +5 -0
- package/esm2015/comment/src/lib/comment.component.js +60 -0
- package/esm2015/comment/src/lib/comment.model.js +2 -0
- package/esm2015/comment/src/lib/comment.module.js +37 -0
- package/esm2015/comment/src/public-api.js +7 -0
- package/esm2015/common/src/lib/common.module.js +20 -0
- package/esm2015/common/src/lib/directives/view-def.directive.js +16 -0
- package/esm2015/common/src/public-api.js +3 -1
- package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +2 -1
- package/esm2015/grid-material/src/lib/pipes/selection-visible.pipe.js +2 -1
- package/esm2015/input/src/lib/input.component.js +23 -4
- package/esm2015/input/src/lib/input.module.js +6 -3
- package/esm2015/public-api.js +2 -1
- package/esm2015/select/src/lib/select.component.js +72 -72
- package/esm2015/select/src/lib/select.module.js +6 -3
- package/fesm2015/sd-angular-core-autocomplete.js +37 -27
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-comment.js +106 -0
- package/fesm2015/sd-angular-core-comment.js.map +1 -0
- package/fesm2015/sd-angular-core-common.js +35 -1
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +2 -0
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-input.js +26 -6
- package/fesm2015/sd-angular-core-input.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +75 -73
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core.js +1 -0
- package/fesm2015/sd-angular-core.js.map +1 -1
- package/input/sd-angular-core-input.metadata.json +1 -1
- package/input/src/lib/input.component.d.ts +5 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/{sd-angular-core-0.0.1004.tgz → sd-angular-core-0.0.1008.tgz} +0 -0
- package/select/sd-angular-core-select.metadata.json +1 -1
- package/select/src/lib/select.component.d.ts +11 -5
|
@@ -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 { combineLatest, Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, map, 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\nimport { SdFormControl } from '@sd-angular/core/common';\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 #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\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 SdFormControl();\r\n\r\n searchTerm$ = new Subject();\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 display: Observable<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 // } else {\r\n // this.formControl.setValue((value ?? '') + '');\r\n // }\r\n // this.ref.detectChanges();\r\n // this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value);\r\n } else {\r\n this.formControl.setValue(value);\r\n }\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 | 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 #allItems: Observable<any[]>;\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 #subscription = new Subscription();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.touchedChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#allItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n return await this.#loadItems(val, this.#items);\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue = this.formControl.value;\r\n const isArray = Array.isArray(formValue);\r\n const hasFields = !!this.valueField && !!this.displayField;\r\n return this.#items.filter(item => {\r\n const value = hasFields ? item[this.valueField] : item;\r\n const display = hasFields ? item[this.displayField] : item;\r\n if (changeAliasLowerCase(value).includes(searchText) || changeAliasLowerCase(display).includes(searchText)) {\r\n return true;\r\n }\r\n if (isArray) {\r\n return formValue.some(e => e === value)\r\n }\r\n return formValue === value;\r\n }).sort((a, b) => {\r\n if (!this.multiple) {\r\n return 0;\r\n }\r\n const value1 = hasFields ? a[this.valueField] : a;\r\n const value2 = hasFields ? b[this.valueField] : b;\r\n if (isArray) {\r\n const t1 = formValue.some(e => e === value1);\r\n const t2 = formValue.some(e => e === value2);\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n const t1 = formValue === value1;\r\n const t2 = formValue === value2;\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n })\r\n );\r\n this.filteredItems = this.#allItems.pipe(map(allItems => {\r\n this.#currentItems = allItems;\r\n return allItems.filter((item, index) => index < this.limit);\r\n }));\r\n\r\n this.display = combineLatest([this.#allItems, this.formControl.valueChanges.pipe(startWith(this.formControl.value))]).pipe(\r\n map(([items, formValue]) => {\r\n const isArray = Array.isArray(formValue);\r\n if (!this.valueField || !this.displayField) {\r\n return isArray ? formValue?.join(', ') : formValue;\r\n }\r\n return items.filter(e => isArray ? formValue.includes(e[this.valueField]) : formValue === e[this.valueField])\r\n .map(e => e[this.displayField]?.toString())\r\n .join(', ');\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 this.#subscription.unsubscribe();\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 #search = async (value: any | any[], items: (searchText?: string | string[]) => Promise<any[]>) => {\r\n const results = await items(value).catch(() => []);\r\n if (Array.isArray(value)) {\r\n return results.filter(e => !!e && (value.includes(e) || value.includes(e[this.valueField])));\r\n }\r\n return results.filter(e => !!e && (e === value || e[this.valueField] === value));\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 const objItem = this.valueField ? this.utilityService.arrayToObject(results, this.valueField) : results.forEach(item => objItem[item?.toString()] = item);\r\n Object.assign(this.#allItem, objItem);\r\n if (!this.formControl.value?.toString()) {\r\n return results;\r\n }\r\n const values = Array.isArray(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n values.map(val => val?.toString()).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 if (this.valueField && this.displayField) {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n } else {\r\n results.push(val);\r\n }\r\n }\r\n }\r\n });\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 this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n items: this.#currentItems?.filter(e => value.some(e1 => e1 === e?.[this.valueField]))\r\n });\r\n } else {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n item: this.#currentItems?.find(e => value === e?.[this.valueField])\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 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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"}
|
|
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 { combineLatest, Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, map, 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\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\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 #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\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 SdFormControl();\r\n\r\n searchTerm$ = new Subject<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 display: Observable<string>;\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.formControl.setValue(value);\r\n }\r\n // Items\r\n \r\n #items: any[] | SearchFunc = [];\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\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\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 #subscription = new Subscription();\r\n #selectedItems: Observable<any[]>;\r\n selectedItems: any[];\r\n #allItems: Observable<any[]>;\r\n filteredItems: Observable<any[]>;\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n allSelected = false;\r\n\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n \r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.touchedChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#allItems = combineLatest([\r\n this.searchTerm$.asObservable().pipe(startWith(''), debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0)),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))]).pipe(\r\n switchMap(async ([val, formValue]) => {\r\n if (typeof (this.#items) === 'function') {\r\n return await this.#loadItems(val, this.#items);\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n const searchText = changeAliasLowerCase(val);\r\n const isArray = Array.isArray(formValue);\r\n const hasFields = !!this.valueField && !!this.displayField;\r\n return this.#items.filter(item => {\r\n const value = hasFields ? item[this.valueField] : item;\r\n const display = hasFields ? item[this.displayField] : item;\r\n if (changeAliasLowerCase(value).includes(searchText) || changeAliasLowerCase(display).includes(searchText)) {\r\n return true;\r\n }\r\n if (isArray) {\r\n return formValue.some(e => e === value)\r\n }\r\n return formValue === value;\r\n }).sort((a, b) => {\r\n if (!this.multiple) {\r\n return 0;\r\n }\r\n const value1 = hasFields ? a[this.valueField] : a;\r\n const value2 = hasFields ? b[this.valueField] : b;\r\n if (isArray) {\r\n const t1 = formValue.some(e => e === value1);\r\n const t2 = formValue.some(e => e === value2);\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n const t1 = formValue === value1;\r\n const t2 = formValue === value2;\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }));\r\n this.#selectedItems = this.#allItems.pipe(map(items => {\r\n const formValue = this.formControl.value;\r\n if (!formValue?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(formValue) ? formValue : [formValue];\r\n this.selectedItems = values.map(val => {\r\n if (this.valueField) {\r\n return items?.find(item => item[this.valueField] === val);\r\n }\r\n return val;\r\n });\r\n return this.selectedItems;\r\n }));\r\n this.filteredItems = this.#allItems.pipe(map(allItems => allItems.filter((item, index) => index < this.limit)));\r\n this.display = this.#selectedItems.pipe(map(selectedItems => selectedItems?.map(item => this.displayField ? item[this.displayField] : item)?.join(', ')));\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 this.#subscription.unsubscribe();\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 #loadSelectedItems = async (value: string | string[], items: SearchFunc) => {\r\n if (!value?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(value) ? value : [value];\r\n if (!this.valueField && !this.displayField) {\r\n return values;\r\n }\r\n this.loading = true;\r\n if (values.some(val => this.#allItem[val] === undefined)) {\r\n const results = await items(value, true).finally(() => this.loading = false);\r\n const objItem = this.valueField ? this.utilityService.arrayToObject(results, this.valueField) : results.forEach(item => objItem[item?.toString()] = item);\r\n this.#allItem = {\r\n ...values.map(val => ({ [val]: { [this.valueField]: val, [this.displayField]: val } })),\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n }\r\n return values.map(val => this.#allItem[val]);\r\n }\r\n\r\n #loadItems = async (searchText: string, items: SearchFunc) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n const objItem = this.valueField ? this.utilityService.arrayToObject(results, this.valueField) : results.forEach(item => objItem[item?.toString()] = item);\r\n this.#allItem = {\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n const selectedItems = await this.#loadSelectedItems(this.formControl.value, items);\r\n return [...selectedItems, ...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 this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n items: this.selectedItems\r\n });\r\n } else {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n item: this.selectedItems[0]\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 onClick = () => {\r\n if(this.sdView?.templateRef) {\r\n if(!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.select?.focus();\r\n this.select?.open();\r\n }, 100);\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.isFocused = true;\r\n if (this.#input) {\r\n this.#input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n } else {\r\n this.isFocused = false;\r\n }\r\n }\r\n}\r\n\r\nexport type SearchFunc = (searchText?: string | string[], isFormValue?: boolean) => Promise<any[]>;","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\nimport { SdCommonModule } from '@sd-angular/core/common';\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 SdCommonModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective,\r\n SdCommonModule\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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"}
|
|
@@ -59,6 +59,7 @@ import '@sd-angular/core/input';
|
|
|
59
59
|
import '@sd-angular/core/select';
|
|
60
60
|
import '@sd-angular/core/quick-action';
|
|
61
61
|
import '@sd-angular/core/image-preview';
|
|
62
|
+
import '@sd-angular/core/comment';
|
|
62
63
|
export { SdApiModule, SdApiService } from '@sd-angular/core/api';
|
|
63
64
|
export * from '@sd-angular/core/loading';
|
|
64
65
|
export * from '@sd-angular/core/notify';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/public-api.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport '@sd-angular/core/typing';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport '@sd-angular/core/typing';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.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","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport { SdCoreModule } from './lib/core.module';\r\nexport { MaterialModule } from './lib/material.module';\r\nexport * from './lib/material.module';\r\nexport * from './lib/controls/ckeditor-control/ckeditor-control.component';\r\nexport * from './lib/controls/date-picker-control/date-picker-control.component';\r\n\r\nexport * from './lib/pipes/sd-date.pipe';\r\nexport * from './lib/validators/chip-min-item.validator';\r\nexport * from './lib/validators/custom.validator';\r\nexport * from './lib/validators/max-date.validator';\r\nexport * from './lib/validators/min-date.validator';\r\n\r\nimport '@sd-angular/core/common';\r\nimport '@sd-angular/core/label';\r\nimport '@sd-angular/core/input-upload-file';\r\nimport '@sd-angular/core/chip';\r\nimport '@sd-angular/core/textarea';\r\nimport '@sd-angular/core/checkbox';\r\nimport '@sd-angular/core/time';\r\nimport '@sd-angular/core/side-drawer';\r\nimport '@sd-angular/core/tab-router';\r\nimport '@sd-angular/core/excel';\r\nimport '@sd-angular/core/input';\r\nimport '@sd-angular/core/select';\r\nimport '@sd-angular/core/quick-action';\r\nimport '@sd-angular/core/image-preview';\r\nexport { SdApiModule, SdApiService } from '@sd-angular/core/api';\r\n// export * from '@sd-angular/core/excel';\r\nexport * from '@sd-angular/core/loading';\r\nexport * from '@sd-angular/core/notify';\r\nexport * from '@sd-angular/core/setting';\r\nexport * from '@sd-angular/core/translate';\r\nexport * from '@sd-angular/core/utility';\r\nexport * from '@sd-angular/core/dynamic-report';\r\nexport * from '@sd-angular/core/chart';\r\nexport * from '@sd-angular/core/upload-file';\r\nexport * from '@sd-angular/core/date-range';\r\nexport * from '@sd-angular/core/date-time';\r\nexport * from '@sd-angular/core/button';\r\nexport * from '@sd-angular/core/konva';\r\nexport * from '@sd-angular/core/autocomplete';\r\nexport { SdGridMaterial, SdGridMaterialOption } from '@sd-angular/core/grid-material';\r\n// export * from '@sd-angular/core/input';\r\n// export * from '@sd-angular/core/select';\r\nexport * from '@sd-angular/core/select-editor';\r\nexport * from '@sd-angular/core/editor';\r\nexport * from '@sd-angular/core/modal';\r\nexport * from '@sd-angular/core/grid';\r\nexport * from '@sd-angular/core/upload-excel';\r\nexport * from '@sd-angular/core/switch';\r\nexport * from '@sd-angular/core/radio';\r\nexport * from '@sd-angular/core/form';\r\nexport * from '@sd-angular/core/service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/public-api.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport '@sd-angular/core/typing';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport '@sd-angular/core/typing';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.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","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport { SdCoreModule } from './lib/core.module';\r\nexport { MaterialModule } from './lib/material.module';\r\nexport * from './lib/material.module';\r\nexport * from './lib/controls/ckeditor-control/ckeditor-control.component';\r\nexport * from './lib/controls/date-picker-control/date-picker-control.component';\r\n\r\nexport * from './lib/pipes/sd-date.pipe';\r\nexport * from './lib/validators/chip-min-item.validator';\r\nexport * from './lib/validators/custom.validator';\r\nexport * from './lib/validators/max-date.validator';\r\nexport * from './lib/validators/min-date.validator';\r\n\r\nimport '@sd-angular/core/common';\r\nimport '@sd-angular/core/label';\r\nimport '@sd-angular/core/input-upload-file';\r\nimport '@sd-angular/core/chip';\r\nimport '@sd-angular/core/textarea';\r\nimport '@sd-angular/core/checkbox';\r\nimport '@sd-angular/core/time';\r\nimport '@sd-angular/core/side-drawer';\r\nimport '@sd-angular/core/tab-router';\r\nimport '@sd-angular/core/excel';\r\nimport '@sd-angular/core/input';\r\nimport '@sd-angular/core/select';\r\nimport '@sd-angular/core/quick-action';\r\nimport '@sd-angular/core/image-preview';\r\nimport '@sd-angular/core/comment';\r\nexport { SdApiModule, SdApiService } from '@sd-angular/core/api';\r\n// export * from '@sd-angular/core/excel';\r\nexport * from '@sd-angular/core/loading';\r\nexport * from '@sd-angular/core/notify';\r\nexport * from '@sd-angular/core/setting';\r\nexport * from '@sd-angular/core/translate';\r\nexport * from '@sd-angular/core/utility';\r\nexport * from '@sd-angular/core/dynamic-report';\r\nexport * from '@sd-angular/core/chart';\r\nexport * from '@sd-angular/core/upload-file';\r\nexport * from '@sd-angular/core/date-range';\r\nexport * from '@sd-angular/core/date-time';\r\nexport * from '@sd-angular/core/button';\r\nexport * from '@sd-angular/core/konva';\r\nexport * from '@sd-angular/core/autocomplete';\r\nexport { SdGridMaterial, SdGridMaterialOption } from '@sd-angular/core/grid-material';\r\n// export * from '@sd-angular/core/input';\r\n// export * from '@sd-angular/core/select';\r\nexport * from '@sd-angular/core/select-editor';\r\nexport * from '@sd-angular/core/editor';\r\nexport * from '@sd-angular/core/modal';\r\nexport * from '@sd-angular/core/grid';\r\nexport * from '@sd-angular/core/upload-excel';\r\nexport * from '@sd-angular/core/switch';\r\nexport * from '@sd-angular/core/radio';\r\nexport * from '@sd-angular/core/form';\r\nexport * from '@sd-angular/core/service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdInputModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":21,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":22,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdInput"},{"__symbolic":"reference","name":"SdInputTooltipPipe"},{"__symbolic":"reference","name":"SdInputSuffixDirective"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"SdInput"},{"__symbolic":"reference","name":"SdInputTooltipPipe"},{"__symbolic":"reference","name":"SdInputSuffixDirective"}]}]}],"members":{}},"SdInputTooltipPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":1,"character":1},"arguments":[{"name":"sdInputTooltipPipe"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"SdInputSuffixDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdInputSuffix]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"SdInput":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"sd-input","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":27,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\">\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput [placeholder]=\"placeholder || label\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [required]=\"isRequired\" [readonly]=\"isReadonly\" [autocomplete]=\"id\"\r\n autocorrect=\"off\">\r\n <span class=\"mr-1\" *ngIf=\"maxlength\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required && !disableErrorMessage\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.maxlength && !disableErrorMessage\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.pattern && !disableErrorMessage\">\r\n {{'Pattern error' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{formControl.errors?.customValidator}}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <div *ngIf=\"tooltip\" class=\"sd-tooltip\">\r\n <mat-icon (click)=\"sdTooltip.toggle()\" [matTooltip]=\"formControl.value | sdInputTooltipPipe:tooltip\" matSuffix\r\n #sdTooltip=\"matTooltip\">info</mat-icon>\r\n </div>\r\n</div>","styles":[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3},"arguments":["disableErrorMessage"]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"pMinlength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3},"arguments":["minlength"]}]}],"pMaxlength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3},"arguments":["maxlength"]}]}],"pattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"_hideIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3},"arguments":["hideIcon"]}]}],"sdClickIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":115,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":116,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3}}]}],"sdFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":118,"character":3}}]}],"sdFocusForceBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":3}}]}],"keyupEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":3}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":122,"character":3},"arguments":["control"]}]}],"sdInputSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":123,"character":3},"arguments":[{"__symbolic":"reference","name":"SdInputSuffixDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":126,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[touch]"}]}],"members":{"touch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"ref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}}},"origins":{"SdInputModule":"./src/lib/input.module","SdInputTooltipPipe":"./src/lib/input-tooltip.pipe","SdInputSuffixDirective":"./src/lib/directives/input-suffix.directive","SdInput":"./src/lib/input.component","ɵa":"./src/lib/directives/touch.directive"},"importAs":"@sd-angular/core/input"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdInputModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":22,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":24,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdInput"},{"__symbolic":"reference","name":"SdInputTooltipPipe"},{"__symbolic":"reference","name":"SdInputSuffixDirective"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"SdInput"},{"__symbolic":"reference","name":"SdInputTooltipPipe"},{"__symbolic":"reference","name":"SdInputSuffixDirective"},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":36,"character":4}]}]}],"members":{}},"SdInputTooltipPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":1,"character":1},"arguments":[{"name":"sdInputTooltipPipe"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"SdInputSuffixDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdInputSuffix]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"SdInput":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"sd-input","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":28,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\"\r\n [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput [placeholder]=\"placeholder || label\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [required]=\"isRequired\"\r\n [readonly]=\"isReadonly\" [autocomplete]=\"id\" autocorrect=\"off\">\r\n <span class=\"mr-1\" *ngIf=\"maxlength\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required && !disableErrorMessage\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.maxlength && !disableErrorMessage\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.pattern && !disableErrorMessage\">\r\n {{'Pattern error' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator && !disableErrorMessage\">\r\n <strong>{{formControl.errors?.customValidator}}</strong>\r\n </mat-error>\r\n </mat-form-field>\r\n <div *ngIf=\"tooltip\" class=\"sd-tooltip\">\r\n <mat-icon (click)=\"sdTooltip.toggle()\" [matTooltip]=\"formControl.value | sdInputTooltipPipe:tooltip\" matSuffix\r\n #sdTooltip=\"matTooltip\">info</mat-icon>\r\n </div>\r\n </ng-template>\r\n</div>","styles":[":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}"]}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3},"arguments":["disableErrorMessage"]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"pMinlength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3},"arguments":["minlength"]}]}],"pMaxlength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3},"arguments":["maxlength"]}]}],"pattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3}}]}],"_hideIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":112,"character":3},"arguments":["hideIcon"]}]}],"sdClickIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":118,"character":3}}]}],"sdFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":3}}]}],"sdFocusForceBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":3}}]}],"keyupEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":121,"character":3}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":123,"character":3},"arguments":["control"]}]}],"sdInputSuffix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":124,"character":3},"arguments":[{"__symbolic":"reference","name":"SdInputSuffixDirective"}]}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":127,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":127,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":129,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[touch]"}]}],"members":{"touch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"ref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}}},"origins":{"SdInputModule":"./src/lib/input.module","SdInputTooltipPipe":"./src/lib/input-tooltip.pipe","SdInputSuffixDirective":"./src/lib/directives/input-suffix.directive","SdInput":"./src/lib/input.component","ɵa":"./src/lib/directives/touch.directive"},"importAs":"@sd-angular/core/input"}
|
|
@@ -2,6 +2,7 @@ import { EventEmitter, ChangeDetectorRef, OnDestroy, AfterViewInit, ElementRef,
|
|
|
2
2
|
import { NgForm, FormGroup } from '@angular/forms';
|
|
3
3
|
import { SdInputSuffixDirective } from './directives/input-suffix.directive';
|
|
4
4
|
import { SdFormControl } from '@sd-angular/core/common';
|
|
5
|
+
import { SdViewDefDirective } from '@sd-angular/core/common';
|
|
5
6
|
export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
|
|
6
7
|
#private;
|
|
7
8
|
ref: ChangeDetectorRef;
|
|
@@ -39,6 +40,8 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
|
|
|
39
40
|
control: ElementRef;
|
|
40
41
|
sdInputSuffix: SdInputSuffixDirective;
|
|
41
42
|
formControl: SdFormControl;
|
|
43
|
+
sdView: SdViewDefDirective;
|
|
44
|
+
isFocused: boolean;
|
|
42
45
|
constructor(ref: ChangeDetectorRef);
|
|
43
46
|
ngOnInit(): void;
|
|
44
47
|
ngAfterViewInit(): void;
|
|
@@ -48,5 +51,7 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
|
|
|
48
51
|
onClickIcon: (event: Event) => void;
|
|
49
52
|
onFocus: () => void;
|
|
50
53
|
onBlur: () => void;
|
|
54
|
+
onClick: () => void;
|
|
51
55
|
blur: () => void;
|
|
56
|
+
focus: () => void;
|
|
52
57
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import '@sd-angular/core/input';
|
|
|
22
22
|
import '@sd-angular/core/select';
|
|
23
23
|
import '@sd-angular/core/quick-action';
|
|
24
24
|
import '@sd-angular/core/image-preview';
|
|
25
|
+
import '@sd-angular/core/comment';
|
|
25
26
|
export { SdApiModule, SdApiService } from '@sd-angular/core/api';
|
|
26
27
|
export * from '@sd-angular/core/loading';
|
|
27
28
|
export * from '@sd-angular/core/notify';
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdSelectModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":26,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":27,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdSelect"},{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"}],"exports":[{"__symbolic":"reference","name":"SdSelect"},{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"}],"providers":[]}]}],"members":{}},"SdSelect":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"sd-select","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":14,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\">\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-select #select [formControl]=\"formControl\" placeholder=\"{{placeholder || label}}\" multiple\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && (multiple ? formControl?.value?.length : formControl?.value)}\"\r\n [required]=\"isRequired\" (openedChange)=\"onOpenChange($event)\" *ngIf=\"multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"multiple && selectAll\">\r\n <mat-checkbox class=\"mat-option\" [(ngModel)]=\"allSelected\" [ngModelOptions]=\"{standalone: true}\"\r\n (change)=\"onSelectAll()\">\r\n Tất cả</mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item[valueField]\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item[displayField]\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-select #select [formControl]=\"formControl\" placeholder=\"{{placeholder || label}}\"\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && formControl?.value}\" [required]=\"isRequired\"\r\n (openedChange)=\"onOpenChange($event)\" *ngIf=\"!multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item[valueField]\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item[displayField]\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-icon\r\n *ngIf=\"(multiple ? formControl?.value?.length : formControl?.value) && !isRequired && !formControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required && !disableErrorMessage\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.customValidator && !disableErrorMessage\">\r\n {{formControl?.errors?.customValidator}}\r\n </mat-error>\r\n </mat-form-field>\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:none}:host ::ng-deep .sd-selected .mat-select-arrow{border:none}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field mat-select.mat-select-disabled .mat-select-value{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}::ng-deep .sd-select-panel .mat-option.sd-filtered-input{background-color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline{width:100%}::ng-deep .sd-select-panel .mat-option.sd-filtered-input mat-pseudo-checkbox{display:none}::ng-deep .mat-select-panel .mat-option.sd-filtered-input{height:auto}::ng-deep .sd-select-panel .mat-option.sd-filtered-input input{color:#000}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field-prefix .mat-icon{margin-right:0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper{padding:10px 0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper .mat-form-field-outline{background-color:rgba(0,0,0,.04)}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/input","name":"MatInput","line":18,"character":13}]}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":["select"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["disableErrorMessage"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"valueField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3}}]}],"_multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3},"arguments":["multiple"]}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":3}}]}],"_filtered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3},"arguments":["filtered"]}]}],"selectDisplayDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":123,"character":3},"arguments":[{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"}]}]}],"_selectAll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3},"arguments":["selectAll"]}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":131,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":132,"character":3}}]}],"sdSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":133,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":136,"character":17},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityService","line":137,"character":28}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onSelectAll":[{"__symbolic":"method"}]}},"SdSelectDisplayDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdSelectDisplayDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}}},"origins":{"SdSelectModule":"./src/lib/select.module","SdSelect":"./src/lib/select.component","SdSelectDisplayDefDirective":"./src/lib/select-display-def.directive"},"importAs":"@sd-angular/core/select"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdSelectModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":27,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":28,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":29,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdSelect"},{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"}],"exports":[{"__symbolic":"reference","name":"SdSelect"},{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":38,"character":4}],"providers":[]}]}],"members":{}},"SdSelect":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"sd-select","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":14,"character":19},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container\r\n *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value, selectedItems: selectedItems }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-select #select [formControl]=\"formControl\" placeholder=\"{{placeholder || label}}\" multiple\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && (multiple ? formControl?.value?.length : formControl?.value)}\"\r\n [required]=\"isRequired\" (openedChange)=\"onOpenChange($event)\" *ngIf=\"multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"multiple && selectAll\">\r\n <mat-checkbox class=\"mat-option\" [(ngModel)]=\"allSelected\" [ngModelOptions]=\"{standalone: true}\"\r\n (change)=\"onSelectAll()\">\r\n Tất cả</mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item[valueField]\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item[displayField]\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-select #select [formControl]=\"formControl\" placeholder=\"{{placeholder || label}}\"\r\n (selectionChange)=\"onSelectionChange($event)\" disableOptionCentering=\"true\" panelClass=\"sd-select-panel\"\r\n [ngClass]=\"{'sd-selected': !isRequired && formControl?.value}\" [required]=\"isRequired\"\r\n (openedChange)=\"onOpenChange($event)\" *ngIf=\"!multiple\">\r\n <mat-select-trigger>\r\n {{display | async }}\r\n </mat-select-trigger>\r\n <mat-option *ngIf=\"filtered\" class=\"sd-filtered-input\" (keyup.Space)=\"$event.stopPropagation()\" disabled=\"true\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-icon matPrefix>search</mat-icon>\r\n <input #input placeholder=\"{{'Search' | sdTranslate}}\" matInput autocomplete=\"off\"\r\n (keydown)=\"$event.stopPropagation()\" (keyup)=\"searchTerm$.next($event.target.value)\">\r\n </mat-form-field>\r\n </mat-option>\r\n <ng-container *ngIf=\"valueField && displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item[valueField]\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item[displayField]\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item[displayField] }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"!valueField && !displayField\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\" matTooltipPosition=\"above\"\r\n [matTooltip]=\"item\">\r\n <ng-container *ngIf=\"selectDisplayDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"selectDisplayDef.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!selectDisplayDef?.templateRef\">\r\n {{ item }}\r\n </ng-container>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-icon\r\n *ngIf=\"(multiple ? formControl?.value?.length : formControl?.value) && !isRequired && !formControl.disabled\"\r\n class=\"pointer sd-suffix-icon\" (click)=\"clear($event)\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required && !disableErrorMessage\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.customValidator && !disableErrorMessage\">\r\n {{formControl?.errors?.customValidator}}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>","styles":[":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:none}:host ::ng-deep .sd-selected .mat-select-arrow{border:none}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field mat-select.mat-select-disabled .mat-select-value{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input{background-color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline{width:100%}::ng-deep .sd-select-panel .mat-option.sd-filtered-input mat-pseudo-checkbox{display:none}::ng-deep .mat-select-panel .mat-option.sd-filtered-input{height:auto}::ng-deep .sd-select-panel .mat-option.sd-filtered-input input{color:#000}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field-prefix .mat-icon{margin-right:0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper{padding:10px 0}::ng-deep .sd-select-panel .mat-option.sd-filtered-input .mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper .mat-form-field-outline{background-color:rgba(0,0,0,.04)}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/input","name":"MatInput","line":18,"character":13}]}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":["select"]}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"_disableErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["disableErrorMessage"]}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"valueField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":3}}]}],"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":3}}]}],"_multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3},"arguments":["multiple"]}]}],"limit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":3}}]}],"_filtered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3},"arguments":["filtered"]}]}],"selectDisplayDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":108,"character":3},"arguments":[{"__symbolic":"reference","name":"SdSelectDisplayDefDirective"}]}]}],"_selectAll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3},"arguments":["selectAll"]}]}],"modelChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3}}]}],"sdChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":115,"character":3}}]}],"sdSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3}}]}],"sdView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":127,"character":3},"arguments":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdViewDefDirective","line":127,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":131,"character":17},{"__symbolic":"reference","module":"@sd-angular/core/utility","name":"SdUtilityService","line":132,"character":28}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onSelectAll":[{"__symbolic":"method"}]}},"SearchFunc":{"__symbolic":"interface"},"SdSelectDisplayDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdSelectDisplayDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}}},"origins":{"SdSelectModule":"./src/lib/select.module","SdSelect":"./src/lib/select.component","SearchFunc":"./src/lib/select.component","SdSelectDisplayDefDirective":"./src/lib/select-display-def.directive"},"importAs":"@sd-angular/core/select"}
|
|
@@ -5,7 +5,7 @@ import { Observable, Subject } from 'rxjs';
|
|
|
5
5
|
import { SdUtilityService } from '@sd-angular/core/utility';
|
|
6
6
|
import { MatInput } from '@angular/material/input';
|
|
7
7
|
import { SdSelectDisplayDefDirective } from './select-display-def.directive';
|
|
8
|
-
import { SdFormControl } from '@sd-angular/core/common';
|
|
8
|
+
import { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';
|
|
9
9
|
export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
|
|
10
10
|
#private;
|
|
11
11
|
private ref;
|
|
@@ -16,14 +16,14 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
|
|
|
16
16
|
disableErrorMessage: boolean;
|
|
17
17
|
set _disableErrorMessage(val: boolean | '');
|
|
18
18
|
formControl: SdFormControl;
|
|
19
|
-
searchTerm$: Subject<
|
|
19
|
+
searchTerm$: Subject<string>;
|
|
20
20
|
size: 'sm' | 'lg';
|
|
21
21
|
set form(val: NgForm | FormGroup);
|
|
22
22
|
label: string;
|
|
23
23
|
placeholder: string;
|
|
24
24
|
display: Observable<string>;
|
|
25
25
|
set model(value: undefined | boolean | number | string | (number | string)[]);
|
|
26
|
-
set items(items: undefined | any[] |
|
|
26
|
+
set items(items: undefined | any[] | SearchFunc);
|
|
27
27
|
valueField: string;
|
|
28
28
|
displayField: string;
|
|
29
29
|
loading: boolean;
|
|
@@ -39,8 +39,6 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
|
|
|
39
39
|
selectDisplayDef: SdSelectDisplayDefDirective;
|
|
40
40
|
selectAll: boolean;
|
|
41
41
|
set _selectAll(val: boolean | '');
|
|
42
|
-
filteredItems: Observable<any[]>;
|
|
43
|
-
allSelected: boolean;
|
|
44
42
|
modelChange: EventEmitter<any>;
|
|
45
43
|
sdChange: EventEmitter<any>;
|
|
46
44
|
sdSelection: EventEmitter<{
|
|
@@ -48,6 +46,11 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
|
|
|
48
46
|
item?: any;
|
|
49
47
|
items?: any[];
|
|
50
48
|
}>;
|
|
49
|
+
selectedItems: any[];
|
|
50
|
+
filteredItems: Observable<any[]>;
|
|
51
|
+
allSelected: boolean;
|
|
52
|
+
sdView: SdViewDefDirective;
|
|
53
|
+
isFocused: boolean;
|
|
51
54
|
constructor(ref: ChangeDetectorRef, utilityService: SdUtilityService);
|
|
52
55
|
ngOnInit(): void;
|
|
53
56
|
ngAfterViewInit(): void;
|
|
@@ -56,5 +59,8 @@ export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
|
|
|
56
59
|
onSelectAll(): void;
|
|
57
60
|
reValidate: () => void;
|
|
58
61
|
clear: ($event?: any) => void;
|
|
62
|
+
onClick: () => void;
|
|
63
|
+
focus: () => void;
|
|
59
64
|
onOpenChange: (isOpened: boolean) => void;
|
|
60
65
|
}
|
|
66
|
+
export declare type SearchFunc = (searchText?: string | string[], isFormValue?: boolean) => Promise<any[]>;
|