ngx-bimplus-components 0.0.71 → 0.0.72-draggable-2

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 (30) hide show
  1. package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +59 -10
  2. package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +15 -7
  3. package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +20 -8
  4. package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +30 -12
  5. package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +27 -46
  6. package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +17 -24
  7. package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +18 -24
  8. package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
  9. package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +55 -36
  10. package/esm2022/lib/directives/draggable.directive.mjs +12 -2
  11. package/esm2022/lib/services/layout-manager.service.mjs +217 -48
  12. package/esm2022/lib/services/local-storage.service.mjs +70 -0
  13. package/esm2022/lib/services/resize-observer.service.mjs +28 -0
  14. package/esm2022/public-api.mjs +2 -1
  15. package/fesm2022/ngx-bimplus-components.mjs +619 -280
  16. package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
  17. package/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.d.ts +20 -4
  18. package/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.d.ts +6 -1
  19. package/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.d.ts +6 -2
  20. package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +10 -5
  21. package/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.d.ts +12 -11
  22. package/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.d.ts +6 -6
  23. package/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.d.ts +6 -6
  24. package/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.d.ts +19 -11
  25. package/lib/directives/draggable.directive.d.ts +2 -1
  26. package/lib/services/layout-manager.service.d.ts +56 -4
  27. package/lib/services/local-storage.service.d.ts +18 -0
  28. package/lib/services/resize-observer.service.d.ts +12 -0
  29. package/package.json +1 -1
  30. package/public-api.d.ts +1 -0
@@ -1,15 +1,31 @@
1
+ import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
1
2
  import { TranslateService } from '@ngx-translate/core';
2
3
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
4
+ import { LayoutManagerService } from '../../services/layout-manager.service';
5
+ import { ResizeObserverService } from '../../services/resize-observer.service';
3
6
  import * as i0 from "@angular/core";
4
- export declare class BimplusFloatingBarComponent extends BimplusLocalizedWidgetComponent {
5
- constructor(translateService: TranslateService);
7
+ export declare class BimplusFloatingBarComponent extends BimplusLocalizedWidgetComponent implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit {
8
+ private layoutManagerService;
9
+ private element;
10
+ private cdr;
11
+ private resizeObserverService;
12
+ constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef, cdr: ChangeDetectorRef, resizeObserverService: ResizeObserverService);
6
13
  noBody: boolean;
7
- isCollapsed: boolean;
8
14
  isFocused: boolean;
9
15
  resizeEnabled: boolean;
10
16
  autoCollapse: boolean;
11
17
  focusSelector: string;
12
18
  isVisible: boolean;
19
+ id: string;
20
+ resizedragging: EventEmitter<[number, number]>;
21
+ private subscription;
22
+ private hasViewChecked;
23
+ isCollapsed: boolean;
24
+ ngOnInit(): void;
25
+ ngOnDestroy(): void;
26
+ ngAfterViewInit(): void;
27
+ ngAfterViewChecked(): void;
28
+ handleParentAppRectSizeChange(parentRect: DOMRect | undefined): void;
13
29
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarComponent, "lib-bimplus-floating-bar", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "resizeEnabled": { "alias": "resizeEnabled"; "required": false; }; "autoCollapse": { "alias": "autoCollapse"; "required": false; }; "focusSelector": { "alias": "focusSelector"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, {}, never, [".floating-bar-header-logo", ".floating-bar-header-content", ".floating-bar-dragger", ".floating-bar-body"], true, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarComponent, "lib-bimplus-floating-bar", never, { "noBody": { "alias": "noBody"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "resizeEnabled": { "alias": "resizeEnabled"; "required": false; }; "autoCollapse": { "alias": "autoCollapse"; "required": false; }; "focusSelector": { "alias": "focusSelector"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "resizedragging": "resizedragging"; }, never, [".floating-bar-header-logo", ".floating-bar-header-content", ".floating-bar-dragger", ".floating-bar-body"], true, never>;
15
31
  }
@@ -1,9 +1,14 @@
1
1
  import { EventEmitter } from '@angular/core';
2
+ import { LayoutManagerService } from '../../services/layout-manager.service';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class BimplusFloatingBarDraggerComponent {
5
+ private layoutManagerService;
6
+ constructor(layoutManagerService: LayoutManagerService);
4
7
  isCollapsed: boolean;
8
+ parentId: string;
5
9
  dragElement: EventEmitter<[number, number]>;
6
10
  draggerIcon: string;
11
+ onDragEnd(): void;
7
12
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarDraggerComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarDraggerComponent, "lib-bimplus-floating-bar-dragger", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; }; }, { "dragElement": "dragElement"; }, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarDraggerComponent, "lib-bimplus-floating-bar-dragger", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "parentId": { "alias": "parentId"; "required": false; }; }, { "dragElement": "dragElement"; }, never, never, true, never>;
9
14
  }
