@fundamental-ngx/cdk 0.40.0-rc.8 → 0.40.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.
Files changed (33) hide show
  1. package/esm2020/forms/cva/cva-control.class.mjs +2 -2
  2. package/esm2020/utils/directives/breakpoints/breakpoint.directive.mjs +168 -0
  3. package/esm2020/utils/directives/breakpoints/responsive-breakpoints.mjs +19 -0
  4. package/esm2020/utils/directives/disabled/default-disabled-view-modifier.mjs +2 -2
  5. package/esm2020/utils/directives/disabled/disabled-behavior.directive.mjs +15 -3
  6. package/esm2020/utils/directives/disabled/set-disabled-state.mjs +6 -4
  7. package/esm2020/utils/directives/index.mjs +2 -1
  8. package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +120 -12
  9. package/esm2020/utils/drag-and-drop/dnd.interfaces.mjs +1 -1
  10. package/esm2020/utils/index.mjs +2 -1
  11. package/esm2020/utils/services/resize-observer.service.mjs +6 -8
  12. package/esm2020/utils/tokens/viewport-size.observable.mjs +20 -0
  13. package/fesm2015/fundamental-ngx-cdk-forms.mjs +1 -1
  14. package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-cdk-utils.mjs +342 -26
  16. package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
  17. package/fesm2020/fundamental-ngx-cdk-forms.mjs +1 -1
  18. package/fesm2020/fundamental-ngx-cdk-forms.mjs.map +1 -1
  19. package/fesm2020/fundamental-ngx-cdk-utils.mjs +342 -26
  20. package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
  21. package/forms/cva/cva-control.class.d.ts +1 -1
  22. package/fundamental-ngx-cdk-v0.40.0.tgz +0 -0
  23. package/package.json +3 -3
  24. package/utils/directives/breakpoints/breakpoint.directive.d.ts +83 -0
  25. package/utils/directives/breakpoints/responsive-breakpoints.d.ts +10 -0
  26. package/utils/directives/disabled/disabled-behavior.directive.d.ts +9 -1
  27. package/utils/directives/disabled/set-disabled-state.d.ts +1 -1
  28. package/utils/directives/index.d.ts +1 -0
  29. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +39 -5
  30. package/utils/drag-and-drop/dnd.interfaces.d.ts +4 -0
  31. package/utils/index.d.ts +1 -0
  32. package/utils/tokens/viewport-size.observable.d.ts +8 -0
  33. package/fundamental-ngx-cdk-v0.40.0-rc.8.tgz +0 -0
