@colijnit/homedecorator 261.20.7 → 261.20.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -500,7 +500,9 @@ declare class HomedecoratorSettingsOptions {
500
500
  useAnimations: boolean;
501
501
  useThreedScene: boolean;
502
502
  showSlowConnectionWarning: boolean;
503
- useExternalOpenSave: boolean;
503
+ useExternalSave: boolean;
504
+ useExternalOpen: boolean;
505
+ shadowSaveToCloud: boolean;
504
506
  floorFadeStart: number;
505
507
  floorFadeEnd: number;
506
508
  }
@@ -682,6 +684,7 @@ declare class FloorPlaneItem extends Item {
682
684
  interface ExternalSave {
683
685
  screenShot: string;
684
686
  project: string;
687
+ code: string;
685
688
  }
686
689
 
687
690
  declare class HomedecoratorAppEventService {
@@ -704,8 +707,11 @@ declare class HomedecoratorAppEventService {
704
707
  glbCreated: Subject<string>;
705
708
  dirty: Subject<boolean>;
706
709
  floorCreated: BehaviorSubject<FloorPlaneItem>;
707
- externalSave: BehaviorSubject<ExternalSave>;
710
+ externalSave: Subject<ExternalSave>;
711
+ externalOpen: Subject<void>;
708
712
  searchClick: Subject<void>;
713
+ shareProject: Subject<void>;
714
+ configurationFromPresetLoaded: Subject<boolean>;
709
715
  static ɵfac: i0.ɵɵFactoryDeclaration<HomedecoratorAppEventService, never>;
710
716
  static ɵprov: i0.ɵɵInjectableDeclaration<HomedecoratorAppEventService>;
711
717
  }
@@ -2056,6 +2062,7 @@ interface Metadata {
2056
2062
  colorable?: boolean;
2057
2063
  default180?: boolean;
2058
2064
  objectUUID?: string;
2065
+ materialDiff?: any;
2059
2066
  conversionGTMSend?: boolean;
2060
2067
  conversionSubmittedPrice?: string;
2061
2068
  hdecoType?: string;
@@ -2355,6 +2362,7 @@ declare class Item extends BaseItem {
2355
2362
  beforeRemoveFromWall(): void;
2356
2363
  protected handlePositionFromRawMetadata(): void;
2357
2364
  protected handleScaleFromRawMetadata(): void;
2365
+ protected handleMaterialDiffFromRawMetadata(): void;
2358
2366
  protected handleElevationFromRawMetadata(): void;
2359
2367
  protected handleRotationFromRawMetadata(): void;
2360
2368
  private _fakeHandler;
@@ -2727,8 +2735,8 @@ declare class UtilsService implements OnDestroy {
2727
2735
 
2728
2736
  type StateValue = string;
2729
2737
  type Action = string;
2730
- type CreateStateInterface = () => StateValue;
2731
- type ApplyStateInterface = (StateValue: any) => void;
2738
+ type CreateStateInterface = () => StateValue | Promise<StateValue>;
2739
+ type ApplyStateInterface = (state: StateValue) => void | Promise<void>;
2732
2740
  interface StateApi {
2733
2741
  createState: CreateStateInterface;
2734
2742
  applyState: ApplyStateInterface;
@@ -2775,6 +2783,7 @@ declare class AppStateService implements OnDestroy {
2775
2783
  interface PluginInterface {
2776
2784
  getObjects: Function;
2777
2785
  loadObjects: Function;
2786
+ saveObjects: Function;
2778
2787
  copySceneInstance: Function;
2779
2788
  }
2780
2789
 
@@ -2842,7 +2851,8 @@ declare class PresetsService implements OnDestroy {
2842
2851
  ngOnDestroy(): void;
2843
2852
  register(plugin: PluginInterface): void;
2844
2853
  reopenState(model: string): void;
2845
- createState(): StateValue;
2854
+ createState(save?: boolean): Promise<StateValue>;
2855
+ saveToCloud(asNew?: boolean): Promise<string>;
2846
2856
  private _loadSavedRoomFromPreset;
2847
2857
  private _loadSavedRoomFromCloud;
2848
2858
  private _clear;
@@ -2906,6 +2916,7 @@ declare class HomedecoratorComponent implements OnInit, OnDestroy {
2906
2916
  set initCommunication(value: boolean);
2907
2917
  get initCommunication(): boolean;
2908
2918
  projectToLoad: string;
2919
+ shareButton: boolean;
2909
2920
  set settings(value: any);
2910
2921
  get settings(): any;
2911
2922
  showClass: boolean;
@@ -2925,14 +2936,15 @@ declare class HomedecoratorComponent implements OnInit, OnDestroy {
2925
2936
  ngOnDestroy(): void;
2926
2937
  registerCustomIcons(): void;
2927
2938
  keyup(event: KeyboardEvent): void;
2928
- handleExternalSave(): void;
2939
+ handleExternalSave(code: string): Promise<void>;
2940
+ handleExternalOpen(): Promise<void>;
2929
2941
  private _startWithRoom;
2930
2942
  private _startWithEmptyRoom;
2931
2943
  private _startWithPreset;
2932
2944
  private _setCommunication;
2933
2945
  private _initConnection;
2934
2946
  static ɵfac: i0.ɵɵFactoryDeclaration<HomedecoratorComponent, [null, null, null, null, null, null, null, null, null, { optional: true; skipSelf: true; }, { optional: true; self: true; }, null, null, null, null]>;
2935
- static ɵcmp: i0.ɵɵComponentDeclaration<HomedecoratorComponent, "co-homedecorator", never, { "generalFilterOrders": { "alias": "generalFilterOrders"; "required": false; }; "purchaseFilterOrders": { "alias": "purchaseFilterOrders"; "required": false; }; "logisticsFilterOrders": { "alias": "logisticsFilterOrders"; "required": false; }; "initCommunication": { "alias": "initCommunication"; "required": false; }; "projectToLoad": { "alias": "projectToLoad"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, {}, never, never, false, never>;
2947
+ static ɵcmp: i0.ɵɵComponentDeclaration<HomedecoratorComponent, "co-homedecorator", never, { "generalFilterOrders": { "alias": "generalFilterOrders"; "required": false; }; "purchaseFilterOrders": { "alias": "purchaseFilterOrders"; "required": false; }; "logisticsFilterOrders": { "alias": "logisticsFilterOrders"; "required": false; }; "initCommunication": { "alias": "initCommunication"; "required": false; }; "projectToLoad": { "alias": "projectToLoad"; "required": false; }; "shareButton": { "alias": "shareButton"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; }, {}, never, never, false, never>;
2936
2948
  }
2937
2949
 
2938
2950
  declare class ProgressBarComponent {
@@ -3931,6 +3943,41 @@ declare class BaseWall extends Mesh implements BluePrintWall {
3931
3943
  private _updateDirectionVector;
3932
3944
  private _positionWall;
3933
3945
  private _reCreateWallGeometry;
3946
+ /**
3947
+ * Build the wall solid in wall-local space as a mitred prism. The footprint comes from
3948
+ * _footprintCornersLocal() (symmetric mitre, so adjacent walls meet exactly and never overlap).
3949
+ * Six faces map onto the same material indices as the old BoxGeometry: room-facing (+Z) = front,
3950
+ * far side (-Z) = back, the two ends are the caps (index 0 = start/+X, index 1 = end/-X), plus
3951
+ * top (2) and bottom (3). A degenerate footprint falls back to a straight rectangle.
3952
+ */
3953
+ private _createWallGeometry;
3954
+ /**
3955
+ * Append one planar quad (a->b->c->d) as two triangles. Winding is chosen so the face normal
3956
+ * points along `outward`, so all faces are correctly oriented for FrontSide rendering regardless
3957
+ * of how the mitred corners fall. UVs span 0..1 (U across, V up) so wall textures tile as before.
3958
+ */
3959
+ private _pushQuad;
3960
+ private _toLocal;
3961
+ /**
3962
+ * The wall footprint (interior/exterior corners at both ends) in wall-local space, computed
3963
+ * symmetrically so adjacent walls agree on the shared corner. calculateCorners()/GetHalfAngleVector
3964
+ * offset the neighbour's line using THIS wall's interiorSign; when two neighbours are wound in
3965
+ * opposite directions (common after loading a saved project) they then compute slightly different
3966
+ * mitre points, leaving an overlap wedge that z-fights. Here the mitre is the intersection of the
3967
+ * two walls' offset lines, using roomCenter as the shared "which side is inside" reference, so both
3968
+ * neighbours produce the identical point. Free ends (no single neighbour) get a straight cap.
3969
+ */
3970
+ private _footprintCornersLocal;
3971
+ /** Interior + exterior footprint point at one wall end, mitred with the single connected neighbour. */
3972
+ private _cornerFootprint;
3973
+ /** The single other wall attached to this corner, or null for free ends and >2-wall junctions. */
3974
+ private _neighbourAtCorner;
3975
+ /** Point on the segment p1->corner shifted perpendicular by `off` (>0 toward room, <0 away). */
3976
+ private _offsetPoint;
3977
+ /** Offset the segment p1->p2 sideways by `off` (>0 toward room); returns a point + direction, or null if degenerate. */
3978
+ private _offsetLine;
3979
+ /** Intersection of the two walls' offset lines (side=1 interior, side=-1 exterior), or null if parallel. */
3980
+ private _intersectOffsetLines;
3934
3981
  private _disposePreviousGeometries;
3935
3982
  }
3936
3983
 
@@ -5164,6 +5211,7 @@ declare class Core3dComponent implements OnInit, OnDestroy, PluginInterface {
5164
5211
  getObjects(): {
5165
5212
  view: any;
5166
5213
  };
5214
+ saveObjects(): Promise<void>;
5167
5215
  copySceneInstance(saveAs: boolean): Promise<void>;
5168
5216
  loadObjects(data: any): Promise<any>;
5169
5217
  private _viewModeChanged;
@@ -5497,8 +5545,6 @@ declare abstract class BuildFurnitureBaseService implements OnDestroy {
5497
5545
  get useNodeIdToLink(): boolean;
5498
5546
  get currentCustomFloorGroup(): Item;
5499
5547
  set currentCustomFloorGroup(item: Item);
5500
- get standAlone(): boolean;
5501
- set standAlone(value: boolean);
5502
5548
  get selections(): Selection[];
5503
5549
  get scene(): Scene;
5504
5550
  defaultPosition: Vector3;
@@ -5565,7 +5611,7 @@ declare abstract class BuildFurnitureBaseService implements OnDestroy {
5565
5611
  replaceSelection(selection: Selection, metadata: Metadata): Promise<void>;
5566
5612
  selectAnswer(answer: Answer, input: string, metadata: Metadata): Promise<void>;
5567
5613
  selectSelectionAsAnswer(chosenOption: SelectorStructure, metadata: Metadata): Promise<void>;
5568
- createConfigurableItemWithObject(instanceId: string, metadata: Metadata, object: Object3D): Item;
5614
+ createConfigurableItemWithObject(metadata: Metadata, object: Object3D): Item;
5569
5615
  createFloorWithMaterial(instanceId: string, metadata: Metadata, material: Material): CustomFloorGroupResult;
5570
5616
  replaceCurrentItem(newItem: Item, metadata: Metadata, animate?: boolean): Promise<Item>;
5571
5617
  protected prepareInstanceForBuild(shouldCopyInstance: boolean, loadFromProject: boolean, looseOriginalConfiguration: boolean, result: CustomFloorGroupResult): Promise<CustomFloorGroupResult>;
@@ -7007,6 +7053,7 @@ declare class RoomPlannerComponent implements OnInit, OnDestroy, PluginInterface
7007
7053
  floorplan: BluePrintFloorplan;
7008
7054
  items: {}[];
7009
7055
  };
7056
+ saveObjects(): Promise<void>;
7010
7057
  hasCustomObjects(): boolean;
7011
7058
  onObjectLibraryClick(object: ModelInterface): void;
7012
7059
  onGroupClick(): void;
@@ -8018,6 +8065,7 @@ declare class FurnitureManagerComponent implements OnInit, OnDestroy, PluginInte
8018
8065
  loadNonIONEObjects(objects: any): Promise<void>;
8019
8066
  copySceneInstance(saveAs: boolean): Promise<void>;
8020
8067
  getObjects(): any;
8068
+ saveObjects(): Promise<void>;
8021
8069
  hasCustomFurniture(): boolean;
8022
8070
  private _showWarning;
8023
8071
  private _isNonIONEObject;
@@ -8163,6 +8211,7 @@ declare class ThreedselectorComponent implements OnInit, OnDestroy {
8163
8211
  showProgressText: boolean;
8164
8212
  showLoaderBar: boolean;
8165
8213
  showFullConfiguration: boolean;
8214
+ currentMetadata: Metadata;
8166
8215
  configuratorSettings: any;
8167
8216
  configuratorSku: string;
8168
8217
  configuratorInstanceId: string;
@@ -8662,7 +8711,9 @@ declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
8662
8711
  private _adapterService;
8663
8712
  private _connectionHealthService;
8664
8713
  private _homedecoratorEventService;
8665
- externalSave: EventEmitter<void>;
8714
+ shareButton: boolean;
8715
+ externalSave: EventEmitter<string>;
8716
+ externalOpen: EventEmitter<void>;
8666
8717
  readonly toastType: typeof ToastType;
8667
8718
  readonly messageType: typeof MessageType;
8668
8719
  readonly icons: typeof IconEnum;
@@ -8680,7 +8731,9 @@ declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
8680
8731
  interval: any;
8681
8732
  tooltipDisabled: boolean;
8682
8733
  badgeDisabled: boolean;
8683
- useExternalOpenSave: boolean;
8734
+ useExternalSave: boolean;
8735
+ useExternalOpen: boolean;
8736
+ shadowSaveToCloud: boolean;
8684
8737
  enableSlowConnectionWarning: boolean;
8685
8738
  connectionStatus: string;
8686
8739
  private _subs;
@@ -8695,9 +8748,11 @@ declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
8695
8748
  clickCloseLeftSidebar(): void;
8696
8749
  newRoom(): void;
8697
8750
  animateModel(element: Item): void;
8698
- handleExternalSave(): void;
8699
- openSaveDialog(): Promise<void>;
8751
+ handleSave(saveOnOpen?: boolean): void;
8752
+ handleExternalSave(): Promise<void>;
8753
+ openSaveDialog(saveOnOpen?: boolean): Promise<void>;
8700
8754
  openOpenDialog(): void;
8755
+ openShareDialog(): void;
8701
8756
  handleSearchButtonClick(): void;
8702
8757
  loadRoom(): Promise<void>;
8703
8758
  loadResizableRoom(): Promise<void>;
@@ -8711,7 +8766,6 @@ declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
8711
8766
  saveNotification(): void;
8712
8767
  openDrawDiagram(file: any): void;
8713
8768
  openCroppingDiagram(file: any): void;
8714
- openModelPreview(file: any): void;
8715
8769
  showRenderError(data: ErrorDialogData): void;
8716
8770
  testRender(): void;
8717
8771
  openFaq(url: string): Window;
@@ -8725,7 +8779,7 @@ declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
8725
8779
  private _registerToolbarIcon;
8726
8780
  private _closeLeftSidebar;
8727
8781
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
8728
- static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "rp-toolbar", never, {}, { "externalSave": "externalSave"; }, never, never, false, never>;
8782
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "rp-toolbar", never, { "shareButton": { "alias": "shareButton"; "required": false; }; }, { "externalSave": "externalSave"; "externalOpen": "externalOpen"; }, never, never, false, never>;
8729
8783
  }
8730
8784
 
8731
8785
  interface SavedDialogData {
@@ -9364,7 +9418,6 @@ declare class MaterialBuilderComponent implements OnInit, OnDestroy {
9364
9418
  controllerService: HomedecoratorConnectorService, appState: AppStateService, settingsService: HomedecoratorSettingsService, presetsService: PresetsService, _bluePrintService: BluePrintService, _viewModeService: ViewModeService, _homedecoratorService: HomedecoratorService, _parentEventService: HomedecoratorAppEventService, _ownEventService: HomedecoratorAppEventService, _integrationService: IntegrationService, _sceneService: SceneService, _webWorkerService: WebWorkerService);
9365
9419
  ngOnInit(): Promise<void>;
9366
9420
  ngOnDestroy(): void;
9367
- handleExternalSave(): void;
9368
9421
  private _initConnection;
9369
9422
  static ɵfac: i0.ɵɵFactoryDeclaration<MaterialBuilderComponent, [null, null, null, null, null, null, null, null, { optional: true; skipSelf: true; }, { optional: true; self: true; }, null, null, null]>;
9370
9423
  static ɵcmp: i0.ɵɵComponentDeclaration<MaterialBuilderComponent, "co-material-builder", never, { "settings": { "alias": "settings"; "required": false; }; "materialPreview": { "alias": "materialPreview"; "required": false; }; "materialPreviewUpdate": { "alias": "materialPreviewUpdate"; "required": false; }; }, {}, never, never, false, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colijnit/homedecorator",
3
- "version": "261.20.7",
3
+ "version": "261.20.8",
4
4
  "description": "Homedecorator application based on 261 version of iOne backend",
5
5
  "repository": "npm/npm",
6
6
  "author": "Colijn IT",
@@ -2,6 +2,6 @@ $hd-color-primary: #171721 !default;
2
2
  $add-to-cart-button-color: #da9803 !default;
3
3
  $hd-color-main: #da9803 !default;
4
4
  $hd-color-main-accent: #da980380 !default;
5
- $hd-color-dialog-background: #F5F5F7 !default;
5
+ $hd-color-dialog-background: #FAF8F7 !default;
6
6
 
7
7
  $hd-color-active-dark: #212437 !default;
@@ -58,9 +58,6 @@ $mat-font-family: mat.m2-define-typography-config($font-family: "Montserrat, Ari
58
58
  padding: 0 !important;
59
59
  }
60
60
 
61
- //.mat-mdc-dialog-surface {
62
- // padding: 24px;
63
- //}
64
61
  .mat-mdc-option {
65
62
  .mdc-list-item__primary-text {
66
63
  color: #000000 !important;
package/style/styles.scss CHANGED
@@ -157,13 +157,20 @@ canvas {
157
157
  .part-material {
158
158
  margin-top: 20px;
159
159
  flex-basis: 100%;
160
- overflow: auto;
160
+ overflow-x: hidden;
161
+ overflow-y: auto;
161
162
  .material-color {
162
163
  display: block;
163
164
  height: 40px;
164
165
  }
165
166
  }
166
167
  }
168
+ #material_color_dialog {
169
+ width: 800px;
170
+ .mat-mdc-dialog-surface {
171
+ padding: 24px;
172
+ }
173
+ }
167
174
 
168
175
  #upload_model_dialog {
169
176
  width: 800px;
Binary file