@mlightcad/cad-pdf-plugin 1.8.0-preview.2 → 1.8.0-preview.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 (189) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +280 -186
  3. package/dist/cad-pdf-plugin-register.js +29 -11
  4. package/dist/cad-pdf-plugin-register.umd.cjs +1 -1
  5. package/dist/cad-pdf-plugin.js +17568 -8428
  6. package/dist/cad-pdf-plugin.umd.cjs +847 -13
  7. package/lib/AcApConvertToPdfCmd.d.ts.map +1 -1
  8. package/lib/AcApConvertToPdfCmd.js +14 -3
  9. package/lib/AcApConvertToPdfCmd.js.map +1 -1
  10. package/lib/AcApImportPdfCmd.d.ts +5 -3
  11. package/lib/AcApImportPdfCmd.d.ts.map +1 -1
  12. package/lib/AcApImportPdfCmd.js +5 -3
  13. package/lib/AcApImportPdfCmd.js.map +1 -1
  14. package/lib/AcApImportPdfPromptCmd.d.ts +16 -0
  15. package/lib/AcApImportPdfPromptCmd.d.ts.map +1 -0
  16. package/lib/AcApImportPdfPromptCmd.js +89 -0
  17. package/lib/AcApImportPdfPromptCmd.js.map +1 -0
  18. package/lib/AcApPdfBlockCmd.d.ts +15 -0
  19. package/lib/AcApPdfBlockCmd.d.ts.map +1 -0
  20. package/lib/AcApPdfBlockCmd.js +75 -0
  21. package/lib/AcApPdfBlockCmd.js.map +1 -0
  22. package/lib/AcApPdfDimCmd.d.ts +20 -0
  23. package/lib/AcApPdfDimCmd.d.ts.map +1 -0
  24. package/lib/AcApPdfDimCmd.js +413 -0
  25. package/lib/AcApPdfDimCmd.js.map +1 -0
  26. package/lib/AcApPdfDimSession.d.ts +82 -0
  27. package/lib/AcApPdfDimSession.d.ts.map +1 -0
  28. package/lib/AcApPdfDimSession.js +252 -0
  29. package/lib/AcApPdfDimSession.js.map +1 -0
  30. package/lib/AcApPdfFontResolver.d.ts.map +1 -1
  31. package/lib/AcApPdfFontResolver.js +2 -5
  32. package/lib/AcApPdfFontResolver.js.map +1 -1
  33. package/lib/AcApPdfHatchCmd.d.ts +33 -0
  34. package/lib/AcApPdfHatchCmd.d.ts.map +1 -0
  35. package/lib/AcApPdfHatchCmd.js +411 -0
  36. package/lib/AcApPdfHatchCmd.js.map +1 -0
  37. package/lib/AcApPdfHatchSession.d.ts +122 -0
  38. package/lib/AcApPdfHatchSession.d.ts.map +1 -0
  39. package/lib/AcApPdfHatchSession.js +357 -0
  40. package/lib/AcApPdfHatchSession.js.map +1 -0
  41. package/lib/AcApPdfImportConvertor.d.ts +47 -5
  42. package/lib/AcApPdfImportConvertor.d.ts.map +1 -1
  43. package/lib/AcApPdfImportConvertor.js +999 -108
  44. package/lib/AcApPdfImportConvertor.js.map +1 -1
  45. package/lib/AcApPdfImportOptions.d.ts +116 -0
  46. package/lib/AcApPdfImportOptions.d.ts.map +1 -0
  47. package/lib/AcApPdfImportOptions.js +31 -0
  48. package/lib/AcApPdfImportOptions.js.map +1 -0
  49. package/lib/AcApPdfImportResources.d.ts +41 -0
  50. package/lib/AcApPdfImportResources.d.ts.map +1 -0
  51. package/lib/AcApPdfImportResources.js +52 -0
  52. package/lib/AcApPdfImportResources.js.map +1 -0
  53. package/lib/AcApPdfPlugin.d.ts +3 -3
  54. package/lib/AcApPdfPlugin.d.ts.map +1 -1
  55. package/lib/AcApPdfPlugin.js +23 -5
  56. package/lib/AcApPdfPlugin.js.map +1 -1
  57. package/lib/AcApPdfScaleCmd.d.ts +22 -0
  58. package/lib/AcApPdfScaleCmd.d.ts.map +1 -0
  59. package/lib/AcApPdfScaleCmd.js +185 -0
  60. package/lib/AcApPdfScaleCmd.js.map +1 -0
  61. package/lib/AcApPdfTextCmd.d.ts +73 -0
  62. package/lib/AcApPdfTextCmd.d.ts.map +1 -0
  63. package/lib/AcApPdfTextCmd.js +777 -0
  64. package/lib/AcApPdfTextCmd.js.map +1 -0
  65. package/lib/AcApPdfTextSession.d.ts +232 -0
  66. package/lib/AcApPdfTextSession.d.ts.map +1 -0
  67. package/lib/AcApPdfTextSession.js +826 -0
  68. package/lib/AcApPdfTextSession.js.map +1 -0
  69. package/lib/acapPdfI18n.d.ts +11 -0
  70. package/lib/acapPdfI18n.d.ts.map +1 -0
  71. package/lib/acapPdfI18n.js +57 -0
  72. package/lib/acapPdfI18n.js.map +1 -0
  73. package/lib/acapPdfPrompts.d.ts +12 -0
  74. package/lib/acapPdfPrompts.d.ts.map +1 -0
  75. package/lib/acapPdfPrompts.js +100 -0
  76. package/lib/acapPdfPrompts.js.map +1 -0
  77. package/lib/index.d.ts +28 -0
  78. package/lib/index.d.ts.map +1 -1
  79. package/lib/index.js +28 -0
  80. package/lib/index.js.map +1 -1
  81. package/lib/pdfDeprecatedMatching.d.ts +27 -0
  82. package/lib/pdfDeprecatedMatching.d.ts.map +1 -0
  83. package/lib/pdfDeprecatedMatching.js +20 -0
  84. package/lib/pdfDeprecatedMatching.js.map +1 -0
  85. package/lib/pdfDimStrokeTexts.d.ts +55 -0
  86. package/lib/pdfDimStrokeTexts.d.ts.map +1 -0
  87. package/lib/pdfDimStrokeTexts.js +274 -0
  88. package/lib/pdfDimStrokeTexts.js.map +1 -0
  89. package/lib/pdfDimensionConvert.d.ts +80 -0
  90. package/lib/pdfDimensionConvert.d.ts.map +1 -0
  91. package/lib/pdfDimensionConvert.js +566 -0
  92. package/lib/pdfDimensionConvert.js.map +1 -0
  93. package/lib/pdfEntityStrokes.d.ts +13 -0
  94. package/lib/pdfEntityStrokes.d.ts.map +1 -0
  95. package/lib/pdfEntityStrokes.js +86 -0
  96. package/lib/pdfEntityStrokes.js.map +1 -0
  97. package/lib/pdfHatchRecover.d.ts +57 -0
  98. package/lib/pdfHatchRecover.d.ts.map +1 -0
  99. package/lib/pdfHatchRecover.js +315 -0
  100. package/lib/pdfHatchRecover.js.map +1 -0
  101. package/lib/pdfImportAppend.d.ts +24 -0
  102. package/lib/pdfImportAppend.d.ts.map +1 -0
  103. package/lib/pdfImportAppend.js +35 -0
  104. package/lib/pdfImportAppend.js.map +1 -0
  105. package/lib/pdfImportEntities.d.ts +63 -0
  106. package/lib/pdfImportEntities.d.ts.map +1 -0
  107. package/lib/pdfImportEntities.js +307 -0
  108. package/lib/pdfImportEntities.js.map +1 -0
  109. package/lib/pdfImportImages.d.ts +90 -0
  110. package/lib/pdfImportImages.d.ts.map +1 -0
  111. package/lib/pdfImportImages.js +294 -0
  112. package/lib/pdfImportImages.js.map +1 -0
  113. package/lib/pdfImportShapes.d.ts +63 -0
  114. package/lib/pdfImportShapes.d.ts.map +1 -0
  115. package/lib/pdfImportShapes.js +248 -0
  116. package/lib/pdfImportShapes.js.map +1 -0
  117. package/lib/pdfVectorImport.d.ts +218 -5
  118. package/lib/pdfVectorImport.d.ts.map +1 -1
  119. package/lib/pdfVectorImport.js +566 -98
  120. package/lib/pdfVectorImport.js.map +1 -1
  121. package/lib/recognition/pdfCurveRecognition.d.ts +91 -0
  122. package/lib/recognition/pdfCurveRecognition.d.ts.map +1 -0
  123. package/lib/recognition/pdfCurveRecognition.js +506 -0
  124. package/lib/recognition/pdfCurveRecognition.js.map +1 -0
  125. package/lib/recognition/pdfDimDigitRecognition.d.ts +18 -0
  126. package/lib/recognition/pdfDimDigitRecognition.d.ts.map +1 -0
  127. package/lib/recognition/pdfDimDigitRecognition.js +520 -0
  128. package/lib/recognition/pdfDimDigitRecognition.js.map +1 -0
  129. package/lib/recognition/pdfDimensionPattern.d.ts +173 -0
  130. package/lib/recognition/pdfDimensionPattern.d.ts.map +1 -0
  131. package/lib/recognition/pdfDimensionPattern.js +1023 -0
  132. package/lib/recognition/pdfDimensionPattern.js.map +1 -0
  133. package/lib/recognition/pdfFormBlocks.d.ts +58 -0
  134. package/lib/recognition/pdfFormBlocks.d.ts.map +1 -0
  135. package/lib/recognition/pdfFormBlocks.js +260 -0
  136. package/lib/recognition/pdfFormBlocks.js.map +1 -0
  137. package/lib/recognition/pdfGlyphClustering.d.ts +81 -0
  138. package/lib/recognition/pdfGlyphClustering.d.ts.map +1 -0
  139. package/lib/recognition/pdfGlyphClustering.js +1005 -0
  140. package/lib/recognition/pdfGlyphClustering.js.map +1 -0
  141. package/lib/recognition/pdfGlyphDictionary.d.ts +49 -0
  142. package/lib/recognition/pdfGlyphDictionary.d.ts.map +1 -0
  143. package/lib/recognition/pdfGlyphDictionary.js +188 -0
  144. package/lib/recognition/pdfGlyphDictionary.js.map +1 -0
  145. package/lib/recognition/pdfHatchFaces.d.ts +84 -0
  146. package/lib/recognition/pdfHatchFaces.d.ts.map +1 -0
  147. package/lib/recognition/pdfHatchFaces.js +1285 -0
  148. package/lib/recognition/pdfHatchFaces.js.map +1 -0
  149. package/lib/recognition/pdfHatchRecognition.d.ts +222 -0
  150. package/lib/recognition/pdfHatchRecognition.d.ts.map +1 -0
  151. package/lib/recognition/pdfHatchRecognition.js +3781 -0
  152. package/lib/recognition/pdfHatchRecognition.js.map +1 -0
  153. package/lib/recognition/pdfRecGeometry.d.ts +67 -0
  154. package/lib/recognition/pdfRecGeometry.d.ts.map +1 -0
  155. package/lib/recognition/pdfRecGeometry.js +365 -0
  156. package/lib/recognition/pdfRecGeometry.js.map +1 -0
  157. package/lib/recognition/pdfTextFontKind.d.ts +16 -0
  158. package/lib/recognition/pdfTextFontKind.d.ts.map +1 -0
  159. package/lib/recognition/pdfTextFontKind.js +51 -0
  160. package/lib/recognition/pdfTextFontKind.js.map +1 -0
  161. package/lib/recognition/pdfTextMerge.d.ts +71 -0
  162. package/lib/recognition/pdfTextMerge.d.ts.map +1 -0
  163. package/lib/recognition/pdfTextMerge.js +382 -0
  164. package/lib/recognition/pdfTextMerge.js.map +1 -0
  165. package/lib/recognition/pdfTextRunMerge.d.ts +28 -0
  166. package/lib/recognition/pdfTextRunMerge.d.ts.map +1 -0
  167. package/lib/recognition/pdfTextRunMerge.js +90 -0
  168. package/lib/recognition/pdfTextRunMerge.js.map +1 -0
  169. package/lib/register.d.ts +8 -2
  170. package/lib/register.d.ts.map +1 -1
  171. package/lib/register.js +29 -4
  172. package/lib/register.js.map +1 -1
  173. package/lib/ui/AcUiPdfDimPanel.d.ts +55 -0
  174. package/lib/ui/AcUiPdfDimPanel.d.ts.map +1 -0
  175. package/lib/ui/AcUiPdfDimPanel.js +347 -0
  176. package/lib/ui/AcUiPdfDimPanel.js.map +1 -0
  177. package/lib/ui/AcUiPdfHatchPanel.d.ts +57 -0
  178. package/lib/ui/AcUiPdfHatchPanel.d.ts.map +1 -0
  179. package/lib/ui/AcUiPdfHatchPanel.js +420 -0
  180. package/lib/ui/AcUiPdfHatchPanel.js.map +1 -0
  181. package/lib/ui/AcUiPdfImportDialog.d.ts +120 -0
  182. package/lib/ui/AcUiPdfImportDialog.d.ts.map +1 -0
  183. package/lib/ui/AcUiPdfImportDialog.js +673 -0
  184. package/lib/ui/AcUiPdfImportDialog.js.map +1 -0
  185. package/lib/ui/AcUiPdfTextPanel.d.ts +95 -0
  186. package/lib/ui/AcUiPdfTextPanel.d.ts.map +1 -0
  187. package/lib/ui/AcUiPdfTextPanel.js +775 -0
  188. package/lib/ui/AcUiPdfTextPanel.js.map +1 -0
  189. package/package.json +11 -11
