@shwfed/nuxt 0.11.45 → 0.11.47

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/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shwfed/nuxt",
3
3
  "configKey": "shwfed",
4
- "version": "0.11.45",
4
+ "version": "0.11.47",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -100,6 +100,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
100
100
  style?: string | undefined;
101
101
  hidden?: string | undefined;
102
102
  hideLabel?: boolean | undefined;
103
+ } | {
104
+ id: string;
105
+ type: "markdown-body";
106
+ locale: readonly {
107
+ locale: "en" | "ja" | "ko" | "zh";
108
+ message: string;
109
+ }[];
110
+ inline?: boolean | undefined;
111
+ style?: string | undefined;
112
+ hidden?: string | undefined;
103
113
  } | {
104
114
  options: string;
105
115
  label: string;
@@ -304,6 +314,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
304
314
  style?: string | undefined;
305
315
  hidden?: string | undefined;
306
316
  hideLabel?: boolean | undefined;
317
+ } | {
318
+ id: string;
319
+ type: "markdown-body";
320
+ locale: readonly {
321
+ locale: "en" | "ja" | "ko" | "zh";
322
+ message: string;
323
+ }[];
324
+ inline?: boolean | undefined;
325
+ style?: string | undefined;
326
+ hidden?: string | undefined;
307
327
  } | {
308
328
  options: string;
309
329
  label: string;
@@ -522,6 +542,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
522
542
  style?: string | undefined;
523
543
  hidden?: string | undefined;
524
544
  hideLabel?: boolean | undefined;
545
+ } | {
546
+ id: string;
547
+ type: "markdown-body";
548
+ locale: readonly {
549
+ locale: "en" | "ja" | "ko" | "zh";
550
+ message: string;
551
+ }[];
552
+ inline?: boolean | undefined;
553
+ style?: string | undefined;
554
+ hidden?: string | undefined;
525
555
  } | {
526
556
  options: string;
527
557
  label: string;
@@ -726,6 +756,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
726
756
  style?: string | undefined;
727
757
  hidden?: string | undefined;
728
758
  hideLabel?: boolean | undefined;
759
+ } | {
760
+ id: string;
761
+ type: "markdown-body";
762
+ locale: readonly {
763
+ locale: "en" | "ja" | "ko" | "zh";
764
+ message: string;
765
+ }[];
766
+ inline?: boolean | undefined;
767
+ style?: string | undefined;
768
+ hidden?: string | undefined;
729
769
  } | {
730
770
  options: string;
731
771
  label: string;
@@ -100,6 +100,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
100
100
  style?: string | undefined;
101
101
  hidden?: string | undefined;
102
102
  hideLabel?: boolean | undefined;
103
+ } | {
104
+ id: string;
105
+ type: "markdown-body";
106
+ locale: readonly {
107
+ locale: "en" | "ja" | "ko" | "zh";
108
+ message: string;
109
+ }[];
110
+ inline?: boolean | undefined;
111
+ style?: string | undefined;
112
+ hidden?: string | undefined;
103
113
  } | {
104
114
  options: string;
105
115
  label: string;
@@ -304,6 +314,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
304
314
  style?: string | undefined;
305
315
  hidden?: string | undefined;
306
316
  hideLabel?: boolean | undefined;
317
+ } | {
318
+ id: string;
319
+ type: "markdown-body";
320
+ locale: readonly {
321
+ locale: "en" | "ja" | "ko" | "zh";
322
+ message: string;
323
+ }[];
324
+ inline?: boolean | undefined;
325
+ style?: string | undefined;
326
+ hidden?: string | undefined;
307
327
  } | {
308
328
  options: string;
309
329
  label: string;
@@ -522,6 +542,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
522
542
  style?: string | undefined;
523
543
  hidden?: string | undefined;
524
544
  hideLabel?: boolean | undefined;
545
+ } | {
546
+ id: string;
547
+ type: "markdown-body";
548
+ locale: readonly {
549
+ locale: "en" | "ja" | "ko" | "zh";
550
+ message: string;
551
+ }[];
552
+ inline?: boolean | undefined;
553
+ style?: string | undefined;
554
+ hidden?: string | undefined;
525
555
  } | {
526
556
  options: string;
527
557
  label: string;
@@ -726,6 +756,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
726
756
  style?: string | undefined;
727
757
  hidden?: string | undefined;
728
758
  hideLabel?: boolean | undefined;
759
+ } | {
760
+ id: string;
761
+ type: "markdown-body";
762
+ locale: readonly {
763
+ locale: "en" | "ja" | "ko" | "zh";
764
+ message: string;
765
+ }[];
766
+ inline?: boolean | undefined;
767
+ style?: string | undefined;
768
+ hidden?: string | undefined;
729
769
  } | {
730
770
  options: string;
731
771
  label: string;
@@ -1,7 +1,7 @@
1
1
  import { Effect } from 'effect';
2
2
  import type { CSSProperties } from 'vue';
3
- export { CalendarFieldC, CURRENT_COMPATIBILITY_DATE, EmptyFieldC, FieldC, FieldGroupC, FieldsBodyC, FieldsBodyInputC, FieldsConfigC, FieldsConfigInputC, KIND, MarkdownFieldC, NumberFieldC, SelectFieldC, SlotFieldC, SUPPORTED_COMPATIBILITY_DATES, StringFieldC, UploadFieldC, ValidationRuleC, createFieldsConfig, validationC, } from './schema.js';
4
- export type { EmptyField, Field, FieldGroup, FieldsBody, FieldsBodyInput, FieldsConfig, FieldsConfigInput, MarkdownField, SlotField, UploadField, ValidationRule, } from './schema.js';
3
+ export { CalendarFieldC, CURRENT_COMPATIBILITY_DATE, EmptyFieldC, FieldC, FieldGroupC, FieldsBodyC, FieldsBodyInputC, FieldsConfigC, FieldsConfigInputC, KIND, MarkdownBodyFieldC, MarkdownFieldC, NumberFieldC, SelectFieldC, SlotFieldC, SUPPORTED_COMPATIBILITY_DATES, StringFieldC, UploadFieldC, ValidationRuleC, createFieldsConfig, validationC, } from './schema.js';
4
+ export type { EmptyField, Field, FieldGroup, FieldsBody, FieldsBodyInput, FieldsConfig, FieldsConfigInput, MarkdownBodyField, MarkdownField, SlotField, UploadField, ValidationRule, } from './schema.js';
5
5
  export type { FieldsInstance } from '../../fields-instance.js';
6
6
  export type { FieldsSlotProps } from './slot-props.js';
7
7
  declare const _default: typeof __VLS_export;
@@ -96,6 +96,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
96
96
  style?: string | undefined;
97
97
  hidden?: string | undefined;
98
98
  hideLabel?: boolean | undefined;
99
+ } | {
100
+ id: string;
101
+ type: "markdown-body";
102
+ locale: readonly {
103
+ locale: "en" | "ja" | "ko" | "zh";
104
+ message: string;
105
+ }[];
106
+ inline?: boolean | undefined;
107
+ style?: string | undefined;
108
+ hidden?: string | undefined;
99
109
  } | {
100
110
  options: string;
101
111
  label: string;
@@ -300,6 +310,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
300
310
  style?: string | undefined;
301
311
  hidden?: string | undefined;
302
312
  hideLabel?: boolean | undefined;
313
+ } | {
314
+ id: string;
315
+ type: "markdown-body";
316
+ locale: readonly {
317
+ locale: "en" | "ja" | "ko" | "zh";
318
+ message: string;
319
+ }[];
320
+ inline?: boolean | undefined;
321
+ style?: string | undefined;
322
+ hidden?: string | undefined;
303
323
  } | {
304
324
  options: string;
305
325
  label: string;
@@ -515,6 +535,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
515
535
  style?: string | undefined;
516
536
  hidden?: string | undefined;
517
537
  hideLabel?: boolean | undefined;
538
+ } | {
539
+ id: string;
540
+ type: "markdown-body";
541
+ locale: readonly {
542
+ locale: "en" | "ja" | "ko" | "zh";
543
+ message: string;
544
+ }[];
545
+ inline?: boolean | undefined;
546
+ style?: string | undefined;
547
+ hidden?: string | undefined;
518
548
  } | {
519
549
  options: string;
520
550
  label: string;
@@ -719,6 +749,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
719
749
  style?: string | undefined;
720
750
  hidden?: string | undefined;
721
751
  hideLabel?: boolean | undefined;
752
+ } | {
753
+ id: string;
754
+ type: "markdown-body";
755
+ locale: readonly {
756
+ locale: "en" | "ja" | "ko" | "zh";
757
+ message: string;
758
+ }[];
759
+ inline?: boolean | undefined;
760
+ style?: string | undefined;
761
+ hidden?: string | undefined;
722
762
  } | {
723
763
  options: string;
724
764
  label: string;
@@ -934,6 +974,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
934
974
  style?: string | undefined;
935
975
  hidden?: string | undefined;
936
976
  hideLabel?: boolean | undefined;
977
+ } | {
978
+ id: string;
979
+ type: "markdown-body";
980
+ locale: readonly {
981
+ locale: "en" | "ja" | "ko" | "zh";
982
+ message: string;
983
+ }[];
984
+ inline?: boolean | undefined;
985
+ style?: string | undefined;
986
+ hidden?: string | undefined;
937
987
  } | {
938
988
  options: string;
939
989
  label: string;
@@ -1138,6 +1188,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1138
1188
  style?: string | undefined;
1139
1189
  hidden?: string | undefined;
1140
1190
  hideLabel?: boolean | undefined;
1191
+ } | {
1192
+ id: string;
1193
+ type: "markdown-body";
1194
+ locale: readonly {
1195
+ locale: "en" | "ja" | "ko" | "zh";
1196
+ message: string;
1197
+ }[];
1198
+ inline?: boolean | undefined;
1199
+ style?: string | undefined;
1200
+ hidden?: string | undefined;
1141
1201
  } | {
1142
1202
  options: string;
1143
1203
  label: string;
@@ -1351,6 +1411,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1351
1411
  style?: string | undefined;
1352
1412
  hidden?: string | undefined;
1353
1413
  hideLabel?: boolean | undefined;
1414
+ } | {
1415
+ id: string;
1416
+ type: "markdown-body";
1417
+ locale: readonly {
1418
+ locale: "en" | "ja" | "ko" | "zh";
1419
+ message: string;
1420
+ }[];
1421
+ inline?: boolean | undefined;
1422
+ style?: string | undefined;
1423
+ hidden?: string | undefined;
1354
1424
  } | {
1355
1425
  options: string;
1356
1426
  label: string;
@@ -1555,6 +1625,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1555
1625
  style?: string | undefined;
1556
1626
  hidden?: string | undefined;
1557
1627
  hideLabel?: boolean | undefined;
1628
+ } | {
1629
+ id: string;
1630
+ type: "markdown-body";
1631
+ locale: readonly {
1632
+ locale: "en" | "ja" | "ko" | "zh";
1633
+ message: string;
1634
+ }[];
1635
+ inline?: boolean | undefined;
1636
+ style?: string | undefined;
1637
+ hidden?: string | undefined;
1558
1638
  } | {
1559
1639
  options: string;
1560
1640
  label: string;
@@ -181,14 +181,23 @@ function getFieldContentStyle(field, config2) {
181
181
  }
182
182
  return style;
183
183
  }
