@sd-angular/core 1.3.105 → 1.3.106

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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@sd-angular/core/common'), require('@angular/core'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/animations'), require('uuid'), require('rxjs'), require('@sd-angular/core/notify'), require('@angular/cdk/drag-drop'), require('rxjs/operators'), require('ngx-device-detector'), require('@sd-angular/core/loading'), require('@sd-angular/core/translate'), require('object-hash'), require('@sd-angular/core/export'), require('@angular/forms'), require('@sd-angular/core/setting'), require('@sd-angular/core/quick-action'), require('@angular/common'), require('@angular/material/form-field'), require('@angular/material/icon'), require('@angular/material/input'), require('@angular/material/table'), require('@angular/material/progress-spinner'), require('@angular/cdk/table'), require('@angular/cdk/scrolling'), require('@angular/material/menu'), require('@angular/material/slider'), require('@angular/material/button'), require('@sd-angular/core/service'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/material/radio'), require('@angular/material/slide-toggle'), require('@sd-angular/core/form'), require('@angular/material/checkbox'), require('@angular/material/list'), require('@angular/material/divider'), require('@sd-angular/core/side-drawer'), require('@sd-angular/core/utility'), require('@sd-angular/core/group')) :
3
- typeof define === 'function' && define.amd ? define('@sd-angular/core/grid-material', ['exports', '@sd-angular/core/common', '@angular/core', '@angular/material/paginator', '@angular/material/sort', '@angular/animations', 'uuid', 'rxjs', '@sd-angular/core/notify', '@angular/cdk/drag-drop', 'rxjs/operators', 'ngx-device-detector', '@sd-angular/core/loading', '@sd-angular/core/translate', 'object-hash', '@sd-angular/core/export', '@angular/forms', '@sd-angular/core/setting', '@sd-angular/core/quick-action', '@angular/common', '@angular/material/form-field', '@angular/material/icon', '@angular/material/input', '@angular/material/table', '@angular/material/progress-spinner', '@angular/cdk/table', '@angular/cdk/scrolling', '@angular/material/menu', '@angular/material/slider', '@angular/material/button', '@sd-angular/core/service', '@angular/material/tooltip', '@angular/material/chips', '@angular/material/radio', '@angular/material/slide-toggle', '@sd-angular/core/form', '@angular/material/checkbox', '@angular/material/list', '@angular/material/divider', '@sd-angular/core/side-drawer', '@sd-angular/core/utility', '@sd-angular/core/group'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core['grid-material'] = {}), global['sd-angular'].core.common, global.ng.core, global.ng.material.paginator, global.ng.material.sort, global.ng.animations, global.uuid, global.rxjs, global['sd-angular'].core.notify, global.ng.cdk.dragDrop, global.rxjs.operators, global['ngx-device-detector'], global['sd-angular'].core.loading, global['sd-angular'].core.translate, global['object-hash'], global['sd-angular'].core.export, global.ng.forms, global['sd-angular'].core.setting, global['sd-angular'].core['quick-action'], global.ng.common, global.ng.material.formField, global.ng.material.icon, global.ng.material.input, global.ng.material.table, global.ng.material.progressSpinner, global.ng.cdk.table, global.ng.cdk.scrolling, global.ng.material.menu, global.ng.material.slider, global.ng.material.button, global['sd-angular'].core.service, global.ng.material.tooltip, global.ng.material.chips, global.ng.material.radio, global.ng.material.slideToggle, global['sd-angular'].core.form, global.ng.material.checkbox, global.ng.material.list, global.ng.material.divider, global['sd-angular'].core['side-drawer'], global['sd-angular'].core.utility, global['sd-angular'].core.group));
5
- }(this, (function (exports, common, core, paginator, sort, animations, uuid, rxjs, notify, dragDrop, operators, ngxDeviceDetector, loading, translate, hash, _export, forms, setting, quickAction, common$1, formField, icon, input, table, progressSpinner, table$1, scrolling, menu, slider, button, service, tooltip, chips, radio, slideToggle, form, checkbox, list, divider, sideDrawer, utility, group) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@sd-angular/core/common'), require('@angular/core'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/animations'), require('uuid'), require('rxjs'), require('@sd-angular/core/notify'), require('@angular/cdk/drag-drop'), require('rxjs/operators'), require('@sd-angular/core/modal'), require('ngx-device-detector'), require('@sd-angular/core/loading'), require('@sd-angular/core/translate'), require('object-hash'), require('@sd-angular/core/export'), require('@angular/forms'), require('@sd-angular/core/setting'), require('@sd-angular/core/quick-action'), require('@angular/common'), require('@angular/material/form-field'), require('@angular/material/icon'), require('@angular/material/input'), require('@angular/material/table'), require('@angular/material/progress-spinner'), require('@angular/cdk/table'), require('@angular/cdk/scrolling'), require('@angular/material/menu'), require('@angular/material/slider'), require('@angular/material/button'), require('@sd-angular/core/service'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/material/radio'), require('@angular/material/slide-toggle'), require('@sd-angular/core/form'), require('@angular/material/checkbox'), require('@angular/material/list'), require('@angular/material/divider'), require('@sd-angular/core/side-drawer'), require('@sd-angular/core/utility'), require('@sd-angular/core/group')) :
3
+ typeof define === 'function' && define.amd ? define('@sd-angular/core/grid-material', ['exports', '@sd-angular/core/common', '@angular/core', '@angular/material/paginator', '@angular/material/sort', '@angular/animations', 'uuid', 'rxjs', '@sd-angular/core/notify', '@angular/cdk/drag-drop', 'rxjs/operators', '@sd-angular/core/modal', 'ngx-device-detector', '@sd-angular/core/loading', '@sd-angular/core/translate', 'object-hash', '@sd-angular/core/export', '@angular/forms', '@sd-angular/core/setting', '@sd-angular/core/quick-action', '@angular/common', '@angular/material/form-field', '@angular/material/icon', '@angular/material/input', '@angular/material/table', '@angular/material/progress-spinner', '@angular/cdk/table', '@angular/cdk/scrolling', '@angular/material/menu', '@angular/material/slider', '@angular/material/button', '@sd-angular/core/service', '@angular/material/tooltip', '@angular/material/chips', '@angular/material/radio', '@angular/material/slide-toggle', '@sd-angular/core/form', '@angular/material/checkbox', '@angular/material/list', '@angular/material/divider', '@sd-angular/core/side-drawer', '@sd-angular/core/utility', '@sd-angular/core/group'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core['grid-material'] = {}), global['sd-angular'].core.common, global.ng.core, global.ng.material.paginator, global.ng.material.sort, global.ng.animations, global.uuid, global.rxjs, global['sd-angular'].core.notify, global.ng.cdk.dragDrop, global.rxjs.operators, global['sd-angular'].core.modal, global['ngx-device-detector'], global['sd-angular'].core.loading, global['sd-angular'].core.translate, global['object-hash'], global['sd-angular'].core.export, global.ng.forms, global['sd-angular'].core.setting, global['sd-angular'].core['quick-action'], global.ng.common, global.ng.material.formField, global.ng.material.icon, global.ng.material.input, global.ng.material.table, global.ng.material.progressSpinner, global.ng.cdk.table, global.ng.cdk.scrolling, global.ng.material.menu, global.ng.material.slider, global.ng.material.button, global['sd-angular'].core.service, global.ng.material.tooltip, global.ng.material.chips, global.ng.material.radio, global.ng.material.slideToggle, global['sd-angular'].core.form, global.ng.material.checkbox, global.ng.material.list, global.ng.material.divider, global['sd-angular'].core['side-drawer'], global['sd-angular'].core.utility, global['sd-angular'].core.group));
5
+ }(this, (function (exports, common, core, paginator, sort, animations, uuid, rxjs, notify, dragDrop, operators, modal, ngxDeviceDetector, loading, translate, hash, _export, forms, setting, quickAction, common$1, formField, icon, input, table, progressSpinner, table$1, scrolling, menu, slider, button, service, tooltip, chips, radio, slideToggle, form, checkbox, list, divider, sideDrawer, utility, group) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -426,7 +426,7 @@
426
426
  };
427
427
  var GRID_MATERIAL_CONFIG = new core.InjectionToken('sd-grid-material.configuration');
428
428
 
429
- var _filterRegister, _subscription;
429
+ var _filterRegister;
430
430
  var SdPopupFilter = /** @class */ (function () {
431
431
  function SdPopupFilter(cdRef) {
432
432
  var _this = this;
@@ -441,8 +441,15 @@
441
441
  this.filterDefs = [];
442
442
  this.filterDef = {};
443
443
  this.inlineFilterDef = {};
444
- _subscription.set(this, new rxjs.Subscription());
445
444
  this.open = function () {
445
+ var configuration = __classPrivateFieldGet(_this, _filterRegister).configuration.get();
446
+ _this.inlineColumn = JSON.parse(JSON.stringify(configuration.inlineColumn));
447
+ _this.inlineExternal = JSON.parse(JSON.stringify(configuration.inlineExternal));
448
+ _this.inlineFilterDef = JSON.parse(JSON.stringify(configuration.inlineFilterDef));
449
+ var filterValue = __classPrivateFieldGet(_this, _filterRegister).value.get();
450
+ _this.columnFilter = JSON.parse(JSON.stringify(filterValue.columnFilter));
451
+ _this.externalFilter = JSON.parse(JSON.stringify(filterValue.externalFilter));
452
+ _this.filterDef = JSON.parse(JSON.stringify(filterValue.filterDef));
446
453
  _this.modal.open();
447
454
  _this.cdRef.markForCheck();
448
455
  };
@@ -459,7 +466,7 @@
459
466
  __classPrivateFieldGet(_this, _filterRegister).value.set({
460
467
  columnFilter: _this.columnFilter,
461
468
  externalFilter: _this.externalFilter,
462
- filterDef: _this.filterDef
469
+ filterDef: _this.filterDef,
463
470
  });
464
471
  _this.modal.close();
465
472
  _this.cdRef.markForCheck();
@@ -472,25 +479,8 @@
472
479
  enumerable: false,
473
480
  configurable: true
474
481
  });
475
- ;
476
- SdPopupFilter.prototype.ngAfterViewInit = function () {
477
- var _this = this;
478
- __classPrivateFieldGet(this, _subscription).add(__classPrivateFieldGet(this, _filterRegister).configuration.observer.subscribe(function (configuration) {
479
- _this.inlineColumn = JSON.parse(JSON.stringify(configuration.inlineColumn));
480
- _this.inlineExternal = JSON.parse(JSON.stringify(configuration.inlineExternal));
481
- _this.inlineFilterDef = JSON.parse(JSON.stringify(configuration.inlineFilterDef));
482
- _this.cdRef.markForCheck();
483
- }));
484
- __classPrivateFieldGet(this, _subscription).add(__classPrivateFieldGet(this, _filterRegister).value.observer.subscribe(function (filterValue) {
485
- _this.columnFilter = JSON.parse(JSON.stringify(filterValue.columnFilter));
486
- _this.externalFilter = JSON.parse(JSON.stringify(filterValue.externalFilter));
487
- _this.filterDef = JSON.parse(JSON.stringify(filterValue.filterDef));
488
- _this.cdRef.markForCheck();
489
- }));
490
- };
491
- SdPopupFilter.prototype.ngOnDestroy = function () {
492
- __classPrivateFieldGet(this, _subscription).unsubscribe();
493
- };
482
+ SdPopupFilter.prototype.ngAfterViewInit = function () { };
483
+ SdPopupFilter.prototype.ngOnDestroy = function () { };
494
484
  SdPopupFilter.prototype.onClear = function () {
495
485
  __classPrivateFieldGet(this, _filterRegister).value.remove();
496
486
  this.modal.close();
@@ -498,11 +488,11 @@
498
488
  };
499
489
  return SdPopupFilter;
500
490
  }());
