@colijnit/homedecorator 255.1.4 → 255.1.6

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 (89) hide show
  1. package/app/core/enum/message-type.enum.d.ts +3 -1
  2. package/app/core/interface/message-with-payload.interface.d.ts +6 -0
  3. package/app/core/model/homedecorator-settings-options.d.ts +2 -0
  4. package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
  5. package/app/core/service/homedecorator-connector-adapter.service.d.ts +2 -0
  6. package/app/core/service/homedecorator-connector.service.d.ts +5 -4
  7. package/app/core/service/homedecorator-settings.service.d.ts +2 -1
  8. package/app/core/service/presets.service.d.ts +3 -1
  9. package/app/homedecorator.component.d.ts +3 -1
  10. package/app/homedecorator.module.d.ts +2 -1
  11. package/app/plugins/core3d/service/floor-pattern.service.d.ts +1 -1
  12. package/app/plugins/core3d/service/floor-tile-intersection.service.d.ts +2 -1
  13. package/app/plugins/core3d/service/floor.service.d.ts +3 -1
  14. package/app/plugins/core3d/service/post-processing.service.d.ts +21 -7
  15. package/app/plugins/core3d/service/scene.service.d.ts +1 -1
  16. package/app/plugins/core3d/service/ssr.service.d.ts +0 -1
  17. package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +11 -2
  18. package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +185 -15
  19. package/app/plugins/model-uploader/model-uploader.module.d.ts +5 -1
  20. package/app/plugins/render/render-dialog/render-dialog.component.d.ts +4 -1
  21. package/app/plugins/render/render-dialog/render-dialog.component.scss +5 -5
  22. package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +3 -1
  23. package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +1 -0
  24. package/app/plugins/room-planner/components/settings/settings.component.d.ts +5 -1
  25. package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +4 -1
  26. package/app/plugins/room-planner/room-planner/room-planner.component.scss +1 -0
  27. package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +1 -3
  28. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +2 -0
  29. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
  30. package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +2 -0
  31. package/assets/icons/dash-button.svg +7 -0
  32. package/assets/icons/pen-ruler.svg +1 -0
  33. package/assets/icons/retry-button.svg +7 -0
  34. package/bundles/colijnit-homedecorator.umd.js +822 -601
  35. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  36. package/esm2015/app/app.version.js +3 -3
  37. package/esm2015/app/core/enum/message-type.enum.js +3 -1
  38. package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
  39. package/esm2015/app/core/model/homedecorator-settings-options.js +3 -1
  40. package/esm2015/app/core/service/3dm-api.js +4 -4
  41. package/esm2015/app/core/service/homedecorator-app-event.service.js +2 -1
  42. package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +25 -2
  43. package/esm2015/app/core/service/homedecorator-connector.service.js +25 -22
  44. package/esm2015/app/core/service/homedecorator-settings.service.js +3 -2
  45. package/esm2015/app/core/service/presets.service.js +13 -5
  46. package/esm2015/app/core/utils/material.utils.js +3 -3
  47. package/esm2015/app/homedecorator.component.js +26 -19
  48. package/esm2015/app/homedecorator.module.js +8 -4
  49. package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +5 -5
  50. package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -2
  51. package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -2
  52. package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -2
  53. package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -2
  54. package/esm2015/app/plugins/core3d/items/factory.js +3 -2
  55. package/esm2015/app/plugins/core3d/service/ar.service.js +2 -1
  56. package/esm2015/app/plugins/core3d/service/floor-pattern.service.js +24 -18
  57. package/esm2015/app/plugins/core3d/service/floor-tile-intersection.service.js +13 -8
  58. package/esm2015/app/plugins/core3d/service/floor.service.js +9 -4
  59. package/esm2015/app/plugins/core3d/service/light-presets.service.js +10 -8
  60. package/esm2015/app/plugins/core3d/service/lights.service.js +8 -1
  61. package/esm2015/app/plugins/core3d/service/outline.service.js +4 -6
  62. package/esm2015/app/plugins/core3d/service/post-processing.service.js +148 -51
  63. package/esm2015/app/plugins/core3d/service/scene-event.service.js +14 -7
  64. package/esm2015/app/plugins/core3d/service/scene.service.js +84 -74
  65. package/esm2015/app/plugins/core3d/service/ssr.service.js +2 -53
  66. package/esm2015/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.js +10 -5
  67. package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +2 -2
  68. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +281 -166
  69. package/esm2015/app/plugins/model-uploader/model-uploader.module.js +22 -3
  70. package/esm2015/app/plugins/render/render-controls/render-controls.component.js +3 -2
  71. package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +19 -14
  72. package/esm2015/app/plugins/render/service/new-render.service.js +4 -2
  73. package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +4 -2
  74. package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +2 -2
  75. package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +29 -15
  76. package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +5 -2
  77. package/esm2015/app/plugins/room-planner/components/settings/settings.component.js +12 -5
  78. package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +31 -15
  79. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +691 -683
  80. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +43 -41
  81. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +1 -1
  82. package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +26 -20
  83. package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +2 -2
  84. package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +15 -8
  85. package/esm2015/app/shared/loading-overlay/loading-overlay.component.js +4 -2
  86. package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +3 -3
  87. package/fesm2015/colijnit-homedecorator.js +1656 -1322
  88. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  89. package/package.json +1 -1