@@ -2,10 +2,13 @@ import { EventEmitter } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
4
4
  import { FloatingBarItem } from '../bimplus-floating-bar/bimplus-floating-bar.interface';
5
+ import { LayoutManagerService } from '../../services/layout-manager.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class BimplusFloatingBarHeaderContentComponent extends BimplusLocalizedWidgetComponent {
7
- constructor(translateService: TranslateService);
8
+ private layoutManagerService;
9
+ constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService);
8
10
  isCollapsed: boolean;
11
+ parentId: string;
9
12
  actionClicked: EventEmitter<string>;
10
13
  dragElement: EventEmitter<[number, number]>;
11
14
  private _items;
@@ -13,6 +16,7 @@ export declare class BimplusFloatingBarHeaderContentComponent extends BimplusLoc
13
16
  set items(value: Array<FloatingBarItem>);
14
17
  findItemById(id: string): FloatingBarItem | undefined;
15
18
  onItemClicked(action: string): void;
19
+ onDragEnd(): void;
16
20
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarHeaderContentComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHeaderContentComponent, "lib-bimplus-floating-bar-header-content", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "actionClicked": "actionClicked"; "dragElement": "dragElement"; }, never, never, true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHeaderContentComponent, "lib-bimplus-floating-bar-header-content", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "parentId": { "alias": "parentId"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "actionClicked": "actionClicked"; "dragElement": "dragElement"; }, never, never, true, never>;
18
22
  }
@@ -1,14 +1,19 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { BimplusLocalizedWidgetComponent } from '../bimplus-localized-widget/bimplus-localized-widget.component';
4
+ import { LayoutManagerService } from '../../services/layout-manager.service';
4
5
  import * as i0 from "@angular/core";
