@mlightcad/cad-simple-viewer 1.7.4 → 1.7.6-preview.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 (190) hide show
  1. package/README.md +5 -0
  2. package/dist/cad-simple-viewer.js +11114 -8898
  3. package/dist/cad-simple-viewer.umd.cjs +432 -88
  4. package/dist/mtext-renderer-worker.js +2987 -2815
  5. package/find.ts +7 -0
  6. package/lib/app/AcApDocManager.d.ts +49 -1
  7. package/lib/app/AcApDocManager.d.ts.map +1 -1
  8. package/lib/app/AcApDocManager.js +150 -12
  9. package/lib/app/AcApDocManager.js.map +1 -1
  10. package/lib/app/AcApOpenDatabaseOptions.d.ts +33 -4
  11. package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
  12. package/lib/app/AcApOpenFileDialog.d.ts +1 -1
  13. package/lib/app/AcApOpenFileDialog.d.ts.map +1 -1
  14. package/lib/app/AcApOpenFileDialog.js +22 -92
  15. package/lib/app/AcApOpenFileDialog.js.map +1 -1
  16. package/lib/app/AcApOpenFileProfiler.d.ts +14 -0
  17. package/lib/app/AcApOpenFileProfiler.d.ts.map +1 -1
  18. package/lib/app/AcApOpenFileProfiler.js +25 -3
  19. package/lib/app/AcApOpenFileProfiler.js.map +1 -1
  20. package/lib/app/AcApOpenFileProgressController.d.ts +17 -9
  21. package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
  22. package/lib/app/AcApOpenFileProgressController.js +41 -20
  23. package/lib/app/AcApOpenFileProgressController.js.map +1 -1
  24. package/lib/app/AcApProgress.d.ts +5 -0
  25. package/lib/app/AcApProgress.d.ts.map +1 -1
  26. package/lib/app/AcApProgress.js +10 -0
  27. package/lib/app/AcApProgress.js.map +1 -1
  28. package/lib/app/dataSource/AcApDataSource.d.ts +97 -0
  29. package/lib/app/dataSource/AcApDataSource.d.ts.map +1 -0
  30. package/lib/app/dataSource/AcApDataSource.js +2 -0
  31. package/lib/app/dataSource/AcApDataSource.js.map +1 -0
  32. package/lib/app/dataSource/AcApDataSourceManager.d.ts +70 -0
  33. package/lib/app/dataSource/AcApDataSourceManager.d.ts.map +1 -0
  34. package/lib/app/dataSource/AcApDataSourceManager.js +84 -0
  35. package/lib/app/dataSource/AcApDataSourceManager.js.map +1 -0
  36. package/lib/app/dataSource/AcApLocalDataSource.d.ts +25 -0
  37. package/lib/app/dataSource/AcApLocalDataSource.d.ts.map +1 -0
  38. package/lib/app/dataSource/AcApLocalDataSource.js +153 -0
  39. package/lib/app/dataSource/AcApLocalDataSource.js.map +1 -0
  40. package/lib/app/dataSource/AcApUrlDataSource.d.ts +17 -0
  41. package/lib/app/dataSource/AcApUrlDataSource.d.ts.map +1 -0
  42. package/lib/app/dataSource/AcApUrlDataSource.js +214 -0
  43. package/lib/app/dataSource/AcApUrlDataSource.js.map +1 -0
  44. package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts +42 -0
  45. package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts.map +1 -0
  46. package/lib/app/dataSource/acapBuildDataSourceMenu.js +121 -0
  47. package/lib/app/dataSource/acapBuildDataSourceMenu.js.map +1 -0
  48. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts +17 -0
  49. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts.map +1 -0
  50. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js +74 -0
  51. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js.map +1 -0
  52. package/lib/app/dataSource/acapOpenCenteredPopup.d.ts +13 -0
  53. package/lib/app/dataSource/acapOpenCenteredPopup.d.ts.map +1 -0
  54. package/lib/app/dataSource/acapOpenCenteredPopup.js +35 -0
  55. package/lib/app/dataSource/acapOpenCenteredPopup.js.map +1 -0
  56. package/lib/app/dataSource/acapOpenDataSourceResult.d.ts +13 -0
  57. package/lib/app/dataSource/acapOpenDataSourceResult.d.ts.map +1 -0
  58. package/lib/app/dataSource/acapOpenDataSourceResult.js +90 -0
  59. package/lib/app/dataSource/acapOpenDataSourceResult.js.map +1 -0
  60. package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts +15 -0
  61. package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts.map +1 -0
  62. package/lib/app/dataSource/acapRunDataSourceMenuAction.js +74 -0
  63. package/lib/app/dataSource/acapRunDataSourceMenuAction.js.map +1 -0
  64. package/lib/app/dataSource/acapWithDataSourceBusy.d.ts +12 -0
  65. package/lib/app/dataSource/acapWithDataSourceBusy.d.ts.map +1 -0
  66. package/lib/app/dataSource/acapWithDataSourceBusy.js +88 -0
  67. package/lib/app/dataSource/acapWithDataSourceBusy.js.map +1 -0
  68. package/lib/app/dataSource/index.d.ts +11 -0
  69. package/lib/app/dataSource/index.d.ts.map +1 -0
  70. package/lib/app/dataSource/index.js +10 -0
  71. package/lib/app/dataSource/index.js.map +1 -0
  72. package/lib/app/index.d.ts +1 -0
  73. package/lib/app/index.d.ts.map +1 -1
  74. package/lib/app/index.js +1 -0
  75. package/lib/app/index.js.map +1 -1
  76. package/lib/app/openFileProgress.d.ts +8 -1
  77. package/lib/app/openFileProgress.d.ts.map +1 -1
  78. package/lib/app/openFileProgress.js +13 -2
  79. package/lib/app/openFileProgress.js.map +1 -1
  80. package/lib/app/syncCurrentSpaceFromTileMode.d.ts +25 -0
  81. package/lib/app/syncCurrentSpaceFromTileMode.d.ts.map +1 -0
  82. package/lib/app/syncCurrentSpaceFromTileMode.js +85 -0
  83. package/lib/app/syncCurrentSpaceFromTileMode.js.map +1 -0
  84. package/lib/editor/global/AcEdUiTheme.d.ts +10 -1
  85. package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -1
  86. package/lib/editor/global/AcEdUiTheme.js +35 -2
  87. package/lib/editor/global/AcEdUiTheme.js.map +1 -1
  88. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  89. package/lib/editor/input/ui/AcEdCommandLine.js +7 -7
  90. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  91. package/lib/find/AcApFindNavigator.d.ts +59 -0
  92. package/lib/find/AcApFindNavigator.d.ts.map +1 -0
  93. package/lib/find/AcApFindNavigator.js +145 -0
  94. package/lib/find/AcApFindNavigator.js.map +1 -0
  95. package/lib/find/findDrawing.d.ts +100 -0
  96. package/lib/find/findDrawing.d.ts.map +1 -0
  97. package/lib/find/findDrawing.js +183 -0
  98. package/lib/find/findDrawing.js.map +1 -0
  99. package/lib/find/findText.d.ts +147 -0
  100. package/lib/find/findText.d.ts.map +1 -0
  101. package/lib/find/findText.js +527 -0
  102. package/lib/find/findText.js.map +1 -0
  103. package/lib/find/index.d.ts +3 -0
  104. package/lib/find/index.d.ts.map +1 -0
  105. package/lib/find/index.js +3 -0
  106. package/lib/find/index.js.map +1 -0
  107. package/lib/i18n/ar/main.d.ts +26 -0
  108. package/lib/i18n/ar/main.d.ts.map +1 -1
  109. package/lib/i18n/ar/main.js +26 -0
  110. package/lib/i18n/ar/main.js.map +1 -1
  111. package/lib/i18n/cs/main.d.ts +26 -0
  112. package/lib/i18n/cs/main.d.ts.map +1 -1
  113. package/lib/i18n/cs/main.js +26 -0
  114. package/lib/i18n/cs/main.js.map +1 -1
  115. package/lib/i18n/en/main.d.ts +26 -0
  116. package/lib/i18n/en/main.d.ts.map +1 -1
  117. package/lib/i18n/en/main.js +26 -0
  118. package/lib/i18n/en/main.js.map +1 -1
  119. package/lib/i18n/tr/main.d.ts +26 -0
  120. package/lib/i18n/tr/main.d.ts.map +1 -1
  121. package/lib/i18n/tr/main.js +26 -0
  122. package/lib/i18n/tr/main.js.map +1 -1
  123. package/lib/i18n/zh/main.d.ts +26 -0
  124. package/lib/i18n/zh/main.d.ts.map +1 -1
  125. package/lib/i18n/zh/main.js +26 -0
  126. package/lib/i18n/zh/main.js.map +1 -1
  127. package/lib/index.d.ts +2 -0
  128. package/lib/index.d.ts.map +1 -1
  129. package/lib/index.js +2 -0
  130. package/lib/index.js.map +1 -1
  131. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +29 -7
  132. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  133. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +77 -38
  134. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  135. package/lib/ui/AcUiFileOpenPanel.d.ts +156 -0
  136. package/lib/ui/AcUiFileOpenPanel.d.ts.map +1 -0
  137. package/lib/ui/AcUiFileOpenPanel.js +695 -0
  138. package/lib/ui/AcUiFileOpenPanel.js.map +1 -0
  139. package/lib/ui/icons.d.ts +2 -0
  140. package/lib/ui/icons.d.ts.map +1 -1
  141. package/lib/ui/icons.js +2 -0
  142. package/lib/ui/icons.js.map +1 -1
  143. package/lib/ui/index.d.ts +1 -0
  144. package/lib/ui/index.d.ts.map +1 -1
  145. package/lib/ui/index.js +1 -0
  146. package/lib/ui/index.js.map +1 -1
  147. package/lib/util/AcApTextStyleFontPreload.d.ts +42 -0
  148. package/lib/util/AcApTextStyleFontPreload.d.ts.map +1 -0
  149. package/lib/util/AcApTextStyleFontPreload.js +149 -0
  150. package/lib/util/AcApTextStyleFontPreload.js.map +1 -0
  151. package/lib/util/index.d.ts +1 -0
  152. package/lib/util/index.d.ts.map +1 -1
  153. package/lib/util/index.js +1 -0
  154. package/lib/util/index.js.map +1 -1
  155. package/lib/view/AcTrConvertQueue.d.ts +78 -0
  156. package/lib/view/AcTrConvertQueue.d.ts.map +1 -0
  157. package/lib/view/AcTrConvertQueue.js +143 -0
  158. package/lib/view/AcTrConvertQueue.js.map +1 -0
  159. package/lib/view/AcTrGroupWcsBboxAssert.d.ts +9 -0
  160. package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
  161. package/lib/view/AcTrGroupWcsBboxAssert.js +12 -0
  162. package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
  163. package/lib/view/AcTrLayer.d.ts.map +1 -1
  164. package/lib/view/AcTrLayer.js +5 -1
  165. package/lib/view/AcTrLayer.js.map +1 -1
  166. package/lib/view/AcTrLayout.d.ts +5 -0
  167. package/lib/view/AcTrLayout.d.ts.map +1 -1
  168. package/lib/view/AcTrLayout.js +26 -0
  169. package/lib/view/AcTrLayout.js.map +1 -1
  170. package/lib/view/AcTrLayoutView.d.ts.map +1 -1
  171. package/lib/view/AcTrLayoutView.js +3 -1
  172. package/lib/view/AcTrLayoutView.js.map +1 -1
  173. package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -0
  174. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
  175. package/lib/view/AcTrProgressiveOpenFitController.js +2 -1
  176. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
  177. package/lib/view/AcTrScene.d.ts +7 -0
  178. package/lib/view/AcTrScene.d.ts.map +1 -1
  179. package/lib/view/AcTrScene.js +78 -48
  180. package/lib/view/AcTrScene.js.map +1 -1
  181. package/lib/view/AcTrView2d.d.ts +234 -18
  182. package/lib/view/AcTrView2d.d.ts.map +1 -1
  183. package/lib/view/AcTrView2d.js +1017 -296
  184. package/lib/view/AcTrView2d.js.map +1 -1
  185. package/package.json +17 -10
  186. package/src/find/AcApFindNavigator.ts +190 -0
  187. package/src/find/findDrawing.ts +211 -0
  188. package/src/find/findText.ts +595 -0
  189. package/src/find/index.ts +2 -0
  190. package/src/ui/icons.ts +4 -0
