@mlightcad/cad-simple-viewer 1.7.4 → 1.7.5

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 (126) hide show
  1. package/README.md +5 -0
  2. package/dist/cad-simple-viewer.js +8578 -7149
  3. package/dist/cad-simple-viewer.umd.cjs +429 -85
  4. package/lib/app/AcApDocManager.d.ts +44 -1
  5. package/lib/app/AcApDocManager.d.ts.map +1 -1
  6. package/lib/app/AcApDocManager.js +126 -1
  7. package/lib/app/AcApDocManager.js.map +1 -1
  8. package/lib/app/AcApOpenDatabaseOptions.d.ts +27 -0
  9. package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
  10. package/lib/app/AcApOpenFileDialog.d.ts +1 -1
  11. package/lib/app/AcApOpenFileDialog.d.ts.map +1 -1
  12. package/lib/app/AcApOpenFileDialog.js +22 -92
  13. package/lib/app/AcApOpenFileDialog.js.map +1 -1
  14. package/lib/app/AcApOpenFileProfiler.d.ts +14 -0
  15. package/lib/app/AcApOpenFileProfiler.d.ts.map +1 -1
  16. package/lib/app/AcApOpenFileProfiler.js +25 -3
  17. package/lib/app/AcApOpenFileProfiler.js.map +1 -1
  18. package/lib/app/dataSource/AcApDataSource.d.ts +97 -0
  19. package/lib/app/dataSource/AcApDataSource.d.ts.map +1 -0
  20. package/lib/app/dataSource/AcApDataSource.js +2 -0
  21. package/lib/app/dataSource/AcApDataSource.js.map +1 -0
  22. package/lib/app/dataSource/AcApDataSourceManager.d.ts +70 -0
  23. package/lib/app/dataSource/AcApDataSourceManager.d.ts.map +1 -0
  24. package/lib/app/dataSource/AcApDataSourceManager.js +84 -0
  25. package/lib/app/dataSource/AcApDataSourceManager.js.map +1 -0
  26. package/lib/app/dataSource/AcApLocalDataSource.d.ts +25 -0
  27. package/lib/app/dataSource/AcApLocalDataSource.d.ts.map +1 -0
  28. package/lib/app/dataSource/AcApLocalDataSource.js +153 -0
  29. package/lib/app/dataSource/AcApLocalDataSource.js.map +1 -0
  30. package/lib/app/dataSource/AcApUrlDataSource.d.ts +17 -0
  31. package/lib/app/dataSource/AcApUrlDataSource.d.ts.map +1 -0
  32. package/lib/app/dataSource/AcApUrlDataSource.js +214 -0
  33. package/lib/app/dataSource/AcApUrlDataSource.js.map +1 -0
  34. package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts +42 -0
  35. package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts.map +1 -0
  36. package/lib/app/dataSource/acapBuildDataSourceMenu.js +121 -0
  37. package/lib/app/dataSource/acapBuildDataSourceMenu.js.map +1 -0
  38. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts +17 -0
  39. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts.map +1 -0
  40. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js +74 -0
  41. package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js.map +1 -0
  42. package/lib/app/dataSource/acapOpenCenteredPopup.d.ts +13 -0
  43. package/lib/app/dataSource/acapOpenCenteredPopup.d.ts.map +1 -0
  44. package/lib/app/dataSource/acapOpenCenteredPopup.js +35 -0
  45. package/lib/app/dataSource/acapOpenCenteredPopup.js.map +1 -0
  46. package/lib/app/dataSource/acapOpenDataSourceResult.d.ts +13 -0
  47. package/lib/app/dataSource/acapOpenDataSourceResult.d.ts.map +1 -0
  48. package/lib/app/dataSource/acapOpenDataSourceResult.js +90 -0
  49. package/lib/app/dataSource/acapOpenDataSourceResult.js.map +1 -0
  50. package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts +15 -0
  51. package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts.map +1 -0
  52. package/lib/app/dataSource/acapRunDataSourceMenuAction.js +74 -0
  53. package/lib/app/dataSource/acapRunDataSourceMenuAction.js.map +1 -0
  54. package/lib/app/dataSource/acapWithDataSourceBusy.d.ts +12 -0
  55. package/lib/app/dataSource/acapWithDataSourceBusy.d.ts.map +1 -0
  56. package/lib/app/dataSource/acapWithDataSourceBusy.js +88 -0
  57. package/lib/app/dataSource/acapWithDataSourceBusy.js.map +1 -0
  58. package/lib/app/dataSource/index.d.ts +11 -0
  59. package/lib/app/dataSource/index.d.ts.map +1 -0
  60. package/lib/app/dataSource/index.js +10 -0
  61. package/lib/app/dataSource/index.js.map +1 -0
  62. package/lib/app/index.d.ts +1 -0
  63. package/lib/app/index.d.ts.map +1 -1
  64. package/lib/app/index.js +1 -0
  65. package/lib/app/index.js.map +1 -1
  66. package/lib/editor/global/AcEdUiTheme.d.ts +10 -1
  67. package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -1
  68. package/lib/editor/global/AcEdUiTheme.js +35 -2
  69. package/lib/editor/global/AcEdUiTheme.js.map +1 -1
  70. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  71. package/lib/editor/input/ui/AcEdCommandLine.js +7 -7
  72. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  73. package/lib/i18n/ar/main.d.ts +26 -0
  74. package/lib/i18n/ar/main.d.ts.map +1 -1
  75. package/lib/i18n/ar/main.js +26 -0
  76. package/lib/i18n/ar/main.js.map +1 -1
  77. package/lib/i18n/cs/main.d.ts +26 -0
  78. package/lib/i18n/cs/main.d.ts.map +1 -1
  79. package/lib/i18n/cs/main.js +26 -0
  80. package/lib/i18n/cs/main.js.map +1 -1
  81. package/lib/i18n/en/main.d.ts +26 -0
  82. package/lib/i18n/en/main.d.ts.map +1 -1
  83. package/lib/i18n/en/main.js +26 -0
  84. package/lib/i18n/en/main.js.map +1 -1
  85. package/lib/i18n/tr/main.d.ts +26 -0
  86. package/lib/i18n/tr/main.d.ts.map +1 -1
  87. package/lib/i18n/tr/main.js +26 -0
  88. package/lib/i18n/tr/main.js.map +1 -1
  89. package/lib/i18n/zh/main.d.ts +26 -0
  90. package/lib/i18n/zh/main.d.ts.map +1 -1
  91. package/lib/i18n/zh/main.js +26 -0
  92. package/lib/i18n/zh/main.js.map +1 -1
  93. package/lib/ui/AcUiFileOpenPanel.d.ts +156 -0
  94. package/lib/ui/AcUiFileOpenPanel.d.ts.map +1 -0
  95. package/lib/ui/AcUiFileOpenPanel.js +695 -0
  96. package/lib/ui/AcUiFileOpenPanel.js.map +1 -0
  97. package/lib/ui/icons.d.ts +2 -0
  98. package/lib/ui/icons.d.ts.map +1 -1
  99. package/lib/ui/icons.js +2 -0
  100. package/lib/ui/icons.js.map +1 -1
  101. package/lib/ui/index.d.ts +1 -0
  102. package/lib/ui/index.d.ts.map +1 -1
  103. package/lib/ui/index.js +1 -0
  104. package/lib/ui/index.js.map +1 -1
  105. package/lib/util/AcApTextStyleFontPreload.d.ts +42 -0
  106. package/lib/util/AcApTextStyleFontPreload.d.ts.map +1 -0
  107. package/lib/util/AcApTextStyleFontPreload.js +149 -0
  108. package/lib/util/AcApTextStyleFontPreload.js.map +1 -0
  109. package/lib/util/index.d.ts +1 -0
  110. package/lib/util/index.d.ts.map +1 -1
  111. package/lib/util/index.js +1 -0
  112. package/lib/util/index.js.map +1 -1
  113. package/lib/view/AcTrLayout.d.ts +5 -0
  114. package/lib/view/AcTrLayout.d.ts.map +1 -1
  115. package/lib/view/AcTrLayout.js +11 -0
  116. package/lib/view/AcTrLayout.js.map +1 -1
  117. package/lib/view/AcTrScene.d.ts +7 -0
  118. package/lib/view/AcTrScene.d.ts.map +1 -1
  119. package/lib/view/AcTrScene.js +78 -48
  120. package/lib/view/AcTrScene.js.map +1 -1
  121. package/lib/view/AcTrView2d.d.ts +68 -1
  122. package/lib/view/AcTrView2d.d.ts.map +1 -1
  123. package/lib/view/AcTrView2d.js +311 -124
  124. package/lib/view/AcTrView2d.js.map +1 -1
  125. package/package.json +8 -8
  126. 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"}
