@dereekb/dbx-web 9.24.17 → 9.24.18

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.
@@ -1895,15 +1895,19 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1895
1895
  this._showPreset = new BehaviorSubject(false);
1896
1896
  this.showPreset$ = this._showPreset.asObservable();
1897
1897
  this.config$ = this._showPreset.pipe(map((showPreset) => {
1898
- const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass } = this.config;
1898
+ const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
1899
1899
  let componentClass;
1900
+ let baseConfig;
1900
1901
  if (showPreset) {
1901
- componentClass = presetFilterComponentClass;
1902
+ componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass);
1903
+ baseConfig = presetFilterComponentConfig;
1902
1904
  }
1903
1905
  else {
1904
- componentClass = customFilterComponentClass;
1906
+ componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass);
1907
+ baseConfig = customFilterComponentConfig;
1905
1908
  }
1906
1909
  const config = {
1910
+ ...baseConfig,
1907
1911
  componentClass,
1908
1912
  init: (filterSource) => {
1909
1913
  connector.connectWithSource(filterSource);
@@ -1915,12 +1919,14 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1915
1919
  this.close();
1916
1920
  });
1917
1921
  }
1922
+ // run the next init if provided
1923
+ baseConfig?.init?.(filterSource);
1918
1924
  }
1919
1925
  };
1920
1926
  return config;
1921
1927
  }));
1922
1928
  }
1923
- static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }, popoverKey) {
1929
+ static openPopover(popupService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }, popoverKey) {
1924
1930
  return popupService.open({
1925
1931
  key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,
1926
1932
  origin,
@@ -1936,6 +1942,8 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1936
1942
  closeButtonText,
1937
1943
  customFilterComponentClass,
1938
1944
  presetFilterComponentClass,
1945
+ customFilterComponentConfig,
1946
+ presetFilterComponentConfig,
1939
1947
  connector,
1940
1948
  initialFilterObs,
1941
1949
  closeOnFilterChange
@@ -1953,14 +1961,14 @@ class DbxFilterPopoverComponent extends AbstractPopoverDirective {
1953
1961
  }
1954
1962
  ngOnInit() {
1955
1963
  let showPreset = false;
1956
- const { customFilterComponentClass, presetFilterComponentClass } = this.config;
1957
- if (customFilterComponentClass) {
1964
+ const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;
1965
+ if (customFilterComponentClass || customFilterComponentConfig) {
1958
1966
  showPreset = false;
1959
1967
  }
1960
- if (presetFilterComponentClass) {
1968
+ if (presetFilterComponentClass || presetFilterComponentConfig) {
1961
1969
  showPreset = true;
1962
1970
  }
1963
- if (!customFilterComponentClass && !presetFilterComponentClass) {
1971
+ if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {
1964
1972
  throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');
1965
1973
  }
1966
1974
  this._showPreset.next(showPreset);
@@ -2273,6 +2281,7 @@ class AbstractDbxPresetFilterMenuComponent {
2273
2281
  constructor(filterSourceDirective) {
2274
2282
  this.filterSourceDirective = filterSourceDirective;
2275
2283
  //TODO: Rename to AbstractDbxPresetFilterMenuDirective with next breaking changes
2284
+ this.presetSelected = new EventEmitter();
2276
2285
  this._presets = new BehaviorSubject([]);
2277
2286
  this.selected$ = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));
2278
2287
  this.presetsWithPresetStringOnly$ = this._presets.pipe(map((x) => x.filter((y) => Boolean(y.preset))));
@@ -2336,16 +2345,20 @@ class AbstractDbxPresetFilterMenuComponent {
2336
2345
  }
2337
2346
  this.filterSourceDirective.setFilter(filter);
2338
2347
  }
2348
+ this.presetSelected.next(preset);
2339
2349
  }
2340
2350
  ngOnDestroy() {
2341
2351
  this._presets.complete();
2352
+ this.presetSelected.complete();
2342
2353
  }
2343
2354
  }
2344
2355
  AbstractDbxPresetFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, deps: [{ token: i1$2.FilterSourceDirective }], target: i0.ɵɵFactoryTarget.Directive });
2345
- AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, ngImport: i0 });
2356
+ AbstractDbxPresetFilterMenuComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractDbxPresetFilterMenuComponent, inputs: { presets: "presets" }, outputs: { presetSelected: "presetSelected" }, ngImport: i0 });
2346
2357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxPresetFilterMenuComponent, decorators: [{
2347
2358
  type: Directive
2348
- }], ctorParameters: function () { return [{ type: i1$2.FilterSourceDirective }]; }, propDecorators: { presets: [{
2359
+ }], ctorParameters: function () { return [{ type: i1$2.FilterSourceDirective }]; }, propDecorators: { presetSelected: [{
2360
+ type: Output
2361
+ }], presets: [{
2349
2362
  type: Input
2350
2363
  }] } });
2351
2364