@@ -0,0 +1,74 @@
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
+ /**
38
+ * Runs a menu action against an already-resolved {@link AcApDataSource}.
39
+ *
40
+ * Prefer this on landing pages that own a {@link AcApDataSourceManager} before
41
+ * {@link AcApDocManager} exists. For in-viewer Open menus, use
42
+ * {@link acapRunDataSourceMenuAction} which also opens the returned file.
43
+ *
44
+ * Never chains sign-in into pick.
45
+ *
46
+ * @param source - Data source that owns {@link AcApDataSourceMenuItem.sourceId}
47
+ * @param item - Menu item from {@link acapBuildDataSourceMenu}
48
+ * @returns Picked file for `pick`; `undefined` for sign-in / sign-out
49
+ */
50
+ export function acapInvokeDataSourceMenuAction(source, item) {
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ if (source.id !== item.sourceId) {
56
+ return [2 /*return*/, undefined];
57
+ }
58
+ if (!(item.action === 'sign-in')) return [3 /*break*/, 2];
59
+ return [4 /*yield*/, source.signIn()];
60
+ case 1:
61
+ _a.sent();
62
+ return [2 /*return*/, undefined];
63
+ case 2:
64
+ if (!(item.action === 'sign-out')) return [3 /*break*/, 4];
65
+ return [4 /*yield*/, source.signOut()];
66
+ case 3:
67
+ _a.sent();
68
+ return [2 /*return*/, undefined];
69
+ case 4: return [2 /*return*/, source.pick()];
70
+ }
71
+ });
72
+ });
73
+ }
74
+ //# sourceMappingURL=acapInvokeDataSourceMenuAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapInvokeDataSourceMenuAction.js","sourceRoot":"","sources":["../../../src/app/dataSource/acapInvokeDataSourceMenuAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAgB,8BAA8B,CAClD,MAAsB,EACtB,IAA4B;;;;;oBAE5B,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAChC,sBAAO,SAAS,EAAA;oBAClB,CAAC;yBAEG,CAAA,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA,EAAzB,wBAAyB;oBAC3B,qBAAM,MAAM,CAAC,MAAM,EAAE,EAAA;;oBAArB,SAAqB,CAAA;oBACrB,sBAAO,SAAS,EAAA;;yBAGd,CAAA,IAAI,CAAC,MAAM,KAAK,UAAU,CAAA,EAA1B,wBAA0B;oBAC5B,qBAAM,MAAM,CAAC,OAAO,EAAE,EAAA;;oBAAtB,SAAsB,CAAA;oBACtB,sBAAO,SAAS,EAAA;wBAGlB,sBAAO,MAAM,CAAC,IAAI,EAAE,EAAA;;;;CACrB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Opens a named popup centered on the current screen (desktop).
3
+ *
4
+ * Cloud data sources that need a File Picker popup should use this helper so
5
+ * hosts never hard-code vendor-specific window placement.
6
+ *
7
+ * @param name - `window.open` target name (reuses an existing window with that name)
8
+ * @param width - Outer width in CSS pixels
9
+ * @param height - Outer height in CSS pixels
10
+ * @returns The opened window, or `null` when blocked
11
+ */
12
+ export declare function acapOpenCenteredPopup(name: string, width?: number, height?: number): Window | null;
13
+ //# sourceMappingURL=acapOpenCenteredPopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapOpenCenteredPopup.d.ts","sourceRoot":"","sources":["../../../src/app/dataSource/acapOpenCenteredPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,SAAO,EACZ,MAAM,SAAM,GACX,MAAM,GAAG,IAAI,CA8Bf"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Opens a named popup centered on the current screen (desktop).
3
+ *
4
+ * Cloud data sources that need a File Picker popup should use this helper so
5
+ * hosts never hard-code vendor-specific window placement.
6
+ *
7
+ * @param name - `window.open` target name (reuses an existing window with that name)
8
+ * @param width - Outer width in CSS pixels
9
+ * @param height - Outer height in CSS pixels
10
+ * @returns The opened window, or `null` when blocked
11
+ */
12
+ export function acapOpenCenteredPopup(name, width, height) {
13
+ if (width === void 0) { width = 1080; }
14
+ if (height === void 0) { height = 680; }
15
+ var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
16
+ var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
17
+ var viewportWidth = window.innerWidth ||
18
+ document.documentElement.clientWidth ||
19
+ screen.width;
20
+ var viewportHeight = window.innerHeight ||
21
+ document.documentElement.clientHeight ||
22
+ screen.height;
23
+ var left = Math.max(0, Math.round(dualScreenLeft + (viewportWidth - width) / 2));
24
+ var top = Math.max(0, Math.round(dualScreenTop + (viewportHeight - height) / 2));
25
+ var features = [
26
+ "width=".concat(width),
27
+ "height=".concat(height),
28
+ "left=".concat(left),
29
+ "top=".concat(top),
30
+ 'resizable=yes',
31
+ 'scrollbars=yes'
32
+ ].join(',');
33
+ return window.open('', name, features);
34
+ }
35
+ //# sourceMappingURL=acapOpenCenteredPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapOpenCenteredPopup.js","sourceRoot":"","sources":["../../../src/app/dataSource/acapOpenCenteredPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,KAAY,EACZ,MAAY;IADZ,sBAAA,EAAA,YAAY;IACZ,uBAAA,EAAA,YAAY;IAEZ,IAAM,cAAc,GAClB,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;IACtE,IAAM,aAAa,GACjB,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;IACpE,IAAM,aAAa,GACjB,MAAM,CAAC,UAAU;QACjB,QAAQ,CAAC,eAAe,CAAC,WAAW;QACpC,MAAM,CAAC,KAAK,CAAA;IACd,IAAM,cAAc,GAClB,MAAM,CAAC,WAAW;QAClB,QAAQ,CAAC,eAAe,CAAC,YAAY;QACrC,MAAM,CAAC,MAAM,CAAA;IACf,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CACzD,CAAA;IACD,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAC1D,CAAA;IACD,IAAM,QAAQ,GAAG;QACf,gBAAS,KAAK,CAAE;QAChB,iBAAU,MAAM,CAAE;QAClB,eAAQ,IAAI,CAAE;QACd,cAAO,GAAG,CAAE;QACZ,eAAe;QACf,gBAAgB;KACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;AACxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { AcApOpenDatabaseOptions } from '../AcApOpenDatabaseOptions';
2
+ import type { AcApDataSourceFile } from './AcApDataSource';
3
+ /**
4
+ * Opens a file obtained from a data source via {@link AcApDocManager}.
5
+ *
6
+ * Uses `openUrl` when {@link AcApDataSourceFile.url} is set; otherwise
7
+ * `openDocument` with {@link AcApDataSourceFile.content}.
8
+ *
9
+ * @param file - Result from {@link AcApDataSource.pick}
10
+ * @param options - Optional open options (defaults come from DocManager)
11
+ */
12
+ export declare function acapOpenDataSourceResult(file: AcApDataSourceFile, options?: AcApOpenDatabaseOptions): Promise<void>;
13
+ //# sourceMappingURL=acapOpenDataSourceResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapOpenDataSourceResult.d.ts","sourceRoot":"","sources":["../../../src/app/dataSource/acapOpenDataSourceResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE1D;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB,EACxB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -0,0 +1,90 @@
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
+ import { eventBus } from '../../editor/global/eventBus';
38
+ import { AcEdOpenMode } from '../../editor/view/AcEdOpenMode';
39
+ /**
40
+ * Opens a file obtained from a data source via {@link AcApDocManager}.
41
+ *
42
+ * Uses `openUrl` when {@link AcApDataSourceFile.url} is set; otherwise
43
+ * `openDocument` with {@link AcApDataSourceFile.content}.
44
+ *
45
+ * @param file - Result from {@link AcApDataSource.pick}
46
+ * @param options - Optional open options (defaults come from DocManager)
47
+ */
48
+ export function acapOpenDataSourceResult(file, options) {
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var AcApDocManager, dm, openOptions, _a, log;
51
+ var _b;
52
+ return __generator(this, function (_c) {
53
+ switch (_c.label) {
54
+ case 0: return [4 /*yield*/, import('../AcApDocManager')];
55
+ case 1:
56
+ AcApDocManager = (_c.sent()).AcApDocManager;
57
+ dm = AcApDocManager.instance;
58
+ if (!(options !== null && options !== void 0)) return [3 /*break*/, 2];
59
+ _a = options;
60
+ return [3 /*break*/, 4];
61
+ case 2: return [4 /*yield*/, dm.resolveOpenDocumentDefaults()];
62
+ case 3:
63
+ _a = (_c.sent());
64
+ _c.label = 4;
65
+ case 4:
66
+ openOptions = _a;
67
+ eventBus.emit('open-local-file-started', {
68
+ mode: (_b = openOptions.mode) !== null && _b !== void 0 ? _b : AcEdOpenMode.Read
69
+ });
70
+ if (!file.url) return [3 /*break*/, 6];
71
+ return [4 /*yield*/, dm.openUrl(file.url, openOptions)];
72
+ case 5:
73
+ _c.sent();
74
+ return [2 /*return*/];
75
+ case 6:
76
+ if (!!file.content) return [3 /*break*/, 8];
77
+ return [4 /*yield*/, import('@mlightcad/data-model')];
78
+ case 7:
79
+ log = (_c.sent()).log;
80
+ log.error('Data source file has neither content nor url:', file.name);
81
+ return [2 /*return*/];
82
+ case 8: return [4 /*yield*/, dm.openDocument(file.name, file.content, openOptions)];
83
+ case 9:
84
+ _c.sent();
85
+ return [2 /*return*/];
86
+ }
87
+ });
88
+ });
89
+ }
90
+ //# sourceMappingURL=acapOpenDataSourceResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapOpenDataSourceResult.js","sourceRoot":"","sources":["../../../src/app/dataSource/acapOpenDataSourceResult.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAI7D;;;;;;;;GAQG;AACH,MAAM,UAAgB,wBAAwB,CAC5C,IAAwB,EACxB,OAAiC;;;;;;wBAEN,qBAAM,MAAM,CAAC,mBAAmB,CAAC,EAAA;;oBAApD,cAAc,GAAK,CAAA,SAAiC,CAAA,eAAtC;oBAChB,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAA;0BAEhC,OAAO,aAAP,OAAO;oBAAP,KAAA,OAAO,CAAA;;wBAAK,qBAAM,EAAE,CAAC,2BAA2B,EAAE,EAAA;;oBAAvC,KAAA,CAAC,SAAsC,CAAC,CAAA;;;oBAD/C,WAAW,KACoC;oBAErD,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE;wBACvC,IAAI,EAAE,MAAA,WAAW,CAAC,IAAI,mCAAI,YAAY,CAAC,IAAI;qBAC5C,CAAC,CAAA;yBAEE,IAAI,CAAC,GAAG,EAAR,wBAAQ;oBACV,qBAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAA;;oBAAvC,SAAuC,CAAA;oBACvC,sBAAM;;yBAGJ,CAAC,IAAI,CAAC,OAAO,EAAb,wBAAa;oBACC,qBAAM,MAAM,CAAC,uBAAuB,CAAC,EAAA;;oBAA7C,GAAG,GAAK,CAAA,SAAqC,CAAA,IAA1C;oBACX,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;oBACrE,sBAAM;wBAGR,qBAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAA;;oBAA3D,SAA2D,CAAA;;;;;CAC5D"}
@@ -0,0 +1,15 @@
1
+ import type { AcApOpenDatabaseOptions } from '../AcApOpenDatabaseOptions';
2
+ import type { AcApDataSourceMenuItem } from './acapBuildDataSourceMenu';
3
+ import type { AcApDataSourceManager } from './AcApDataSourceManager';
4
+ /**
5
+ * Runs the action associated with a data-source menu item and opens pick results.
6
+ *
7
+ * Never chains sign-in into pick — that would open a second popup after an
8
+ * `await` and get blocked by the browser.
9
+ *
10
+ * @param item - Menu item from {@link acapBuildDataSourceMenu}
11
+ * @param options - Optional open options for pick results
12
+ * @param manager - Optional registry (defaults to DocManager's dataSourceManager)
13
+ */
14
+ export declare function acapRunDataSourceMenuAction(item: AcApDataSourceMenuItem, options?: AcApOpenDatabaseOptions, manager?: AcApDataSourceManager): Promise<void>;
15
+ //# sourceMappingURL=acapRunDataSourceMenuAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapRunDataSourceMenuAction.d.ts","sourceRoot":"","sources":["../../../src/app/dataSource/acapRunDataSourceMenuAction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAIpE;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,uBAAuB,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,74 @@
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
+ import { AcApDocManager } from '../AcApDocManager';
38
+ import { acapInvokeDataSourceMenuAction } from './acapInvokeDataSourceMenuAction';
39
+ import { acapOpenDataSourceResult } from './acapOpenDataSourceResult';
40
+ /**
41
+ * Runs the action associated with a data-source menu item and opens pick results.
42
+ *
43
+ * Never chains sign-in into pick — that would open a second popup after an
44
+ * `await` and get blocked by the browser.
45
+ *
46
+ * @param item - Menu item from {@link acapBuildDataSourceMenu}
47
+ * @param options - Optional open options for pick results
48
+ * @param manager - Optional registry (defaults to DocManager's dataSourceManager)
49
+ */
50
+ export function acapRunDataSourceMenuAction(item, options, manager) {
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var dsm, source, file;
53
+ var _a;
54
+ return __generator(this, function (_b) {
55
+ switch (_b.label) {
56
+ case 0:
57
+ dsm = manager !== null && manager !== void 0 ? manager : (_a = AcApDocManager.tryGetInstance()) === null || _a === void 0 ? void 0 : _a.dataSourceManager;
58
+ source = dsm === null || dsm === void 0 ? void 0 : dsm.get(item.sourceId);
59
+ if (!source)
60
+ return [2 /*return*/];
61
+ return [4 /*yield*/, acapInvokeDataSourceMenuAction(source, item)];
62
+ case 1:
63
+ file = _b.sent();
64
+ if (item.action !== 'pick' || !file)
65
+ return [2 /*return*/];
66
+ return [4 /*yield*/, acapOpenDataSourceResult(file, options)];
67
+ case 2:
68
+ _b.sent();
69
+ return [2 /*return*/];
70
+ }
71
+ });
72
+ });
73
+ }
74
+ //# sourceMappingURL=acapRunDataSourceMenuAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapRunDataSourceMenuAction.js","sourceRoot":"","sources":["../../../src/app/dataSource/acapRunDataSourceMenuAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIlD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE;;;;;;;;;GASG;AACH,MAAM,UAAgB,2BAA2B,CAC/C,IAA4B,EAC5B,OAAiC,EACjC,OAA+B;;;;;;;oBAEzB,GAAG,GACP,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,MAAA,cAAc,CAAC,cAAc,EAAE,0CAAE,iBAAiB,CAAA;oBACzD,MAAM,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBACtC,IAAI,CAAC,MAAM;wBAAE,sBAAM;oBAEN,qBAAM,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,EAAA;;oBAAzD,IAAI,GAAG,SAAkD;oBAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI;wBAAE,sBAAM;oBAC3C,qBAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA;;oBAA7C,SAA6C,CAAA;;;;;CAC9C"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Runs cloud download / post-picker work under a busy overlay.
3
+ *
4
+ * Uses {@link AcApDocManager.showBusyIndicator} when a DocManager exists;
5
+ * otherwise mounts a temporary {@link AcApProgress} on `document.body` so
6
+ * landing pages still show download feedback without host-specific UI.
7
+ *
8
+ * @param work - Async work (typically download after File Picker)
9
+ * @param message - Optional overlay message (defaults to OneDrive/cloud download copy)
10
+ */
11
+ export declare function acapWithDataSourceBusy<T>(work: () => Promise<T>, message?: string): Promise<T>;
12
+ //# sourceMappingURL=acapWithDataSourceBusy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapWithDataSourceBusy.d.ts","sourceRoot":"","sources":["../../../src/app/dataSource/acapWithDataSourceBusy.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC,CAuBZ"}
@@ -0,0 +1,88 @@
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
+ import { AcApI18n } from '../../i18n/AcApI18n';
38
+ import { AcApDocManager } from '../AcApDocManager';
39
+ import { AcApProgress } from '../AcApProgress';
40
+ /**
41
+ * Runs cloud download / post-picker work under a busy overlay.
42
+ *
43
+ * Uses {@link AcApDocManager.showBusyIndicator} when a DocManager exists;
44
+ * otherwise mounts a temporary {@link AcApProgress} on `document.body` so
45
+ * landing pages still show download feedback without host-specific UI.
46
+ *
47
+ * @param work - Async work (typically download after File Picker)
48
+ * @param message - Optional overlay message (defaults to OneDrive/cloud download copy)
49
+ */
50
+ export function acapWithDataSourceBusy(work, message) {
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var text, dm, progress;
53
+ return __generator(this, function (_a) {
54
+ switch (_a.label) {
55
+ case 0:
56
+ text = message !== null && message !== void 0 ? message : AcApI18n.t('main.dataSource.downloading');
57
+ dm = AcApDocManager.tryGetInstance();
58
+ if (!dm) return [3 /*break*/, 4];
59
+ dm.showBusyIndicator(text);
60
+ _a.label = 1;
61
+ case 1:
62
+ _a.trys.push([1, , 3, 4]);
63
+ return [4 /*yield*/, work()];
64
+ case 2: return [2 /*return*/, _a.sent()];
65
+ case 3:
66
+ dm.hideBusyIndicator();
67
+ return [7 /*endfinally*/];
68
+ case 4:
69
+ progress = new AcApProgress({
70
+ host: document.body,
71
+ message: text
72
+ });
73
+ progress.show();
74
+ _a.label = 5;
75
+ case 5:
76
+ _a.trys.push([5, , 7, 8]);
77
+ return [4 /*yield*/, work()];
78
+ case 6: return [2 /*return*/, _a.sent()];
79
+ case 7:
80
+ progress.hide();
81
+ progress.destroy();
82
+ return [7 /*endfinally*/];
83
+ case 8: return [2 /*return*/];
84
+ }
85
+ });
86
+ });
87
+ }
88
+ //# sourceMappingURL=acapWithDataSourceBusy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acapWithDataSourceBusy.js","sourceRoot":"","sources":["../../../src/app/dataSource/acapWithDataSourceBusy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;;;;;;;GASG;AACH,MAAM,UAAgB,sBAAsB,CAC1C,IAAsB,EACtB,OAAgB;;;;;;oBAEV,IAAI,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAA;oBAC3D,EAAE,GAAG,cAAc,CAAC,cAAc,EAAE,CAAA;yBACtC,EAAE,EAAF,wBAAE;oBACJ,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;;;;oBAEjB,qBAAM,IAAI,EAAE,EAAA;wBAAnB,sBAAO,SAAY,EAAA;;oBAEnB,EAAE,CAAC,iBAAiB,EAAE,CAAA;;;oBAIpB,QAAQ,GAAG,IAAI,YAAY,CAAC;wBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;oBACF,QAAQ,CAAC,IAAI,EAAE,CAAA;;;;oBAEN,qBAAM,IAAI,EAAE,EAAA;wBAAnB,sBAAO,SAAY,EAAA;;oBAEnB,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACf,QAAQ,CAAC,OAAO,EAAE,CAAA;;;;;;CAErB"}
@@ -0,0 +1,11 @@
1
+ export type { AcApDataSource, AcApDataSourceAccountProfile, AcApDataSourceAuthState, AcApDataSourceFile } from './AcApDataSource';
2
+ export { AcApDataSourceManager, type AcApDataSourceManagerEvents } from './AcApDataSourceManager';
3
+ export { ACAP_LOCAL_DATA_SOURCE_ID, AcApLocalDataSource, acapPickLocalCadFile } from './AcApLocalDataSource';
4
+ export { ACAP_URL_DATA_SOURCE_ID, AcApUrlDataSource } from './AcApUrlDataSource';
5
+ export { acapBuildDataSourceMenu, acapIsSingleLocalOpen, type AcApDataSourceMenuAction, type AcApDataSourceMenuItem } from './acapBuildDataSourceMenu';
6
+ export { acapInvokeDataSourceMenuAction } from './acapInvokeDataSourceMenuAction';
7
+ export { acapOpenCenteredPopup } from './acapOpenCenteredPopup';
8
+ export { acapOpenDataSourceResult } from './acapOpenDataSourceResult';
9
+ export { acapRunDataSourceMenuAction } from './acapRunDataSourceMenuAction';
10
+ export { acapWithDataSourceBusy } from './acapWithDataSourceBusy';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/dataSource/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,10 @@
1
+ export { AcApDataSourceManager } from './AcApDataSourceManager';
2
+ export { ACAP_LOCAL_DATA_SOURCE_ID, AcApLocalDataSource, acapPickLocalCadFile } from './AcApLocalDataSource';
3
+ export { ACAP_URL_DATA_SOURCE_ID, AcApUrlDataSource } from './AcApUrlDataSource';
4
+ export { acapBuildDataSourceMenu, acapIsSingleLocalOpen } from './acapBuildDataSourceMenu';
5
+ export { acapInvokeDataSourceMenuAction } from './acapInvokeDataSourceMenuAction';
6
+ export { acapOpenCenteredPopup } from './acapOpenCenteredPopup';
7
+ export { acapOpenDataSourceResult } from './acapOpenDataSourceResult';
8
+ export { acapRunDataSourceMenuAction } from './acapRunDataSourceMenuAction';
9
+ export { acapWithDataSourceBusy } from './acapWithDataSourceBusy';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/dataSource/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EAEtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EAGtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -14,6 +14,7 @@ export * from './AcApProgress';
14
14
  export * from './openFileProgress';
