@mlightcad/cad-editor 1.8.0-preview.3 → 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 (202) 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 +33761 -20053
  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/common/MlBaseDialog.vue.d.ts +20 -1
  40. package/dist/component/common/MlBaseDialog.vue.d.ts.map +1 -1
  41. package/dist/component/common/MlLayerSelect.vue.d.ts.map +1 -1
  42. package/dist/component/common/MlLayerTable.vue.d.ts.map +1 -1
  43. package/dist/component/dialog/MlBConvertDlg.vue.d.ts +24 -0
  44. package/dist/component/dialog/MlBConvertDlg.vue.d.ts.map +1 -0
  45. package/dist/component/dialog/MlClassicGroupDlg.vue.d.ts +4 -0
  46. package/dist/component/dialog/MlClassicGroupDlg.vue.d.ts.map +1 -0
  47. package/dist/component/dialog/MlDimStyleDlg.vue.d.ts.map +1 -1
  48. package/dist/component/dialog/MlExportHtmlDlg.vue.d.ts +4 -0
  49. package/dist/component/dialog/MlExportHtmlDlg.vue.d.ts.map +1 -1
  50. package/dist/component/dialog/MlExportPdfDlg.vue.d.ts +4 -0
  51. package/dist/component/dialog/MlExportPdfDlg.vue.d.ts.map +1 -1
  52. package/dist/component/dialog/MlMLeaderStyleDlg.vue.d.ts +19 -0
  53. package/dist/component/dialog/MlMLeaderStyleDlg.vue.d.ts.map +1 -0
  54. package/dist/component/dialog/MlMLeaderStylePreview.vue.d.ts +36 -0
  55. package/dist/component/dialog/MlMLeaderStylePreview.vue.d.ts.map +1 -0
  56. package/dist/component/dialog/MlNewViewDlg.vue.d.ts +19 -0
  57. package/dist/component/dialog/MlNewViewDlg.vue.d.ts.map +1 -0
  58. package/dist/component/dialog/MlOrderGroupDlg.vue.d.ts +22 -0
  59. package/dist/component/dialog/MlOrderGroupDlg.vue.d.ts.map +1 -0
  60. package/dist/component/dialog/MlUcsDetailsDlg.vue.d.ts +20 -0
  61. package/dist/component/dialog/MlUcsDetailsDlg.vue.d.ts.map +1 -0
  62. package/dist/component/dialog/MlUcsManagerDlg.vue.d.ts +19 -0
  63. package/dist/component/dialog/MlUcsManagerDlg.vue.d.ts.map +1 -0
  64. package/dist/component/dialog/MlViewManagerDlg.vue.d.ts +19 -0
  65. package/dist/component/dialog/MlViewManagerDlg.vue.d.ts.map +1 -0
  66. package/dist/component/dialog/dimStylePreview.d.ts +4 -59
  67. package/dist/component/dialog/dimStylePreview.d.ts.map +1 -1
  68. package/dist/component/dialog/index.d.ts +8 -0
  69. package/dist/component/dialog/index.d.ts.map +1 -1
  70. package/dist/component/dialog/mleaderStyleForm.d.ts +87 -0
  71. package/dist/component/dialog/mleaderStyleForm.d.ts.map +1 -0
  72. package/dist/component/dialog/mleaderStylePreview.d.ts +59 -0
  73. package/dist/component/dialog/mleaderStylePreview.d.ts.map +1 -0
  74. package/dist/component/palette/MlBDetectPalette.vue.d.ts +4 -0
  75. package/dist/component/palette/MlBDetectPalette.vue.d.ts.map +1 -0
  76. package/dist/component/palette/MlBSearchPalette.vue.d.ts +4 -0
  77. package/dist/component/palette/MlBSearchPalette.vue.d.ts.map +1 -0
  78. package/dist/component/palette/MlDesignReviewPalette.vue.d.ts.map +1 -1
  79. package/dist/component/palette/MlEntityProperties.vue.d.ts.map +1 -1
  80. package/dist/component/palette/MlFindPalette.vue.d.ts.map +1 -1
  81. package/dist/component/palette/MlHostedPanel.vue.d.ts +20 -0
  82. package/dist/component/palette/MlHostedPanel.vue.d.ts.map +1 -0
  83. package/dist/component/palette/MlLayerList.vue.d.ts.map +1 -1
  84. package/dist/component/palette/MlMeasurementPalette.vue.d.ts.map +1 -1
  85. package/dist/component/palette/MlMemoryProfile.vue.d.ts.map +1 -1
  86. package/dist/component/palette/MlMissingResources.vue.d.ts.map +1 -1
  87. package/dist/component/palette/MlPaletteManager.vue.d.ts.map +1 -1
  88. package/dist/component/ribbon/MlRibbonCommands.vue.d.ts.map +1 -1
  89. package/dist/component/ribbon/MlRibbonTextHeightButton.vue.d.ts +1 -1
  90. package/dist/component/statusBar/MlLayoutTabs.vue.d.ts.map +1 -1
  91. package/dist/component/statusBar/MlOsnapButton.vue.d.ts.map +1 -1
  92. package/dist/component/statusBar/MlPolarTrackingButton.vue.d.ts.map +1 -1
  93. package/dist/composable/index.d.ts +3 -3
  94. package/dist/composable/index.d.ts.map +1 -1
  95. package/dist/composable/namedViewsRevision.d.ts +7 -0
  96. package/dist/composable/namedViewsRevision.d.ts.map +1 -0
  97. package/dist/composable/openMissingResourcesPalette.d.ts.map +1 -1
  98. package/dist/composable/useBDetect.d.ts +104 -0
  99. package/dist/composable/useBDetect.d.ts.map +1 -0
  100. package/dist/composable/useBSearch.d.ts +216 -0
  101. package/dist/composable/useBSearch.d.ts.map +1 -0
  102. package/dist/composable/useLocale.d.ts +6 -0
  103. package/dist/composable/useLocale.d.ts.map +1 -1
  104. package/dist/composable/useMLeaderStyle.d.ts +30 -0
  105. package/dist/composable/useMLeaderStyle.d.ts.map +1 -0
  106. package/dist/locale/ar/command.d.ts +13 -0
  107. package/dist/locale/ar/command.d.ts.map +1 -1
  108. package/dist/locale/ar/dialog.d.ts +271 -0
  109. package/dist/locale/ar/dialog.d.ts.map +1 -1
  110. package/dist/locale/ar/main.d.ts +257 -108
  111. package/dist/locale/ar/main.d.ts.map +1 -1
  112. package/dist/locale/cs/command.d.ts +13 -0
  113. package/dist/locale/cs/command.d.ts.map +1 -1
  114. package/dist/locale/cs/dialog.d.ts +271 -0
  115. package/dist/locale/cs/dialog.d.ts.map +1 -1
  116. package/dist/locale/cs/main.d.ts +155 -2
  117. package/dist/locale/cs/main.d.ts.map +1 -1
  118. package/dist/locale/en/command.d.ts +13 -0
  119. package/dist/locale/en/command.d.ts.map +1 -1
  120. package/dist/locale/en/dialog.d.ts +271 -0
  121. package/dist/locale/en/dialog.d.ts.map +1 -1
  122. package/dist/locale/en/main.d.ts +151 -2
  123. package/dist/locale/en/main.d.ts.map +1 -1
  124. package/dist/locale/i18n.d.ts.map +1 -1
  125. package/dist/locale/ja/command.d.ts +62 -0
  126. package/dist/locale/ja/command.d.ts.map +1 -0
  127. package/dist/locale/ja/dialog.d.ts +835 -0
  128. package/dist/locale/ja/dialog.d.ts.map +1 -0
  129. package/dist/locale/ja/entity.d.ts +590 -0
  130. package/dist/locale/ja/entity.d.ts.map +1 -0
  131. package/dist/locale/ja/main.d.ts +1229 -0
  132. package/dist/locale/ja/main.d.ts.map +1 -0
  133. package/dist/locale/ko/command.d.ts +62 -0
  134. package/dist/locale/ko/command.d.ts.map +1 -0
  135. package/dist/locale/ko/dialog.d.ts +835 -0
  136. package/dist/locale/ko/dialog.d.ts.map +1 -0
  137. package/dist/locale/ko/entity.d.ts +590 -0
  138. package/dist/locale/ko/entity.d.ts.map +1 -0
  139. package/dist/locale/ko/main.d.ts +1229 -0
  140. package/dist/locale/ko/main.d.ts.map +1 -0
  141. package/dist/locale/syncViewerAcApI18n.d.ts +2 -7
  142. package/dist/locale/syncViewerAcApI18n.d.ts.map +1 -1
  143. package/dist/locale/tr/command.d.ts +13 -0
  144. package/dist/locale/tr/command.d.ts.map +1 -1
  145. package/dist/locale/tr/dialog.d.ts +521 -250
  146. package/dist/locale/tr/dialog.d.ts.map +1 -1
  147. package/dist/locale/tr/main.d.ts +155 -2
  148. package/dist/locale/tr/main.d.ts.map +1 -1
  149. package/dist/locale/zh/command.d.ts +13 -0
  150. package/dist/locale/zh/command.d.ts.map +1 -1
  151. package/dist/locale/zh/dialog.d.ts +271 -0
  152. package/dist/locale/zh/dialog.d.ts.map +1 -1
  153. package/dist/locale/zh/main.d.ts +151 -2
  154. package/dist/locale/zh/main.d.ts.map +1 -1
  155. package/dist/svg/ai/index.d.ts +7 -0
  156. package/dist/svg/ai/index.d.ts.map +1 -0
  157. package/dist/svg/index.d.ts +26 -0
  158. package/dist/svg/index.d.ts.map +1 -1
  159. package/dist/svg/leader/index.d.ts +4 -0
  160. package/dist/svg/leader/index.d.ts.map +1 -0
  161. package/dist/svg/toolbarIcons.d.ts +2 -0
  162. package/dist/svg/toolbarIcons.d.ts.map +1 -1
  163. package/package.json +36 -30
  164. package/src/locale/ar/command.ts +113 -95
  165. package/src/locale/ar/dialog.ts +848 -420
  166. package/src/locale/ar/entity.ts +665 -665
  167. package/src/locale/ar/main.ts +1271 -1610
  168. package/src/locale/cs/command.ts +71 -55
  169. package/src/locale/cs/dialog.ts +852 -329
  170. package/src/locale/cs/entity.ts +588 -588
  171. package/src/locale/cs/main.ts +1298 -1127
  172. package/src/locale/en/command.ts +72 -56
  173. package/src/locale/en/dialog.ts +851 -574
  174. package/src/locale/en/entity.ts +588 -588
  175. package/src/locale/en/main.ts +1305 -1140
  176. package/src/locale/i18n.ts +205 -177
  177. package/src/locale/index.ts +3 -3
  178. package/src/locale/ja/command.ts +70 -0
  179. package/src/locale/ja/dialog.ts +851 -0
  180. package/src/locale/ja/entity.ts +588 -0
  181. package/src/locale/ja/main.ts +1296 -0
  182. package/src/locale/ko/command.ts +66 -0
  183. package/src/locale/ko/dialog.ts +846 -0
  184. package/src/locale/ko/entity.ts +588 -0
  185. package/src/locale/ko/main.ts +1276 -0
  186. package/src/locale/pluralRules.ts +28 -28
  187. package/src/locale/syncViewerAcApI18n.ts +59 -33
  188. package/src/locale/tr/command.ts +74 -57
  189. package/src/locale/tr/dialog.ts +856 -332
  190. package/src/locale/tr/entity.ts +588 -588
  191. package/src/locale/tr/main.ts +1315 -1142
  192. package/src/locale/types.ts +3 -3
  193. package/src/locale/zh/command.ts +62 -49
  194. package/src/locale/zh/dialog.ts +837 -566
  195. package/src/locale/zh/entity.ts +588 -588
  196. package/src/locale/zh/main.ts +1243 -1089
  197. package/dist/composable/useFind.d.ts +0 -47
  198. package/dist/composable/useFind.d.ts.map +0 -1
  199. package/dist/composable/useMarkup.d.ts +0 -301
  200. package/dist/composable/useMarkup.d.ts.map +0 -1
  201. package/dist/composable/useMeasurement.d.ts +0 -149
  202. 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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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"useLocale.d.ts","sourceRoot":"","sources":["../../src/composable/useLocale.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8CAA8C,CAAA;AAQrD,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;;;;;;;;;GASG;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"}