@colijnit/homedecorator 255.1.3 → 255.1.5

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 (67) 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/service/homedecorator-app-event.service.d.ts +1 -0
  4. package/app/core/service/homedecorator-connector-adapter.service.d.ts +3 -1
  5. package/app/core/service/homedecorator-connector.service.d.ts +7 -6
  6. package/app/core/service/presets.service.d.ts +3 -1
  7. package/app/homedecorator.component.d.ts +3 -1
  8. package/app/plugins/core3d/service/floor.service.d.ts +3 -1
  9. package/app/plugins/core3d/service/post-processing.service.d.ts +16 -4
  10. package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +10 -2
  11. package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +180 -15
  12. package/app/plugins/model-uploader/model-uploader.module.d.ts +5 -1
  13. package/app/plugins/render/render-dialog/render-dialog.component.d.ts +4 -1
  14. package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +3 -1
  15. package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +1 -0
  16. package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +4 -1
  17. package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +0 -3
  18. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +2 -0
  19. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
  20. package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +2 -0
  21. package/assets/hdri/ground_MASK.jpg +0 -0
  22. package/assets/icons/dash-button.svg +7 -0
  23. package/assets/icons/retry-button.svg +7 -0
  24. package/bundles/colijnit-homedecorator.umd.js +430 -249
  25. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  26. package/esm2015/app/app.version.js +3 -3
  27. package/esm2015/app/core/enum/message-type.enum.js +3 -1
  28. package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
  29. package/esm2015/app/core/service/3dm-api.js +4 -4
  30. package/esm2015/app/core/service/homedecorator-app-event.service.js +2 -1
  31. package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +26 -3
  32. package/esm2015/app/core/service/homedecorator-connector.service.js +29 -26
  33. package/esm2015/app/core/service/presets.service.js +13 -5
  34. package/esm2015/app/core/utils/material.utils.js +3 -3
  35. package/esm2015/app/homedecorator.component.js +25 -19
  36. package/esm2015/app/plugins/core3d/components/scene-options/scene-options.component.js +63 -3
  37. package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +2 -2
  38. package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -2
  39. package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -2
  40. package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -2
  41. package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -2
  42. package/esm2015/app/plugins/core3d/service/ar.service.js +2 -1
  43. package/esm2015/app/plugins/core3d/service/floor-tile-intersection.service.js +2 -2
  44. package/esm2015/app/plugins/core3d/service/floor.service.js +9 -4
  45. package/esm2015/app/plugins/core3d/service/post-processing.service.js +96 -35
  46. package/esm2015/app/plugins/core3d/service/scene.service.js +17 -11
  47. package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +2 -2
  48. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +270 -170
  49. package/esm2015/app/plugins/model-uploader/model-uploader.module.js +22 -3
  50. package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +19 -14
  51. package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +4 -2
  52. package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +2 -2
  53. package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +24 -12
  54. package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +5 -2
  55. package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +31 -15
  56. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +2 -2
  57. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +4 -15
  58. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +2 -2
  59. package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +26 -20
  60. package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +2 -2
  61. package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +15 -8
  62. package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +3 -3
  63. package/esm2015/app/shared/pdf-export/pdf-export.component.js +1 -1
  64. package/fesm2015/colijnit-homedecorator.js +652 -338
  65. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  66. package/package.json +2 -2
  67. package/colijnit-homedecorator-255.1.2.tgz +0 -0
@@ -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
  }