15
15
  export * from './AcApSettingManager';
16
16
  export * from './AcApLayerSessionState';
17
+ export * from './dataSource';
17
18
  export type { AcApOpenDatabaseOptions, AcApOpenSysVars } from './AcApOpenDatabaseOptions';
18
19
  export { AcApOpenViewMode } from './AcApOpenDatabaseOptions';
19
20
  export type { AcApOpenDocumentDefaultsResolver, AcApOpenFileDialogOptions } from './AcApOpenFileDialog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,YAAY,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,YAAY,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,YAAY,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,YAAY,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
package/lib/app/index.js CHANGED
@@ -14,6 +14,7 @@ export * from './AcApProgress';
14
14
  export * from './openFileProgress';
15
15
  export * from './AcApSettingManager';
16
16
  export * from './AcApLayerSessionState';
17
+ export * from './dataSource';
17
18
  export { AcApOpenViewMode } from './AcApOpenDatabaseOptions';
18
19
  export { acapInstallOpenFileDialog, acapUninstallOpenFileDialog, acapUpdateOpenFileDialogOptions } from './AcApOpenFileDialog';
19
20
  export * from './notification';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAKvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAK5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAK5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAK5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
@@ -5,6 +5,13 @@ import { AcDbProgressdEventArgs } from '@mlightcad/data-model';
5
5
  * CONVERSION completes with subStage `END`. After `openUri` finishes parsing,