@@ -1,4 +1,13 @@
1
1
  export type AcEdUiTheme = 'light' | 'dark';
2
+ /** Options for {@link acedApplyUiTheme}. */
3
+ export interface AcEdApplyUiThemeOptions {
4
+ /**
5
+ * Use a self-contained palette (hex / rgba) instead of `--el-*` variables.
6
+ * Nested chrome can then keep `light` or `dark` even when the host app theme
7
+ * is the opposite.
8
+ */
9
+ isolated?: boolean;
10
+ }
2
11
  type AcEdUiThemeListener = (theme: AcEdUiTheme) => void;
3
12
  /**
4
13
  * Subscribes to UI theme changes triggered by {@link acedApplyUiTheme}
@@ -8,7 +17,7 @@ type AcEdUiThemeListener = (theme: AcEdUiTheme) => void;
8
17
  * @returns Unsubscribe function.
9
18
  */
10
19
  export declare function acedSubscribeUiTheme(listener: AcEdUiThemeListener): () => void;
11
- export declare function acedApplyUiTheme(theme: AcEdUiTheme, target?: HTMLElement): void;
20
+ export declare function acedApplyUiTheme(theme: AcEdUiTheme, target?: HTMLElement, options?: AcEdApplyUiThemeOptions): void;
12
21
  /**
13
22
  * Resolves the active UI theme from a host element or the document.
14
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdUiTheme.d.ts","sourceRoot":"","sources":["../../../src/editor/global/AcEdUiTheme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;AAuC1C,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAKvD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,mBAAmB,GAC5B,MAAM,IAAI,CAKZ;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,WAAsC,QA0B/C;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAoBrE"}
1
+ {"version":3,"file":"AcEdUiTheme.d.ts","sourceRoot":"","sources":["../../../src/editor/global/AcEdUiTheme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;AAE1C,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAsED,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAKvD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,mBAAmB,GAC5B,MAAM,IAAI,CAKZ;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,WAAsC,EAC9C,OAAO,CAAC,EAAE,uBAAuB,QA6BlC;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAoBrE"}
@@ -34,6 +34,36 @@ var __values = (this && this.__values) || function(o) {
34
34
  };
35
35
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
36
36
  };
37
+ var ISOLATED_THEME_TOKENS = {
38
+ light: {
39
+ '--ml-ui-text': '#303133',
40
+ '--ml-ui-text-muted': '#606266',
41
+ '--ml-ui-bg': '#ffffff',
42
+ '--ml-ui-border': '#dcdfe6',
43
+ '--ml-ui-shadow': '0 2px 6px rgba(0, 0, 0, 0.12)',
44
+ '--ml-ui-overlay': 'rgba(0, 0, 0, 0.18)',
45
+ '--ml-ui-accent': '#409eff',
46
+ '--ml-ui-accent-alt': '#909399',
47
+ '--ml-ui-danger': '#f56c6c',
48
+ '--ml-ui-canvas-line': '#409eff',
49
+ '--ml-ui-canvas-fill': 'rgba(64, 158, 255, 0.2)',
50
+ '--ml-ui-canvas-fill-mix': 'color-mix(in srgb, #409eff 20%, transparent)'
51
+ },
52
+ dark: {
53
+ '--ml-ui-text': '#e5eaf3',
54
+ '--ml-ui-text-muted': '#cfd3dc',
55
+ '--ml-ui-bg': '#1d1e1f',
56
+ '--ml-ui-border': '#4c4d4f',
57
+ '--ml-ui-shadow': '0 6px 18px rgba(0, 0, 0, 0.35)',
58
+ '--ml-ui-overlay': 'rgba(0, 0, 0, 0.5)',
59
+ '--ml-ui-accent': '#409eff',
60
+ '--ml-ui-accent-alt': '#909399',
61
+ '--ml-ui-danger': '#f56c6c',
62
+ '--ml-ui-canvas-line': '#409eff',
63
+ '--ml-ui-canvas-fill': 'rgba(64, 158, 255, 0.2)',
64
+ '--ml-ui-canvas-fill-mix': 'color-mix(in srgb, #409eff 20%, transparent)'
65
+ }
66
+ };
37
67
  var THEME_TOKENS = {
38
68
  light: {
39
69
  '--ml-ui-text': 'var(--el-text-color-primary, #303133)',
@@ -79,14 +109,17 @@ export function acedSubscribeUiTheme(listener) {
79
109
  themeListeners.delete(listener);
80
110
  };
81
111
  }
82
- export function acedApplyUiTheme(theme, target) {
112
+ export function acedApplyUiTheme(theme, target, options) {
83
113
  var e_1, _a;
84
114
  if (target === void 0) { target = document.documentElement; }
85
- var tokens = THEME_TOKENS[theme];
115
+ var tokens = (options === null || options === void 0 ? void 0 : options.isolated)
116
+ ? ISOLATED_THEME_TOKENS[theme]
117
+ : THEME_TOKENS[theme];
86
118
  Object.keys(tokens).forEach(function (key) {
87
119
  target.style.setProperty(key, tokens[key]);
88
120
  });
89
121
  target.setAttribute('data-ml-ui-theme', theme);
122
+ target.style.colorScheme = theme;
90
123
  // Only broadcast when the document (or marked) root theme changes so nested
91
124
  // chrome can refresh without re-entrancy from their own apply calls.
92
125
  var isRoot = target === document.documentElement ||