@@ -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;
@@ -66,7 +67,7 @@ export declare class HomedecoratorConnectorAdapterService {
66
67
  getSelectionsAsync(): Promise<Selection[]>;
67
68
  getDecosAsync(): Promise<DecoNode[]>;
68
69
  getAnswerPrices(): Promise<AnswerPrice[]>;
69
- getJsonConfiguredArticles(goodId: number, goodType: string, quantity: number, showLoader?: boolean, instanceId?: number, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
70
+ getJsonConfiguredArticles(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, instanceId?: number, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
70
71
  setInstanceToConfigure(id: string): Promise<DataServiceResponseData>;
71
72
  selectAnswer(answer: Answer, userInput?: string): Promise<DataServiceResponseData>;
72
73
  cancelAnswer(getAnswersAndQuestion?: boolean): Promise<DataServiceResponseData>;
@@ -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
@@ -82,7 +83,7 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
82
83
  setDecoNodes(decoNodes: DecoNode[]): void;
83
84
  initConnection(forceReload?: boolean): Promise<void>;
84
85
  getInternalParameter(param: InternalParam): Promise<string>;
85
- getJsonConfiguredArticles(goodId: number, goodType: string, quantity: number, showLoader?: boolean, instanceId?: number, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<any>;
86
+ getJsonConfiguredArticles(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, instanceId?: number, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<any>;
86
87
  setInstance(id: string): Promise<DataServiceResponseData>;
87
88
  copyInstanceAndSaveOriginalConfiguration(instanceId: string, result: CustomFloorGroupResult): Promise<string>;
88
89
  copyInstanceAndLoseOriginalConfiguration(instanceId: string, result: CustomFloorGroupResult): Promise<string>;
@@ -109,8 +110,8 @@ export declare class HomedecoratorConnectorService implements OnDestroy {
109
110
  private _isAllSelectionPublished;
110
111
  private _isAnswerPublished;
111
112
  private _preloadCachedImages;
112
- addToCart(goodId: number, goodType: string, quantity: number, instanceId: number): Promise<string>;
113
- handleAnswersReceived(answers: Answer[]): Promise<void>;
113
+ addToCart(goodId: number, goodType: string, quantity: number, instanceId: number, externalSource: boolean): Promise<string>;
114
+ handleAnswersReceived(answers: Answer[]): void;
114
115
  private _prepareSelectionsToDisplayImages;
115
116
  private _prepareSelectionsNextOptionValues;
116
117
  private _getPublicationCode;
@@ -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;
@@ -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>;
@@ -4,22 +4,34 @@ import { ConfigurationService } from '../../../core/service/configuration.servic
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class PostProcessingService implements OnDestroy {
6
6
  private _configurationService;
7
- private _composer;
7
+ private _aaComposer;
8
+ private _aoComposer;
9
+ private _blendComposer;
8
10
  private _n8aoPass;
9
11
  private _taaRenderPass;
10
- private _outputPass;
12
+ private _aaOutputPass;
11
13
  private _renderPass;
14
+ private _outputPass;
15
+ private _aoRenderPass;
16
+ private _saoPass;
17
+ private _ssaoPass;
12
18
  private _scene;
13
19
  private _renderer;
14
20
  private _camera;
15
- private _renderTarget;
21
+ private _aaRenderTarget;
22
+ private _aoRenderTarget;
23
+ private _blendShader;
24
+ private _width;
25
+ private _height;
16
26
  private _effectController;
17
27
  private _postProcessingGui;
18
- private _taaPassGui;
19
28
  private _subs;
20
29
  constructor(_configurationService: ConfigurationService);
21
30
  ngOnDestroy(): void;
22
31
  init(renderer: WebGLRenderer, scene: Scene, camera: PerspectiveCamera, width: number, height: number): void;
32
+ private _initAaComposer;
33
+ private _initAoComposer;
34
+ private _initBlendComposer;
23
35
  private _updatePass;
24
36
  private _createGuiTaaPass;
25
37
  setSize(width: number, height: number): void;
@@ -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,7 +69,7 @@ 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;
68
75
  private _animate;
@@ -89,6 +96,7 @@ export declare class ModelPreviewComponent implements OnInit, OnDestroy {
89
96
  private _blobToArrayBuffer;
90
97
  private _createLightFromProperties;
91
98
  private _setObjectProperties;
99
+ protected readonly icon: typeof IconEnum;
92
100
  static ɵfac: i0.ɵɵFactoryDeclaration<ModelPreviewComponent, never>;
93
101
  static ɵcmp: i0.ɵɵComponentDeclaration<ModelPreviewComponent, "rp-model-preview", never, {}, {}, never, never>;
94
102
  }
@@ -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,153 @@ 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;
195
+ }
196
+ }
197
+
198
+ :host {
199
+ ::ng-deep .mat-form-field-wrapper {
200
+ padding-bottom: 0;
201
+ border: 1px solid #5b6875;
202
+ border-radius: 4px;
203
+ }
204
+
205
+ ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix {
206
+ padding: 0;
207
+ border: none;
208
+ }
209
+
210
+ ::ng-deep .mat-select-value {
211
+ padding-left: 5px;
212
+ }
213
+
214
+ ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline {
215
+ height: 0;
216
+ }
217
+
218
+ ::ng-deep .mat-select-trigger {
219
+ line-height: 36px;
220
+ }
221
+
222
+ ::ng-deep mat-icon {
223
+ width: 18px;
224
+ height: 18px;
225
+
226
+ svg {
227
+ path {
228
+ fill: #5b6875;
229
+ }
230
+ }
231
+ }
232
+
233
+ ::ng-deep .mat-slide-toggle-content {
234
+ width: calc(100% - 36px);
235
+ min-width: 300px;
74
236
  }
75
237
  }
238
+
239
+
240
+
@@ -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
  }
@@ -10,6 +10,7 @@ import { NewRenderService } from '../service/new-render.service';
10
10
  import { ApiServiceModule } from '../../../core/service/3dm-api';
11
11
  import { MessageBusService } from '../../../core/service/message-bus.service';
12
12
  import { UtilsService } from '../../../core/service/utils.service';
13
+ import { MatDialog } from '@angular/material/dialog';
13
14
  import * as i0 from "@angular/core";
14
15
  export declare class RenderDialogComponent implements OnDestroy {
15
16
  cameraService: CameraService;
@@ -20,6 +21,7 @@ export declare class RenderDialogComponent implements OnDestroy {
20
21
  private _settingsService;
21
22
  private _newRenderService;
22
23
  private _3dmRenderApi;
24
+ private _dialog;
23
25
  readonly renderStatus: typeof RenderStatus;
24
26
  readonly iconName: typeof IconName;
25
27
  readonly renderModes: typeof RenderModes;
@@ -38,7 +40,7 @@ export declare class RenderDialogComponent implements OnDestroy {
38
40
  get disablePictureButton(): boolean;
39
41
  get renderedImages(): string[];
40
42
  private _subs;
41
- constructor(cameraService: CameraService, renderService: RenderService, messageService: MessageBusService, _utilsService: UtilsService, _domSanitizer: DomSanitizer, _settingsService: HomedecoratorSettingsService, _newRenderService: NewRenderService, _3dmRenderApi: ApiServiceModule);
43
+ constructor(cameraService: CameraService, renderService: RenderService, messageService: MessageBusService, _utilsService: UtilsService, _domSanitizer: DomSanitizer, _settingsService: HomedecoratorSettingsService, _newRenderService: NewRenderService, _3dmRenderApi: ApiServiceModule, _dialog: MatDialog);
42
44
  ngOnDestroy(): void;
43
45
  changeInputSize(model: number): void;
44
46
  addRenderCustom(): void;
@@ -49,6 +51,7 @@ export declare class RenderDialogComponent implements OnDestroy {
49
51
  addRendersToQueue(): Promise<void>;
50
52
  startRenderingRoom(): Promise<void>;
51
53
  createBlenderRender(): void;
54
+ cancelBlenderRender(): void;
52
55
  saveImage(url: string): void;
53
56
  removeRender(url: string, index: number): boolean;
54
57
  renderOnChange(): void;
@@ -7,6 +7,7 @@ import { MessageBusService } from '../../../../core/service/message-bus.service'
7
7
  import { ConfigurationService } from '../../../../core/service/configuration.service';
8
8
  import { DimensioningService } from '../../../../core/service/dimensioning.service';
9
9
  import { ViewModeService } from '../../../../core/service/view-mode.service';
10
+ import { RoomService } from './service/room.service';
10
11
  import * as i0 from "@angular/core";
11
12
  export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
12
13
  private _floorplanService;
@@ -14,6 +15,7 @@ export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
14
15
  private _configurationService;
15
16
  private _dimensionService;
16
17
  private _viewModeService;
18
+ private _roomService;
17
19
  canvasElement: ElementRef;
18
20
  selectedWallChange: Subject<SelectedWallEvent>;
19
21
  private readonly _viewScaleMin;
@@ -82,7 +84,7 @@ export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
82
84
  handleDocKeyDown(event: KeyboardEvent): void;
83
85
  handleDocKeyUp(event: KeyboardEvent): void;
84
86
  resizeGrid(): void;
85
- constructor(_floorplanService: FloorplanService, _messageBusService: MessageBusService, _configurationService: ConfigurationService, _dimensionService: DimensioningService, _viewModeService: ViewModeService);
87
+ constructor(_floorplanService: FloorplanService, _messageBusService: MessageBusService, _configurationService: ConfigurationService, _dimensionService: DimensioningService, _viewModeService: ViewModeService, _roomService: RoomService);
86
88
  ngOnDestroy(): void;
87
89
  ngAfterViewInit(): void;
88
90
  showStartMessage(): void;
@@ -65,6 +65,7 @@ export declare class RoomService implements OnDestroy {
65
65
  getRoomCenter(): Vector3;
66
66
  updateFloorsAndEdges(): Promise<void>;
67
67
  updateCeilings(): void;
68
+ resetAllRooms(): void;
68
69
  private _showHideWalls;
69
70
  private _updateEdgeVisibility;
70
71
  private _setAllEdgesVisible;
@@ -3,6 +3,7 @@ import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges }
3
3
  import { TextureType } from '../../../../core/model/texture-type';
4
4
  import { Texture } from '../../../../core/model/texture';
5
5
  import { HomedecoratorSettingsService } from '../../../../core/service/homedecorator-settings.service';
6
+ import { MessageBusService } from '../../../../core/service/message-bus.service';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare enum TextureEditorOptions {
8
9
  None = 0,
@@ -11,6 +12,7 @@ export declare enum TextureEditorOptions {
11
12
  Both = 3
12
13
  }
13
14
  export declare class TextureEditorComponent implements OnInit, OnChanges, OnDestroy {
15
+ messageService: MessageBusService;
14
16
  private _settingsService;
15
17
  readonly textureType: typeof TextureType;
16
18
  fileInput: ElementRef;
@@ -70,10 +72,11 @@ export declare class TextureEditorComponent implements OnInit, OnChanges, OnDest
70
72
  emit: (value: any) => void;
71
73
  release: () => void;
72
74
  };
73
- constructor(_settingsService: HomedecoratorSettingsService);
75
+ constructor(messageService: MessageBusService, _settingsService: HomedecoratorSettingsService);
74
76
  ngOnInit(): void;
75
77
  ngOnDestroy(): void;
76
78
  ngOnChanges(changes: SimpleChanges): void;
79
+ setNewTexture(texture: Texture): void;
77
80
  handleRemoveTextureClick(event: any): void;
78
81
  private _loadTextureData;
79
82
  setPhotoImage(dataUrl: string, resize?: boolean): Promise<void>;
@@ -4,7 +4,6 @@ import { Subject } from 'rxjs';
4
4
  import { Answer } from '@colijnit/configuratorapi/build/model/answer';
5
5
  import { Mesh, Object3D, Vector3 } from 'three';
6
6
  import { MatDialog } from '@angular/material/dialog';
7
- import { Question } from '@colijnit/configuratorapi/build/model/question';
8
7
  import { Item } from '../../../core3d/items/item';
9
8
  import { Metadata } from '../../../core3d/items/metadata';
10
9
  import { CustomFloorGroupResult } from '../../../core3d/model/custom-floor-group-result';
@@ -84,8 +83,6 @@ export declare class BuildFurnitureService implements OnDestroy {
84
83
  activeConnector: any;
85
84
  get useNodeIdToLink(): boolean;
86
85
  get currentCustomFloorGroup(): Item;
87
- activeQuestion: Question;
88
- activeAnswers: Answer[];
89
86
  get standAlone(): boolean;
90
87
  set standAlone(value: boolean);
91
88
  get selections(): Selection[];