@colijnit/inphoto 300.1.3 → 300.1.4

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 (58) hide show
  1. package/assets/inphoto-add-products.jpg +0 -0
  2. package/fesm2022/colijnit-inphoto.mjs +885 -727
  3. package/fesm2022/colijnit-inphoto.mjs.map +1 -1
  4. package/icons/arrow_down_solid_full.svg +1 -0
  5. package/icons/minus_solid_full.svg +1 -0
  6. package/icons/plus_solid_full.svg +1 -0
  7. package/index.d.ts +117 -53
  8. package/lib/component/ai-prompt/style/_layout.scss +1 -37
  9. package/lib/component/ai-prompt/style/_material-definition.scss +3 -1
  10. package/lib/component/ai-prompt/style/_theme.scss +60 -1
  11. package/lib/component/canvas-tool-bar/style/_layout.scss +20 -21
  12. package/lib/component/catalog/style/_layout.scss +1 -1
  13. package/lib/component/catalog/style/_theme.scss +8 -0
  14. package/lib/component/edit-canvas/style/_layout.scss +48 -5
  15. package/lib/component/edit-canvas/style/_theme.scss +4 -0
  16. package/lib/component/header/style/_layout.scss +24 -0
  17. package/lib/component/header/style/_material-definition.scss +3 -0
  18. package/lib/component/header/style/_theme.scss +20 -0
  19. package/lib/component/image-enhancer/style/_layout.scss +0 -61
  20. package/lib/component/image-enhancer/style/_theme.scss +14 -7
  21. package/lib/component/image-history/style/_layout.scss +3 -14
  22. package/lib/component/image-history/style/_theme.scss +19 -1
  23. package/lib/component/image-history-tile/style/_layout.scss +0 -11
  24. package/lib/component/image-history-tile/style/_theme.scss +9 -12
  25. package/lib/component/image-process-complete/style/_layout.scss +37 -29
  26. package/lib/component/image-process-complete/style/_material-definition.scss +2 -0
  27. package/lib/component/image-process-complete/style/_theme.scss +25 -46
  28. package/lib/component/image-tile/components/color-palette-option/style/_layout.scss +2 -2
  29. package/lib/component/image-tile/style/_layout.scss +26 -23
  30. package/lib/component/image-tile/style/_theme.scss +45 -0
  31. package/lib/component/photo-editor/style/_layout.scss +16 -2
  32. package/lib/component/prepare-starting-image/style/_layout.scss +29 -74
  33. package/lib/component/prepare-starting-image/style/_material-definition.scss +1 -0
  34. package/lib/component/prepare-starting-image/style/_theme.scss +20 -93
  35. package/lib/component/ready-to-add-articles/style/_layout.scss +6 -1
  36. package/lib/component/ready-to-add-articles/style/_theme.scss +3 -3
  37. package/lib/component/scene-context-menu/style/_layout.scss +0 -22
  38. package/lib/component/scene-context-menu/style/_material-definition.scss +2 -1
  39. package/lib/component/scene-context-menu/style/_theme.scss +36 -0
  40. package/lib/component/segment-inpaint/style/_layout.scss +26 -29
  41. package/lib/component/segment-inpaint/style/_theme.scss +33 -0
  42. package/lib/component/step-tile/style/_layout.scss +57 -0
  43. package/lib/component/step-tile/style/_material-definition.scss +2 -0
  44. package/lib/component/step-tile/style/_theme.scss +89 -0
  45. package/lib/component/threed-to-ai/style/_layout.scss +0 -19
  46. package/lib/component/threed-to-ai/style/_theme.scss +24 -0
  47. package/lib/component/threedscene/style/_layout.scss +12 -2
  48. package/lib/style/_variables.scss +1 -0
  49. package/lib/style/inphoto-globals.scss +1 -0
  50. package/package.json +1 -1
  51. package/lib/component/image-process-complete/components/image-process-complete-next/style/_layout.scss +0 -45
  52. package/lib/component/image-process-complete/components/image-process-complete-next/style/_material-definition.scss +0 -3
  53. package/lib/component/image-process-complete/components/image-process-complete-next/style/_theme.scss +0 -10
  54. package/lib/component/segment-inpaint/components/inpaint-info-card/style/_layout.scss +0 -49
  55. package/lib/component/segment-inpaint/components/inpaint-info-card/style/_material-definition.scss +0 -3
  56. package/lib/component/segment-inpaint/components/inpaint-info-card/style/_theme.scss +0 -10
  57. /package/lib/component/{image-process-complete/components/image-process-complete-next → header}/style/material.scss +0 -0
  58. /package/lib/component/{segment-inpaint/components/inpaint-info-card → step-tile}/style/material.scss +0 -0
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M297.4 566.6C309.9 579.1 330.2 579.1 342.7 566.6L502.7 406.6C515.2 394.1 515.2 373.8 502.7 361.3C490.2 348.8 469.9 348.8 457.4 361.3L352 466.7L352 96C352 78.3 337.7 64 320 64C302.3 64 288 78.3 288 96L288 466.7L182.6 361.3C170.1 348.8 149.8 348.8 137.3 361.3C124.8 373.8 124.8 394.1 137.3 406.6L297.3 566.6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M96 320C96 302.3 110.3 288 128 288L512 288C529.7 288 544 302.3 544 320C544 337.7 529.7 352 512 352L128 352C110.3 352 96 337.7 96 320z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M352 128C352 110.3 337.7 96 320 96C302.3 96 288 110.3 288 128L288 288L128 288C110.3 288 96 302.3 96 320C96 337.7 110.3 352 128 352L288 352L288 512C288 529.7 302.3 544 320 544C337.7 544 352 529.7 352 512L352 352L512 352C529.7 352 544 337.7 544 320C544 302.3 529.7 288 512 288L352 288L352 128z"/></svg>
package/index.d.ts CHANGED
@@ -31,6 +31,7 @@ import * as i5 from '@colijnit/utilities';
31
31
  declare enum Icon {
32
32
  AngleDownSolidFull = "angle_down_solid_full",
33
33
  AngleUpSolidFull = "angle_up_solid_full",
34
+ ArrowDownSolidFull = "arrow_down_solid_full",
34
35
  ArrowLeftSolidFull = "arrow_left_solid_full",
35
36
  ArrowRightSolidFull = "arrow_right_solid_full",
36
37
  ArrowRotateLeftSolidFull = "arrow_rotate_left_solid_full",
@@ -61,8 +62,10 @@ declare enum Icon {
61
62
  InfoSolidFull = "info_solid_full",
62
63
  LightbulbRegularFull = "lightbulb_regular_full",
63
64
  LockSolidFull = "lock_solid_full",
65
+ MinusSolidFull = "minus_solid_full",
64
66
  PaintbrushRegular = "paintbrush_regular",
65
67
  PenToSquareSolidFull = "pen_to_square_solid_full",
68
+ PlusSolidFull = "plus_solid_full",
66
69
  RotateLeftSharpSolidFull = "rotate_left_sharp_solid_full",
67
70
  RotateSolidFull = "rotate_solid_full",
68
71
  SaveSkinny = "save_skinny",
@@ -700,6 +703,7 @@ declare class InphotoDataService {
700
703
  removeMask(color: ColorPalette): void;
701
704
  hasAnyMask(): boolean;
702
705
  clearAllMasks(): void;
706
+ cleanUp(): void;
703
707
  static ɵfac: i0.ɵɵFactoryDeclaration<InphotoDataService, never>;
704
708
  static ɵprov: i0.ɵɵInjectableDeclaration<InphotoDataService>;
705
709
  }
@@ -716,10 +720,17 @@ declare class EditCanvasComponent implements AfterViewInit {
716
720
  set segmentationInPainting(value: SegmentationResponse);
717
721
  set inpaintMode(value: boolean);
718
722
  set eraserMode(value: boolean);
723
+ set dragMode(value: boolean);
724
+ get dragMode(): boolean;
719
725
  onSegmentationPointClick: EventEmitter<SegmentationPoint>;
720
726
  imageState: EventEmitter<string>;
721
727
  set maskColor(color: ColorPalette);
722
728
  get maskColor(): ColorPalette;
729
+ get zoomPercent(): number;
730
+ get minZoomPercent(): number;
731
+ get maxZoomPercent(): number;
732
+ get canZoomIn(): boolean;
733
+ get canZoomOut(): boolean;
723
734
  ctx: CanvasRenderingContext2D;
724
735
  drawing: boolean;
725
736
  brushSize: number;
@@ -729,18 +740,34 @@ declare class EditCanvasComponent implements AfterViewInit {
729
740
  private _currentStroke;
730
741
  private _segCanvas;
731
742
  private _segCtx;
743
+ private _exportCanvas;
744
+ private _exportCtx;
732
745
  private _image;
733
746
  private _inpaintMode;
734
747
  private _eraserMode;
735
748
  private _maskColor;
736
749
  private _subs;
737
750
  private _canvasLoaded;
751
+ private _zoom;
752
+ private _offsetX;
753
+ private _offsetY;
754
+ private _minZoom;
755
+ private _maxZoom;
756
+ private _zoomStep;
757
+ private _dragMode;
758
+ private _panning;
759
+ private _panStart;
738
760
  constructor(iconService: InphotoIconCacheService, dataService: InphotoDataService, _appEventService: InphotoEventService);
739
761
  ngAfterViewInit(): void;
740
762
  changeCanvasCursor(icon: Icon): void;
741
763
  startDrawing(event: MouseEvent): void;
742
764
  draw(event: MouseEvent): void;
743
765
  stopDrawing(): void;
766
+ onWheel(event: WheelEvent): void;
767
+ zoomIn(): void;
768
+ zoomOut(): void;
769
+ onZoomInput(event: Event): void;
770
+ resetView(): void;
744
771
  undoLastStroke(color?: ColorPalette): void;
745
772
  clearColor(color: ColorPalette): void;
746
773
  clearCanvas(): void;
@@ -749,20 +776,26 @@ declare class EditCanvasComponent implements AfterViewInit {
749
776
  private _syncLayersFromData;
750
777
  private _getLayer;
751
778
  private _resizeAndReplayLayers;
779
+ private _composite;
752
780
  private _render;
781
+ private _setZoom;
782
+ private _setZoomCentered;
783
+ private _clampOffsets;
753
784
  private _replayColor;
785
+ private _getBufferCoords;
754
786
  private _getCanvasCoords;
755
787
  private _drawSegmentation;
756
788
  private _ensureSegCanvas;
757
789
  private _saveCanvas;
790
+ private _setPlainCursor;
758
791
  private _colorToString;
759
792
  static ɵfac: i0.ɵɵFactoryDeclaration<EditCanvasComponent, never>;
760
- static ɵcmp: i0.ɵɵComponentDeclaration<EditCanvasComponent, "co-edit-canvas", never, { "image": { "alias": "image"; "required": false; }; "segmentationInPainting": { "alias": "segmentationInPainting"; "required": false; }; "inpaintMode": { "alias": "inpaintMode"; "required": false; }; "eraserMode": { "alias": "eraserMode"; "required": false; }; }, { "onSegmentationPointClick": "onSegmentationPointClick"; "imageState": "imageState"; }, never, never, false, never>;
793
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditCanvasComponent, "co-edit-canvas", never, { "image": { "alias": "image"; "required": false; }; "segmentationInPainting": { "alias": "segmentationInPainting"; "required": false; }; "inpaintMode": { "alias": "inpaintMode"; "required": false; }; "eraserMode": { "alias": "eraserMode"; "required": false; }; "dragMode": { "alias": "dragMode"; "required": false; }; }, { "onSegmentationPointClick": "onSegmentationPointClick"; "imageState": "imageState"; }, never, never, false, never>;
761
794
  }
762
795
 
763
796
  declare class EditCanvasModule {
764
797
  static ɵfac: i0.ɵɵFactoryDeclaration<EditCanvasModule, never>;
765
- static ɵmod: i0.ɵɵNgModuleDeclaration<EditCanvasModule, [typeof EditCanvasComponent], [typeof i2$1.FormsModule, typeof i2.IconModule, typeof i2.ButtonModule], [typeof EditCanvasComponent]>;
798
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EditCanvasModule, [typeof EditCanvasComponent], [typeof i2$1.FormsModule, typeof i2.IconModule, typeof i2.ButtonModule, typeof i2.InputTextModule], [typeof EditCanvasComponent]>;
766
799
  static ɵinj: i0.ɵɵInjectorDeclaration<EditCanvasModule>;
767
800
  }
768
801
 
@@ -822,7 +855,8 @@ declare class ImageEnhancer {
822
855
  declare enum FileTypes {
823
856
  JPG = "JPG",
824
857
  JPEG = "JPEG",
825
- PNG = "PNG"
858
+ PNG = "PNG",
859
+ WEBP = "WEBP"
826
860
  }
827
861
 
828
862
  declare class ImageUpload implements OnDestroy {
@@ -1102,6 +1136,7 @@ declare class PhotoEditorComponent implements OnInit {
1102
1136
  showLoader: boolean;
1103
1137
  loadingTexts: string[];
1104
1138
  canvasErase: boolean;
1139
+ dragMode: boolean;
1105
1140
  maskingList: MaskImageColorInterface[];
1106
1141
  canvasMaskColor: ColorPalette;
1107
1142
  private _image;
@@ -1109,6 +1144,7 @@ declare class PhotoEditorComponent implements OnInit {
1109
1144
  constructor(iconService: InphotoIconCacheService, dataService: InphotoDataService, _connectorService: InPhotoConnectorService, _changeDetection: ChangeDetectorRef, _eventService: InphotoEventService);
1110
1145
  ngOnInit(): void;
1111
1146
  toggleEraseMode(state: boolean): void;
1147
+ toggleDragMode(value: boolean): void;
1112
1148
  handleCreatePromptWithImages(event: PromptWithImages): void;
1113
1149
  handleStyleSelection(event: EnhanceStyle): void;
1114
1150
  handleSetImageFromHistory(event: string): void;
@@ -1164,23 +1200,21 @@ declare class CanvasToolBarComponent {
1164
1200
  get canvasInpaintMode(): boolean;
1165
1201
  set canvasEraseMode(value: boolean);
1166
1202
  get canvasEraseMode(): boolean;
1167
- showActionButtons: boolean;
1168
- showInfoIcon: boolean;
1203
+ set canvasDragMode(value: boolean);
1204
+ get canvasDragMode(): boolean;
1169
1205
  title: string;
1170
1206
  dragBoundary: string;
1171
1207
  changeEraseMode: EventEmitter<boolean>;
1172
- cancelClick: EventEmitter<void>;
1173
- processSegmentation: EventEmitter<void>;
1174
- openInfoContainer: EventEmitter<any>;
1208
+ changeDragMode: EventEmitter<boolean>;
1175
1209
  private _canvasInpaintMode;
1176
1210
  private _canvasEraseMode;
1211
+ private _canvasDragMode;
1177
1212
  constructor(iconService: InphotoIconCacheService);
1178
- toggleEraseMode(mode: boolean): void;
1179
- openInfoDialog(): void;
1180
- handleCancelClick(): void;
1181
- processInpainted(): void;
1213
+ selectBrush(): void;
1214
+ selectEraser(): void;
1215
+ toggleDragMode(): void;
1182
1216
  static ɵfac: i0.ɵɵFactoryDeclaration<CanvasToolBarComponent, never>;
1183
- static ɵcmp: i0.ɵɵComponentDeclaration<CanvasToolBarComponent, "co-canvas-tool-bar", never, { "canvasInpaintMode": { "alias": "canvasInpaintMode"; "required": false; }; "canvasEraseMode": { "alias": "canvasEraseMode"; "required": false; }; "showActionButtons": { "alias": "showActionButtons"; "required": false; }; "showInfoIcon": { "alias": "showInfoIcon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dragBoundary": { "alias": "dragBoundary"; "required": false; }; }, { "changeEraseMode": "changeEraseMode"; "cancelClick": "cancelClick"; "processSegmentation": "processSegmentation"; "openInfoContainer": "openInfoContainer"; }, never, never, false, never>;
1217
+ static ɵcmp: i0.ɵɵComponentDeclaration<CanvasToolBarComponent, "co-canvas-tool-bar", never, { "canvasInpaintMode": { "alias": "canvasInpaintMode"; "required": false; }; "canvasEraseMode": { "alias": "canvasEraseMode"; "required": false; }; "canvasDragMode": { "alias": "canvasDragMode"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dragBoundary": { "alias": "dragBoundary"; "required": false; }; }, { "changeEraseMode": "changeEraseMode"; "changeDragMode": "changeDragMode"; }, never, never, false, never>;
1184
1218
  }
1185
1219
 
1186
1220
  declare class CanvasToolBarModule {
@@ -1195,6 +1229,11 @@ declare class PhotoEditorModule {
1195
1229
  static ɵinj: i0.ɵɵInjectorDeclaration<PhotoEditorModule>;
1196
1230
  }
1197
1231
 
1232
+ interface SegmentationJob {
1233
+ image: string;
1234
+ segmentJobId: string;
1235
+ }
1236
+
1198
1237
  declare class PrepareStartingImageComponent {
1199
1238
  iconService: InphotoIconCacheService;
1200
1239
  private _connectorService;
@@ -1204,7 +1243,7 @@ declare class PrepareStartingImageComponent {
1204
1243
  image: string;
1205
1244
  cancelClick: EventEmitter<void>;
1206
1245
  processedRoom: EventEmitter<SceneBuildObject>;
1207
- segmentationJobId: EventEmitter<string>;
1246
+ segmentationJobId: EventEmitter<SegmentationJob>;
1208
1247
  imageReady: EventEmitter<string>;
1209
1248
  continueToAI: EventEmitter<string>;
1210
1249
  disableSelectObjectsButton: boolean;
@@ -1220,9 +1259,54 @@ declare class PrepareStartingImageComponent {
1220
1259
  static ɵcmp: i0.ɵɵComponentDeclaration<PrepareStartingImageComponent, "co-prepare-starting-image", never, { "image": { "alias": "image"; "required": false; }; }, { "cancelClick": "cancelClick"; "processedRoom": "processedRoom"; "segmentationJobId": "segmentationJobId"; "imageReady": "imageReady"; "continueToAI": "continueToAI"; }, never, never, false, never>;
1221
1260
  }
1222
1261
 
1262
+ declare class StepTileComponent {
1263
+ iconService: InphotoIconCacheService;
1264
+ readonly icons: typeof Icon;
1265
+ showClass(): boolean;
1266
+ tileIcon: Icon;
1267
+ tileImage: string;
1268
+ title: string;
1269
+ description: string;
1270
+ showNewBanner: boolean;
1271
+ numberedStep: string;
1272
+ buttonText: string;
1273
+ buttonIcon: Icon;
1274
+ onClick: EventEmitter<void>;
1275
+ onButtonClick: EventEmitter<void>;
1276
+ constructor(iconService: InphotoIconCacheService);
1277
+ handleClick(): void;
1278
+ handleButtonClick(): void;
1279
+ static ɵfac: i0.ɵɵFactoryDeclaration<StepTileComponent, never>;
1280
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepTileComponent, "co-step-tile", never, { "tileIcon": { "alias": "tileIcon"; "required": false; }; "tileImage": { "alias": "tileImage"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "showNewBanner": { "alias": "showNewBanner"; "required": false; }; "numberedStep": { "alias": "numberedStep"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "buttonIcon": { "alias": "buttonIcon"; "required": false; }; }, { "onClick": "onClick"; "onButtonClick": "onButtonClick"; }, never, never, false, never>;
1281
+ }
1282
+
1283
+ declare class StepTileModule {
1284
+ static ɵfac: i0.ɵɵFactoryDeclaration<StepTileModule, never>;
1285
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StepTileModule, [typeof StepTileComponent], [typeof i2.IconModule, typeof PipeModule, typeof i2.ButtonModule], [typeof StepTileComponent]>;
1286
+ static ɵinj: i0.ɵɵInjectorDeclaration<StepTileModule>;
1287
+ }
1288
+
1289
+ declare class HeaderComponent {
1290
+ iconService: InphotoIconCacheService;
1291
+ readonly icons: typeof Icon;
1292
+ showClass(): boolean;
1293
+ headerIcon: Icon;
1294
+ header: string;
1295
+ description: string;
1296
+ constructor(iconService: InphotoIconCacheService);
1297
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
1298
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "co-header", never, { "headerIcon": { "alias": "headerIcon"; "required": false; }; "header": { "alias": "header"; "required": false; }; "description": { "alias": "description"; "required": false; }; }, {}, never, never, false, never>;
1299
+ }
1300
+
1301
+ declare class HeaderModule {
1302
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderModule, never>;
1303
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HeaderModule, [typeof HeaderComponent], [typeof i2.IconModule, typeof PipeModule], [typeof HeaderComponent]>;
1304
+ static ɵinj: i0.ɵɵInjectorDeclaration<HeaderModule>;
1305
+ }
1306
+
1223
1307
  declare class PrepareStartingImageModule {
1224
1308
  static ɵfac: i0.ɵɵFactoryDeclaration<PrepareStartingImageModule, never>;
1225
- static ɵmod: i0.ɵɵNgModuleDeclaration<PrepareStartingImageModule, [typeof PrepareStartingImageComponent], [typeof EditCanvasModule, typeof i2.ButtonModule, typeof PipeModule, typeof BackNextButtonsModule, typeof i2.IconModule, typeof ProcessLoaderModule], [typeof PrepareStartingImageComponent]>;
1309
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PrepareStartingImageModule, [typeof PrepareStartingImageComponent], [typeof EditCanvasModule, typeof i2.ButtonModule, typeof PipeModule, typeof BackNextButtonsModule, typeof i2.IconModule, typeof ProcessLoaderModule, typeof StepTileModule, typeof HeaderModule], [typeof PrepareStartingImageComponent]>;
1226
1310
  static ɵinj: i0.ɵɵInjectorDeclaration<PrepareStartingImageModule>;
1227
1311
  }
1228
1312
 
@@ -1423,6 +1507,7 @@ declare class InPhotoComponent {
1423
1507
  appInitializerService: AppInitializerService;
1424
1508
  appEventService: InphotoEventService;
1425
1509
  private _cdk;
1510
+ private _dataService;
1426
1511
  showClass(): boolean;
1427
1512
  set settings(input: any);
1428
1513
  showImageUpload: boolean;
@@ -1436,14 +1521,14 @@ declare class InPhotoComponent {
1436
1521
  preparedImage: string;
1437
1522
  aiDecorationImage: string;
1438
1523
  roomData: SceneBuildObject;
1439
- segmentJobId: string;
1440
- constructor(appInitializerService: AppInitializerService, appEventService: InphotoEventService, _cdk: ChangeDetectorRef);
1524
+ segmentJob: SegmentationJob;
1525
+ constructor(appInitializerService: AppInitializerService, appEventService: InphotoEventService, _cdk: ChangeDetectorRef, _dataService: InphotoDataService);
1441
1526
  handleCancelClick(): void;
1442
1527
  startPoint(): void;
1443
1528
  handleImageUpload(image: string): void;
1444
1529
  handleProcessedRoom(roomData: SceneBuildObject): void;
1445
1530
  handleStart3D(data: SceneBuildObject): void;
1446
- handleSegmentationJobId(segmentJobId: string): void;
1531
+ handleSegmentationJob(segmentJob: SegmentationJob): void;
1447
1532
  handleSegmentOutput(image: string): void;
1448
1533
  handleCancelSegmentClick(): void;
1449
1534
  handleMenuChange(event: any): void;
@@ -1461,47 +1546,38 @@ declare class SegmentInpaintComponent {
1461
1546
  private _loaderService;
1462
1547
  readonly icons: typeof Icon;
1463
1548
  showClass(): boolean;
1464
- set image(value: string);
1465
- get image(): string;
1466
- set segmentJobId(value: string);
1467
- get segmentJobId(): string;
1549
+ set segmentJob(value: SegmentationJob);
1550
+ get segmentJob(): SegmentationJob;
1468
1551
  cancelClick: EventEmitter<void>;
1469
1552
  preparedImage: EventEmitter<string>;
1470
1553
  segmentationInPaintingData: any;
1471
1554
  showInfoDialog: boolean;
1472
1555
  canvasInPaint: boolean;
1473
1556
  canvasErase: boolean;
1557
+ dragMode: boolean;
1474
1558
  showLoader: boolean;
1475
1559
  loadingTexts: string[];
1476
- private _image;
1477
- private _segmentJobiId;
1560
+ image: string;
1561
+ segmentJobId: string;
1562
+ private _segmentJob;
1478
1563
  private _inpaintImageState;
1479
1564
  constructor(iconService: InphotoIconCacheService, _connectorService: InPhotoConnectorService, _loaderService: LoaderService);
1565
+ handleSetValues(): void;
1480
1566
  handleCancelClick(): void;
1481
1567
  openInfoDialog(): void;
1482
- handleCloseInfoDialogClick(): void;
1483
1568
  toggleEraseMode(erase: boolean): void;
1569
+ toggleDragMode(value: boolean): void;
1484
1570
  handleSegmentationPointClick(event: SegmentationPoint): void;
1485
1571
  processInpainted(): void;
1486
1572
  handleImageStateChange(image: string): void;
1487
1573
  private _handleLoader;
1488
1574
  static ɵfac: i0.ɵɵFactoryDeclaration<SegmentInpaintComponent, never>;
1489
- static ɵcmp: i0.ɵɵComponentDeclaration<SegmentInpaintComponent, "co-segment-inpaint", never, { "image": { "alias": "image"; "required": false; }; "segmentJobId": { "alias": "segmentJobId"; "required": false; }; }, { "cancelClick": "cancelClick"; "preparedImage": "preparedImage"; }, never, never, false, never>;
1490
- }
1491
-
1492
- declare class InpaintInfoCardComponent {
1493
- showClass(): boolean;
1494
- icon: SafeHtml;
1495
- title: string;
1496
- description: string;
1497
- number: number;
1498
- static ɵfac: i0.ɵɵFactoryDeclaration<InpaintInfoCardComponent, never>;
1499
- static ɵcmp: i0.ɵɵComponentDeclaration<InpaintInfoCardComponent, "co-inpaint-info-card", never, { "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "number": { "alias": "number"; "required": false; }; }, {}, never, never, false, never>;
1575
+ static ɵcmp: i0.ɵɵComponentDeclaration<SegmentInpaintComponent, "co-segment-inpaint", never, { "segmentJob": { "alias": "segmentJob"; "required": false; }; }, { "cancelClick": "cancelClick"; "preparedImage": "preparedImage"; }, never, never, false, never>;
1500
1576
  }
1501
1577
 
1502
1578
  declare class SegmentInpaintModule {
1503
1579
  static ɵfac: i0.ɵɵFactoryDeclaration<SegmentInpaintModule, never>;
1504
- static ɵmod: i0.ɵɵNgModuleDeclaration<SegmentInpaintModule, [typeof SegmentInpaintComponent, typeof InpaintInfoCardComponent], [typeof EditCanvasModule, typeof i2.IconModule, typeof PipeModule, typeof i2.ButtonModule, typeof ProcessLoaderModule, typeof CanvasToolBarModule], [typeof SegmentInpaintComponent, typeof InpaintInfoCardComponent]>;
1580
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SegmentInpaintModule, [typeof SegmentInpaintComponent], [typeof EditCanvasModule, typeof i2.IconModule, typeof PipeModule, typeof i2.ButtonModule, typeof ProcessLoaderModule, typeof CanvasToolBarModule, typeof StepTileModule, typeof HeaderModule], [typeof SegmentInpaintComponent]>;
1505
1581
  static ɵinj: i0.ɵɵInjectorDeclaration<SegmentInpaintModule>;
1506
1582
  }
1507
1583
 
@@ -1515,6 +1591,7 @@ declare class ImageProcessCompleteComponent {
1515
1591
  get image(): string;
1516
1592
  handleStart3D: EventEmitter<SceneBuildObject>;
1517
1593
  handleAiDecorationClicked: EventEmitter<string>;
1594
+ handleContinueSegmentation: EventEmitter<SegmentationJob>;
1518
1595
  cancelClick: EventEmitter<void>;
1519
1596
  showLoader: boolean;
1520
1597
  loadingTexts: string[];
@@ -1523,29 +1600,16 @@ declare class ImageProcessCompleteComponent {
1523
1600
  constructor(iconService: InphotoIconCacheService, _connectorService: InPhotoConnectorService, _appEventService: InphotoEventService);
1524
1601
  handle3DClick(): void;
1525
1602
  handleAiClick(): void;
1603
+ handleContinueSegmentationClick(): void;
1526
1604
  cancel(): void;
1527
1605
  private _handleRoomReceived;
1528
1606
  static ɵfac: i0.ɵɵFactoryDeclaration<ImageProcessCompleteComponent, never>;
1529
- static ɵcmp: i0.ɵɵComponentDeclaration<ImageProcessCompleteComponent, "co-image-process-complete", never, { "image": { "alias": "image"; "required": false; }; }, { "handleStart3D": "handleStart3D"; "handleAiDecorationClicked": "handleAiDecorationClicked"; "cancelClick": "cancelClick"; }, never, never, false, never>;
1530
- }
1531
-
1532
- declare class ImageProcessCompleteNextComponent {
1533
- iconService: InphotoIconCacheService;
1534
- readonly icons: typeof Icon;
1535
- showClass(): boolean;
1536
- icon: Icon;
1537
- header: string;
1538
- body: string;
1539
- onClick: EventEmitter<void>;
1540
- constructor(iconService: InphotoIconCacheService);
1541
- handleClick(): void;
1542
- static ɵfac: i0.ɵɵFactoryDeclaration<ImageProcessCompleteNextComponent, never>;
1543
- static ɵcmp: i0.ɵɵComponentDeclaration<ImageProcessCompleteNextComponent, "co-image-process-complete-next", never, { "icon": { "alias": "icon"; "required": false; }; "header": { "alias": "header"; "required": false; }; "body": { "alias": "body"; "required": false; }; }, { "onClick": "onClick"; }, never, never, false, never>;
1607
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImageProcessCompleteComponent, "co-image-process-complete", never, { "image": { "alias": "image"; "required": false; }; }, { "handleStart3D": "handleStart3D"; "handleAiDecorationClicked": "handleAiDecorationClicked"; "handleContinueSegmentation": "handleContinueSegmentation"; "cancelClick": "cancelClick"; }, never, never, false, never>;
1544
1608
  }
1545
1609
 
1546
1610
  declare class ImageProcessCompleteModule {
1547
1611
  static ɵfac: i0.ɵɵFactoryDeclaration<ImageProcessCompleteModule, never>;
1548
- static ɵmod: i0.ɵɵNgModuleDeclaration<ImageProcessCompleteModule, [typeof ImageProcessCompleteComponent, typeof ImageProcessCompleteNextComponent], [typeof i2.IconModule, typeof PipeModule, typeof i2.ButtonModule, typeof ProcessLoaderModule], [typeof ImageProcessCompleteComponent, typeof ImageProcessCompleteNextComponent]>;
1612
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ImageProcessCompleteModule, [typeof ImageProcessCompleteComponent], [typeof i2.IconModule, typeof PipeModule, typeof i2.ButtonModule, typeof ProcessLoaderModule, typeof StepTileModule, typeof HeaderModule], [typeof ImageProcessCompleteComponent]>;
1549
1613
  static ɵinj: i0.ɵɵInjectorDeclaration<ImageProcessCompleteModule>;
1550
1614
  }
1551
1615
 
@@ -3,11 +3,8 @@
3
3
  @include cfg.export-module('co-ai-prompt-layout') {
4
4
  .co-ai-prompt {
5
5
  .custom-prompt-container {
6
- margin: 20px auto;
7
- background: var(--co-inphoto-background-white);
8
- border-radius: var(--co-inphoto-border-radius);
6
+
9
7
  box-sizing: border-box;
10
- padding: 15px;
11
8
 
12
9
  .custom-height {
13
10
  height: 100px;
@@ -27,31 +24,11 @@
27
24
  }
28
25
  }
29
26
 
30
- .prompt-head {
31
- @include cfg.sub-header-text();
32
- }
33
-
34
- .prompt-text {
35
- @include cfg.text();
36
- margin-bottom: 10px;
37
- }
38
-
39
27
  .prompt-mode {
40
28
  margin: 10px auto;
41
29
  display: flex;
42
30
  align-items: center;
43
31
 
44
- .prompt-mode-text {
45
- font-size: var(--co-inphoto-font-size-label);
46
- .active {
47
- font-weight: bold;
48
- }
49
-
50
- .spacer {
51
- margin: 0 4px;
52
- color: #CCC;
53
- }
54
- }
55
32
 
56
33
  .prompt-mode-switch {
57
34
  margin-right: 15px;
@@ -68,7 +45,6 @@
68
45
  height: 0;
69
46
 
70
47
  &:checked + .slider {
71
- background-color: var(--co-inphoto-accent-color);
72
48
 
73
49
  &:before {
74
50
  -webkit-transform: translateX(20px);
@@ -76,10 +52,6 @@
76
52
  transform: translateX(20px);
77
53
  }
78
54
  }
79
-
80
- &:focus + .slider {
81
- box-shadow: 0 0 1px var(--co-inphoto-accent-color);
82
- }
83
55
  }
84
56
  }
85
57
 
@@ -90,7 +62,6 @@
90
62
  left: 0;
91
63
  right: 0;
92
64
  bottom: 0;
93
- background-color: #ccc;
94
65
  transition: 0.4s;
95
66
 
96
67
  &:before {
@@ -100,7 +71,6 @@
100
71
  width: 16px;
101
72
  left: 4px;
102
73
  bottom: 4px;
103
- background-color: white;
104
74
  transition: 0.4s;
105
75
  }
106
76
 
@@ -114,12 +84,6 @@
114
84
  }
115
85
  }
116
86
  }
117
-
118
-
119
- .required-input-empty {
120
- border: 1px solid #dc3545;
121
- background-color: rgba(220, 53, 69, 0.25);
122
- }
123
87
  }
124
88
  }
125
89
  }
@@ -1,3 +1,5 @@
1
1
  :root {
2
-
2
+ --co-inphoto-prompt-spacer-color: #D9D9DF;
3
+ --co-inphoto-input-required-error-color: #dc3545;
4
+ --co-inphoto-input-required-error-background: rgba(220, 53, 69, 0.25);
3
5
  }
@@ -2,8 +2,67 @@
2
2
 
3
3
  @include cfg.export-module('co-ai-prompt-theme') {
4
4
  .co-ai-prompt {
5
+ .custom-prompt-container {
6
+ margin: 20px auto;
7
+ background: var(--co-inphoto-background-white);
8
+ border-radius: var(--co-inphoto-border-radius);
9
+ padding: 15px;
10
+
11
+
12
+ .prompt-head {
13
+ @include cfg.sub-header-text();
14
+ }
15
+
16
+ .prompt-text {
17
+ @include cfg.text();
18
+ margin-bottom: 10px;
19
+ }
20
+
21
+ .prompt-mode {
22
+ .prompt-mode-text {
23
+ font-size: var(--co-inphoto-font-size-label);
24
+
25
+ .active {
26
+ font-weight: bold;
27
+ }
28
+
29
+ .spacer {
30
+ margin: 0 4px;
31
+ color: var(--co-inphoto-prompt-spacer-color);
32
+ }
33
+ }
34
+
35
+ .prompt-mode-switch {
36
+
37
+ .switch {
38
+
39
+ input {
40
+ &:checked + .slider {
41
+ background-color: var(--co-inphoto-accent-color);
42
+ }
43
+
44
+ &:focus + .slider {
45
+ box-shadow: 0 0 1px var(--co-inphoto-accent-color);
46
+ }
47
+ }
48
+ }
49
+
50
+ .slider {
51
+ background-color: var(--co-inphoto-prompt-spacer-color);
52
+
53
+ &:before {
54
+ background-color: var(--co-inphoto-background-white);
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ .required-input-empty {
61
+ border: 1px solid var(--co-inphoto-input-required-error-color);
62
+ background-color: var(--co-inphoto-input-required-error-background);
63
+ }
64
+ }
5
65
  }
6
66
  }
7
67
 
8
68
 
9
-
@@ -5,44 +5,40 @@
5
5
  .canvas-toolbar {
6
6
  display: flex;
7
7
  align-items: center;
8
- background: var(--co-inphoto-dialog-background-color);
8
+ background: var(--co-inphoto-background-white);
9
9
  position: absolute;
10
10
  top: 50px;
11
- left: calc(50% - 400px);
12
- z-index: 100;
11
+ left: 25%;
12
+ z-index: 25;
13
13
  border-radius: var(--co-inphoto-border-radius);
14
14
  box-sizing: border-box;
15
- padding: 15px 15px 15px 0;
15
+ padding: 10px;
16
16
  justify-content: space-around;
17
17
 
18
18
  .drag-indicator-icon {
19
19
  cursor: grab;
20
+ box-sizing: border-box;
21
+ padding: 8px;
22
+ background: var(--co-inphoto-dialog-background-color);
23
+ border-radius: var(--co-inphoto-border-radius);
20
24
 
21
25
  &:active {
22
26
  cursor: grabbing;
23
27
  }
24
28
 
25
- @include cfg.default-icon(var(--co-inphoto-icon-size-large), var(--co-inphoto-icon-size-large), var(--co-inphoto-accent-text));
29
+ @include cfg.default-icon(var(--co-inphoto-button-small-icon-size), var(--co-inphoto-button-small-icon-size), var(--co-inphoto-accent-text));
26
30
  }
27
31
 
28
32
  .modus-indicator, .tool-selection, .actions {
29
33
  display: flex;
30
34
  align-items: center;
31
- margin: 0 10px;
35
+ margin: 0 5px;
32
36
  }
33
37
 
34
38
 
35
39
  .modus-indicator {
36
40
  .modus-indicator-text {
37
41
  @include cfg.sub-header-text();
38
- margin-right: 10px;
39
- }
40
-
41
- .modus-indicator-info-icon {
42
- .info-button {
43
- @include cfg.default-icon(var(--co-inphoto-toolbar-info-icon-size), var(--co-inphoto-toolbar-info-icon-size), var(--co-inphoto-icon-color));
44
- cursor: pointer;
45
- }
46
42
  }
47
43
  }
48
44
 
@@ -50,23 +46,25 @@
50
46
  color: var(--co-inphoto-toolbar-spacer-color);
51
47
  font-size: 30px;
52
48
  font-weight: lighter;
53
- margin: 0 10px;
49
+ margin: 0 5px;
54
50
  }
55
51
 
56
52
  .tool-selection {
57
- .brush-button, .eraser-button {
53
+ .brush-button, .eraser-button, .drag-button {
58
54
  background-color: var(--co-inphoto-button-background);
59
55
  color: var(--co-inphoto-button-color);
60
56
  font-size: var(--co-inphoto-button-font-size);
61
57
  border: var(--co-inphoto-button-border);
62
58
  cursor: pointer;
63
- padding: var(--co-inphoto-button-padding);
59
+ padding: 0;
64
60
  border-radius: var(--co-inphoto-button-radius);
65
61
  margin: 0 4px;
62
+ height: 35px;
63
+ width: 35px;
66
64
 
67
65
  .co-icon {
68
- height: var(--co-inphoto-button-icon-size);
69
- width: var(--co-inphoto-button-icon-size);
66
+ height: var(--co-inphoto-button-small-icon-size);
67
+ width: var(--co-inphoto-button-small-icon-size);
70
68
 
71
69
  svg, path {
72
70
  fill: var(--co-inphoto-button-icon-color);
@@ -91,6 +89,7 @@
91
89
  gap: 20px;
92
90
 
93
91
  .cancel-button, .action-button {
92
+ height: 35px;
94
93
  display: flex;
95
94
  align-content: center;
96
95
  align-items: center;
@@ -104,7 +103,7 @@
104
103
  font-size: var(--co-inphoto-button-font-size);
105
104
  padding: var(--co-inphoto-button-padding);
106
105
  font-weight: 500;
107
- @include cfg.default-icon(var(--co-inphoto-button-icon-size), var(--co-inphoto-button-icon-size), var(--co-inphoto-button-icon-color));
106
+ @include cfg.default-icon(var(--co-inphoto-button-small-icon-size), var(--co-inphoto-button-small-icon-size), var(--co-inphoto-button-icon-color));
108
107
 
109
108
  .label {
110
109
  margin-right: 10px;
@@ -119,7 +118,7 @@
119
118
  var(--co-inphoto-action-button-background),
120
119
  var(--co-inphoto-action-button-color),
121
120
  var(--co-inphoto-action-button-font-size),
122
- var(--co-inphoto-action-button-icon-size),
121
+ var(--co-inphoto-button-small-icon-size),
123
122
  var(--co-inphoto-action-button-icon-color),
124
123
  var(--co-inphoto-action-button-border),
125
124
  var(--co-inphoto-action-button-radius),
@@ -3,7 +3,7 @@
3
3
  @include cfg.export-module('cco-catalog-layout') {
4
4
  .co-catalog {
5
5
  .catalog-dialog {
6
- z-index: 1;
6
+ z-index: 100;
7
7
  top: 0;
8
8
  left: 85px;
9
9
  right: 0;