@processandtools/rp-article-designer 1.0.37 → 1.0.38

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 (28) hide show
  1. package/dist/components/article_designer/ArticleGroupDesigner.d.ts +1 -1
  2. package/dist/components/article_designer/ArticleGroupLayout.d.ts +3 -1
  3. package/dist/components/article_designer/helpers/DoorAnimator.d.ts +11 -0
  4. package/dist/components/article_designer/helpers/DoorSensor.d.ts +12 -0
  5. package/dist/components/article_designer/helpers/ScanNeighbors.d.ts +19 -0
  6. package/dist/components/elements_manager/PD_3D.d.ts +3 -0
  7. package/dist/components/ui/Canvas2D.d.ts +1 -1
  8. package/dist/components/ui/Canvas3D.d.ts +1 -1
  9. package/dist/components/ui/CanvasManager.d.ts +1 -1
  10. package/dist/construction_principle/cabBack/CabBackHelper.d.ts +1 -1
  11. package/dist/construction_principle/cabBack/cabback.types.d.ts +1 -1
  12. package/dist/construction_principle/door/DoorHelper.d.ts +3 -3
  13. package/dist/construction_principle/door/door.types.d.ts +5 -4
  14. package/dist/construction_principle/dto/cp-dispatcher.types.d.ts +4 -4
  15. package/dist/contexts/dimension/DimensionProvider.d.ts +2 -1
  16. package/dist/data/articles.d.ts +0 -5
  17. package/dist/helpers/LinDivValidation.d.ts +8 -0
  18. package/dist/helpers/ZoneCalculations.d.ts +45 -61
  19. package/dist/helpers/angls/UseElemHelper.d.ts +8 -5
  20. package/dist/helpers/tools/computeTrimTool.d.ts +4 -0
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/types/Elem.types.d.ts +6 -0
  26. package/dist/types/canvas.types.d.ts +3 -1
  27. package/dist/types/data.types.d.ts +5 -5
  28. package/package.json +3 -3
@@ -1,2 +1,2 @@
1
1
  import { CanvasProps } from '../../types/canvas.types';