501
- _filterRegister = new WeakMap(), _subscription = new WeakMap();
491
+ _filterRegister = new WeakMap();
502
492
  SdPopupFilter.decorators = [
503
493
  { type: core.Component, args: [{
504
494
  selector: 'sd-popup-filter',
505
- template: "<sd-modal width=\"500px\" [title]=\"'Filter' | sdTranslate\" #modal>\r\n <sd-modal-body class=\"c-popup-filter\">\r\n <ng-container *ngFor=\"let column of columns | sdFilterColumn\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineColumn[column.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input *ngIf=\"column.type === 'string'\" [label]=\"column.title\" type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input *ngIf=\"column.type === 'number'\" [label]=\"column.title\" type=\" number\"\r\n [(model)]=\"columnFilter[column.field]\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-select *ngIf=\"column.type === 'bool'\" [label]=\"column.title\" [items]=\"[{value:'1',display:column.trueValue || 'True' },\r\n {value:'0',display:column.falseValue || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'values' && !column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"column.type === 'values' && column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"column.type ==='date' || column.type==='datetime' ||\r\n column.type==='time'\" [label]=\"column.title\" [(model)]=\" columnFilter[column.field]\" type=\"date\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineExternal[item.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\" appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" appearance=\"outline\" multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" appearance=\"outline\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" appearance=\"outline\" [(model)]=\"externalFilter[item.field]\"\r\n filtered=\"true\" multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item.values\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" appearance=\"outline\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date' || item.type === 'datetime'\"\r\n [(model)]=\"externalFilter[item.field]\" [type]=\"item.type\" appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\" appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let filter of filterDefs\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineFilterDef[filter.sdMaterialFilterDef]\" color=\"primary\">\r\n </mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <ng-container *ngTemplateOutlet=\"filter.templateRef;context:{filterDef:filterDef}\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" icon=\"clear\" [title]=\"'Clear filter' | sdTranslate\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"onApply()\" icon=\"done\" [title]=\"'Apply' | sdTranslate\" color=\"primary\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"onClear()\" icon=\"clear\"\r\n [title]=\"'Clear filter' | sdTranslate\" width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"onApply()\" icon=\"done\" [title]=\"'Apply' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>",
495
+ template: "<sd-modal width=\"500px\" [title]=\"'Filter' | sdTranslate\">\r\n <sd-modal-body class=\"c-popup-filter\">\r\n <ng-container *ngFor=\"let column of columns | sdFilterColumn\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineColumn[column.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n *ngIf=\"column.type === 'string'\"\r\n [label]=\"column.title\"\r\n type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input\r\n *ngIf=\"column.type === 'number'\"\r\n [label]=\"column.title\"\r\n type=\" number\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-select\r\n *ngIf=\"column.type === 'bool'\"\r\n [label]=\"column.title\"\r\n [items]=\"[\r\n { value: '1', display: column.trueValue || 'True' },\r\n { value: '0', display: column.falseValue || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"column.type === 'values' && !column?.editor?.autocomplete\"\r\n [label]=\"column.title\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"column.type === 'values' && column?.editor?.autocomplete\"\r\n [label]=\"column.title\"\r\n [items]=\"column.option.items\"\r\n [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time\r\n *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\"\r\n [label]=\"column.title\"\r\n [(model)]=\"columnFilter[column.field]\"\r\n type=\"date\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineExternal[item.field]\" color=\"primary\"></mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'string'\"\r\n type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'bool'\"\r\n [items]=\"[\r\n { value: '1', display: item.option?.displayOnTrue || 'True' },\r\n { value: '0', display: item.option?.displayOnFalse || 'False' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-autocomplete\r\n *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select\r\n *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [label]=\"item.title\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n filtered=\"true\"\r\n multiple>\r\n </sd-select>\r\n <sd-select\r\n *ngIf=\"!item.option?.selection\"\r\n [label]=\"item.title\"\r\n [items]=\"item.values\"\r\n [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\"\r\n appearance=\"outline\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'date' || item.type === 'datetime'\"\r\n [(model)]=\"externalFilter[item.field]\"\r\n [type]=\"item.type\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range\r\n [label]=\"item.title\"\r\n *ngIf=\"item.type === 'daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\"\r\n [(to)]=\"externalFilter[item.field].to\"\r\n [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\"\r\n appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let filter of filterDefs\">\r\n <div class=\"d-flex align-items-baseline\">\r\n <ng-container>\r\n <div *sdDesktop class=\"c-checkable\">\r\n <mat-slide-toggle [(ngModel)]=\"inlineFilterDef[filter.sdMaterialFilterDef]\" color=\"primary\"> </mat-slide-toggle>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <ng-container *ngTemplateOutlet=\"filter.templateRef; context: { filterDef: filterDef }\"> </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" size=\"sm\" type=\"link\"> </sd-button>\r\n <sd-button (action)=\"onApply()\" title=\"\u0110\u1ED3ng \u00FD\" color=\"primary\" size=\"sm\" type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px\" (action)=\"onClear()\" title=\"M\u1EB7c \u0111\u1ECBnh\" width=\"100%\" size=\"sm\" type=\"link\"></sd-button>\r\n <sd-button\r\n style=\"flex: 1; padding-left: 5px\"\r\n (action)=\"onApply()\"\r\n title=\"\u0110\u1ED3ng \u00FD\"\r\n color=\"primary\"\r\n width=\"100%\"\r\n size=\"sm\"\r\n type=\"fill\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n",
506
496
  changeDetection: core.ChangeDetectionStrategy.OnPush,
507
497
  styles: [".c-checkable{width:50px}.c-filterable{flex:1}::ng-deep sd-modal-body.c-popup-filter .mat-form-field-wrapper{padding-bottom:0}"]
508
498
  },] }
@@ -511,14 +501,14 @@
511
501
  { type: core.ChangeDetectorRef }
512
502
  ]; };
