@mlightcad/cad-editor 1.8.0-preview.2 → 1.8.0-preview.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +425 -425
  3. package/dist/app/app.d.ts.map +1 -1
  4. package/dist/app/paletteHost.d.ts +11 -0
  5. package/dist/app/paletteHost.d.ts.map +1 -0
  6. package/dist/app/register.d.ts +6 -4
  7. package/dist/app/register.d.ts.map +1 -1
  8. package/dist/app/store.d.ts +15 -0
  9. package/dist/app/store.d.ts.map +1 -1
  10. package/dist/cad-editor.css +1 -1
  11. package/dist/cad-editor.js +34133 -20414
  12. package/dist/command/AcApBDetectCmd.d.ts +49 -0
  13. package/dist/command/AcApBDetectCmd.d.ts.map +1 -0
  14. package/dist/command/AcApBSearchCmd.d.ts +46 -0
  15. package/dist/command/AcApBSearchCmd.d.ts.map +1 -0
  16. package/dist/command/AcApClassicGroupCmd.d.ts +8 -0
  17. package/dist/command/AcApClassicGroupCmd.d.ts.map +1 -0
  18. package/dist/command/AcApCountListCmd.d.ts.map +1 -1
  19. package/dist/command/AcApFindCmd.d.ts.map +1 -1
  20. package/dist/command/AcApInsertPaletteCmd.d.ts.map +1 -1
  21. package/dist/command/AcApLayerStateCmd.d.ts.map +1 -1
  22. package/dist/command/AcApMLeaderStyleCmd.d.ts +8 -0
  23. package/dist/command/AcApMLeaderStyleCmd.d.ts.map +1 -0
  24. package/dist/command/AcApMarkupPanelCmd.d.ts.map +1 -1
  25. package/dist/command/AcApMeasurementPanelCmd.d.ts.map +1 -1
  26. package/dist/command/AcApMemCmd.d.ts.map +1 -1
  27. package/dist/command/AcApNewViewCmd.d.ts +8 -0
  28. package/dist/command/AcApNewViewCmd.d.ts.map +1 -0
  29. package/dist/command/AcApOpenPerfCmd.d.ts.map +1 -1
  30. package/dist/command/AcApPropertiesCmd.d.ts.map +1 -1
  31. package/dist/command/AcApUcsManCmd.d.ts +8 -0
  32. package/dist/command/AcApUcsManCmd.d.ts.map +1 -0
  33. package/dist/command/AcApViewCmd.d.ts +8 -0
  34. package/dist/command/AcApViewCmd.d.ts.map +1 -0
  35. package/dist/command/acuiCommandPaletteTab.d.ts +13 -0
  36. package/dist/command/acuiCommandPaletteTab.d.ts.map +1 -0
  37. package/dist/command/index.d.ts +7 -0
  38. package/dist/command/index.d.ts.map +1 -1
  39. package/dist/component/MlCadViewer.vue.d.ts.map +1 -1
  40. package/dist/component/common/MlBaseDialog.vue.d.ts +20 -1
  41. package/dist/component/common/MlBaseDialog.vue.d.ts.map +1 -1
  42. package/dist/component/common/MlLayerSelect.vue.d.ts.map +1 -1
  43. package/dist/component/common/MlLayerTable.vue.d.ts.map +1 -1
  44. package/dist/component/dialog/MlBConvertDlg.vue.d.ts +24 -0
  45. package/dist/component/dialog/MlBConvertDlg.vue.d.ts.map +1 -0
  46. package/dist/component/dialog/MlClassicGroupDlg.vue.d.ts +4 -0
  47. package/dist/component/dialog/MlClassicGroupDlg.vue.d.ts.map +1 -0
  48. package/dist/component/dialog/MlDimStyleDlg.vue.d.ts.map +1 -1
  49. package/dist/component/dialog/MlExportHtmlDlg.vue.d.ts +4 -0
  50. package/dist/component/dialog/MlExportHtmlDlg.vue.d.ts.map +1 -1
  51. package/dist/component/dialog/MlExportPdfDlg.vue.d.ts +4 -0
  52. package/dist/component/dialog/MlExportPdfDlg.vue.d.ts.map +1 -1
  53. package/dist/component/dialog/MlMLeaderStyleDlg.vue.d.ts +19 -0
  54. package/dist/component/dialog/MlMLeaderStyleDlg.vue.d.ts.map +1 -0
  55. package/dist/component/dialog/MlMLeaderStylePreview.vue.d.ts +36 -0
  56. package/dist/component/dialog/MlMLeaderStylePreview.vue.d.ts.map +1 -0
  57. package/dist/component/dialog/MlNewViewDlg.vue.d.ts +19 -0
  58. package/dist/component/dialog/MlNewViewDlg.vue.d.ts.map +1 -0
  59. package/dist/component/dialog/MlOrderGroupDlg.vue.d.ts +22 -0
  60. package/dist/component/dialog/MlOrderGroupDlg.vue.d.ts.map +1 -0
  61. package/dist/component/dialog/MlUcsDetailsDlg.vue.d.ts +20 -0
  62. package/dist/component/dialog/MlUcsDetailsDlg.vue.d.ts.map +1 -0
  63. package/dist/component/dialog/MlUcsManagerDlg.vue.d.ts +19 -0
  64. package/dist/component/dialog/MlUcsManagerDlg.vue.d.ts.map +1 -0
  65. package/dist/component/dialog/MlViewManagerDlg.vue.d.ts +19 -0
  66. package/dist/component/dialog/MlViewManagerDlg.vue.d.ts.map +1 -0
  67. package/dist/component/dialog/dimStylePreview.d.ts +4 -59
  68. package/dist/component/dialog/dimStylePreview.d.ts.map +1 -1
  69. package/dist/component/dialog/index.d.ts +8 -0
  70. package/dist/component/dialog/index.d.ts.map +1 -1
  71. package/dist/component/dialog/mleaderStyleForm.d.ts +87 -0
  72. package/dist/component/dialog/mleaderStyleForm.d.ts.map +1 -0
  73. package/dist/component/dialog/mleaderStylePreview.d.ts +59 -0
  74. package/dist/component/dialog/mleaderStylePreview.d.ts.map +1 -0
  75. package/dist/component/palette/MlBDetectPalette.vue.d.ts +4 -0
  76. package/dist/component/palette/MlBDetectPalette.vue.d.ts.map +1 -0
  77. package/dist/component/palette/MlBSearchPalette.vue.d.ts +4 -0
  78. package/dist/component/palette/MlBSearchPalette.vue.d.ts.map +1 -0
  79. package/dist/component/palette/MlDesignReviewPalette.vue.d.ts.map +1 -1
  80. package/dist/component/palette/MlEntityProperties.vue.d.ts.map +1 -1
  81. package/dist/component/palette/MlFindPalette.vue.d.ts.map +1 -1
  82. package/dist/component/palette/MlHostedPanel.vue.d.ts +20 -0
  83. package/dist/component/palette/MlHostedPanel.vue.d.ts.map +1 -0
  84. package/dist/component/palette/MlLayerList.vue.d.ts.map +1 -1
  85. package/dist/component/palette/MlMeasurementPalette.vue.d.ts.map +1 -1
  86. package/dist/component/palette/MlMemoryProfile.vue.d.ts.map +1 -1
  87. package/dist/component/palette/MlMissingResources.vue.d.ts.map +1 -1
  88. package/dist/component/palette/MlPaletteManager.vue.d.ts.map +1 -1
  89. package/dist/component/ribbon/MlRibbonCommands.vue.d.ts.map +1 -1
  90. package/dist/component/ribbon/MlRibbonTextHeightButton.vue.d.ts +1 -1
  91. package/dist/component/statusBar/MlLayoutTabs.vue.d.ts.map +1 -1
  92. package/dist/component/statusBar/MlOsnapButton.vue.d.ts.map +1 -1
  93. package/dist/component/statusBar/MlPolarTrackingButton.vue.d.ts.map +1 -1
  94. package/dist/composable/index.d.ts +3 -3
  95. package/dist/composable/index.d.ts.map +1 -1
  96. package/dist/composable/namedViewsRevision.d.ts +7 -0
  97. package/dist/composable/namedViewsRevision.d.ts.map +1 -0
  98. package/dist/composable/openMissingResourcesPalette.d.ts.map +1 -1
  99. package/dist/composable/useBDetect.d.ts +104 -0
  100. package/dist/composable/useBDetect.d.ts.map +1 -0
  101. package/dist/composable/useBSearch.d.ts +216 -0
  102. package/dist/composable/useBSearch.d.ts.map +1 -0
  103. package/dist/composable/useLocale.d.ts +11 -1
  104. package/dist/composable/useLocale.d.ts.map +1 -1
  105. package/dist/composable/useMLeaderStyle.d.ts +30 -0
  106. package/dist/composable/useMLeaderStyle.d.ts.map +1 -0
  107. package/dist/locale/ar/command.d.ts +13 -0
  108. package/dist/locale/ar/command.d.ts.map +1 -1
  109. package/dist/locale/ar/dialog.d.ts +271 -0
  110. package/dist/locale/ar/dialog.d.ts.map +1 -1
  111. package/dist/locale/ar/main.d.ts +257 -108
  112. package/dist/locale/ar/main.d.ts.map +1 -1
  113. package/dist/locale/cs/command.d.ts +13 -0
  114. package/dist/locale/cs/command.d.ts.map +1 -1
  115. package/dist/locale/cs/dialog.d.ts +271 -0
  116. package/dist/locale/cs/dialog.d.ts.map +1 -1
  117. package/dist/locale/cs/main.d.ts +155 -2
  118. package/dist/locale/cs/main.d.ts.map +1 -1
  119. package/dist/locale/en/command.d.ts +13 -0
  120. package/dist/locale/en/command.d.ts.map +1 -1
  121. package/dist/locale/en/dialog.d.ts +271 -0
  122. package/dist/locale/en/dialog.d.ts.map +1 -1
  123. package/dist/locale/en/main.d.ts +151 -2
  124. package/dist/locale/en/main.d.ts.map +1 -1
  125. package/dist/locale/i18n.d.ts.map +1 -1
  126. package/dist/locale/index.d.ts +1 -0
  127. package/dist/locale/index.d.ts.map +1 -1
  128. package/dist/locale/ja/command.d.ts +62 -0
  129. package/dist/locale/ja/command.d.ts.map +1 -0
  130. package/dist/locale/ja/dialog.d.ts +835 -0
  131. package/dist/locale/ja/dialog.d.ts.map +1 -0
  132. package/dist/locale/ja/entity.d.ts +590 -0
  133. package/dist/locale/ja/entity.d.ts.map +1 -0
  134. package/dist/locale/ja/main.d.ts +1229 -0
  135. package/dist/locale/ja/main.d.ts.map +1 -0
  136. package/dist/locale/ko/command.d.ts +62 -0
  137. package/dist/locale/ko/command.d.ts.map +1 -0
  138. package/dist/locale/ko/dialog.d.ts +835 -0
  139. package/dist/locale/ko/dialog.d.ts.map +1 -0
  140. package/dist/locale/ko/entity.d.ts +590 -0
  141. package/dist/locale/ko/entity.d.ts.map +1 -0
  142. package/dist/locale/ko/main.d.ts +1229 -0
  143. package/dist/locale/ko/main.d.ts.map +1 -0
  144. package/dist/locale/syncViewerAcApI18n.d.ts +6 -0
  145. package/dist/locale/syncViewerAcApI18n.d.ts.map +1 -0
  146. package/dist/locale/tr/command.d.ts +13 -0
  147. package/dist/locale/tr/command.d.ts.map +1 -1
  148. package/dist/locale/tr/dialog.d.ts +521 -250
  149. package/dist/locale/tr/dialog.d.ts.map +1 -1
  150. package/dist/locale/tr/main.d.ts +155 -2
  151. package/dist/locale/tr/main.d.ts.map +1 -1
  152. package/dist/locale/zh/command.d.ts +13 -0
  153. package/dist/locale/zh/command.d.ts.map +1 -1
  154. package/dist/locale/zh/dialog.d.ts +271 -0
  155. package/dist/locale/zh/dialog.d.ts.map +1 -1
  156. package/dist/locale/zh/main.d.ts +151 -2
  157. package/dist/locale/zh/main.d.ts.map +1 -1
  158. package/dist/svg/ai/index.d.ts +7 -0
  159. package/dist/svg/ai/index.d.ts.map +1 -0
  160. package/dist/svg/index.d.ts +26 -0
  161. package/dist/svg/index.d.ts.map +1 -1
  162. package/dist/svg/leader/index.d.ts +4 -0
  163. package/dist/svg/leader/index.d.ts.map +1 -0
  164. package/dist/svg/toolbarIcons.d.ts +2 -0
  165. package/dist/svg/toolbarIcons.d.ts.map +1 -1
  166. package/package.json +36 -30
  167. package/src/locale/ar/command.ts +113 -95
  168. package/src/locale/ar/dialog.ts +848 -420
  169. package/src/locale/ar/entity.ts +665 -665
  170. package/src/locale/ar/main.ts +1271 -1610
  171. package/src/locale/cs/command.ts +71 -55
  172. package/src/locale/cs/dialog.ts +852 -329
  173. package/src/locale/cs/entity.ts +588 -588
  174. package/src/locale/cs/main.ts +1298 -1127
  175. package/src/locale/en/command.ts +72 -56
  176. package/src/locale/en/dialog.ts +851 -574
  177. package/src/locale/en/entity.ts +588 -588
  178. package/src/locale/en/main.ts +1305 -1140
  179. package/src/locale/i18n.ts +205 -173
  180. package/src/locale/index.ts +3 -2
  181. package/src/locale/ja/command.ts +70 -0
  182. package/src/locale/ja/dialog.ts +851 -0
  183. package/src/locale/ja/entity.ts +588 -0
  184. package/src/locale/ja/main.ts +1296 -0
  185. package/src/locale/ko/command.ts +66 -0
  186. package/src/locale/ko/dialog.ts +846 -0
  187. package/src/locale/ko/entity.ts +588 -0
  188. package/src/locale/ko/main.ts +1276 -0
  189. package/src/locale/pluralRules.ts +28 -28
  190. package/src/locale/syncViewerAcApI18n.ts +59 -0
  191. package/src/locale/tr/command.ts +74 -57
  192. package/src/locale/tr/dialog.ts +856 -332
  193. package/src/locale/tr/entity.ts +588 -588
  194. package/src/locale/tr/main.ts +1315 -1142
  195. package/src/locale/types.ts +3 -3
  196. package/src/locale/zh/command.ts +62 -49
  197. package/src/locale/zh/dialog.ts +837 -566
  198. package/src/locale/zh/entity.ts +588 -588
  199. package/src/locale/zh/main.ts +1243 -1089
  200. package/dist/composable/useFind.d.ts +0 -47
  201. package/dist/composable/useFind.d.ts.map +0 -1
  202. package/dist/composable/useMarkup.d.ts +0 -301
  203. package/dist/composable/useMarkup.d.ts.map +0 -1
  204. package/dist/composable/useMeasurement.d.ts +0 -149
  205. package/dist/composable/useMeasurement.d.ts.map +0 -1
