@explorer-1/vue 0.2.22 → 0.2.24

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 (56) hide show
  1. package/components.d.ts +2 -0
  2. package/dist/explorer-1-vue.js +8119 -7836
  3. package/dist/explorer-1-vue.umd.cjs +14 -14
  4. package/dist/src/components/BaseAccordionItem/BaseAccordionItem.vue.d.ts +54 -0
  5. package/dist/src/components/BaseButton/BaseButton.stories.d.ts +0 -13
  6. package/dist/src/components/BaseButton/BaseButton.vue.d.ts +0 -14
  7. package/dist/src/components/BaseImageCaption/BaseImageCaption.vue.d.ts +18 -0
  8. package/dist/src/components/BaseModal/BaseModal.stories.d.ts +0 -26
  9. package/dist/src/components/BaseSwimlane/BaseSwimlane.vue.d.ts +2 -2
  10. package/dist/src/components/BaseTimer/BaseTimer.vue.d.ts +2 -2
  11. package/dist/src/components/BlockAccordion/BlockAccordion.stories.d.ts +25 -40
  12. package/dist/src/components/BlockAccordion/BlockAccordion.vue.d.ts +51 -0
  13. package/dist/src/components/BlockGist/BlockGist.stories.d.ts +19 -0
  14. package/dist/src/components/BlockGist/BlockGist.vue.d.ts +19 -0
  15. package/dist/src/components/BlockGist/GitHub404.vue.d.ts +2 -0
  16. package/dist/src/components/BlockLinkCard/BlockLinkCard.stories.d.ts +71 -15
  17. package/dist/src/components/BlockLinkCard/BlockLinkCard.vue.d.ts +10 -2
  18. package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +127 -27
  19. package/dist/src/components/BlockTeaser/BlockTeaser.vue.d.ts +3 -2
  20. package/dist/src/components/CalendarButton/CalendarButton.vue.d.ts +12 -2
  21. package/dist/src/components/LayoutHelper/LayoutHelper.vue.d.ts +1 -1
  22. package/dist/src/components/MetaPanel/MetaPanel.stories.d.ts +6 -2
  23. package/dist/src/components/MetadataEvent/MetadataEvent.vue.d.ts +8 -0
  24. package/dist/src/components/MixinFancybox/MixinFancybox.vue.d.ts +1 -1
  25. package/dist/src/components/NavDesktop/NavDesktop.stories.d.ts +49 -0
  26. package/dist/src/components/NavDropdownToggle/NavDropdownToggle.vue.d.ts +1 -1
  27. package/dist/src/docs/foundation/grid_layouthelpers.stories.d.ts +4 -4
  28. package/dist/src/interfaces.d.ts +4 -0
  29. package/dist/src/templates/PageContent/PageContent.vue.d.ts +1 -0
  30. package/dist/src/templates/edu/PageContentEdu.stories.d.ts +179 -2
  31. package/dist/src/templates/edu/PageEduEventDetail/PageEduEventDetail.stories.d.ts +37 -18
  32. package/dist/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.stories.d.ts +3 -1
  33. package/dist/src/templates/edu/PageEduLesson/PageEduLesson.stories.d.ts +28 -46
  34. package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +378 -81
  35. package/dist/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts +126 -27
  36. package/dist/style.css +1 -1
  37. package/package.json +2 -2
  38. package/src/components/BaseAccordionItem/BaseAccordionItem.vue +8 -11
  39. package/src/components/BlockAccordion/BlockAccordion.stories.js +64 -19
  40. package/src/components/BlockAccordion/BlockAccordion.vue +99 -18
  41. package/src/components/BlockLinkCardList/BlockLinkCardList.stories.js +110 -0
  42. package/src/components/BlockLinkCardList/BlockLinkCardList.vue +34 -0
  43. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +2 -0
  44. package/src/components/BlockStreamfield/BlockStreamfield.vue +36 -3
  45. package/src/components/MetadataEduResource/MetadataEduResource.stories.js +4 -1
  46. package/src/components/MetadataEduResource/MetadataEduResource.vue +14 -1
  47. package/src/components/NavJumpMenu/NavJumpMenu.vue +14 -2
  48. package/src/components/NavSecondary/NavSecondaryDropdown.vue +4 -5
  49. package/src/components/NavSecondary/NavSecondaryLink.vue +6 -4
  50. package/src/components/SearchSelectMenu/SearchSelectMenu.vue +1 -1
  51. package/src/docs/foundation/typography.stories.js +2 -0
  52. package/src/interfaces.ts +1 -0
  53. package/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.vue +1 -0
  54. package/src/templates/edu/PageEduLesson/PageEduLesson.vue +1 -0
  55. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +1 -0
  56. package/src/utils/rangeifyGrades.ts +1 -1