5
- export declare class BimplusFloatingBarHeaderLogoComponent extends BimplusLocalizedWidgetComponent {
6
- constructor(translateService: TranslateService);
6
+ export declare class BimplusFloatingBarHeaderLogoComponent extends BimplusLocalizedWidgetComponent implements OnInit {
7
+ private layoutManagerService;
8
+ constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService);
7
9
  icon: string;
8
10
  isCollapsed: boolean;
11
+ parentId: string;
9
12
  title: string;
10
- logoClicked: EventEmitter<MouseEvent>;
11
13
  dragElement: EventEmitter<[number, number]>;
14
+ ngOnInit(): void;
15
+ onLogoClicked(): void;
16
+ onDragEnd(): void;
12
17
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarHeaderLogoComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHeaderLogoComponent, "lib-bimplus-floating-bar-header-logo", never, { "icon": { "alias": "icon"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, { "logoClicked": "logoClicked"; "dragElement": "dragElement"; }, never, never, true, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHeaderLogoComponent, "lib-bimplus-floating-bar-header-logo", never, { "icon": { "alias": "icon"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "parentId": { "alias": "parentId"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, { "dragElement": "dragElement"; }, never, never, true, never>;
14
19
  }
@@ -1,28 +1,29 @@
1
- import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core';
1
+ import { EventEmitter, ElementRef, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
4
4
  import { FloatingBarItem } from '../bimplus-floating-bar/bimplus-floating-bar.interface';
5
5
  import { LayoutManagerService } from '../../services/layout-manager.service';
6
+ import { ResizeObserverService } from '../../services/resize-observer.service';
6
7
  import * as i0 from "@angular/core";
7
- export declare class BimplusFloatingBarHideObjectsComponent extends BimplusLocalizedWidgetComponent implements AfterViewChecked {
8
+ export declare class BimplusFloatingBarHideObjectsComponent extends BimplusLocalizedWidgetComponent implements OnInit, OnDestroy {
8
9
  private element;
9
10
  private cdr;
10
- constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef, cdr: ChangeDetectorRef);
11
- private hasViewChecked;
12
- protected layoutManagerService: LayoutManagerService;
11
+ private resizeObserverService;
13
12
  actionClicked: EventEmitter<string>;
14
13
  noBody: boolean;
15
- isCollapsed: boolean;
16
14
  isFocused: boolean;
17
15
  items: Array<FloatingBarItem>;
16
+ private hasViewChecked;
17
+ protected layoutManagerService: LayoutManagerService;
18
+ componentId: string;
18
19
  icon: string;
19
20
  title: string;
20
21
  focusSelectorId: string;
21
- left: number;
22
- top: number;
23
- onLogoClicked(event: MouseEvent): void;
24
- ngAfterViewChecked(): void;
22
+ isCollapsed: boolean;
23
+ constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef, cdr: ChangeDetectorRef, resizeObserverService: ResizeObserverService);
24
+ ngOnInit(): void;
25
+ ngOnDestroy(): void;
25
26
  onDragElement(event: [number, number]): void;
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarHideObjectsComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHideObjectsComponent, "lib-bimplus-floating-bar-hide-objects", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "items": { "alias": "items"; "required": false; }; "left": { "alias": "left"; "required": false; }; "top": { "alias": "top"; "required": false; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarHideObjectsComponent, "lib-bimplus-floating-bar-hide-objects", never, { "noBody": { "alias": "noBody"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
28
29
  }
@@ -1,28 +1,28 @@
1
- import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core';
1
+ import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef, OnInit } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
4
4
  import { FloatingBarItem } from '../bimplus-floating-bar/bimplus-floating-bar.interface';
5
5
  import { LayoutManagerService } from '../../services/layout-manager.service';
6
6
  import * as i0 from "@angular/core";
7
- export declare class BimplusFloatingBarIsolationObjectsComponent extends BimplusLocalizedWidgetComponent implements AfterViewChecked {
7
+ export declare class BimplusFloatingBarIsolationObjectsComponent extends BimplusLocalizedWidgetComponent implements OnInit, AfterViewChecked {
8
+ private layoutManagerService;
8
9
  private element;
9
10
  private cdr;
10
11
  constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef, cdr: ChangeDetectorRef);
11
12
  private hasViewChecked;
12
- protected layoutManagerService: LayoutManagerService;
13
13
  actionClicked: EventEmitter<string>;
14
14
  noBody: boolean;
15
15
  isCollapsed: boolean;
16
16
  isFocused: boolean;
17
17
  items: Array<FloatingBarItem>;
18
- left: number;
19
- top: number;
20
18
  icon: string;
21
19
  title: string;
22
20
  focusSelectorId: string;
21
+ componentId: string;
22
+ ngOnInit(): void;
23
23
  onLogoClicked(event: MouseEvent): void;
24
24
  ngAfterViewChecked(): void;
25
25
  onDragElement(event: [number, number]): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarIsolationObjectsComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarIsolationObjectsComponent, "lib-bimplus-floating-bar-isolation-objects", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "items": { "alias": "items"; "required": false; }; "left": { "alias": "left"; "required": false; }; "top": { "alias": "top"; "required": false; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarIsolationObjectsComponent, "lib-bimplus-floating-bar-isolation-objects", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "actionClicked": "actionClicked"; }, never, never, true, never>;
28
28
  }
@@ -1,25 +1,24 @@
1
- import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef } from '@angular/core';
1
+ import { EventEmitter, ElementRef, AfterViewChecked, ChangeDetectorRef, OnInit } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
4
4
  import { FloatingBarItem } from '../bimplus-floating-bar/bimplus-floating-bar.interface';
5
5
  import { ProjectNavigatorModel, ProjectNavigatorLayer, ProjectNavigatorProject } from '../project-models/project-models.interface';
6
6
  import { LayoutManagerService } from '../../services/layout-manager.service';
7
7
  import * as i0 from "@angular/core";
8
- export declare class BimplusFloatingBarProjectNavigatorComponent extends BimplusLocalizedWidgetComponent implements AfterViewChecked {
8
+ export declare class BimplusFloatingBarProjectNavigatorComponent extends BimplusLocalizedWidgetComponent implements OnInit, AfterViewChecked {
9
+ private layoutManagerService;
9
10
  private element;
10
11
  private cdr;
11
12
  constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef, cdr: ChangeDetectorRef);
12
13
  private hasViewChecked;
13
- protected layoutManagerService: LayoutManagerService;
14
14
  noBody: boolean;
15
15
  isCollapsed: boolean;
16
16
  noModelsMessage: string | undefined;
17
17
  isLoading: boolean;
18
18
  loadingDataMessage: string | undefined;
19
- left: number;
20
- top: number;
21
19
  icon: string;
22
20
  title: string;
21
+ componentId: string;
23
22
  items: Array<FloatingBarItem>;
24
23
  actionClicked: EventEmitter<string>;
25
24
  isPanelToolbarVisible: boolean;
@@ -32,9 +31,10 @@ export declare class BimplusFloatingBarProjectNavigatorComponent extends Bimplus
32
31
  toggleVisibilityOfModel: EventEmitter<ProjectNavigatorModel>;
33
32
  toggleVisibilityOfLayer: EventEmitter<ProjectNavigatorLayer>;
34
33
  logoClicked: EventEmitter<MouseEvent>;
34
+ ngOnInit(): void;
35
35
  onLogoClicked(event: MouseEvent): void;
36
36
  ngAfterViewChecked(): void;
37
37
  onDragElement(event: [number, number]): void;
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusFloatingBarProjectNavigatorComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarProjectNavigatorComponent, "lib-bimplus-floating-bar-project-navigator", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "noModelsMessage": { "alias": "noModelsMessage"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loadingDataMessage": { "alias": "loadingDataMessage"; "required": false; }; "left": { "alias": "left"; "required": false; }; "top": { "alias": "top"; "required": false; }; "items": { "alias": "items"; "required": false; }; "isPanelToolbarVisible": { "alias": "isPanelToolbarVisible"; "required": false; }; "expandedModelTree": { "alias": "expandedModelTree"; "required": false; }; "project": { "alias": "project"; "required": false; }; }, { "actionClicked": "actionClicked"; "clickedModel": "clickedModel"; "clickedLayer": "clickedLayer"; "toggleOpacityOfModel": "toggleOpacityOfModel"; "toggleOpacityOfLayer": "toggleOpacityOfLayer"; "toggleVisibilityOfModel": "toggleVisibilityOfModel"; "toggleVisibilityOfLayer": "toggleVisibilityOfLayer"; "logoClicked": "logoClicked"; }, never, never, true, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusFloatingBarProjectNavigatorComponent, "lib-bimplus-floating-bar-project-navigator", never, { "noBody": { "alias": "noBody"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "noModelsMessage": { "alias": "noModelsMessage"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "loadingDataMessage": { "alias": "loadingDataMessage"; "required": false; }; "items": { "alias": "items"; "required": false; }; "isPanelToolbarVisible": { "alias": "isPanelToolbarVisible"; "required": false; }; "expandedModelTree": { "alias": "expandedModelTree"; "required": false; }; "project": { "alias": "project"; "required": false; }; }, { "actionClicked": "actionClicked"; "clickedModel": "clickedModel"; "clickedLayer": "clickedLayer"; "toggleOpacityOfModel": "toggleOpacityOfModel"; "toggleOpacityOfLayer": "toggleOpacityOfLayer"; "toggleVisibilityOfModel": "toggleVisibilityOfModel"; "toggleVisibilityOfLayer": "toggleVisibilityOfLayer"; "logoClicked": "logoClicked"; }, never, never, true, never>;
40
40
  }
@@ -1,23 +1,23 @@
1
- import { EventEmitter, ElementRef } from '@angular/core';
1
+ import { EventEmitter, ElementRef, OnInit, AfterViewInit } from '@angular/core';
2
2
  import { BimplusLocalizedWidgetComponent } from "./../bimplus-localized-widget/bimplus-localized-widget.component";
3
3
  import { TranslateService } from '@ngx-translate/core';
4
4
  import { ToolHubItem, ToolHubSubItem, ToolHubItemUnits, ToolHubItemStates } from './bimplus-tool-hub.interface';
5
5
  import { LayoutManagerService } from '../../services/layout-manager.service';
6
+ import { ResizeObserverService } from '../../services/resize-observer.service';
6
7
  import * as i0 from "@angular/core";
7
- export declare class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent {
8
+ export declare class BimplusToolHubComponent extends BimplusLocalizedWidgetComponent implements OnInit, AfterViewInit {
9
+ private layoutManagerService;
10
+ private resizeObserverService;
8
11
  private element;
9
- constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, element: ElementRef);
10
- protected layoutManagerService: LayoutManagerService;
11
- left: number;
12
- top: number;
12
+ constructor(translateService: TranslateService, layoutManagerService: LayoutManagerService, resizeObserverService: ResizeObserverService, element: ElementRef);
13
13
  get itemStates(): Array<ToolHubItemStates>;
14
14
  set itemStates(value: Array<ToolHubItemStates>);
15
15
  setItemStates(itemStates: Array<ToolHubItemStates>): void;
16
16
  get items(): Array<ToolHubItem>;
17
17
  set items(value: Array<ToolHubItem>);
18
18
  get activeSubItems(): Array<ToolHubSubItem> | null;
19
- get isOpened(): boolean;
20
- set isOpened(value: boolean);
19
+ get isCollapsed(): boolean;
20
+ set isCollapsed(value: boolean);
21
21
  get units(): ToolHubItemUnits;
22
22
  get subMenuUnits(): ToolHubItemUnits;
23
23
  get annularSector(): string;
@@ -28,6 +28,11 @@ export declare class BimplusToolHubComponent extends BimplusLocalizedWidgetCompo
28
28
  isActive: boolean;
29
29
  itemClicked: EventEmitter<string>;
30
30
  subItemClicked: EventEmitter<string>;
31
+ resizedragging: EventEmitter<[number, number]>;
32
+ private componentId;
33
+ private subscription;
34
+ ngOnInit(): void;
35
+ ngAfterViewInit(): void;
31
36
  getSVGViewBox(): string;
32
37
  getSVGCenterMenuPath(): string;
33
38
  getSVGCenterMenuItemPath(): string;
@@ -40,8 +45,10 @@ export declare class BimplusToolHubComponent extends BimplusLocalizedWidgetCompo
40
45
  toggleSubItemsView(buttonId: string): void;
41
46
  closeActiveSubItemsView(): void;
42
47
  setHoveredState(element: string, hovered: boolean): void;
48
+ private getSelector;
43
49
  dragElement(event: [number, number]): void;
44
- private _isOpened;
50
+ onDragEnd(): void;
51
+ private _isCollapsed;
45
52
  private _itemStates;
46
53
  private _items;
47
54
  private _activeSubItemsView;
@@ -55,9 +62,10 @@ export declare class BimplusToolHubComponent extends BimplusLocalizedWidgetCompo
55
62
  private _hoveredElements;
56
63
  private calculateCurrentMenuItemUnits;
57
64
  private calculateCurrentSubMenuItemUnits;
65
+ private handleParentAppRectSizeChange;
58
66
  static ɵfac: i0.ɵɵFactoryDeclaration<BimplusToolHubComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<BimplusToolHubComponent, "lib-bimplus-tool-hub", never, { "left": { "alias": "left"; "required": false; }; "top": { "alias": "top"; "required": false; }; "itemStates": { "alias": "itemStates"; "required": false; }; "items": { "alias": "items"; "required": false; }; "isOpened": { "alias": "isOpened"; "required": false; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; }, { "itemClicked": "itemClicked"; "subItemClicked": "subItemClicked"; }, never, never, true, never>;
60
- static ngAcceptInputType_isOpened: unknown;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<BimplusToolHubComponent, "lib-bimplus-tool-hub", never, { "itemStates": { "alias": "itemStates"; "required": false; }; "items": { "alias": "items"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; }; "isFocused": { "alias": "isFocused"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; }, { "itemClicked": "itemClicked"; "subItemClicked": "subItemClicked"; "resizedragging": "resizedragging"; }, never, never, true, never>;
68
+ static ngAcceptInputType_isCollapsed: unknown;
61
69
  static ngAcceptInputType_isEmbedded: unknown;
62
70
  static ngAcceptInputType_isFocused: unknown;
63
71
  static ngAcceptInputType_isActive: unknown;
@@ -7,11 +7,12 @@ export declare class DraggableDirective {
7
7
  wasDragging: boolean;
8
8
  isMouseDown: boolean;
9
9
  dragging: EventEmitter<[number, number]>;
10
+ dragEnd: EventEmitter<MouseEvent>;
10
11
  clicked: EventEmitter<MouseEvent>;
11
12
  onMouseMove(event: MouseEvent): void;
12
13
  onMouseUp(): void;
13
14
  onMouseDown(event: MouseEvent): void;
14
15
  onMouseClick(event: MouseEvent): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DraggableDirective, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableDirective, "[libDraggable]", never, {}, { "dragging": "dragging"; "clicked": "clicked"; }, never, never, true, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableDirective, "[libDraggable]", never, {}, { "dragging": "dragging"; "dragEnd": "dragEnd"; "clicked": "clicked"; }, never, never, true, never>;
17
18
  }
@@ -1,11 +1,57 @@
1
1
  import { ElementRef } from '@angular/core';
2
+ import { ResizeObserverService } from './resize-observer.service';
3
+ import { LocalStorageService } from './local-storage.service';
4
+ import { BehaviorSubject } from 'rxjs';
2
5
  import * as i0 from "@angular/core";
6
+ export interface LayoutManagerItem {
7
+ element: ElementRef;
8
+ id: string;
9
+ selector?: string;
10
+ isCollapsed: boolean;
11
+ rememberPosition?: boolean;
12
+ left?: number;
13
+ top?: number;
14
+ width?: number;
15
+ height?: number;
16
+ }
17
+ export interface LayoutManagerConfigItem {
18
+ id: string;
19
+ isCollapsed: boolean;
20
+ left?: number;
21
+ top?: number;
22
+ }
3
23
  export declare class LayoutManagerService {
4
- constructor();
5
- checkPosition(elementRef: ElementRef, selector: string, left: number, top: number, deltaX: number, deltaY: number, forceCheck?: boolean): {
24
+ private resizeObserverService;
25
+ private localStorageService;
26
+ registeredItems$: BehaviorSubject<LayoutManagerItem[]>;
27
+ constructor(resizeObserverService: ResizeObserverService, localStorageService: LocalStorageService);
28
+ private registeredItems;
29
+ get RegisteredItems(): LayoutManagerItem[];
30
+ CONFIG: string;
31
+ /**--------------------------------------------------------------------------
32
+ * register object. object must have unique id or elementId
33
+ --------------------------------------------------------------------------*/
34
+ registerObject(obj: ElementRef, id: string, left: number | undefined, top: number | undefined, selector: string | undefined, rememberPosition: boolean): void;
35
+ _initObject(obj: LayoutManagerItem): void;
36
+ /**--------------------------------------------------------------------------
37
+ * get object configuration
38
+ * return {left, top, width, heigth}
39
+ --------------------------------------------------------------------------*/
40
+ _getObjectConfig(obj: LayoutManagerItem): LayoutManagerConfigItem | null;
41
+ _adjustObjectByConfig(obj: LayoutManagerItem): void;
42
+ _adjustObjectByWindowSize(obj: LayoutManagerItem): void;
43
+ /**--------------------------------------------------------------------------
44
+ * returns object registered in the layout manager
45
+ --------------------------------------------------------------------------*/
46
+ getItem(id: string): LayoutManagerItem | null;
47
+ /**--------------------------------------------------------------------------
48
+ * set object configuration
49
+ --------------------------------------------------------------------------*/
50
+ _setObjectConfig(obj: LayoutManagerItem, left: number, top: number): void;
51
+ checkPosition(id: string, selector: string, parentRectangle: DOMRect | undefined, deltaX: number, deltaY: number, forceCheck?: boolean): {
6
52
  deltaX: number;
7
53
  deltaY: number;
8
- };
54
+ } | undefined;
9
55
  /**--------------------------------------------------------------------------
10
56
  * find if rectangle 1 is inside rectangle 2
11
57
  --------------------------------------------------------------------------*/
@@ -31,7 +77,13 @@ export declare class LayoutManagerService {
31
77
  /**--------------------------------------------------------------------------
32
78
  * translate rectangle by x, y
33
79
  --------------------------------------------------------------------------*/
34
- _translateRectangle(rect: DOMRect, translateX: number, translateY: number): DOMRect | undefined;
80
+ updateCollapsed(value: boolean, id?: string): void;
81
+ handleDragEnd(id: string): void;
82
+ /**--------------------------------------------------------------------------
83
+ * finalize object changes (position). object must be registered in the layout manager
84
+ * object: object to finalize
85
+ --------------------------------------------------------------------------*/
86
+ finalizeObjectChanges(id: string): void;
35
87
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutManagerService, never>;
36
88
  static ɵprov: i0.ɵɵInjectableDeclaration<LayoutManagerService>;
37
89
  }
@@ -0,0 +1,18 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LocalStorageService {
4
+ private storageSubject;
5
+ constructor();
6
+ setItem(key: string, value: string): void;
7
+ getItem(key: string): string | null;
8
+ removeItem(key: string): void;
9
+ clear(): void;
10
+ setObject(key: string, value: unknown): void;
11
+ getObject(key: string): unknown;
12
+ watchStorage(): Observable<{
13
+ key: string;
14
+ value: unknown;
15
+ } | null>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocalStorageService>;
18
+ }
@@ -0,0 +1,12 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ResizeObserverService {
4
+ private rectSize$;
5
+ private internalRectSize;
6
+ parentAppRect$: Observable<DOMRect | undefined>;
7
+ constructor();
8
+ setSize(newValue: DOMRect): void;
9
+ getParentAppRect(): DOMRect;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResizeObserverService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<ResizeObserverService>;
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-bimplus-components",
3
- "version": "0.0.71",
3
+ "version": "0.0.72-draggable-2",
4
4
  "license": "MIT",
5
5
  "author": "",
6
6
  "description": "bim+ angular components library",
package/public-api.d.ts CHANGED
@@ -38,4 +38,5 @@ export * from './lib/components/bimplus-scrollable-container/bimplus-scrollable-
38
38
  export * from './lib/components/bimplus-touch-menu/bimplus-touch-menu.component';
39
39
  export * from './lib/components/bimplus-project-menu/bimplus-project-menu.component';
40
40
  export * from './lib/services/language-strings.service';
41
+ export * from './lib/services/resize-observer.service';
41
42
  export * from './lib/types/types';