@byteluck-fe/model-driven-shared 2.9.0-alpha.9 → 2.9.1-beta.1

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 (38) hide show
  1. package/README.md +29 -29
  2. package/dist/esm/EventLogic.js +70 -70
  3. package/dist/esm/RulesMessage.js +4 -4
  4. package/dist/esm/calc.js +37 -37
  5. package/dist/esm/constant.js +1 -1
  6. package/dist/esm/entity/Department.js +10 -10
  7. package/dist/esm/entity/User.js +64 -64
  8. package/dist/esm/entity/index.js +2 -2
  9. package/dist/esm/enum.js +4 -15
  10. package/dist/esm/genNonDuplicateId.js +4 -4
  11. package/dist/esm/index.js +13 -13
  12. package/dist/esm/locales/en-US.json +73 -73
  13. package/dist/esm/locales/index.js +3 -3
  14. package/dist/esm/locales/ja-JP.json +73 -73
  15. package/dist/esm/locales/zh-CN.json +76 -76
  16. package/dist/esm/log.js +21 -31
  17. package/dist/esm/loopControls.js +4 -4
  18. package/dist/esm/updateValueFromKeys.js +9 -9
  19. package/dist/esm/utils.js +28 -23
  20. package/dist/esm/watcher.js +8 -8
  21. package/dist/index.umd.js +1 -1
  22. package/dist/types/EventLogic.d.ts +305 -305
  23. package/dist/types/RulesMessage.d.ts +14 -14
  24. package/dist/types/calc.d.ts +74 -74
  25. package/dist/types/constant.d.ts +2 -2
  26. package/dist/types/entity/Department.d.ts +15 -15
  27. package/dist/types/entity/User.d.ts +85 -85
  28. package/dist/types/entity/index.d.ts +2 -2
  29. package/dist/types/enum.d.ts +304 -339
  30. package/dist/types/genNonDuplicateId.d.ts +1 -1
  31. package/dist/types/index.d.ts +13 -13
  32. package/dist/types/locales/index.d.ts +225 -225
  33. package/dist/types/log.d.ts +5 -5
  34. package/dist/types/loopControls.d.ts +1 -1
  35. package/dist/types/updateValueFromKeys.d.ts +8 -8
  36. package/dist/types/utils.d.ts +34 -34
  37. package/dist/types/watcher.d.ts +14 -14
  38. package/package.json +2 -2