184
+ function getMarkdownBodyContentStyle(field, config2) {
185
+ if (!usesContentsOrientation(config2)) {
186
+ return {};
187
+ }
188
+ return {
189
+ ...getFieldStyle(field),
190
+ gridColumn: "1 / -1"
191
+ };
192
+ }
184
193
  function isPassiveField(field) {
185
194
  return field.type === "slot" || field.type === "empty";
186
195
  }
187
- function isLabeledDisplayField(field) {
188
- return field.type === "markdown";
196
+ function isMarkdownDisplayField(field) {
197
+ return field.type === "markdown" || field.type === "markdown-body";
189
198
  }
190
199
  function isInteractiveField(field) {
191
- return !isLabeledDisplayField(field);
200
+ return !isMarkdownDisplayField(field);
192
201
  }
193
202
  function isFieldLabelHidden(field) {
194
203
  return field.hideLabel === true;
@@ -217,7 +226,7 @@ function getFieldValue(field) {
217
226
  }
218
227
  function initializeFieldValues(config2) {
219
228
  for (const field of getConfigFields(config2)) {
220
- if (isPassiveField(field) || isLabeledDisplayField(field) || !field.initialValue) {
229
+ if (isPassiveField(field) || isMarkdownDisplayField(field) || !field.initialValue) {
221
230
  continue;
222
231
  }
223
232
  const initialValueResult = tryEvaluateExpression(field.initialValue, { form: modelValue.value });
@@ -536,7 +545,7 @@ function validateField(field) {
536
545
  function validateFields() {
537
546
  const nextValidationErrors = {};
538
547
  for (const field of getConfigFields(displayConfig.value)) {
539
- if (isPassiveField(field) || isLabeledDisplayField(field)) {
548
+ if (isPassiveField(field) || isMarkdownDisplayField(field)) {
540
549
  continue;
541
550
  }
542
551
  const failure = getValidationFailure(field);
@@ -566,9 +575,19 @@ function renderValidationMessage(field) {
566
575
  }
567
576
  function renderMarkdownField(field) {
568
577
  const source = getLocalizedText(field.locale, locale.value) ?? "";
578
+ return renderMarkdownSource(source, false);
579
+ }
580
+ function renderMarkdownBodyField(field) {
581
+ const source = getLocalizedText(field.locale, locale.value) ?? "";
582
+ return renderMarkdownSource(source, field.inline === true);
583
+ }
584
+ function renderMarkdownSource(source, inline) {
569
585
  if (source.trim().length === 0) {
570
586
  return "";
571
587
  }
588
+ if (inline) {
589
+ return $md.inline`${source}`(mergeDslContexts({ form: modelValue.value }, dslContext));
590
+ }
572
591
  return $md.block`${source}`(mergeDslContexts({ form: modelValue.value }, dslContext));
573
592
  }
574
593
  function isCalendarDateDisabled(field, date) {
@@ -628,7 +647,7 @@ watch(config, (value) => {
628
647
  watchEffect(() => {
629
648
  const activePaths = /* @__PURE__ */ new Set();
630
649
  for (const field of getConfigFields(displayConfig.value)) {
631
- if (!isPassiveField(field) && !isFieldHidden(field) && !isLabeledDisplayField(field) && !isFieldDisabled(field)) {
650
+ if (!isPassiveField(field) && !isFieldHidden(field) && !isMarkdownDisplayField(field) && !isFieldDisabled(field)) {
632
651
  activePaths.add(field.path);
633
652
  }
634
653
  }
@@ -662,6 +681,7 @@ export {
662
681
  FieldsConfigC,
663
682
  FieldsConfigInputC,
664
683
  KIND,
684
+ MarkdownBodyFieldC,
665
685
  MarkdownFieldC,
666
686
  NumberFieldC,
667
687
  SelectFieldC,
@@ -770,6 +790,21 @@ export {
770
790
  />
771
791
  </FieldContent>
772
792
  </Field>
793
+ <Field
794
+ v-else-if="field.type === 'markdown-body' && !isFieldHidden(field)"
795
+ :orientation="getConfigOrientation(displayConfig)"
796
+ :style="getFieldContainerStyle(field, displayConfig)"
797
+ >
798
+ <FieldContent
799
+ :class="isConfigBordered(displayConfig) ? 'border-b border-r border-zinc-200 p-2' : void 0"
800
+ :style="getMarkdownBodyContentStyle(field, displayConfig)"
801
+ >
802
+ <div
803
+ data-slot="fields-markdown-body"
804
+ v-html="renderMarkdownBodyField(field)"
805
+ />
806
+ </FieldContent>
807
+ </Field>
773
808
  <Field
774
809
  v-else-if="field.type === 'upload' && !isFieldHidden(field)"
775
810
  :data-disabled="isFieldDisabled(field) ? 'true' : void 0"
@@ -1,7 +1,7 @@
1
1
  import { Effect } from 'effect';
2
2
  import type { CSSProperties } from 'vue';
3
- export { CalendarFieldC, CURRENT_COMPATIBILITY_DATE, EmptyFieldC, FieldC, FieldGroupC, FieldsBodyC, FieldsBodyInputC, FieldsConfigC, FieldsConfigInputC, KIND, MarkdownFieldC, NumberFieldC, SelectFieldC, SlotFieldC, SUPPORTED_COMPATIBILITY_DATES, StringFieldC, UploadFieldC, ValidationRuleC, createFieldsConfig, validationC, } from './schema.js';
4
- export type { EmptyField, Field, FieldGroup, FieldsBody, FieldsBodyInput, FieldsConfig, FieldsConfigInput, MarkdownField, SlotField, UploadField, ValidationRule, } from './schema.js';
3
+ export { CalendarFieldC, CURRENT_COMPATIBILITY_DATE, EmptyFieldC, FieldC, FieldGroupC, FieldsBodyC, FieldsBodyInputC, FieldsConfigC, FieldsConfigInputC, KIND, MarkdownBodyFieldC, MarkdownFieldC, NumberFieldC, SelectFieldC, SlotFieldC, SUPPORTED_COMPATIBILITY_DATES, StringFieldC, UploadFieldC, ValidationRuleC, createFieldsConfig, validationC, } from './schema.js';
4
+ export type { EmptyField, Field, FieldGroup, FieldsBody, FieldsBodyInput, FieldsConfig, FieldsConfigInput, MarkdownBodyField, MarkdownField, SlotField, UploadField, ValidationRule, } from './schema.js';
5
5
  export type { FieldsInstance } from '../../fields-instance.js';
6
6
  export type { FieldsSlotProps } from './slot-props.js';
7
7
  declare const _default: typeof __VLS_export;
@@ -96,6 +96,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
96
96
  style?: string | undefined;
97
97
  hidden?: string | undefined;
98
98
  hideLabel?: boolean | undefined;
99
+ } | {
100
+ id: string;
101
+ type: "markdown-body";
102
+ locale: readonly {
103
+ locale: "en" | "ja" | "ko" | "zh";
104
+ message: string;
105
+ }[];
106
+ inline?: boolean | undefined;
107
+ style?: string | undefined;
108
+ hidden?: string | undefined;
99
109
  } | {
100
110
  options: string;
101
111
  label: string;
@@ -300,6 +310,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
300
310
  style?: string | undefined;
301
311
  hidden?: string | undefined;
302
312
  hideLabel?: boolean | undefined;
313
+ } | {
314
+ id: string;
315
+ type: "markdown-body";
316
+ locale: readonly {
317
+ locale: "en" | "ja" | "ko" | "zh";
318
+ message: string;
319
+ }[];
320
+ inline?: boolean | undefined;
321
+ style?: string | undefined;
322
+ hidden?: string | undefined;
303
323
  } | {
304
324
  options: string;
305
325
  label: string;
@@ -515,6 +535,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
515
535
  style?: string | undefined;
516
536
  hidden?: string | undefined;
517
537
  hideLabel?: boolean | undefined;
538
+ } | {
539
+ id: string;
540
+ type: "markdown-body";
541
+ locale: readonly {
542
+ locale: "en" | "ja" | "ko" | "zh";
543
+ message: string;
544
+ }[];
545
+ inline?: boolean | undefined;
546
+ style?: string | undefined;
547
+ hidden?: string | undefined;
518
548
  } | {
519
549
  options: string;
520
550
  label: string;
@@ -719,6 +749,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
719
749
  style?: string | undefined;
720
750
  hidden?: string | undefined;
721
751
  hideLabel?: boolean | undefined;
752
+ } | {
753
+ id: string;
754
+ type: "markdown-body";
755
+ locale: readonly {
756
+ locale: "en" | "ja" | "ko" | "zh";
757
+ message: string;
758
+ }[];
759
+ inline?: boolean | undefined;
760
+ style?: string | undefined;
761
+ hidden?: string | undefined;
722
762
  } | {
723
763
  options: string;
724
764
  label: string;
@@ -934,6 +974,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
934
974
  style?: string | undefined;
935
975
  hidden?: string | undefined;
936
976
  hideLabel?: boolean | undefined;
977
+ } | {
978
+ id: string;
979
+ type: "markdown-body";
980
+ locale: readonly {
981
+ locale: "en" | "ja" | "ko" | "zh";
982
+ message: string;
983
+ }[];
984
+ inline?: boolean | undefined;
985
+ style?: string | undefined;
986
+ hidden?: string | undefined;
937
987
  } | {
938
988
  options: string;
939
989
  label: string;
@@ -1138,6 +1188,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1138
1188
  style?: string | undefined;
1139
1189
  hidden?: string | undefined;
1140
1190
  hideLabel?: boolean | undefined;
1191
+ } | {
1192
+ id: string;
1193
+ type: "markdown-body";
1194
+ locale: readonly {
1195
+ locale: "en" | "ja" | "ko" | "zh";
1196
+ message: string;
1197
+ }[];
1198
+ inline?: boolean | undefined;
1199
+ style?: string | undefined;
1200
+ hidden?: string | undefined;
1141
1201
  } | {
1142
1202
  options: string;
1143
1203
  label: string;
@@ -1351,6 +1411,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1351
1411
  style?: string | undefined;
1352
1412
  hidden?: string | undefined;
1353
1413
  hideLabel?: boolean | undefined;
1414
+ } | {
1415
+ id: string;
1416
+ type: "markdown-body";
1417
+ locale: readonly {
1418
+ locale: "en" | "ja" | "ko" | "zh";
1419
+ message: string;
1420
+ }[];
1421
+ inline?: boolean | undefined;
1422
+ style?: string | undefined;
1423
+ hidden?: string | undefined;
1354
1424
  } | {
1355
1425
  options: string;
1356
1426
  label: string;
@@ -1555,6 +1625,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
1555
1625
  style?: string | undefined;
1556
1626
  hidden?: string | undefined;
1557
1627
  hideLabel?: boolean | undefined;
1628
+ } | {
1629
+ id: string;
1630
+ type: "markdown-body";
1631
+ locale: readonly {
1632
+ locale: "en" | "ja" | "ko" | "zh";
1633
+ message: string;
1634
+ }[];
1635
+ inline?: boolean | undefined;
1636
+ style?: string | undefined;
1637
+ hidden?: string | undefined;
1558
1638
  } | {
1559
1639
  options: string;
1560
1640
  label: string;