@faicad/sheetmetal 0.13.0

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 (113) hide show
  1. package/dist/allowanceFns.d.ts +42 -0
  2. package/dist/allowanceFns.d.ts.map +1 -0
  3. package/dist/allowanceFns.js +63 -0
  4. package/dist/allowanceFns.js.map +1 -0
  5. package/dist/api.d.ts +312 -0
  6. package/dist/api.d.ts.map +1 -0
  7. package/dist/api.js +367 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/authorFns.d.ts +118 -0
  10. package/dist/authorFns.d.ts.map +1 -0
  11. package/dist/authorFns.js +562 -0
  12. package/dist/authorFns.js.map +1 -0
  13. package/dist/bendTableFns.d.ts +87 -0
  14. package/dist/bendTableFns.d.ts.map +1 -0
  15. package/dist/bendTableFns.js +345 -0
  16. package/dist/bendTableFns.js.map +1 -0
  17. package/dist/compat.d.ts +90 -0
  18. package/dist/compat.d.ts.map +1 -0
  19. package/dist/compat.js +99 -0
  20. package/dist/compat.js.map +1 -0
  21. package/dist/contourFlangeFns.d.ts +122 -0
  22. package/dist/contourFlangeFns.d.ts.map +1 -0
  23. package/dist/contourFlangeFns.js +403 -0
  24. package/dist/contourFlangeFns.js.map +1 -0
  25. package/dist/cutoutFns.d.ts +95 -0
  26. package/dist/cutoutFns.d.ts.map +1 -0
  27. package/dist/cutoutFns.js +300 -0
  28. package/dist/cutoutFns.js.map +1 -0
  29. package/dist/dxfFns.d.ts +48 -0
  30. package/dist/dxfFns.d.ts.map +1 -0
  31. package/dist/dxfFns.js +236 -0
  32. package/dist/dxfFns.js.map +1 -0
  33. package/dist/facade.d.ts +449 -0
  34. package/dist/facade.d.ts.map +1 -0
  35. package/dist/facade.js +535 -0
  36. package/dist/facade.js.map +1 -0
  37. package/dist/featureTreeFns.d.ts +76 -0
  38. package/dist/featureTreeFns.d.ts.map +1 -0
  39. package/dist/featureTreeFns.js +190 -0
  40. package/dist/featureTreeFns.js.map +1 -0
  41. package/dist/foldFns.d.ts +83 -0
  42. package/dist/foldFns.d.ts.map +1 -0
  43. package/dist/foldFns.js +744 -0
  44. package/dist/foldFns.js.map +1 -0
  45. package/dist/foreignUnfoldFns.d.ts +62 -0
  46. package/dist/foreignUnfoldFns.d.ts.map +1 -0
  47. package/dist/foreignUnfoldFns.js +854 -0
  48. package/dist/foreignUnfoldFns.js.map +1 -0
  49. package/dist/formFns.d.ts +58 -0
  50. package/dist/formFns.d.ts.map +1 -0
  51. package/dist/formFns.js +300 -0
  52. package/dist/formFns.js.map +1 -0
  53. package/dist/hemFns.d.ts +17 -0
  54. package/dist/hemFns.d.ts.map +1 -0
  55. package/dist/hemFns.js +212 -0
  56. package/dist/hemFns.js.map +1 -0
  57. package/dist/index.d.ts +43 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +32 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/internal.d.ts +27 -0
  62. package/dist/internal.d.ts.map +1 -0
  63. package/dist/internal.js +38 -0
  64. package/dist/internal.js.map +1 -0
  65. package/dist/jogFns.d.ts +18 -0
  66. package/dist/jogFns.d.ts.map +1 -0
  67. package/dist/jogFns.js +180 -0
  68. package/dist/jogFns.js.map +1 -0
  69. package/dist/loftedFlangeFns.d.ts +23 -0
  70. package/dist/loftedFlangeFns.d.ts.map +1 -0
  71. package/dist/loftedFlangeFns.js +306 -0
  72. package/dist/loftedFlangeFns.js.map +1 -0
  73. package/dist/materials.d.ts +16 -0
  74. package/dist/materials.d.ts.map +1 -0
  75. package/dist/materials.js +44 -0
  76. package/dist/materials.js.map +1 -0
  77. package/dist/miterFns.d.ts +31 -0
  78. package/dist/miterFns.d.ts.map +1 -0
  79. package/dist/miterFns.js +128 -0
  80. package/dist/miterFns.js.map +1 -0
  81. package/dist/nestFns.d.ts +116 -0
  82. package/dist/nestFns.d.ts.map +1 -0
  83. package/dist/nestFns.js +517 -0
  84. package/dist/nestFns.js.map +1 -0
  85. package/dist/polygonFns.d.ts +144 -0
  86. package/dist/polygonFns.d.ts.map +1 -0
  87. package/dist/polygonFns.js +324 -0
  88. package/dist/polygonFns.js.map +1 -0
  89. package/dist/reliefFns.d.ts +44 -0
  90. package/dist/reliefFns.d.ts.map +1 -0
  91. package/dist/reliefFns.js +367 -0
  92. package/dist/reliefFns.js.map +1 -0
  93. package/dist/reportFns.d.ts +33 -0
  94. package/dist/reportFns.d.ts.map +1 -0
  95. package/dist/reportFns.js +71 -0
  96. package/dist/reportFns.js.map +1 -0
  97. package/dist/tabFns.d.ts +43 -0
  98. package/dist/tabFns.d.ts.map +1 -0
  99. package/dist/tabFns.js +179 -0
  100. package/dist/tabFns.js.map +1 -0
  101. package/dist/types.d.ts +629 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +2 -0
  104. package/dist/types.js.map +1 -0
  105. package/dist/unfoldFns.d.ts +120 -0
  106. package/dist/unfoldFns.d.ts.map +1 -0
  107. package/dist/unfoldFns.js +766 -0
  108. package/dist/unfoldFns.js.map +1 -0
  109. package/dist/validateFns.d.ts +18 -0
  110. package/dist/validateFns.d.ts.map +1 -0
  111. package/dist/validateFns.js +196 -0
  112. package/dist/validateFns.js.map +1 -0
  113. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dxfFns.js","sourceRoot":"","sources":["../src/dxfFns.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Result, type Vec3, type Wire, ok, err, validationError, getEdges, curveStartPoint, curveEndPoint } from '@faicad/faijs/brepjs-compat';\nimport type { FlatPattern } from './types.js';\n\n/** Options for the flat-pattern DXF writers. */\nexport interface DxfOptions {\n textHeight?: number | undefined;\n}\n\nconst DEFAULT_TEXT_HEIGHT = 2.5;\nconst LAYER_OUTLINE = 'OUTLINE';\nconst LAYER_BEND_UP = 'BEND_UP';\nconst LAYER_BEND_DOWN = 'BEND_DOWN';\nconst LAYER_CUTOUT = 'CUTOUT';\nconst LAYER_FORM = 'FORM';\n\nconst COLOR_OUTLINE = 7;\nconst COLOR_BEND_UP = 1;\nconst COLOR_BEND_DOWN = 5;\nconst COLOR_CUTOUT = 3;\nconst COLOR_FORM = 4;\n\ntype Pt2 = [number, number];\n\n/**\n * A 2D point transform applied to every emitted vertex. Used by the nesting writer\n * to place each pattern at its `(x, y)` and rotation on the sheet; the default\n * single-pattern writer uses the identity transform.\n */\nexport type Transform2 = (p: Pt2) => Pt2;\n\nconst IDENTITY: Transform2 = (p) => p;\n\n/**\n * Package-local DXF writer for sheet-metal flat patterns. The core public writer\n * (`blueprintToDXF`) is R12 LINE/POLYLINE-only with no MTEXT, layer color, or\n * INSUNITS, so it cannot carry the annotated multi-layer output required here.\n *\n * Emits a strict AC1015 (R2000) DXF: `INSUNITS=4` (mm), the outline polyline on\n * layer OUTLINE, each bend line on BEND_UP / BEND_DOWN, and an MTEXT\n * angle/direction annotation (e.g. \"∠90° U\") at each bend-line midpoint. Every\n * table record and entity carries a unique handle and the AcDb subclass markers\n * R13+ readers (AutoCAD AUDIT, ODA/Teigha) require to parse the file cleanly.\n *\n * @param pattern - the flat pattern to serialize.\n * @param options - writer options (e.g. {@link DxfOptions.textHeight}).\n * @returns `Result<string>` — the complete DXF file text when `ok`.\n */\nexport function flatPatternToDXF(pattern: FlatPattern, options: DxfOptions = {}): Result<string> {\n return multiPatternToDXF([{ pattern, transform: IDENTITY }], options);\n}\n\n/** One pattern plus the sheet-placement transform applied to all its geometry. */\nexport interface PlacedPattern {\n pattern: FlatPattern;\n transform: Transform2;\n}\n\n/**\n * Emit one DXF for any number of placed patterns (the nesting per-sheet writer).\n * Each pattern's outline / bend lines / holes / forms are run through its own\n * {@link Transform2} (translate + rotate onto the sheet) before being written, so\n * the nested file is fabrication-ready. Layers/colors/handle scheme match the\n * single-pattern writer exactly.\n *\n * @param placed - the patterns to serialize, each with its sheet-placement transform.\n * @param options - writer options (e.g. {@link DxfOptions.textHeight}).\n * @returns `Result<string>` — the complete DXF file text when `ok`.\n */\nexport function multiPatternToDXF(placed: PlacedPattern[], options: DxfOptions = {}): Result<string> {\n const textHeight = options.textHeight ?? DEFAULT_TEXT_HEIGHT;\n if (!Number.isFinite(textHeight) || textHeight <= 0) {\n return err(validationError('INVALID_TEXT_HEIGHT', `textHeight must be a finite, positive number, got ${textHeight}`));\n }\n\n const prepared: { pattern: FlatPattern; transform: Transform2; outline: Pt2[] }[] = [];\n for (const p of placed) {\n const outlineResult = outlinePoints(p.pattern);\n if (!outlineResult.ok) return outlineResult;\n prepared.push({ pattern: p.pattern, transform: p.transform, outline: outlineResult.value });\n }\n\n // Tables + entities consume handles; the header's $HANDSEED must exceed them,\n // so build the body first and seed the header from the next free handle.\n const body = new DxfWriter();\n writeTables(body);\n body.pair(0, 'SECTION');\n body.pair(2, 'ENTITIES');\n for (const p of prepared) {\n writePatternEntities(body, p.outline, p.pattern, textHeight, p.transform);\n }\n body.pair(0, 'ENDSEC');\n\n const head = new DxfWriter();\n writeHeader(head, body.seedHex());\n\n return ok([head.text(), body.text(), '0', 'EOF'].join('\\n') + '\\n');\n}\n\nclass DxfWriter {\n private readonly lines: string[] = [];\n private nextHandle = 0xa0;\n\n pair(code: number, value: string | number): void {\n this.lines.push(String(code));\n this.lines.push(typeof value === 'number' ? String(value) : value);\n }\n\n /** Emit a unique entity/record handle (group code 5). */\n handle(): void {\n this.pair(5, this.nextHandle.toString(16).toUpperCase());\n this.nextHandle += 1;\n }\n\n /** Next free handle (hex) — written as the header `$HANDSEED`. */\n seedHex(): string {\n return this.nextHandle.toString(16).toUpperCase();\n }\n\n text(): string {\n return this.lines.join('\\n');\n }\n}\n\nfunction writeHeader(w: DxfWriter, handseed: string): void {\n w.pair(0, 'SECTION');\n w.pair(2, 'HEADER');\n w.pair(9, '$ACADVER');\n w.pair(1, 'AC1015');\n w.pair(9, '$INSUNITS');\n w.pair(70, 4);\n w.pair(9, '$HANDSEED');\n w.pair(5, handseed);\n w.pair(0, 'ENDSEC');\n}\n\nfunction writeTables(w: DxfWriter): void {\n w.pair(0, 'SECTION');\n w.pair(2, 'TABLES');\n w.pair(0, 'TABLE');\n w.pair(2, 'LAYER');\n w.handle();\n w.pair(100, 'AcDbSymbolTable');\n w.pair(70, 5);\n writeLayer(w, LAYER_OUTLINE, COLOR_OUTLINE);\n writeLayer(w, LAYER_BEND_UP, COLOR_BEND_UP);\n writeLayer(w, LAYER_BEND_DOWN, COLOR_BEND_DOWN);\n writeLayer(w, LAYER_CUTOUT, COLOR_CUTOUT);\n writeLayer(w, LAYER_FORM, COLOR_FORM);\n w.pair(0, 'ENDTAB');\n w.pair(0, 'ENDSEC');\n}\n\nfunction writeLayer(w: DxfWriter, name: string, color: number): void {\n w.pair(0, 'LAYER');\n w.handle();\n w.pair(100, 'AcDbSymbolTableRecord');\n w.pair(100, 'AcDbLayerTableRecord');\n w.pair(2, name);\n w.pair(70, 0);\n w.pair(62, color);\n w.pair(6, 'CONTINUOUS');\n}\n\nfunction writePatternEntities(w: DxfWriter, outline: Pt2[], pattern: FlatPattern, textHeight: number, tf: Transform2): void {\n writePolyline(w, outline.map(tf), LAYER_OUTLINE);\n\n for (const bend of pattern.bendLines) {\n const layer = bend.direction === 'down' ? LAYER_BEND_DOWN : LAYER_BEND_UP;\n const start = tf(toPt2(curveStartPoint(bend.line)));\n const end = tf(toPt2(curveEndPoint(bend.line)));\n writeLine(w, start, end, layer);\n const mid: Pt2 = [(start[0] + end[0]) / 2, (start[1] + end[1]) / 2];\n const label = annotation(bend.angleDeg, bend.direction);\n writeMText(w, mid, label, layer, textHeight);\n }\n\n for (const hole of pattern.holes) {\n writePolyline(w, loopPoints(hole).map(tf), LAYER_CUTOUT);\n }\n\n // Lofted/ruled transition developed boundaries: closed triangulated outlines on\n // the OUTLINE layer (each a separate developed blank from the rectilinear outline).\n for (const dev of pattern.loftedDevelopments) {\n writePolyline(w, loopPoints(dev).map(tf), LAYER_OUTLINE);\n }\n\n // Form features: louver U-cuts are OPEN three-side cut paths (the hinge side is\n // left uncut and drawn separately below), emboss footprints are closed marker\n // polylines, louver hinge lines are LINEs — all on the FORM layer.\n for (const cut of pattern.formCuts) {\n writeOpenPolyline(w, pathPoints(cut).map(tf), LAYER_FORM);\n }\n for (const marker of pattern.formMarkers) {\n writePolyline(w, loopPoints(marker).map(tf), LAYER_FORM);\n }\n for (const hinge of pattern.formHinges) {\n writeLine(w, tf(toPt2(curveStartPoint(hinge))), tf(toPt2(curveEndPoint(hinge))), LAYER_FORM);\n }\n}\n\nfunction writePolyline(w: DxfWriter, points: Pt2[], layer: string): void {\n writeLwPolyline(w, points, layer, true);\n}\n\n/** An OPEN LWPOLYLINE (no closing segment back to the first vertex). */\nfunction writeOpenPolyline(w: DxfWriter, points: Pt2[], layer: string): void {\n writeLwPolyline(w, points, layer, false);\n}\n\nfunction writeLwPolyline(w: DxfWriter, points: Pt2[], layer: string, closed: boolean): void {\n w.pair(0, 'LWPOLYLINE');\n w.handle();\n w.pair(100, 'AcDbEntity');\n w.pair(8, layer);\n w.pair(100, 'AcDbPolyline');\n w.pair(90, points.length);\n w.pair(70, closed ? 1 : 0);\n for (const [x, y] of points) {\n w.pair(10, x);\n w.pair(20, y);\n }\n}\n\nfunction writeLine(w: DxfWriter, start: Pt2, end: Pt2, layer: string): void {\n w.pair(0, 'LINE');\n w.handle();\n w.pair(100, 'AcDbEntity');\n w.pair(8, layer);\n w.pair(100, 'AcDbLine');\n w.pair(10, start[0]);\n w.pair(20, start[1]);\n w.pair(30, 0);\n w.pair(11, end[0]);\n w.pair(21, end[1]);\n w.pair(31, 0);\n}\n\nfunction writeMText(w: DxfWriter, at: Pt2, text: string, layer: string, height: number): void {\n w.pair(0, 'MTEXT');\n w.handle();\n w.pair(100, 'AcDbEntity');\n w.pair(8, layer);\n w.pair(100, 'AcDbMText');\n w.pair(10, at[0]);\n w.pair(20, at[1]);\n w.pair(30, 0);\n w.pair(40, height);\n w.pair(41, height * 10);\n w.pair(71, 5);\n w.pair(1, text);\n}\n\nfunction annotation(angleDeg: number, direction: 'up' | 'down'): string {\n const rounded = Math.round(angleDeg * 100) / 100;\n return `∠${rounded}° ${direction === 'down' ? 'D' : 'U'}`;\n}\n\nfunction outlinePoints(pattern: FlatPattern): Result<Pt2[]> {\n const edges = getEdges(pattern.outline);\n if (edges.length === 0) {\n return err(validationError('EMPTY_OUTLINE', 'flat pattern outline has no edges'));\n }\n const points: Pt2[] = [];\n for (const edge of edges) {\n points.push(toPt2(curveStartPoint(edge)));\n }\n return ok(points);\n}\n\n/** Ordered vertices of a closed cutout wire (one per edge start point). */\nfunction loopPoints(wire: Wire): Pt2[] {\n return getEdges(wire).map((e) => toPt2(curveStartPoint(e)));\n}\n\n/** Ordered vertices of an OPEN wire: every edge start plus the final endpoint. */\nfunction pathPoints(wire: Wire): Pt2[] {\n const edges = getEdges(wire);\n const pts = edges.map((e) => toPt2(curveStartPoint(e)));\n const last = edges[edges.length - 1];\n if (last !== undefined) pts.push(toPt2(curveEndPoint(last)));\n return pts;\n}\n\nfunction toPt2(v: Vec3): Pt2 {\n return [v[0], v[1]];\n}\n"]}
@@ -0,0 +1,449 @@
1
+ /**
2
+ * Fluent facade — `sheetMetal(base).flange(...).miter(...).unfold()`.
3
+ *
4
+ * A lightweight immutable builder over the {@link ./api.js} wrappers. Authoring
5
+ * steps (`flange`, `material`) accumulate into a spec; part-consuming steps
6
+ * (`miter`, `miterCorner`, `unfold`, `report`, `dxf`, `validate`, `part`)
7
+ * materialize the folded part once and thread it through, auto-unwrapping the
8
+ * underlying `Result<T>` and throwing {@link SheetMetalError} on failure so the
9
+ * chain stays terminal-free. Use the `Result`-returning functions in `./api.js`
10
+ * directly when explicit error handling is preferred over throwing.
11
+ */
12
+ import type { BrepError, Solid } from '@faicad/faijs/brepjs-compat';
13
+ import type { AuthorSpec, BaseFlatSpec, FlangeSpec, SeamSpec } from './authorFns.js';
14
+ import type { MiterPlane, DxfOptions, SlotPlacement } from './api.js';
15
+ import type { SheetMetalPart, FlatPattern, FlatInput, BendReport, MaterialSpec, ReliefSpec, CutoutSpec, TabSpec, ContourFlangeSpec, LoftedFlangeSpec, HemSpec, JogSpec, SheetMetalWarning, UnfoldResult } from './types.js';
16
+ /** Thrown by the fluent facade when an underlying `Result<T>` is an `Err`. */
17
+ export declare class SheetMetalError extends Error {
18
+ /** The machine-readable error code from the underlying `BrepError`. */
19
+ readonly code: string;
20
+ /** The error kind/category from the underlying `BrepError`. */
21
+ readonly kind: string;
22
+ constructor(brepError: BrepError);
23
+ }
24
+ /** A built part already mitered/operated on, re-entering the fluent chain. */
25
+ declare class SheetMetalPartHandle {
26
+ readonly part: SheetMetalPart;
27
+ constructor(part: SheetMetalPart);
28
+ /**
29
+ * Cut by an oriented plane, removing material on the `+normal` side.
30
+ * @param plane - the oriented cutting plane; material on the plane's `+normal` side is removed.
31
+ * @returns a new `SheetMetalPartHandle` carrying the mitered part.
32
+ */
33
+ miter(plane: MiterPlane): SheetMetalPartHandle;
34
+ /**
35
+ * Auto-miter the shared corner of two flanges with an optional gap.
36
+ * @param flangeIdA - id of the first flange meeting at the corner.
37
+ * @param flangeIdB - id of the second flange meeting at the corner.
38
+ * @param gap - optional gap (in millimetres) left between the two mitered edges; defaults to 0.
39
+ * @returns a new `SheetMetalPartHandle` carrying the part with the corner mitered.
40
+ */
41
+ miterCorner(flangeIdA: string, flangeIdB: string, gap?: number): SheetMetalPartHandle;
42
+ /**
43
+ * Add a bend relief at each mid-edge end of a partial flange's bend line.
44
+ * @param flangeId - id of the partial flange whose bend-line ends get the relief.
45
+ * @param spec - optional relief specification overriding the defaults.
46
+ * @returns a new `SheetMetalPartHandle` carrying the part with the relief added.
47
+ */
48
+ bendRelief(flangeId: string, spec?: ReliefSpec): SheetMetalPartHandle;
49
+ /**
50
+ * Add a bend relief to every partial-span bend in the part.
51
+ * @param spec - optional relief specification applied to every partial bend.
52
+ * @returns a new `SheetMetalPartHandle` carrying the part with all reliefs added.
53
+ */
54
+ autoReliefs(spec?: ReliefSpec): SheetMetalPartHandle;
55
+ /**
56
+ * Cut a corner relief notch at the shared corner of two adjacent flanges.
57
+ * @param flangeIdA - id of the first flange forming the corner.
58
+ * @param flangeIdB - id of the second flange forming the corner.
59
+ * @param spec - optional relief specification overriding the defaults.
60
+ * @returns a new `SheetMetalPartHandle` carrying the part with the corner relief added.
61
+ */
62
+ cornerRelief(flangeIdA: string, flangeIdB: string, spec?: ReliefSpec): SheetMetalPartHandle;
63
+ /**
64
+ * Punch a cutout (hole / slot / polygon) through a named flat region.
65
+ * @param spec - the cutout definition (kind, geometry, and target region).
66
+ * @returns a new `SheetMetalPartHandle` carrying the part with the cutout punched.
67
+ */
68
+ cutout(spec: CutoutSpec): SheetMetalPartHandle;
69
+ /**
70
+ * Punch a circular hole of `diameter` centred at region-local `(x, y)`.
71
+ * @param region - name of the flat region the hole is punched through.
72
+ * @param x - region-local X of the hole centre.
73
+ * @param y - region-local Y of the hole centre.
74
+ * @param diameter - hole diameter.
75
+ * @returns a new `SheetMetalPartHandle` carrying the part with the hole punched.
76
+ */
77
+ hole(region: string, x: number, y: number, diameter: number): SheetMetalPartHandle;
78
+ /**
79
+ * Punch a slot (rectangular or obround) centred at region-local `(x, y)`.
80
+ * @param region - name of the flat region the slot is punched through.
81
+ * @param opts - slot geometry: centre `(x, y)`, `length`, `width`, optional `angleDeg` rotation, and `round` ends flag.
82
+ * @returns a new `SheetMetalPartHandle` carrying the part with the slot punched.
83
+ */
84
+ slot(region: string, opts: {
85
+ x: number;
86
+ y: number;
87
+ length: number;
88
+ width: number;
89
+ angleDeg?: number;
90
+ round?: boolean;
91
+ }): SheetMetalPartHandle;
92
+ /**
93
+ * Punch an arbitrary polygon cutout from its region-local `points`.
94
+ * @param region - name of the flat region the polygon is punched through.
95
+ * @param points - region-local polygon vertices as `[x, y]` pairs.
96
+ * @returns a new `SheetMetalPartHandle` carrying the part with the polygon cutout.
97
+ */
98
+ polygonCutout(region: string, points: [number, number][]): SheetMetalPartHandle;
99
+ /**
100
+ * Fuse a rectangular tab (additive protrusion) onto a region's edge.
101
+ * @param spec - tab definition: edge, width, and length.
102
+ * @returns a new `SheetMetalPartHandle` carrying the part with the tab added.
103
+ */
104
+ tab(spec: TabSpec): SheetMetalPartHandle;
105
+ /**
106
+ * Self-fixturing tab-and-slot joint: a tab on one region + a matching slot on another.
107
+ * @param tab - the tab to add to the first region.
108
+ * @param slot - placement of the matching slot on the second region.
109
+ * @returns a new `SheetMetalPartHandle` carrying the part with the joint added.
110
+ */
111
+ tabAndSlot(tab: TabSpec, slot: SlotPlacement): SheetMetalPartHandle;
112
+ /**
113
+ * Form a louver (vent flap) on a region.
114
+ * @param opts - louver geometry: target `region`, centre `(x, y)`, `length`, `width`, `height`, and optional `direction`.
115
+ * @returns a new `SheetMetalPartHandle` carrying the part with the louver formed.
116
+ */
117
+ louver(opts: {
118
+ region: string;
119
+ x: number;
120
+ y: number;
121
+ length: number;
122
+ width: number;
123
+ height: number;
124
+ direction?: 'up' | 'down';
125
+ }): SheetMetalPartHandle;
126
+ /**
127
+ * Form a round emboss (raised) or dimple (recessed) on a region.
128
+ * @param opts - emboss geometry: target `region`, centre `(x, y)`, `diameter`, `height`, and `kind` (`dimple` or `emboss`).
129
+ * @returns a new `SheetMetalPartHandle` carrying the part with the form added.
130
+ */
131
+ emboss(opts: {
132
+ region: string;
133
+ x: number;
134
+ y: number;
135
+ diameter: number;
136
+ height: number;
137
+ kind: 'dimple' | 'emboss';
138
+ }): SheetMetalPartHandle;
139
+ /**
140
+ * Author a contour flange (open line/arc profile swept along a base edge).
141
+ * @param spec - contour flange definition: profile, base edge, and bend parameters.
142
+ * @returns a new `SheetMetalPartHandle` carrying the part with the contour flange added.
143
+ */
144
+ contourFlange(spec: ContourFlangeSpec): SheetMetalPartHandle;
145
+ /**
146
+ * Author a lofted / ruled transition flange between two parallel open profiles.
147
+ * @param spec - lofted flange definition: the two open profiles and their alignment.
148
+ * @returns a new `SheetMetalPartHandle` carrying the part with the lofted flange added.
149
+ */
150
+ loftedFlange(spec: LoftedFlangeSpec): SheetMetalPartHandle;
151
+ /**
152
+ * Fold a region edge back ~180°+ onto its parent as a hem (closed/open/teardrop/rolled).
153
+ * @param spec - hem definition: edge, curl radius, and return leg length.
154
+ * @returns a new `SheetMetalPartHandle` carrying the part with the hem added.
155
+ */
156
+ hem(spec: HemSpec): SheetMetalPartHandle;
157
+ /**
158
+ * Step a region's flat by `offsetHeight` with two opposite bends (a jog/joggle).
159
+ * @param spec - jog definition: bend line, offset height, and radii.
160
+ * @returns a new `SheetMetalPartHandle` carrying the part with the jog added.
161
+ */
162
+ jog(spec: JogSpec): SheetMetalPartHandle;
163
+ /**
164
+ * Flatten into a developed flat pattern + bend report + warnings.
165
+ * @returns the `UnfoldResult` with the flat pattern, bend report, and any warnings.
166
+ */
167
+ unfold(): UnfoldResult;
168
+ /**
169
+ * Just the flat pattern from the unfold.
170
+ * @returns the developed `FlatPattern`.
171
+ */
172
+ flatPattern(): FlatPattern;
173
+ /**
174
+ * Bend report built from the feature tree.
175
+ * @returns the `BendReport` describing every bend in the part.
176
+ */
177
+ report(): BendReport;
178
+ /**
179
+ * Annotated multi-layer DXF of the developed flat pattern.
180
+ * @param options - optional DXF output options (layers, precision, units).
181
+ * @returns the DXF text of the developed flat pattern.
182
+ */
183
+ dxf(options?: DxfOptions): string;
184
+ /**
185
+ * Manufacturability warnings (advisory, never throws).
186
+ * @returns the list of `SheetMetalWarning`s (empty when the part is manufacturable).
187
+ */
188
+ validate(): SheetMetalWarning[];
189
+ /**
190
+ * The materialized part (escape hatch back to the functional API).
191
+ * @returns the underlying `SheetMetalPart`.
192
+ */
193
+ get(): SheetMetalPart;
194
+ }
195
+ /**
196
+ * An imported foreign solid (no feature tree) re-entering the fluent chain: detect
197
+ * its geometry and unfold it. `kFactor` defaults to the mid-surface neutral axis.
198
+ */
199
+ declare class ForeignSolidHandle {
200
+ private readonly solid;
201
+ private readonly opts?;
202
+ constructor(solid: Solid, opts?: {
203
+ kFactor?: number;
204
+ } | undefined);
205
+ /**
206
+ * Override the neutral-axis K-factor (default 0.5, the mid-surface).
207
+ * @param kFactor - the K-factor to use for the bend allowance.
208
+ * @returns a new `ForeignSolidHandle` with the K-factor applied.
209
+ */
210
+ kFactor(kFactor: number): ForeignSolidHandle;
211
+ /**
212
+ * Detect geometry and flatten into a developed flat pattern + report + warnings.
213
+ * @returns the `UnfoldResult` with the detected flat pattern, report, and any warnings.
214
+ */
215
+ unfold(): UnfoldResult;
216
+ /**
217
+ * Just the flat pattern from the detected unfold.
218
+ * @returns the developed `FlatPattern`.
219
+ */
220
+ flatPattern(): FlatPattern;
221
+ /**
222
+ * Annotated multi-layer DXF of the developed flat pattern.
223
+ * @param options - optional DXF output options (layers, precision, units).
224
+ * @returns the DXF text of the developed flat pattern.
225
+ */
226
+ dxf(options?: DxfOptions): string;
227
+ }
228
+ /** Authoring builder — accumulates the base/flanges/material spec, then folds. */
229
+ declare class SheetMetalBuilder {
230
+ private readonly spec;
231
+ private built?;
232
+ constructor(spec: AuthorSpec);
233
+ /**
234
+ * Add a flange folded off its parent edge (the base by default).
235
+ * @param flange - the flange definition to add.
236
+ * @returns a new `SheetMetalBuilder` with the flange appended to the spec.
237
+ */
238
+ flange(flange: FlangeSpec): SheetMetalBuilder;
239
+ /**
240
+ * Add a seam closing a profile into a tube/box (left unfolded).
241
+ * @param seam - the seam definition to add.
242
+ * @returns a new `SheetMetalBuilder` with the seam appended to the spec.
243
+ */
244
+ seam(seam: SeamSpec): SheetMetalBuilder;
245
+ /**
246
+ * Set the part material (its thickness/default rule).
247
+ * @param material - the material definition (thickness / default rule).
248
+ * @returns a new `SheetMetalBuilder` with the material set.
249
+ */
250
+ material(material: MaterialSpec): SheetMetalBuilder;
251
+ /**
252
+ * Fold the accumulated spec into a 3D part, re-entering the fluent chain.
253
+ * Memoized so chaining multiple terminal shortcuts (e.g. `unfold()` then
254
+ * `report()`) authors the solid only once.
255
+ * @returns a `SheetMetalPartHandle` for the folded part, memoized across calls.
256
+ */
257
+ build(): SheetMetalPartHandle;
258
+ /**
259
+ * Build the part and cut it by an oriented plane, removing material on the `+normal` side.
260
+ * @param plane - the oriented cutting plane; material on the plane's `+normal` side is removed.
261
+ * @returns a `SheetMetalPartHandle` carrying the mitered part.
262
+ */
263
+ miter(plane: MiterPlane): SheetMetalPartHandle;
264
+ /**
265
+ * Build the part and auto-miter the shared corner of two flanges with an optional gap.
266
+ * @param flangeIdA - id of the first flange meeting at the corner.
267
+ * @param flangeIdB - id of the second flange meeting at the corner.
268
+ * @param gap - optional gap (in millimetres) left between the two mitered edges; defaults to 0.
269
+ * @returns a `SheetMetalPartHandle` carrying the part with the corner mitered.
270
+ */
271
+ miterCorner(flangeIdA: string, flangeIdB: string, gap?: number): SheetMetalPartHandle;
272
+ /**
273
+ * Build the part and add a bend relief at each mid-edge end of a partial flange's bend line.
274
+ * @param flangeId - id of the partial flange whose bend-line ends get the relief.
275
+ * @param spec - optional relief specification overriding the defaults.
276
+ * @returns a `SheetMetalPartHandle` carrying the part with the relief added.
277
+ */
278
+ bendRelief(flangeId: string, spec?: ReliefSpec): SheetMetalPartHandle;
279
+ /**
280
+ * Build the part and add a bend relief to every partial-span bend.
281
+ * @param spec - optional relief specification applied to every partial bend.
282
+ * @returns a `SheetMetalPartHandle` carrying the part with all reliefs added.
283
+ */
284
+ autoReliefs(spec?: ReliefSpec): SheetMetalPartHandle;
285
+ /**
286
+ * Build the part and cut a corner relief notch at the shared corner of two adjacent flanges.
287
+ * @param flangeIdA - id of the first flange forming the corner.
288
+ * @param flangeIdB - id of the second flange forming the corner.
289
+ * @param spec - optional relief specification overriding the defaults.
290
+ * @returns a `SheetMetalPartHandle` carrying the part with the corner relief added.
291
+ */
292
+ cornerRelief(flangeIdA: string, flangeIdB: string, spec?: ReliefSpec): SheetMetalPartHandle;
293
+ /**
294
+ * Build the part and punch a cutout (hole / slot / polygon) through a named flat region.
295
+ * @param spec - the cutout definition (kind, geometry, and target region).
296
+ * @returns a `SheetMetalPartHandle` carrying the part with the cutout punched.
297
+ */
298
+ cutout(spec: CutoutSpec): SheetMetalPartHandle;
299
+ /**
300
+ * Build the part and punch a circular hole of `diameter` centred at region-local `(x, y)`.
301
+ * @param region - name of the flat region the hole is punched through.
302
+ * @param x - region-local X of the hole centre.
303
+ * @param y - region-local Y of the hole centre.
304
+ * @param diameter - hole diameter.
305
+ * @returns a `SheetMetalPartHandle` carrying the part with the hole punched.
306
+ */
307
+ hole(region: string, x: number, y: number, diameter: number): SheetMetalPartHandle;
308
+ /**
309
+ * Build the part and punch a slot (rectangular or obround) centred at region-local `(x, y)`.
310
+ * @param region - name of the flat region the slot is punched through.
311
+ * @param opts - slot geometry: centre `(x, y)`, `length`, `width`, optional `angleDeg` rotation, and `round` ends flag.
312
+ * @returns a `SheetMetalPartHandle` carrying the part with the slot punched.
313
+ */
314
+ slot(region: string, opts: {
315
+ x: number;
316
+ y: number;
317
+ length: number;
318
+ width: number;
319
+ angleDeg?: number;
320
+ round?: boolean;
321
+ }): SheetMetalPartHandle;
322
+ /**
323
+ * Build the part and punch an arbitrary polygon cutout from its region-local `points`.
324
+ * @param region - name of the flat region the polygon is punched through.
325
+ * @param points - region-local polygon vertices as `[x, y]` pairs.
326
+ * @returns a `SheetMetalPartHandle` carrying the part with the polygon cutout.
327
+ */
328
+ polygonCutout(region: string, points: [number, number][]): SheetMetalPartHandle;
329
+ /**
330
+ * Build the part and fuse a rectangular tab (additive protrusion) onto a region's edge.
331
+ * @param spec - tab definition: edge, width, and length.
332
+ * @returns a `SheetMetalPartHandle` carrying the part with the tab added.
333
+ */
334
+ tab(spec: TabSpec): SheetMetalPartHandle;
335
+ /**
336
+ * Build the part and add a self-fixturing tab-and-slot joint across two regions.
337
+ * @param tab - the tab to add to the first region.
338
+ * @param slot - placement of the matching slot on the second region.
339
+ * @returns a `SheetMetalPartHandle` carrying the part with the joint added.
340
+ */
341
+ tabAndSlot(tab: TabSpec, slot: SlotPlacement): SheetMetalPartHandle;
342
+ /**
343
+ * Build the part and form a louver (vent flap) on a region.
344
+ * @param opts - louver geometry: target `region`, centre `(x, y)`, `length`, `width`, `height`, and optional `direction`.
345
+ * @returns a `SheetMetalPartHandle` carrying the part with the louver formed.
346
+ */
347
+ louver(opts: {
348
+ region: string;
349
+ x: number;
350
+ y: number;
351
+ length: number;
352
+ width: number;
353
+ height: number;
354
+ direction?: 'up' | 'down';
355
+ }): SheetMetalPartHandle;
356
+ /**
357
+ * Build the part and form a round emboss (raised) or dimple (recessed) on a region.
358
+ * @param opts - emboss geometry: target `region`, centre `(x, y)`, `diameter`, `height`, and `kind` (`dimple` or `emboss`).
359
+ * @returns a `SheetMetalPartHandle` carrying the part with the form added.
360
+ */
361
+ emboss(opts: {
362
+ region: string;
363
+ x: number;
364
+ y: number;
365
+ diameter: number;
366
+ height: number;
367
+ kind: 'dimple' | 'emboss';
368
+ }): SheetMetalPartHandle;
369
+ /**
370
+ * Build the part and author a contour flange (open line/arc profile swept along a base edge).
371
+ * @param spec - contour flange definition: profile, base edge, and bend parameters.
372
+ * @returns a `SheetMetalPartHandle` carrying the part with the contour flange added.
373
+ */
374
+ contourFlange(spec: ContourFlangeSpec): SheetMetalPartHandle;
375
+ /**
376
+ * Build the part and author a lofted / ruled transition flange between two parallel open profiles.
377
+ * @param spec - lofted flange definition: the two open profiles and their alignment.
378
+ * @returns a `SheetMetalPartHandle` carrying the part with the lofted flange added.
379
+ */
380
+ loftedFlange(spec: LoftedFlangeSpec): SheetMetalPartHandle;
381
+ /**
382
+ * Build the part and fold a region edge back ~180°+ onto its parent as a hem.
383
+ * @param spec - hem definition: edge, curl radius, and return leg length.
384
+ * @returns a `SheetMetalPartHandle` carrying the part with the hem added.
385
+ */
386
+ hem(spec: HemSpec): SheetMetalPartHandle;
387
+ /**
388
+ * Build the part and step a region's flat by `offsetHeight` with two opposite bends (a jog/joggle).
389
+ * @param spec - jog definition: bend line, offset height, and radii.
390
+ * @returns a `SheetMetalPartHandle` carrying the part with the jog added.
391
+ */
392
+ jog(spec: JogSpec): SheetMetalPartHandle;
393
+ /**
394
+ * Build the part and flatten it into a developed flat pattern + bend report + warnings.
395
+ * @returns the `UnfoldResult` with the flat pattern, bend report, and any warnings.
396
+ */
397
+ unfold(): UnfoldResult;
398
+ /**
399
+ * Build the part and produce the bend report from its feature tree.
400
+ * @returns the `BendReport` describing every bend in the part.
401
+ */
402
+ report(): BendReport;
403
+ /**
404
+ * Build the part and emit an annotated multi-layer DXF of its developed flat pattern.
405
+ * @param options - optional DXF output options (layers, precision, units).
406
+ * @returns the DXF text of the developed flat pattern.
407
+ */
408
+ dxf(options?: DxfOptions): string;
409
+ /**
410
+ * Build the part and run manufacturability checks (advisory, never throws).
411
+ * @returns the list of `SheetMetalWarning`s (empty when the part is manufacturable).
412
+ */
413
+ validate(): SheetMetalWarning[];
414
+ /**
415
+ * Build the part and return it (escape hatch back to the functional API).
416
+ * @returns the underlying `SheetMetalPart`.
417
+ */
418
+ get(): SheetMetalPart;
419
+ }
420
+ /**
421
+ * Start a fluent sheet-metal chain from a base flat (`length × width`).
422
+ * @param base - the base flat definition (length × width).
423
+ * @param thickness - the sheet material thickness in millimetres.
424
+ * @returns a `SheetMetalBuilder` ready for authoring steps like `flange`/`seam`/`material`.
425
+ */
426
+ export declare function sheetMetal(base: BaseFlatSpec, thickness: number): SheetMetalBuilder;
427
+ /**
428
+ * Re-enter the fluent chain from an already-authored part.
429
+ * @param part - an authored sheet-metal part to operate on.
430
+ * @returns a `SheetMetalPartHandle` wrapping the part.
431
+ */
432
+ export declare function fromPart(part: SheetMetalPart): SheetMetalPartHandle;
433
+ /**
434
+ * Fold a flat pattern up into a part and re-enter the fluent chain.
435
+ * @param input - the flat pattern (region tree) to fold up.
436
+ * @returns a `SheetMetalPartHandle` carrying the folded part.
437
+ */
438
+ export declare function foldFlat(input: FlatInput): SheetMetalPartHandle;
439
+ /**
440
+ * Detect and unfold an imported foreign sheet-metal solid (no feature tree).
441
+ * @param solid - the imported solid (B-rep) to unfold.
442
+ * @param opts - optional overrides; `opts.kFactor` sets the K-factor used for the bend allowance.
443
+ * @returns a `ForeignSolidHandle` for detecting and unfolding the solid.
444
+ */
445
+ export declare function fromSolid(solid: Solid, opts?: {
446
+ kFactor?: number;
447
+ }): ForeignSolidHandle;
448
+ export { SheetMetalBuilder, SheetMetalPartHandle, ForeignSolidHandle };
449
+ //# sourceMappingURL=facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAU,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2BtE,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,8EAA8E;AAC9E,qBAAa,eAAgB,SAAQ,KAAK;IACxC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,SAAS,EAAE,SAAS;CAUjC;AASD,8EAA8E;AAC9E,cAAM,oBAAoB;IACZ,QAAQ,CAAC,IAAI,EAAE,cAAc;gBAApB,IAAI,EAAE,cAAc;IAEzC;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB;IAI9C;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,oBAAoB;IAIhF;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAIrE;;;;OAIG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAIpD;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAI3F;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB;IAI9C;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAIlF;;;;;OAKG;IACH,IAAI,CACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAChG,oBAAoB;IAIvB;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,oBAAoB;IAI/E;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,oBAAoB;IAInE;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;KAC3B,GAAG,oBAAoB;IAIxB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC3B,GAAG,oBAAoB;IAIxB;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB;IAI5D;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,oBAAoB;IAI1D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;OAGG;IACH,MAAM,IAAI,YAAY;IAItB;;;OAGG;IACH,WAAW,IAAI,WAAW;IAI1B;;;OAGG;IACH,MAAM,IAAI,UAAU;IAIpB;;;;OAIG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAIjC;;;OAGG;IACH,QAAQ,IAAI,iBAAiB,EAAE;IAI/B;;;OAGG;IACH,GAAG,IAAI,cAAc;CAGtB;AAED;;;GAGG;AACH,cAAM,kBAAkB;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBADL,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,YAAA;IAG9C;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAI5C;;;OAGG;IACH,MAAM,IAAI,YAAY;IAItB;;;OAGG;IACH,WAAW,IAAI,WAAW;IAI1B;;;;OAIG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;CAGlC;AAED,kFAAkF;AAClF,cAAM,iBAAiB;IAGT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,KAAK,CAAC,CAAuB;gBAER,IAAI,EAAE,UAAU;IAE7C;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB;IAI7C;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB;IAIvC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,iBAAiB;IAInD;;;;;OAKG;IACH,KAAK,IAAI,oBAAoB;IAO7B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB;IAI9C;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,oBAAoB;IAIhF;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAIrE;;;;OAIG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAIpD;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,oBAAoB;IAI3F;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB;IAI9C;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAIlF;;;;;OAKG;IACH,IAAI,CACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAChG,oBAAoB;IAIvB;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,oBAAoB;IAI/E;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,oBAAoB;IAInE;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;KAC3B,GAAG,oBAAoB;IAIxB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC3B,GAAG,oBAAoB;IAIxB;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB;IAI5D;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,oBAAoB;IAI1D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB;IAIxC;;;OAGG;IACH,MAAM,IAAI,YAAY;IAItB;;;OAGG;IACH,MAAM,IAAI,UAAU;IAIpB;;;;OAIG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAIjC;;;OAGG;IACH,QAAQ,IAAI,iBAAiB,EAAE;IAI/B;;;OAGG;IACH,GAAG,IAAI,cAAc;CAGtB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAEnF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,oBAAoB,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAEvF;AAED,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC"}