513
503
  SdPopupFilter.propDecorators = {
514
- modal: [{ type: core.ViewChild, args: ['modal',] }],
504
+ modal: [{ type: core.ViewChild, args: [modal.SdModal,] }],
515
505
  filterRegister: [{ type: core.Input }],
516
506
  externalFilters: [{ type: core.Input }],
517
507
  columns: [{ type: core.Input }],
518
508
  filterDefs: [{ type: core.Input }]
519
509
  };
520
510
 
521
- var _subscription$1;
511
+ var _subscription;
522
512
  var SdGridFilter = /** @class */ (function () {
523
513
  function SdGridFilter(ref, deviceService) {
524
514
  var _this = this;
@@ -534,7 +524,7 @@
534
524
  this.inlineColumn = {};
535
525
  this.externalFilter = {};
536
526
  this.inlineExternal = {};
537
- _subscription$1.set(this, new rxjs.Subscription());
527
+ _subscription.set(this, new rxjs.Subscription());
538
528
  this.onFilter = function (item) {
539
529
  _this.filterRegister.value.set({
540
530
  columnFilter: _this.columnFilter,
@@ -572,30 +562,34 @@
572
562
  });
573
563
  SdGridFilter.prototype.ngAfterViewInit = function () {
574
564
  var _this = this;
575
- __classPrivateFieldGet(this, _subscription$1).add(this.filterRegister.configuration.observer.subscribe(function (configuration) {
576
- var inlineColumn = configuration.inlineColumn, inlineExternal = configuration.inlineExternal, inlineFilterDef = configuration.inlineFilterDef;
577
- _this.inlineColumn = inlineColumn;
578
- _this.inlineExternal = inlineExternal;
579
- _this.inlineFilterDef = inlineFilterDef;
580
- _this.ref.markForCheck();
581
- }));
582
- __classPrivateFieldGet(this, _subscription$1).add(this.filterRegister.value.observer.subscribe(function (value) {
583
- var columnFilter = value.columnFilter, externalFilter = value.externalFilter, filterDef = value.filterDef;
584
- _this.columnFilter = columnFilter;
585
- _this.externalFilter = externalFilter;
586
- _this.filterDef = filterDef;
587
- _this.ref.markForCheck();
565
+ __classPrivateFieldGet(this, _subscription).add(this.filterRegisterChange.pipe(operators.startWith(this.filterRegister)).subscribe(function (filterRegister) {
566
+ if (_this.filterRegister) {
567
+ __classPrivateFieldGet(_this, _subscription).add(_this.filterRegister.configuration.observer.subscribe(function (configuration) {
568
+ var inlineColumn = configuration.inlineColumn, inlineExternal = configuration.inlineExternal, inlineFilterDef = configuration.inlineFilterDef;
569
+ _this.inlineColumn = inlineColumn;
570
+ _this.inlineExternal = inlineExternal;
571
+ _this.inlineFilterDef = inlineFilterDef;
572
+ _this.ref.markForCheck();
573
+ }));
574
+ __classPrivateFieldGet(_this, _subscription).add(_this.filterRegister.value.observer.subscribe(function (value) {
575
+ var columnFilter = value.columnFilter, externalFilter = value.externalFilter, filterDef = value.filterDef;
576
+ _this.columnFilter = columnFilter;
577
+ _this.externalFilter = externalFilter;
578
+ _this.filterDef = filterDef;
579
+ _this.ref.markForCheck();
580
+ }));
581
+ }
588
582
  }));
589
583
  };
590
584
  SdGridFilter.prototype.ngOnDestroy = function () {
591
- __classPrivateFieldGet(this, _subscription$1).unsubscribe();
585
+ __classPrivateFieldGet(this, _subscription).unsubscribe();
592
586
  };
593
587
  return SdGridFilter;
594
588
  }());
595
- _subscription$1 = new WeakMap();
589
+ _subscription = new WeakMap();
596
590
  SdGridFilter.decorators = [
597
591
  { type: core.Component, args: [{
598
- selector: "sd-grid-filter",
592
+ selector: 'sd-grid-filter',
599
593
  template: "<ng-container *ngIf=\"!filter?.disabled\">\r\n <ng-container *ngIf=\"filter?.enableCollapse;else noCollapse\">\r\n <sd-group class=\"p-12\" [isExpanded]=\"false\" title=\"T\u00ECm ki\u1EBFm\" expandable>\r\n <div sdGroupBody>\r\n <ng-container *ngTemplateOutlet=\"noCollapse\"></ng-container>\r\n </div>\r\n </sd-group>\r\n </ng-container>\r\n <ng-template #noCollapse>\r\n <div\r\n *ngIf=\"!isMobileOrTablet && ((columns?.length && !filter?.inlineColumn) || externalFilters?.length || filterDefs?.length)\"\r\n class=\"row mx-0\">\r\n <ng-container *ngIf=\"filter?.sorts?.length\">\r\n <ng-container *ngFor=\"let field of filter?.sorts\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn:field\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal:field\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef] && item.sdMaterialFilterDef === field\"\r\n class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!filter?.sorts?.length\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterColumn let-item=\"item\">\r\n <div *ngIf=\"inlineColumn[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-select *ngIf=\"item.type === 'values' && item?.option?.selection !== 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n [multiple]=\"item?.option?.selection === 'MULTIPLE' || item?.item?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"item?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.type === 'values' && item?.option?.selection === 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option?.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"item.type === 'date' || item.type === 'datetime' || item.type === 'time'\"\r\n [label]=\"item.title\" [(model)]=\"columnFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </ng-template>\r\n <ng-template #filterExternal let-item=\"item\">\r\n <div *ngIf=\"inlineExternal[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values' && item.option\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\"\r\n appearance=\"outline\" multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" filtered=\"true\" appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date' || item.type ==='datetime'\"\r\n [(model)]=\"externalFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </ng-template>\r\n <sd-popup-filter [filterRegister]=\"filterRegister\" [columns]=\"columns\"\r\n [externalFilters]=\"externalFilters\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter>\r\n </ng-template>\r\n</ng-container>",
600
594
  changeDetection: core.ChangeDetectionStrategy.OnPush,
601
595
  styles: [":host{display:block;padding-bottom:10px;padding-left:0;padding-right:0}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]
@@ -607,11 +601,11 @@
607
601
  ]; };
608
602
  SdGridFilter.propDecorators = {
609
603
  popupFilter: [{ type: core.ViewChild, args: [SdPopupFilter,] }],
610
- _filter: [{ type: core.Input, args: ["filter",] }],
604
+ _filter: [{ type: core.Input, args: ['filter',] }],
611
605
  columns: [{ type: core.Input }],
612
- _externalFilters: [{ type: core.Input, args: ["externalFilters",] }],
606
+ _externalFilters: [{ type: core.Input, args: ['externalFilters',] }],
613
607
  filterDefs: [{ type: core.Input }],
614
- _filterRegister: [{ type: core.Input, args: ["filterRegister",] }]
608
+ _filterRegister: [{ type: core.Input, args: ['filterRegister',] }]
615
609
  };
616
610
 
617
611
  var _getExportableColumns, _getExportableGroups, _getExportColumns, _initTemplate;
@@ -1640,8 +1634,8 @@
1640
1634
  function SdGridFilterService(settingService) {
1641
1635
  var _this = this;
1642
1636
  this.settingService = settingService;
1643
- _filterConfiguration.set(this, "GRID-FILTER-CONFIGURATION");
1644
- _filterValue.set(this, "GRID-FILTER-VALUE");
1637
+ _filterConfiguration.set(this, 'GRID-FILTER-CONFIGURATION');
1638
+ _filterValue.set(this, 'GRID-FILTER-VALUE');
1645
1639
  _cache$2.set(this, {});
1646
1640
  this.register = function (key, args) {
1647
1641
  var cacheSession = false;
@@ -1660,7 +1654,7 @@
1660
1654
  key: key,
1661
1655
  }, {
1662
1656
  default: __classPrivateFieldGet(_this, _defaultConfiguration).call(_this, args),
1663
- type: cacheSession ? "session" : undefined,
1657
+ type: cacheSession ? 'session' : undefined,
1664
1658
  });
1665
1659
  // Lấy giá trị configuration merge với giá trị defaultShowing của args nếu như args có thay đổi
1666
1660
  filterConfiguration_1.set(__classPrivateFieldGet(_this, _initConfiguration).call(_this, args, filterConfiguration_1.get()));
@@ -1670,7 +1664,7 @@
1670
1664
  key: key,
1671
1665
  }, {
1672
1666
  default: __classPrivateFieldGet(_this, _defaultValue).call(_this, args),
1673
- type: cacheSession ? "session" : undefined,
1667
+ type: cacheSession ? 'session' : undefined,
1674
1668
  });
1675
1669
  // Lấy giá trị value merge với giá trị default của args nếu như args có thay đổi
1676
1670
  filterValue_1.set(__classPrivateFieldGet(_this, _initValue).call(_this, args, filterValue_1.get()));
@@ -1695,29 +1689,25 @@
1695
1689
  remove: function () {
1696
1690
  filterConfiguration_1.remove();
1697
1691
  },
1698
- observer: filterConfiguration_1.observer.pipe(operators.startWith(filterConfiguration_1.get())),
1692
+ observer: filterConfiguration_1.observer.pipe(operators.startWith(filterConfiguration_1.get()),
1693
+ // Sử dụng mặc định nếu bị reset
1694
+ operators.map(function (configuration) { return configuration || __classPrivateFieldGet(_this, _defaultConfiguration).call(_this, args); })),
1699
1695
  },
1700
1696
  value: {
1701
1697
  get: function () {
1702
1698
  return filterValue_1.get();
1703
1699
  },
1704
- set: function (configuration) {
1705
- var keys = Object.keys(configuration || {});
1700
+ set: function (value) {
1701
+ var keys = Object.keys(value || {});
1706
1702
  var current = filterValue_1.get();
1707
1703
  var columnFilter = current.columnFilter, externalFilter = current.externalFilter, filterDef = current.filterDef;
1708
1704
  var updatedConfiguration = {
1709
1705
  // Filter column
1710
- columnFilter: keys.includes("columnFilter")
1711
- ? (configuration === null || configuration === void 0 ? void 0 : configuration.columnFilter) || {}
1712
- : columnFilter,
1706
+ columnFilter: keys.includes('columnFilter') ? (value === null || value === void 0 ? void 0 : value.columnFilter) || {} : columnFilter,
1713
1707
  // Filter external
1714
- externalFilter: keys.includes("externalFilter")
1715
- ? (configuration === null || configuration === void 0 ? void 0 : configuration.externalFilter) || {}
1716
- : externalFilter,
1708
+ externalFilter: keys.includes('externalFilter') ? (value === null || value === void 0 ? void 0 : value.externalFilter) || {} : externalFilter,
1717
1709
  // Filter def
1718
- filterDef: keys.includes("filterDef")
1719
- ? (configuration === null || configuration === void 0 ? void 0 : configuration.filterDef) || {}
1720
- : filterDef,
1710
+ filterDef: keys.includes('filterDef') ? (value === null || value === void 0 ? void 0 : value.filterDef) || {} : filterDef,
1721
1711
  };
1722
1712
  filterValue_1.set(updatedConfiguration);
1723
1713
  return updatedConfiguration;
@@ -1725,7 +1715,9 @@
1725
1715
  remove: function () {
1726
1716
  filterValue_1.remove();
1727
1717
  },
1728
- observer: filterValue_1.observer.pipe(operators.startWith(filterValue_1.get())),
1718
+ observer: filterValue_1.observer.pipe(operators.debounceTime(200), operators.startWith(filterValue_1.get()),
1719
+ // Sử dụng mặc định nếu bị reset
1720
+ operators.map(function (value) { return value || __classPrivateFieldGet(_this, _defaultValue).call(_this, args); })),
1729
1721
  },
1730
1722
  };
1731
1723
  }
@@ -1930,7 +1922,7 @@
1930
1922
  // Filter external
1931
1923
  for (var _w = __values(externalFilters || []), _x = _w.next(); !_x.done; _x = _w.next()) {
1932
1924
  var item = _x.value;
1933
- if (item.type === "daterange") {
1925
+ if (item.type === 'daterange') {
1934
1926
  externalFilter[item.field] = {
1935
1927
  from: (_f = (_e = (_d = value === null || value === void 0 ? void 0 : value.externalFilter) === null || _d === void 0 ? void 0 : _d[item.field]) === null || _e === void 0 ? void 0 : _e.from) !== null && _f !== void 0 ? _f : (_g = item.default) === null || _g === void 0 ? void 0 : _g.from,
1936
1928
  to: (_k = (_j = (_h = value === null || value === void 0 ? void 0 : value.externalFilter) === null || _h === void 0 ? void 0 : _h[item.field]) === null || _j === void 0 ? void 0 : _j.to) !== null && _k !== void 0 ? _k : (_l = item.default) === null || _l === void 0 ? void 0 : _l.to,
@@ -1982,7 +1974,7 @@
1982
1974
  { type: setting.SdSettingService }
1983
1975
  ]; };
1984
1976
 
1985
- var _optionChanges, _localItems, _paginator, _sort, _subscription$2, _reload, _loadCompleted, _initCellDef, _initFilterDef, _initFooterDef, _filterExportInfo, _initConfiguration$1, _loadFilterRegister, _filterLocal, _getFilter, _load$1, _render, _exportedItems, _allColumns, _allExportedColumns, _onExport, _updateSelectedItems;
1977
+ var _optionChanges, _localItems, _paginator, _sort, _subscription$1, _subcriptionFilterRegister, _reload, _loadCompleted, _initCellDef, _initFilterDef, _initFooterDef, _filterExportInfo, _initConfiguration$1, _loadFilterRegister, _filterLocal, _getFilter, _load$1, _render, _exportedItems, _allColumns, _allExportedColumns, _onExport, _updateSelectedItems;
1986
1978
  var SdGridMaterial = /** @class */ (function () {
1987
1979
  function SdGridMaterial(ref, configuration, gridConfigurationService, exportService, notifyService, columnValuesPipe, gridFilterService, editorHandlerColumnPipe) {
1988
1980
  var _this = this;
@@ -2019,7 +2011,8 @@
2019
2011
  // Filter
2020
2012
  this.columnFilter = {};
2021
2013
  // Subcription
2022
- _subscription$2.set(this, new rxjs.Subscription());
2014
+ _subscription$1.set(this, new rxjs.Subscription());
2015
+ _subcriptionFilterRegister.set(this, new rxjs.Subscription());
2023
2016
  _reload.set(this, new rxjs.Subject());
2024
2017
  this.isExporting = false;
2025
2018
  this.isSelectAll = false;
@@ -2111,29 +2104,23 @@
2111
2104
  var _a, _b, _c, _d, _e;
2112
2105
  // Init filter
2113
2106
  if (_this.gridOption) {
2114
- var hasRegister = !!_this.filterRegister;
2115
2107
  _this.filterRegister = _this.gridFilterService.register((_b = (_a = _this.gridOption) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.key, {
2116
2108
  columns: (_c = _this.gridOption) === null || _c === void 0 ? void 0 : _c.columns,
2117
2109
  externalFilters: (_e = (_d = _this.gridOption) === null || _d === void 0 ? void 0 : _d.filter) === null || _e === void 0 ? void 0 : _e.externalFilters,
2118
2110
  filterDefs: _this.filterDefs,
2119
2111
  });
2120
- if (!hasRegister) {
2121
- __classPrivateFieldGet(_this, _subscription$2).add(_this.filterRegister.value.observer
2122
- .pipe(operators.debounceTime(500), operators.map(function (filterValue) {
2123
- var columnFilter = filterValue.columnFilter;
2124
- _this.columnFilter = columnFilter;
2125
- __classPrivateFieldGet(_this, _paginator).pageIndex = 0;
2126
- __classPrivateFieldGet(_this, _reload).next({
2127
- force: false,
2128
- });
2129
- }))
2130
- .subscribe());
2131
- }
2132
- else {
2112
+ __classPrivateFieldGet(_this, _subcriptionFilterRegister).unsubscribe();
2113
+ __classPrivateFieldSet(_this, _subcriptionFilterRegister, _this.filterRegister.value.observer
2114
+ .pipe(operators.debounceTime(500), operators.map(function (filterValue) {
2115
+ var columnFilter = filterValue.columnFilter;
2116
+ _this.columnFilter = columnFilter;
2117
+ __classPrivateFieldGet(_this, _paginator).pageIndex = 0;
2133
2118
  __classPrivateFieldGet(_this, _reload).next({
2134
- force: true,
2119
+ force: false,
2135
2120
  });
2136
- }
2121
+ }))
2122
+ .subscribe());
2123
+ __classPrivateFieldGet(_this, _subscription$1).add(__classPrivateFieldGet(_this, _subcriptionFilterRegister));
2137
2124
  }
2138
2125
  });
2139
2126
  _filterLocal.set(this, function (localItems, filterInfo) {
@@ -3185,7 +3172,7 @@
3185
3172
  var _this = this;
3186
3173
  if (paginator && __classPrivateFieldGet(this, _paginator) !== paginator) {
3187
3174
  __classPrivateFieldSet(this, _paginator, paginator);
3188
- __classPrivateFieldGet(this, _subscription$2).add(paginator.page
3175
+ __classPrivateFieldGet(this, _subscription$1).add(paginator.page
3189
3176
  .pipe(operators.map(function () {
3190
3177
  __classPrivateFieldGet(_this, _reload).next({
3191
3178
  force: false,
@@ -3202,7 +3189,7 @@
3202
3189
  var _this = this;
3203
3190
  if (sort && __classPrivateFieldGet(this, _sort) !== sort) {
3204
3191
  __classPrivateFieldSet(this, _sort, sort);
3205
- __classPrivateFieldGet(this, _subscription$2).add(sort.sortChange
3192
+ __classPrivateFieldGet(this, _subscription$1).add(sort.sortChange
3206
3193
  .pipe(operators.map(function () {
3207
3194
  __classPrivateFieldGet(_this, _reload).next({
3208
3195
  force: false,
@@ -3219,7 +3206,7 @@
3219
3206
  };
3220
3207
  SdGridMaterial.prototype.ngAfterViewInit = function () {
3221
3208
  var _this = this;
3222
- __classPrivateFieldGet(this, _subscription$2).add(__classPrivateFieldGet(this, _reload).pipe(operators.debounceTime(200), operators.switchMap(function (data) { return __awaiter(_this, void 0, void 0, function () {
3209
+ __classPrivateFieldGet(this, _subscription$1).add(__classPrivateFieldGet(this, _reload).pipe(operators.debounceTime(200), operators.switchMap(function (data) { return __awaiter(_this, void 0, void 0, function () {
3223
3210
  var filterInfo, result;
3224
3211
  return __generator(this, function (_3) {
3225
3212
  switch (_3.label) {
@@ -3234,19 +3221,26 @@
3234
3221
  });
3235
3222
  }); }))
3236
3223
  .subscribe(__classPrivateFieldGet(this, _render)));
3237
- __classPrivateFieldGet(this, _subscription$2).add(this.sdCellDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initCellDef)));
3238
- __classPrivateFieldGet(this, _subscription$2).add(this.sdFooterDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initFooterDef)));
3239
- __classPrivateFieldGet(this, _subscription$2).add(this.sdFilterDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initFilterDef)));
3240
- __classPrivateFieldGet(this, _subscription$2).add(rxjs.combineLatest([
3224
+ __classPrivateFieldGet(this, _subscription$1).add(this.sdCellDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initCellDef)));
3225
+ __classPrivateFieldGet(this, _subscription$1).add(this.sdFooterDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initFooterDef)));
3226
+ __classPrivateFieldGet(this, _subscription$1).add(this.sdFilterDefs.changes.pipe(operators.startWith([])).subscribe(__classPrivateFieldGet(this, _initFilterDef)));
3227
+ __classPrivateFieldGet(this, _subscription$1).add(rxjs.combineLatest([
3241
3228
  __classPrivateFieldGet(this, _optionChanges).pipe(operators.startWith(this.gridOption)),
3242
3229
  this.sdFilterDefs.changes.pipe(operators.startWith(this.filterDefs)),
3243
3230
  ]).subscribe(function () {
3244
3231
  __classPrivateFieldGet(_this, _loadFilterRegister).call(_this);
3245
3232
  }));
3233
+ __classPrivateFieldGet(this, _subscription$1).add(__classPrivateFieldGet(this, _optionChanges).subscribe(function () {
3234
+ if (_this.filterRegister) {
3235
+ __classPrivateFieldGet(_this, _reload).next({
3236
+ force: true,
3237
+ });
3238
+ }
3239
+ }));
3246
3240
  this.ref.detectChanges();
3247
3241
  };
3248
3242
  SdGridMaterial.prototype.ngOnDestroy = function () {
3249
- __classPrivateFieldGet(this, _subscription$2).unsubscribe();
3243
+ __classPrivateFieldGet(this, _subscription$1).unsubscribe();
3250
3244
  };
3251
3245
  SdGridMaterial.prototype.drop = function (event, columns) {
3252
3246
  dragDrop.moveItemInArray(columns, event.previousIndex, event.currentIndex);
@@ -3307,7 +3301,7 @@
3307
3301
  });
3308
3302
  return SdGridMaterial;
3309
3303
  }());
3310
- _optionChanges = new WeakMap(), _localItems = new WeakMap(), _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$2 = new WeakMap(), _reload = new WeakMap(), _loadCompleted = new WeakMap(), _initCellDef = new WeakMap(), _initFilterDef = new WeakMap(), _initFooterDef = new WeakMap(), _filterExportInfo = new WeakMap(), _initConfiguration$1 = new WeakMap(), _loadFilterRegister = new WeakMap(), _filterLocal = new WeakMap(), _getFilter = new WeakMap(), _load$1 = new WeakMap(), _render = new WeakMap(), _exportedItems = new WeakMap(), _allColumns = new WeakMap(), _allExportedColumns = new WeakMap(), _onExport = new WeakMap(), _updateSelectedItems = new WeakMap();
3304
+ _optionChanges = new WeakMap(), _localItems = new WeakMap(), _paginator = new WeakMap(), _sort = new WeakMap(), _subscription$1 = new WeakMap(), _subcriptionFilterRegister = new WeakMap(), _reload = new WeakMap(), _loadCompleted = new WeakMap(), _initCellDef = new WeakMap(), _initFilterDef = new WeakMap(), _initFooterDef = new WeakMap(), _filterExportInfo = new WeakMap(), _initConfiguration$1 = new WeakMap(), _loadFilterRegister = new WeakMap(), _filterLocal = new WeakMap(), _getFilter = new WeakMap(), _load$1 = new WeakMap(), _render = new WeakMap(), _exportedItems = new WeakMap(), _allColumns = new WeakMap(), _allExportedColumns = new WeakMap(), _onExport = new WeakMap(), _updateSelectedItems = new WeakMap();
3311
3305
  SdGridMaterial.decorators = [
3312
3306
  { type: core.Component, args: [{
3313
3307
  selector: 'sd-grid-material',
@@ -4324,7 +4318,7 @@
4324
4318
  { type: setting.SdSettingService }
4325
4319
  ]; };
4326
4320
 
4327
- var _subscription$3;
4321
+ var _subscription$2;
4328
4322
  var SdDynamicColumn = /** @class */ (function () {
4329
4323
  function SdDynamicColumn(ref, generatedColumnService, notifyService, translateService, gridConfigurationService) {
4330
4324
  var _this = this;
@@ -4333,7 +4327,7 @@
4333
4327
  this.notifyService = notifyService;
4334
4328
  this.translateService = translateService;
4335
4329
  this.gridConfigurationService = gridConfigurationService;
4336
- _subscription$3.set(this, new rxjs.Subscription());
4330
+ _subscription$2.set(this, new rxjs.Subscription());
4337
4331
  this.columnTypes = ['string', 'number', 'bool', 'date', 'datetime', 'time', 'values', 'children', 'children-col'];
4338
4332
  this.form = new forms.FormGroup({});
4339
4333
  this.isDetail = false;
@@ -4378,23 +4372,23 @@
4378
4372
  var systemSetting = this.generatedColumnService.loadSystem(this.gridOption.config);
4379
4373
  var setting = this.generatedColumnService.load((_a = this.gridOption) === null || _a === void 0 ? void 0 : _a.config);
4380
4374
  if (systemSetting) {
4381
- (_b = __classPrivateFieldGet(this, _subscription$3)) === null || _b === void 0 ? void 0 : _b.add(systemSetting.observer.subscribe(function (columns) {
4375
+ (_b = __classPrivateFieldGet(this, _subscription$2)) === null || _b === void 0 ? void 0 : _b.add(systemSetting.observer.subscribe(function (columns) {
4382
4376
  _this.systemColumns = columns;
4383
4377
  }));
4384
4378
  }
4385
4379
  if (setting) {
4386
- (_c = __classPrivateFieldGet(this, _subscription$3)) === null || _c === void 0 ? void 0 : _c.add(setting.observer.subscribe(function (columns) {
4380
+ (_c = __classPrivateFieldGet(this, _subscription$2)) === null || _c === void 0 ? void 0 : _c.add(setting.observer.subscribe(function (columns) {
4387
4381
  _this.columns = columns;
4388
4382
  }));
4389
4383
  }
4390
4384
  this.originColumns = this.gridOption.columns.filter(function (e) { return e.type !== 'children' && e.type !== 'children-col'; });
4391
4385
  };
4392
4386
  SdDynamicColumn.prototype.ngOnDestroy = function () {
4393
- __classPrivateFieldGet(this, _subscription$3).unsubscribe();
4387
+ __classPrivateFieldGet(this, _subscription$2).unsubscribe();
4394
4388
  };
4395
4389
  return SdDynamicColumn;
4396
4390
  }());
4397
- _subscription$3 = new WeakMap();
4391
+ _subscription$2 = new WeakMap();
4398
4392
  SdDynamicColumn.decorators = [
4399
4393
  { type: core.Component, args: [{
4400
4394
  selector: 'sd-dynamic-column',