@@ -0,0 +1,216 @@
1
+ import { AcApSmartBlockSearch, AcApSmartBlockSearchOptions, AcEdAffine2d } from '@mlightcad/cad-simple-viewer';
2
+ /** Actions the Search and Convert palette sends to the running `BSEARCH`. */
3
+ export type MlBSearchAction = {
4
+ type: 'next';
5
+ } | {
6
+ type: 'prev';
7
+ } | {
8
+ type: 'toggleCurrent';
9
+ }
10
+ /** Makes instance `index` current and zooms to it. */
11
+ | {
12
+ type: 'select';
13
+ index: number;
14
+ } | {
15
+ type: 'setIncluded';
16
+ index: number;
17
+ included: boolean;
18
+ } | {
19
+ type: 'setAllIncluded';
20
+ included: boolean;
21
+ } | {
22
+ type: 'options';
23
+ options: Partial<AcApSmartBlockSearchOptions>;
24
+ } | {
25
+ type: 'convert';
26
+ } | {
27
+ type: 'cancel';
28
+ };
29
+ /** One found instance as the palette list shows it. */
30
+ export interface MlBSearchMatchRow {
31
+ /** Zero-based index into the search's matches. */
32
+ index: number;
33
+ included: boolean;
34
+ /** Rotation in degrees, `[0, 360)`, rounded to 0.1. */
35
+ rotation: number;
36
+ mirrored: boolean;
37
+ /** Uniform scale, rounded to 3 decimals. */
38
+ scale: number;
39
+ /** The instance is an existing block reference. */
40
+ blockReference: boolean;
41
+ /** Text strings of the instance, in template order. */
42
+ texts: string[];
43
+ }
44
+ /** One varying template text that can become an attribute. */
45
+ export interface MlBSearchAttributeRow {
46
+ /** Template feature index. */
47
+ index: number;
48
+ /** Text of the selected source. */
49
+ sample: string;
50
+ /** A few other strings found in the instances. */
51
+ variants: string[];
52
+ tag: string;
53
+ prompt: string;
54
+ }
55
+ /** A block definition that already holds the searched geometry. */
56
+ export interface MlBSearchEquivalentBlock {
57
+ blockName: string;
58
+ transform: AcEdAffine2d;
59
+ }
60
+ /** Editable state of the Convert to Block dialog. */
61
+ export interface MlBConvertDraft {
62
+ target: 'new' | 'existing';
63
+ name: string;
64
+ basePoint: {
65
+ x: number;
66
+ y: number;
67
+ };
68
+ existingBlock: string;
69
+ /** Degrees; used for existing blocks without an equivalent definition. */
70
+ rotation: number;
71
+ scale: number;
72
+ sourceOnly: boolean;
73
+ attributes: MlBSearchAttributeRow[];
74
+ }
75
+ /** What the Convert dialog hands back to the command. */
76
+ export type MlBConvertResult = {
77
+ type: 'ok';
78
+ } | {
79
+ type: 'pickBasePoint';
80
+ } | {
81
+ type: 'cancel';
82
+ };
83
+ /**
84
+ * Starts mirroring `search` into the reactive review state.
85
+ *
86
+ * @param search - Session owned by the running `BSEARCH` command.
87
+ */
88
+ export declare function acuiBeginBSearch(search: AcApSmartBlockSearch): void;
89
+ /** Stores the captured preview of the selected source. */
90
+ export declare function acuiSetBSearchThumbnail(thumbnail: string): void;
91
+ /** Ends the review: hides the palette and drops pending requests. */
92
+ export declare function acuiEndBSearch(): void;
93
+ /**
94
+ * Next palette action. The same promise is returned until an action
95
+ * arrives, so a command can race it against a canvas prompt repeatedly.
96
+ */
97
+ export declare function acuiNextBSearchAction(): Promise<MlBSearchAction>;
98
+ /**
99
+ * Waits for the Convert dialog's answer. The caller opens the dialog.
100
+ */
101
+ export declare function acuiWaitBConvertDialog(): Promise<MlBConvertResult>;
102
+ /** Fills the dialog state (blocks, defaults) before it opens. */
103
+ export declare function acuiPrepareBConvertDialog(data: {
104
+ draft: MlBConvertDraft;
105
+ blockNames: string[];
106
+ equivalentBlocks: MlBSearchEquivalentBlock[];
107
+ defaultBasePoint: {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ }): void;
112
+ /**
113
+ * Ends the review as if Cancel was clicked (the palette was closed).
114
+ */
115
+ export declare function acuiRequestBSearchCancel(): void;
116
+ /**
117
+ * Search and Convert palette and Convert dialog access to the running
118
+ * `BSEARCH`.
119
+ */
120
+ export declare function useBSearch(): {
121
+ state: {
122
+ readonly active: boolean;
123
+ readonly total: number;
124
+ readonly included: number;
125
+ readonly current: number;
126
+ readonly currentIncluded: boolean;
127
+ readonly options: {
128
+ readonly allowRotation?: boolean | undefined;
129
+ readonly allowMirror?: boolean | undefined;
130
+ readonly allowScale?: boolean | undefined;
131
+ readonly matchLayer?: boolean | undefined;
132
+ readonly includeExistingBlocks?: boolean | undefined;
133
+ readonly textVariations?: boolean | undefined;
134
+ readonly tolerance?: number | undefined;
135
+ };
136
+ readonly hasText: boolean;
137
+ readonly sourceCount: number;
138
+ readonly thumbnail: string;
139
+ readonly matches: readonly {
140
+ readonly index: number;
141
+ readonly included: boolean;
142
+ readonly rotation: number;
143
+ readonly mirrored: boolean;
144
+ readonly scale: number;
145
+ readonly blockReference: boolean;
146
+ readonly texts: readonly string[];
147
+ }[];
148
+ readonly draft: {
149
+ readonly target: "new" | "existing";
150
+ readonly name: string;
151
+ readonly basePoint: {
152
+ readonly x: number;
153
+ readonly y: number;
154
+ };
155
+ readonly existingBlock: string;
156
+ readonly rotation: number;
157
+ readonly scale: number;
158
+ readonly sourceOnly: boolean;
159
+ readonly attributes: readonly {
160
+ readonly index: number;
161
+ readonly sample: string;
162
+ readonly variants: readonly string[];
163
+ readonly tag: string;
164
+ readonly prompt: string;
165
+ }[];
166
+ };
167
+ readonly blockNames: readonly string[];
168
+ readonly equivalentBlocks: readonly {
169
+ readonly blockName: string;
170
+ readonly transform: {
171
+ readonly a: number;
172
+ readonly b: number;
173
+ readonly c: number;
174
+ readonly d: number;
175
+ readonly e: number;
176
+ readonly f: number;
177
+ };
178
+ }[];
179
+ readonly defaultBasePoint: {
180
+ readonly x: number;
181
+ readonly y: number;
182
+ };
183
+ };
184
+ /** Mutable dialog draft (bound to the dialog's form). */
185
+ draft: {
186
+ target: "new" | "existing";
187
+ name: string;
188
+ basePoint: {
189
+ x: number;
190
+ y: number;
191
+ };
192
+ existingBlock: string;
193
+ rotation: number;
194
+ scale: number;
195
+ sourceOnly: boolean;
196
+ attributes: {
197
+ index: number;
198
+ sample: string;
199
+ variants: string[];
200
+ tag: string;
201
+ prompt: string;
202
+ }[];
203
+ };
204
+ next: () => void;
205
+ prev: () => void;
206
+ toggleCurrent: () => void;
207
+ select: (index: number) => void;
208
+ setIncluded: (index: number, included: boolean) => void;
209
+ setAllIncluded: (included: boolean) => void;
210
+ setOptions: (options: Partial<AcApSmartBlockSearchOptions>) => void;
211
+ convert: () => void;
212
+ cancel: () => void;
213
+ /** Answers the Convert dialog. */
214
+ finishDialog: (result: MlBConvertResult) => void | undefined;
215
+ };
216
+ //# sourceMappingURL=useBSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBSearch.d.ts","sourceRoot":"","sources":["../../src/composable/useBSearch.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AcApLocale } from '@mlightcad/cad-simple-viewer';
1
+ import { AcApLocale } from '@mlightcad/cad-simple-viewer/file-open-panel';
2
2
  import { LocaleProp } from '../locale/types';
3
3
  export declare const LOCALE_OPTIONS: ({
4
4
  locale: "en";
@@ -6,6 +6,12 @@ export declare const LOCALE_OPTIONS: ({
6
6
  } | {
7
7
  locale: "zh";
8
8
  label: string;
9
+ } | {
10
+ locale: "ja";
11
+ label: string;
12
+ } | {
13
+ locale: "ko";
14
+ label: string;
9
15
  } | {
10
16
  locale: "tr";
11
17
  label: string;
@@ -20,6 +26,10 @@ export declare const isSupportedLocale: (value: string) => value is AcApLocale;
20
26
  /**
21
27
  * Locale composable for cad-viewer.
22
28
  *
29
+ * Uses the same `@mlightcad/cad-simple-viewer/file-open-panel` {@link AcApI18n}
30
+ * singleton as `locale/i18n.ts` (vue-i18n host). {@link syncViewerAcApI18n}
31
+ * mirrors changes onto the full-viewer package singleton for plugins.
32
+ *
23
33
  * {@link AcApI18n.setCurrentLocale} is the only write path. vue-i18n is synced
24
34
  * from {@link AcApI18n.events.localeChanged} in `locale/i18n.ts`.
25
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useLocale.d.ts","sourceRoot":"","sources":["../../src/composable/useLocale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAQxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;IAM1B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,UAQ1D,CAAA;AAkBD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAejB,UAAU;;;EAuCzC"}
1
+ {"version":3,"file":"useLocale.d.ts","sourceRoot":"","sources":["../../src/composable/useLocale.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8CAA8C,CAAA;AAUrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;IAQ1B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,UAU1D,CAAA;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAejB,UAAU;;;EAyCzC"}
@@ -0,0 +1,30 @@
1
+ import { AcDbDatabase, AcDbMLeaderStyle } from '@mlightcad/data-model';
2
+ import { MLeaderStyleFormState } from '../component/dialog/mleaderStyleForm';
3
+ export { buildPreviewMLeaderStyle, collectUsedMLeaderStyleNames, copyMLeaderStyle, createDefaultMLeaderStyleForm, createStandardMLeaderStyle, getMLeaderStyleByName, listMLeaderStyleNames, MLEADER_ANGLE_OPTIONS_DEG, type MLeaderStyleFormState, readMLeaderStyleForm, writeMLeaderStyleForm } from '../component/dialog/mleaderStyleForm';
4
+ /**
5
+ * Vue composable backing the Multileader Style Manager dialog.
6
+ */
7
+ export declare function useMLeaderStyle(): {
8
+ styleNames: import('vue').Ref<string[], string[]>;
9
+ usedNames: import('vue').Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
10
+ currentName: import('vue').Ref<string, string>;
11
+ selected: import('vue').Ref<string, string>;
12
+ filter: import('vue').Ref<"all" | "used", "all" | "used">;
13
+ form: import('vue').ShallowReactive<MLeaderStyleFormState>;
14
+ previewRevision: import('vue').Ref<number, number>;
15
+ visibleNames: import('vue').ComputedRef<string[]>;
16
+ reload: () => void;
17
+ loadSelectedIntoForm: () => void;
18
+ setCurrent: () => void;
19
+ canDelete: (name: string) => boolean;
20
+ deleteSelected: () => boolean;
21
+ createStyle: (name: string, startWith: string) => boolean;
22
+ applyFormToSelected: () => boolean;
23
+ bumpPreview: () => void;
24
+ previewStyle: () => AcDbMLeaderStyle | undefined;
25
+ canvasBackgroundRgb: () => number | undefined;
26
+ listTextStyleNames: () => string[];
27
+ listBlockNames: () => string[];
28
+ getDb: () => AcDbDatabase | undefined;
29
+ };
30
+ //# sourceMappingURL=useMLeaderStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMLeaderStyle.d.ts","sourceRoot":"","sources":["../../src/composable/useMLeaderStyle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAQL,KAAK,qBAAqB,EAG3B,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,EAChB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,sCAAsC,CAAA;AAE7C;;GAEG;AACH,wBAAgB,eAAe;;;;;;;;;;;;sBA4FJ,MAAM,KAAG,OAAO;0BAQd,OAAO;wBAQP,MAAM,aAAa,MAAM,KAAG,OAAO;+BAmB9B,OAAO;;wBAkBd,gBAAgB,GAAG,SAAS;+BAMrB,MAAM,GAAG,SAAS;8BAQnB,MAAM,EAAE;0BAeZ,MAAM,EAAE;iBA3JjB,YAAY,GAAG,SAAS;EA+L3C"}
@@ -1,5 +1,12 @@
1
1
  declare const _default: {
2
2
  ACAD: {
3
+ bsearch: {
4
+ description: string;
5
+ prompt: string;
6
+ };
7
+ bdetect: {
8
+ description: string;
9
+ };
3
10
  hatch: {
4
11
  description: string;
5
12
  };
@@ -36,12 +43,18 @@ declare const _default: {
36
43
  style: {
37
44
  description: string;
38
45
  };
46
+ mleaderstyle: {
47
+ description: string;
48
+ };
39
49
  attedit: {
40
50
  description: string;
41
51
  };
42
52
  attdef: {
43
53
  description: string;
44
54
  };
55
+ classicgroup: {
56
+ description: string;
57
+ };
45
58
  };
46
59
  USER: {};
47
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/locale/ar/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA6FC"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/locale/ar/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBA+GC"}
@@ -91,6 +91,8 @@ declare const _default: {
91
91
  layoutsSection: string;
92
92
  exportLayouts: string;
93
93
  exportLayoutsHint: string;
94
+ exportEmptyLayouts: string;
95
+ exportEmptyLayoutsHint: string;
94
96
  yes: string;
95
97
  no: string;
96
98
  background: string;
@@ -138,6 +140,8 @@ declare const _default: {
138
140
  paperSpaceSection: string;
139
141
  exportLayouts: string;
140
142
  exportLayoutsHint: string;
143
+ exportEmptyLayouts: string;
144
+ exportEmptyLayoutsHint: string;
141
145
  textModeSection: string;
142
146
  textMode: string;
143
147
  textModeText: string;
@@ -559,6 +563,273 @@ declare const _default: {
559
563
  precisionAlt: string;
560
564
  };
561
565
  };
566
+ mleaderStyleDlg: {
567
+ title: string;
568
+ current: string;
569
+ styles: string;
570
+ list: string;
571
+ filterAll: string;
572
+ filterUsed: string;
573
+ previewOf: string;
574
+ setCurrent: string;
575
+ new: string;
576
+ modify: string;
577
+ delete: string;
578
+ close: string;
579
+ help: string;
580
+ newTitle: string;
581
+ newName: string;
582
+ startWith: string;
583
+ modifyTitle: string;
584
+ tabs: {
585
+ format: string;
586
+ structure: string;
587
+ content: string;
588
+ };
589
+ format: {
590
+ general: string;
591
+ type: string;
592
+ typeStraight: string;
593
+ typeSpline: string;
594
+ typeNone: string;
595
+ color: string;
596
+ linetype: string;
597
+ lineweight: string;
598
+ arrowhead: string;
599
+ symbol: string;
600
+ size: string;
601
+ leaderBreak: string;
602
+ breakSize: string;
603
+ };
604
+ structure: {
605
+ constraints: string;
606
+ maxPoints: string;
607
+ firstAngle: string;
608
+ secondAngle: string;
609
+ landing: string;
610
+ includeLanding: string;
611
+ setLandingDistance: string;
612
+ scale: string;
613
+ annotative: string;
614
+ scaleToLayout: string;
615
+ specifyScale: string;
616
+ };
617
+ content: {
618
+ type: string;
619
+ typeMtext: string;
620
+ typeBlock: string;
621
+ typeNone: string;
622
+ textOptions: string;
623
+ defaultText: string;
624
+ defaultTextTitle: string;
625
+ ellipsis: string;
626
+ textStyle: string;
627
+ textAngle: string;
628
+ angleRightReading: string;
629
+ angleHorizontal: string;
630
+ angleAsInserted: string;
631
+ textColor: string;
632
+ textHeight: string;
633
+ alwaysLeftJustify: string;
634
+ frameText: string;
635
+ leaderConnection: string;
636
+ horizontalAttachment: string;
637
+ verticalAttachment: string;
638
+ leftAttachment: string;
639
+ rightAttachment: string;
640
+ topAttachment: string;
641
+ bottomAttachment: string;
642
+ landingGap: string;
643
+ extendLeaderToText: string;
644
+ blockOptions: string;
645
+ sourceBlock: string;
646
+ blockAttachment: string;
647
+ blockAttachCenter: string;
648
+ blockAttachInsertion: string;
649
+ blockColor: string;
650
+ blockScale: string;
651
+ };
652
+ arrows: {
653
+ closedFilled: string;
654
+ none: string;
655
+ closed: string;
656
+ closedBlank: string;
657
+ open: string;
658
+ dot: string;
659
+ dotSmall: string;
660
+ box: string;
661
+ boxFilled: string;
662
+ archTick: string;
663
+ oblique: string;
664
+ origin: string;
665
+ };
666
+ attachments: {
667
+ topOfTop: string;
668
+ middleOfTop: string;
669
+ middle: string;
670
+ middleOfBottom: string;
671
+ bottomOfBottom: string;
672
+ bottomLine: string;
673
+ bottomOfTopLine: string;
674
+ bottomOfTop: string;
675
+ underlineBottom: string;
676
+ underlineAll: string;
677
+ center: string;
678
+ linedCenter: string;
679
+ };
680
+ };
681
+ viewManagerDlg: {
682
+ title: string;
683
+ current: string;
684
+ modelViews: string;
685
+ layoutViews: string;
686
+ presetViews: string;
687
+ general: string;
688
+ view: string;
689
+ name: string;
690
+ layerSnapshot: string;
691
+ yes: string;
692
+ no: string;
693
+ center: string;
694
+ height: string;
695
+ width: string;
696
+ roll: string;
697
+ setCurrent: string;
698
+ new: string;
699
+ updateLayers: string;
700
+ editBoundaries: string;
701
+ delete: string;
702
+ close: string;
703
+ firstCorner: string;
704
+ secondCorner: string;
705
+ notFound: string;
706
+ layersUpdated: string;
707
+ boundariesUpdated: string;
708
+ deleted: string;
709
+ topPresetHint: string;
710
+ };
711
+ bconvertDlg: {
712
+ title: string;
713
+ newBlock: string;
714
+ existingBlock: string;
715
+ name: string;
716
+ block: string;
717
+ matchingBlock: string;
718
+ rotation: string;
719
+ scale: string;
720
+ autoPlacement: string;
721
+ insertionPoint: string;
722
+ pick: string;
723
+ center: string;
724
+ attributes: string;
725
+ attributesHint: string;
726
+ tag: string;
727
+ prompt: string;
728
+ objects: string;
729
+ allInstances: string;
730
+ sourceOnly: string;
731
+ error: {
732
+ nameEmpty: string;
733
+ nameInvalid: string;
734
+ nameExists: string;
735
+ tagInvalid: string;
736
+ tagDuplicate: string;
737
+ noBlock: string;
738
+ scaleInvalid: string;
739
+ };
740
+ };
741
+ newViewDlg: {
742
+ title: string;
743
+ name: string;
744
+ boundary: string;
745
+ currentDisplay: string;
746
+ defineWindow: string;
747
+ saveLayerSnapshot: string;
748
+ nameRequired: string;
749
+ nameInvalid: string;
750
+ nameExists: string;
751
+ writeRequired: string;
752
+ createFailed: string;
753
+ firstCorner: string;
754
+ secondCorner: string;
755
+ created: string;
756
+ };
757
+ ucsManagerDlg: {
758
+ title: string;
759
+ tabs: {
760
+ named: string;
761
+ settings: string;
762
+ };
763
+ currentUcs: string;
764
+ setCurrent: string;
765
+ details: string;
766
+ rename: string;
767
+ delete: string;
768
+ renamePrompt: string;
769
+ renameFailed: string;
770
+ deleteFailed: string;
771
+ help: string;
772
+ iconSettings: string;
773
+ iconOn: string;
774
+ iconAtOrigin: string;
775
+ applyToAllViewports: string;
776
+ allowSelectingIcon: string;
777
+ ucsSettings: string;
778
+ saveWithViewport: string;
779
+ updateViewToPlan: string;
780
+ };
781
+ ucsDetailsDlg: {
782
+ title: string;
783
+ name: string;
784
+ origin: string;
785
+ xAxis: string;
786
+ yAxis: string;
787
+ zAxis: string;
788
+ relativeTo: string;
789
+ };
790
+ classicGroupDlg: {
791
+ title: string;
792
+ groupName: string;
793
+ selectable: string;
794
+ identification: string;
795
+ description: string;
796
+ findName: string;
797
+ highlight: string;
798
+ includeUnnamed: string;
799
+ createGroup: string;
800
+ new: string;
801
+ unnamed: string;
802
+ changeGroup: string;
803
+ remove: string;
804
+ add: string;
805
+ rename: string;
806
+ reOrder: string;
807
+ descriptionBtn: string;
808
+ explode: string;
809
+ selectableBtn: string;
810
+ yes: string;
811
+ no: string;
812
+ pickObject: string;
813
+ notInGroup: string;
814
+ selectObjects: string;
815
+ selectToAdd: string;
816
+ selectToRemove: string;
817
+ clearSelectableFirst: string;
818
+ invalidName: string;
819
+ nameExists: string;
820
+ created: string;
821
+ };
822
+ orderGroupDlg: {
823
+ title: string;
824
+ groupName: string;
825
+ description: string;
826
+ removeFrom: string;
827
+ newPosition: string;
828
+ numberOfObjects: string;
829
+ reOrder: string;
830
+ reverseOrder: string;
831
+ highlight: string;
832
+ };
562
833
  };
563
834
  export default _default;
564
835
  //# sourceMappingURL=dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/locale/ar/dialog.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAiaC"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/locale/ar/dialog.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA+0BC"}