@sd-angular/core 1.2.11 → 1.2.14
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/assets/fonts/roboto.scss +11 -8
- package/bundles/sd-angular-core-cache.umd.js +2 -0
- 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-confirm.umd.js +159 -0
- package/bundles/sd-angular-core-confirm.umd.js.map +1 -0
- package/bundles/sd-angular-core-confirm.umd.min.js +2 -0
- package/bundles/sd-angular-core-confirm.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-filter.umd.js.map +1 -1
- package/bundles/sd-angular-core-filter.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-notify.umd.js +6 -45
- package/bundles/sd-angular-core-notify.umd.js.map +1 -1
- package/bundles/sd-angular-core-notify.umd.min.js +2 -2
- package/bundles/sd-angular-core-notify.umd.min.js.map +1 -1
- package/bundles/sd-angular-core.umd.js +4 -4
- package/bundles/sd-angular-core.umd.min.js +1 -1
- package/bundles/sd-angular-core.umd.min.js.map +1 -1
- package/confirm/index.d.ts +1 -0
- package/confirm/package.json +12 -0
- package/confirm/sd-angular-core-confirm.d.ts +4 -0
- package/confirm/sd-angular-core-confirm.metadata.json +1 -0
- package/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +34 -0
- package/confirm/src/lib/confirm.module.d.ts +2 -0
- package/confirm/src/lib/confirm.service.d.ts +29 -0
- package/confirm/src/public-api.d.ts +3 -0
- package/esm2015/cache/src/lib/cache.service.js +3 -1
- package/esm2015/confirm/index.js +2 -0
- package/esm2015/confirm/sd-angular-core-confirm.js +5 -0
- package/esm2015/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.js +34 -0
- package/esm2015/confirm/src/lib/confirm.module.js +34 -0
- package/esm2015/confirm/src/lib/confirm.service.js +82 -0
- package/esm2015/confirm/src/public-api.js +7 -0
- package/esm2015/filter/src/lib/filter.component.js +1 -1
- package/esm2015/notify/src/lib/components/dialog-confirm/dialog-confirm.component.js +3 -7
- package/esm2015/notify/src/lib/notify.module.js +1 -3
- package/esm2015/notify/src/lib/notify.service.js +1 -34
- package/esm2015/public-api.js +2 -1
- package/fesm2015/sd-angular-core-cache.js +2 -0
- package/fesm2015/sd-angular-core-cache.js.map +1 -1
- package/fesm2015/sd-angular-core-confirm.js +154 -0
- package/fesm2015/sd-angular-core-confirm.js.map +1 -0
- package/fesm2015/sd-angular-core-filter.js.map +1 -1
- package/fesm2015/sd-angular-core-notify.js +2 -41
- package/fesm2015/sd-angular-core-notify.js.map +1 -1
- package/fesm2015/sd-angular-core.js +1 -0
- package/fesm2015/sd-angular-core.js.map +1 -1
- package/filter/sd-angular-core-filter.metadata.json +1 -1
- package/notify/sd-angular-core-notify.metadata.json +1 -1
- package/notify/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +0 -7
- package/notify/src/lib/notify.service.d.ts +0 -10
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/{sd-angular-core-1.2.11.tgz → sd-angular-core-1.2.14.tgz} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-filter.js","sources":["../../../../projects/sd-core/filter/src/lib/directives/sd-filter-def.directive.ts","../../../../projects/sd-core/filter/src/lib/filter.service.ts","../../../../projects/sd-core/filter/src/lib/filter.component.ts","../../../../projects/sd-core/filter/src/lib/pipes/values-local.pipe.ts","../../../../projects/sd-core/filter/src/lib/pipes/values-server.pipe.ts","../../../../projects/sd-core/filter/src/lib/filter.module.ts","../../../../projects/sd-core/filter/src/public-api.ts","../../../../projects/sd-core/filter/sd-angular-core-filter.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdFilterDef]'\r\n})\r\nexport class SdFilterDefDirective {\r\n @Input() sdFilterDef: string;\r\n defaultShowing: boolean;\r\n @Input('defaultShowing') set _defaultShowing(val: boolean | '') {\r\n this.defaultShowing = (val === '') || val;\r\n }\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdFilterInformation } from './filter.model';\r\n\r\n@Injectable()\r\nexport class SdFilterService {\r\n #prefix = '61d22e8e-eee8-4aad-8e1c-044a532fea91';\r\n constructor(private settingService: SdSettingService) {\r\n }\r\n get = async (key: string): Promise<SdFilterInformation> => {\r\n if (!key) {\r\n return {\r\n selectedQuickFilter: null,\r\n quickFilters: [],\r\n filter: {}\r\n }\r\n }\r\n const { get } = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n const configuration = await get();\r\n return {\r\n selectedQuickFilter: configuration?.selectedQuickFilter ?? null,\r\n quickFilters: configuration?.quickFilters || [],\r\n filter: configuration?.filter || {}\r\n };\r\n }\r\n\r\n set = async (key: string, configuration: SdFilterInformation): Promise<SdFilterInformation> => {\r\n configuration = {\r\n selectedQuickFilter: configuration?.selectedQuickFilter ?? null,\r\n quickFilters: configuration?.quickFilters || [],\r\n filter: configuration?.filter || {}\r\n };\r\n if (!key) {\r\n return configuration;\r\n }\r\n const { set } = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n key = hash({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n await set(configuration);\r\n return configuration;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnDestroy, ContentChildren, QueryList } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\nimport * as uuid from 'uuid';\r\nimport * as hash from 'object-hash';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdFilterDefDirective } from './directives/sd-filter-def.directive';\r\nimport { Filter, SdFilterInformation, FilterObject, SdFilterOption, SdQuickFilter } from './filter.model';\r\nimport { SdFilterService } from './filter.service';\r\nimport { SdSetting, SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Component({\r\n selector: 'sd-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class SdFilter implements AfterViewInit, OnDestroy {\r\n #prefix = '61d22e8e-eee8-4aad-8e1c-044a532fea91';\r\n setting: SdSetting<SdFilterInformation>;\r\n filterOption: SdFilterOption;\r\n @Input('option') set _filterOption(option: SdFilterOption) {\r\n console.log(option);\r\n if (option) {\r\n this.filterOption = option;\r\n this.#filterOptionChanges.next(option);\r\n }\r\n }\r\n #filterOptionChanges = new BehaviorSubject<SdFilterOption>(null);\r\n #subscription = new Subscription();\r\n @ContentChildren(SdFilterDefDirective) sdFilterDefs = new QueryList<SdFilterDefDirective>();\r\n isMobileOrTablet = false;\r\n filterChanges = new BehaviorSubject<FilterObject>({});\r\n filterInformation: Observable<SdFilterInformation>;\r\n information: SdFilterInformation;\r\n constructor(\r\n private deviceService: DeviceDetectorService,\r\n private settingService: SdSettingService,\r\n private filterService: SdFilterService) {\r\n this.isMobileOrTablet = !this.deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n // if (!this.#key) {\r\n // this.setting = this.settingService.create<SdFilterInformation>(uuid.v4(), {\r\n // type: 'session',\r\n // default: {\r\n // filter: {},\r\n // visible: {},\r\n // quickFilters: [],\r\n // selectedQuickFilter: null\r\n // }\r\n // });\r\n // } else {\r\n // this.setting = this.settingService.create<SdFilterInformation>(this.#key, {\r\n // default: {\r\n // filter: {},\r\n // visible: {},\r\n // quickFilters: [],\r\n // selectedQuickFilter: null\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.#subscription.add(this.#filterOptionChanges.pipe(startWith(this.filterOption)).subscribe((filterOption) => {\r\n console.log(filterOption);\r\n if (!filterOption) {\r\n return;\r\n }\r\n const defaultInformation: SdFilterInformation = {\r\n filter: {},\r\n visible: {},\r\n quickFilters: filterOption?.quickFilter?.defaults || [],\r\n selectedQuickFilter: filterOption?.quickFilter?.selectedDefault\r\n };\r\n if (!filterOption.key) {\r\n this.setting = this.settingService.create<SdFilterInformation>(uuid.v4(), {\r\n type: 'session',\r\n default: defaultInformation\r\n });\r\n } else {\r\n this.setting = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key: filterOption.key\r\n }, {\r\n default: defaultInformation\r\n });\r\n }\r\n this.information = this.setting.get();\r\n console.log(this.information);\r\n this.#subscription.add(this.setting.observer.subscribe(filterInformation => {\r\n this.information = filterInformation;\r\n this.#format(filterOption?.filters, this.information);\r\n }));\r\n }));\r\n }\r\n\r\n onFilter = (filter?: Filter) => {\r\n this.filterChanges.next({\r\n filter: { ...this.information.filter },\r\n filterDef: { ...this.information.filterDef },\r\n });\r\n this.setting.set(this.information);\r\n }\r\n\r\n onClear = () => {\r\n this.information.filter = {};\r\n this.information.filterDef = {};\r\n this.onFilter();\r\n }\r\n\r\n #format = (filters: Filter[], information: SdFilterInformation) => {\r\n for (const filter of filters) {\r\n if (filter.type === 'daterange') {\r\n information.filter[filter.field] = {\r\n from: information.filter[filter.field]?.from ?? undefined,\r\n to: information.filter[filter.field]?.to ?? undefined\r\n };\r\n } else {\r\n information.filter[filter.field] = information.filter[filter.field] ?? undefined;\r\n }\r\n }\r\n }\r\n\r\n #firstLoad = (filters: Filter[], information: SdFilterInformation) => {\r\n if (information.selectedQuickFilter && information.quickFilters.some(e => e.code === information.selectedQuickFilter)) {\r\n const selected = information.quickFilters.find(e => e.code === information.selectedQuickFilter);\r\n information.filter = { ...selected.filter };\r\n information.filterDef = { ...selected.filterDef };\r\n this.#format(filters, information);\r\n } else {\r\n for (const filter of filters) {\r\n if (filter.type === 'daterange') {\r\n information.filter[filter.field] = {\r\n from: information.filter[filter.field]?.from ?? filter.default?.from ?? undefined,\r\n to: information.filter[filter.field]?.to ?? filter.default?.to ?? undefined\r\n };\r\n } else {\r\n information.filter[filter.field] = information.filter[filter.field] ?? filter.default ?? undefined;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n setFilter = (args: {\r\n filter: any,\r\n filterDef: any\r\n }) => {\r\n const { filter, filterDef } = args;\r\n this.information = {\r\n ...this.information,\r\n filter: { ...filter },\r\n filterDef: { ...filterDef }\r\n };\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ValuesLocalFilter } from '../filter.model';\r\n\r\n@Pipe({\r\n name: 'sdValuesLocal'\r\n})\r\nexport class SdValuesLocalPipe implements PipeTransform {\r\n transform = async (filterValues: ValuesLocalFilter): Promise<any[]> => {\r\n if(typeof(filterValues?.option?.items) === 'function') {\r\n return await filterValues?.option?.items();\r\n }\r\n return filterValues?.option?.items || [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ValuesLocalFilter, ValuesServerFilter } from '../filter.model';\r\n\r\n@Pipe({\r\n name: 'sdValuesServer'\r\n})\r\nexport class SdValuesServerPipe implements PipeTransform {\r\n transform = (filterValues: ValuesServerFilter): any[] | ((searchText: string | string[], isFormValue?: boolean) => Promise<any[]>) => {\r\n if(typeof(filterValues?.option?.items) === 'function') {\r\n return filterValues?.option?.items;\r\n }\r\n return filterValues?.option?.items || [];\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdFilterDefDirective } from './directives/sd-filter-def.directive';\r\nimport { SdFilter } from './filter.component';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdValuesLocalPipe } from './pipes/values-local.pipe';\r\nimport { SdValuesServerPipe } from './pipes/values-server.pipe';\r\nimport { SdFilterService } from './filter.service';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n SdTranslateModule,\r\n SdCommonModule,\r\n SdFormModule\r\n ],\r\n declarations: [\r\n SdFilter,\r\n SdFilterDefDirective,\r\n SdValuesLocalPipe,\r\n SdValuesServerPipe\r\n ],\r\n providers: [\r\n SdFilterService\r\n ],\r\n exports: [\r\n SdCommonModule,\r\n SdFilterDefDirective,\r\n SdFilter\r\n ]\r\n})\r\nexport class SdFilterModule { }\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/filter.module';\r\nexport * from './lib/directives/sd-filter-def.directive';\r\nexport * from './lib/filter.model';\r\nexport * from './lib/filter.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdFilterService as ɵa} from './src/lib/filter.service';\nexport {SdValuesLocalPipe as ɵb} from './src/lib/pipes/values-local.pipe';\nexport {SdValuesServerPipe as ɵc} from './src/lib/pipes/values-server.pipe';"],"names":["_prefix","uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-filter.js","sources":["../../../../projects/sd-core/filter/src/lib/directives/sd-filter-def.directive.ts","../../../../projects/sd-core/filter/src/lib/filter.service.ts","../../../../projects/sd-core/filter/src/lib/filter.component.ts","../../../../projects/sd-core/filter/src/lib/pipes/values-local.pipe.ts","../../../../projects/sd-core/filter/src/lib/pipes/values-server.pipe.ts","../../../../projects/sd-core/filter/src/lib/filter.module.ts","../../../../projects/sd-core/filter/src/public-api.ts","../../../../projects/sd-core/filter/sd-angular-core-filter.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdFilterDef]'\r\n})\r\nexport class SdFilterDefDirective {\r\n @Input() sdFilterDef: string;\r\n defaultShowing: boolean;\r\n @Input('defaultShowing') set _defaultShowing(val: boolean | '') {\r\n this.defaultShowing = (val === '') || val;\r\n }\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdSettingService } from '@sd-angular/core/setting';\r\nimport { SdFilterInformation } from './filter.model';\r\n\r\n@Injectable()\r\nexport class SdFilterService {\r\n #prefix = '61d22e8e-eee8-4aad-8e1c-044a532fea91';\r\n constructor(private settingService: SdSettingService) {\r\n }\r\n get = async (key: string): Promise<SdFilterInformation> => {\r\n if (!key) {\r\n return {\r\n selectedQuickFilter: null,\r\n quickFilters: [],\r\n filter: {}\r\n }\r\n }\r\n const { get } = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n const configuration = await get();\r\n return {\r\n selectedQuickFilter: configuration?.selectedQuickFilter ?? null,\r\n quickFilters: configuration?.quickFilters || [],\r\n filter: configuration?.filter || {}\r\n };\r\n }\r\n\r\n set = async (key: string, configuration: SdFilterInformation): Promise<SdFilterInformation> => {\r\n configuration = {\r\n selectedQuickFilter: configuration?.selectedQuickFilter ?? null,\r\n quickFilters: configuration?.quickFilters || [],\r\n filter: configuration?.filter || {}\r\n };\r\n if (!key) {\r\n return configuration;\r\n }\r\n const { set } = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n key = hash({\r\n prefix: this.#prefix,\r\n key\r\n });\r\n await set(configuration);\r\n return configuration;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewChild, AfterViewInit, OnDestroy, ContentChildren, QueryList } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\nimport * as uuid from 'uuid';\r\nimport * as hash from 'object-hash';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SdFilterDefDirective } from './directives/sd-filter-def.directive';\r\nimport { Filter, SdFilterInformation, FilterObject, SdFilterOption, SdQuickFilter } from './filter.model';\r\nimport { SdFilterService } from './filter.service';\r\nimport { SdSetting, SdSettingService } from '@sd-angular/core/setting';\r\n\r\n@Component({\r\n selector: 'sd-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class SdFilter implements AfterViewInit, OnDestroy {\r\n #prefix = '61d22e8e-eee8-4aad-8e1c-044a532fea91';\r\n setting: SdSetting<SdFilterInformation>;\r\n filterOption: SdFilterOption;\r\n @Input('option') set _filterOption(option: SdFilterOption) {\r\n console.log(option);\r\n if (option) {\r\n this.filterOption = option;\r\n this.#filterOptionChanges.next(option);\r\n }\r\n }\r\n #filterOptionChanges = new BehaviorSubject<SdFilterOption>(null);\r\n #subscription = new Subscription();\r\n @ContentChildren(SdFilterDefDirective) sdFilterDefs = new QueryList<SdFilterDefDirective>();\r\n isMobileOrTablet = false;\r\n filterChanges = new BehaviorSubject<FilterObject>({});\r\n filterInformation: Observable<SdFilterInformation>;\r\n information: SdFilterInformation;\r\n constructor(\r\n private deviceService: DeviceDetectorService,\r\n private settingService: SdSettingService,\r\n private filterService: SdFilterService) {\r\n this.isMobileOrTablet = !this.deviceService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n // if (!this.#key) {\r\n // this.setting = this.settingService.create<SdFilterInformation>(uuid.v4(), {\r\n // type: 'session',\r\n // default: {\r\n // filter: {},\r\n // visible: {},\r\n // quickFilters: [],\r\n // selectedQuickFilter: null\r\n // }\r\n // });\r\n // } else {\r\n // this.setting = this.settingService.create<SdFilterInformation>(this.#key, {\r\n // default: {\r\n // filter: {},\r\n // visible: {},\r\n // quickFilters: [],\r\n // selectedQuickFilter: null\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.#subscription.add(this.#filterOptionChanges.pipe(startWith(this.filterOption)).subscribe((filterOption) => {\r\n console.log(filterOption);\r\n if (!filterOption) {\r\n return;\r\n }\r\n const defaultInformation: SdFilterInformation = {\r\n filter: {},\r\n visible: {},\r\n quickFilters: filterOption?.quickFilter?.defaults || [],\r\n selectedQuickFilter: filterOption?.quickFilter?.selectedDefault\r\n };\r\n if (!filterOption.key) {\r\n this.setting = this.settingService.create<SdFilterInformation>(uuid.v4(), {\r\n type: 'session',\r\n default: defaultInformation\r\n });\r\n } else {\r\n this.setting = this.settingService.create<SdFilterInformation>({\r\n prefix: this.#prefix,\r\n key: filterOption.key\r\n }, {\r\n default: defaultInformation\r\n });\r\n }\r\n this.information = this.setting.get();\r\n console.log(this.information);\r\n this.#subscription.add(this.setting.observer.subscribe(filterInformation => {\r\n this.information = filterInformation;\r\n this.#format(filterOption?.filters, this.information);\r\n }));\r\n }));\r\n }\r\n\r\n onFilter = (filter?: Filter) => {\r\n this.filterChanges.next({\r\n filter: { ...this.information.filter },\r\n filterDef: { ...this.information.filterDef },\r\n });\r\n this.setting.set(this.information);\r\n }\r\n\r\n onClear = () => {\r\n this.information.filter = {};\r\n this.information.filterDef = {};\r\n this.onFilter();\r\n }\r\n\r\n #format = (filters: Filter[], information: SdFilterInformation) => {\r\n for (const filter of filters) {\r\n if (filter.type === 'daterange') {\r\n information.filter[filter.field] = {\r\n from: information.filter[filter.field]?.from ?? undefined,\r\n to: information.filter[filter.field]?.to ?? undefined\r\n };\r\n } else {\r\n information.filter[filter.field] = information.filter[filter.field] ?? undefined;\r\n }\r\n }\r\n }\r\n\r\n #firstLoad = (filters: Filter[], information: SdFilterInformation) => {\r\n if (information.selectedQuickFilter && information.quickFilters.some(e => e.code === information.selectedQuickFilter)) {\r\n const selected = information.quickFilters.find(e => e.code === information.selectedQuickFilter);\r\n information.filter = { ...selected.filter };\r\n information.filterDef = { ...selected.filterDef };\r\n this.#format(filters, information);\r\n } else {\r\n for (const filter of filters) {\r\n if (filter.type === 'daterange') {\r\n information.filter[filter.field] = {\r\n from: information.filter[filter.field]?.from ?? filter.default?.from ?? undefined,\r\n to: information.filter[filter.field]?.to ?? filter.default?.to ?? undefined\r\n };\r\n } else {\r\n information.filter[filter.field] = information.filter[filter.field] ?? filter.default ?? undefined;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n setFilter = (args: {\r\n filter: any,\r\n filterDef: any\r\n }) => {\r\n const { filter, filterDef } = args;\r\n this.information = {\r\n ...this.information,\r\n filter: { ...filter },\r\n filterDef: { ...filterDef }\r\n };\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ValuesLocalFilter } from '../filter.model';\r\n\r\n@Pipe({\r\n name: 'sdValuesLocal'\r\n})\r\nexport class SdValuesLocalPipe implements PipeTransform {\r\n transform = async (filterValues: ValuesLocalFilter): Promise<any[]> => {\r\n if(typeof(filterValues?.option?.items) === 'function') {\r\n return await filterValues?.option?.items();\r\n }\r\n return filterValues?.option?.items || [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ValuesLocalFilter, ValuesServerFilter } from '../filter.model';\r\n\r\n@Pipe({\r\n name: 'sdValuesServer'\r\n})\r\nexport class SdValuesServerPipe implements PipeTransform {\r\n transform = (filterValues: ValuesServerFilter): any[] | ((searchText: string | string[], isFormValue?: boolean) => Promise<any[]>) => {\r\n if(typeof(filterValues?.option?.items) === 'function') {\r\n return filterValues?.option?.items;\r\n }\r\n return filterValues?.option?.items || [];\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { SdCommonModule } from '@sd-angular/core/common';\r\nimport { SdFilterDefDirective } from './directives/sd-filter-def.directive';\r\nimport { SdFilter } from './filter.component';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\nimport { SdValuesLocalPipe } from './pipes/values-local.pipe';\r\nimport { SdValuesServerPipe } from './pipes/values-server.pipe';\r\nimport { SdFilterService } from './filter.service';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n SdTranslateModule,\r\n SdCommonModule,\r\n SdFormModule\r\n ],\r\n declarations: [\r\n SdFilter,\r\n SdFilterDefDirective,\r\n SdValuesLocalPipe,\r\n SdValuesServerPipe\r\n ],\r\n providers: [\r\n SdFilterService\r\n ],\r\n exports: [\r\n SdCommonModule,\r\n SdFilterDefDirective,\r\n SdFilter\r\n ]\r\n})\r\nexport class SdFilterModule { }\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/filter.module';\r\nexport * from './lib/directives/sd-filter-def.directive';\r\nexport * from './lib/filter.model';\r\nexport * from './lib/filter.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SdFilterService as ɵa} from './src/lib/filter.service';\nexport {SdValuesLocalPipe as ɵb} from './src/lib/pipes/values-local.pipe';\nexport {SdValuesServerPipe as ɵc} from './src/lib/pipes/values-server.pipe';"],"names":["_prefix","uuid.v4"],"mappings":"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"}
|
|
@@ -14,11 +14,10 @@ import { v4 } from 'uuid';
|
|
|
14
14
|
import { SdTranslateService } from '@sd-angular/core/translate';
|
|
15
15
|
import { take, takeUntil } from 'rxjs/operators';
|
|
16
16
|
import { timer } from 'rxjs';
|
|
17
|
-
import { SdDateTimeModule } from '@sd-angular/core/date-time';
|
|
18
17
|
|
|
19
18
|
class DialogConfirmComponent {
|
|
20
19
|
constructor(dialogRef, data) {
|
|
21
|
-
var _a, _b, _c, _d
|
|
20
|
+
var _a, _b, _c, _d;
|
|
22
21
|
this.dialogRef = dialogRef;
|
|
23
22
|
this.data = data;
|
|
24
23
|
this.required = false;
|
|
@@ -29,16 +28,12 @@ class DialogConfirmComponent {
|
|
|
29
28
|
this.value = (_c = (_b = data === null || data === void 0 ? void 0 : data.input) === null || _b === void 0 ? void 0 : _b.defaultValue) !== null && _c !== void 0 ? _c : '';
|
|
30
29
|
this.required = ((_d = data === null || data === void 0 ? void 0 : data.input) === null || _d === void 0 ? void 0 : _d.required) || false;
|
|
31
30
|
}
|
|
32
|
-
if (data === null || data === void 0 ? void 0 : data.date) {
|
|
33
|
-
this.value = (_f = (_e = data === null || data === void 0 ? void 0 : data.date) === null || _e === void 0 ? void 0 : _e.defaultValue) !== null && _f !== void 0 ? _f : '';
|
|
34
|
-
this.required = ((_g = data === null || data === void 0 ? void 0 : data.date) === null || _g === void 0 ? void 0 : _g.required) || false;
|
|
35
|
-
}
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
33
|
DialogConfirmComponent.decorators = [
|
|
39
34
|
{ type: Component, args: [{
|
|
40
35
|
selector: 'sd-dialog-confirm',
|
|
41
|
-
template: "<h1 mat-dialog-title class=\"\">\r\n <mat-icon *ngIf=\"data?.icon\" [ngClass]=\"data?.icon\">\r\n {{ data?.icon }}\r\n </mat-icon>\r\n <span [innerHtml]=\"data?.title || 'Confirm'\"></span>\r\n</h1>\r\n<div mat-dialog-content>\r\n <div *ngIf=\"isString\" [innerHtml]=\"data?.message\"></div>\r\n <div *ngIf=\"!isString\" [innerHtml]=\"data?.message | json\"></div>\r\n <div *ngIf=\"data?.input\">\r\n <mat-form-field appearance=\"outline\">\r\n <textarea style=\"width: 100%\" matInput [placeholder]=\"data.input?.placeholder\" [(ngModel)]=\"value\"\r\n autocomplete=\"off\" rows=\"5\" [maxlength]=\"data.input?.maxlength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n
|
|
36
|
+
template: "<h1 mat-dialog-title class=\"\">\r\n <mat-icon *ngIf=\"data?.icon\" [ngClass]=\"data?.icon\">\r\n {{ data?.icon }}\r\n </mat-icon>\r\n <span [innerHtml]=\"data?.title || 'Confirm'\"></span>\r\n</h1>\r\n<div mat-dialog-content>\r\n <div *ngIf=\"isString\" [innerHtml]=\"data?.message\"></div>\r\n <div *ngIf=\"!isString\" [innerHtml]=\"data?.message | json\"></div>\r\n <div *ngIf=\"data?.input\">\r\n <mat-form-field appearance=\"outline\">\r\n <textarea style=\"width: 100%\" matInput [placeholder]=\"data.input?.placeholder\" [(ngModel)]=\"value\"\r\n autocomplete=\"off\" rows=\"5\" [maxlength]=\"data.input?.maxlength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions align=\"end\">\r\n <sd-button *ngIf=\"data?.noTitle\" [color]=\"data?.noButtonColor || 'secondary'\" [mat-dialog-close]=\"'CANCEL'\"\r\n [title]=\"data?.noTitle\" size=\"sm\"></sd-button>\r\n <sd-button class=\"ml-12\" *ngIf=\"data?.yesTitle\" [mat-dialog-close]=\"value || 'ACCEPT'\"\r\n [color]=\"data?.yesButtonColor || 'primary'\" [disabled]=\"required && !value\" cdkFocusInitial\r\n [title]=\"data?.yesTitle\" size=\"sm\"></sd-button>\r\n</div>",
|
|
42
37
|
styles: [":host .mat-dialog-content{margin:0 -16px 16px!important}:host .mat-button{background-color:#f5f5f5}:host>>>.mat-dialog-title{align-items:center;display:flex;justify-content:flex-start}:host>>>.mat-dialog-title .mat-icon{margin-right:5px}:host{display:block;padding:12px 16px}:host>>>.mat-dialog-title .mat-icon.info{color:#2962ff}:host>>>.mat-dialog-title .mat-icon.warning{color:#ffc107}:host>>>.mat-dialog-title .mat-icon.done{color:#4caf50}:host>>>.mat-dialog-title .mat-icon.error{color:#d32f2f}"]
|
|
43
38
|
},] }
|
|
44
39
|
];
|
|
@@ -350,39 +345,6 @@ class SdNotifyService {
|
|
|
350
345
|
});
|
|
351
346
|
});
|
|
352
347
|
};
|
|
353
|
-
this.confirmWithDate = (title, option = {}) => {
|
|
354
|
-
const dialogRef = this.dialog.open(DialogConfirmComponent, {
|
|
355
|
-
width: '400px',
|
|
356
|
-
data: {
|
|
357
|
-
title: title || this.translate('Confirm'),
|
|
358
|
-
message: option === null || option === void 0 ? void 0 : option.message,
|
|
359
|
-
yesTitle: (option === null || option === void 0 ? void 0 : option.yesTitle) || this.translate('Yes'),
|
|
360
|
-
noTitle: (option === null || option === void 0 ? void 0 : option.noTitle) || this.translate('No'),
|
|
361
|
-
noButtonColor: (option === null || option === void 0 ? void 0 : option.noButtonColor) || 'secondary',
|
|
362
|
-
yesButtonColor: (option === null || option === void 0 ? void 0 : option.yesButtonColor) || 'primary',
|
|
363
|
-
date: {
|
|
364
|
-
placeholder: option === null || option === void 0 ? void 0 : option.placeholder,
|
|
365
|
-
required: option === null || option === void 0 ? void 0 : option.required,
|
|
366
|
-
defaultValue: (option === null || option === void 0 ? void 0 : option.defaultValue) || '',
|
|
367
|
-
},
|
|
368
|
-
},
|
|
369
|
-
});
|
|
370
|
-
return new Promise((resolve, reject) => {
|
|
371
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
372
|
-
if (result) {
|
|
373
|
-
if (result === 'ACCEPT') {
|
|
374
|
-
resolve(result);
|
|
375
|
-
}
|
|
376
|
-
else if (result === 'CANCEL') {
|
|
377
|
-
reject(result);
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
resolve(result);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
|
-
};
|
|
386
348
|
this.translate = (value) => {
|
|
387
349
|
return this.translateService.translate(value);
|
|
388
350
|
};
|
|
@@ -407,7 +369,6 @@ SdNotifyModule.decorators = [
|
|
|
407
369
|
FormsModule,
|
|
408
370
|
MatFormFieldModule,
|
|
409
371
|
MatInputModule,
|
|
410
|
-
SdDateTimeModule,
|
|
411
372
|
MatIconModule,
|
|
412
373
|
MatButtonModule,
|
|
413
374
|
MatDialogModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-notify.js","sources":["../../../../projects/sd-core/notify/src/lib/components/dialog-confirm/dialog-confirm.component.ts","../../../../projects/sd-core/notify/src/lib/notify.service.ts","../../../../projects/sd-core/notify/src/lib/notify.module.ts","../../../../projects/sd-core/notify/src/public-api.ts","../../../../projects/sd-core/notify/sd-angular-core-notify.ts"],"sourcesContent":["import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\nimport * as uuid from 'uuid';\r\n\r\nexport interface DialogData {\r\n icon?: string;\r\n title?: string;\r\n message?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n input?: {\r\n placeholder?: string;\r\n minlength?: number;\r\n maxlength?: number;\r\n required?: boolean;\r\n defaultValue?: string;\r\n };\r\n date?: {\r\n required?: boolean;\r\n placeholder?: string;\r\n defaultValue?: string | Date;\r\n min?: string | Date;\r\n max?: string | Date;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'sd-dialog-confirm',\r\n templateUrl: 'dialog-confirm.component.html',\r\n styleUrls: ['./dialog-confirm.component.css'],\r\n})\r\nexport class DialogConfirmComponent {\r\n value: any;\r\n required = false;\r\n isString = false;\r\n id = `I${uuid.v4()}`\r\n constructor(\r\n public dialogRef: MatDialogRef<DialogConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n this.isString = typeof this.data?.message === 'string';\r\n if (data?.input) {\r\n this.value = data?.input?.defaultValue ?? '';\r\n this.required = data?.input?.required || false;\r\n }\r\n if (data?.date) {\r\n this.value = data?.date?.defaultValue ?? '';\r\n this.required = data?.date?.required || false;\r\n }\r\n }\r\n}\r\n","import '@sd-angular/core/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DialogConfirmComponent } from './components/dialog-confirm/dialog-confirm.component';\r\nimport { ActiveToast, ToastrService } from 'ngx-toastr';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { debounceTime, take, takeUntil } from 'rxjs/operators';\r\nimport { Subject, timer } from 'rxjs';\r\nimport * as uuid from 'uuid';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\n\r\n@Injectable()\r\nexport class SdNotifyService {\r\n #delayDuration = 500; // Các error/warning message sẽ tự động gộp sau khoảng thời gian trên\r\n #warningKey = uuid.v4();\r\n #errorKey = uuid.v4();\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n data?: {\r\n title: string,\r\n messages: string[]\r\n }\r\n }\r\n } = {};\r\n constructor(\r\n private dialog: MatDialog,\r\n private toastr: ToastrService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n alert = {\r\n info: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'info',\r\n title: title || this.translate('Notice'),\r\n message: message || 'Done!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n success: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'done',\r\n title: title || this.translate('Success'),\r\n message: message || 'Done!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n warning: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'warning',\r\n title: title || this.translate('Warning'),\r\n message: message || 'Something went wrong!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n error: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'error',\r\n title: title || this.translate('Error'),\r\n message: message || 'Something went wrong!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n };\r\n\r\n notify = {\r\n success: (message?: string, delay?: number, title?: string) => {\r\n // tslint:disable-next-line: max-line-length\r\n // const style = `border-radius: 5px; margin: 0; padding: 12px; z-index: 99999; top: 5px; right: 5px; display: none; position: fixed;color: #4F8A10; background-color: #DFF2BF`;\r\n // tslint:disable-next-line: max-line-length\r\n // const html = `<div id='${this.notifyId}' style='${style}'><i class='fa fa-check'></i> ${message || this.translate('Success')}</div>`;\r\n // this.showNotify(html, delay);\r\n const content = message || this.translate('Success');\r\n this.toastr.success(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n },\r\n warning: (message?: string | string[], delay?: number, title?: string) => {\r\n if (!this.#cache[this.#warningKey] || Date.addMiliseconds(this.#cache[this.#warningKey].createdDate, this.#delayDuration) < new Date()) {\r\n this.#cache[this.#warningKey] = {\r\n createdDate: new Date(),\r\n data: {\r\n title: title,\r\n messages: [],\r\n }\r\n };\r\n timer(this.#delayDuration).pipe(take(1)).subscribe(() => {\r\n const messages = this.#cache[this.#warningKey].data.messages.union(null);\r\n if (messages.length === 1) {\r\n this.#notifyWarning({\r\n title: this.#cache[this.#warningKey].data.title,\r\n message: messages[0],\r\n delay\r\n });\r\n } else {\r\n this.#notifyWarning({\r\n title: this.#cache[this.#warningKey].data.title,\r\n message: messages,\r\n delay\r\n });\r\n }\r\n });\r\n }\r\n if (Array.isArray(message)) {\r\n this.#cache[this.#warningKey].data.messages = [...this.#cache[this.#warningKey].data.messages, ...message];\r\n } else {\r\n this.#cache[this.#warningKey].data.messages.push(message);\r\n }\r\n },\r\n error: (message?: string | string[], delay?: number, title?: string) => {\r\n if (!this.#cache[this.#errorKey] || Date.addMiliseconds(this.#cache[this.#errorKey].createdDate, this.#delayDuration) < new Date()) {\r\n this.#cache[this.#errorKey] = {\r\n createdDate: new Date(),\r\n data: {\r\n title,\r\n messages: [],\r\n }\r\n };\r\n timer(this.#delayDuration).pipe(take(1)).subscribe(() => {\r\n const messages = this.#cache[this.#errorKey].data.messages.union(null);\r\n if (messages.length === 1) {\r\n this.#notifyError({\r\n title: this.#cache[this.#errorKey].data.title,\r\n message: messages[0],\r\n delay\r\n });\r\n } else {\r\n this.#notifyError({\r\n title: this.#cache[this.#errorKey].data.title,\r\n message: messages,\r\n delay\r\n });\r\n }\r\n });\r\n }\r\n if (Array.isArray(message)) {\r\n this.#cache[this.#errorKey].data.messages = [...this.#cache[this.#errorKey].data.messages, ...message];\r\n } else {\r\n this.#cache[this.#errorKey].data.messages.push(message);\r\n }\r\n },\r\n };\r\n\r\n #notifyWarning = (args: {\r\n message?: string | string[],\r\n delay?: number,\r\n title?: string\r\n }) => {\r\n const { message, delay, title } = args;\r\n if (Array.isArray(message)) {\r\n this.#buildToastMultiMesssage('warning', message, delay, title);\r\n }\r\n else {\r\n const content = message || this.translate('Warning');\r\n this.toastr.warning(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n }\r\n }\r\n\r\n #notifyError = (args: {\r\n message?: string | string[],\r\n delay?: number,\r\n title?: string\r\n }) => {\r\n const { message, delay, title } = args;\r\n if (Array.isArray(message)) {\r\n this.#buildToastMultiMesssage('error', message, delay, title);\r\n }\r\n else {\r\n const content = message || this.translate('Error');\r\n this.toastr.error(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n }\r\n }\r\n\r\n #buildToastMultiMesssage = (type: 'warning' | 'error', messages: string[], delay?: number, title?: string) => {\r\n /** số lượng item hiển thị mặc định */\r\n const showNum = 2;\r\n const id = `sd-notify-ckb-${uuid.v4()}`;\r\n const messageLength = messages.length;\r\n const messageRests = messages.splice(showNum);\r\n const messageContainer = `<ul class='sd-notify__list'>{0}{1}</ul>`;\r\n const messageTemp = `<li class='sd-notify__item'>- {0}</li>`;\r\n let contentRest = '';\r\n if (messageRests?.length) {\r\n contentRest = `<input id='${id}' class='cdk-visually-hidden sd-notify__checkbox' type='checkbox' />\r\n <label class='sd-notify__text sd-notify__text--show' for='${id}'>${this.translate('Show more')}</label>\r\n <div class='sd-notify__item--rest'>\r\n ${messageRests.map(m => String.format(messageTemp, m)).join('')}\r\n </div>\r\n <label class='sd-notify__text sd-notify__text--less' for='${id}'>${this.translate('Show less')}</label>`;\r\n }\r\n const content = String.format(messageContainer, messages.map(m => String.format(messageTemp, m)).join(''), contentRest);\r\n let toast: ActiveToast<any>;\r\n // khi truyền message html sẽ bị sanitize nên phải truyền innerHTML khi toast hiện lên\r\n // @see https://github.com/scttcper/ngx-toastr/blob/v12.1.0/src/lib/toastr/toastr.service.ts#L271\r\n switch (type) {\r\n case 'error':\r\n toast = this.toastr.error(content, `${title || this.translate('Error')} (${messageLength})`, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n messageClass: `toast-message toast-message-${id}`,\r\n closeButton: true,\r\n tapToDismiss: false\r\n });\r\n break;\r\n case 'warning':\r\n toast = this.toastr.warning(content, `${title || this.translate('Warning')} (${messageLength})`, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n messageClass: `toast-message toast-message-${id}`,\r\n closeButton: true,\r\n tapToDismiss: false\r\n });\r\n break;\r\n }\r\n\r\n if (toast) {\r\n toast.onShown\r\n .pipe(\r\n takeUntil(toast.onHidden)\r\n )\r\n .subscribe(() => {\r\n const messageEle: HTMLDivElement = document.querySelector(`.toast-message-${id}`);\r\n messageEle.innerHTML = content;\r\n })\r\n }\r\n }\r\n\r\n handle = {\r\n error: (err: any) => {\r\n if (typeof err === 'string') {\r\n this.notify.warning(err);\r\n } else if (typeof err === 'object') {\r\n let message =\r\n err?.error ||\r\n err?.message ||\r\n err?.ExceptionMessage ||\r\n err?.Message ||\r\n 'Unknown error';\r\n if (typeof err.json === 'function') {\r\n err = err.json();\r\n if (err) {\r\n message =\r\n err?.error ||\r\n err?.message ||\r\n err?.ExceptionMessage ||\r\n err?.Message ||\r\n 'Unknown error';\r\n }\r\n }\r\n this.notify.warning(message);\r\n } else {\r\n this.notify.warning('Unknown error');\r\n }\r\n },\r\n };\r\n\r\n confirm = (\r\n message: string,\r\n option: {\r\n title?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n } = {}\r\n ) => {\r\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n title: option?.title || this.translate('Confirm'),\r\n message,\r\n yesTitle: option?.yesTitle || this.translate('Yes'),\r\n noTitle: option?.noTitle || this.translate('No'),\r\n noButtonColor: option?.noButtonColor || 'secondary',\r\n yesButtonColor: option?.yesButtonColor || 'primary',\r\n },\r\n });\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result === 'ACCEPT') {\r\n resolve(null);\r\n } else if (result === 'CANCEL') {\r\n reject(result);\r\n } else {\r\n resolve(null);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n confirmDelete = () => this.confirm(this.translate('Delete record(s)'));\r\n\r\n confirmApprove = () => this.confirm(this.translate('Approve record(s)'));\r\n\r\n confirmWithInput = (\r\n title: string,\r\n option: {\r\n message?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n required?: boolean;\r\n maxlength?: number;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n defaultValue?: string;\r\n } = {}\r\n ): Promise<string> => {\r\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n title: title || this.translate('Confirm'),\r\n message: option?.message,\r\n yesTitle: option?.yesTitle || this.translate('Yes'),\r\n noTitle: option?.noTitle || this.translate('No'),\r\n noButtonColor: option?.noButtonColor || 'secondary',\r\n yesButtonColor: option?.yesButtonColor || 'primary',\r\n input: {\r\n maxlength: option?.maxlength || 255,\r\n required: option?.required,\r\n defaultValue: option?.defaultValue || ''\r\n },\r\n },\r\n });\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result === 'ACCEPT') {\r\n resolve(result);\r\n } else if (result === 'CANCEL') {\r\n reject(result);\r\n } else {\r\n resolve(result);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n confirmWithDate = (\r\n title: string,\r\n option: {\r\n message?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n required?: boolean;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n defaultValue?: string | Date;\r\n placeholder?: string\r\n } = {}\r\n ): Promise<string> => {\r\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n title: title || this.translate('Confirm'),\r\n message: option?.message,\r\n yesTitle: option?.yesTitle || this.translate('Yes'),\r\n noTitle: option?.noTitle || this.translate('No'),\r\n noButtonColor: option?.noButtonColor || 'secondary',\r\n yesButtonColor: option?.yesButtonColor || 'primary',\r\n date: {\r\n placeholder: option?.placeholder,\r\n required: option?.required,\r\n defaultValue: option?.defaultValue || '',\r\n },\r\n },\r\n });\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result === 'ACCEPT') {\r\n resolve(result);\r\n } else if (result === 'CANCEL') {\r\n reject(result);\r\n } else {\r\n resolve(result);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n private translate = (value: string): string => {\r\n return this.translateService.translate(value);\r\n };\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ToastrService, ToastrModule } from \"ngx-toastr\";\r\nimport { SdButtonModule } from \"@sd-angular/core/button\";\r\n\r\nimport { SdNotifyService } from \"./notify.service\";\r\nimport { DialogConfirmComponent } from \"./components/dialog-confirm/dialog-confirm.component\";\r\nimport { SdDateTimeModule } from \"@sd-angular/core/date-time\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n SdDateTimeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n ToastrModule.forRoot(),\r\n\r\n SdButtonModule,\r\n ],\r\n declarations: [DialogConfirmComponent],\r\n entryComponents: [DialogConfirmComponent],\r\n exports: [],\r\n providers: [SdNotifyService],\r\n})\r\nexport class SdNotifyModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport { SdNotifyModule } from './lib/notify.module';\r\nexport * from './lib/notify.service';\r\nexport * from './lib/components/dialog-confirm/dialog-confirm.component';\r\n","/**\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-notify.js","sources":["../../../../projects/sd-core/notify/src/lib/components/dialog-confirm/dialog-confirm.component.ts","../../../../projects/sd-core/notify/src/lib/notify.service.ts","../../../../projects/sd-core/notify/src/lib/notify.module.ts","../../../../projects/sd-core/notify/src/public-api.ts","../../../../projects/sd-core/notify/sd-angular-core-notify.ts"],"sourcesContent":["import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\nimport * as uuid from 'uuid';\r\n\r\nexport interface DialogData {\r\n icon?: string;\r\n title?: string;\r\n message?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n input?: {\r\n placeholder?: string;\r\n minlength?: number;\r\n maxlength?: number;\r\n required?: boolean;\r\n defaultValue?: string;\r\n };\r\n}\r\n\r\n@Component({\r\n selector: 'sd-dialog-confirm',\r\n templateUrl: 'dialog-confirm.component.html',\r\n styleUrls: ['./dialog-confirm.component.css'],\r\n})\r\nexport class DialogConfirmComponent {\r\n value: any;\r\n required = false;\r\n isString = false;\r\n id = `I${uuid.v4()}`\r\n constructor(\r\n public dialogRef: MatDialogRef<DialogConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n this.isString = typeof this.data?.message === 'string';\r\n if (data?.input) {\r\n this.value = data?.input?.defaultValue ?? '';\r\n this.required = data?.input?.required || false;\r\n }\r\n }\r\n}\r\n","import '@sd-angular/core/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DialogConfirmComponent } from './components/dialog-confirm/dialog-confirm.component';\r\nimport { ActiveToast, ToastrService } from 'ngx-toastr';\r\nimport { SdTranslateService } from '@sd-angular/core/translate';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { timer } from 'rxjs';\r\nimport * as uuid from 'uuid';\r\nimport { SdBadgeColor } from '@sd-angular/core/badge';\r\n\r\n@Injectable()\r\nexport class SdNotifyService {\r\n #delayDuration = 500; // Các error/warning message sẽ tự động gộp sau khoảng thời gian trên\r\n #warningKey = uuid.v4();\r\n #errorKey = uuid.v4();\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n data?: {\r\n title: string,\r\n messages: string[]\r\n }\r\n }\r\n } = {};\r\n constructor(\r\n private dialog: MatDialog,\r\n private toastr: ToastrService,\r\n private translateService: SdTranslateService\r\n ) { }\r\n\r\n alert = {\r\n info: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'info',\r\n title: title || this.translate('Notice'),\r\n message: message || 'Done!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n success: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'done',\r\n title: title || this.translate('Success'),\r\n message: message || 'Done!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n warning: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'warning',\r\n title: title || this.translate('Warning'),\r\n message: message || 'Something went wrong!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n error: (\r\n message?: string,\r\n title?: string,\r\n yesTitle?: string,\r\n icon?: string\r\n ) => {\r\n this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n icon: icon || 'error',\r\n title: title || this.translate('Error'),\r\n message: message || 'Something went wrong!',\r\n yesTitle: yesTitle || this.translate('Ok'),\r\n },\r\n });\r\n },\r\n };\r\n\r\n notify = {\r\n success: (message?: string, delay?: number, title?: string) => {\r\n // tslint:disable-next-line: max-line-length\r\n // const style = `border-radius: 5px; margin: 0; padding: 12px; z-index: 99999; top: 5px; right: 5px; display: none; position: fixed;color: #4F8A10; background-color: #DFF2BF`;\r\n // tslint:disable-next-line: max-line-length\r\n // const html = `<div id='${this.notifyId}' style='${style}'><i class='fa fa-check'></i> ${message || this.translate('Success')}</div>`;\r\n // this.showNotify(html, delay);\r\n const content = message || this.translate('Success');\r\n this.toastr.success(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n },\r\n warning: (message?: string | string[], delay?: number, title?: string) => {\r\n if (!this.#cache[this.#warningKey] || Date.addMiliseconds(this.#cache[this.#warningKey].createdDate, this.#delayDuration) < new Date()) {\r\n this.#cache[this.#warningKey] = {\r\n createdDate: new Date(),\r\n data: {\r\n title: title,\r\n messages: [],\r\n }\r\n };\r\n timer(this.#delayDuration).pipe(take(1)).subscribe(() => {\r\n const messages = this.#cache[this.#warningKey].data.messages.union(null);\r\n if (messages.length === 1) {\r\n this.#notifyWarning({\r\n title: this.#cache[this.#warningKey].data.title,\r\n message: messages[0],\r\n delay\r\n });\r\n } else {\r\n this.#notifyWarning({\r\n title: this.#cache[this.#warningKey].data.title,\r\n message: messages,\r\n delay\r\n });\r\n }\r\n });\r\n }\r\n if (Array.isArray(message)) {\r\n this.#cache[this.#warningKey].data.messages = [...this.#cache[this.#warningKey].data.messages, ...message];\r\n } else {\r\n this.#cache[this.#warningKey].data.messages.push(message);\r\n }\r\n },\r\n error: (message?: string | string[], delay?: number, title?: string) => {\r\n if (!this.#cache[this.#errorKey] || Date.addMiliseconds(this.#cache[this.#errorKey].createdDate, this.#delayDuration) < new Date()) {\r\n this.#cache[this.#errorKey] = {\r\n createdDate: new Date(),\r\n data: {\r\n title,\r\n messages: [],\r\n }\r\n };\r\n timer(this.#delayDuration).pipe(take(1)).subscribe(() => {\r\n const messages = this.#cache[this.#errorKey].data.messages.union(null);\r\n if (messages.length === 1) {\r\n this.#notifyError({\r\n title: this.#cache[this.#errorKey].data.title,\r\n message: messages[0],\r\n delay\r\n });\r\n } else {\r\n this.#notifyError({\r\n title: this.#cache[this.#errorKey].data.title,\r\n message: messages,\r\n delay\r\n });\r\n }\r\n });\r\n }\r\n if (Array.isArray(message)) {\r\n this.#cache[this.#errorKey].data.messages = [...this.#cache[this.#errorKey].data.messages, ...message];\r\n } else {\r\n this.#cache[this.#errorKey].data.messages.push(message);\r\n }\r\n },\r\n };\r\n\r\n #notifyWarning = (args: {\r\n message?: string | string[],\r\n delay?: number,\r\n title?: string\r\n }) => {\r\n const { message, delay, title } = args;\r\n if (Array.isArray(message)) {\r\n this.#buildToastMultiMesssage('warning', message, delay, title);\r\n }\r\n else {\r\n const content = message || this.translate('Warning');\r\n this.toastr.warning(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n }\r\n }\r\n\r\n #notifyError = (args: {\r\n message?: string | string[],\r\n delay?: number,\r\n title?: string\r\n }) => {\r\n const { message, delay, title } = args;\r\n if (Array.isArray(message)) {\r\n this.#buildToastMultiMesssage('error', message, delay, title);\r\n }\r\n else {\r\n const content = message || this.translate('Error');\r\n this.toastr.error(content, title, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n closeButton: true,\r\n });\r\n }\r\n }\r\n\r\n #buildToastMultiMesssage = (type: 'warning' | 'error', messages: string[], delay?: number, title?: string) => {\r\n /** số lượng item hiển thị mặc định */\r\n const showNum = 2;\r\n const id = `sd-notify-ckb-${uuid.v4()}`;\r\n const messageLength = messages.length;\r\n const messageRests = messages.splice(showNum);\r\n const messageContainer = `<ul class='sd-notify__list'>{0}{1}</ul>`;\r\n const messageTemp = `<li class='sd-notify__item'>- {0}</li>`;\r\n let contentRest = '';\r\n if (messageRests?.length) {\r\n contentRest = `<input id='${id}' class='cdk-visually-hidden sd-notify__checkbox' type='checkbox' />\r\n <label class='sd-notify__text sd-notify__text--show' for='${id}'>${this.translate('Show more')}</label>\r\n <div class='sd-notify__item--rest'>\r\n ${messageRests.map(m => String.format(messageTemp, m)).join('')}\r\n </div>\r\n <label class='sd-notify__text sd-notify__text--less' for='${id}'>${this.translate('Show less')}</label>`;\r\n }\r\n const content = String.format(messageContainer, messages.map(m => String.format(messageTemp, m)).join(''), contentRest);\r\n let toast: ActiveToast<any>;\r\n // khi truyền message html sẽ bị sanitize nên phải truyền innerHTML khi toast hiện lên\r\n // @see https://github.com/scttcper/ngx-toastr/blob/v12.1.0/src/lib/toastr/toastr.service.ts#L271\r\n switch (type) {\r\n case 'error':\r\n toast = this.toastr.error(content, `${title || this.translate('Error')} (${messageLength})`, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n messageClass: `toast-message toast-message-${id}`,\r\n closeButton: true,\r\n tapToDismiss: false\r\n });\r\n break;\r\n case 'warning':\r\n toast = this.toastr.warning(content, `${title || this.translate('Warning')} (${messageLength})`, {\r\n enableHtml: true,\r\n timeOut: delay || 3000,\r\n messageClass: `toast-message toast-message-${id}`,\r\n closeButton: true,\r\n tapToDismiss: false\r\n });\r\n break;\r\n }\r\n\r\n if (toast) {\r\n toast.onShown\r\n .pipe(\r\n takeUntil(toast.onHidden)\r\n )\r\n .subscribe(() => {\r\n const messageEle: HTMLDivElement = document.querySelector(`.toast-message-${id}`);\r\n messageEle.innerHTML = content;\r\n })\r\n }\r\n }\r\n\r\n handle = {\r\n error: (err: any) => {\r\n if (typeof err === 'string') {\r\n this.notify.warning(err);\r\n } else if (typeof err === 'object') {\r\n let message =\r\n err?.error ||\r\n err?.message ||\r\n err?.ExceptionMessage ||\r\n err?.Message ||\r\n 'Unknown error';\r\n if (typeof err.json === 'function') {\r\n err = err.json();\r\n if (err) {\r\n message =\r\n err?.error ||\r\n err?.message ||\r\n err?.ExceptionMessage ||\r\n err?.Message ||\r\n 'Unknown error';\r\n }\r\n }\r\n this.notify.warning(message);\r\n } else {\r\n this.notify.warning('Unknown error');\r\n }\r\n },\r\n };\r\n\r\n confirm = (\r\n message: string,\r\n option: {\r\n title?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n } = {}\r\n ) => {\r\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n title: option?.title || this.translate('Confirm'),\r\n message,\r\n yesTitle: option?.yesTitle || this.translate('Yes'),\r\n noTitle: option?.noTitle || this.translate('No'),\r\n noButtonColor: option?.noButtonColor || 'secondary',\r\n yesButtonColor: option?.yesButtonColor || 'primary',\r\n },\r\n });\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result === 'ACCEPT') {\r\n resolve(null);\r\n } else if (result === 'CANCEL') {\r\n reject(result);\r\n } else {\r\n resolve(null);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n confirmDelete = () => this.confirm(this.translate('Delete record(s)'));\r\n\r\n confirmApprove = () => this.confirm(this.translate('Approve record(s)'));\r\n\r\n confirmWithInput = (\r\n title: string,\r\n option: {\r\n message?: string;\r\n yesTitle?: string;\r\n noTitle?: string;\r\n required?: boolean;\r\n maxlength?: number;\r\n yesButtonColor?: SdBadgeColor;\r\n noButtonColor?: SdBadgeColor;\r\n defaultValue?: string;\r\n } = {}\r\n ): Promise<string> => {\r\n const dialogRef = this.dialog.open(DialogConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n title: title || this.translate('Confirm'),\r\n message: option?.message,\r\n yesTitle: option?.yesTitle || this.translate('Yes'),\r\n noTitle: option?.noTitle || this.translate('No'),\r\n noButtonColor: option?.noButtonColor || 'secondary',\r\n yesButtonColor: option?.yesButtonColor || 'primary',\r\n input: {\r\n maxlength: option?.maxlength || 255,\r\n required: option?.required,\r\n defaultValue: option?.defaultValue || ''\r\n },\r\n },\r\n });\r\n return new Promise((resolve, reject) => {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (result === 'ACCEPT') {\r\n resolve(result);\r\n } else if (result === 'CANCEL') {\r\n reject(result);\r\n } else {\r\n resolve(result);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n private translate = (value: string): string => {\r\n return this.translateService.translate(value);\r\n };\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { SdButtonModule } from \"@sd-angular/core/button\";\r\n\r\nimport { SdNotifyService } from \"./notify.service\";\r\nimport { DialogConfirmComponent } from \"./components/dialog-confirm/dialog-confirm.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n ToastrModule.forRoot(),\r\n SdButtonModule,\r\n ],\r\n declarations: [DialogConfirmComponent],\r\n entryComponents: [DialogConfirmComponent],\r\n exports: [],\r\n providers: [SdNotifyService],\r\n})\r\nexport class SdNotifyModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport { SdNotifyModule } from './lib/notify.module';\r\nexport * from './lib/notify.service';\r\nexport * from './lib/components/dialog-confirm/dialog-confirm.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import '@sd-angular/core/db';
|
|
|
19
19
|
import '@sd-angular/core/group';
|
|
20
20
|
import '@sd-angular/core/json-editor';
|
|
21
21
|
import '@sd-angular/core/input-number';
|
|
22
|
+
import '@sd-angular/core/confirm';
|
|
22
23
|
import { NgModule } from '@angular/core';
|
|
23
24
|
import { CommonModule } from '@angular/common';
|
|
24
25
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/core.module.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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialModule } from './material.module';\r\n\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 { 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 MaterialModule,\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 ],\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 ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/core.module.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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaterialModule } from './material.module';\r\n\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 { 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 MaterialModule,\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 ],\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 ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkEa,cAAc;;;YA5C1B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;gBACD,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;aACF;;;MCxBY,YAAY;;;YA5BxB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,eAAe;iBAChB;gBACD,YAAY,EAAE,EACb;gBACD,OAAO,EAAE;oBACP,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,cAAc;oBACd,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,eAAe;oBACf,cAAc;iBACf;gBACD,SAAS,EAAE,EACV;aACF;;;ACxCD;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdFilterModule":{"__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/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":"@angular/material/button","name":"MatButtonModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/form","name":"SdFormModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdFilter"},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":38,"character":4},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"SdFilter"}]}]}],"members":{}},"SdFilterDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdFilterDef]"}]}],"members":{"sdFilterDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"_defaultShowing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["defaultShowing"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"SdFilterOption":{"__symbolic":"interface"},"SdQuickFilter":{"__symbolic":"interface"},"SdFilterInformation":{"__symbolic":"interface"},"Filter":{"__symbolic":"interface"},"BaseFilter":{"__symbolic":"interface"},"StringFilter":{"__symbolic":"interface"},"NumberFilter":{"__symbolic":"interface"},"ValuesLocalFilter":{"__symbolic":"interface"},"ValuesServerFilter":{"__symbolic":"interface"},"DateFilter":{"__symbolic":"interface"},"DateRageFilter":{"__symbolic":"interface"},"BoolFilter":{"__symbolic":"interface"},"FilterObject":{"__symbolic":"interface"},"SdFilter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"sd-filter","template":"<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hiển thị</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input-number *ngIf=\"item.type === 'number'\" [label]=\"item.title\" [(model)]=\"information.filter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\">\r\n </sd-input-number>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->","styles":[".c-container .c-header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 20px}.c-container mat-icon.c-icon{color:rgba(0,0,0,.54)!important}.c-container button:focus{outline:none}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]}]}],"members":{"_filterOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["option"]}]}],"sdFilterDefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":30,"character":3},"arguments":[{"__symbolic":"reference","name":"SdFilterDefDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":36,"character":27},{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":37,"character":28},{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":8,"character":38}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesLocal"}]}],"members":{}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesServer"}]}],"members":{}}},"origins":{"SdFilterModule":"./src/lib/filter.module","SdFilterDefDirective":"./src/lib/directives/sd-filter-def.directive","SdFilterOption":"./src/lib/filter.model","SdQuickFilter":"./src/lib/filter.model","SdFilterInformation":"./src/lib/filter.model","Filter":"./src/lib/filter.model","BaseFilter":"./src/lib/filter.model","StringFilter":"./src/lib/filter.model","NumberFilter":"./src/lib/filter.model","ValuesLocalFilter":"./src/lib/filter.model","ValuesServerFilter":"./src/lib/filter.model","DateFilter":"./src/lib/filter.model","DateRageFilter":"./src/lib/filter.model","BoolFilter":"./src/lib/filter.model","FilterObject":"./src/lib/filter.model","SdFilter":"./src/lib/filter.component","ɵa":"./src/lib/filter.service","ɵb":"./src/lib/pipes/values-local.pipe","ɵc":"./src/lib/pipes/values-server.pipe"},"importAs":"@sd-angular/core/filter"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdFilterModule":{"__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/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":"@angular/material/button","name":"MatButtonModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/form","name":"SdFormModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdFilter"},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":38,"character":4},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"SdFilter"}]}]}],"members":{}},"SdFilterDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdFilterDef]"}]}],"members":{"sdFilterDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"_defaultShowing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["defaultShowing"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"SdFilterOption":{"__symbolic":"interface"},"SdQuickFilter":{"__symbolic":"interface"},"SdFilterInformation":{"__symbolic":"interface"},"Filter":{"__symbolic":"interface"},"BaseFilter":{"__symbolic":"interface"},"StringFilter":{"__symbolic":"interface"},"NumberFilter":{"__symbolic":"interface"},"ValuesLocalFilter":{"__symbolic":"interface"},"ValuesServerFilter":{"__symbolic":"interface"},"DateFilter":{"__symbolic":"interface"},"DateRageFilter":{"__symbolic":"interface"},"BoolFilter":{"__symbolic":"interface"},"FilterObject":{"__symbolic":"interface"},"SdFilter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"sd-filter","template":"<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hiển thị</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input-number *ngIf=\"item.type === 'number'\" [label]=\"item.title\" [(model)]=\"information.filter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\">\r\n </sd-input-number>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->","styles":[".c-container .c-header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 20px}.c-container mat-icon.c-icon{color:rgba(0,0,0,.54)!important}.c-container button:focus{outline:none}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]}]}],"members":{"_filterOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3},"arguments":["option"]}]}],"sdFilterDefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"SdFilterDefDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":35,"character":27},{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":36,"character":28},{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":8,"character":38}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesLocal"}]}],"members":{}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesServer"}]}],"members":{}}},"origins":{"SdFilterModule":"./src/lib/filter.module","SdFilterDefDirective":"./src/lib/directives/sd-filter-def.directive","SdFilterOption":"./src/lib/filter.model","SdQuickFilter":"./src/lib/filter.model","SdFilterInformation":"./src/lib/filter.model","Filter":"./src/lib/filter.model","BaseFilter":"./src/lib/filter.model","StringFilter":"./src/lib/filter.model","NumberFilter":"./src/lib/filter.model","ValuesLocalFilter":"./src/lib/filter.model","ValuesServerFilter":"./src/lib/filter.model","DateFilter":"./src/lib/filter.model","DateRageFilter":"./src/lib/filter.model","BoolFilter":"./src/lib/filter.model","FilterObject":"./src/lib/filter.model","SdFilter":"./src/lib/filter.component","ɵa":"./src/lib/filter.service","ɵb":"./src/lib/pipes/values-local.pipe","ɵc":"./src/lib/pipes/values-server.pipe"},"importAs":"@sd-angular/core/filter"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdNotifyModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdNotifyModule":{"__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/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/button","name":"MatButtonModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":22,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrModule","line":23,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@sd-angular/core/button","name":"SdButtonModule","line":24,"character":4}],"declarations":[{"__symbolic":"reference","name":"DialogConfirmComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DialogConfirmComponent"}],"exports":[],"providers":[{"__symbolic":"reference","name":"SdNotifyService"}]}]}],"members":{}},"SdNotifyService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":26,"character":20},{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":27,"character":20},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateService","line":28,"character":30}]}]}},"DialogData":{"__symbolic":"interface"},"DialogConfirmComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"sd-dialog-confirm","template":"<h1 mat-dialog-title class=\"\">\r\n <mat-icon *ngIf=\"data?.icon\" [ngClass]=\"data?.icon\">\r\n {{ data?.icon }}\r\n </mat-icon>\r\n <span [innerHtml]=\"data?.title || 'Confirm'\"></span>\r\n</h1>\r\n<div mat-dialog-content>\r\n <div *ngIf=\"isString\" [innerHtml]=\"data?.message\"></div>\r\n <div *ngIf=\"!isString\" [innerHtml]=\"data?.message | json\"></div>\r\n <div *ngIf=\"data?.input\">\r\n <mat-form-field appearance=\"outline\">\r\n <textarea style=\"width: 100%\" matInput [placeholder]=\"data.input?.placeholder\" [(ngModel)]=\"value\"\r\n autocomplete=\"off\" rows=\"5\" [maxlength]=\"data.input?.maxlength\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions align=\"end\">\r\n <sd-button *ngIf=\"data?.noTitle\" [color]=\"data?.noButtonColor || 'secondary'\" [mat-dialog-close]=\"'CANCEL'\"\r\n [title]=\"data?.noTitle\" size=\"sm\"></sd-button>\r\n <sd-button class=\"ml-12\" *ngIf=\"data?.yesTitle\" [mat-dialog-close]=\"value || 'ACCEPT'\"\r\n [color]=\"data?.yesButtonColor || 'primary'\" [disabled]=\"required && !value\" cdkFocusInitial\r\n [title]=\"data?.yesTitle\" size=\"sm\"></sd-button>\r\n</div>","styles":[":host .mat-dialog-content{margin:0 -16px 16px!important}:host .mat-button{background-color:#f5f5f5}:host>>>.mat-dialog-title{align-items:center;display:flex;justify-content:flex-start}:host>>>.mat-dialog-title .mat-icon{margin-right:5px}:host{display:block;padding:12px 16px}:host>>>.mat-dialog-title .mat-icon.info{color:#2962ff}:host>>>.mat-dialog-title .mat-icon.warning{color:#ffc107}:host>>>.mat-dialog-title .mat-icon.done{color:#4caf50}:host>>>.mat-dialog-title .mat-icon.error{color:#d32f2f}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":34,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"DialogConfirmComponent"}]},{"__symbolic":"reference","name":"any"}]}]}}},"origins":{"SdNotifyModule":"./src/lib/notify.module","SdNotifyService":"./src/lib/notify.service","DialogData":"./src/lib/components/dialog-confirm/dialog-confirm.component","DialogConfirmComponent":"./src/lib/components/dialog-confirm/dialog-confirm.component"},"importAs":"@sd-angular/core/notify"}
|
|
@@ -15,13 +15,6 @@ export interface DialogData {
|
|
|
15
15
|
required?: boolean;
|
|
16
16
|
defaultValue?: string;
|
|
17
17
|
};
|
|
18
|
-
date?: {
|
|
19
|
-
required?: boolean;
|
|
20
|
-
placeholder?: string;
|
|
21
|
-
defaultValue?: string | Date;
|
|
22
|
-
min?: string | Date;
|
|
23
|
-
max?: string | Date;
|
|
24
|
-
};
|
|
25
18
|
}
|
|
26
19
|
export declare class DialogConfirmComponent {
|
|
27
20
|
dialogRef: MatDialogRef<DialogConfirmComponent>;
|
|
@@ -42,15 +42,5 @@ export declare class SdNotifyService {
|
|
|
42
42
|
noButtonColor?: SdBadgeColor;
|
|
43
43
|
defaultValue?: string;
|
|
44
44
|
}) => Promise<string>;
|
|
45
|
-
confirmWithDate: (title: string, option?: {
|
|
46
|
-
message?: string;
|
|
47
|
-
yesTitle?: string;
|
|
48
|
-
noTitle?: string;
|
|
49
|
-
required?: boolean;
|
|
50
|
-
yesButtonColor?: SdBadgeColor;
|
|
51
|
-
noButtonColor?: SdBadgeColor;
|
|
52
|
-
defaultValue?: string | Date;
|
|
53
|
-
placeholder?: string;
|
|
54
|
-
}) => Promise<string>;
|
|
55
45
|
private translate;
|
|
56
46
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ import '@sd-angular/core/db';
|
|
|
19
19
|
import '@sd-angular/core/group';
|
|
20
20
|
import '@sd-angular/core/json-editor';
|
|
21
21
|
import '@sd-angular/core/input-number';
|
|
22
|
+
import '@sd-angular/core/confirm';
|
|
22
23
|
export { SdCoreModule } from './lib/core.module';
|
|
23
24
|
export { MaterialModule } from './lib/material.module';
|
|
24
25
|
export * from './lib/material.module';
|
|
index 75aa100..0e91407 100644
|
|
|
Binary file
|