@@ -0,0 +1,420 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ var __values = (this && this.__values) || function(o) {
63
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
64
+ if (m) return m.call(o);
65
+ if (o && typeof o.length === "number") return {
66
+ next: function () {
67
+ if (o && i >= o.length) o = void 0;
68
+ return { value: o && o[i++], done: !o };
69
+ }
70
+ };
71
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
72
+ };
73
+ import { acedApplyUiTheme, acedSubscribeUiTheme, resolveUiTheme } from '@mlightcad/cad-simple-viewer';
74
+ import { PDF_HATCH_CUSTOM_KEY, PDF_HATCH_USER_DOUBLE_KEY, PDF_HATCH_USER_KEY } from '../AcApPdfHatchSession';
75
+ import { acapPdfT } from '../acapPdfI18n';
76
+ import { acapPdfHatchPatternLabel } from '../pdfHatchRecover';
77
+ var STYLE_ID = 'ml-pdfhatch-panel-styles';
78
+ /**
79
+ * `pdfhatch` review panel shown in the palette: the recovered hatches with
80
+ * how well each re-draws its strokes, and for the selected one its pattern,
81
+ * size and angle. All state lives in the {@link AcApPdfHatchSession}; the
82
+ * panel only renders it and reports changes.
83
+ */
84
+ var AcUiPdfHatchPanel = /** @class */ (function () {
85
+ function AcUiPdfHatchPanel(options) {
86
+ var _this = this;
87
+ ensureStyles();
88
+ this.options = options;
89
+ this.session = options.session;
90
+ this.element = h('div', 'ml-pdfhatch-panel');
91
+ var applyTheme = function () {
92
+ return acedApplyUiTheme(resolveUiTheme(_this.element.parentElement), _this.element);
93
+ };
94
+ applyTheme();
95
+ this.unsubscribeTheme = acedSubscribeUiTheme(applyTheme);
96
+ var toolbar = h('div', 'ml-pdfhatch-toolbar');
97
+ toolbar.append(h('span', 'ml-pdfhatch-section-title', t('hatches')));
98
+ this.addButton = button(t('addArea'), 'secondary', function () {
99
+ void _this.addRegion();
100
+ });
101
+ this.addButton.title = t('addAreaTip');
102
+ toolbar.append(this.addButton);
103
+ this.messageEl = h('div', 'ml-pdfhatch-hint');
104
+ this.listEl = h('div', 'ml-pdfhatch-list');
105
+ this.listEl.setAttribute('role', 'list');
106
+ this.editorEl = h('div', 'ml-pdfhatch-editor');
107
+ var footer = h('div', 'ml-pdfhatch-footer');
108
+ var hide = checkbox(t('hideStrokes'), !!options.hideStrokes, function (checked) {
109
+ return _this.options.onHideStrokes(checked);
110
+ });
111
+ this.counterEl = h('span', 'ml-pdfhatch-counter');
112
+ var buttons = h('div', 'ml-pdfhatch-buttons');
113
+ var cancel = button(t('cancel'), 'secondary', function () {
114
+ return _this.options.onClose(false);
115
+ });
116
+ this.applyButton = button(t('apply'), 'primary', function () {
117
+ return _this.options.onClose(true);
118
+ });
119
+ buttons.append(cancel, this.applyButton);
120
+ footer.append(hide, this.counterEl, buttons);
121
+ this.element.append(toolbar, this.messageEl, this.listEl, this.editorEl, footer);
122
+ this.renderList();
123
+ this.renderEditor();
124
+ this.updateCounter();
125
+ }
126
+ /** Selects the first hatch, if any, without moving the view. */
127
+ AcUiPdfHatchPanel.prototype.selectFirst = function () {
128
+ var first = this.session.rows[0];
129
+ if (first)
130
+ this.select(first, false);
131
+ };
132
+ /** Removes listeners. The element is removed by the palette host. */
133
+ AcUiPdfHatchPanel.prototype.destroy = function () {
134
+ this.unsubscribeTheme();
135
+ this.element.remove();
136
+ };
137
+ AcUiPdfHatchPanel.prototype.select = function (row, zoom) {
138
+ this.selected = row;
139
+ this.renderList();
140
+ this.renderEditor();
141
+ this.options.onFocusRow(row, zoom);
142
+ };
143
+ /** The selected row's hatch changed. */
144
+ AcUiPdfHatchPanel.prototype.rowChanged = function () {
145
+ this.renderList();
146
+ this.renderEditor();
147
+ this.updateCounter();
148
+ this.options.onChange();
149
+ };
150
+ AcUiPdfHatchPanel.prototype.addRegion = function () {
151
+ return __awaiter(this, void 0, void 0, function () {
152
+ var result, _a;
153
+ return __generator(this, function (_b) {
154
+ switch (_b.label) {
155
+ case 0:
156
+ this.addButton.disabled = true;
157
+ this.message(t('picking'));
158
+ _b.label = 1;
159
+ case 1:
160
+ _b.trys.push([1, 3, 4, 5]);
161
+ return [4 /*yield*/, this.options.onAddRegion()];
162
+ case 2:
163
+ result = _b.sent();
164
+ if (typeof result === 'object') {
165
+ this.message('');
166
+ this.rowChanged();
167
+ this.select(result, false);
168
+ }
169
+ else {
170
+ this.message(result === 'cancelled' ? '' : t(result), true);
171
+ }
172
+ return [3 /*break*/, 5];
173
+ case 3:
174
+ _a = _b.sent();
175
+ // The pick failed; the review goes on.
176
+ this.message('');
177
+ return [3 /*break*/, 5];
178
+ case 4:
179
+ this.addButton.disabled = false;
180
+ return [7 /*endfinally*/];
181
+ case 5: return [2 /*return*/];
182
+ }
183
+ });
184
+ });
185
+ };
186
+ AcUiPdfHatchPanel.prototype.message = function (text, warning) {
187
+ if (warning === void 0) { warning = false; }
188
+ this.messageEl.textContent = text;
189
+ this.messageEl.className = warning
190
+ ? 'ml-pdfhatch-warning'
191
+ : 'ml-pdfhatch-hint';
192
+ };
193
+ // -------------------------------------------------------------------- list
194
+ AcUiPdfHatchPanel.prototype.renderList = function () {
195
+ var _a;
196
+ var _this = this;
197
+ var rows = this.session.rows;
198
+ if (rows.length === 0) {
199
+ this.listEl.replaceChildren(h('div', 'ml-pdfhatch-hint', t('empty')));
200
+ return;
201
+ }
202
+ (_a = this.listEl).replaceChildren.apply(_a, __spreadArray([], __read(rows.map(function (row, index) { return _this.renderRow(row, index); })), false));
203
+ };
204
+ AcUiPdfHatchPanel.prototype.renderRow = function (row, index) {
205
+ var _this = this;
206
+ var el = h('div', 'ml-pdfhatch-row');
207
+ el.setAttribute('role', 'listitem');
208
+ el.dataset.key = String(row.key);
209
+ el.classList.toggle('is-selected', row === this.selected);
210
+ el.classList.toggle('is-poor', !this.session.isGood(row));
211
+ el.classList.toggle('is-skipped', !row.included);
212
+ var include = h('input', 'ml-pdfhatch-include');
213
+ include.type = 'checkbox';
214
+ include.checked = row.included;
215
+ include.title = t('include');
216
+ include.addEventListener('click', function (event) { return event.stopPropagation(); });
217
+ include.addEventListener('change', function () {
218
+ _this.session.setIncluded(row, include.checked);
219
+ el.classList.toggle('is-skipped', !row.included);
220
+ _this.updateCounter();
221
+ _this.options.onChange();
222
+ });
223
+ var name = h('span', 'ml-pdfhatch-name', "".concat(index + 1, ". ").concat(describe(this.session, row)));
224
+ var tags = h('span', 'ml-pdfhatch-tags');
225
+ if (row.added)
226
+ tags.append(h('span', 'ml-pdfhatch-tag', t('addedTag')));
227
+ tags.append(h('span', 'ml-pdfhatch-score', percent(matchScore(row))), h('span', 'ml-pdfhatch-badge', t('entities', { count: row.consumed.length })));
228
+ el.append(include, name, tags);
229
+ el.addEventListener('click', function () { return _this.select(row, true); });
230
+ return el;
231
+ };
232
+ // ------------------------------------------------------------------ editor
233
+ AcUiPdfHatchPanel.prototype.renderEditor = function () {
234
+ var e_1, _a, e_2, _b;
235
+ var _this = this;
236
+ var row = this.selected;
237
+ if (!row || !this.session.rows.includes(row)) {
238
+ this.editorEl.replaceChildren(h('div', 'ml-pdfhatch-hint', t('selectHint')));
239
+ return;
240
+ }
241
+ var session = this.session;
242
+ var section = h('div', 'ml-pdfhatch-section');
243
+ // Pattern: measured, user-defined, then the library.
244
+ var select = h('select', 'ml-pdfhatch-input ml-pdfhatch-pattern');
245
+ var keys = session.patternKeys(row);
246
+ var own = keys.filter(function (key) { return !key.startsWith('predefined:'); });
247
+ var library = keys.filter(function (key) { return key.startsWith('predefined:'); });
248
+ try {
249
+ for (var _c = __values([
250
+ [t('ownGroup'), own],
251
+ [t('libraryGroup'), library]
252
+ ]), _d = _c.next(); !_d.done; _d = _c.next()) {
253
+ var _e = __read(_d.value, 2), label = _e[0], group = _e[1];
254
+ var optgroup = document.createElement('optgroup');
255
+ optgroup.label = label;
256
+ try {
257
+ for (var group_1 = (e_2 = void 0, __values(group)), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {
258
+ var key = group_1_1.value;
259
+ optgroup.append(option(key, keyLabel(key)));
260
+ }
261
+ }
262
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
263
+ finally {
264
+ try {
265
+ if (group_1_1 && !group_1_1.done && (_b = group_1.return)) _b.call(group_1);
266
+ }
267
+ finally { if (e_2) throw e_2.error; }
268
+ }
269
+ select.append(optgroup);
270
+ }
271
+ }
272
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
273
+ finally {
274
+ try {
275
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
276
+ }
277
+ finally { if (e_1) throw e_1.error; }
278
+ }
279
+ select.value = session.patternKey(row);
280
+ select.addEventListener('change', function () {
281
+ if (session.setPattern(row, select.value))
282
+ _this.rowChanged();
283
+ });
284
+ section.append(field(t('pattern'), select));
285
+ // Size and angle (not for a measured pattern).
286
+ var params = session.params(row);
287
+ if (params) {
288
+ var sizeLabel = row.hatch.pattern.type === 'userDefined' ? t('spacing') : t('scale');
289
+ var size_1 = numberInput(params.size, 'ml-pdfhatch-size');
290
+ var angle_1 = numberInput(params.angle, 'ml-pdfhatch-angle');
291
+ angle_1.removeAttribute('min');
292
+ var commit = function () {
293
+ var next = { size: Number(size_1.value), angle: Number(angle_1.value) };
294
+ if (session.setParams(row, next))
295
+ _this.rowChanged();
296
+ };
297
+ size_1.addEventListener('change', commit);
298
+ angle_1.addEventListener('change', commit);
299
+ section.append(field(sizeLabel, size_1), field(t('angle'), angle_1));
300
+ }
301
+ var autoFit = button(t('autoFit'), 'secondary', function () {
302
+ if (session.autoFit(row))
303
+ _this.rowChanged();
304
+ });
305
+ autoFit.classList.add('ml-pdfhatch-autofit');
306
+ autoFit.title = t('autoFitTip');
307
+ var actions = h('div', 'ml-pdfhatch-actions');
308
+ actions.append(autoFit);
309
+ section.append(actions);
310
+ // How well it matches, and what that means for the strokes.
311
+ section.append(h('div', 'ml-pdfhatch-hint ml-pdfhatch-match', t('match', {
312
+ precision: percent(row.match.precision),
313
+ recall: percent(row.match.recall)
314
+ })));
315
+ if (row.consumed.length === 0) {
316
+ section.append(h('div', 'ml-pdfhatch-warning', t('noEntities')));
317
+ }
318
+ else if (row.guessed) {
319
+ section.append(h('div', 'ml-pdfhatch-warning', t('guessed')));
320
+ }
321
+ else if (!session.isGood(row)) {
322
+ section.append(h('div', 'ml-pdfhatch-warning', t('poorMatch')));
323
+ }
324
+ this.editorEl.replaceChildren(section);
325
+ };
326
+ AcUiPdfHatchPanel.prototype.updateCounter = function () {
327
+ var ready = this.session.readyRows.length;
328
+ this.counterEl.textContent = t('ready', {
329
+ ready: ready,
330
+ count: this.session.rows.length
331
+ });
332
+ this.applyButton.disabled = ready === 0;
333
+ };
334
+ return AcUiPdfHatchPanel;
335
+ }());
336
+ export { AcUiPdfHatchPanel };
337
+ /** One number for a row: the harmonic mean of precision and recall. */
338
+ function matchScore(row) {
339
+ var _a = row.match, precision = _a.precision, recall = _a.recall;
340
+ var sum = precision + recall;
341
+ return sum > 0 ? (2 * precision * recall) / sum : 0;
342
+ }
343
+ /** `ANSI31 1 / 45°` for the list. */
344
+ function describe(session, row) {
345
+ var label = keyLabel(session.patternKey(row), acapPdfHatchPatternLabel(row.hatch));
346
+ var params = session.params(row);
347
+ if (!params)
348
+ return label;
349
+ return "".concat(label, " ").concat(Number(params.size.toPrecision(4)), " / ").concat(Number(params.angle.toFixed(2)), "\u00B0");
350
+ }
351
+ function keyLabel(key, fallback) {
352
+ if (key === PDF_HATCH_USER_KEY)
353
+ return t('userSingle');
354
+ if (key === PDF_HATCH_USER_DOUBLE_KEY)
355
+ return t('userDouble');
356
+ if (key === PDF_HATCH_CUSTOM_KEY)
357
+ return t('measured');
358
+ return key.startsWith('predefined:')
359
+ ? key.slice('predefined:'.length)
360
+ : (fallback !== null && fallback !== void 0 ? fallback : key);
361
+ }
362
+ function percent(value) {
363
+ return "".concat(Math.round(value * 100), "%");
364
+ }
365
+ /** Panel string `jig.pdfhatch.panel.<key>`. */
366
+ function t(key, params) {
367
+ return acapPdfT("jig.pdfhatch.panel.".concat(key), params);
368
+ }
369
+ function h(tag, className, text) {
370
+ var el = document.createElement(tag);
371
+ if (className)
372
+ el.className = className;
373
+ if (text !== undefined)
374
+ el.textContent = text;
375
+ return el;
376
+ }
377
+ function option(value, label) {
378
+ var el = document.createElement('option');
379
+ el.value = value;
380
+ el.textContent = label;
381
+ return el;
382
+ }
383
+ function field(label, control) {
384
+ var el = h('label', 'ml-pdfhatch-field');
385
+ el.append(h('span', 'ml-pdfhatch-label', label), control);
386
+ return el;
387
+ }
388
+ function button(label, kind, onClick) {
389
+ var el = h('button', kind === 'primary' ? 'ml-pdfhatch-btn' : 'ml-pdfhatch-btn is-secondary', label);
390
+ el.type = 'button';
391
+ el.addEventListener('click', onClick);
392
+ return el;
393
+ }
394
+ function checkbox(label, checked, onChange) {
395
+ var el = h('label', 'ml-pdfhatch-check');
396
+ var input = h('input');
397
+ input.type = 'checkbox';
398
+ input.checked = checked;
399
+ input.addEventListener('change', function () { return onChange(input.checked); });
400
+ el.append(input, h('span', undefined, label));
401
+ return el;
402
+ }
403
+ /** A number field committed on Enter or blur (refitting is not instant). */
404
+ function numberInput(value, className) {
405
+ var el = h('input', "ml-pdfhatch-input ml-pdfhatch-number ".concat(className));
406
+ el.type = 'number';
407
+ el.min = '0';
408
+ el.step = 'any';
409
+ el.value = String(Number(value.toPrecision(6)));
410
+ return el;
411
+ }
412
+ function ensureStyles() {
413
+ if (document.getElementById(STYLE_ID))
414
+ return;
415
+ var style = document.createElement('style');
416
+ style.id = STYLE_ID;
417
+ style.textContent = "\n.ml-pdfhatch-panel {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 8px;\n box-sizing: border-box;\n color: var(--ml-ui-text, #303133);\n font-size: 12px;\n}\n.ml-pdfhatch-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.ml-pdfhatch-section-title {\n flex: 1;\n font-weight: 600;\n}\n.ml-pdfhatch-list {\n flex: 1;\n min-height: 80px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.ml-pdfhatch-row {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 6px;\n padding: 3px 4px;\n border-radius: 4px;\n border-left: 3px solid transparent;\n cursor: pointer;\n}\n.ml-pdfhatch-row:hover {\n background: var(--ml-ui-hover, rgba(144, 147, 153, 0.12));\n}\n.ml-pdfhatch-row.is-selected {\n background: var(--ml-ui-canvas-fill, rgba(64, 158, 255, 0.2));\n}\n.ml-pdfhatch-row.is-poor {\n border-left-color: var(--ml-ui-warning, #e6a23c);\n}\n.ml-pdfhatch-row.is-skipped .ml-pdfhatch-name {\n opacity: 0.55;\n}\n.ml-pdfhatch-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ml-pdfhatch-tags {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n.ml-pdfhatch-tag {\n font-size: 10px;\n padding: 0 4px;\n border-radius: 3px;\n color: #fff;\n background: var(--ml-ui-accent, #409eff);\n white-space: nowrap;\n}\n.ml-pdfhatch-score {\n font-variant-numeric: tabular-nums;\n}\n.ml-pdfhatch-row.is-poor .ml-pdfhatch-score {\n color: var(--ml-ui-warning, #e6a23c);\n}\n.ml-pdfhatch-badge {\n color: var(--ml-ui-text-muted, #606266);\n font-size: 11px;\n white-space: nowrap;\n}\n.ml-pdfhatch-editor {\n flex-shrink: 0;\n}\n.ml-pdfhatch-section {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 6px 8px;\n border: 1px solid var(--ml-ui-border, #dcdfe6);\n border-radius: 6px;\n}\n.ml-pdfhatch-field {\n display: grid;\n grid-template-columns: 92px 1fr;\n align-items: center;\n gap: 6px;\n}\n.ml-pdfhatch-label {\n color: var(--ml-ui-text-muted, #606266);\n}\n.ml-pdfhatch-input {\n min-width: 0;\n box-sizing: border-box;\n padding: 3px 6px;\n border: 1px solid var(--ml-ui-border, #dcdfe6);\n border-radius: 4px;\n background: transparent;\n color: inherit;\n font: inherit;\n}\n.ml-pdfhatch-input option,\n.ml-pdfhatch-input optgroup {\n background: var(--ml-ui-bg, #ffffff);\n color: var(--ml-ui-text, #303133);\n}\n.ml-pdfhatch-input:focus {\n outline: none;\n border-color: var(--ml-ui-accent, #409eff);\n}\n.ml-pdfhatch-number {\n width: 96px;\n}\n.ml-pdfhatch-actions {\n display: flex;\n justify-content: flex-end;\n}\n.ml-pdfhatch-hint {\n color: var(--ml-ui-text-muted, #606266);\n}\n.ml-pdfhatch-warning {\n color: var(--ml-ui-warning, #e6a23c);\n}\n.ml-pdfhatch-check {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n}\n.ml-pdfhatch-footer {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n padding-top: 6px;\n border-top: 1px solid var(--ml-ui-border, #dcdfe6);\n}\n.ml-pdfhatch-counter {\n flex: 1;\n color: var(--ml-ui-text-muted, #606266);\n}\n.ml-pdfhatch-buttons {\n display: flex;\n gap: 6px;\n}\n.ml-pdfhatch-btn {\n min-width: 64px;\n padding: 4px 12px;\n border-radius: 4px;\n border: 1px solid var(--ml-ui-accent, #409eff);\n background: var(--ml-ui-accent, #409eff);\n color: #fff;\n cursor: pointer;\n font: inherit;\n}\n.ml-pdfhatch-btn.is-secondary {\n border-color: var(--ml-ui-border, #dcdfe6);\n background: transparent;\n color: inherit;\n}\n.ml-pdfhatch-toolbar .ml-pdfhatch-btn {\n min-width: 0;\n padding: 2px 8px;\n}\n.ml-pdfhatch-btn:disabled {\n opacity: 0.5;\n cursor: default;\n}\n".trim();
418
+ document.head.appendChild(style);
419
+ }
420
+ //# sourceMappingURL=AcUiPdfHatchPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcUiPdfHatchPanel.js","sourceRoot":"","sources":["../../src/ui/AcUiPdfHatchPanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { AcUiDialog } from '@mlightcad/cad-simple-viewer';
2
+ import type { AcApPdfImportMode } from '../AcApPdfImportOptions';
3
+ /** Page size in PDF points. */
4
+ export interface AcUiPdfImportViewport {
5
+ width: number;
6
+ height: number;
7
+ }
8
+ /** Running page render; `cancel` stops it early. */
9
+ export interface AcUiPdfImportRenderTask {
10
+ promise: Promise<void>;
11
+ cancel(): void;
12
+ }
13
+ /** One page of the PDF shown by {@link AcUiPdfImportDialog}. */
14
+ export interface AcUiPdfImportPage {
15
+ /** Page size at `scale` (1 = PDF points). */
16
+ getSize(scale: number): AcUiPdfImportViewport;
17
+ /** Draws the page into `canvas` at `scale`; the canvas is already sized. */
18
+ render(canvas: HTMLCanvasElement, scale: number): AcUiPdfImportRenderTask;
19
+ }
20
+ /** The PDF shown by {@link AcUiPdfImportDialog}. */
21
+ export interface AcUiPdfImportDocument {
22
+ numPages: number;
23
+ getPage(pageNumber: number): Promise<AcUiPdfImportPage>;
24
+ }
25
+ /** A picked PDF file, loaded. */
26
+ export interface AcUiPdfImportSource {
27
+ document: AcUiPdfImportDocument;
28
+ fileName: string;
29
+ }
30
+ /** Values the dialog starts with. */
31
+ export interface AcUiPdfImportDialogValues {
32
+ /** 1-based page number. */
33
+ pageNumber: number;
34
+ mode: AcApPdfImportMode;
35
+ scale: number;
36
+ /** Ask for the insertion point in the drawing after OK. */
37
+ specifyOnScreen: boolean;
38
+ /** Insertion point used when {@link specifyOnScreen} is off. */
39
+ insertionPoint: {
40
+ x: number;
41
+ y: number;
42
+ };
43
+ }
44
+ /** Options for {@link AcUiPdfImportDialog.open}. */
45
+ export interface AcUiPdfImportDialogOptions {
46
+ /** PDF picked before the dialog opens. */
47
+ source: AcUiPdfImportSource;
48
+ /**
49
+ * Picks and loads another PDF ("Browse..."). Resolves `undefined` when the
50
+ * user cancels the picker. The caller owns the loaded documents.
51
+ */
52
+ browse?: () => Promise<AcUiPdfImportSource | undefined>;
53
+ /** Starting values; omitted fields use the defaults. */
54
+ initial?: Partial<AcUiPdfImportDialogValues>;
55
+ /** Element that receives the backdrop. Defaults to `document.body`. */
56
+ host?: HTMLElement;
57
+ }
58
+ /** What {@link AcUiPdfImportDialog.open} resolves with on OK. */
59
+ export interface AcUiPdfImportDialogResult extends AcUiPdfImportDialogValues {
60
+ /** The PDF shown when OK was pressed (it changes with "Browse..."). */
61
+ source: AcUiPdfImportSource;
62
+ }
63
+ /**
64
+ * "Import PDF" dialog of the `pdfimport` command, laid out after AutoCAD's
65
+ * IMPORTPDF dialog: file name with Browse, the page to import with a preview
66
+ * or thumbnail grid, the insertion point and scale, and the import mode.
67
+ *
68
+ * The dialog only collects options; the caller imports.
69
+ */
70
+ export declare class AcUiPdfImportDialog extends AcUiDialog {
71
+ private source;
72
+ private readonly browse?;
73
+ private values;
74
+ private view;
75
+ private result?;
76
+ /** Bumped on every preview change; stale renders stop drawing. */
77
+ private generation;
78
+ private readonly tasks;
79
+ private observer?;
80
+ private readonly fileInput;
81
+ private readonly pageInput;
82
+ private readonly totalEl;
83
+ private readonly singleButton;
84
+ private readonly gridButton;
85
+ private readonly previewEl;
86
+ private readonly pageSizeEl;
87
+ private readonly onScreenInput;
88
+ private readonly xInput;
89
+ private readonly yInput;
90
+ private readonly scaleInput;
91
+ private readonly modeInputs;
92
+ private readonly okButton;
93
+ private constructor();
94
+ /**
95
+ * Shows the dialog.
96
+ *
97
+ * @returns The chosen options, or `undefined` when the user cancels.
98
+ */
99
+ static open(options: AcUiPdfImportDialogOptions): Promise<AcUiPdfImportDialogResult | undefined>;
100
+ /** @inheritdoc */
101
+ close(): void;
102
+ /** Shows {@link source}: file name, page count, preview. */
103
+ private loadSource;
104
+ private browseFile;
105
+ private commitPageInput;
106
+ private selectPage;
107
+ private setView;
108
+ /** Redraws the preview area for the current page / view. */
109
+ private renderPreview;
110
+ private renderSingle;
111
+ private renderGrid;
112
+ /** Draws `page` into `canvas`, fitting `maxWidth` × `maxHeight` CSS px. */
113
+ private drawPage;
114
+ private showPageSize;
115
+ private stopRendering;
116
+ /** Enables X/Y with the on-screen box and OK with valid numbers. */
117
+ private updateState;
118
+ private confirm;
119
+ }
120
+ //# sourceMappingURL=AcUiPdfImportDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcUiPdfImportDialog.d.ts","sourceRoot":"","sources":["../../src/ui/AcUiPdfImportDialog.ts"],"names":[],"mappings":"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"}