@@ -1,339 +1,304 @@
1
- export declare enum CONTROL_BASE_TYPE {
2
- BASE = "base",
3
- FORM = "form",
4
- LAYOUT = "layout",
5
- WRAP = "wrap",
6
- COLUMN = "column",
7
- LIST = "list",
8
- SEARCH = "search"
9
- }
10
- export declare enum FORM_TYPE {
11
- /**
12
- * 表单
13
- * */
14
- FORM = 0,
15
- /**
16
- * 列表
17
- * */
18
- LIST = 1,
19
- /**
20
- * 报表
21
- * */
22
- REPORT = 2,
23
- /**
24
- * 仪表盘
25
- * */
26
- DASHBOARD = 3,
27
- /**
28
- * Vue页面
29
- * */
30
- VUE = 4,
31
- /**
32
- * 自由页面
33
- * */
34
- FREE_PAGE = 5
35
- }
36
- export declare enum CONTROL_TYPE {
37
- TITLE = "title",
38
- LINK = "link",
39
- BUTTON = "button",
40
- DIVIDER = "divider",
41
- TEXT = "text",
42
- CREATE_FORM_LIST_BUTTON = "list-page-btn-create-form",
43
- BATCH_SUBMISSION_LIST_BUTTON = "list-page-btn-batch-submission",
44
- BATCH_DELETE_LIST_BUTTON = "list-page-btn-batch-delete",
45
- SUBMISSION_RECORD_LIST_BUTTON = "list-page-btn-submission-record",
46
- IMPORT_RECORD_LIST_BUTTON = "list-page-btn-import-record",
47
- EXPORT_RECORD_LIST_BUTTON = "list-page-btn-export-record",
48
- EXPORT_LIST_BUTTON = "list-page-btn-export-list",
49
- LIST_SELECT_BUTTON = "list-select-button",
50
- ORGANIZATION_SELECTION = "organization-selection",
51
- FORM_SELECT_BUTTON = "form-select-button",
52
- LIST_VIEW_SELECT = "list-view-select",
53
- TEXT_OCR_BUTTON = "text-ocr-button",
54
- INVOICE_CHECK_BUTTON = "invoice-check-button",
55
- LIST_PAGE_BTN_BATCH_PRINT = "list-page-btn-batch-print",
56
- LIST_PAGE_BTN_BATCH_PRINT_RECORD = "list-page-btn-batch-print-record",
57
- VARCHAR_COLUMN = "varchar-column",
58
- TEXT_COLUMN = "text-column",
59
- DECIMAL_COLUMN = "decimal-column",
60
- TIMESCOPE_COLUMN = "timescope-column",
61
- TIMESTAMP_COLUMN = "timestamp-column",
62
- ARRAY_COLUMN = "array-column",
63
- DEPARTMENT_COLUMN = "department-column",
64
- AUTO_NUMBER_COLUMN = "auto-number-column",
65
- FILE_COLUMN = "file-column",
66
- IMAGE_COLUMN = "image-column",
67
- PEOPLE_COLUMN = "people-column",
68
- LOCATION_COLUMN = "location-column",
69
- CUSTOM_COLUMN = "custom-column",
70
- ORDER_COLUMN = "order-column",
71
- OPERATION_COLUMN = "operation-column",
72
- EMPLOYEE_COLUMN = "employee-column",
73
- Approval_Status_Column = "approval-status-column",
74
- ADDRESS = "address",
75
- AMOUNT = "amount",
76
- ATTACHMENT = "attachment",
77
- AUTO_NUMBER = "auto-number",
78
- CALC = "calc",
79
- CHECKBOX = "checkbox",
80
- DATE_PICKER = "date-picker",
81
- DATE_RANGE = "date-range",
82
- DEPARTMENT = "department",
83
- EMPLOYEE = "employee",
84
- IMAGE = "image",
85
- INPUT = "input",
86
- NUMBER = "number",
87
- RADIO = "radio",
88
- RICH_TEXT = "rich-text",
89
- SCORE = "score",
90
- SEARCH_DATE_RANGE = "search-date-range",
91
- SEARCH_NUMBER_RANGE = "search-number-range",
92
- SEARCH_INPUT = "search-input",
93
- SELECT = "select",
94
- SELECT_MULTIPLE = "select-multiple",
95
- SELECT_RELATION = "select-relation",
96
- VUE_FORM_ITEM = "vue-form-item",
97
- TEXTAREA = "textarea",
98
- EMAIL = "email",
99
- FOOTER = "footer",
100
- HEADER = "header",
101
- ID_CARD = "id-card",
102
- MOBILE = "mobile",
103
- PHONE = "phone",
104
- RADIO_IMAGE = "radio-image",
105
- ELECTRONIC_SIGNATURE = "electronic-signature",
106
- WPS = "wps",
107
- CARD_GROUP = "card-group",
108
- COL = "col",
109
- GRID = "grid",
110
- GRID_ROW = "grid-row",
111
- GRID_TABLE_COLUMN = "grid-table-column",
112
- GRID_LAYOUT_CONTAINER = "grid-layout-container",
113
- ROW = "row",
114
- TWO_COLUMNS = "two-columns",
115
- SUBTABLE_COLUMN = "subtable-column",
116
- SUBTABLE_ROW = "subtable-row",
117
- TAB = "tab",
118
- TAB_PANE = "tab-pane",
119
- TOOLBOX = "toolbox",
120
- DATA_VIEW = "data-view",
121
- LIST_VIEW = "list-view",
122
- ACTION_BAR = "action-bar",
123
- SUBTABLE = "subtable",
124
- GRID_TABLE = "grid-table",
125
- SIMPLE_SEARCH = "simple-search",
126
- PAGINATION = "pagination",
127
- CHECKBOX_IMAGE = "checkbox-image",
128
- DASHBOARD = "dashboard",
129
- TREE = "tree",
130
- EMPLOYEE2 = "employee2",
131
- DEPARTMENT2 = "department2",
132
- GRID_LAYOUT_WRAP = "grid-layout-wrap"
133
- }
134
- export declare enum OPT_TYPES {
135
- /**
136
- * 保存
137
- * */
138
- SAVE = "save",
139
- /**
140
- * 草稿
141
- * */
142
- DRAFT = "draft",
143
- /**
144
- * 撤回
145
- * */
146
- UNSUBMIT = "unsubmit",
147
- /**
148
- * 审核
149
- * */
150
- AUDIT = "audit",
151
- /**
152
- * 反审核
153
- * */
154
- UNAUDIT = "unaudit",
155
- /**
156
- * 取消
157
- * */
158
- CANCEL = "cancel",
159
- /**
160
- * 提交
161
- * */
162
- FORM_SUBMIT = "form_submit"
163
- }
164
- export declare enum FieldTypes {
165
- /**
166
- * 短文本,string
167
- * */
168
- VARCHAR = "varchar",
169
- /**
170
- * 长文本, string
171
- * */
172
- TEXT = "text",
173
- /**
174
- * 数组, Array<string>
175
- * */
176
- ARRAY = "array",
177
- /**
178
- * 地址, AddressValue { city:string, district:string, province: string }
179
- * */
180
- ADDRESS = "location",
181
- /**
182
- * 数字, number
183
- * */
184
- DECIMAL = "decimal",
185
- /**
186
- * 数字区间, Array<number>
187
- * */
188
- DECIMAL_RANGE = "decimal_range",
189
- /**
190
- * 日期, 时间戳字符串 string
191
- * */
192
- TIMESTAMP = "timestamp",
193
- /**
194
- * 人员, Array<人员id string>
195
- * */
196
- EMPLOYEES = "people",
197
- /**
198
- * 部门, Array<部门id string>
199
- * */
200
- DEPARTMENTS = "department",
201
- /**
202
- * 金额, AmountValue { amount: number, currency: string }
203
- * */
204
- MONEY = "money",
205
- /**
206
- * 日期区间, DateRangeValue { max: string, min: string }
207
- * */
208
- TIMESCOPE = "timescope",
209
- /**
210
- * 附件, Array<附件id string>
211
- * */
212
- FILE = "file",
213
- /**
214
- * 图片, Array<图片id string>
215
- * */
216
- IMAGE = "image",
217
- /**
218
- * 自动编号, string
219
- * */
220
- AUTO_NUMBER = "auto_number",
221
- /**
222
- * 计算公式, CalcValue { result: number, unit: string }
223
- * */
224
- CALC = "calc",
225
- /**
226
- * 关联键, string
227
- * */
228
- RELATION = "relation",
229
- /**
230
- * 列表 Array<any>
231
- * */
232
- LIST = "list",
233
- /**
234
- * 关联字段
235
- * */
236
- RELATION_FIELD = "relation-field",
237
- /**
238
- * 引用字段
239
- * */
240
- REFERENCE_FIELD = "reference-field",
241
- /**
242
- * 计算公式字段
243
- * */
244
- CALC_FIELD = "calc",
245
- /**
246
- * JSON字段
247
- * */
248
- JSON = "json",
249
- /**
250
- * 整数类型
251
- * */
252
- BIGINT = "bigint",
253
- /**
254
- * 任意类型
255
- * */
256
- ANY = "ANY",
257
- /**
258
- * 加密字段
259
- * */
260
- ENCRYPTED_FIELD = "encrypted_field",
261
- /**
262
- * 逻辑
263
- * */
264
- BOOLEAN = "boolean",
265
- /**
266
- * 模型
267
- * */
268
- MODEL = "model",
269
- /**
270
- * 模型集合
271
- * */
272
- MODEL_SET = "model_set"
273
- }
274
- export declare const FieldTypeToLabel: {
275
- varchar: string;
276
- timestamp: string;
277
- text: string;
278
- decimal: string;
279
- relation: string;
280
- bigint: string;
281
- image: string;
282
- file: string;
283
- auto_number: string;
284
- boolean: string;
285
- people: string;
286
- location: string;
287
- department: string;
288
- "relation-field": string;
289
- "reference-field": string;
290
- calc: string;
291
- json: string;
292
- model: string;
293
- model_set: string;
294
- array: string;
295
- };
296
- export declare const FieldTypeToColumnType: {
297
- array: CONTROL_TYPE;
298
- auto_number: CONTROL_TYPE;
299
- decimal: CONTROL_TYPE;
300
- department: CONTROL_TYPE;
301
- file: CONTROL_TYPE;
302
- image: CONTROL_TYPE;
303
- location: CONTROL_TYPE;
304
- people: CONTROL_TYPE;
305
- text: CONTROL_TYPE;
306
- timescope: CONTROL_TYPE;
307
- timestamp: CONTROL_TYPE;
308
- varchar: CONTROL_TYPE;
309
- relation: CONTROL_TYPE;
310
- };
311
- export declare enum DateType {
312
- /**
313
- * 年
314
- * */
315
- YEAR = "year",
316
- /**
317
- * 年月
318
- * */
319
- MONTH = "month",
320
- /**
321
- * 年月日
322
- * */
323
- DATE = "date",
324
- /**
325
- * 年月日时
326
- * */
327
- DATEHOUR = "datehour",
328
- /**
329
- * 年月日时分
330
- * */
331
- DATEMIN = "datemin",
332
- /**
333
- * 年月日时分秒
334
- * */
335
- DATETIME = "datetime"
336
- }
337
- export declare const DESIGNER_SLOT: {
338
- DEFAULT: string;
339
- };
1
+ export declare enum CONTROL_BASE_TYPE {
2
+ BASE = "base",
3
+ FORM = "form",
4
+ LAYOUT = "layout",
5
+ WRAP = "wrap",
6
+ COLUMN = "column",
7
+ LIST = "list",
8
+ SEARCH = "search"
9
+ }
10
+ export declare enum FORM_TYPE {
11
+ /**
12
+ * 表单
13
+ * */
14
+ FORM = 0,
15
+ /**
16
+ * 列表
17
+ * */
18
+ LIST = 1,
19
+ /**
20
+ * 报表
21
+ * */
22
+ REPORT = 2,
23
+ /**
24
+ * 仪表盘
25
+ * */
26
+ DASHBOARD = 3,
27
+ /**
28
+ * Vue页面
29
+ * */
30
+ VUE = 4,
31
+ /**
32
+ * 自由页面
33
+ * */
34
+ FREE_PAGE = 5
35
+ }
36
+ export declare enum CONTROL_TYPE {
37
+ TITLE = "title",
38
+ LINK = "link",
39
+ BUTTON = "button",
40
+ DIVIDER = "divider",
41
+ TEXT = "text",
42
+ CREATE_FORM_LIST_BUTTON = "list-page-btn-create-form",
43
+ BATCH_SUBMISSION_LIST_BUTTON = "list-page-btn-batch-submission",
44
+ BATCH_DELETE_LIST_BUTTON = "list-page-btn-batch-delete",
45
+ SUBMISSION_RECORD_LIST_BUTTON = "list-page-btn-submission-record",
46
+ IMPORT_RECORD_LIST_BUTTON = "list-page-btn-import-record",
47
+ EXPORT_RECORD_LIST_BUTTON = "list-page-btn-export-record",
48
+ EXPORT_LIST_BUTTON = "list-page-btn-export-list",
49
+ LIST_SELECT_BUTTON = "list-select-button",
50
+ ORGANIZATION_SELECTION = "organization-selection",
51
+ FORM_SELECT_BUTTON = "form-select-button",
52
+ LIST_VIEW_SELECT = "list-view-select",
53
+ TEXT_OCR_BUTTON = "text-ocr-button",
54
+ INVOICE_CHECK_BUTTON = "invoice-check-button",
55
+ LIST_PAGE_BTN_BATCH_PRINT = "list-page-btn-batch-print",
56
+ LIST_PAGE_BTN_BATCH_PRINT_RECORD = "list-page-btn-batch-print-record",
57
+ VARCHAR_COLUMN = "varchar-column",
58
+ TEXT_COLUMN = "text-column",
59
+ DECIMAL_COLUMN = "decimal-column",
60
+ TIMESCOPE_COLUMN = "timescope-column",
61
+ TIMESTAMP_COLUMN = "timestamp-column",
62
+ ARRAY_COLUMN = "array-column",
63
+ DEPARTMENT_COLUMN = "department-column",
64
+ AUTO_NUMBER_COLUMN = "auto-number-column",
65
+ FILE_COLUMN = "file-column",
66
+ IMAGE_COLUMN = "image-column",
67
+ PEOPLE_COLUMN = "people-column",
68
+ LOCATION_COLUMN = "location-column",
69
+ CUSTOM_COLUMN = "custom-column",
70
+ ORDER_COLUMN = "order-column",
71
+ OPERATION_COLUMN = "operation-column",
72
+ OPERATION_BUTTON = "operation-button",
73
+ EMPLOYEE_COLUMN = "employee-column",
74
+ Approval_Status_Column = "approval-status-column",
75
+ ADDRESS = "address",
76
+ AMOUNT = "amount",
77
+ ATTACHMENT = "attachment",
78
+ AUTO_NUMBER = "auto-number",
79
+ CALC = "calc",
80
+ CHECKBOX = "checkbox",
81
+ DATE_PICKER = "date-picker",
82
+ DATE_RANGE = "date-range",
83
+ DEPARTMENT = "department",
84
+ EMPLOYEE = "employee",
85
+ IMAGE = "image",
86
+ INPUT = "input",
87
+ NUMBER = "number",
88
+ RADIO = "radio",
89
+ RICH_TEXT = "rich-text",
90
+ SCORE = "score",
91
+ SEARCH_DATE_RANGE = "search-date-range",
92
+ SEARCH_NUMBER_RANGE = "search-number-range",
93
+ SEARCH_INPUT = "search-input",
94
+ SELECT = "select",
95
+ SELECT_MULTIPLE = "select-multiple",
96
+ SELECT_RELATION = "select-relation",
97
+ VUE_FORM_ITEM = "vue-form-item",
98
+ TEXTAREA = "textarea",
99
+ EMAIL = "email",
100
+ FOOTER = "footer",
101
+ HEADER = "header",
102
+ ID_CARD = "id-card",
103
+ MOBILE = "mobile",
104
+ PHONE = "phone",
105
+ RADIO_IMAGE = "radio-image",
106
+ ELECTRONIC_SIGNATURE = "electronic-signature",
107
+ WPS = "wps",
108
+ CARD_GROUP = "card-group",
109
+ COL = "col",
110
+ GRID = "grid",
111
+ GRID_ROW = "grid-row",
112
+ GRID_TABLE_COLUMN = "grid-table-column",
113
+ GRID_LAYOUT_CONTAINER = "grid-layout-container",
114
+ ROW = "row",
115
+ TWO_COLUMNS = "two-columns",
116
+ SUBTABLE_COLUMN = "subtable-column",
117
+ SUBTABLE_ROW = "subtable-row",
118
+ TAB = "tab",
119
+ TAB_PANE = "tab-pane",
120
+ TOOLBOX = "toolbox",
121
+ DATA_VIEW = "data-view",
122
+ LIST_VIEW = "list-view",
123
+ ACTION_BAR = "action-bar",
124
+ SUBTABLE = "subtable",
125
+ GRID_TABLE = "grid-table",
126
+ SIMPLE_SEARCH = "simple-search",
127
+ PAGINATION = "pagination",
128
+ CHECKBOX_IMAGE = "checkbox-image",
129
+ DASHBOARD = "dashboard",
130
+ TREE = "tree",
131
+ EMPLOYEE2 = "employee2",
132
+ DEPARTMENT2 = "department2",
133
+ GRID_LAYOUT_WRAP = "grid-layout-wrap",
134
+ SENSITIVEN_INFORMATION = "sensitiven-information"
135
+ }
136
+ export declare enum OPT_TYPES {
137
+ /**
138
+ * 保存
139
+ * */
140
+ SAVE = "save",
141
+ /**
142
+ * 草稿
143
+ * */
144
+ DRAFT = "draft",
145
+ /**
146
+ * 撤回
147
+ * */
148
+ UNSUBMIT = "unsubmit",
149
+ /**
150
+ * 审核
151
+ * */
152
+ AUDIT = "audit",
153
+ /**
154
+ * 反审核
155
+ * */
156
+ UNAUDIT = "unaudit",
157
+ /**
158
+ * 取消
159
+ * */
160
+ CANCEL = "cancel",
161
+ /**
162
+ * 提交
163
+ * */
164
+ FORM_SUBMIT = "form_submit"
165
+ }
166
+ export declare enum FieldTypes {
167
+ /**
168
+ * 短文本,string
169
+ * */
170
+ VARCHAR = "varchar",
171
+ /**
172
+ * 长文本, string
173
+ * */
174
+ TEXT = "text",
175
+ /**
176
+ * 数组, Array<string>
177
+ * */
178
+ ARRAY = "array",
179
+ /**
180
+ * 地址, AddressValue { city:string, district:string, province: string }
181
+ * */
182
+ ADDRESS = "location",
183
+ /**
184
+ * 数字, number
185
+ * */
186
+ DECIMAL = "decimal",
187
+ /**
188
+ * 数字区间, Array<number>
189
+ * */
190
+ DECIMAL_RANGE = "decimal_range",
191
+ /**
192
+ * 日期, 时间戳字符串 string
193
+ * */
194
+ TIMESTAMP = "timestamp",
195
+ /**
196
+ * 人员, Array<人员id string>
197
+ * */
198
+ EMPLOYEES = "people",
199
+ /**
200
+ * 部门, Array<部门id string>
201
+ * */
202
+ DEPARTMENTS = "department",
203
+ /**
204
+ * 金额, AmountValue { amount: number, currency: string }
205
+ * */
206
+ MONEY = "money",
207
+ /**
208
+ * 日期区间, DateRangeValue { max: string, min: string }
209
+ * */
210
+ TIMESCOPE = "timescope",
211
+ /**
212
+ * 附件, Array<附件id string>
213
+ * */
214
+ FILE = "file",
215
+ /**
216
+ * 图片, Array<图片id string>
217
+ * */
218
+ IMAGE = "image",
219
+ /**
220
+ * 自动编号, string
221
+ * */
222
+ AUTO_NUMBER = "auto_number",
223
+ /**
224
+ * 计算公式, CalcValue { result: number, unit: string }
225
+ * */
226
+ CALC = "calc",
227
+ /**
228
+ * 关联键, string
229
+ * */
230
+ RELATION = "relation",
231
+ /**
232
+ * 列表 Array<any>
233
+ * */
234
+ LIST = "list",
235
+ /**
236
+ * 关联字段
237
+ * */
238
+ RELATION_FIELD = "relation-field",
239
+ /**
240
+ * 引用字段
241
+ * */
242
+ REFERENCE_FIELD = "reference-field",
243
+ /**
244
+ * 计算公式字段
245
+ * */
246
+ CALC_FIELD = "calc",
247
+ /**
248
+ * JSON字段
249
+ * */
250
+ JSON = "json",
251
+ /**
252
+ * 整数类型
253
+ * */
254
+ BIGINT = "bigint",
255
+ /**
256
+ * 任意类型
257
+ * */
258
+ ANY = "ANY",
259
+ /**
260
+ * 加密字段
261
+ * */
262
+ ENCRYPTED_FIELD = "encrypted_field"
263
+ }
264
+ export declare const FieldTypeToColumnType: {
265
+ array: CONTROL_TYPE;
266
+ auto_number: CONTROL_TYPE;
267
+ decimal: CONTROL_TYPE;
268
+ department: CONTROL_TYPE;
269
+ file: CONTROL_TYPE;
270
+ image: CONTROL_TYPE;
271
+ location: CONTROL_TYPE;
272
+ people: CONTROL_TYPE;
273
+ text: CONTROL_TYPE;
274
+ timescope: CONTROL_TYPE;
275
+ timestamp: CONTROL_TYPE;
276
+ varchar: CONTROL_TYPE;
277
+ relation: CONTROL_TYPE;
278
+ };
279
+ export declare enum DateType {
280
+ /**
281
+ *
282
+ * */
283
+ YEAR = "year",
284
+ /**
285
+ * 年月
286
+ * */
287
+ MONTH = "month",
288
+ /**
289
+ * 年月日
290
+ * */
291
+ DATE = "date",
292
+ /**
293
+ * 年月日时
294
+ * */
295
+ DATEHOUR = "datehour",
296
+ /**
297
+ * 年月日时分
298
+ * */
299
+ DATEMIN = "datemin",
300
+ /**
301
+ * 年月日时分秒
302
+ * */
303
+ DATETIME = "datetime"
304
+ }
@@ -1 +1 @@
1
- export declare function genNonDuplicateId(n?: number): string;
1
+ export declare function genNonDuplicateId(n?: number): string;