@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.
- package/README.md +5 -0
- package/dist/cad-simple-viewer.js +11114 -8898
- package/dist/cad-simple-viewer.umd.cjs +432 -88
- package/dist/mtext-renderer-worker.js +2987 -2815
- package/find.ts +7 -0
- package/lib/app/AcApDocManager.d.ts +49 -1
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +150 -12
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApOpenDatabaseOptions.d.ts +33 -4
- package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
- package/lib/app/AcApOpenFileDialog.d.ts +1 -1
- package/lib/app/AcApOpenFileDialog.d.ts.map +1 -1
- package/lib/app/AcApOpenFileDialog.js +22 -92
- package/lib/app/AcApOpenFileDialog.js.map +1 -1
- package/lib/app/AcApOpenFileProfiler.d.ts +14 -0
- package/lib/app/AcApOpenFileProfiler.d.ts.map +1 -1
- package/lib/app/AcApOpenFileProfiler.js +25 -3
- package/lib/app/AcApOpenFileProfiler.js.map +1 -1
- package/lib/app/AcApOpenFileProgressController.d.ts +17 -9
- package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
- package/lib/app/AcApOpenFileProgressController.js +41 -20
- package/lib/app/AcApOpenFileProgressController.js.map +1 -1
- package/lib/app/AcApProgress.d.ts +5 -0
- package/lib/app/AcApProgress.d.ts.map +1 -1
- package/lib/app/AcApProgress.js +10 -0
- package/lib/app/AcApProgress.js.map +1 -1
- package/lib/app/dataSource/AcApDataSource.d.ts +97 -0
- package/lib/app/dataSource/AcApDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApDataSource.js +2 -0
- package/lib/app/dataSource/AcApDataSource.js.map +1 -0
- package/lib/app/dataSource/AcApDataSourceManager.d.ts +70 -0
- package/lib/app/dataSource/AcApDataSourceManager.d.ts.map +1 -0
- package/lib/app/dataSource/AcApDataSourceManager.js +84 -0
- package/lib/app/dataSource/AcApDataSourceManager.js.map +1 -0
- package/lib/app/dataSource/AcApLocalDataSource.d.ts +25 -0
- package/lib/app/dataSource/AcApLocalDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApLocalDataSource.js +153 -0
- package/lib/app/dataSource/AcApLocalDataSource.js.map +1 -0
- package/lib/app/dataSource/AcApUrlDataSource.d.ts +17 -0
- package/lib/app/dataSource/AcApUrlDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApUrlDataSource.js +214 -0
- package/lib/app/dataSource/AcApUrlDataSource.js.map +1 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts +42 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts.map +1 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.js +121 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.js.map +1 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts +17 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts.map +1 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js +74 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js.map +1 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.d.ts +13 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.d.ts.map +1 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.js +35 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.js.map +1 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.d.ts +13 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.d.ts.map +1 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.js +90 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.js.map +1 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts +15 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts.map +1 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.js +74 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.js.map +1 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.d.ts +12 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.d.ts.map +1 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.js +88 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.js.map +1 -0
- package/lib/app/dataSource/index.d.ts +11 -0
- package/lib/app/dataSource/index.d.ts.map +1 -0
- package/lib/app/dataSource/index.js +10 -0
- package/lib/app/dataSource/index.js.map +1 -0
- package/lib/app/index.d.ts +1 -0
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +1 -0
- package/lib/app/index.js.map +1 -1
- package/lib/app/openFileProgress.d.ts +8 -1
- package/lib/app/openFileProgress.d.ts.map +1 -1
- package/lib/app/openFileProgress.js +13 -2
- package/lib/app/openFileProgress.js.map +1 -1
- package/lib/app/syncCurrentSpaceFromTileMode.d.ts +25 -0
- package/lib/app/syncCurrentSpaceFromTileMode.d.ts.map +1 -0
- package/lib/app/syncCurrentSpaceFromTileMode.js +85 -0
- package/lib/app/syncCurrentSpaceFromTileMode.js.map +1 -0
- package/lib/editor/global/AcEdUiTheme.d.ts +10 -1
- package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -1
- package/lib/editor/global/AcEdUiTheme.js +35 -2
- package/lib/editor/global/AcEdUiTheme.js.map +1 -1
- package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdCommandLine.js +7 -7
- package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
- package/lib/find/AcApFindNavigator.d.ts +59 -0
- package/lib/find/AcApFindNavigator.d.ts.map +1 -0
- package/lib/find/AcApFindNavigator.js +145 -0
- package/lib/find/AcApFindNavigator.js.map +1 -0
- package/lib/find/findDrawing.d.ts +100 -0
- package/lib/find/findDrawing.d.ts.map +1 -0
- package/lib/find/findDrawing.js +183 -0
- package/lib/find/findDrawing.js.map +1 -0
- package/lib/find/findText.d.ts +147 -0
- package/lib/find/findText.d.ts.map +1 -0
- package/lib/find/findText.js +527 -0
- package/lib/find/findText.js.map +1 -0
- package/lib/find/index.d.ts +3 -0
- package/lib/find/index.d.ts.map +1 -0
- package/lib/find/index.js +3 -0
- package/lib/find/index.js.map +1 -0
- package/lib/i18n/ar/main.d.ts +26 -0
- package/lib/i18n/ar/main.d.ts.map +1 -1
- package/lib/i18n/ar/main.js +26 -0
- package/lib/i18n/ar/main.js.map +1 -1
- package/lib/i18n/cs/main.d.ts +26 -0
- package/lib/i18n/cs/main.d.ts.map +1 -1
- package/lib/i18n/cs/main.js +26 -0
- package/lib/i18n/cs/main.js.map +1 -1
- package/lib/i18n/en/main.d.ts +26 -0
- package/lib/i18n/en/main.d.ts.map +1 -1
- package/lib/i18n/en/main.js +26 -0
- package/lib/i18n/en/main.js.map +1 -1
- package/lib/i18n/tr/main.d.ts +26 -0
- package/lib/i18n/tr/main.d.ts.map +1 -1
- package/lib/i18n/tr/main.js +26 -0
- package/lib/i18n/tr/main.js.map +1 -1
- package/lib/i18n/zh/main.d.ts +26 -0
- package/lib/i18n/zh/main.d.ts.map +1 -1
- package/lib/i18n/zh/main.js +26 -0
- package/lib/i18n/zh/main.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +29 -7
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +77 -38
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
- package/lib/ui/AcUiFileOpenPanel.d.ts +156 -0
- package/lib/ui/AcUiFileOpenPanel.d.ts.map +1 -0
- package/lib/ui/AcUiFileOpenPanel.js +695 -0
- package/lib/ui/AcUiFileOpenPanel.js.map +1 -0
- package/lib/ui/icons.d.ts +2 -0
- package/lib/ui/icons.d.ts.map +1 -1
- package/lib/ui/icons.js +2 -0
- package/lib/ui/icons.js.map +1 -1
- package/lib/ui/index.d.ts +1 -0
- package/lib/ui/index.d.ts.map +1 -1
- package/lib/ui/index.js +1 -0
- package/lib/ui/index.js.map +1 -1
- package/lib/util/AcApTextStyleFontPreload.d.ts +42 -0
- package/lib/util/AcApTextStyleFontPreload.d.ts.map +1 -0
- package/lib/util/AcApTextStyleFontPreload.js +149 -0
- package/lib/util/AcApTextStyleFontPreload.js.map +1 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/view/AcTrConvertQueue.d.ts +78 -0
- package/lib/view/AcTrConvertQueue.d.ts.map +1 -0
- package/lib/view/AcTrConvertQueue.js +143 -0
- package/lib/view/AcTrConvertQueue.js.map +1 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts +9 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
- package/lib/view/AcTrGroupWcsBboxAssert.js +12 -0
- package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
- package/lib/view/AcTrLayer.d.ts.map +1 -1
- package/lib/view/AcTrLayer.js +5 -1
- package/lib/view/AcTrLayer.js.map +1 -1
- package/lib/view/AcTrLayout.d.ts +5 -0
- package/lib/view/AcTrLayout.d.ts.map +1 -1
- package/lib/view/AcTrLayout.js +26 -0
- package/lib/view/AcTrLayout.js.map +1 -1
- package/lib/view/AcTrLayoutView.d.ts.map +1 -1
- package/lib/view/AcTrLayoutView.js +3 -1
- package/lib/view/AcTrLayoutView.js.map +1 -1
- package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -0
- package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
- package/lib/view/AcTrProgressiveOpenFitController.js +2 -1
- package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
- package/lib/view/AcTrScene.d.ts +7 -0
- package/lib/view/AcTrScene.d.ts.map +1 -1
- package/lib/view/AcTrScene.js +78 -48
- package/lib/view/AcTrScene.js.map +1 -1
- package/lib/view/AcTrView2d.d.ts +234 -18
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +1017 -296
- package/lib/view/AcTrView2d.js.map +1 -1
- package/package.json +17 -10
- package/src/find/AcApFindNavigator.ts +190 -0
- package/src/find/findDrawing.ts +211 -0
- package/src/find/findText.ts +595 -0
- package/src/find/index.ts +2 -0
- package/src/ui/icons.ts +4 -0
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text search over the entities of one layout (FIND).
|
|
3
|
+
*
|
|
4
|
+
* Shared by every UI (cad-simple-ui-plugin, the full Vue cad-viewer) so that
|
|
5
|
+
* both behave identically. Pure TypeScript with no runtime imports, published
|
|
6
|
+
* as the `@mlightcad/cad-simple-viewer/find` subpath.
|
|
7
|
+
*
|
|
8
|
+
* Searched fields:
|
|
9
|
+
* - `TEXT` — `textString`
|
|
10
|
+
* - `MTEXT` — `contents` with MTEXT formatting codes removed
|
|
11
|
+
* - `ATTRIB` — attribute value (`textString`) of every `INSERT` in the layout
|
|
12
|
+
* (the tag is reported for display but is not searched)
|
|
13
|
+
* - `TEXT` / `MTEXT` / `ATTRIB` inside the block definition of every `INSERT`
|
|
14
|
+
* (nested blocks included, anonymous/dynamic blocks too): title blocks,
|
|
15
|
+
* legends and labels are usually drawn this way
|
|
16
|
+
* - constant `ATTDEF` values inside block definitions (the only ATTDEFs that
|
|
17
|
+
* are drawn inside a block; templates get their value from an `ATTRIB`)
|
|
18
|
+
* - `DIMENSION` — the text of its dimension block when that block has a
|
|
19
|
+
* match, otherwise the override text (`dimensionText`)
|
|
20
|
+
* - `MULTILEADER` — its MTEXT contents
|
|
21
|
+
* - `ACAD_TABLE` — the cell text (from the table block when present,
|
|
22
|
+
* otherwise the cell strings)
|
|
23
|
+
*
|
|
24
|
+
* Every layout is visited in one synchronous pass per search. A hit inside a
|
|
25
|
+
* block, dimension or table selects the top-level entity of the layout that
|
|
26
|
+
* contains it, and carries the WCS extents of the matched text so the view
|
|
27
|
+
* can zoom to the text itself instead of to the whole block. Xrefs are not
|
|
28
|
+
* searched.
|
|
29
|
+
*
|
|
30
|
+
* The module is structural (no `instanceof`) so it can be unit tested with
|
|
31
|
+
* plain objects.
|
|
32
|
+
*/
|
|
33
|
+
var __assign = (this && this.__assign) || function () {
|
|
34
|
+
__assign = Object.assign || function(t) {
|
|
35
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
36
|
+
s = arguments[i];
|
|
37
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
38
|
+
t[p] = s[p];
|
|
39
|
+
}
|
|
40
|
+
return t;
|
|
41
|
+
};
|
|
42
|
+
return __assign.apply(this, arguments);
|
|
43
|
+
};
|
|
44
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
45
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
46
|
+
if (!m) return o;
|
|
47
|
+
var i = m.call(o), r, ar = [], e;
|
|
48
|
+
try {
|
|
49
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
50
|
+
}
|
|
51
|
+
catch (error) { e = { error: error }; }
|
|
52
|
+
finally {
|
|
53
|
+
try {
|
|
54
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
55
|
+
}
|
|
56
|
+
finally { if (e) throw e.error; }
|
|
57
|
+
}
|
|
58
|
+
return ar;
|
|
59
|
+
};
|
|
60
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
61
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
62
|
+
if (ar || !(i in from)) {
|
|
63
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
64
|
+
ar[i] = from[i];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
68
|
+
};
|
|
69
|
+
var __values = (this && this.__values) || function(o) {
|
|
70
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
71
|
+
if (m) return m.call(o);
|
|
72
|
+
if (o && typeof o.length === "number") return {
|
|
73
|
+
next: function () {
|
|
74
|
+
if (o && i >= o.length) o = void 0;
|
|
75
|
+
return { value: o && o[i++], done: !o };
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
79
|
+
};
|
|
80
|
+
/** Maximum number of hits returned by one search. */
|
|
81
|
+
export var ACAP_FIND_MAX_RESULTS = 500;
|
|
82
|
+
var DIACRITICS = /[̀-ͯ]/g;
|
|
83
|
+
var WHITESPACE = /\s+/g;
|
|
84
|
+
/**
|
|
85
|
+
* Normalizes text or a query for comparison.
|
|
86
|
+
*
|
|
87
|
+
* - always: NFKC, whitespace runs → one space, trimmed
|
|
88
|
+
* - unless `matchCase`: accents removed, lower-cased
|
|
89
|
+
*/
|
|
90
|
+
export function acapNormalizeFindText(value, matchCase) {
|
|
91
|
+
if (matchCase === void 0) { matchCase = false; }
|
|
92
|
+
var result = value.normalize('NFKC').replace(WHITESPACE, ' ').trim();
|
|
93
|
+
if (!matchCase) {
|
|
94
|
+
result = result.normalize('NFD').replace(DIACRITICS, '').toLowerCase();
|
|
95
|
+
}
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Converts MTEXT contents to plain text: removes formatting codes
|
|
100
|
+
* (`\f…;`, `\H…;`, `\C…;`, `\L \l \O \o \K \k`, braces), turns `\P` into a
|
|
101
|
+
* space, decodes `\~`, `\U+XXXX`, stacked fractions and `%%c %%d %%p`.
|
|
102
|
+
*/
|
|
103
|
+
export function acapMTextToPlainText(contents) {
|
|
104
|
+
var text = contents.replace(/\\(U\+[0-9a-fA-F]{4}|[PX~]|S[^;]*;|[fFHWTQCcAaRrp][^;]*;|[LlOoKk]|[\\{}])|[{}]/g, function (_match, code) {
|
|
105
|
+
if (!code)
|
|
106
|
+
return ''; // bare group brace
|
|
107
|
+
if (code.startsWith('U+'))
|
|
108
|
+
return String.fromCharCode(parseInt(code.slice(2), 16));
|
|
109
|
+
if (code === 'P' || code === 'X' || code === '~')
|
|
110
|
+
return ' ';
|
|
111
|
+
if (code === '\\' || code === '{' || code === '}')
|
|
112
|
+
return code;
|
|
113
|
+
if (code[0] === 'S') {
|
|
114
|
+
var stack = /^S([^;^#/]*)[\^#/]?([^;]*);$/.exec(code);
|
|
115
|
+
return stack ? (stack[2] ? "".concat(stack[1], "/").concat(stack[2]) : stack[1]) : '';
|
|
116
|
+
}
|
|
117
|
+
return ''; // font, height, colour, underline… codes
|
|
118
|
+
});
|
|
119
|
+
return decodeControlCodes(text).replace(WHITESPACE, ' ').trim();
|
|
120
|
+
}
|
|
121
|
+
/** Decodes `%%c`, `%%d`, `%%p` special-character codes. */
|
|
122
|
+
function decodeControlCodes(value) {
|
|
123
|
+
return value
|
|
124
|
+
.replace(/%%[cC]/g, 'Ø')
|
|
125
|
+
.replace(/%%[dD]/g, '°')
|
|
126
|
+
.replace(/%%[pP]/g, '±');
|
|
127
|
+
}
|
|
128
|
+
function plainText(value) {
|
|
129
|
+
return typeof value === 'string'
|
|
130
|
+
? decodeControlCodes(value)
|
|
131
|
+
.normalize('NFKC')
|
|
132
|
+
.replace(WHITESPACE, ' ')
|
|
133
|
+
.trim()
|
|
134
|
+
: '';
|
|
135
|
+
}
|
|
136
|
+
function isLayerSearchable(db, layerName, cache) {
|
|
137
|
+
var _a;
|
|
138
|
+
var cached = cache.get(layerName);
|
|
139
|
+
if (cached !== undefined)
|
|
140
|
+
return cached;
|
|
141
|
+
var layer = (_a = db.tables.layerTable) === null || _a === void 0 ? void 0 : _a.getAt(layerName);
|
|
142
|
+
var searchable = !((layer === null || layer === void 0 ? void 0 : layer.isOff) || (layer === null || layer === void 0 ? void 0 : layer.isFrozen));
|
|
143
|
+
cache.set(layerName, searchable);
|
|
144
|
+
return searchable;
|
|
145
|
+
}
|
|
146
|
+
function pointOf(entity) {
|
|
147
|
+
var _a, _b, _c, _d;
|
|
148
|
+
var p = (_d = (_c = (_b = (_a = entity.position) !== null && _a !== void 0 ? _a : entity.location) !== null && _b !== void 0 ? _b : entity.textLocation) !== null && _c !== void 0 ? _c : entity.textPosition) !== null && _d !== void 0 ? _d : { x: 0, y: 0 };
|
|
149
|
+
return { x: Number(p.x) || 0, y: Number(p.y) || 0 };
|
|
150
|
+
}
|
|
151
|
+
/** `a × b` for column-major 4x4 matrices. */
|
|
152
|
+
function multiply(a, b) {
|
|
153
|
+
var out = new Array(16);
|
|
154
|
+
for (var col = 0; col < 4; col++) {
|
|
155
|
+
for (var row = 0; row < 4; row++) {
|
|
156
|
+
var sum = 0;
|
|
157
|
+
for (var k = 0; k < 4; k++)
|
|
158
|
+
sum += a[k * 4 + row] * b[col * 4 + k];
|
|
159
|
+
out[col * 4 + row] = sum;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return out;
|
|
163
|
+
}
|
|
164
|
+
function transformPoint(m, p) {
|
|
165
|
+
if (!m)
|
|
166
|
+
return { x: p.x, y: p.y };
|
|
167
|
+
var z = Number(p.z) || 0;
|
|
168
|
+
return {
|
|
169
|
+
x: m[0] * p.x + m[4] * p.y + m[8] * z + m[12],
|
|
170
|
+
y: m[1] * p.x + m[5] * p.y + m[9] * z + m[13]
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function matrixOf(entity) {
|
|
174
|
+
var _a;
|
|
175
|
+
try {
|
|
176
|
+
var elements = (_a = entity.blockTransform) === null || _a === void 0 ? void 0 : _a.elements;
|
|
177
|
+
return Array.isArray(elements) && elements.length === 16
|
|
178
|
+
? elements
|
|
179
|
+
: undefined;
|
|
180
|
+
}
|
|
181
|
+
catch (_b) {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** WCS box of a (possibly nested) entity, or undefined when unknown. */
|
|
186
|
+
function extentsOf(entity, m) {
|
|
187
|
+
var _a, _b;
|
|
188
|
+
var box;
|
|
189
|
+
try {
|
|
190
|
+
box = entity.geometricExtents;
|
|
191
|
+
}
|
|
192
|
+
catch (_c) {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
if (!box || !isFinite((_a = box.min) === null || _a === void 0 ? void 0 : _a.x) || !isFinite((_b = box.max) === null || _b === void 0 ? void 0 : _b.x))
|
|
196
|
+
return undefined;
|
|
197
|
+
if (!m)
|
|
198
|
+
return { min: __assign({}, box.min), max: __assign({}, box.max) };
|
|
199
|
+
var corners = [
|
|
200
|
+
{ x: box.min.x, y: box.min.y },
|
|
201
|
+
{ x: box.max.x, y: box.min.y },
|
|
202
|
+
{ x: box.min.x, y: box.max.y },
|
|
203
|
+
{ x: box.max.x, y: box.max.y }
|
|
204
|
+
].map(function (p) { return transformPoint(m, p); });
|
|
205
|
+
return {
|
|
206
|
+
min: {
|
|
207
|
+
x: Math.min.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.x; })), false)),
|
|
208
|
+
y: Math.min.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.y; })), false))
|
|
209
|
+
},
|
|
210
|
+
max: {
|
|
211
|
+
x: Math.max.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.x; })), false)),
|
|
212
|
+
y: Math.max.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.y; })), false))
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/** Maximum nesting of blocks inside blocks that is searched. */
|
|
217
|
+
var MAX_BLOCK_DEPTH = 8;
|
|
218
|
+
/**
|
|
219
|
+
* Finds text in the entities of one block table record (a layout).
|
|
220
|
+
*
|
|
221
|
+
* Entities that are invisible or sit on an off/frozen layer are skipped so
|
|
222
|
+
* that results always correspond to something the user can see.
|
|
223
|
+
*
|
|
224
|
+
* @param db - Database owning the layout.
|
|
225
|
+
* @param layoutBtrId - Block table record id of the layout (model/paper space).
|
|
226
|
+
* @param query - User query; blank queries return no hits.
|
|
227
|
+
*/
|
|
228
|
+
export function acapFindTextInLayout(db, layoutBtrId, query, options) {
|
|
229
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
230
|
+
var _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
231
|
+
if (options === void 0) { options = {}; }
|
|
232
|
+
var matchCase = options.matchCase === true;
|
|
233
|
+
var max = (_d = options.maxResults) !== null && _d !== void 0 ? _d : ACAP_FIND_MAX_RESULTS;
|
|
234
|
+
var needle = acapNormalizeFindText(query, matchCase);
|
|
235
|
+
var result = { hits: [], truncated: false };
|
|
236
|
+
if (!needle)
|
|
237
|
+
return result;
|
|
238
|
+
var btr = db.tables.blockTable.getIdAt(layoutBtrId);
|
|
239
|
+
if (!btr)
|
|
240
|
+
return result;
|
|
241
|
+
var layers = new Map();
|
|
242
|
+
var matches = function (text) {
|
|
243
|
+
return text !== '' && acapNormalizeFindText(text, matchCase).includes(needle);
|
|
244
|
+
};
|
|
245
|
+
/** Set once the result cap is exceeded; stops every loop. */
|
|
246
|
+
var full = false;
|
|
247
|
+
var push = function (hit) {
|
|
248
|
+
if (result.hits.length >= max) {
|
|
249
|
+
result.truncated = true;
|
|
250
|
+
full = true;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
result.hits.push(hit);
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Hit for text nested in `owner` (block, dimension or table). `path` keeps
|
|
257
|
+
* the key unique when the same block is inserted several times.
|
|
258
|
+
*/
|
|
259
|
+
var pushNested = function (owner, path, entity, kind, text, m, extra) {
|
|
260
|
+
if (extra === void 0) { extra = {}; }
|
|
261
|
+
var extents = extentsOf(entity, m);
|
|
262
|
+
push(__assign(__assign({ entityId: owner.entity.objectId, textEntityId: "".concat(path, "/").concat(entity.objectId), kind: kind, text: text, layer: owner.layer, position: transformPoint(m, pointOf(entity)) }, (extents ? { extents: extents } : {})), extra));
|
|
263
|
+
};
|
|
264
|
+
/** Searches the entities of a block definition drawn by `owner`. */
|
|
265
|
+
var visitBlock = function (entities, owner, m, path, depth, stack) {
|
|
266
|
+
var e_4, _a, e_5, _b;
|
|
267
|
+
var _c, _d, _e, _f, _g;
|
|
268
|
+
try {
|
|
269
|
+
for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
|
|
270
|
+
var entity = entities_1_1.value;
|
|
271
|
+
if (full)
|
|
272
|
+
return;
|
|
273
|
+
var type = entity.dxfTypeName;
|
|
274
|
+
if (type !== 'TEXT' &&
|
|
275
|
+
type !== 'MTEXT' &&
|
|
276
|
+
type !== 'INSERT' &&
|
|
277
|
+
type !== 'ATTRIB' &&
|
|
278
|
+
type !== 'ATTDEF') {
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
if (entity.visibility === false)
|
|
282
|
+
continue;
|
|
283
|
+
// Only constant ATTDEFs are drawn inside a block (their default value
|
|
284
|
+
// is geometry); the others get their value from an ATTRIB of the INSERT.
|
|
285
|
+
if (type === 'ATTDEF' &&
|
|
286
|
+
(entity.isInvisible ||
|
|
287
|
+
!(entity.isConst || entity.isConstMTextAttribute))) {
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
// Layer 0 inside a block inherits the owner's layer (already checked).
|
|
291
|
+
if (entity.layer &&
|
|
292
|
+
entity.layer !== '0' &&
|
|
293
|
+
!isLayerSearchable(db, entity.layer, layers)) {
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
if (type === 'INSERT') {
|
|
297
|
+
if (depth >= MAX_BLOCK_DEPTH)
|
|
298
|
+
continue;
|
|
299
|
+
var inner = matrixOf(entity);
|
|
300
|
+
var nested = m && inner ? multiply(m, inner) : (inner !== null && inner !== void 0 ? inner : m);
|
|
301
|
+
var nestedPath = "".concat(path, "/").concat(entity.objectId);
|
|
302
|
+
try {
|
|
303
|
+
for (var _h = (e_5 = void 0, __values((_d = (_c = entity.attributeIterator) === null || _c === void 0 ? void 0 : _c.call(entity)) !== null && _d !== void 0 ? _d : [])), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
304
|
+
var attribute = _j.value;
|
|
305
|
+
if (full)
|
|
306
|
+
return;
|
|
307
|
+
if (attribute.visibility === false || attribute.isInvisible)
|
|
308
|
+
continue;
|
|
309
|
+
var text_1 = plainText(attribute.textString);
|
|
310
|
+
if (!matches(text_1))
|
|
311
|
+
continue;
|
|
312
|
+
// Attributes are stored in the coordinates of the block that holds
|
|
313
|
+
// the nested INSERT, like the INSERT itself.
|
|
314
|
+
pushNested(owner, nestedPath, attribute, 'block', text_1, m, {
|
|
315
|
+
tag: attribute.tag,
|
|
316
|
+
blockName: entity.blockName
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
321
|
+
finally {
|
|
322
|
+
try {
|
|
323
|
+
if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
|
|
324
|
+
}
|
|
325
|
+
finally { if (e_5) throw e_5.error; }
|
|
326
|
+
}
|
|
327
|
+
var name_1 = entity.blockName;
|
|
328
|
+
if (!name_1 || stack.has(name_1))
|
|
329
|
+
continue;
|
|
330
|
+
var def = (_f = (_e = db.tables.blockTable).getAt) === null || _f === void 0 ? void 0 : _f.call(_e, name_1);
|
|
331
|
+
if (!def)
|
|
332
|
+
continue;
|
|
333
|
+
stack.add(name_1);
|
|
334
|
+
visitBlock(def.newIterator(), owner, nested, nestedPath, depth + 1, stack);
|
|
335
|
+
stack.delete(name_1);
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
var isMText = type === 'MTEXT' ||
|
|
339
|
+
(type === 'ATTDEF' && entity.isConstMTextAttribute && entity.mtext);
|
|
340
|
+
var text = isMText
|
|
341
|
+
? acapMTextToPlainText(String((_g = (type === 'MTEXT' ? entity : entity.mtext).contents) !== null && _g !== void 0 ? _g : ''))
|
|
342
|
+
: plainText(entity.textString);
|
|
343
|
+
if (!matches(text))
|
|
344
|
+
continue;
|
|
345
|
+
pushNested(owner, path, entity, owner.kind, text, m, type === 'ATTDEF' ? { tag: entity.tag } : {});
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
349
|
+
finally {
|
|
350
|
+
try {
|
|
351
|
+
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
352
|
+
}
|
|
353
|
+
finally { if (e_4) throw e_4.error; }
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
/** Block definition drawn by a DIMENSION / ACAD_TABLE, when present. */
|
|
357
|
+
var ownBlock = function (entity) {
|
|
358
|
+
var _a, _b;
|
|
359
|
+
try {
|
|
360
|
+
// ACAD_TABLE resolves its anonymous block itself.
|
|
361
|
+
var table = entity.blockTableRecord;
|
|
362
|
+
if (table === null || table === void 0 ? void 0 : table.newIterator)
|
|
363
|
+
return table;
|
|
364
|
+
var id = entity.dimBlockId;
|
|
365
|
+
var byId = id ? db.tables.blockTable.getIdAt(id) : undefined;
|
|
366
|
+
if (byId)
|
|
367
|
+
return byId;
|
|
368
|
+
var name_2 = entity.blockName;
|
|
369
|
+
return name_2 ? (_b = (_a = db.tables.blockTable).getAt) === null || _b === void 0 ? void 0 : _b.call(_a, name_2) : undefined;
|
|
370
|
+
}
|
|
371
|
+
catch (_c) {
|
|
372
|
+
return undefined;
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
try {
|
|
376
|
+
for (var _o = __values(btr.newIterator()), _p = _o.next(); !_p.done; _p = _o.next()) {
|
|
377
|
+
var entity = _p.value;
|
|
378
|
+
if (full)
|
|
379
|
+
break;
|
|
380
|
+
var type = entity.dxfTypeName;
|
|
381
|
+
if (type !== 'TEXT' &&
|
|
382
|
+
type !== 'MTEXT' &&
|
|
383
|
+
type !== 'INSERT' &&
|
|
384
|
+
type !== 'DIMENSION' &&
|
|
385
|
+
type !== 'MULTILEADER' &&
|
|
386
|
+
type !== 'ACAD_TABLE') {
|
|
387
|
+
continue;
|
|
388
|
+
}
|
|
389
|
+
if (entity.visibility === false)
|
|
390
|
+
continue;
|
|
391
|
+
if (!isLayerSearchable(db, entity.layer, layers))
|
|
392
|
+
continue;
|
|
393
|
+
if (type === 'INSERT') {
|
|
394
|
+
try {
|
|
395
|
+
for (var _q = (e_2 = void 0, __values((_f = (_e = entity.attributeIterator) === null || _e === void 0 ? void 0 : _e.call(entity)) !== null && _f !== void 0 ? _f : [])), _r = _q.next(); !_r.done; _r = _q.next()) {
|
|
396
|
+
var attribute = _r.value;
|
|
397
|
+
if (full)
|
|
398
|
+
break;
|
|
399
|
+
if (attribute.visibility === false || attribute.isInvisible)
|
|
400
|
+
continue;
|
|
401
|
+
var text_2 = plainText(attribute.textString);
|
|
402
|
+
if (!matches(text_2))
|
|
403
|
+
continue;
|
|
404
|
+
push({
|
|
405
|
+
entityId: entity.objectId,
|
|
406
|
+
textEntityId: attribute.objectId,
|
|
407
|
+
kind: 'attribute',
|
|
408
|
+
text: text_2,
|
|
409
|
+
tag: attribute.tag,
|
|
410
|
+
blockName: entity.blockName,
|
|
411
|
+
layer: entity.layer,
|
|
412
|
+
position: pointOf(attribute)
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
417
|
+
finally {
|
|
418
|
+
try {
|
|
419
|
+
if (_r && !_r.done && (_b = _q.return)) _b.call(_q);
|
|
420
|
+
}
|
|
421
|
+
finally { if (e_2) throw e_2.error; }
|
|
422
|
+
}
|
|
423
|
+
var name_3 = entity.blockName;
|
|
424
|
+
var def = name_3 ? (_h = (_g = db.tables.blockTable).getAt) === null || _h === void 0 ? void 0 : _h.call(_g, name_3) : undefined;
|
|
425
|
+
if (def && !full) {
|
|
426
|
+
visitBlock(def.newIterator(), { entity: entity, kind: 'block', layer: entity.layer }, matrixOf(entity), String(entity.objectId), 1, new Set([name_3]));
|
|
427
|
+
}
|
|
428
|
+
continue;
|
|
429
|
+
}
|
|
430
|
+
if (type === 'DIMENSION' || type === 'ACAD_TABLE') {
|
|
431
|
+
var kind = type === 'DIMENSION' ? 'dimension' : 'table';
|
|
432
|
+
var owner = { entity: entity, kind: kind, layer: entity.layer };
|
|
433
|
+
var block = ownBlock(entity);
|
|
434
|
+
var before = result.hits.length;
|
|
435
|
+
if (block) {
|
|
436
|
+
// Dimension / table blocks are already in WCS.
|
|
437
|
+
visitBlock(block.newIterator(), owner, undefined, String(entity.objectId), 1, new Set());
|
|
438
|
+
}
|
|
439
|
+
if (block && result.hits.length > before)
|
|
440
|
+
continue;
|
|
441
|
+
// No block, or a block without a matching text: use the stored strings
|
|
442
|
+
// (a dimension override can differ from what the block text shows).
|
|
443
|
+
var texts = [];
|
|
444
|
+
if (type === 'DIMENSION') {
|
|
445
|
+
var override = String((_j = entity.dimensionText) !== null && _j !== void 0 ? _j : '');
|
|
446
|
+
if (override && override !== '<>' && override !== ' ') {
|
|
447
|
+
texts.push(acapMTextToPlainText(override.replace('<>', '')));
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
var rows = Number(entity.numRows) || 0;
|
|
452
|
+
var cols = Number(entity.numColumns) || 0;
|
|
453
|
+
for (var r = 0; r < rows; r++) {
|
|
454
|
+
for (var c = 0; c < cols; c++) {
|
|
455
|
+
try {
|
|
456
|
+
texts.push(acapMTextToPlainText(String((_l = (_k = entity.textString) === null || _k === void 0 ? void 0 : _k.call(entity, r, c)) !== null && _l !== void 0 ? _l : '')));
|
|
457
|
+
}
|
|
458
|
+
catch (_s) {
|
|
459
|
+
// Cell without text content.
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
try {
|
|
465
|
+
for (var texts_1 = (e_3 = void 0, __values(texts)), texts_1_1 = texts_1.next(); !texts_1_1.done; texts_1_1 = texts_1.next()) {
|
|
466
|
+
var text_3 = texts_1_1.value;
|
|
467
|
+
if (full)
|
|
468
|
+
break;
|
|
469
|
+
if (!matches(text_3))
|
|
470
|
+
continue;
|
|
471
|
+
push({
|
|
472
|
+
entityId: entity.objectId,
|
|
473
|
+
textEntityId: "".concat(entity.objectId, "/").concat(result.hits.length),
|
|
474
|
+
kind: kind,
|
|
475
|
+
text: text_3,
|
|
476
|
+
layer: entity.layer,
|
|
477
|
+
position: pointOf(entity)
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
482
|
+
finally {
|
|
483
|
+
try {
|
|
484
|
+
if (texts_1_1 && !texts_1_1.done && (_c = texts_1.return)) _c.call(texts_1);
|
|
485
|
+
}
|
|
486
|
+
finally { if (e_3) throw e_3.error; }
|
|
487
|
+
}
|
|
488
|
+
continue;
|
|
489
|
+
}
|
|
490
|
+
var text = type === 'MTEXT' || type === 'MULTILEADER'
|
|
491
|
+
? acapMTextToPlainText(String((_m = entity.contents) !== null && _m !== void 0 ? _m : ''))
|
|
492
|
+
: plainText(entity.textString);
|
|
493
|
+
if (!matches(text))
|
|
494
|
+
continue;
|
|
495
|
+
push({
|
|
496
|
+
entityId: entity.objectId,
|
|
497
|
+
textEntityId: entity.objectId,
|
|
498
|
+
kind: type === 'MTEXT' ? 'mtext' : type === 'MULTILEADER' ? 'leader' : 'text',
|
|
499
|
+
text: text,
|
|
500
|
+
layer: entity.layer,
|
|
501
|
+
position: pointOf(entity)
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
506
|
+
finally {
|
|
507
|
+
try {
|
|
508
|
+
if (_p && !_p.done && (_a = _o.return)) _a.call(_o);
|
|
509
|
+
}
|
|
510
|
+
finally { if (e_1) throw e_1.error; }
|
|
511
|
+
}
|
|
512
|
+
return result;
|
|
513
|
+
}
|
|
514
|
+
/** Returns a short excerpt of `text` centred on the first match of `query`. */
|
|
515
|
+
export function acapFindExcerpt(text, query, matchCase, width) {
|
|
516
|
+
if (matchCase === void 0) { matchCase = false; }
|
|
517
|
+
if (width === void 0) { width = 60; }
|
|
518
|
+
if (text.length <= width)
|
|
519
|
+
return text;
|
|
520
|
+
var needle = acapNormalizeFindText(query, matchCase);
|
|
521
|
+
// Normalization may change length (accents, NFKC); fall back to the head.
|
|
522
|
+
var index = acapNormalizeFindText(text, matchCase).indexOf(needle);
|
|
523
|
+
var start = Math.max(0, Math.min(index - 15, text.length - width));
|
|
524
|
+
var slice = text.slice(start, start + width);
|
|
525
|
+
return "".concat(start > 0 ? '…' : '').concat(slice).concat(start + width < text.length ? '…' : '');
|
|
526
|
+
}
|
|
527
|
+
//# sourceMappingURL=findText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findText.js","sourceRoot":"","sources":["../../src/find/findText.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/find/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/find/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
|
package/lib/i18n/ar/main.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ declare const _default: {
|
|
|
36
36
|
fetchingDrawingFile: string;
|
|
37
37
|
exportingDxf: string;
|
|
38
38
|
exportingPdf: string;
|
|
39
|
+
exportingSvg: string;
|
|
39
40
|
calculatingSmartExtents: string;
|
|
40
41
|
importingPdf: string;
|
|
41
42
|
exportingEntityPreview: string;
|
|
@@ -162,6 +163,31 @@ declare const _default: {
|
|
|
162
163
|
hideForever: string;
|
|
163
164
|
ok: string;
|
|
164
165
|
};
|
|
166
|
+
dataSource: {
|
|
167
|
+
open: string;
|
|
168
|
+
local: string;
|
|
169
|
+
url: string;
|
|
170
|
+
openFrom: string;
|
|
171
|
+
signInTo: string;
|
|
172
|
+
signOutOf: string;
|
|
173
|
+
signOutOfAccount: string;
|
|
174
|
+
urlDialogTitle: string;
|
|
175
|
+
urlDialogHint: string;
|
|
176
|
+
urlPlaceholder: string;
|
|
177
|
+
cancel: string;
|
|
178
|
+
onedrive: string;
|
|
179
|
+
googledrive: string;
|
|
180
|
+
or: string;
|
|
181
|
+
dropFile: string;
|
|
182
|
+
browse: string;
|
|
183
|
+
dropOrBrowse: string;
|
|
184
|
+
newDrawing: string;
|
|
185
|
+
source: string;
|
|
186
|
+
unavailable: string;
|
|
187
|
+
selectFile: string;
|
|
188
|
+
signInRequired: string;
|
|
189
|
+
downloading: string;
|
|
190
|
+
};
|
|
165
191
|
};
|
|
166
192
|
export default _default;
|
|
167
193
|
//# sourceMappingURL=main.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/i18n/ar/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/i18n/ar/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA2MC"}
|
package/lib/i18n/ar/main.js
CHANGED
|
@@ -36,6 +36,7 @@ export default {
|
|
|
36
36
|
fetchingDrawingFile: 'جارٍ جلب ملف الرسم ...',
|
|
37
37
|
exportingDxf: 'جارٍ تصدير DXF ...',
|
|
38
38
|
exportingPdf: 'جارٍ تصدير PDF ...',
|
|
39
|
+
exportingSvg: 'جارٍ تصدير SVG ...',
|
|
39
40
|
calculatingSmartExtents: 'جارٍ حساب الملاءمة الذكية ...',
|
|
40
41
|
importingPdf: 'جارٍ استيراد PDF ...',
|
|
41
42
|
exportingEntityPreview: 'جارٍ تصدير الصورة ...',
|
|
@@ -161,6 +162,31 @@ export default {
|
|
|
161
162
|
snoozeToday: 'لا تذكرني اليوم',
|
|
162
163
|
hideForever: 'لا تذكرني مرة أخرى',
|
|
163
164
|
ok: 'فهمت'
|
|
165
|
+
},
|
|
166
|
+
dataSource: {
|
|
167
|
+
open: 'فتح',
|
|
168
|
+
local: 'ملف محلي',
|
|
169
|
+
url: 'من عنوان URL',
|
|
170
|
+
openFrom: 'فتح من {name}',
|
|
171
|
+
signInTo: 'تسجيل الدخول إلى {name}',
|
|
172
|
+
signOutOf: 'تسجيل الخروج من {name}',
|
|
173
|
+
signOutOfAccount: 'تسجيل الخروج من {name} ({account})',
|
|
174
|
+
urlDialogTitle: 'فتح من عنوان URL',
|
|
175
|
+
urlDialogHint: 'أدخل عنوان URL لملف .dwg أو .dxf.',
|
|
176
|
+
urlPlaceholder: 'https://example.com/drawing.dwg',
|
|
177
|
+
cancel: 'إلغاء',
|
|
178
|
+
onedrive: 'OneDrive',
|
|
179
|
+
googledrive: 'Google Drive',
|
|
180
|
+
or: 'أو',
|
|
181
|
+
dropFile: 'أسقط ملفًا هنا أو',
|
|
182
|
+
browse: 'تصفح',
|
|
183
|
+
dropOrBrowse: 'أسقط ملف DWG أو DXF هنا، أو تصفح',
|
|
184
|
+
newDrawing: 'رسم جديد',
|
|
185
|
+
source: 'المصدر',
|
|
186
|
+
unavailable: 'هذا المصدر غير متاح حاليًا.',
|
|
187
|
+
selectFile: 'اختيار ملف',
|
|
188
|
+
signInRequired: 'سجّل الدخول أولاً لاختيار ملف.',
|
|
189
|
+
downloading: 'جارٍ تنزيل الملف ...'
|
|
164
190
|
}
|
|
165
191
|
};
|
|
166
192
|
//# sourceMappingURL=main.js.map
|