@fundamental-ngx/cdk 0.54.2-rc.9 → 0.55.0-rc.0
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/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
- package/fesm2022/fundamental-ngx-cdk-forms.mjs +21 -14
- package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +361 -312
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
- package/forms/cva/cva.directive.d.ts +7 -3
- package/package.json +8 -16
- package/utils/abstract-fd-ngx-class.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +7 -0
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +7 -7
- package/utils/toast/base-toast-positions.d.ts +16 -16
- package/utils/toast/classes/base-toast-animated-container.component.d.ts +1 -1
- package/utils/toast/classes/base-toast-container.component.d.ts +1 -1
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +1 -1
- package/esm2022/data-source/base/abstract-data-provider.class.mjs +0 -142
- package/esm2022/data-source/base/base-data-source.class.mjs +0 -112
- package/esm2022/data-source/data-source.directive.mjs +0 -95
- package/esm2022/data-source/data-source.module.mjs +0 -16
- package/esm2022/data-source/fundamental-ngx-cdk-data-source.mjs +0 -5
- package/esm2022/data-source/helpers/apply-datasource-directive.mjs +0 -7
- package/esm2022/data-source/helpers/common.mjs +0 -17
- package/esm2022/data-source/helpers/is-datasource.mjs +0 -7
- package/esm2022/data-source/index.mjs +0 -9
- package/esm2022/data-source/models/data-source-provider.mjs +0 -2
- package/esm2022/data-source/models/data-source.mjs +0 -2
- package/esm2022/data-source/models/index.mjs +0 -4
- package/esm2022/data-source/models/matching-strategy.mjs +0 -7
- package/esm2022/data-source/tokens.mjs +0 -6
- package/esm2022/forms/cva/cva-control.class.mjs +0 -42
- package/esm2022/forms/cva/cva.directive.mjs +0 -321
- package/esm2022/forms/forms.module.mjs +0 -16
- package/esm2022/forms/fundamental-ngx-cdk-forms.mjs +0 -5
- package/esm2022/forms/helpers/state.mjs +0 -7
- package/esm2022/forms/index.mjs +0 -13
- package/esm2022/forms/models/control-type.model.mjs +0 -2
- package/esm2022/forms/models/cva.mjs +0 -2
- package/esm2022/forms/models/form-error.mjs +0 -2
- package/esm2022/forms/models/form-field.mjs +0 -9
- package/esm2022/forms/models/form-state.mjs +0 -2
- package/esm2022/forms/models/select-item.mjs +0 -14
- package/esm2022/forms/tokens/form-field-control.token.mjs +0 -3
- package/esm2022/forms/tokens/form-field.token.mjs +0 -3
- package/esm2022/fundamental-ngx-cdk.mjs +0 -5
- package/esm2022/fundamental-ngx.module.mjs +0 -19
- package/esm2022/index.mjs +0 -5
- package/esm2022/utils/abstract-fd-ngx-class.mjs +0 -61
- package/esm2022/utils/async-strategy/function-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/index.mjs +0 -7
- package/esm2022/utils/async-strategy/observable-strategy.class.mjs +0 -13
- package/esm2022/utils/async-strategy/promise-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/select-strategy.class.mjs +0 -23
- package/esm2022/utils/async-strategy/subscription-strategy.interface.mjs +0 -2
- package/esm2022/utils/async-strategy/value-strategy.class.mjs +0 -10
- package/esm2022/utils/coercion/array.mjs +0 -7
- package/esm2022/utils/components/dynamic-portal/dynamic-portal.component.mjs +0 -98
- package/esm2022/utils/components/index.mjs +0 -2
- package/esm2022/utils/consts/error-messages.mjs +0 -6
- package/esm2022/utils/consts/index.mjs +0 -5
- package/esm2022/utils/consts/overflow-priority-score.mjs +0 -8
- package/esm2022/utils/consts/unicode-letters.regex.mjs +0 -11
- package/esm2022/utils/consts/unicode-numbers.regex.mjs +0 -8
- package/esm2022/utils/datatypes/color-accent.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/hash.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/index.mjs +0 -5
- package/esm2022/utils/datatypes/object-nesting.types.mjs +0 -2
- package/esm2022/utils/datatypes/size.datatype.mjs +0 -2
- package/esm2022/utils/decorators/apply-css-class.decorator.mjs +0 -61
- package/esm2022/utils/decorators/apply-css-style.decorator.mjs +0 -26
- package/esm2022/utils/decorators/coerce-boolean.mjs +0 -7
- package/esm2022/utils/decorators/coerce-css-pixel.mjs +0 -4
- package/esm2022/utils/decorators/index.mjs +0 -6
- package/esm2022/utils/decorators/setter-alternator.mjs +0 -18
- package/esm2022/utils/deprecated-selector.class.mjs +0 -35
- package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +0 -135
- package/esm2022/utils/directives/auto-complete/auto-complete.module.mjs +0 -17
- package/esm2022/utils/directives/breakpoints/breakpoint.directive.mjs +0 -156
- package/esm2022/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -19
- package/esm2022/utils/directives/clicked/clicked-behavior.module.mjs +0 -35
- package/esm2022/utils/directives/clicked/clicked-event.plugin.mjs +0 -79
- package/esm2022/utils/directives/clicked/clicked.directive.mjs +0 -36
- package/esm2022/utils/directives/clicked/element-click.observable.mjs +0 -21
- package/esm2022/utils/directives/clicked/fdk-clicked-provider.service.mjs +0 -48
- package/esm2022/utils/directives/clicked/index.mjs +0 -6
- package/esm2022/utils/directives/clicked/provide-fdk-clicked.mjs +0 -29
- package/esm2022/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +0 -84
- package/esm2022/utils/directives/disabled/disabled-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled.observer.mjs +0 -35
- package/esm2022/utils/directives/disabled/fdk-disabled-provider.service.mjs +0 -101
- package/esm2022/utils/directives/disabled/fdk-disabled.token.mjs +0 -3
- package/esm2022/utils/directives/disabled/index.mjs +0 -9
- package/esm2022/utils/directives/disabled/set-disabled-state.mjs +0 -18
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +0 -17
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -67
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -88
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -3
- package/esm2022/utils/directives/focus-key-manager/index.mjs +0 -5
- package/esm2022/utils/directives/focusable-grid/focusable-grid.directive.mjs +0 -164
- package/esm2022/utils/directives/focusable-grid/focusable-grid.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-grid/index.mjs +0 -4
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +0 -198
- package/esm2022/utils/directives/focusable-item/focusable-item.module.mjs +0 -16
- package/esm2022/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-item/focusable-list.position.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.item.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.observer.mjs +0 -46
- package/esm2022/utils/directives/focusable-item/get-item-element.mjs +0 -14
- package/esm2022/utils/directives/focusable-item/index.mjs +0 -9
- package/esm2022/utils/directives/focusable-item/indirect-focusable-item.directive.mjs +0 -44
- package/esm2022/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -32
- package/esm2022/utils/directives/focusable-item/is-item-focusable.mjs +0 -8
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +0 -300
- package/esm2022/utils/directives/focusable-list/focusable-list.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-list/index.mjs +0 -6
- package/esm2022/utils/directives/focusable-list/indirect-focusable-list.directive.mjs +0 -59
- package/esm2022/utils/directives/focusable-list/scroll.mjs +0 -43
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -55
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +0 -16
- package/esm2022/utils/directives/ignore-click-on-selection/tokens.mjs +0 -3
- package/esm2022/utils/directives/index.mjs +0 -35
- package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +0 -99
- package/esm2022/utils/directives/initial-focus/initial-focus.module.mjs +0 -16
- package/esm2022/utils/directives/intersection-spy/intersection-spy.directive.mjs +0 -42
- package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +0 -213
- package/esm2022/utils/directives/line-clamp/line-clamp.module.mjs +0 -16
- package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +0 -206
- package/esm2022/utils/directives/only-digits/only-digits.module.mjs +0 -16
- package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -18
- package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +0 -114
- package/esm2022/utils/directives/overflow-list/overflow-list.module.mjs +0 -17
- package/esm2022/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/readonly/fdk-readonly-provider.service.mjs +0 -101
- package/esm2022/utils/directives/readonly/fdk-readonly.token.mjs +0 -3
- package/esm2022/utils/directives/readonly/index.mjs +0 -10
- package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +0 -67
- package/esm2022/utils/directives/readonly/readonly-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly.observer.mjs +0 -33
- package/esm2022/utils/directives/readonly/set-readonly-state.mjs +0 -14
- package/esm2022/utils/directives/repeat/repeat.directive.mjs +0 -34
- package/esm2022/utils/directives/repeat/repeat.module.mjs +0 -16
- package/esm2022/utils/directives/resize/resize-handle.directive.mjs +0 -18
- package/esm2022/utils/directives/resize/resize.directive.mjs +0 -241
- package/esm2022/utils/directives/resize/resize.module.mjs +0 -17
- package/esm2022/utils/directives/resize-observer/index.mjs +0 -2
- package/esm2022/utils/directives/resize-observer/resize-observer.directive.mjs +0 -29
- package/esm2022/utils/directives/selectable-list/index.mjs +0 -8
- package/esm2022/utils/directives/selectable-list/select-component-root.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-item.directive.mjs +0 -147
- package/esm2022/utils/directives/selectable-list/selectable-item.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-list.directive.mjs +0 -85
- package/esm2022/utils/directives/selectable-list/selectable-list.module.mjs +0 -17
- package/esm2022/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selection.service.mjs +0 -138
- package/esm2022/utils/directives/template/template.directive.mjs +0 -25
- package/esm2022/utils/directives/template/template.module.mjs +0 -16
- package/esm2022/utils/directives/truncate/truncate.directive.mjs +0 -94
- package/esm2022/utils/directives/truncate/truncate.module.mjs +0 -16
- package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -274
- package/esm2022/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +0 -88
- package/esm2022/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +0 -83
- package/esm2022/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +0 -378
- package/esm2022/utils/drag-and-drop/dnd.interfaces.mjs +0 -2
- package/esm2022/utils/drag-and-drop/drag-and-drop.module.mjs +0 -22
- package/esm2022/utils/drag-and-drop/index.mjs +0 -8
- package/esm2022/utils/drag-and-drop/tokens.mjs +0 -4
- package/esm2022/utils/dynamic-component/dynamic-component-config.mjs +0 -2
- package/esm2022/utils/dynamic-component/dynamic-component-container.mjs +0 -32
- package/esm2022/utils/dynamic-component/dynamic-component-injector.mjs +0 -20
- package/esm2022/utils/dynamic-component/dynamic-component.service.mjs +0 -100
- package/esm2022/utils/dynamic-component/index.mjs +0 -5
- package/esm2022/utils/functions/consumer-provider-factory.mjs +0 -12
- package/esm2022/utils/functions/element-size.mjs +0 -23
- package/esm2022/utils/functions/get-document-font-size.mjs +0 -9
- package/esm2022/utils/functions/index.mjs +0 -14
- package/esm2022/utils/functions/intersection-observable.mjs +0 -26
- package/esm2022/utils/functions/is-compact-density.mjs +0 -11
- package/esm2022/utils/functions/is-odd.mjs +0 -9
- package/esm2022/utils/functions/key-util.mjs +0 -90
- package/esm2022/utils/functions/module-deprecations-provider.mjs +0 -18
- package/esm2022/utils/functions/parser-file-size.mjs +0 -37
- package/esm2022/utils/functions/random-color-accent.mjs +0 -5
- package/esm2022/utils/functions/resize-observable.mjs +0 -33
- package/esm2022/utils/functions/scroll.mjs +0 -19
- package/esm2022/utils/functions/uuidv4-generator.mjs +0 -12
- package/esm2022/utils/fundamental-ngx-cdk-utils.mjs +0 -5
- package/esm2022/utils/helpers/destroy-observable.mjs +0 -12
- package/esm2022/utils/helpers/dfs.mjs +0 -47
- package/esm2022/utils/helpers/get-native-element.mjs +0 -19
- package/esm2022/utils/helpers/index.mjs +0 -6
- package/esm2022/utils/helpers/range-selector.mjs +0 -117
- package/esm2022/utils/helpers/warn-once.mjs +0 -9
- package/esm2022/utils/index.mjs +0 -25
- package/esm2022/utils/interfaces/content-density.mjs +0 -2
- package/esm2022/utils/interfaces/css-class-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/css-style-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/has-element-ref.interface.mjs +0 -2
- package/esm2022/utils/interfaces/index.mjs +0 -8
- package/esm2022/utils/interfaces/keyboard-support-item.interface.mjs +0 -2
- package/esm2022/utils/interfaces/module-deprecation.interface.mjs +0 -2
- package/esm2022/utils/interfaces/require.interface.mjs +0 -2
- package/esm2022/utils/list-item/list-item-utils.mjs +0 -3
- package/esm2022/utils/models/nullable.mjs +0 -2
- package/esm2022/utils/pipes/async-or-sync.pipe.mjs +0 -35
- package/esm2022/utils/pipes/displayFn.pipe.mjs +0 -18
- package/esm2022/utils/pipes/filter-strings.pipe.mjs +0 -31
- package/esm2022/utils/pipes/index.mjs +0 -12
- package/esm2022/utils/pipes/is-compact.pipe.mjs +0 -16
- package/esm2022/utils/pipes/make-async.pipe.mjs +0 -24
- package/esm2022/utils/pipes/pipe.module.mjs +0 -65
- package/esm2022/utils/pipes/safe.pipe.mjs +0 -37
- package/esm2022/utils/pipes/search-highlight.pipe.mjs +0 -40
- package/esm2022/utils/pipes/truncate.pipe.mjs +0 -18
- package/esm2022/utils/pipes/two-digits.pipe.mjs +0 -23
- package/esm2022/utils/pipes/value-by-path.pipe.mjs +0 -16
- package/esm2022/utils/services/content-density.service.mjs +0 -35
- package/esm2022/utils/services/destroyed.service.mjs +0 -26
- package/esm2022/utils/services/focus-trap.service.mjs +0 -92
- package/esm2022/utils/services/index.mjs +0 -10
- package/esm2022/utils/services/keyboard-support/keyboard-support.service.mjs +0 -73
- package/esm2022/utils/services/local-storage.service.mjs +0 -38
- package/esm2022/utils/services/observers/attribute.observer.mjs +0 -81
- package/esm2022/utils/services/resize-observer.service.mjs +0 -92
- package/esm2022/utils/services/rtl.service.mjs +0 -32
- package/esm2022/utils/services/tabbable-element.service.mjs +0 -43
- package/esm2022/utils/toast/base-toast-animations.mjs +0 -22
- package/esm2022/utils/toast/base-toast-positions.mjs +0 -108
- package/esm2022/utils/toast/base-toast.service.mjs +0 -261
- package/esm2022/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -36
- package/esm2022/utils/toast/classes/base-toast-animated-container.component.mjs +0 -87
- package/esm2022/utils/toast/classes/base-toast-config.mjs +0 -23
- package/esm2022/utils/toast/classes/base-toast-container.component.mjs +0 -72
- package/esm2022/utils/toast/classes/base-toast-overlay-container.mjs +0 -25
- package/esm2022/utils/toast/classes/base-toast-ref.mjs +0 -45
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -19
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +0 -39
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -23
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -25
- package/esm2022/utils/toast/index.mjs +0 -16
- package/esm2022/utils/toast/interfaces/toast-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-text-component.interface.mjs +0 -2
- package/esm2022/utils/tokens/module-deprecations.token.mjs +0 -3
- package/esm2022/utils/tokens/viewport-size.observable.mjs +0 -20
- package/esm2022/utils/typecheck.mjs +0 -75
- package/esm2022/utils/utils.module.mjs +0 -131
|
@@ -8,11 +8,11 @@ import * as i0 from '@angular/core';
|
|
|
8
8
|
import { NgModule } from '@angular/core';
|
|
9
9
|
|
|
10
10
|
class FundamentalNgxCdkModule {
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FundamentalNgxCdkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: FundamentalNgxCdkModule, exports: [FormsModule, DataSourceModule, UtilsModule] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FundamentalNgxCdkModule, imports: [FormsModule, DataSourceModule, UtilsModule] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FundamentalNgxCdkModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [],
|
|
@@ -82,12 +82,16 @@ export declare class CvaDirective<T = any> implements HasElementRef, BaseCVA, Fo
|
|
|
82
82
|
readonly ngForm: NgForm | null;
|
|
83
83
|
/** @hidden */
|
|
84
84
|
readonly normalizedState$: import("@angular/core").Signal<"success" | "error" | "warning" | "default" | "information">;
|
|
85
|
+
/** @hidden */
|
|
86
|
+
protected _subscriptions: Subscription;
|
|
87
|
+
/**
|
|
88
|
+
* A private property to hold the ElementRef which might be null
|
|
89
|
+
*/
|
|
90
|
+
private _elementRefOrNull;
|
|
85
91
|
/**
|
|
86
92
|
* Element reference.
|
|
87
93
|
*/
|
|
88
|
-
|
|
89
|
-
/** @hidden */
|
|
90
|
-
protected _subscriptions: Subscription;
|
|
94
|
+
get elementRef(): ElementRef;
|
|
91
95
|
/** @hidden */
|
|
92
96
|
private _defaultId;
|
|
93
97
|
/** ID for the Element */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/cdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.55.0-rc.0",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"description": "Fundamental Library for Angular - CDK",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"node": ">= 10"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@angular/animations": "^
|
|
17
|
-
"@angular/cdk": "^
|
|
18
|
-
"@angular/common": "^
|
|
19
|
-
"@angular/core": "^
|
|
20
|
-
"@angular/forms": "^
|
|
21
|
-
"@angular/platform-browser": "^
|
|
22
|
-
"@angular/router": "^
|
|
16
|
+
"@angular/animations": "^19.0.0",
|
|
17
|
+
"@angular/cdk": "^19.0.0",
|
|
18
|
+
"@angular/common": "^19.0.0",
|
|
19
|
+
"@angular/core": "^19.0.0",
|
|
20
|
+
"@angular/forms": "^19.0.0",
|
|
21
|
+
"@angular/platform-browser": "^19.0.0",
|
|
22
|
+
"@angular/router": "^19.0.0",
|
|
23
23
|
"rxjs": "^7.8.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
@@ -43,26 +43,18 @@
|
|
|
43
43
|
},
|
|
44
44
|
".": {
|
|
45
45
|
"types": "./index.d.ts",
|
|
46
|
-
"esm2022": "./esm2022/fundamental-ngx-cdk.mjs",
|
|
47
|
-
"esm": "./esm2022/fundamental-ngx-cdk.mjs",
|
|
48
46
|
"default": "./fesm2022/fundamental-ngx-cdk.mjs"
|
|
49
47
|
},
|
|
50
48
|
"./data-source": {
|
|
51
49
|
"types": "./data-source/index.d.ts",
|
|
52
|
-
"esm2022": "./esm2022/data-source/fundamental-ngx-cdk-data-source.mjs",
|
|
53
|
-
"esm": "./esm2022/data-source/fundamental-ngx-cdk-data-source.mjs",
|
|
54
50
|
"default": "./fesm2022/fundamental-ngx-cdk-data-source.mjs"
|
|
55
51
|
},
|
|
56
52
|
"./forms": {
|
|
57
53
|
"types": "./forms/index.d.ts",
|
|
58
|
-
"esm2022": "./esm2022/forms/fundamental-ngx-cdk-forms.mjs",
|
|
59
|
-
"esm": "./esm2022/forms/fundamental-ngx-cdk-forms.mjs",
|
|
60
54
|
"default": "./fesm2022/fundamental-ngx-cdk-forms.mjs"
|
|
61
55
|
},
|
|
62
56
|
"./utils": {
|
|
63
57
|
"types": "./utils/index.d.ts",
|
|
64
|
-
"esm2022": "./esm2022/utils/fundamental-ngx-cdk-utils.mjs",
|
|
65
|
-
"esm": "./esm2022/utils/fundamental-ngx-cdk-utils.mjs",
|
|
66
58
|
"default": "./fesm2022/fundamental-ngx-cdk-utils.mjs"
|
|
67
59
|
}
|
|
68
60
|
},
|
|
@@ -24,5 +24,5 @@ export declare abstract class AbstractFdNgxClass implements HasElementRef, OnIni
|
|
|
24
24
|
/** @hidden */
|
|
25
25
|
ngOnInit(): void;
|
|
26
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractFdNgxClass, never>;
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractFdNgxClass, never, never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never,
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractFdNgxClass, never, never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
28
28
|
}
|
|
@@ -27,6 +27,8 @@ export declare class OverflowListDirective implements AfterViewInit {
|
|
|
27
27
|
/** @hidden */
|
|
28
28
|
private readonly _destroyRef;
|
|
29
29
|
/** @hidden */
|
|
30
|
+
private observer;
|
|
31
|
+
/** @hidden */
|
|
30
32
|
constructor(_el: ElementRef, _ngZone: NgZone);
|
|
31
33
|
/** @hidden */
|
|
32
34
|
ngAfterViewInit(): void;
|
|
@@ -34,6 +36,11 @@ export declare class OverflowListDirective implements AfterViewInit {
|
|
|
34
36
|
* @description Get amount of extra items in current list
|
|
35
37
|
* */
|
|
36
38
|
getAmountOfExtraItems(): number;
|
|
39
|
+
/**
|
|
40
|
+
* @description Ensuring that calculations run in the Angular zone
|
|
41
|
+
*/
|
|
42
|
+
calculateOverflow(): void;
|
|
43
|
+
private initResizeObserver;
|
|
37
44
|
/** @hidden */
|
|
38
45
|
private _calculateAmountOfOverflowedItems;
|
|
39
46
|
/**
|
|
@@ -91,5 +91,5 @@ export declare class DndItemDirective<T = any> implements DndItem, AfterContentI
|
|
|
91
91
|
/** @hidden */
|
|
92
92
|
private _listenElementEvents;
|
|
93
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<DndItemDirective<any>, never>;
|
|
94
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DndItemDirective<any>, "[fdkDndItem], [fd-dnd-item]", never, { "item": { "alias": "fdkDndItem"; "required": false; }; "applyDragItemClass": { "alias": "applyDragItemClass"; "required": false; }; "containerSelector": { "alias": "containerSelector"; "required": false; }; "stickInPlace": { "alias": "stickInPlace"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "classWhenElementDragged": { "alias": "classWhenElementDragged"; "required": false; }; }, { "moved": "moved"; "released": "released"; "started": "started"; }, never, never,
|
|
94
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DndItemDirective<any>, "[fdkDndItem], [fd-dnd-item]", never, { "item": { "alias": "fdkDndItem"; "required": false; }; "applyDragItemClass": { "alias": "applyDragItemClass"; "required": false; }; "containerSelector": { "alias": "containerSelector"; "required": false; }; "stickInPlace": { "alias": "stickInPlace"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "classWhenElementDragged": { "alias": "classWhenElementDragged"; "required": false; }; }, { "moved": "moved"; "released": "released"; "started": "started"; }, never, never, true, never>;
|
|
95
95
|
}
|
|
@@ -28,5 +28,5 @@ export declare class DndKeyboardGroupDirective {
|
|
|
28
28
|
/** @hidden Focus after moving elements with keyboard */
|
|
29
29
|
private _focusDndItem;
|
|
30
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<DndKeyboardGroupDirective, [null, { optional: true; }]>;
|
|
31
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DndKeyboardGroupDirective, "[fdkDndKeyboardGroup], [fdDndKeyboardGroup]", never, { "groups": { "alias": "groups"; "required": false; }; "disableKeyboardDragDrop": { "alias": "disableKeyboardDragDrop"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "customMoveFn": { "alias": "customMoveFn"; "required": false; }; "customTransferFn": { "alias": "customTransferFn"; "required": false; }; }, {}, never, never,
|
|
31
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DndKeyboardGroupDirective, "[fdkDndKeyboardGroup], [fdDndKeyboardGroup]", never, { "groups": { "alias": "groups"; "required": false; }; "disableKeyboardDragDrop": { "alias": "disableKeyboardDragDrop"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "customMoveFn": { "alias": "customMoveFn"; "required": false; }; "customTransferFn": { "alias": "customTransferFn"; "required": false; }; }, {}, never, never, true, never>;
|
|
32
32
|
}
|
|
@@ -57,5 +57,5 @@ export declare class DndKeyboardItemDirective implements OnInit, OnDestroy {
|
|
|
57
57
|
/** @hidden */
|
|
58
58
|
ngOnDestroy(): void;
|
|
59
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<DndKeyboardItemDirective, never>;
|
|
60
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DndKeyboardItemDirective, "[fdkDndKeyboardItem], [fdDndKeyboardItem]", never, { "itemIndex": { "alias": "itemIndex"; "required": false; }; "groupIndex": { "alias": "groupIndex"; "required": false; }; }, {}, never, never,
|
|
60
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DndKeyboardItemDirective, "[fdkDndKeyboardItem], [fdDndKeyboardItem]", never, { "itemIndex": { "alias": "itemIndex"; "required": false; }; "groupIndex": { "alias": "groupIndex"; "required": false; }; }, {}, never, never, true, never>;
|
|
61
61
|
}
|
|
@@ -109,5 +109,5 @@ export declare class DndListDirective<T> implements AfterContentInit, OnDestroy
|
|
|
109
109
|
/** @hidden */
|
|
110
110
|
private _changeDraggableState;
|
|
111
111
|
static ɵfac: i0.ɵɵFactoryDeclaration<DndListDirective<any>, never>;
|
|
112
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DndListDirective<any>, "[fdkDndList], [fd-dnd-list]", never, { "gridMode": { "alias": "gridMode"; "required": false; }; "dropMode": { "alias": "dropMode"; "required": false; }; "threshold": { "alias": "threshold"; "required": false; }; "items": { "alias": "items"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "dropPredicate": { "alias": "dropPredicate"; "required": false; }; "dragoverPredicate": { "alias": "dragoverPredicate"; "required": false; }; }, { "dropPredicateCalculating": "dropPredicateCalculating"; "itemsChange": "itemsChange"; "itemDropped": "itemDropped"; "dropCancelled": "dropCancelled"; }, ["dndItems"], never,
|
|
112
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DndListDirective<any>, "[fdkDndList], [fd-dnd-list]", never, { "gridMode": { "alias": "gridMode"; "required": false; }; "dropMode": { "alias": "dropMode"; "required": false; }; "threshold": { "alias": "threshold"; "required": false; }; "items": { "alias": "items"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "dropPredicate": { "alias": "dropPredicate"; "required": false; }; "dragoverPredicate": { "alias": "dragoverPredicate"; "required": false; }; }, { "dropPredicateCalculating": "dropPredicateCalculating"; "itemsChange": "itemsChange"; "itemDropped": "itemDropped"; "dropCancelled": "dropCancelled"; }, ["dndItems"], never, true, never>;
|
|
113
113
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "
|
|
3
|
-
import * as i2 from "
|
|
4
|
-
import * as i3 from "./dnd-
|
|
5
|
-
import * as i4 from "./dnd-
|
|
6
|
-
import * as i5 from "
|
|
7
|
-
import * as i6 from "
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
|
4
|
+
import * as i3 from "./dnd-item/dnd-item.directive";
|
|
5
|
+
import * as i4 from "./dnd-list/dnd-list.directive";
|
|
6
|
+
import * as i5 from "./dnd-keyboard-group/dnd-keyboard-group.directive";
|
|
7
|
+
import * as i6 from "./dnd-keyboard-item/dnd-keyboard-item.directive";
|
|
8
8
|
export declare class DragAndDropModule {
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<DragAndDropModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DragAndDropModule, [typeof i1.
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DragAndDropModule, never, [typeof i1.CommonModule, typeof i2.DragDropModule, typeof i3.DndItemDirective, typeof i4.DndListDirective, typeof i5.DndKeyboardGroupDirective, typeof i6.DndKeyboardItemDirective], [typeof i3.DndItemDirective, typeof i4.DndListDirective, typeof i5.DndKeyboardGroupDirective, typeof i6.DndKeyboardItemDirective]>;
|
|
11
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<DragAndDropModule>;
|
|
12
12
|
}
|
|
@@ -65,10 +65,10 @@ export declare class ToastTopLeftPosition extends ToastTopCenterPosition {
|
|
|
65
65
|
static global: {
|
|
66
66
|
left: string;
|
|
67
67
|
center: boolean;
|
|
68
|
-
right?: string
|
|
69
|
-
bottom?: string
|
|
70
|
-
top?: string
|
|
71
|
-
centerVertically?: boolean
|
|
68
|
+
right?: string;
|
|
69
|
+
bottom?: string;
|
|
70
|
+
top?: string;
|
|
71
|
+
centerVertically?: boolean;
|
|
72
72
|
};
|
|
73
73
|
/** @hidden */
|
|
74
74
|
static connected: ConnectedPosition;
|
|
@@ -83,10 +83,10 @@ export declare class ToastTopRightPosition extends ToastTopCenterPosition {
|
|
|
83
83
|
static global: {
|
|
84
84
|
right: string;
|
|
85
85
|
center: boolean;
|
|
86
|
-
left?: string
|
|
87
|
-
bottom?: string
|
|
88
|
-
top?: string
|
|
89
|
-
centerVertically?: boolean
|
|
86
|
+
left?: string;
|
|
87
|
+
bottom?: string;
|
|
88
|
+
top?: string;
|
|
89
|
+
centerVertically?: boolean;
|
|
90
90
|
};
|
|
91
91
|
/** @hidden */
|
|
92
92
|
static connected: ConnectedPosition;
|
|
@@ -101,10 +101,10 @@ export declare class ToastBottomLeftPosition extends ToastBottomCenterPosition {
|
|
|
101
101
|
static global: {
|
|
102
102
|
left: string;
|
|
103
103
|
center: boolean;
|
|
104
|
-
right?: string
|
|
105
|
-
bottom?: string
|
|
106
|
-
top?: string
|
|
107
|
-
centerVertically?: boolean
|
|
104
|
+
right?: string;
|
|
105
|
+
bottom?: string;
|
|
106
|
+
top?: string;
|
|
107
|
+
centerVertically?: boolean;
|
|
108
108
|
};
|
|
109
109
|
/** @hidden */
|
|
110
110
|
static connected: ConnectedPosition;
|
|
@@ -119,10 +119,10 @@ export declare class ToastBottomRightPosition extends ToastBottomCenterPosition
|
|
|
119
119
|
static global: {
|
|
120
120
|
right: string;
|
|
121
121
|
center: boolean;
|
|
122
|
-
left?: string
|
|
123
|
-
bottom?: string
|
|
124
|
-
top?: string
|
|
125
|
-
centerVertically?: boolean
|
|
122
|
+
left?: string;
|
|
123
|
+
bottom?: string;
|
|
124
|
+
top?: string;
|
|
125
|
+
centerVertically?: boolean;
|
|
126
126
|
};
|
|
127
127
|
/** @hidden */
|
|
128
128
|
static connected: ConnectedPosition;
|
|
@@ -37,5 +37,5 @@ export declare abstract class BaseToastAnimatedContainerComponent<P extends Base
|
|
|
37
37
|
*/
|
|
38
38
|
private _completeExit;
|
|
39
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseToastAnimatedContainerComponent<any>, never>;
|
|
40
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastAnimatedContainerComponent<any>, never, never, {}, {}, never, never,
|
|
40
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastAnimatedContainerComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
41
41
|
}
|
|
@@ -51,5 +51,5 @@ export declare abstract class BaseToastContainerComponent<P extends BaseToastCon
|
|
|
51
51
|
*/
|
|
52
52
|
attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;
|
|
53
53
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseToastContainerComponent<any>, never>;
|
|
54
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastContainerComponent<any>, never, never, {}, {}, never, never,
|
|
54
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastContainerComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
55
55
|
}
|
|
@@ -16,5 +16,5 @@ export declare abstract class BaseToastDurationDismissibleContainerComponent<P e
|
|
|
16
16
|
/** @Hidden */
|
|
17
17
|
ngOnDestroy(): void;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseToastDurationDismissibleContainerComponent<any>, never>;
|
|
19
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastDurationDismissibleContainerComponent<any>, never, never, {}, {}, never, never,
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseToastDurationDismissibleContainerComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
20
20
|
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { isFunction, isJsObject } from '@fundamental-ngx/cdk/utils';
|
|
2
|
-
import { isObservable, of } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { getMatchingStrategyStartsWithPerTermReqexp, objectToName, objectValues } from '../helpers/common';
|
|
5
|
-
import { MatchingStrategy } from '../models/matching-strategy';
|
|
6
|
-
/**
|
|
7
|
-
* Base data provider class.
|
|
8
|
-
*/
|
|
9
|
-
export class AbstractDataProvider {
|
|
10
|
-
constructor() {
|
|
11
|
-
/** @hidden */
|
|
12
|
-
this._matchingStrategy = MatchingStrategy.STARTS_WITH;
|
|
13
|
-
/** @hidden */
|
|
14
|
-
this._matchingBy = null;
|
|
15
|
-
}
|
|
16
|
-
/** @hidden */
|
|
17
|
-
setLookupKey(key) {
|
|
18
|
-
this._keyPath = key;
|
|
19
|
-
}
|
|
20
|
-
/** @hidden */
|
|
21
|
-
setMatchingBy(matchingBy) {
|
|
22
|
-
this._matchingBy = matchingBy;
|
|
23
|
-
}
|
|
24
|
-
/** @hidden */
|
|
25
|
-
setMatchingStrategy(strategy) {
|
|
26
|
-
this._matchingStrategy = strategy;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Default data provider class used for other components to extend from.
|
|
31
|
-
*/
|
|
32
|
-
export class DataProvider extends AbstractDataProvider {
|
|
33
|
-
/** @hidden */
|
|
34
|
-
constructor(values) {
|
|
35
|
-
super();
|
|
36
|
-
this.values = values;
|
|
37
|
-
/** Default limit for the pagination. */
|
|
38
|
-
this.defaultLimit = 50;
|
|
39
|
-
}
|
|
40
|
-
/** @hidden */
|
|
41
|
-
fetch(params) {
|
|
42
|
-
const observable = isObservable(this.values) ? this.values : of(this.values);
|
|
43
|
-
const queryString = params.get('query');
|
|
44
|
-
const limit = params.get('limit') || this.defaultLimit;
|
|
45
|
-
if (!queryString || queryString === '*') {
|
|
46
|
-
return observable.pipe(map((items) => this.withLimit(items, limit)));
|
|
47
|
-
}
|
|
48
|
-
const toLowerPattern = queryString.toLowerCase();
|
|
49
|
-
return observable.pipe(map((items) => {
|
|
50
|
-
const result = [];
|
|
51
|
-
for (let i = 0; i < items.length; i++) {
|
|
52
|
-
const item = items[i];
|
|
53
|
-
if (this.matches(item, toLowerPattern)) {
|
|
54
|
-
result.push(item);
|
|
55
|
-
if (result.length >= limit) {
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return result;
|
|
61
|
-
}));
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Returns observable with the number of total items that satisfy the search query.
|
|
65
|
-
* Warning: this is a naive implementation of the number of the filtered items.
|
|
66
|
-
* For real-world scenarios, it is recommended to override this method with its own logic.
|
|
67
|
-
*/
|
|
68
|
-
getTotalItems(params) {
|
|
69
|
-
const observable = isObservable(this.values) ? this.values : of(this.values);
|
|
70
|
-
const queryString = params.get('query');
|
|
71
|
-
if (!queryString) {
|
|
72
|
-
return observable.pipe(map((items) => items.length));
|
|
73
|
-
}
|
|
74
|
-
const toLowerPattern = queryString.toLowerCase();
|
|
75
|
-
return observable.pipe(map((items) => items.filter((item) => this.matches(item, toLowerPattern)).length));
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Warning: If you don't supply search Key and you want fulltext search, and you use this
|
|
79
|
-
* default implementation, be aware that it can perform poorly as it is a naive implementation
|
|
80
|
-
* that does not do deep compare.
|
|
81
|
-
*/
|
|
82
|
-
matches(item, pattern) {
|
|
83
|
-
if (!this._matchingBy) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
const { firstBy, secondaryBy } = this._matchingBy;
|
|
87
|
-
let matched = this.matchesBy(item, pattern, firstBy);
|
|
88
|
-
if (!matched && secondaryBy) {
|
|
89
|
-
matched = this.matchesBy(item, pattern, secondaryBy);
|
|
90
|
-
}
|
|
91
|
-
return matched;
|
|
92
|
-
}
|
|
93
|
-
/** @hidden */
|
|
94
|
-
matchesBy(item, pattern, matchingBy) {
|
|
95
|
-
const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;
|
|
96
|
-
if (isFunction(value)) {
|
|
97
|
-
return value.call(item);
|
|
98
|
-
}
|
|
99
|
-
else if (isJsObject(value)) {
|
|
100
|
-
return this.hasObjectValue(item, pattern);
|
|
101
|
-
}
|
|
102
|
-
else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {
|
|
103
|
-
const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);
|
|
104
|
-
return !!pattern && !!value && !!value.match(reqexp);
|
|
105
|
-
}
|
|
106
|
-
else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {
|
|
107
|
-
return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());
|
|
108
|
-
}
|
|
109
|
-
else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {
|
|
110
|
-
return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
return !!pattern && !!value && value.toString().toLowerCase() === pattern;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/** @hidden */
|
|
117
|
-
hasObjectValue(obj, pattern) {
|
|
118
|
-
const values = objectValues(obj);
|
|
119
|
-
const parentObj = objectToName(obj);
|
|
120
|
-
const length2 = values.filter((value) => {
|
|
121
|
-
if (!value || Array.isArray(value)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
else if (!isJsObject(value) && !isFunction(value)) {
|
|
125
|
-
return value.toString().toLowerCase().indexOf(pattern) !== -1;
|
|
126
|
-
}
|
|
127
|
-
else if (isJsObject(value) && objectToName(value) !== parentObj) {
|
|
128
|
-
return this.hasObjectValue(value, pattern);
|
|
129
|
-
}
|
|
130
|
-
return false;
|
|
131
|
-
}).length;
|
|
132
|
-
return length2 > 0;
|
|
133
|
-
}
|
|
134
|
-
/** @hidden */
|
|
135
|
-
withLimit(data, limit) {
|
|
136
|
-
if (limit && data.length > limit) {
|
|
137
|
-
return data.slice(0, limit);
|
|
138
|
-
}
|
|
139
|
-
return data;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2Jhc2UvYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBRUgsMENBQTBDLEVBQzFDLFlBQVksRUFDWixZQUFZLEVBQ2YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFcEY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG9CQUFvQjtJQUExQztRQVVJLGNBQWM7UUFDSixzQkFBaUIsR0FBcUIsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBRTdFLGNBQWM7UUFDSixnQkFBVyxHQUFzQixJQUFJLENBQUM7SUFnQnBELENBQUM7SUFkRyxjQUFjO0lBQ2QsWUFBWSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhLENBQUMsVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxtQkFBbUIsQ0FBQyxRQUEwQjtRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQWdCLFNBQVEsb0JBQXVCO0lBR3hELGNBQWM7SUFDZCxZQUFzQixNQUE2QjtRQUMv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QUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNWLE9BQU8sT0FBTyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztJQUNOLFNBQVMsQ0FBQyxJQUFjLEVBQUUsS0FBYztRQUM1QyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRnVuY3Rpb24sIGlzSnNPYmplY3QgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIFByb3ZpZGVyUGFyYW1zLFxuICAgIGdldE1hdGNoaW5nU3RyYXRlZ3lTdGFydHNXaXRoUGVyVGVybVJlcWV4cCxcbiAgICBvYmplY3RUb05hbWUsXG4gICAgb2JqZWN0VmFsdWVzXG59IGZyb20gJy4uL2hlbHBlcnMvY29tbW9uJztcbmltcG9ydCB7IE1hdGNoQnksIE1hdGNoaW5nQnksIE1hdGNoaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9tb2RlbHMvbWF0Y2hpbmctc3RyYXRlZ3knO1xuXG4vKipcbiAqIEJhc2UgZGF0YSBwcm92aWRlciBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFic3RyYWN0IGdldFRvdGFsSXRlbXMocGFyYW1zPzogTWFwPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9rZXlQYXRoOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfbWF0Y2hpbmdTdHJhdGVneTogTWF0Y2hpbmdTdHJhdGVneSA9IE1hdGNoaW5nU3RyYXRlZ3kuU1RBUlRTX1dJVEg7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfbWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRMb29rdXBLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5UGF0aCA9IGtleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXRjaGluZ0J5ID0gbWF0Y2hpbmdCeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nU3RyYXRlZ3koc3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9IHN0cmF0ZWd5O1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWZhdWx0IGRhdGEgcHJvdmlkZXIgY2xhc3MgdXNlZCBmb3Igb3RoZXIgY29tcG9uZW50cyB0byBleHRlbmQgZnJvbS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFQcm92aWRlcjxUPiBleHRlbmRzIEFic3RyYWN0RGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogRGVmYXVsdCBsaW1pdCBmb3IgdGhlIHBhZ2luYXRpb24uICovXG4gICAgcHVibGljIGRlZmF1bHRMaW1pdCA9IDUwO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZhbHVlczogT2JzZXJ2YWJsZTxUW10+IHwgVFtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmZXRjaChwYXJhbXM6IE1hcDxzdHJpbmcsIGFueT4pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gaXNPYnNlcnZhYmxlKHRoaXMudmFsdWVzKSA/IHRoaXMudmFsdWVzIDogb2YodGhpcy52YWx1ZXMpO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGFyYW1zLmdldCgncXVlcnknKTtcbiAgICAgICAgY29uc3QgbGltaXQgPSBwYXJhbXMuZ2V0KCdsaW1pdCcpIHx8IHRoaXMuZGVmYXVsdExpbWl0O1xuXG4gICAgICAgIGlmICghcXVlcnlTdHJpbmcgfHwgcXVlcnlTdHJpbmcgPT09ICcqJykge1xuICAgICAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShtYXAoKGl0ZW1zKSA9PiB0aGlzLndpdGhMaW1pdChpdGVtcywgbGltaXQpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b0xvd2VyUGF0dGVybiA9IHF1ZXJ5U3RyaW5nLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0Y2hlcyhpdGVtLCB0b0xvd2VyUGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPj0gbGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSB3aXRoIHRoZSBudW1iZXIgb2YgdG90YWwgaXRlbXMgdGhhdCBzYXRpc2Z5IHRoZSBzZWFyY2ggcXVlcnkuXG4gICAgICogV2FybmluZzogdGhpcyBpcyBhIG5haXZlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBudW1iZXIgb2YgdGhlIGZpbHRlcmVkIGl0ZW1zLlxuICAgICAqIEZvciByZWFsLXdvcmxkIHNjZW5hcmlvcywgaXQgaXMgcmVjb21tZW5kZWQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2Qgd2l0aCBpdHMgb3duIGxvZ2ljLlxuICAgICAqL1xuICAgIGdldFRvdGFsSXRlbXMocGFyYW1zOiBNYXA8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZSh0aGlzLnZhbHVlcykgPyB0aGlzLnZhbHVlcyA6IG9mKHRoaXMudmFsdWVzKTtcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXJhbXMuZ2V0KCdxdWVyeScpO1xuXG4gICAgICAgIGlmICghcXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUobWFwKChpdGVtcykgPT4gaXRlbXMubGVuZ3RoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b0xvd2VyUGF0dGVybiA9IHF1ZXJ5U3RyaW5nLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHRoaXMubWF0Y2hlcyhpdGVtLCB0b0xvd2VyUGF0dGVybikpLmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdhcm5pbmc6IElmIHlvdSBkb24ndCBzdXBwbHkgc2VhcmNoIEtleSBhbmQgeW91IHdhbnQgZnVsbHRleHQgc2VhcmNoLCBhbmQgeW91IHVzZSB0aGlzXG4gICAgICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYmUgYXdhcmUgdGhhdCBpdCBjYW4gcGVyZm9ybSBwb29ybHkgYXMgaXQgaXMgYSBuYWl2ZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIHRoYXQgZG9lcyBub3QgZG8gZGVlcCBjb21wYXJlLlxuICAgICAqL1xuICAgIG1hdGNoZXMoaXRlbTogVCwgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5fbWF0Y2hpbmdCeSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZmlyc3RCeSwgc2Vjb25kYXJ5QnkgfSA9IHRoaXMuX21hdGNoaW5nQnk7XG5cbiAgICAgICAgbGV0IG1hdGNoZWQgPSB0aGlzLm1hdGNoZXNCeShpdGVtLCBwYXR0ZXJuLCBmaXJzdEJ5KTtcbiAgICAgICAgaWYgKCFtYXRjaGVkICYmIHNlY29uZGFyeUJ5KSB7XG4gICAgICAgICAgICBtYXRjaGVkID0gdGhpcy5tYXRjaGVzQnkoaXRlbSwgcGF0dGVybiwgc2Vjb25kYXJ5QnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXRjaGVzQnkoaXRlbTogYW55LCBwYXR0ZXJuOiBzdHJpbmcsIG1hdGNoaW5nQnk6IE1hdGNoQnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpc0pzT2JqZWN0KGl0ZW0pICYmIG1hdGNoaW5nQnkgPyBtYXRjaGluZ0J5KGl0ZW0pIDogaXRlbTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5jYWxsKGl0ZW0pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzSnNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNPYmplY3RWYWx1ZShpdGVtLCBwYXR0ZXJuKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIX1BFUl9URVJNKSB7XG4gICAgICAgICAgICBjb25zdCByZXFleHAgPSBnZXRNYXRjaGluZ1N0cmF0ZWd5U3RhcnRzV2l0aFBlclRlcm1SZXFleHAocGF0dGVybik7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgISF2YWx1ZS5tYXRjaChyZXFleHApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPT09IE1hdGNoaW5nU3RyYXRlZ3kuU1RBUlRTX1dJVEgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwYXR0ZXJuLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPT09IE1hdGNoaW5nU3RyYXRlZ3kuQ09OVEFJTlMpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwYXR0ZXJuKSA+IC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICEhcGF0dGVybiAmJiAhIXZhbHVlICYmIHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gcGF0dGVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGhhc09iamVjdFZhbHVlKG9iajogYW55LCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0VmFsdWVzKG9iaik7XG4gICAgICAgIGNvbnN0IHBhcmVudE9iaiA9IG9iamVjdFRvTmFtZShvYmopO1xuICAgICAgICBjb25zdCBsZW5ndGgyID0gdmFsdWVzLmZpbHRlcigodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSnNPYmplY3QodmFsdWUpICYmICFpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwYXR0ZXJuKSAhPT0gLTE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSnNPYmplY3QodmFsdWUpICYmIG9iamVjdFRvTmFtZSh2YWx1ZSkgIT09IHBhcmVudE9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc09iamVjdFZhbHVlKHZhbHVlLCBwYXR0ZXJuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW5ndGgyID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgd2l0aExpbWl0KGRhdGE6IEFycmF5PFQ+LCBsaW1pdD86IG51bWJlcik6IEFycmF5PFQ+IHtcbiAgICAgICAgaWYgKGxpbWl0ICYmIGRhdGEubGVuZ3RoID4gbGltaXQpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnNsaWNlKDAsIGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
2
|
-
import { takeUntil } from 'rxjs/operators';
|
|
3
|
-
export class BaseDataSource {
|
|
4
|
-
/**
|
|
5
|
-
* Max limit of items to be returned.
|
|
6
|
-
*/
|
|
7
|
-
static { this.MaxLimit = 5; }
|
|
8
|
-
/**
|
|
9
|
-
* Emitted when new data has been requested.
|
|
10
|
-
* @returns Observable
|
|
11
|
-
*/
|
|
12
|
-
get dataRequested() {
|
|
13
|
-
return this._dataRequested$.asObservable();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Emitted when new data has been received.
|
|
17
|
-
* @returns Observable
|
|
18
|
-
*/
|
|
19
|
-
get dataReceived() {
|
|
20
|
-
return this._dataReceived$.asObservable();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Emitted when loading state has been changed.
|
|
24
|
-
* @returns Observable.
|
|
25
|
-
*/
|
|
26
|
-
get dataLoading() {
|
|
27
|
-
return this._dataLoading$.asObservable();
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Emits when the data from the provider has been changed.
|
|
31
|
-
* @returns Observable of data source objects.
|
|
32
|
-
*/
|
|
33
|
-
get dataChanges() {
|
|
34
|
-
return this._dataChanges$.asObservable().pipe(takeUntil(this._destroy$));
|
|
35
|
-
}
|
|
36
|
-
/** @hidden */
|
|
37
|
-
constructor(dataProvider) {
|
|
38
|
-
this.dataProvider = dataProvider;
|
|
39
|
-
/**
|
|
40
|
-
* Whether to enable limit of max items.
|
|
41
|
-
*/
|
|
42
|
-
this.limitless = false;
|
|
43
|
-
/** @hidden */
|
|
44
|
-
this._dataChanges$ = new BehaviorSubject([]);
|
|
45
|
-
/** @hidden */
|
|
46
|
-
this._dataRequested$ = new BehaviorSubject(false);
|
|
47
|
-
/** @hidden */
|
|
48
|
-
this._dataReceived$ = new BehaviorSubject(false);
|
|
49
|
-
/** @hidden */
|
|
50
|
-
this._destroy$ = new Subject();
|
|
51
|
-
/** @hidden */
|
|
52
|
-
this._dataLoading$ = new BehaviorSubject(false);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Searches through the data source with defined parameters.
|
|
56
|
-
* @param predicate Search query.
|
|
57
|
-
* @param start start index.
|
|
58
|
-
* @param end end index.
|
|
59
|
-
*/
|
|
60
|
-
match(predicate = new Map(), start = 0, end = Infinity) {
|
|
61
|
-
this._dataRequested$.next(true);
|
|
62
|
-
this._dataLoading$.next(true);
|
|
63
|
-
const searchParam = this._getSearchParams(predicate);
|
|
64
|
-
this.dataProvider
|
|
65
|
-
.fetch(searchParam, start, end)
|
|
66
|
-
.pipe(takeUntil(this._destroy$))
|
|
67
|
-
.subscribe({
|
|
68
|
-
next: (result) => {
|
|
69
|
-
this._dataReceived$.next(true);
|
|
70
|
-
this._dataLoading$.next(false);
|
|
71
|
-
this._dataChanges$.next(result);
|
|
72
|
-
},
|
|
73
|
-
error: () => {
|
|
74
|
-
this._dataReceived$.next(false);
|
|
75
|
-
this._dataLoading$.next(false);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Returns the Observable of a total items number filtered by the `predicate` param.
|
|
81
|
-
* @param predicate Search query.
|
|
82
|
-
*/
|
|
83
|
-
getTotalItems(predicate = new Map()) {
|
|
84
|
-
const searchParam = this._getSearchParams(predicate);
|
|
85
|
-
return this.dataProvider.getTotalItems(searchParam);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Closes the stream
|
|
89
|
-
*/
|
|
90
|
-
unsubscribe() {
|
|
91
|
-
this._destroy$.next();
|
|
92
|
-
this._destroy$.complete();
|
|
93
|
-
}
|
|
94
|
-
/** @hidden */
|
|
95
|
-
_getSearchParams(predicate) {
|
|
96
|
-
const searchParam = new Map();
|
|
97
|
-
if (typeof predicate === 'string') {
|
|
98
|
-
searchParam.set('query', predicate);
|
|
99
|
-
}
|
|
100
|
-
else if (predicate instanceof Map) {
|
|
101
|
-
predicate.forEach((v, k) => searchParam.set(k, v));
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
throw new Error('DataSource.match() predicate can only accepts string and Map');
|
|
105
|
-
}
|
|
106
|
-
if (!searchParam.has('limit') && !this.limitless) {
|
|
107
|
-
searchParam.set('limit', BaseDataSource.MaxLimit);
|
|
108
|
-
}
|
|
109
|
-
return searchParam;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLXNvdXJjZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2Jhc2UvYmFzZS1kYXRhLXNvdXJjZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsTUFBTSxPQUFnQixjQUFjO0lBQ2hDOztPQUVHO2FBQ2EsYUFBUSxHQUFHLENBQUMsQUFBSixDQUFLO0lBbUI3Qjs7O09BR0c7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztJQUNkLFlBQTZCLFlBQXVDO1FBQXZDLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQWxEcEU7O1dBRUc7UUFDSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGNBQWM7UUFDSyxrQkFBYSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN0RixjQUFjO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLGVBQWUs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Q3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFTb3VyY2VQcm92aWRlciB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdERhdGFQcm92aWRlciB9IGZyb20gJy4vYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2VQcm92aWRlcjxUPiB7XG4gICAgLyoqXG4gICAgICogTWF4IGxpbWl0IG9mIGl0ZW1zIHRvIGJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIHN0YXRpYyByZWFkb25seSBNYXhMaW1pdCA9IDU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBsaW1pdCBvZiBtYXggaXRlbXMuXG4gICAgICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGF0YUNoYW5nZXMkOiBCZWhhdmlvclN1YmplY3Q8VFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFSZXF1ZXN0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFSZWNlaXZlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFMb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIG5ldyBkYXRhIGhhcyBiZWVuIHJlcXVlc3RlZC5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlXG4gICAgICovXG4gICAgZ2V0IGRhdGFSZXF1ZXN0ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUmVxdWVzdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gbmV3IGRhdGEgaGFzIGJlZW4gcmVjZWl2ZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIGdldCBkYXRhUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUmVjZWl2ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBsb2FkaW5nIHN0YXRlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZS5cbiAgICAgKi9cbiAgICBnZXQgZGF0YUxvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhTG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgZGF0YSBmcm9tIHRoZSBwcm92aWRlciBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgZGF0YSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKi9cbiAgICBnZXQgZGF0YUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFDaGFuZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IEFic3RyYWN0RGF0YVByb3ZpZGVyPGFueT4pIHt9XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2hlcyB0aHJvdWdoIHRoZSBkYXRhIHNvdXJjZSB3aXRoIGRlZmluZWQgcGFyYW1ldGVycy5cbiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIFNlYXJjaCBxdWVyeS5cbiAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgaW5kZXguXG4gICAgICogQHBhcmFtIGVuZCBlbmQgaW5kZXguXG4gICAgICovXG4gICAgbWF0Y2gocHJlZGljYXRlOiBzdHJpbmcgfCBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSwgc3RhcnQgPSAwLCBlbmQgPSBJbmZpbml0eSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kYXRhUmVxdWVzdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW0gPSB0aGlzLl9nZXRTZWFyY2hQYXJhbXMocHJlZGljYXRlKTtcblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmZldGNoKHNlYXJjaFBhcmFtLCBzdGFydCwgZW5kKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhUmVjZWl2ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUNoYW5nZXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFSZWNlaXZlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBPYnNlcnZhYmxlIG9mIGEgdG90YWwgaXRlbXMgbnVtYmVyIGZpbHRlcmVkIGJ5IHRoZSBgcHJlZGljYXRlYCBwYXJhbS5cbiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIFNlYXJjaCBxdWVyeS5cbiAgICAgKi9cbiAgICBnZXRUb3RhbEl0ZW1zKHByZWRpY2F0ZTogc3RyaW5nIHwgTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICBjb25zdCBzZWFyY2hQYXJhbSA9IHRoaXMuX2dldFNlYXJjaFBhcmFtcyhwcmVkaWNhdGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFQcm92aWRlci5nZXRUb3RhbEl0ZW1zKHNlYXJjaFBhcmFtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIHN0cmVhbVxuICAgICAqL1xuICAgIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRTZWFyY2hQYXJhbXMocHJlZGljYXRlOiBzdHJpbmcgfCBNYXA8c3RyaW5nLCBzdHJpbmc+KTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICAgICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtLnNldCgncXVlcnknLCBwcmVkaWNhdGUpO1xuICAgICAgICB9IGVsc2UgaWYgKHByZWRpY2F0ZSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgcHJlZGljYXRlLmZvckVhY2goKHYsIGspID0+IHNlYXJjaFBhcmFtLnNldChrLCB2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFTb3VyY2UubWF0Y2goKSBwcmVkaWNhdGUgY2FuIG9ubHkgYWNjZXB0cyBzdHJpbmcgYW5kIE1hcCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzZWFyY2hQYXJhbS5oYXMoJ2xpbWl0JykgJiYgIXRoaXMubGltaXRsZXNzKSB7XG4gICAgICAgICAgICBzZWFyY2hQYXJhbS5zZXQoJ2xpbWl0JywgQmFzZURhdGFTb3VyY2UuTWF4TGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlYXJjaFBhcmFtO1xuICAgIH1cbn1cbiJdfQ==
|