2
- export default function ArticleGroupDesigner({ view, data, articleList, debugMode, isZCentered }: CanvasProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function ArticleGroupDesigner({ view, data, articleList, debugMode, isZCentered, selectedIndex, onArticleSelect }: CanvasProps): import("react/jsx-runtime").JSX.Element;
@@ -6,5 +6,7 @@ export interface ArticleGroupLayoutProps {
6
6
  view: VIEW;
7
7
  debugMode: boolean;
8
8
  isZCentered: boolean;
9
+ selectedIndex?: number | null;
10
+ onArticleSelect?: (index: number) => void;
9
11
  }
10
- export declare function ArticleGroupLayout({ articleList: initialArticleList, validNames, view, debugMode, isZCentered }: ArticleGroupLayoutProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ArticleGroupLayout({ articleList, validNames, view, debugMode, isZCentered, selectedIndex, onArticleSelect }: ArticleGroupLayoutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { DoorResult } from '../../../construction_principle/door/DoorHelper';
2
+ interface DoorAnimatorProps {
3
+ panelWidth: number;
4
+ panelHeight: number;
5
+ panelThk: number;
6
+ renderMat?: string;
7
+ treeId: string;
8
+ doorCp: DoorResult;
9
+ }
10
+ export default function DoorAnimator({ panelWidth, panelHeight, panelThk, renderMat, treeId, doorCp }: DoorAnimatorProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,12 @@
1
+ import { DoorResult } from '../../../construction_principle/door/DoorHelper';
2
+ interface DoorSensorProps {
3
+ panelWidth: number;
4
+ panelHeight: number;
5
+ panelThk: number;
6
+ renderMat?: string;
7
+ treeId: string;
8
+ doorCp?: DoorResult;
9
+ ddHingePosition?: 'left' | 'right';
10
+ }
11
+ export default function DoorSensor({ panelWidth, panelHeight, panelThk, renderMat, treeId, doorCp, ddHingePosition }: DoorSensorProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Object3D, Scene } from 'three';
2
+ export interface NeighborHit {
3
+ elemType: string;
4
+ thk: number;
5
+ treeId: string;
6
+ }
7
+ export interface ScanResult {
8
+ left: NeighborHit | null;
9
+ right: NeighborHit | null;
10
+ top: NeighborHit | null;
11
+ bottom: NeighborHit | null;
12
+ debugHelpers?: Object3D[];
13
+ }
14
+ /**
15
+ * Scan for neighbors using Box3 intersection.
16
+ * Works for doors in ANY position (Front, Back, Left, Right).
17
+ * Rotation-agnostic — operates in world space.
18
+ */
19
+ export declare function scanNeighbors(doorMesh: Object3D, scene: Scene): ScanResult;
@@ -1,3 +1,4 @@
1
+ import { RefObject } from 'react';
1
2
  import { PDProps } from '../../types/pd.types';
2
3
  interface PD3DExtendedProps extends PDProps {
3
4
  treeId?: string;
@@ -9,6 +10,8 @@ interface PD3DExtendedProps extends PDProps {
9
10
  startPanelThk?: number;
10
11
  endPanelThk?: number;
11
12
  render_mat?: string;
13
+ meshRef?: RefObject<any>;
14
+ elemInfo?: Record<string, unknown>;
12
15
  }
13
16
  declare const PD_3D: import('react').NamedExoticComponent<PD3DExtendedProps>;
14
17
  export default PD_3D;
@@ -1,2 +1,2 @@
1
1
  import { CanvasProps } from '../../types/canvas.types';
2
- export default function Canvas2D({ view, data, articleList, debugMode }: CanvasProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function Canvas2D({ view, data, articleList, debugMode, selectedIndex, onArticleSelect }: CanvasProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { CanvasProps } from '../../types/canvas.types';
2
- export default function Canvas3D({ data, articleList, debugMode }: CanvasProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function Canvas3D({ data, articleList, debugMode, selectedIndex, onArticleSelect }: CanvasProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { CanvasProps } from '../../types/canvas.types';
2
- export default function CanvasManager({ data, view, articleList, debugMode }: CanvasProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function CanvasManager({ data, articleList, debugMode, selectedIndex, onArticleSelect }: CanvasProps): import("react/jsx-runtime").JSX.Element;
@@ -2,6 +2,6 @@ import { KmsResult } from '../kms/KmsHelper';
2
2
  import { DataContextType } from '../../types/data.types';
3
3
  export interface BackPanelResult {
4
4
  kms: KmsResult | undefined;
5
- inset: number;
5
+ inset: string;
6
6
  }
7
7
  export declare function CabBackHelper(articleData: DataContextType, NAME: string): BackPanelResult | undefined;
@@ -1,5 +1,5 @@
1
1
  export interface CabbackTypes {
2
2
  NAME: string;
3
3
  KMS: string;
4
- SDISTLR: string;
4
+ INSET: number | string;
5
5
  }
@@ -1,8 +1,8 @@
1
1
  import { KmsResult } from '../kms/KmsHelper';
2
2
  import { DataContextType } from '../../types/data.types';
3
3
  import { DoorTypes } from './door.types';
4
- export interface DoorResult extends DoorTypes {
5
- kmsCpLeft: KmsResult | undefined;
6
- kmsCpRight: KmsResult | undefined;
4
+ export interface DoorResult extends Omit<DoorTypes, 'kmsLeft' | 'kmsRight'> {
5
+ kmsL: KmsResult | undefined;
6
+ kmsR: KmsResult | undefined;
7
7
  }
8
8
  export default function DoorHelper(articleData: DataContextType, NAME: string): DoorResult | undefined;
@@ -1,9 +1,10 @@
1
1
  export interface DoorTypes {
2
2
  name: string;
3
- construction: string;
4
- doorCount: string;
5
- doorType: string;
6
- hingePosition: string;
3
+ construction: 'inset' | 'onset';
4
+ doorCount: 'single' | 'double';
5
+ doorType: 'standard' | 'flap';
6
+ hingePosition: 'left' | 'right' | 'top' | 'bottom';
7
7
  kmsLeft: string;
8
8
  kmsRight: string;
9
+ inset: string | number;
9
10
  }
@@ -24,25 +24,25 @@ export type CpDispatcherResult = {
24
24
  props: ShelfResult | undefined;
25
25
  thk: number;
26
26
  };
27
- export declare function isSidePanel(cp: CpDispatcherResult): cp is {
27
+ export declare function isSidePanel(cp: CpDispatcherResult | undefined): cp is {
28
28
  name: string;
29
29
  type: ElemPartType.SidePanel;
30
30
  props: SidePanelResult;
31
31
  thk: number;
32
32
  };
33
- export declare function isBackPanel(cp: CpDispatcherResult): cp is {
33
+ export declare function isBackPanel(cp: CpDispatcherResult | undefined): cp is {
34
34
  name: string;
35
35
  type: ElemPartType.Back;
36
36
  props: BackPanelResult;
37
37
  thk: number;
38
38
  };
39
- export declare function isDoor(cp: CpDispatcherResult): cp is {
39
+ export declare function isDoor(cp: CpDispatcherResult | undefined): cp is {
40
40
  name: string;
41
41
  type: ElemPartType.Door;
42
42
  props: DoorResult;
43
43
  thk: number;
44
44
  };
45
- export declare function isShelf(cp: CpDispatcherResult): cp is {
45
+ export declare function isShelf(cp: CpDispatcherResult | undefined): cp is {
46
46
  name: string;
47
47
  type: ElemPartType.Shelf;
48
48
  props: ShelfResult;
@@ -1,6 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { DimensionProps } from '../../types/zone.types';
3
- export declare function DimensionProvider({ children, initialDimensions }: {
3
+ export declare function DimensionProvider({ children, initialDimensions, onDimensionChange }: {
4
4
  children: ReactNode;
5
5
  initialDimensions?: DimensionProps;
6
+ onDimensionChange?: (key: keyof DimensionProps, value: number) => void;
6
7
  }): import("react/jsx-runtime").JSX.Element;
@@ -6,9 +6,4 @@ export declare const articleList: {
6
6
  height: number;
7
7
  depth: number;
8
8
  };
9
- variables: {
10
- P_SPP_COLOR: string;
11
- P_WIDTH: number;
12
- HSP: number;
13
- };
14
9
  }[];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validates a linear division string.
3
+ * Should be called AFTER variables ($var) are resolved.
4
+ *
5
+ * @param lindiv - The linear division string to validate
6
+ * @returns true if valid, false otherwise
7
+ */
8
+ export declare function isValidLinearDivision(lindiv: string): boolean;
@@ -3,8 +3,11 @@ import { DividerMode } from '../types/divider.types';
3
3
  export declare function useZoneElemHelpers(articleName: string, TREEID: string): {
4
4
  front: {
5
5
  TREEID: string;
6
- constPrinciple: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
6
+ PARTTYPE: import('../types/Elem.types.tsx').ElemPartType;
7
+ cp: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
7
8
  thk: number;
9
+ topThk: number;
10
+ bottomThk: number;
8
11
  inset: number;
9
12
  oversize: {
10
13
  start: number;
@@ -13,10 +16,10 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
13
16
  bottom: number;
14
17
  };
15
18
  trim: {
16
- start: string;
17
- end: string;
18
- top: string;
19
- bottom: string;
19
+ start: import('../types/Elem.types.tsx').ElemTrimType;
20
+ end: import('../types/Elem.types.tsx').ElemTrimType;
21
+ top: import('../types/Elem.types.tsx').ElemTrimType;
22
+ bot: import('../types/Elem.types.tsx').ElemTrimType;
20
23
  };
21
24
  elmTrimThk: {
22
25
  top: number;
@@ -25,8 +28,11 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
25
28
  } | null;
26
29
  left: {
27
30
  TREEID: string;
28
- constPrinciple: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
31
+ PARTTYPE: import('../types/Elem.types.tsx').ElemPartType;
32
+ cp: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
29
33
  thk: number;
34
+ topThk: number;
35
+ bottomThk: number;
30
36
  inset: number;
31
37
  oversize: {
32
38
  start: number;
@@ -35,10 +41,10 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
35
41
  bottom: number;
36
42
  };
37
43
  trim: {
38
- start: string;
39
- end: string;
40
- top: string;
41
- bottom: string;
44
+ start: import('../types/Elem.types.tsx').ElemTrimType;
45
+ end: import('../types/Elem.types.tsx').ElemTrimType;
46
+ top: import('../types/Elem.types.tsx').ElemTrimType;
47
+ bot: import('../types/Elem.types.tsx').ElemTrimType;
42
48
  };
43
49
  elmTrimThk: {
44
50
  top: number;
@@ -47,8 +53,11 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
47
53
  } | null;
48
54
  right: {
49
55
  TREEID: string;
50
- constPrinciple: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
56
+ PARTTYPE: import('../types/Elem.types.tsx').ElemPartType;
57
+ cp: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
51
58
  thk: number;
59
+ topThk: number;
60
+ bottomThk: number;
52
61
  inset: number;
53
62
  oversize: {
54
63
  start: number;
@@ -57,10 +66,10 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
57
66
  bottom: number;
58
67
  };
59
68
  trim: {
60
- start: string;
61
- end: string;
62
- top: string;
63
- bottom: string;
69
+ start: import('../types/Elem.types.tsx').ElemTrimType;
70
+ end: import('../types/Elem.types.tsx').ElemTrimType;
71
+ top: import('../types/Elem.types.tsx').ElemTrimType;
72
+ bot: import('../types/Elem.types.tsx').ElemTrimType;
64
73
  };
65
74
  elmTrimThk: {
66
75
  top: number;
@@ -69,8 +78,11 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
69
78
  } | null;
70
79
  back: {
71
80
  TREEID: string;
72
- constPrinciple: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
81
+ PARTTYPE: import('../types/Elem.types.tsx').ElemPartType;
82
+ cp: import('../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
73
83
  thk: number;
84
+ topThk: number;
85
+ bottomThk: number;
74
86
  inset: number;
75
87
  oversize: {
76
88
  start: number;
@@ -79,10 +91,10 @@ export declare function useZoneElemHelpers(articleName: string, TREEID: string):
79
91
  bottom: number;
80
92
  };
81
93
  trim: {
82
- start: string;
83
- end: string;
84
- top: string;
85
- bottom: string;
94
+ start: import('../types/Elem.types.tsx').ElemTrimType;
95
+ end: import('../types/Elem.types.tsx').ElemTrimType;
96
+ top: import('../types/Elem.types.tsx').ElemTrimType;
97
+ bot: import('../types/Elem.types.tsx').ElemTrimType;
86
98
  };
87
99
  elmTrimThk: {
88
100
  top: number;
@@ -98,47 +110,13 @@ export declare function getBorderThk(elemHelpers: ReturnType<typeof useZoneElemH
98
110
  top: number;
99
111
  bottom: number;
100
112
  };
101
- export declare function getTopTrimThk(elemHelpers: ReturnType<typeof useZoneElemHelpers>, bordersThk: ReturnType<typeof getBorderThk>): {
102
- left: number;
103
- right: number;
104
- front: number;
105
- back: number;
106
- };
107
- export declare function getBottomTrimThk(elemHelpers: ReturnType<typeof useZoneElemHelpers>, bordersThk: ReturnType<typeof getBorderThk>): {
108
- left: number;
109
- right: number;
110
- front: number;
111
- back: number;
113
+ export declare function getZoneInset(elemHelpers: ReturnType<typeof useZoneElemHelpers>): {
114
+ fr: number;
115
+ ri: number;
116
+ bk: number;
117
+ le: number;
112
118
  };
113
- export declare function getZoneBorders(elemHelpers: ReturnType<typeof useZoneElemHelpers>, topShelfThk: number, bottomShelfThk: number): {
114
- bordersThk: {
115
- front: number;
116
- right: number;
117
- back: number;
118
- left: number;
119
- top: number;
120
- bottom: number;
121
- };
122
- topTrimThk: {
123
- left: number;
124
- right: number;
125
- front: number;
126
- back: number;
127
- };
128
- bottomTrimThk: {
129
- left: number;
130
- right: number;
131
- front: number;
132
- back: number;
133
- };
134
- };
135
- export declare function getBorderInset(elemHelpers: ReturnType<typeof useZoneElemHelpers>): {
136
- front: number;
137
- right: number;
138
- back: number;
139
- left: number;
140
- };
141
- export declare function calculateZoneGeometry(dimension: DimensionProps, borderInset: ReturnType<typeof getBorderInset>): {
119
+ export declare function calculateZoneGeometry(dimension: DimensionProps, borderInset: ReturnType<typeof getZoneInset>): {
142
120
  dimensions: {
143
121
  width: number;
144
122
  height: number;
@@ -150,7 +128,13 @@ export declare function calculateZoneGeometry(dimension: DimensionProps, borderI
150
128
  z: number;
151
129
  };
152
130
  };
153
- export declare function calculateRemainingZoneGeometry(zoneGeometry: ReturnType<typeof calculateZoneGeometry>, bordersThk: ReturnType<typeof getBorderThk>): {
131
+ export declare function getRemainingInset(elemHelpers: ReturnType<typeof useZoneElemHelpers>): {
132
+ fr: number;
133
+ ri: number;
134
+ bk: number;
135
+ le: number;
136
+ };
137
+ export declare function calculateRemainingZoneGeometry(zoneGeometry: ReturnType<typeof calculateZoneGeometry>, bordersThk: ReturnType<typeof getBorderThk>, remainingInset: ReturnType<typeof getRemainingInset>): {
154
138
  dimensions: {
155
139
  width: number;
156
140
  height: number;
@@ -1,7 +1,10 @@
1
1
  export declare function useElemHelper(articleName: string, TREEID: string): {
2
2
  TREEID: string;
3
- constPrinciple: import('../../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
3
+ PARTTYPE: import('../../types/Elem.types.tsx').ElemPartType;
4
+ cp: import('../../construction_principle/dto/cp-dispatcher.types.ts').CpDispatcherResult | undefined;
4
5
  thk: number;
6
+ topThk: number;
7
+ bottomThk: number;
5
8
  inset: number;
6
9
  oversize: {
7
10
  start: number;
@@ -10,10 +13,10 @@ export declare function useElemHelper(articleName: string, TREEID: string): {
10
13
  bottom: number;
11
14
  };
12
15
  trim: {
13
- start: string;
14
- end: string;
15
- top: string;
16
- bottom: string;
16
+ start: import('../../types/Elem.types.tsx').ElemTrimType;
17
+ end: import('../../types/Elem.types.tsx').ElemTrimType;
18
+ top: import('../../types/Elem.types.tsx').ElemTrimType;
19
+ bot: import('../../types/Elem.types.tsx').ElemTrimType;
17
20
  };
18
21
  elmTrimThk: {
19
22
  top: number;
@@ -0,0 +1,4 @@
1
+ import { ElemPartType, ElemTrimType } from '../../types/Elem.types';
2
+ import { DividerType } from '../../types/divider.types';
3
+ import { PartTypeSource } from '../../construction_principle/dto/angl-type-config';
4
+ export declare function computeTrim(currCpSource: PartTypeSource, currCpType: ElemPartType | DividerType, currentCpTrim?: ElemTrimType, joinPartSourceType?: PartTypeSource, joinPartType?: ElemPartType | DividerType, joinPartThk?: number, backInset?: number): number;