@@ -12,7 +12,7 @@ export declare class CvaControl<T> {
12
12
  /**
13
13
  * Control value accessor directive instance.
14
14
  */
15
- cvaDirective: CvaDirective<any> | null;
15
+ cvaDirective: CvaDirective<T> | null;
16
16
  /**
17
17
  * Change detector instance.
18
18
  */
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/cdk",
3
- "version": "0.40.0-rc.8",
3
+ "version": "0.40.0",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - CDK",
6
6
  "license": "Apache-2.0",
@@ -25,9 +25,9 @@
25
25
  "dependencies": {
26
26
  "@sap-theming/theming-base-content": "^11.2.0",
27
27
  "focus-trap": "^7.1.0",
28
- "fundamental-styles": "0.27.1",
28
+ "fundamental-styles": "0.28.3",
29
29
  "@fundamental-styles/cx": "0.26.3-rc.5",
30
- "@fundamental-ngx/i18n": "0.40.0-rc.8",
30
+ "@fundamental-ngx/i18n": "0.40.0",
31
31
  "fast-deep-equal": "3.1.3",
32
32
  "lodash-es": "^4.17.0",
33
33
  "tslib": "^2.0.0",
@@ -0,0 +1,83 @@
1
+ import { AfterViewInit, ElementRef, EmbeddedViewRef, OnChanges, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { BooleanInput } from '@angular/cdk/coercion';
3
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
+ import { BreakpointName } from './responsive-breakpoints';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Directive to show/hide element on specific breakpoint or range of window width.
8
+ * Uses native ngIf directive to show/hide element.
9
+ */
10
+ export declare class BreakpointDirective implements OnChanges, AfterViewInit {
11
+ private readonly templateRef;
12
+ private readonly viewContainer;
13
+ /**
14
+ * Provide list of the breakpoints to show element on.
15
+ * */
16
+ set fdkBreakpoint(value: BreakpointName[]);
17
+ /**
18
+ * Show element on S breakpoint.
19
+ * S - 0 - 599px
20
+ * */
21
+ set showOnS(value: BooleanInput);
22
+ /**
23
+ * Show element on M breakpoint.
24
+ * M - 0 - 1023px
25
+ * */
26
+ set showOnM(value: BooleanInput);
27
+ /**
28
+ * Show element on L breakpoint.
29
+ * L - 0 - 1439px
30
+ * */
31
+ set showOnL(value: BooleanInput);
32
+ /**
33
+ * Show element on XL breakpoint.
34
+ * */
35
+ set showOnXL(value: BooleanInput);
36
+ /**
37
+ * Show element on breakpoint less than provided value.
38
+ * */
39
+ fdkBreakpointLt: number;
40
+ /**
41
+ * Show element on breakpoint greater than provided value.
42
+ * */
43
+ fdkBreakpointGt: number;
44
+ /**
45
+ * Observe element width changes.
46
+ */
47
+ set observationSource(value: HTMLElement | ElementRef<HTMLElement>);
48
+ /** @hidden */
49
+ templateViewRef?: EmbeddedViewRef<unknown>;
50
+ /** @hidden */
51
+ private _showOnS;
52
+ /** @hidden */
53
+ private _showOnM;
54
+ /** @hidden */
55
+ private _showOnL;
56
+ /** @hidden */
57
+ private _showOnXL;
58
+ /** @hidden */
59
+ private viewportSize$;
60
+ /** @hidden */
61
+ private _destroyed$;
62
+ /** @hidden */
63
+ private _resizeObserverService;
64
+ /** @hidden */
65
+ onChanges$: Subject<void>;
66
+ /** @hidden */
67
+ _sizeObservable$: BehaviorSubject<Observable<number>>;
68
+ /** @hidden */
69
+ constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
70
+ /** @hidden */
71
+ ngAfterViewInit(): void;
72
+ /** @hidden */
73
+ ngOnChanges(): void;
74
+ /** @hidden */
75
+ private _shouldShow;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreakpointDirective, never>;
77
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BreakpointDirective, "[fdkBreakpoint], [fdkBreakpointS], [fdkBreakpointM], [fdkBreakpointL], [fdkBreakpointXL], [fdkBreakpointLt], [fdkBreakpointGt]", never, { "fdkBreakpoint": "fdkBreakpoint"; "showOnS": "fdkBreakpointS"; "showOnM": "fdkBreakpointM"; "showOnL": "fdkBreakpointL"; "showOnXL": "fdkBreakpointXL"; "fdkBreakpointLt": "fdkBreakpointLt"; "fdkBreakpointGt": "fdkBreakpointGt"; "observationSource": "fdkBreakpointObserve"; }, {}, never, never, true, never>;
78
+ }
79
+ export declare class BreakpointModule {
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreakpointModule, never>;
81
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BreakpointModule, never, [typeof BreakpointDirective], [typeof BreakpointDirective]>;
82
+ static ɵinj: i0.ɵɵInjectorDeclaration<BreakpointModule>;
83
+ }
@@ -0,0 +1,10 @@
1
+ export declare const ResponsiveBreakpoints: {
2
+ readonly S: 600;
3
+ readonly M: 1024;
4
+ readonly L: 1440;
5
+ };
6
+ type breakpointName = keyof typeof ResponsiveBreakpoints | 'XL';
7
+ export type BreakpointName = Lowercase<breakpointName> | Uppercase<breakpointName>;
8
+ /** @hidden */
9
+ export declare function getBreakpointName(width: number): breakpointName;
10
+ export {};
@@ -18,6 +18,14 @@ export declare class DisabledBehaviorDirective extends ReplaySubject<boolean> im
18
18
  /** @hidden */
19
19
  set fdkDisabled(value: BooleanInput);
20
20
  get fdkDisabled(): boolean;
21
+ /**
22
+ * Whether to add `disabledClass` class to the element.
23
+ */
24
+ addDisabledClass: boolean;
25
+ /**
26
+ * Disabled css class to apply to the element.
27
+ */
28
+ disabledClass: string;
21
29
  /** @hidden */
22
30
  private _disabled;
23
31
  /** @hidden */
@@ -31,5 +39,5 @@ export declare class DisabledBehaviorDirective extends ReplaySubject<boolean> im
31
39
  /** @hidden */
32
40
  ngOnDestroy(): void;
33
41
  static ɵfac: i0.ɵɵFactoryDeclaration<DisabledBehaviorDirective, never>;
34
- static ɵdir: i0.ɵɵDirectiveDeclaration<DisabledBehaviorDirective, "[fdkDisabled]", never, { "fdkDisabled": "fdkDisabled"; }, {}, never, never, true, never>;
42
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DisabledBehaviorDirective, "[fdkDisabled]", never, { "fdkDisabled": "fdkDisabled"; "addDisabledClass": "addDisabledClass"; "disabledClass": "disabledClass"; }, {}, never, never, true, never>;
35
43
  }
@@ -1,4 +1,4 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import { HasElementRef } from '../../interfaces/has-element-ref.interface';
3
3
  /** @hidden */
4
- export declare function setDisabledState(element: HasElementRef<Element> | Element | ElementRef<Element>, isDisabled: boolean): void;
4
+ export declare function setDisabledState(element: HasElementRef<Element> | Element | ElementRef<Element>, isDisabled: boolean, disabledClass: string, addDisabledClass: boolean): void;
@@ -29,3 +29,4 @@ export * from './readonly';
29
29
  export * from './disabled';
30
30
  export * from './clicked';
31
31
  export * from './selectable-list';
32
+ export * from './breakpoints/breakpoint.directive';
@@ -1,14 +1,38 @@
1
1
  import { AfterContentInit, EventEmitter, OnDestroy, QueryList } from '@angular/core';
2
- import { FdDropEvent, ElementPosition, DndItem } from '../dnd.interfaces';
2
+ import { FdDropEvent, ElementPosition, DndItem, FdDndDropType } from '../dnd.interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class DndListDirective<T> implements AfterContentInit, OnDestroy {
5
5
  /**
6
- * Defines if the the element is allowed to be dragged in 2 dimensions,
6
+ * Defines if the element is allowed to be dragged in 2 dimensions,
7
7
  * When true - replace indicator will be displayed vertically
8
8
  */
9
9
  gridMode: boolean;
10
- /** When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element */
11
- replaceMode: boolean;
10
+ /**
11
+ * Defines drop strategy:
12
+ * * `shift` mode will create line after closest drop element.
13
+ * * `group` mode will create replace indicator on whole closest drop element.
14
+ * * `auto` mode will create line after closest drop element,
15
+ * if dragged element coordinates are shifted for 30% from center of the closest drop element.
16
+ * Otherwise, it will create replace indicator on whole closest drop element.
17
+ *
18
+ * `shift` mode is the default.
19
+ */
20
+ dropMode: FdDndDropType;
21
+ /**
22
+ * Threshold of dragged item over another item to define which type of `dropMode` should be used.
23
+ */
24
+ threshold: number;
25
+ /**
26
+ * @deprecated
27
+ * Use `dropMode` property for better configuration.
28
+ *
29
+ * @description
30
+ * When enabled, replace indicator will appear on whole element, instead of horizontal/vertical line before/after element.
31
+ */
32
+ set replaceMode(value: boolean);
33
+ get replaceMode(): boolean;
34
+ /** @hidden */
35
+ private _replaceMode;
12
36
  /** Array of items, that will be sorted */
13
37
  items: Array<T>;
14
38
  /** Defines if drag and drop feature should be enabled for list items */
@@ -34,6 +58,14 @@ export declare class DndListDirective<T> implements AfterContentInit, OnDestroy
34
58
  /** @hidden */
35
59
  private _draggable;
36
60
  /** @hidden */
61
+ private readonly _initialClass;
62
+ /** @hidden */
63
+ private _detectedDropMode;
64
+ /** @hidden */
65
+ private _linesRemoved;
66
+ /** @hidden */
67
+ private _indicatorsRemoved;
68
+ /** @hidden */
37
69
  ngAfterContentInit(): void;
38
70
  /** @hidden */
39
71
  ngOnDestroy(): void;
@@ -44,6 +76,8 @@ export declare class DndListDirective<T> implements AfterContentInit, OnDestroy
44
76
  /** Method called, when element is released */
45
77
  dragEnd(draggedItemIndex: number): void;
46
78
  /** @hidden */
79
+ private _selectDropModeIndicator;
80
+ /** @hidden */
47
81
  private _removeAllLines;
48
82
  /** @hidden */
49
83
  private _removeAllReplaceIndicators;
@@ -61,5 +95,5 @@ export declare class DndListDirective<T> implements AfterContentInit, OnDestroy
61
95
  /** @hidden */
62
96
  private _changeDraggableState;
63
97
  static ɵfac: i0.ɵɵFactoryDeclaration<DndListDirective<any>, never>;
64
- static ɵdir: i0.ɵɵDirectiveDeclaration<DndListDirective<any>, "[fdkDndList], [fd-dnd-list]", never, { "gridMode": "gridMode"; "replaceMode": "replaceMode"; "items": "items"; "draggable": "draggable"; }, { "itemsChange": "itemsChange"; "itemDropped": "itemDropped"; }, ["dndItems"], never, false, never>;
98
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DndListDirective<any>, "[fdkDndList], [fd-dnd-list]", never, { "gridMode": "gridMode"; "dropMode": "dropMode"; "threshold": "threshold"; "replaceMode": "replaceMode"; "items": "items"; "draggable": "draggable"; }, { "itemsChange": "itemsChange"; "itemDropped": "itemDropped"; }, ["dndItems"], never, false, never>;
65
99
  }
@@ -13,6 +13,8 @@ export interface FdDropEvent<T> {
13
13
  items: Array<T>;
14
14
  replacedItemIndex: number;
15
15
  draggedItemIndex: number;
16
+ insertAt: 'before' | 'after' | null;
17
+ mode: FdDndDropEventMode;
16
18
  }
17
19
  export interface ElementPosition {
18
20
  x: number;
@@ -31,3 +33,5 @@ export interface DndItem {
31
33
  listDraggable: boolean;
32
34
  changeCDKDragState: () => void;
33
35
  }
36
+ export type FdDndDropType = 'shift' | 'group' | 'auto';
37
+ export type FdDndDropEventMode = 'shift' | 'group';
package/utils/index.d.ts CHANGED
@@ -16,3 +16,4 @@ export * from './services';
16
16
  export * from './abstract-fd-ngx-class';
17
17
  export * from './pipes';
18
18
  export * from './tokens/module-deprecations.token';
19
+ export * from './tokens/viewport-size.observable';
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ /**
4
+ * Injection token for the viewport size observable.
5
+ * Emits the viewport size in pixels, which are outputted by the ViewportRuler
6
+ * from @angular/cdk/overlay.
7
+ */
8
+ export declare const ViewportSizeObservable: InjectionToken<Observable<number>>;