6
6
  * data-model also emits a trailing FETCH_FILE event at 100% with
7
7
  * subStageStatus `END` but no subStage — that must hide the overlay too.
8
+ *
9
+ * Leading FETCH_FILE END (download finished, convert about to start) must
10
+ * **not** be treated as complete: hiding there briefly clears the spinner and
11
+ * it flashes back when CONVERSION starts.
12
+ *
13
+ * @param conversionEnded - True after this open has already seen
14
+ * CONVERSION/`END`. Distinguishes trailing vs leading FETCH_FILE END.
8
15
  */
9
- export declare function isOpenFileProgressComplete(data: AcDbProgressdEventArgs): boolean;
16
+ export declare function isOpenFileProgressComplete(data: AcDbProgressdEventArgs, conversionEnded?: boolean): boolean;
10
17
  //# sourceMappingURL=openFileProgress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openFileProgress.d.ts","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAcT"}
1
+ {"version":3,"file":"openFileProgress.d.ts","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,EAC5B,eAAe,UAAQ,GACtB,OAAO,CAkBT"}
@@ -4,8 +4,16 @@
4
4
  * CONVERSION completes with subStage `END`. After `openUri` finishes parsing,
5
5
  * data-model also emits a trailing FETCH_FILE event at 100% with
6
6
  * subStageStatus `END` but no subStage — that must hide the overlay too.