@@ -2,6 +2,7 @@ import { default as BlockStreamfield } from './BlockStreamfield.vue';
2
2
  declare namespace _default {
3
3
  export let title: string;
4
4
  export { BlockStreamfield as component };
5
+ export let tags: string[];
5
6
  export namespace argTypes {
6
7
  namespace variant {
7
8
  namespace control {
@@ -110,33 +111,6 @@ export namespace BlockStreamfieldTruncatedData {
110
111
  }
111
112
  export namespace BlockStreamfieldData {
112
113
  let body_2: ({
113
- blockType: string;
114
- heading: string;
115
- text: string;
116
- page: {
117
- url: string;
118
- };
119
- externalLink: string;
120
- } | {
121
- blockType: string;
122
- beforeImage: {
123
- src: {
124
- url: string;
125
- };
126
- srcCropped: {
127
- url: string;
128
- };
129
- };
130
- afterImage: {
131
- src: {
132
- url: string;
133
- };
134
- srcCropped: {
135
- url: string;
136
- };
137
- };
138
- caption: string;
139
- } | {
140
114
  blockType: string;
141
115
  fullBleed: boolean;
142
116
  image: {
@@ -185,6 +159,101 @@ export namespace BlockStreamfieldData {
185
159
  width: number;
186
160
  };
187
161
  };
162
+ } | {
163
+ blockType: string;
164
+ accordionItemsHeadingLevel: string;
165
+ accordionItems: {
166
+ blockType: string;
167
+ blocks: ({
168
+ blockType: string;
169
+ value: string;
170
+ blocks?: undefined;
171
+ } | {
172
+ blockType: string;
173
+ blocks: ({
174
+ blockType: string;
175
+ value: string;
176
+ } | {
177
+ blockType: string;
178
+ fullBleed: boolean;
179
+ image: {
180
+ alt: string;
181
+ caption: string;
182
+ credit: string;
183
+ detailUrl: string;
184
+ original: string;
185
+ src: {
186
+ height: number;
187
+ url: string;
188
+ width: number;
189
+ };
190
+ srcSet: string;
191
+ };
192
+ imageFullBleed: {
193
+ alt: string;
194
+ caption: string;
195
+ credit: string;
196
+ detailUrl: string;
197
+ original: string;
198
+ src: {
199
+ width: number;
200
+ height: number;
201
+ url: string;
202
+ };
203
+ srcCropped: {
204
+ width: number;
205
+ height: number;
206
+ url: string;
207
+ };
208
+ screenXs: {
209
+ url: string;
210
+ width: number;
211
+ };
212
+ screenLg: {
213
+ url: string;
214
+ width: number;
215
+ };
216
+ screenXl: {
217
+ url: string;
218
+ width: number;
219
+ };
220
+ screenThreexl: {
221
+ url: string;
222
+ width: number;
223
+ };
224
+ };
225
+ value?: undefined;
226
+ })[];
227
+ value?: undefined;
228
+ })[];
229
+ }[];
230
+ } | {
231
+ blockType: string;
232
+ heading: string;
233
+ text: string;
234
+ page: {
235
+ url: string;
236
+ };
237
+ externalLink: string;
238
+ } | {
239
+ blockType: string;
240
+ beforeImage: {
241
+ src: {
242
+ url: string;
243
+ };
244
+ srcCropped: {
245
+ url: string;
246
+ };
247
+ };
248
+ afterImage: {
249
+ src: {
250
+ url: string;
251
+ };
252
+ srcCropped: {
253
+ url: string;
254
+ };
255
+ };
256
+ caption: string;
188
257
  } | {
189
258
  id: string;
190
259
  blockType: string;
@@ -355,6 +424,9 @@ export namespace BlockStreamfieldData {
355
424
  heading: string;
356
425
  blockId: string;
357
426
  value?: undefined;
427
+ caption?: undefined;
428
+ id?: undefined;
429
+ url?: undefined;
358
430
  showTitle?: undefined;
359
431
  items?: undefined;
360
432
  field?: undefined;
@@ -363,6 +435,9 @@ export namespace BlockStreamfieldData {
363
435
  value: string;
364
436
  heading?: undefined;
365
437
  level?: undefined;
438
+ caption?: undefined;
439
+ id?: undefined;
440
+ url?: undefined;
366
441
  showTitle?: undefined;
367
442
  items?: undefined;
368
443
  field?: undefined;
@@ -371,6 +446,20 @@ export namespace BlockStreamfieldData {
371
446
  heading: string;
372
447
  level: string;
373
448
  value?: undefined;
449
+ caption?: undefined;
450
+ id?: undefined;
451
+ url?: undefined;
452
+ showTitle?: undefined;
453
+ items?: undefined;
454
+ field?: undefined;
455
+ } | {
456
+ blockType: string;
457
+ caption: string;
458
+ id: string;
459
+ url: string;
460
+ value?: undefined;
461
+ heading?: undefined;
462
+ level?: undefined;
374
463
  showTitle?: undefined;
375
464
  items?: undefined;
376
465
  field?: undefined;
@@ -405,6 +494,9 @@ export namespace BlockStreamfieldData {
405
494
  blockType: string;
406
495
  value?: undefined;
407
496
  level?: undefined;
497
+ caption?: undefined;
498
+ id?: undefined;
499
+ url?: undefined;
408
500
  showTitle?: undefined;
409
501
  items?: undefined;
410
502
  field?: undefined;
@@ -430,6 +522,9 @@ export namespace BlockStreamfieldData {
430
522
  value?: undefined;
431
523
  heading?: undefined;
432
524
  level?: undefined;
525
+ caption?: undefined;
526
+ id?: undefined;
527
+ url?: undefined;
433
528
  field?: undefined;
434
529
  } | {
435
530
  blockType: string;
@@ -441,6 +536,8 @@ export namespace BlockStreamfieldData {
441
536
  value?: undefined;
442
537
  heading?: undefined;
443
538
  level?: undefined;
539
+ id?: undefined;
540
+ url?: undefined;
444
541
  showTitle?: undefined;
445
542
  items?: undefined;
446
543
  field?: undefined;
@@ -496,6 +593,9 @@ export namespace BlockStreamfieldData {
496
593
  value?: undefined;
497
594
  heading?: undefined;
498
595
  level?: undefined;
596
+ caption?: undefined;
597
+ id?: undefined;
598
+ url?: undefined;
499
599
  showTitle?: undefined;
500
600
  })[];
501
601
  export { body_2 as body };
@@ -58,9 +58,10 @@ declare const _default: import('vue').DefineComponent<{
58
58
  width: string;
59
59
  height: string;
60
60
  };
61
- theTeaserPage(): teaserPageObject | null;
61
+ theTeaserPage(): teaserPageObject | undefined;
62
+ teaserPageBlock(): teaserPageObject | undefined;
62
63
  }, {
63
- getTeaserPageBlock(): teaserPageBlock[] | null;
64
+ getTeaserPageBlock(page: any[]): teaserPageBlock[] | null;
64
65
  }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
65
66
  customLabel: {
66
67
  type: StringConstructor;
@@ -6,9 +6,13 @@ declare const _default: import('vue').DefineComponent<{
6
6
  required: false;
7
7
  default: boolean;
8
8
  };
9
+ startDate: {
10
+ type: StringConstructor;
11
+ default: undefined;
12
+ };
9
13
  startDatetime: {
10
14
  type: StringConstructor;
11
- required: true;
15
+ default: undefined;
12
16
  };
13
17
  endDatetime: {
14
18
  type: StringConstructor;
@@ -44,9 +48,13 @@ declare const _default: import('vue').DefineComponent<{
44
48
  required: false;
45
49
  default: boolean;
46
50
  };
51
+ startDate: {
52
+ type: StringConstructor;
53
+ default: undefined;
54
+ };
47
55
  startDatetime: {
48
56
  type: StringConstructor;
49
- required: true;
57
+ default: undefined;
50
58
  };
51
59
  endDatetime: {
52
60
  type: StringConstructor;
@@ -70,6 +78,8 @@ declare const _default: import('vue').DefineComponent<{
70
78
  };
71
79
  }>>, {
72
80
  title: string;
81
+ startDate: string;
82
+ startDatetime: string;
73
83
  endDatetime: string;
74
84
  location: string;
75
85
  description: string;
@@ -27,7 +27,7 @@ declare const _default: import('vue').DefineComponent<{
27
27
  default: boolean;
28
28
  };
29
29
  }>>, {
30
- indent: string;
31
30
  fullBleed: boolean;
31
+ indent: string;
32
32
  }, {}>;
33
33
  export default _default;
@@ -31,8 +31,12 @@ export namespace BaseStory {
31
31
  let negativeTop: boolean;
32
32
  let negativeBottom: boolean;
33
33
  let button: string;
34
- let primarySubject: string;
35
- let additionalSubjects: string[];
34
+ namespace primarySubject {
35
+ let subject: string;
36
+ }
37
+ let additionalSubjects: {
38
+ subject: string;
39
+ }[];
36
40
  let time: string;
37
41
  let gradeLevels: {
38
42
  gradeLevel: string;
@@ -4,19 +4,27 @@ interface MetadataEventProps {
4
4
  event: EventCardObject;
5
5
  compact?: boolean;
6
6
  allowBreak?: boolean;
7
+ showLocation?: boolean;
8
+ showTime?: boolean;
7
9
  }
8
10
  declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MetadataEventProps>, {
9
11
  event: undefined;
10
12
  compact: boolean;
11
13
  allowBreak: boolean;
14
+ showLocation: boolean;
15
+ showTime: boolean;
12
16
  }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MetadataEventProps>, {
13
17
  event: undefined;
14
18
  compact: boolean;
15
19
  allowBreak: boolean;
20
+ showLocation: boolean;
21
+ showTime: boolean;
16
22
  }>>>, {
17
23
  compact: boolean;
18
24
  event: EventCardObject;
19
25
  allowBreak: boolean;
26
+ showLocation: boolean;
27
+ showTime: boolean;
20
28
  }, {}>;
21
29
  export default _default;
22
30
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -144,10 +144,10 @@ declare const _default: import('vue').DefineComponent<{
144
144
  validator: (prop: unknown) => boolean;
145
145
  };
146
146
  }>>, {
147
- theme: string;
148
147
  infinite: boolean;
149
148
  showThumbnails: boolean;
150
149
  animated: boolean;
151
150
  galleryName: string;
151
+ theme: string;
152
152
  }, {}>;
153
153
  export default _default;
@@ -226,6 +226,55 @@ export namespace NavDesktopData {
226
226
  description?: undefined;
227
227
  title?: undefined;
228
228
  })[];
229
+ } | {
230
+ titleLink: {
231
+ linkPage: {
232
+ title: string;
233
+ url: string;
234
+ };
235
+ title: null;
236
+ };
237
+ menuColumns: ({
238
+ blockType: string;
239
+ label: string;
240
+ highlight: {
241
+ label: string;
242
+ title: string;
243
+ url: string;
244
+ thumbnailImage: {
245
+ src: {
246
+ url: string;
247
+ width: number;
248
+ height: number;
249
+ };
250
+ };
251
+ };
252
+ } | {
253
+ blockType: string;
254
+ description: string;
255
+ title: string;
256
+ } | {
257
+ blockType: string;
258
+ heading: string;
259
+ headingPage: {
260
+ url: string;
261
+ };
262
+ links: ({
263
+ linkPage: {
264
+ title: string;
265
+ url: string;
266
+ };
267
+ title: string;
268
+ path: null;
269
+ } | {
270
+ linkPage: null;
271
+ title: string;
272
+ path: string;
273
+ })[];
274
+ description?: undefined;
275
+ title?: undefined;
276
+ })[];
277
+ blockType: string;
229
278
  })[];
230
279
  let breadcrumb: string;
231
280
  }
@@ -34,7 +34,7 @@ declare const _default: import('vue').DefineComponent<{
34
34
  onToggleClicked?: ((...args: any[]) => any) | undefined;
35
35
  }, {
36
36
  path: string;
37
- invert: boolean;
38
37
  ariaExpanded: boolean;
38
+ invert: boolean;
39
39
  }, {}>;
40
40
  export default _default;
@@ -48,8 +48,8 @@ export function BaseWidth(args: any): {
48
48
  default: boolean;
49
49
  };
50
50
  }>>, {
51
- indent: string;
52
51
  fullBleed: boolean;
52
+ indent: string;
53
53
  }, {}>;
54
54
  };
55
55
  setup(): {
@@ -90,8 +90,8 @@ export function ColTwoStart(args: any): {
90
90
  default: boolean;
91
91
  };
92
92
  }>>, {
93
- indent: string;
94
93
  fullBleed: boolean;
94
+ indent: string;
95
95
  }, {}>;
96
96
  };
97
97
  setup(): {
@@ -133,8 +133,8 @@ export function ColThreeStart(args: any): {
133
133
  default: boolean;
134
134
  };
135
135
  }>>, {
136
- indent: string;
137
136
  fullBleed: boolean;
137
+ indent: string;
138
138
  }, {}>;
139
139
  };
140
140
  setup(): {
@@ -176,8 +176,8 @@ export function ColFourStart(args: any): {
176
176
  default: boolean;
177
177
  };
178
178
  }>>, {
179
- indent: string;
180
179
  fullBleed: boolean;
180
+ indent: string;
181
181
  }, {}>;
182
182
  };
183
183
  setup(): {
@@ -98,6 +98,9 @@ export interface FormOption {
98
98
  export interface Card {
99
99
  __typename?: string;
100
100
  type?: string;
101
+ parent?: {
102
+ title: string;
103
+ };
101
104
  url?: string;
102
105
  externalLink?: string;
103
106
  page?: Card | EventCardObject | EduResourceCardObject;
@@ -177,6 +180,7 @@ export type MetadataType = 'event' | 'resource';
177
180
  export interface LabelObject {
178
181
  label?: string;
179
182
  variant: string;
183
+ type?: MetadataType;
180
184
  }
181
185
  export interface PillDictionaryInterface {
182
186
  [EDUExplainerArticlePage: string]: LabelObject;
@@ -5,6 +5,7 @@ declare const _default: import('vue').DefineComponent<{
5
5
  default: undefined;
6
6
  };
7
7
  }, unknown, unknown, {
8
+ displayLabel(): any;
8
9
  heroInline(): boolean;
9
10
  hideH1(): boolean;
10
11
  h1LayoutHelperClasses(): "lg:mt-12 mt-5" | "lg:mt-12 lg:mb-18 edu:lg:mb-12 mt-5 mb-10 edu:mb-8";
@@ -1,5 +1,4 @@
1
1
  import { default as PageContent } from './../PageContent/PageContent.vue';
2
- import { ContentPageData } from './../PageContent/PageContent.stories.js';
3
2
  declare namespace _default {
4
3
  export let title: string;
5
4
  export { PageContent as component };
@@ -23,6 +22,184 @@ export default _default;
23
22
  export namespace BaseStory {
24
23
  let name: string;
25
24
  namespace args {
26
- export { ContentPageData as data };
25
+ let data: {
26
+ displayLabel: undefined;
27
+ parent: {
28
+ title: string;
29
+ };
30
+ url: string;
31
+ breadcrumb: string;
32
+ title: string;
33
+ heroPosition: string;
34
+ heroImage: {
35
+ src: {
36
+ url: string;
37
+ width: number;
38
+ height: number;
39
+ };
40
+ screenXs: {
41
+ url: string;
42
+ width: number;
43
+ };
44
+ screenSm: {
45
+ url: string;
46
+ width: number;
47
+ };
48
+ screenMd: {
49
+ url: string;
50
+ width: number;
51
+ };
52
+ screenLg: {
53
+ url: string;
54
+ width: number;
55
+ };
56
+ screenXl: {
57
+ url: string;
58
+ width: number;
59
+ };
60
+ screenTwoxl: {
61
+ url: string;
62
+ width: number;
63
+ };
64
+ screenThreexl: {
65
+ url: string;
66
+ width: number;
67
+ };
68
+ alt: string;
69
+ caption: string;
70
+ credit: string;
71
+ detailUrl: string;
72
+ };
73
+ heroImageInline: {
74
+ alt: string;
75
+ caption: string;
76
+ credit: string;
77
+ detailUrl: string;
78
+ original: string;
79
+ src: {
80
+ height: number;
81
+ url: string;
82
+ width: number;
83
+ };
84
+ srcSet: string;
85
+ };
86
+ body: ({
87
+ blockType: string;
88
+ heading: string;
89
+ level: string;
90
+ size: string;
91
+ blockId: string;
92
+ } | {
93
+ blockType: string;
94
+ beforeImage: {
95
+ src: {
96
+ url: string;
97
+ };
98
+ srcCropped: {
99
+ url: string;
100
+ };
101
+ };
102
+ afterImage: {
103
+ src: {
104
+ url: string;
105
+ };
106
+ srcCropped: {
107
+ url: string;
108
+ };
109
+ };
110
+ caption: string;
111
+ } | {
112
+ blockType: string;
113
+ heading: string;
114
+ listItem: {
115
+ text: string;
116
+ }[];
117
+ } | {
118
+ blockType: string;
119
+ title: string;
120
+ caption: string;
121
+ url: string;
122
+ } | {
123
+ blockType: string;
124
+ value: string;
125
+ })[];
126
+ relatedLinks: {
127
+ blockType: string;
128
+ heading: string;
129
+ links: ({
130
+ text: string;
131
+ document: {
132
+ url: string;
133
+ };
134
+ page: string;
135
+ externalLink: string;
136
+ } | {
137
+ text: string;
138
+ document: string;
139
+ page: {
140
+ url: string;
141
+ };
142
+ externalLink: string;
143
+ } | {
144
+ text: string;
145
+ document: string;
146
+ page: string;
147
+ externalLink: string;
148
+ })[];
149
+ }[];
150
+ relatedContentHeading: string;
151
+ relatedContent: ({
152
+ url: string;
153
+ title: string;
154
+ slug: string;
155
+ label: string;
156
+ thumbnailImage: {
157
+ src: {
158
+ url: string;
159
+ width: number;
160
+ height: number;
161
+ };
162
+ alt: string;
163
+ };
164
+ } | {
165
+ url: string;
166
+ title: string;
167
+ slug: string;
168
+ thumbnailImage: {
169
+ src: {
170
+ url: string;
171
+ width: number;
172
+ height: number;
173
+ };
174
+ alt: string;
175
+ };
176
+ label?: undefined;
177
+ } | {
178
+ label: string;
179
+ thumbnailImage: null;
180
+ title: string;
181
+ externalLink: string;
182
+ page?: undefined;
183
+ } | {
184
+ page: {
185
+ __typename: string;
186
+ label: string;
187
+ thumbnailImage: {
188
+ src: {
189
+ url: string;
190
+ width: number;
191
+ height: number;
192
+ };
193
+ };
194
+ title: string;
195
+ url: string;
196
+ };
197
+ label?: undefined;
198
+ thumbnailImage?: undefined;
199
+ title?: undefined;
200
+ externalLink?: undefined;
201
+ })[];
202
+ clearanceNumber: string;
203
+ };
27
204
  }
28
205
  }