@progress/kendo-angular-dateinputs 21.1.1-develop.2 → 21.2.0-develop.10

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 (32) hide show
  1. package/codemods/utils.js +805 -394
  2. package/codemods/v19/datepicker-subtitle.js +9 -12
  3. package/codemods/v19/datepicker-title.js +9 -12
  4. package/codemods/v19/daterange-popup-subtitle.js +9 -12
  5. package/codemods/v19/daterange-popup-title.js +9 -12
  6. package/codemods/v19/datetimepicker-subtitle.js +9 -12
  7. package/codemods/v19/datetimepicker-title.js +9 -12
  8. package/codemods/v19/timepicker-subtitle.js +9 -12
  9. package/codemods/v19/timepicker-title.js +9 -12
  10. package/esm2022/calendar/calendar.component.mjs +224 -223
  11. package/esm2022/calendar/footer.component.mjs +31 -29
  12. package/esm2022/calendar/header.component.mjs +157 -145
  13. package/esm2022/calendar/horizontal-view-list.component.mjs +139 -123
  14. package/esm2022/calendar/multiview-calendar.component.mjs +112 -109
  15. package/esm2022/calendar/navigation.component.mjs +55 -49
  16. package/esm2022/calendar/services/navigation.service.mjs +2 -2
  17. package/esm2022/calendar/view-list.component.mjs +148 -135
  18. package/esm2022/calendar/view.component.mjs +107 -89
  19. package/esm2022/common/utils.mjs +2 -2
  20. package/esm2022/dateinput/dateinput.component.mjs +142 -137
  21. package/esm2022/datepicker/datepicker.component.mjs +317 -305
  22. package/esm2022/daterange/date-range-input.mjs +2 -2
  23. package/esm2022/daterange/date-range-popup.component.mjs +266 -255
  24. package/esm2022/daterange/date-range.component.mjs +12 -9
  25. package/esm2022/datetimepicker/datetimepicker.component.mjs +679 -659
  26. package/esm2022/package-metadata.mjs +2 -2
  27. package/esm2022/timepicker/timelist.component.mjs +57 -53
  28. package/esm2022/timepicker/timepicker.component.mjs +381 -369
  29. package/esm2022/timepicker/timeselector.component.mjs +140 -125
  30. package/fesm2022/progress-kendo-angular-dateinputs.mjs +2956 -2796
  31. package/package.json +12 -13
  32. package/codemods/template-transformer/index.js +0 -96
@@ -6,7 +6,7 @@ import { Component, HostBinding, Input, TemplateRef } from '@angular/core';
6
6
  import { getToday } from '../util';
7
7
  import { IntlService } from '@progress/kendo-angular-intl';