@@ -65,5 +65,7 @@ export declare enum MessageType {
65
65
  LoadScaledDiagram = "LoadScaledDiagram",
66
66
  StartCroppingPDF = "StartCroppingPDF",
67
67
  BlenderRenderFileReady = "BlenderRenderFileReady",
68
- UserModelUploaded = "UserModelUploaded"
68
+ UserModelUploaded = "UserModelUploaded",
69
+ ChangeTexture = "ChangeTexture",
70
+ RenderError = "RenderError"
69
71
  }
@@ -10,6 +10,7 @@ import { HomedecoratorExternalSettingsInterface } from './homedecorator-external
10
10
  import { ToolbarIcon } from './toolbar-icon.interface';
11
11
  import { LoadingOverlayData } from './loading-overlay-data.interface';
12
12
  import { ArticleListObjectExtended } from '@colijnit/articleapi/build/model/article-list-object-extended.bo';
13
+ import { Texture } from '../model/texture';
13
14
  export interface MessagesWithPayload {
14
15
  [MessageType.StartWithPreset]: {
15
16
  preset: Preset;
@@ -78,4 +79,9 @@ export interface MessagesWithPayload {
78
79
  [MessageType.StartCroppingPDF]: any;
79
80
  [MessageType.BlenderRenderFileReady]: any;
80
81
  [MessageType.UserModelUploaded]: any;
82
+ [MessageType.ChangeTexture]: Texture;
83
+ [MessageType.RenderError]: {
84
+ title: string;
85
+ message: string;
86
+ };
81
87
  }
@@ -44,4 +44,6 @@ export declare class HomedecoratorSettingsOptions {
44
44
  pathTracer: boolean;
45
45
  ssrEnabled: boolean;
46
46
  maxRenderSamples: number;
47
+ aoEnabled: boolean;
48
+ aaEnabled: boolean;
47
49
  }
@@ -20,6 +20,7 @@ export declare class HomedecoratorAppEventService {
20
20
  quantity: number;
21
21
  }>;
22
22
  addExternalSourceToCart: Subject<ExternalSourceArticleAddInterface>;
23
+ dirty: Subject<boolean>;
23
24
  static ɵfac: i0.ɵɵFactoryDeclaration<HomedecoratorAppEventService, never>;
24
25
  static ɵprov: i0.ɵɵInjectableDeclaration<HomedecoratorAppEventService>;
25
26
  }
@@ -24,6 +24,7 @@ import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full
24
24
  import { ArticleCategory } from '@colijnit/configuratorapi/build/model/article-category';
25
25
  import { ArticleFlat } from '@colijnit/articleapi/build/model/article-flat.bo';
26
26
  import { HomedecoratorAppEventService } from './homedecorator-app-event.service';
27
+ import { CoDomainValue } from '@colijnit/mainapi/build/model/co-domain-value.bo';
27
28
  import * as i0 from "@angular/core";
28
29
  export declare class ExternalConnector {
29
30
  loginResponse: LoginResponse;
@@ -84,6 +85,7 @@ export declare class HomedecoratorConnectorAdapterService {
84
85
  getArticleFullObject(goodId: number): Promise<ArticleFullObject>;
85
86
  getArticleCategories(publicationCode: number): Promise<ArticleCategory[]>;
86
87
  getArticleFlat(sku: string): Promise<ArticleFlat>;
88
+ getModelPlacementOptions(): Promise<CoDomainValue[]>;
87
89
  private _getPublicationCodeForRole;
88
90
  static ɵfac: i0.ɵɵFactoryDeclaration<HomedecoratorConnectorAdapterService, never>;
89
91
  static ɵprov: i0.ɵɵInjectableDeclaration<HomedecoratorConnectorAdapterService>;
@@ -18,6 +18,7 @@ import { CustomFloorGroupResult } from '../../plugins/core3d/model/custom-floor-
18
18
  import { HomedecoratorSettingsService } from './homedecorator-settings.service';
19
19
  import { HomedecoratorAppEventService } from './homedecorator-app-event.service';
20
20
  import { GoogleTagManagerService } from '../../service/google-tag-manager.service';
21
+ import { Question } from '@colijnit/configuratorapi/build/model/question';
21
22
  import * as i0 from "@angular/core";
22
23
  export declare class HomedecoratorConnectorService implements OnDestroy {
23
24
  private _connector;
@@ -32,7 +33,6 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
32
33
  set selections(value: Selection[]);
33
34
  get selections(): Selection[];
34
35
  get currentSelections(): Selection[];
35
- get activeAnswers(): Answer[];
36
36
  get activeSelection(): Selection;
37
37
  get totalPrice(): number;
38
38
  get shouldShowLoader(): boolean;
@@ -40,20 +40,20 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
40
40
  controllerInitialized: BehaviorSubject<boolean>;
41
41
  readonly articleReceived: Subject<Article>;
42
42
  readonly selectionsReceived: Subject<Selection[]>;
43
- readonly answerCountReceived: Subject<number>;
44
43
  readonly answersReceived: Subject<Answer[]>;
45
44
  readonly extraAnswerDataLoaded: Subject<void>;
46
45
  readonly selectionsAndDecosLinked: Subject<void>;
47
46
  readonly connectionReset: Subject<void>;
48
47
  assetPath: string;
49
48
  selectionsToDisplay: Selection[];
49
+ activeQuestion: Question;
50
+ activeAnswers: Answer[];
50
51
  private _hideLoaderTimeout;
51
52
  private readonly _hideLoaderTimerTimeout;
52
53
  private _article;
53
54
  private _selections;
54
55
  private _currentSelections;
55
56
  private _decoNodes;
56
- private _activeAnswers;
57
57
  private _activeSelection;
58
58
  private _articlePrice;
59
59
  private _totalPrice;
@@ -69,6 +69,7 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
69
69
  initNodeInstance(sku: string): Promise<DataServiceResponseData>;
70
70
  changeConnection(instanceId: string, oldConnection: string, newConnection: string): Promise<boolean>;
71
71
  emptySelections(): void;
72
+ emptyAnswersAndQuestion(): void;
72
73
  /**
73
74
  * Used for obsolete furniture
74
75
  * @param selections
@@ -110,7 +111,7 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
110
111
  private _isAnswerPublished;
111
112
  private _preloadCachedImages;
112
113
  addToCart(goodId: number, goodType: string, quantity: number, instanceId: number, externalSource: boolean): Promise<string>;
113
- handleAnswersReceived(answers: Answer[]): Promise<void>;
114
+ handleAnswersReceived(answers: Answer[]): void;
114
115
  private _prepareSelectionsToDisplayImages;
115
116
  private _prepareSelectionsNextOptionValues;
116
117
  private _getPublicationCode;
@@ -1,6 +1,6 @@
1
1
  import { HomedecoratorSettings } from '../model/homedecorator-settings';
2
2
  import { JsonUtilsService } from './json-utils.service';
3
- import { BehaviorSubject } from 'rxjs';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
4
  import { HomedecoratorDictionaryService } from './homedecorator-dictionary.service';
5
5
  import { HomedecoratorConnectorAdapterService } from './homedecorator-connector-adapter.service';
6
6
  import * as i0 from "@angular/core";
@@ -12,6 +12,7 @@ export declare class HomedecoratorSettingsService {
12
12
  get settings(): HomedecoratorSettings;
13
13
  get isPrivate(): boolean;
14
14
  settingsLoaded: BehaviorSubject<boolean>;
15
+ settingsChanged: Subject<void>;
15
16
  private _settings;
16
17
  constructor(_jsonUtilsService: JsonUtilsService, _dictionaryService: HomedecoratorDictionaryService, _connectorService: HomedecoratorConnectorAdapterService);
17
18
  createSettingsFromObject(obj: any): void;
@@ -10,6 +10,7 @@ import { ConfigurationService } from './configuration.service';
10
10
  import { LocalStorageService } from '../../service/local-storage.service';
11
11
  import { ProgressService } from './progress.service';
12
12
  import { SceneService } from '../../plugins/core3d/service/scene.service';
13
+ import { HomedecoratorAppEventService } from './homedecorator-app-event.service';
13
14
  import * as i0 from "@angular/core";
14
15
  export declare class PresetsService implements OnDestroy {
15
16
  private _appStateService;
@@ -21,6 +22,7 @@ export declare class PresetsService implements OnDestroy {
21
22
  private _storageService;
22
23
  private _progressService;
23
24
  private _sceneService;
25
+ private _eventService;
24
26
  isLoading: boolean;
25
27
  beforeLoad: Subject<any>;
26
28
  afterLoad: Subject<any>;
@@ -28,7 +30,7 @@ export declare class PresetsService implements OnDestroy {
28
30
  assetPath: string;
29
31
  stateCreated: Subject<void>;
30
32
  private _subs;
31
- constructor(_appStateService: AppStateService, _permanentStoreService: PermanentStoreService, _jsonUtils: JsonUtilsService, _messageService: MessageBusService, _settingsService: HomedecoratorSettingsService, _configurationService: ConfigurationService, _storageService: LocalStorageService, _progressService: ProgressService, _sceneService: SceneService);
33
+ constructor(_appStateService: AppStateService, _permanentStoreService: PermanentStoreService, _jsonUtils: JsonUtilsService, _messageService: MessageBusService, _settingsService: HomedecoratorSettingsService, _configurationService: ConfigurationService, _storageService: LocalStorageService, _progressService: ProgressService, _sceneService: SceneService, _eventService: HomedecoratorAppEventService);
32
34
  ngOnDestroy(): void;
33
35
  register(plugin: PluginInterface): void;
34
36
  reopenState(model: string): void;
@@ -7,6 +7,7 @@ import { HomedecoratorConnectorService } from './core/service/homedecorator-conn
7
7
  import { ScreenSizeAnalysisService } from './shared/screen-size-analysis/screen-size-analysis.service';
8
8
  import { MessageBusService } from './core/service/message-bus.service';
9
9
  import { HomedecoratorService } from './core/service/homedecorator.service';
10
+ import { HomedecoratorAppEventService } from './core/service/homedecorator-app-event.service';
10
11
  import * as i0 from "@angular/core";
11
12
  export declare class HomedecoratorComponent implements OnInit, OnDestroy {
12
13
  controllerService: HomedecoratorConnectorService;
@@ -18,6 +19,7 @@ export declare class HomedecoratorComponent implements OnInit, OnDestroy {
18
19
  private _domSanitizer;
19
20
  private _messageService;
20
21
  private _homedecoratorService;
22
+ private _eventService;
21
23
  set settings(value: any);
22
24
  get settings(): any;
23
25
  showClass: boolean;
@@ -29,7 +31,7 @@ export declare class HomedecoratorComponent implements OnInit, OnDestroy {
29
31
  shouldShowLandscapeMessage: boolean;
30
32
  private _subs;
31
33
  private _settings;
32
- constructor(controllerService: HomedecoratorConnectorService, appState: AppStateService, presetsService: PresetsService, screenAnalysis: ScreenSizeAnalysisService, _componentFactoryResolver: ComponentFactoryResolver, _iconRegistry: MatIconRegistry, _domSanitizer: DomSanitizer, _messageService: MessageBusService, _homedecoratorService: HomedecoratorService);
34
+ constructor(controllerService: HomedecoratorConnectorService, appState: AppStateService, presetsService: PresetsService, screenAnalysis: ScreenSizeAnalysisService, _componentFactoryResolver: ComponentFactoryResolver, _iconRegistry: MatIconRegistry, _domSanitizer: DomSanitizer, _messageService: MessageBusService, _homedecoratorService: HomedecoratorService, _eventService: HomedecoratorAppEventService);
33
35
  ngOnInit(): Promise<void>;
34
36
  ngOnDestroy(): void;
35
37
  registerCustomIcons(): void;
@@ -9,10 +9,11 @@ import * as i6 from "./shared/export-dialog/export-dialog.module";
9
9
  import * as i7 from "./shared/info-dialog/info-dialog.module";
10
10
  import * as i8 from "./plugins/plugins.module";
11
11
  import * as i9 from "./shared/dialog/dialog.module";
12
+ import * as i10 from "ngx-lightbox";
12
13
  export declare class HomedecoratorModule {
13
14
  private _injector;
14
15
  constructor(_injector: Injector);
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<HomedecoratorModule, never>;
16
- static ɵmod: i0.ɵɵNgModuleDeclaration<HomedecoratorModule, [typeof i1.HomedecoratorComponent], [typeof i2.CommonModule, typeof i3.ProgressBarModule, typeof i4.LoadingOverlayModule, typeof i5.HdLoaderModule, typeof i6.ExportDialogModule, typeof i7.InfoDialogModule, typeof i8.PluginsModule, typeof i9.DialogModule], [typeof i1.HomedecoratorComponent]>;
17
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HomedecoratorModule, [typeof i1.HomedecoratorComponent], [typeof i2.CommonModule, typeof i3.ProgressBarModule, typeof i4.LoadingOverlayModule, typeof i5.HdLoaderModule, typeof i6.ExportDialogModule, typeof i7.InfoDialogModule, typeof i8.PluginsModule, typeof i9.DialogModule, typeof i10.LightboxModule], [typeof i1.HomedecoratorComponent]>;
17
18
  static ɵinj: i0.ɵɵInjectorDeclaration<HomedecoratorModule>;
18
19
  }
@@ -16,7 +16,7 @@ export interface FloorPatternTransform {
16
16
  isLeft: boolean;
17
17
  }
18
18
  export declare class FloorPatternService {
19
- generatePattern(floorPattern: FloorPattern, plankSize: Vector3, floorSize: Vector3, direction?: FloorPatternDirection): FloorPatternTransform[];
19
+ generatePattern(floorPattern: FloorPattern, plankSize: Vector3, floorSize: Vector3, direction?: FloorPatternDirection, heartLine?: number): FloorPatternTransform[];
20
20
  private _rotatePatternOnZAxis;
21
21
  private _normalPattern;
22
22
  private _herringBone;
@@ -8,6 +8,7 @@ export interface FloorCountResult {
8
8
  right: number;
9
9
  edge: number;
10
10
  total: number;
11
+ filtered?: Array<FloorPatternTransform>;
11
12
  }
12
13
  export declare class FloorTileIntersectionService implements OnDestroy {
13
14
  private _sceneService;
@@ -15,7 +16,7 @@ export declare class FloorTileIntersectionService implements OnDestroy {
15
16
  private _edgeCollisionMargin;
16
17
  constructor(_sceneService: SceneService);
17
18
  toggleDebug(): void;
18
- countTiles(floorMesh: Mesh, floorPattern: Array<FloorPatternTransform>, geometry: BufferGeometry): FloorCountResult;
19
+ countTiles(floorMesh: Mesh, floorPattern: Array<FloorPatternTransform>, geometryLeft: BufferGeometry, geometryRight?: BufferGeometry, addFiltered?: boolean): FloorCountResult;
19
20
  private _checkIntersection2;
20
21
  private _generateEdgeColliders;
21
22
  private _randomColMat;
@@ -7,12 +7,14 @@ import { OutlineService } from './outline.service';
7
7
  import { ItemService } from './item.service';
8
8
  import { FloorPlaneItem } from '../items/floor-plane-item';
9
9
  import { HomedecoratorSettingsService } from '../../../core/service/homedecorator-settings.service';
10
+ import { MessageBusService } from '../../../core/service/message-bus.service';
10
11
  import * as i0 from "@angular/core";
11
12
  export declare class FloorService implements OnDestroy {
12
13
  private _sceneService;
13
14
  private _outlineService;
14
15
  private _itemService;
15
16
  private _settingsService;
17
+ private _messageService;
16
18
  private _groundPlane;
17
19
  private _floorPlane;
18
20
  private _floors;
@@ -21,7 +23,7 @@ export declare class FloorService implements OnDestroy {
21
23
  get groundPlane(): Mesh;
22
24
  set groundPlane(mesh: Mesh);
23
25
  floorToConfigure: FloorPlaneItem;
24
- constructor(_sceneService: SceneService, _outlineService: OutlineService, _itemService: ItemService, _settingsService: HomedecoratorSettingsService);
26
+ constructor(_sceneService: SceneService, _outlineService: OutlineService, _itemService: ItemService, _settingsService: HomedecoratorSettingsService, _messageService: MessageBusService);
25
27
  ngOnDestroy(): void;
26
28
  getFloorPlane(): FloorPlaneItem;
27
29
  setFloorTexture(room: Room, texture: Texture): Promise<void>;
@@ -1,31 +1,45 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { PerspectiveCamera, Scene, WebGLRenderer } from 'three';
3
3
  import { ConfigurationService } from '../../../core/service/configuration.service';
4
+ import { HomedecoratorSettingsService } from '../../../core/service/homedecorator-settings.service';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class PostProcessingService implements OnDestroy {
6
7
  private _configurationService;
7
- private _composer;
8
+ private _settingsService;
9
+ private _aoEnabled;
10
+ private _aaEnabled;
11
+ private _aaComposer;
12
+ private _aoComposer;
13
+ private _blendComposer;
8
14
  private _n8aoPass;
9
15
  private _taaRenderPass;
10
- private _outputPass;
11
16
  private _renderPass;
17
+ private _outputPass;
18
+ private _fxaaPass;
12
19
  private _scene;
13
20
  private _renderer;
14
21
  private _camera;
15
- private _renderTarget;
22
+ private _aaRenderTarget;
23
+ private _aoRenderTarget;
24
+ private _blendShader;
25
+ private _width;
26
+ private _height;
16
27
  private _effectController;
17
28
  private _postProcessingGui;
18
- private _taaPassGui;
19
29
  private _subs;
20
- constructor(_configurationService: ConfigurationService);
30
+ constructor(_configurationService: ConfigurationService, _settingsService: HomedecoratorSettingsService);
21
31
  ngOnDestroy(): void;
22
32
  init(renderer: WebGLRenderer, scene: Scene, camera: PerspectiveCamera, width: number, height: number): void;
23
- private _updatePass;
24
- private _createGuiTaaPass;
25
33
  setSize(width: number, height: number): void;
26
34
  render(): void;
27
35
  showGui(): void;
28
36
  hideGui(): void;
37
+ private _initComposers;
38
+ private _initAaComposer;
39
+ private _initAoComposer;
40
+ private _initBlendComposer;
41
+ private _updatePass;
42
+ private _createGuiTaaPass;
29
43
  private _showHideGui;
30
44
  private _createGui;
31
45
  static ɵfac: i0.ɵɵFactoryDeclaration<PostProcessingService, never>;
@@ -53,7 +53,7 @@ export declare class SceneService implements OnDestroy {
53
53
  getScene(): Scene;
54
54
  set arMode(value: boolean);
55
55
  get arMode(): boolean;
56
- init(element: HTMLElement): void;
56
+ init(element: HTMLElement): Promise<void>;
57
57
  addObject(obj: Object3D, forceRender?: boolean): void;
58
58
  removeObject(obj: Object3D, forceRender?: boolean, cleanUp?: boolean): void;
59
59
  updatePathTracer(): void;
@@ -11,7 +11,6 @@ export declare class SsrService implements OnDestroy {
11
11
  private _websocket;
12
12
  constructor(_settingsService: HomedecoratorSettingsService);
13
13
  ngOnDestroy(): void;
14
- init(): void;
15
14
  sceneChanged(scene: Object3D): void;
16
15
  private _prepareWebsocket;
17
16
  static ɵfac: i0.ɵɵFactoryDeclaration<SsrService, never>;
@@ -11,12 +11,16 @@ import { LightPresetsService } from '../../core3d/service/light-presets.service'
11
11
  import { HomedecoratorDictionaryService } from '../../../core/service/homedecorator-dictionary.service';
12
12
  import { FontService } from '../../core3d/service/font.service';
13
13
  import { Font } from 'three/examples/jsm/loaders/FontLoader';
14
+ import { IconEnum } from '../../../core/enum/icon.enum';
15
+ import { HomedecoratorIconCacheService } from '../../../core/service/homedecorator-icon-cache.service';
16
+ import { CoDomainValue } from '@colijnit/mainapi/build/model/co-domain-value.bo';
14
17
  import * as i0 from "@angular/core";
15
18
  export declare class ModelPreviewComponent implements OnInit, OnDestroy {
16
19
  data: {
17
20
  file: any;
18
21
  };
19
22
  settingsService: HomedecoratorSettingsService;
23
+ iconCache: HomedecoratorIconCacheService;
20
24
  private _dialogRef;
21
25
  private _thirdPartyModelService;
22
26
  private _messageService;
@@ -34,6 +38,7 @@ export declare class ModelPreviewComponent implements OnInit, OnDestroy {
34
38
  boundingBoxSize: Vector3;
35
39
  loadedModel: any;
36
40
  unitsOfMeasurement: string;
41
+ units: string[];
37
42
  modelName: string;
38
43
  mathPi: number;
39
44
  showReferenceModel: boolean;
@@ -45,10 +50,12 @@ export declare class ModelPreviewComponent implements OnInit, OnDestroy {
45
50
  font: Font;
46
51
  stackable: boolean;
47
52
  heightAdjustable: boolean;
53
+ placementOptions: CoDomainValue[];
54
+ selectedPlacement: number;
48
55
  private _measurements;
49
56
  constructor(data: {
50
57
  file: any;
51
- }, settingsService: HomedecoratorSettingsService, _dialogRef: MatDialogRef<ModelPreviewComponent>, _thirdPartyModelService: ThirdPartyModelService, _messageService: MessageBusService, _dialog: MatDialog, _adapterService: HomedecoratorConnectorAdapterService, _lightPresetsService: LightPresetsService, _dictionaryService: HomedecoratorDictionaryService, _fontService: FontService);
58
+ }, settingsService: HomedecoratorSettingsService, iconCache: HomedecoratorIconCacheService, _dialogRef: MatDialogRef<ModelPreviewComponent>, _thirdPartyModelService: ThirdPartyModelService, _messageService: MessageBusService, _dialog: MatDialog, _adapterService: HomedecoratorConnectorAdapterService, _lightPresetsService: LightPresetsService, _dictionaryService: HomedecoratorDictionaryService, _fontService: FontService);
52
59
  ngOnInit(): void;
53
60
  ngOnDestroy(): void;
54
61
  initScene(): void;
@@ -62,9 +69,10 @@ export declare class ModelPreviewComponent implements OnInit, OnDestroy {
62
69
  rotateModel(axis: string, degrees: number): void;
63
70
  moveModel(axis: string, amount: number): void;
64
71
  setUnit(event: any): void;
65
- toggleShowReferenceModel(): void;
72
+ toggleShowReferenceModel($event: any): void;
66
73
  setStackable(event: any): void;
67
74
  setHeightAdjustable(event: any): void;
75
+ closePreview(): void;
68
76
  private _animate;
69
77
  private _render;
70
78
  private _downloadModel;
@@ -89,6 +97,7 @@ export declare class ModelPreviewComponent implements OnInit, OnDestroy {
89
97
  private _blobToArrayBuffer;
90
98
  private _createLightFromProperties;
91
99
  private _setObjectProperties;
100
+ protected readonly icon: typeof IconEnum;
92
101
  static ɵfac: i0.ɵɵFactoryDeclaration<ModelPreviewComponent, never>;
93
102
  static ɵcmp: i0.ɵɵComponentDeclaration<ModelPreviewComponent, "rp-model-preview", never, {}, {}, never, never>;
94
103
  }
@@ -1,20 +1,51 @@
1
1
  .model-preview {
2
2
  display: flex;
3
3
  flex-direction: row;
4
+ font-size: 14px;
5
+
6
+ .model-preview-window {
7
+ .model-preview-window-bottom {
8
+ display: flex;
9
+ flex-direction: row;
10
+ justify-content: space-between;
11
+ align-items: center;
12
+
13
+ .disclaimer-text-container {
14
+ padding-right: 20px;
15
+ text-align: right;
16
+ font-style: italic;
17
+ font-size: 12px;
18
+ }
19
+ }
20
+ }
4
21
 
5
22
  .model-preview-actions {
6
- min-width: 240px;
23
+ min-width: 350px;
7
24
  box-sizing: border-box;
8
25
  padding: 10px 20px;
9
26
  border-left: 1px solid #5b6875;
27
+
28
+ #heightArticle {
29
+ max-width: 160px;
30
+ }
31
+
32
+ .units-select-form {
33
+ width: 80px;
34
+ margin: 0 5px;
35
+ }
36
+
10
37
  .model-preview-info-container {
11
38
  margin-bottom: 10px;
39
+
12
40
  .model-preview-info-left {
13
41
  font-weight: bolder;
14
42
  }
15
- .model-preview-info-right {}
16
-
17
43
 
44
+ .model-preview-info-right {
45
+ }
46
+ }
47
+ .model-preview-info {
48
+ margin-top: 80px;
18
49
  }
19
50
  }
20
51
 
@@ -34,15 +65,19 @@
34
65
  color: #fff;
35
66
  }
36
67
  }
37
- }
38
68
 
39
- input {
40
- border: 1px solid #5b6875;
41
- box-sizing: border-box;
42
- padding: 3px 10px;
43
- border-radius: 3px;
69
+ input {
70
+ border: 1px solid #5b6875;
71
+ box-sizing: border-box;
72
+ padding: 3px 10px;
73
+ border-radius: 3px;
74
+ line-height: 30px;
75
+ width: 100%;
76
+ }
77
+
44
78
  }
45
79
 
80
+
46
81
  .mat-radio-wrapper {
47
82
  margin: 10px 0;
48
83
  }
@@ -53,23 +88,158 @@ mat-radio-group {
53
88
  }
54
89
  }
55
90
 
91
+ .base-button {
92
+ cursor: pointer;
93
+ color: #fff;
94
+ background: #dda73f;
95
+ border: 1px solid #dda73f;
96
+ border-radius: 3px;
97
+ box-sizing: border-box;
98
+ padding: 4px 10px;
99
+ line-height: 30px;
100
+ &:hover {
101
+ background: #dda73f;
102
+ color: #fff;
103
+ }
104
+ }
105
+
106
+ .model-placement-container {
107
+ div {
108
+ display: flex;
109
+ justify-content: space-between;
110
+ margin: 5px 0;
111
+ align-items: center;
112
+ }
113
+ }
114
+
115
+
56
116
  .rotation-button-container {
57
117
  div {
58
118
  display: flex;
59
119
  justify-content: space-between;
60
- margin-bottom: 10px;
120
+ margin-bottom: 5px;
121
+ p {
122
+ margin: 0;
123
+ padding: 0;
124
+ }
125
+
61
126
  button {
127
+ margin: 0 0 0 10px;
62
128
  cursor: pointer;
63
- color: #fff;
64
- background: #dda73f;
65
- border: 1px solid #dda73f;
66
- border-radius: 3px;
129
+ color: #5b6875;
130
+ background: #fff;
131
+ border: 2px solid #5b6875;
132
+ border-radius: 50%;
67
133
  box-sizing: border-box;
68
- padding: 5px;
134
+ padding: 0;
135
+ height: 22px;
136
+ width: 22px;
137
+ font-size: 18px;
138
+ text-align: center;
139
+
69
140
  &:hover {
70
141
  background: #dda73f;
71
142
  color: #fff;
72
143
  }
73
144
  }
145
+
146
+ .button-as-link {
147
+ color: #dda73f;
148
+ border: none;
149
+ width: 100%;
150
+ height: 100%;
151
+ font-size: 14px;
152
+ position: relative;
153
+ top: -15px;
154
+ ::ng-deep mat-icon {
155
+ width: 25px;
156
+ height: 25px;
157
+ position: relative;
158
+ top: 8px;
159
+ svg {
160
+ path {
161
+ fill: #dda73f;
162
+ }
163
+ }
164
+ }
165
+ &:hover {
166
+ background: none;
167
+ color: #dda73f;
168
+ }
169
+ }
170
+ }
171
+ }
172
+
173
+ .error-container {
174
+ position: relative;
175
+ padding: .75rem 1.25rem;
176
+ margin-bottom: 1rem;
177
+ border: 1px solid #f5c6cb;
178
+ border-radius: .25rem;
179
+ color: #721c24;
180
+ background-color: #f8d7da;
181
+ max-width: 190px;
182
+ }
183
+
184
+ .exportButton, .exportButtonDark {
185
+ display: inline-block !important;
186
+ margin-right: 10px;
187
+ }
188
+
189
+ .exportButtonDark {
190
+ background: #5b6875;
191
+ border-color: #5b6875;
192
+ &:hover {
193
+ background: #5b6875;
194
+ color: #fff;
74
195
  }
75
196
  }
197
+
198
+ .model-close-preview {
199
+ text-align: right;
200
+ cursor: pointer;
201
+ }
202
+
203
+ :host {
204
+ ::ng-deep .mat-form-field-wrapper {
205
+ padding-bottom: 0;
206
+ border: 1px solid #5b6875;
207
+ border-radius: 4px;
208
+ }
209
+
210
+ ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix {
211
+ padding: 0;
212
+ border: none;
213
+ }
214
+
215
+ ::ng-deep .mat-select-value {
216
+ padding-left: 5px;
217
+ }
218
+
219
+ ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline {
220
+ height: 0;
221
+ }
222
+
223
+ ::ng-deep .mat-select-trigger {
224
+ line-height: 36px;
225
+ }
226
+
227
+ ::ng-deep mat-icon {
228
+ width: 18px;
229
+ height: 18px;
230
+
231
+ svg {
232
+ path {
233
+ fill: #5b6875;
234
+ }
235
+ }
236
+ }
237
+
238
+ ::ng-deep .mat-slide-toggle-content {
239
+ width: calc(100% - 36px);
240
+ min-width: 300px;
241
+ }
242
+ }
243
+
244
+
245
+
@@ -9,8 +9,12 @@ import * as i7 from "@colijnit/corecomponents";
9
9
  import * as i8 from "@colijnit/corecomponents_v12";
10
10
  import * as i9 from "@colijnit/catalog";
11
11
  import * as i10 from "@angular/material/radio";
12
+ import * as i11 from "@angular/material/slide-toggle";
13
+ import * as i12 from "@angular/material/form-field";
14
+ import * as i13 from "@angular/material/core";
15
+ import * as i14 from "@angular/material/select";
12
16
  export declare class ModelUploaderModule {
13
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ModelUploaderModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<ModelUploaderModule, [typeof i1.ModelUploaderComponent, typeof i2.ModelPreviewComponent], [typeof i3.CommonModule, typeof i4.CoreModule, typeof i5.MatIconModule, typeof i6.MatButtonModule, typeof i7.ButtonModule, typeof i8.ImageModule, typeof i9.CatalogExternalSourcesModule, typeof i9.CatalogExternalSourceModule, typeof i10.MatRadioModule], [typeof i1.ModelUploaderComponent]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ModelUploaderModule, [typeof i1.ModelUploaderComponent, typeof i2.ModelPreviewComponent], [typeof i3.CommonModule, typeof i4.CoreModule, typeof i5.MatIconModule, typeof i6.MatButtonModule, typeof i7.ButtonModule, typeof i8.ImageModule, typeof i9.CatalogExternalSourcesModule, typeof i9.CatalogExternalSourceModule, typeof i10.MatRadioModule, typeof i11.MatSlideToggleModule, typeof i12.MatFormFieldModule, typeof i13.MatOptionModule, typeof i14.MatSelectModule, typeof i7.IconModule], [typeof i1.ModelUploaderComponent]>;
15
19
  static ɵinj: i0.ɵɵInjectorDeclaration<ModelUploaderModule>;
16
20
  }