7
+ *
8
+ * Leading FETCH_FILE END (download finished, convert about to start) must
9
+ * **not** be treated as complete: hiding there briefly clears the spinner and
10
+ * it flashes back when CONVERSION starts.
11
+ *
12
+ * @param conversionEnded - True after this open has already seen
13
+ * CONVERSION/`END`. Distinguishes trailing vs leading FETCH_FILE END.
7
14
  */
8
- export function isOpenFileProgressComplete(data) {
15
+ export function isOpenFileProgressComplete(data, conversionEnded) {
16
+ if (conversionEnded === void 0) { conversionEnded = false; }
9
17
  if (data.percentage < 100) {
10
18
  return false;
11
19
  }
@@ -15,6 +23,9 @@ export function isOpenFileProgressComplete(data) {
15
23
  if (data.subStageStatus !== 'END') {
16
24
  return false;
17
25
  }
18
- return data.stage === 'FETCH_FILE' || data.subStage === 'END';
26
+ if (data.stage === 'FETCH_FILE') {
27
+ return conversionEnded;
28
+ }
29
+ return data.subStage === 'END';
19
30
  }
20
31
  //# sourceMappingURL=openFileProgress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openFileProgress.js","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA4B;IAE5B,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"openFileProgress.js","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA4B,EAC5B,eAAuB;IAAvB,gCAAA,EAAA,uBAAuB;IAEvB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAA;AAChC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { AcDbDatabase } from '@mlightcad/data-model';
2
+ /**
3
+ * Resolves the block table record id of the active paper-space layout.
4
+ *
5
+ * AutoCAD keeps the active sheet on the `*Paper_Space` block (other sheets are
6
+ * `*Paper_SpaceN`). When that block is missing, fall back to a layout marked
7
+ * `tabSelected`, then to any paper-space layout.
8
+ *
9
+ * @param database - Drawing whose layouts have already been read.
10
+ * @returns Paper-space BTR id, or `undefined` when the drawing has none.
11
+ */
12
+ export declare function resolveActivePaperSpaceBtrId(database: AcDbDatabase): string | undefined;
13
+ /**
14
+ * Aligns {@link AcDbDatabase.currentSpaceId} with `$TILEMODE` after a file read.
15
+ *
16
+ * The DXF/DWG header reader sets {@link AcDbDatabase.tilemode}, but
17
+ * `currentSpaceId` still defaults to model space. Drawings saved in paper
18
+ * space (`$TILEMODE = 0`) therefore opened on Model until the user switched
19
+ * tabs — so the sheet looked like the model, and convert prioritized the
20
+ * wrong layout.
21
+ *
22
+ * @param database - Database that has finished reading header and layouts.
23
+ */
24
+ export declare function syncCurrentSpaceFromTileMode(database: AcDbDatabase): void;
25
+ //# sourceMappingURL=syncCurrentSpaceFromTileMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncCurrentSpaceFromTileMode.d.ts","sourceRoot":"","sources":["../../src/app/syncCurrentSpaceFromTileMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,GACrB,MAAM,GAAG,SAAS,CAyBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAazE"}