8
8
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
9
- import { NgIf, NgTemplateOutlet } from '@angular/common';
9
+ import { NgTemplateOutlet } from '@angular/common';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@progress/kendo-angular-intl";
12
12
  /**
@@ -23,45 +23,47 @@ export class FooterComponent {
23
23
  this.intl = intl;
24
24
  }
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterComponent, deps: [{ token: i1.IntlService }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FooterComponent, isStandalone: true, selector: "kendo-calendar-footer", inputs: { footerTemplateRef: "footerTemplateRef", activeViewValue: "activeViewValue", currentDate: "currentDate" }, host: { properties: { "class.k-calendar-footer": "this.showFooter" } }, ngImport: i0, template: `
27
- <ng-template *ngIf="footerTemplateRef; else defaultRendering"
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FooterComponent, isStandalone: true, selector: "kendo-calendar-footer", inputs: { footerTemplateRef: "footerTemplateRef", activeViewValue: "activeViewValue", currentDate: "currentDate" }, host: { properties: { "class.k-calendar-footer": "this.showFooter" } }, ngImport: i0, template: `
27
+ @if (footerTemplateRef) {
28
+ <ng-template
28
29
  [ngTemplateOutlet]="footerTemplateRef"
29
30
  [ngTemplateOutletContext]="{ activeView: activeViewValue, date: currentDate }">
30
- </ng-template>
31
- <ng-template #defaultRendering>
32
- <button kendoButton
33
- fillMode="flat"
34
- themeColor="primary"
35
- class="k-calendar-nav-today"
36
- type="button"
37
- tabindex="-1">
38
- {{intl.formatDate(getToday(), 'D')}}
39
- </button>
40
- </ng-template>
41
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
31
+ </ng-template>
32
+ } @else {
33
+ <button kendoButton
34
+ fillMode="flat"
35
+ themeColor="primary"
36
+ class="k-calendar-nav-today"
37
+ type="button"
38
+ tabindex="-1">
39
+ {{intl.formatDate(getToday(), 'D')}}
40
+ </button>
41
+ }
42
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
42
43
  }
43
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterComponent, decorators: [{
44
45
  type: Component,
45
46
  args: [{
46
47
  selector: 'kendo-calendar-footer',
47
48
  template: `
48
- <ng-template *ngIf="footerTemplateRef; else defaultRendering"
49
+ @if (footerTemplateRef) {
50
+ <ng-template
49
51
  [ngTemplateOutlet]="footerTemplateRef"
50
52
  [ngTemplateOutletContext]="{ activeView: activeViewValue, date: currentDate }">
51
- </ng-template>
52
- <ng-template #defaultRendering>
53
- <button kendoButton
54
- fillMode="flat"
55
- themeColor="primary"
56
- class="k-calendar-nav-today"
57
- type="button"
58
- tabindex="-1">
59
- {{intl.formatDate(getToday(), 'D')}}
60
- </button>
61
- </ng-template>
62
- `,
53
+ </ng-template>
54
+ } @else {
55
+ <button kendoButton
56
+ fillMode="flat"
57
+ themeColor="primary"
58
+ class="k-calendar-nav-today"
59
+ type="button"
60
+ tabindex="-1">
61
+ {{intl.formatDate(getToday(), 'D')}}
62
+ </button>
63
+ }
64
+ `,
63
65
  standalone: true,
64
- imports: [NgIf, NgTemplateOutlet, ButtonComponent]
66
+ imports: [NgTemplateOutlet, ButtonComponent]
65
67
  }]
66
68
  }], ctorParameters: () => [{ type: i1.IntlService }], propDecorators: { showFooter: [{
67
69
  type: HostBinding,
@@ -15,7 +15,7 @@ import { Subscription } from 'rxjs';
15
15
  import { chevronLeftIcon, chevronRightIcon } from '@progress/kendo-svg-icons';
16
16
  import { EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
17
17
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
18
- import { NgIf, NgTemplateOutlet } from '@angular/common';
18
+ import { NgTemplateOutlet } from '@angular/common';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "./services/bus-view.service";
21
21
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -144,175 +144,187 @@ export class HeaderComponent {
144
144
  this.cdr.markForCheck();
145
145
  }
146
146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.BusViewService }, { token: i0.ChangeDetectorRef }, { token: i2.LocalizationService }, { token: i3.IntlService }, { token: i4.DisabledDatesService }], target: i0.ɵɵFactoryTarget.Component });
147
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HeaderComponent, isStandalone: true, selector: "kendo-calendar-header", inputs: { activeView: "activeView", currentDate: "currentDate", min: "min", max: "max", rangeLength: "rangeLength", titleTemplateRef: "titleTemplateRef", headerTemplateRef: "headerTemplateRef", isPrevDisabled: "isPrevDisabled", isNextDisabled: "isNextDisabled", showNavigationButtons: "showNavigationButtons", orientation: "orientation", id: "id", size: "size" }, outputs: { todayButtonClick: "todayButtonClick", prevButtonClick: "prevButtonClick", nextButtonClick: "nextButtonClick" }, host: { properties: { "class.k-calendar-header": "this.getComponentClass", "class.k-vstack": "this.verticalHostClass" } }, usesOnChanges: true, ngImport: i0, template: `
148
- <ng-template *ngIf="headerTemplateRef; else defaultRendering"
149
- [ngTemplateOutlet]="headerTemplateRef"
150
- [ngTemplateOutletContext]="{ title: title, activeView: activeViewValue, date: currentDate }">
151
- </ng-template>
152
- <ng-template #defaultRendering>
153
- <button
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderComponent, isStandalone: true, selector: "kendo-calendar-header", inputs: { activeView: "activeView", currentDate: "currentDate", min: "min", max: "max", rangeLength: "rangeLength", titleTemplateRef: "titleTemplateRef", headerTemplateRef: "headerTemplateRef", isPrevDisabled: "isPrevDisabled", isNextDisabled: "isNextDisabled", showNavigationButtons: "showNavigationButtons", orientation: "orientation", id: "id", size: "size" }, outputs: { todayButtonClick: "todayButtonClick", prevButtonClick: "prevButtonClick", nextButtonClick: "nextButtonClick" }, host: { properties: { "class.k-calendar-header": "this.getComponentClass", "class.k-vstack": "this.verticalHostClass" } }, usesOnChanges: true, ngImport: i0, template: `
148
+ @if (headerTemplateRef) {
149
+ <ng-template
150
+ [ngTemplateOutlet]="headerTemplateRef"
151
+ [ngTemplateOutletContext]="{ title: title, activeView: activeViewValue, date: currentDate }">
152
+ </ng-template>
153
+ } @else {
154
+ <button
155
+ kendoButton
156
+ class="k-calendar-title"
157
+ role="button"
158
+ [id]="id"
159
+ type="button"
160
+ fillMode="flat"
161
+ [size]="size"
162
+ themeColor="primary"
163
+ tabindex="-1"
164
+ [disabled]="!navigate"
165
+ [kendoEventsOutsideAngular]="{
166
+ click: handleNavigation
167
+ }"
168
+ [title]="parentViewButtonTitle"
169
+ [scope]="this">
170
+ @if (!titleTemplateRef) {
171
+ {{title}}
172
+ }
173
+ @if (titleTemplateRef) {
174
+ <ng-template
175
+ [ngTemplateOutlet]="titleTemplateRef"
176
+ [ngTemplateOutletContext]="{ $implicit: title, activeView: activeViewValue, date: currentDate }"
177
+ ></ng-template>
178
+ }
179
+ </button>
180
+ <span class="k-spacer"></span>
181
+ <span class="k-calendar-nav">
182
+ @if (showNavigationButtons) {
183
+ <button
154
184
  kendoButton
155
- class="k-calendar-title"
156
- role="button"
157
- [id]="id"
158
- type="button"
159
185
  fillMode="flat"
160
186
  [size]="size"
161
- themeColor="primary"
187
+ [svgIcon]="chevronLeftIcon"
188
+ icon="chevron-left"
162
189
  tabindex="-1"
163
- [disabled]="!navigate"
164
- [kendoEventsOutsideAngular]="{
165
- click: handleNavigation
166
- }"
167
- [title]="parentViewButtonTitle"
168
- [scope]="this">
169
- <ng-template [ngIf]="!titleTemplateRef">{{title}}</ng-template>
170
- <ng-template
171
- [ngIf]="titleTemplateRef"
172
- [ngTemplateOutlet]="titleTemplateRef"
173
- [ngTemplateOutletContext]="{ $implicit: title, activeView: activeViewValue, date: currentDate }"
174
- ></ng-template>
175
- </button>
176
- <span class="k-spacer"></span>
177
- <span class="k-calendar-nav">
178
- <button
179
- *ngIf="showNavigationButtons"
180
- kendoButton
181
- fillMode="flat"
182
- [size]="size"
183
- [svgIcon]="chevronLeftIcon"
184
- icon="chevron-left"
185
- tabindex="-1"
186
- type="button"
187
- class="k-calendar-nav-prev"
188
- [attr.aria-disabled]="isPrevDisabled"
189
- [disabled]="isPrevDisabled"
190
- [title]="prevButtonTitle"
191
- (click)="prevButtonClick.emit()"
190
+ type="button"
191
+ class="k-calendar-nav-prev"
192
+ [attr.aria-disabled]="isPrevDisabled"
193
+ [disabled]="isPrevDisabled"
194
+ [title]="prevButtonTitle"
195
+ (click)="prevButtonClick.emit()"
192
196
  >
193
- </button>
194
- <button
195
- kendoButton
196
- class="k-calendar-nav-today"
197
- fillMode="flat"
198
- role="link"
199
- [size]="size"
200
- [disabled]="!todayAvailable"
197
+ </button>
198
+ }
199
+ <button
200
+ kendoButton
201
+ class="k-calendar-nav-today"
202
+ fillMode="flat"
203
+ role="link"
204
+ [size]="size"
205
+ [disabled]="!todayAvailable"
201
206
  [kendoEventsOutsideAngular]="{
202
207
  click: handleTodayClick
203
208
  }"
204
- [scope]="this"
205
- type="button"
206
- >
207
- {{ todayMessage }}
208
- </button>
209
- <button
210
- *ngIf="showNavigationButtons"
211
- kendoButton
212
- fillMode="flat"
213
- [size]="size"
214
- [svgIcon]="chevronRightIcon"
215
- icon="chevron-right"
216
- class="k-calendar-nav-next"
217
- tabindex="-1"
218
- type="button"
219
- [attr.aria-disabled]="isNextDisabled"
220
- [disabled]="isNextDisabled"
221
- [title]="nextButtonTitle"
222
- (click)="nextButtonClick.emit()"
209
+ [scope]="this"
210
+ type="button"
211
+ >
212
+ {{ todayMessage }}
213
+ </button>
214
+ @if (showNavigationButtons) {
215
+ <button
216
+ kendoButton
217
+ fillMode="flat"
218
+ [size]="size"
219
+ [svgIcon]="chevronRightIcon"
220
+ icon="chevron-right"
221
+ class="k-calendar-nav-next"
222
+ tabindex="-1"
223
+ type="button"
224
+ [attr.aria-disabled]="isNextDisabled"
225
+ [disabled]="isNextDisabled"
226
+ [title]="nextButtonTitle"
227
+ (click)="nextButtonClick.emit()"
223
228
  >
224
- </button>
225
- </span>
226
- </ng-template>
227
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
229
+ </button>
230
+ }
231
+ </span>
232
+ }
233
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
228
234
  }
229
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderComponent, decorators: [{
230
236
  type: Component,
231
237
  args: [{
232
238
  selector: 'kendo-calendar-header',
233
239
  template: `
234
- <ng-template *ngIf="headerTemplateRef; else defaultRendering"
235
- [ngTemplateOutlet]="headerTemplateRef"
236
- [ngTemplateOutletContext]="{ title: title, activeView: activeViewValue, date: currentDate }">
237
- </ng-template>
238
- <ng-template #defaultRendering>
239
- <button
240
+ @if (headerTemplateRef) {
241
+ <ng-template
242
+ [ngTemplateOutlet]="headerTemplateRef"
243
+ [ngTemplateOutletContext]="{ title: title, activeView: activeViewValue, date: currentDate }">
244
+ </ng-template>
245
+ } @else {
246
+ <button
247
+ kendoButton
248
+ class="k-calendar-title"
249
+ role="button"
250
+ [id]="id"
251
+ type="button"
252
+ fillMode="flat"
253
+ [size]="size"
254
+ themeColor="primary"
255
+ tabindex="-1"
256
+ [disabled]="!navigate"
257
+ [kendoEventsOutsideAngular]="{
258
+ click: handleNavigation
259
+ }"
260
+ [title]="parentViewButtonTitle"
261
+ [scope]="this">
262
+ @if (!titleTemplateRef) {
263
+ {{title}}
264
+ }
265
+ @if (titleTemplateRef) {
266
+ <ng-template
267
+ [ngTemplateOutlet]="titleTemplateRef"
268
+ [ngTemplateOutletContext]="{ $implicit: title, activeView: activeViewValue, date: currentDate }"
269
+ ></ng-template>
270
+ }
271
+ </button>
272
+ <span class="k-spacer"></span>
273
+ <span class="k-calendar-nav">
274
+ @if (showNavigationButtons) {
275
+ <button
240
276
  kendoButton
241
- class="k-calendar-title"
242
- role="button"
243
- [id]="id"
244
- type="button"
245
277
  fillMode="flat"
246
278
  [size]="size"
247
- themeColor="primary"
279
+ [svgIcon]="chevronLeftIcon"
280
+ icon="chevron-left"
248
281
  tabindex="-1"
249
- [disabled]="!navigate"
250
- [kendoEventsOutsideAngular]="{
251
- click: handleNavigation
252
- }"
253
- [title]="parentViewButtonTitle"
254
- [scope]="this">
255
- <ng-template [ngIf]="!titleTemplateRef">{{title}}</ng-template>
256
- <ng-template
257
- [ngIf]="titleTemplateRef"
258
- [ngTemplateOutlet]="titleTemplateRef"
259
- [ngTemplateOutletContext]="{ $implicit: title, activeView: activeViewValue, date: currentDate }"
260
- ></ng-template>
261
- </button>
262
- <span class="k-spacer"></span>
263
- <span class="k-calendar-nav">
264
- <button
265
- *ngIf="showNavigationButtons"
266
- kendoButton
267
- fillMode="flat"
268
- [size]="size"
269
- [svgIcon]="chevronLeftIcon"
270
- icon="chevron-left"
271
- tabindex="-1"
272
- type="button"
273
- class="k-calendar-nav-prev"
274
- [attr.aria-disabled]="isPrevDisabled"
275
- [disabled]="isPrevDisabled"
276
- [title]="prevButtonTitle"
277
- (click)="prevButtonClick.emit()"
282
+ type="button"
283
+ class="k-calendar-nav-prev"
284
+ [attr.aria-disabled]="isPrevDisabled"
285
+ [disabled]="isPrevDisabled"
286
+ [title]="prevButtonTitle"
287
+ (click)="prevButtonClick.emit()"
278
288
  >
279
- </button>
280
- <button
281
- kendoButton
282
- class="k-calendar-nav-today"
283
- fillMode="flat"
284
- role="link"
285
- [size]="size"
286
- [disabled]="!todayAvailable"
289
+ </button>
290
+ }
291
+ <button
292
+ kendoButton
293
+ class="k-calendar-nav-today"
294
+ fillMode="flat"
295
+ role="link"
296
+ [size]="size"
297
+ [disabled]="!todayAvailable"
287
298
  [kendoEventsOutsideAngular]="{
288
299
  click: handleTodayClick
289
300
  }"
290
- [scope]="this"
291
- type="button"
292
- >
293
- {{ todayMessage }}
294
- </button>
295
- <button
296
- *ngIf="showNavigationButtons"
297
- kendoButton
298
- fillMode="flat"
299
- [size]="size"
300
- [svgIcon]="chevronRightIcon"
301
- icon="chevron-right"
302
- class="k-calendar-nav-next"
303
- tabindex="-1"
304
- type="button"
305
- [attr.aria-disabled]="isNextDisabled"
306
- [disabled]="isNextDisabled"
307
- [title]="nextButtonTitle"
308
- (click)="nextButtonClick.emit()"
301
+ [scope]="this"
302
+ type="button"
303
+ >
304
+ {{ todayMessage }}
305
+ </button>
306
+ @if (showNavigationButtons) {
307
+ <button
308
+ kendoButton
309
+ fillMode="flat"
310
+ [size]="size"
311
+ [svgIcon]="chevronRightIcon"
312
+ icon="chevron-right"
313
+ class="k-calendar-nav-next"
314
+ tabindex="-1"
315
+ type="button"
316
+ [attr.aria-disabled]="isNextDisabled"
317
+ [disabled]="isNextDisabled"
318
+ [title]="nextButtonTitle"
319
+ (click)="nextButtonClick.emit()"
309
320
  >
310
- </button>
311
- </span>
312
- </ng-template>
313
- `,
321
+ </button>
322
+ }
323
+ </span>
324
+ }
325
+ `,
314
326
  standalone: true,
315
- imports: [NgIf, NgTemplateOutlet, ButtonComponent, EventsOutsideAngularDirective]
327
+ imports: [NgTemplateOutlet, ButtonComponent, EventsOutsideAngularDirective]
316
328
  }]
317
329
  }], ctorParameters: () => [{ type: i1.BusViewService }, { type: i0.ChangeDetectorRef }, { type: i2.LocalizationService }, { type: i3.IntlService }, { type: i4.DisabledDatesService }], propDecorators: { activeView: [{
318
330
  type: Input