@zeedhi/common 1.72.0 → 1.74.0

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 (47) hide show
  1. package/dist/zd-common.esm.js +563 -61
  2. package/dist/zd-common.umd.js +563 -61
  3. package/package.json +2 -2
  4. package/types/components/zd-apex-chart/apex-chart.d.ts +26 -2
  5. package/types/components/zd-apex-chart/interfaces.d.ts +5 -0
  6. package/types/components/zd-card/card.d.ts +8 -4
  7. package/types/components/zd-card/interfaces.d.ts +6 -5
  8. package/types/components/zd-carousel/carousel.d.ts +4 -0
  9. package/types/components/zd-carousel/interfaces.d.ts +4 -3
  10. package/types/components/zd-code-editor/code-editor.d.ts +30 -4
  11. package/types/components/zd-code-editor/interfaces.d.ts +7 -2
  12. package/types/components/zd-component/component.d.ts +4 -0
  13. package/types/components/zd-component/interfaces.d.ts +1 -0
  14. package/types/components/zd-container/container.d.ts +15 -0
  15. package/types/components/zd-container/interfaces.d.ts +4 -1
  16. package/types/components/zd-dashboard/dashboard.d.ts +34 -1
  17. package/types/components/zd-dashboard/interfaces.d.ts +7 -1
  18. package/types/components/zd-form/form.d.ts +34 -6
  19. package/types/components/zd-form/interfaces.d.ts +6 -0
  20. package/types/components/zd-frame/frame.d.ts +34 -3
  21. package/types/components/zd-frame/interfaces.d.ts +4 -0
  22. package/types/components/zd-grid/grid-column.d.ts +1 -0
  23. package/types/components/zd-grid/grid-editable.d.ts +2 -1
  24. package/types/components/zd-grid/grid.d.ts +23 -9
  25. package/types/components/zd-grid/interfaces.d.ts +7 -5
  26. package/types/components/zd-image/image.d.ts +34 -12
  27. package/types/components/zd-image/interfaces.d.ts +7 -2
  28. package/types/components/zd-iterable/interfaces.d.ts +1 -0
  29. package/types/components/zd-iterable/iterable.d.ts +4 -0
  30. package/types/components/zd-iterable-component-render/interfaces.d.ts +4 -0
  31. package/types/components/zd-iterable-component-render/iterable-component-render.d.ts +28 -6
  32. package/types/components/zd-list/interfaces.d.ts +4 -0
  33. package/types/components/zd-list/list.d.ts +28 -6
  34. package/types/components/zd-row/interfaces.d.ts +4 -0
  35. package/types/components/zd-row/row.d.ts +19 -0
  36. package/types/components/zd-selectable-list/interfaces.d.ts +7 -0
  37. package/types/components/zd-selectable-list/selectable-list.d.ts +34 -0
  38. package/types/components/zd-table/interfaces.d.ts +4 -0
  39. package/types/components/zd-table/table.d.ts +19 -0
  40. package/types/components/zd-tabs/interfaces.d.ts +3 -1
  41. package/types/components/zd-tabs/tab.d.ts +0 -4
  42. package/types/components/zd-tabs/tabs.d.ts +17 -2
  43. package/types/components/zd-textarea/interfaces.d.ts +3 -1
  44. package/types/components/zd-textarea/textarea.d.ts +15 -4
  45. package/types/components/zd-tree/interfaces.d.ts +7 -2
  46. package/types/components/zd-tree/tree.d.ts +29 -3
  47. package/types/components/zd-tree-grid/tree-grid-editable.d.ts +1 -0
@@ -23,6 +23,10 @@ class Component {
23
23
  * @param props Components properties
24
24
  */
25
25
  constructor(props) {
26
+ /**
27
+ * Allow the component to be duplicated without warning.
28
+ */
29
+ this.allowDuplicate = false;
26
30
  /**
27
31
  * Automatically add focus to input when it's created.
28
32
  */
@@ -81,6 +85,7 @@ class Component {
81
85
  this.parent = props.parent;
82
86
  this.name = props.name;
83
87
  this.events = Event.factory(props.events || this.events);
88
+ this.allowDuplicate = this.getInitValue('allowDuplicate', props.allowDuplicate, this.allowDuplicate);
84
89
  this.autofocus = this.getInitValue('autofocus', props.autofocus, this.autofocus);
85
90
  this.cssClass = this.getInitValue('cssClass', props.cssClass, this.cssClass);
86
91
  this.cssStyle = this.getInitValue('cssStyle', props.cssStyle, this.cssStyle);
@@ -194,7 +199,7 @@ class Component {
194
199
  * Triggered when the component is created.
195
200
  */
196
201
  onCreated() {
197
- this.componentId = Metadata.addInstance(this);
202
+ this.componentId = Metadata.addInstance(this, this.allowDuplicate);
198
203
  if (this.parent) {
199
204
  this.parent.addChildInstance(this);
200
205
  }
@@ -429,10 +434,24 @@ class ApexChart extends ComponentRender {
429
434
  */
430
435
  this.chartType = 'line';
431
436
  /**
432
- * Defines the chart height. Possible values for width can be
437
+ * Defines the component height. Possible values for this property can be
433
438
  * <samp>'auto', '100%', '400px' or 400</samp>
434
439
  */
435
- this.height = 'auto';
440
+ this.height = '100%';
441
+ /**
442
+ * Defines the component min height. Possible values for this property can be
443
+ * <samp>'auto', '100%', '400px' or 400</samp>
444
+ */
445
+ this.minHeight = 'auto';
446
+ /**
447
+ * Defines the component max height. Possible values for this property can be
448
+ * <samp>'auto', '100%', '400px' or 400</samp>
449
+ */
450
+ this.maxHeight = 'none';
451
+ /**
452
+ * Set component height to fill all space available
453
+ */
454
+ this.fillHeight = false;
436
455
  /**
437
456
  * Chart options. See <a href=\"https://apexcharts.com/docs/options/\"
438
457
  * target=\"_blank\" alt=\"Apex Charts API Reference\">Apex Chart API
@@ -446,10 +465,20 @@ class ApexChart extends ComponentRender {
446
465
  */
447
466
  this.series = [];
448
467
  /**
449
- * Defines the chart width. Possible values for width can be
468
+ * Defines the component width. Possible values for this property can be
450
469
  * <samp>'auto', '100%', '400px' or 400</samp>
451
470
  */
452
471
  this.width = '100%';
472
+ /**
473
+ * Defines the component min width. Possible values for this property can be
474
+ * <samp>'auto', '100%', '400px' or 400</samp>
475
+ */
476
+ this.minWidth = 'auto';
477
+ /**
478
+ * Defines the component max height. Possible values for this property can be
479
+ * <samp>'auto', '100%', '400px' or 400</samp>
480
+ */
481
+ this.maxWidth = 'none';
453
482
  /**
454
483
  * Defines if chart is loading
455
484
  */
@@ -501,7 +530,12 @@ class ApexChart extends ComponentRender {
501
530
  this.options = merge(this.defaultOptions, this.getInitValue('options', props.options, this.options));
502
531
  this.series = this.getInitValue('series', props.series, this.series);
503
532
  this.height = this.getInitValue('height', props.height, this.height);
533
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
534
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
535
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
504
536
  this.width = this.getInitValue('width', props.width, this.width);
537
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
538
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
505
539
  this.loading = this.getInitValue('loading', props.loading, this.loading);
506
540
  this.loadOpacity = this.getInitValue('loadOpacity', props.loadOpacity, this.loadOpacity);
507
541
  this.loadColor = this.getInitValue('loadColor', props.loadColor, this.loadColor);
@@ -1150,7 +1184,11 @@ class Carousel extends ComponentRender {
1150
1184
  * Sets the carousel min height. Example values: 'auto', '100%', '400px',
1151
1185
  * '30em', '400', 400. Values without measurement unit will be notated in pixels by default
1152
1186
  */
1153
- this.minHeight = 'none';
1187
+ this.minHeight = 'auto';
1188
+ /**
1189
+ * Set component height to fill all space available
1190
+ */
1191
+ this.fillHeight = false;
1154
1192
  /**
1155
1193
  * Configures the carousel as infinite (the slide after the last one is the first slide, and vice-versa)
1156
1194
  */
@@ -1244,6 +1282,7 @@ class Carousel extends ComponentRender {
1244
1282
  this.height = this.getInitValue('height', props.height, this.height);
1245
1283
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
1246
1284
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
1285
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
1247
1286
  this.infiniteScroll = this.getInitValue('infiniteScroll', props.infiniteScroll, this.infiniteScroll);
1248
1287
  this.initialSlide = this.getInitValue('initialSlide', props.initialSlide, this.initialSlide);
1249
1288
  this.currentSlide = this.getInitValue('currentSlide', props.currentSlide, this.initialSlide);
@@ -1383,6 +1422,30 @@ class Card extends ComponentRender {
1383
1422
  * Designates that the card is a link
1384
1423
  */
1385
1424
  this.link = false;
1425
+ /**
1426
+ * Sets the maximum height for the card.
1427
+ * Possible values for width can be 'auto', '100%', '400px' or 400
1428
+ */
1429
+ this.maxHeight = 'none';
1430
+ /**
1431
+ * Sets the maximum width for the card.
1432
+ * Possible values for width can be 'auto', '100%', '400px' or 400
1433
+ */
1434
+ this.maxWidth = 'none';
1435
+ /**
1436
+ * Sets the minimum height for the card.
1437
+ * Possible values for width can be 'auto', '100%', '400px' or 400
1438
+ */
1439
+ this.minHeight = 'auto';
1440
+ /**
1441
+ * Sets the minimum width for the card.
1442
+ * Possible values for width can be 'auto', '100%', '400px' or 400
1443
+ */
1444
+ this.minWidth = 'auto';
1445
+ /**
1446
+ * Set component height to fill all space available
1447
+ */
1448
+ this.fillHeight = false;
1386
1449
  /**
1387
1450
  * Removes card elevation shadow and adds a thin border
1388
1451
  */
@@ -1405,21 +1468,22 @@ class Card extends ComponentRender {
1405
1468
  this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
1406
1469
  this.elevation = this.getInitValue('elevation', props.elevation, this.elevation);
1407
1470
  this.flat = this.getInitValue('flat', props.flat, this.flat);
1408
- this.height = this.getInitValue('height', props.height, this.height);
1409
1471
  this.hover = this.getInitValue('hover', props.hover, this.hover);
1410
1472
  this.href = this.getInitValue('href', props.href, this.href);
1411
1473
  this.img = this.getInitValue('img', props.img, this.img);
1412
1474
  this.link = this.getInitValue('link', props.link, this.link);
1475
+ this.height = this.getInitValue('height', props.height, this.height);
1476
+ this.width = this.getInitValue('width', props.width, this.width);
1413
1477
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
1414
1478
  this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
1415
1479
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
1416
1480
  this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
1481
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
1417
1482
  this.outlined = this.getInitValue('outlined', props.outlined, this.outlined);
1418
1483
  this.raised = this.getInitValue('raised', props.raised, this.raised);
1419
1484
  this.ripple = this.getInitValue('ripple', props.ripple, this.ripple);
1420
1485
  this.tile = this.getInitValue('tile', props.tile, this.tile);
1421
1486
  this.to = this.getInitValue('to', props.to, this.to);
1422
- this.width = this.getInitValue('width', props.width, this.width);
1423
1487
  this.createAccessors();
1424
1488
  }
1425
1489
  }
@@ -1472,6 +1536,40 @@ class Form extends ComponentRender {
1472
1536
  */
1473
1537
  constructor(props) {
1474
1538
  super(props);
1539
+ /**
1540
+ * Defines the component height. Possible values for this property can be
1541
+ * <samp>'auto', '100%', '400px' or 400</samp>
1542
+ */
1543
+ this.height = 'auto';
1544
+ /**
1545
+ * Defines the component min height. Possible values for this property can be
1546
+ * <samp>'auto', '100%', '400px' or 400</samp>
1547
+ */
1548
+ this.minHeight = 'auto';
1549
+ /**
1550
+ * Defines the component max height. Possible values for this property can be
1551
+ * <samp>'auto', '100%', '400px' or 400</samp>
1552
+ */
1553
+ this.maxHeight = 'none';
1554
+ /**
1555
+ * Set component height to fill all space available
1556
+ */
1557
+ this.fillHeight = false;
1558
+ /**
1559
+ * Defines the component width. Possible values for this property can be
1560
+ * <samp>'auto', '100%', '400px' or 400</samp>
1561
+ */
1562
+ this.width = '100%';
1563
+ /**
1564
+ * Defines the component min width. Possible values for this property can be
1565
+ * <samp>'auto', '100%', '400px' or 400</samp>
1566
+ */
1567
+ this.minWidth = 'auto';
1568
+ /**
1569
+ * Defines the component max height. Possible values for this property can be
1570
+ * <samp>'auto', '100%', '400px' or 400</samp>
1571
+ */
1572
+ this.maxWidth = 'none';
1475
1573
  /**
1476
1574
  * Children components that are Inputs.
1477
1575
  */
@@ -1480,6 +1578,12 @@ class Form extends ComponentRender {
1480
1578
  this.align = this.getInitValue('align', props.align, this.align);
1481
1579
  this.justify = this.getInitValue('justify', props.justify, this.justify);
1482
1580
  this.height = this.getInitValue('height', props.height, this.height);
1581
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
1582
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
1583
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
1584
+ this.width = this.getInitValue('width', props.width, this.width);
1585
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
1586
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
1483
1587
  this.internalValue = this.getInitValue('value', props.value, this.value);
1484
1588
  this.createAccessors();
1485
1589
  }
@@ -2098,13 +2202,39 @@ class CodeEditor extends ComponentRender {
2098
2202
  constructor(props) {
2099
2203
  super(props);
2100
2204
  /**
2101
- * Max height in pixels. 'none' means no limit.
2205
+ * Defines the component height. Possible values for this property can be
2206
+ * <samp>'auto', '100%', '400px' or 400</samp>
2207
+ */
2208
+ this.height = 'auto';
2209
+ /**
2210
+ * Defines the component min height. Possible values for this property can be
2211
+ * <samp>'auto', '100%', '400px' or 400</samp>
2212
+ */
2213
+ this.minHeight = 'auto';
2214
+ /**
2215
+ * Defines the component max height. Possible values for this property can be
2216
+ * <samp>'auto', '100%', '400px' or 400</samp>
2102
2217
  */
2103
2218
  this.maxHeight = 'none';
2104
2219
  /**
2105
- * Max height in pixels. 'none' means no limit.
2220
+ * Set component height to fill all space available
2106
2221
  */
2107
- this.height = 'auto';
2222
+ this.fillHeight = false;
2223
+ /**
2224
+ * Defines the component width. Possible values for this property can be
2225
+ * <samp>'auto', '100%', '400px' or 400</samp>
2226
+ */
2227
+ this.width = 'auto';
2228
+ /**
2229
+ * Defines the component min width. Possible values for this property can be
2230
+ * <samp>'auto', '100%', '400px' or 400</samp>
2231
+ */
2232
+ this.minWidth = 'auto';
2233
+ /**
2234
+ * Defines the component max height. Possible values for this property can be
2235
+ * <samp>'auto', '100%', '400px' or 400</samp>
2236
+ */
2237
+ this.maxWidth = 'none';
2108
2238
  /**
2109
2239
  * Language code to be used for highlight (js|javascript, css, html, json, ts|typescript, bash|shell)
2110
2240
  * Other languages must be imported above
@@ -2123,8 +2253,13 @@ class CodeEditor extends ComponentRender {
2123
2253
  this.staticCodeValue = '';
2124
2254
  this.staticCode = this.getInitValue('staticCode', props.staticCode, this.staticCodeValue);
2125
2255
  this.copyIcon = this.getInitValue('copyIcon', props.copyIcon, this.copyIcon);
2126
- this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
2127
2256
  this.height = this.getInitValue('height', props.height, this.height);
2257
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
2258
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
2259
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
2260
+ this.width = this.getInitValue('width', props.width, this.width);
2261
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
2262
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
2128
2263
  this.language = this.getInitValue('language', props.language, this.language);
2129
2264
  this.showLineNumbers = this.getInitValue('showLineNumbers', props.showLineNumbers, this.showLineNumbers);
2130
2265
  this.createAccessors();
@@ -2342,7 +2477,22 @@ class Container extends ComponentRender {
2342
2477
  /**
2343
2478
  * Sets the minimum height for the component.
2344
2479
  */
2345
- this.minHeight = 'none';
2480
+ this.minHeight = 'auto';
2481
+ /**
2482
+ * Defines the component width. Possible values for this property can be
2483
+ * <samp>'auto', '100%', '400px' or 400</samp>
2484
+ */
2485
+ this.width = '100%';
2486
+ /**
2487
+ * Defines the component min width. Possible values for this property can be
2488
+ * <samp>'auto', '100%', '400px' or 400</samp>
2489
+ */
2490
+ this.minWidth = 'auto';
2491
+ /**
2492
+ * Defines the component max height. Possible values for this property can be
2493
+ * <samp>'auto', '100%', '400px' or 400</samp>
2494
+ */
2495
+ this.maxWidth = 'none';
2346
2496
  /**
2347
2497
  * Removes viewport maximum-width size breakpoints.
2348
2498
  */
@@ -2357,6 +2507,9 @@ class Container extends ComponentRender {
2357
2507
  this.height = this.getInitValue('height', props.height, this.height);
2358
2508
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
2359
2509
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
2510
+ this.width = this.getInitValue('width', props.width, this.width);
2511
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
2512
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
2360
2513
  this.createAccessors();
2361
2514
  }
2362
2515
  }
@@ -2970,10 +3123,42 @@ class Dashboard extends ComponentRender {
2970
3123
  this.overrideNamedProps = {};
2971
3124
  /* Remove the paddings of the dashboard */
2972
3125
  this.removePadding = false;
2973
- /* Height of the dashboard */
2974
- this.height = '';
2975
- /* Height adjust of the dashboard */
3126
+ /* Height steps of the dashboard cards */
2976
3127
  this.heightAdjust = '';
3128
+ /**
3129
+ * Defines the component height. Possible values for this property can be
3130
+ * <samp>'auto', '100%', '400px' or 400</samp>
3131
+ */
3132
+ this.height = 'auto';
3133
+ /**
3134
+ * Defines the component min height. Possible values for this property can be
3135
+ * <samp>'auto', '100%', '400px' or 400</samp>
3136
+ */
3137
+ this.minHeight = 'auto';
3138
+ /**
3139
+ * Defines the component max height. Possible values for this property can be
3140
+ * <samp>'auto', '100%', '400px' or 400</samp>
3141
+ */
3142
+ this.maxHeight = 'none';
3143
+ /**
3144
+ * Set component height to fill all space available
3145
+ */
3146
+ this.fillHeight = false;
3147
+ /**
3148
+ * Defines the component width. Possible values for this property can be
3149
+ * <samp>'auto', '100%', '400px' or 400</samp>
3150
+ */
3151
+ this.width = '100%';
3152
+ /**
3153
+ * Defines the component min width. Possible values for this property can be
3154
+ * <samp>'auto', '100%', '400px' or 400</samp>
3155
+ */
3156
+ this.minWidth = 'auto';
3157
+ /**
3158
+ * Defines the component max height. Possible values for this property can be
3159
+ * <samp>'auto', '100%', '400px' or 400</samp>
3160
+ */
3161
+ this.maxWidth = 'none';
2977
3162
  /* Creates the add modal */
2978
3163
  this.addModalDef = {
2979
3164
  name: `addModal${this.getCardId()}`,
@@ -3194,6 +3379,12 @@ class Dashboard extends ComponentRender {
3194
3379
  this.overrideNamedProps = props.overrideNamedProps || this.overrideNamedProps;
3195
3380
  this.removePadding = this.getInitValue('removePadding', props.removePadding, this.removePadding);
3196
3381
  this.height = this.getInitValue('height', props.height, this.height);
3382
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
3383
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
3384
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
3385
+ this.width = this.getInitValue('width', props.width, this.width);
3386
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
3387
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
3197
3388
  this.heightAdjust = this.getInitValue('heightAdjust', props.heightAdjust, this.heightAdjust);
3198
3389
  this.cardFooterSlot = this.getInitValue('cardFooterSlot', props.cardFooterSlot, this.cardFooterSlot);
3199
3390
  this.editHeader = this.getInitValue('editHeader', props.editHeader, this.editHeader);
@@ -4536,9 +4727,40 @@ class Frame extends ComponentRender {
4536
4727
  this.cache = false;
4537
4728
  this.JSONCache = false;
4538
4729
  this.cacheDuration = 2 * 60 * 60 * 1000;
4730
+ /**
4731
+ * Defines the component height. Possible values for this property can be
4732
+ * <samp>'auto', '100%', '400px' or 400</samp>
4733
+ */
4539
4734
  this.height = 'auto';
4735
+ /**
4736
+ * Defines the component min height. Possible values for this property can be
4737
+ * <samp>'auto', '100%', '400px' or 400</samp>
4738
+ */
4739
+ this.minHeight = 'auto';
4740
+ /**
4741
+ * Defines the component max height. Possible values for this property can be
4742
+ * <samp>'auto', '100%', '400px' or 400</samp>
4743
+ */
4540
4744
  this.maxHeight = 'none';
4541
- this.minHeight = 'none';
4745
+ /**
4746
+ * Set component height to fill all space available
4747
+ */
4748
+ this.fillHeight = false;
4749
+ /**
4750
+ * Defines the component width. Possible values for this property can be
4751
+ * <samp>'auto', '100%', '400px' or 400</samp>
4752
+ */
4753
+ this.width = '100%';
4754
+ /**
4755
+ * Defines the component min width. Possible values for this property can be
4756
+ * <samp>'auto', '100%', '400px' or 400</samp>
4757
+ */
4758
+ this.minWidth = 'auto';
4759
+ /**
4760
+ * Defines the component max height. Possible values for this property can be
4761
+ * <samp>'auto', '100%', '400px' or 400</samp>
4762
+ */
4763
+ this.maxWidth = 'none';
4542
4764
  this.type = 'get';
4543
4765
  this.headerName = 'sw-fetched-on';
4544
4766
  this.path = this.getInitValue('path', props.path, this.path);
@@ -4551,6 +4773,10 @@ class Frame extends ComponentRender {
4551
4773
  this.height = this.getInitValue('height', props.height, this.height);
4552
4774
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
4553
4775
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
4776
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
4777
+ this.width = this.getInitValue('width', props.width, this.width);
4778
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
4779
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
4554
4780
  this.type = this.getInitValue('type', props.type, this.type);
4555
4781
  this.params = this.getInitValue('params', props.params, this.params);
4556
4782
  this.createAccessors();
@@ -4747,7 +4973,7 @@ class Column extends Component {
4747
4973
  data.forEach((row) => {
4748
4974
  lookupData[row[lookupColumn]] = row;
4749
4975
  });
4750
- this.lookupData = lookupData;
4976
+ this.lookupData = Object.assign(Object.assign({}, this.lookupData), lookupData);
4751
4977
  this.lookupDataCount += 1;
4752
4978
  this.loading = false;
4753
4979
  });
@@ -4965,6 +5191,10 @@ class Iterable extends ComponentRender {
4965
5191
  * Uses virtual scrolling to render data.
4966
5192
  */
4967
5193
  this.virtualScroll = false;
5194
+ /**
5195
+ * Number of lines outside the viewport to cache when using virtual scroll.
5196
+ */
5197
+ this.virtualScrollCache = 5;
4968
5198
  /**
4969
5199
  * Dictionary of rowKey ponting to Dictionary of colName pointing to Dictionary of prop pointing to the
4970
5200
  * condition (applied) return value
@@ -4982,6 +5212,7 @@ class Iterable extends ComponentRender {
4982
5212
  this.pageSizes = this.getInitValue('pageSizes', props.pageSizes, this.pageSizes);
4983
5213
  this.searchVisibleOnly = this.getInitValue('searchVisibleOnly', props.searchVisibleOnly, this.defaultSearchVisibleOnly);
4984
5214
  this.virtualScroll = this.getInitValue('virtualScroll', props.virtualScroll, this.virtualScroll);
5215
+ this.virtualScrollCache = this.getInitValue('virtualScrollCache', props.virtualScrollCache, this.virtualScrollCache);
4985
5216
  }
4986
5217
  createController() {
4987
5218
  const controller = new IterableController(this);
@@ -5330,9 +5561,39 @@ class Grid extends Iterable {
5330
5561
  */
5331
5562
  this.dense = true;
5332
5563
  /**
5333
- * Defines if the component should fill the entire available height
5564
+ * Defines the component height. Possible values for this property can be
5565
+ * <samp>'auto', '100%', '400px' or 400</samp>
5566
+ */
5567
+ this.height = 'auto';
5568
+ /**
5569
+ * Defines the component min height. Possible values for this property can be
5570
+ * <samp>'auto', '100%', '400px' or 400</samp>
5571
+ */
5572
+ this.minHeight = 'auto';
5573
+ /**
5574
+ * Defines the component max height. Possible values for this property can be
5575
+ * <samp>'auto', '100%', '400px' or 400</samp>
5576
+ */
5577
+ this.maxHeight = 'none';
5578
+ /**
5579
+ * Set component height to fill all space available
5334
5580
  */
5335
5581
  this.fillHeight = false;
5582
+ /**
5583
+ * Defines the component width. Possible values for this property can be
5584
+ * <samp>'auto', '100%', '400px' or 400</samp>
5585
+ */
5586
+ this.width = '100%';
5587
+ /**
5588
+ * Defines the component min width. Possible values for this property can be
5589
+ * <samp>'auto', '100%', '400px' or 400</samp>
5590
+ */
5591
+ this.minWidth = 'auto';
5592
+ /**
5593
+ * Defines the component max height. Possible values for this property can be
5594
+ * <samp>'auto', '100%', '400px' or 400</samp>
5595
+ */
5596
+ this.maxWidth = 'none';
5336
5597
  /**
5337
5598
  * Controls footer visibility
5338
5599
  */
@@ -5401,10 +5662,12 @@ class Grid extends Iterable {
5401
5662
  this.light = this.getInitValue('light', props.light, this.light);
5402
5663
  this.selectable = this.getInitValue('selectable', props.selectable, this.selectable);
5403
5664
  this.height = this.getInitValue('height', props.height, this.height);
5404
- this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
5665
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
5405
5666
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
5406
- this.gridHeight = this.getInitValue('gridHeight', props.gridHeight, this.gridHeight);
5407
- this.gridMaxHeight = this.getInitValue('gridMaxHeight', props.gridMaxHeight, this.gridMaxHeight);
5667
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
5668
+ this.width = this.getInitValue('width', props.width, this.width);
5669
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
5670
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
5408
5671
  this.showFooter = this.getInitValue('showFooter', props.showFooter, this.showFooter);
5409
5672
  this.showHeader = this.getInitValue('showHeader', props.showHeader, this.showHeader);
5410
5673
  this.headerBackground = this.getInitValue('headerBackground', props.headerBackground, this.headerBackground);
@@ -5620,6 +5883,7 @@ class Grid extends Iterable {
5620
5883
  const newChildren = (_d = newComponent.children) === null || _d === void 0 ? void 0 : _d.map((child) => this.getActionComponent(child, column, row, path));
5621
5884
  newComponent.name = instanceName;
5622
5885
  newComponent.children = newChildren;
5886
+ newComponent.allowDuplicate = true;
5623
5887
  try {
5624
5888
  const updatedComponent = Object.assign({}, newComponent);
5625
5889
  delete updatedComponent.datasource;
@@ -5885,7 +6149,7 @@ class GridEditable extends Grid {
5885
6149
  }
5886
6150
  } });
5887
6151
  this.updateOriginalRow(key, row);
5888
- return Object.assign(Object.assign({}, componentProps), { name: compName, parent: this, align: column.align, showLabel: false, showHelper: false, dense: true, value: colValue, events: newEvents, autofill: false });
6152
+ return Object.assign(Object.assign({}, componentProps), { name: compName, parent: this, align: column.align, showLabel: false, showHelper: false, dense: true, value: colValue, events: newEvents, autofill: false, allowDuplicate: true });
5889
6153
  }
5890
6154
  checkLookupData(column, row, componentProps) {
5891
6155
  if (row[column.name] && column.lookupData && componentProps.datasource) {
@@ -5994,21 +6258,25 @@ class GridEditable extends Grid {
5994
6258
  */
5995
6259
  cancelEditedRows() {
5996
6260
  return __awaiter(this, void 0, void 0, function* () {
5997
- yield this.removeAddedRows();
6261
+ yield this.cancelAddedRows();
5998
6262
  this.editing = false;
5999
6263
  this.editedRows = {};
6000
6264
  this.invalidComponents = {};
6001
6265
  });
6002
6266
  }
6003
- removeAddedRows() {
6267
+ cancelAddedRows() {
6004
6268
  return __awaiter(this, void 0, void 0, function* () {
6005
- const { data } = this.datasource;
6006
- data.forEach((row, index) => {
6269
+ const { data, page } = this.datasource;
6270
+ const allData = this.datasource.allData || data;
6271
+ Promise.resolve(allData);
6272
+ allData.forEach((row, index) => {
6007
6273
  if (row[this.newRowIdentifier]) {
6008
- data.splice(index, 1);
6274
+ allData.splice(index, 1);
6009
6275
  }
6010
6276
  });
6011
- yield this.datasource.updateData(data);
6277
+ yield this.datasource.updateData(allData);
6278
+ yield this.datasource.get();
6279
+ yield this.datasource.setPage(page);
6012
6280
  });
6013
6281
  }
6014
6282
  addDataRow(row) {
@@ -6024,7 +6292,7 @@ class GridEditable extends Grid {
6024
6292
  */
6025
6293
  saveEditedRows(revalidate = false) {
6026
6294
  return __awaiter(this, void 0, void 0, function* () {
6027
- yield this.removeAddedRows();
6295
+ yield this.cancelAddedRows();
6028
6296
  const response = yield Promise.all(this.getEditedRows(revalidate).map((row) => this.addDataRow(row)));
6029
6297
  this.editing = false;
6030
6298
  this.editedRows = {};
@@ -6366,10 +6634,6 @@ class Image extends ComponentRender {
6366
6634
  * Text to be shown if an error occurs.
6367
6635
  */
6368
6636
  this.errorImageText = '';
6369
- /**
6370
- * Height of the image, e.g. <samp>\"100px\"</samp> or <samp>\"50%\"</samp>.
6371
- */
6372
- this.height = '';
6373
6637
  /**
6374
6638
  * Defines how the image should be resized to fit its container.
6375
6639
  * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit\"
@@ -6378,32 +6642,58 @@ class Image extends ComponentRender {
6378
6642
  */
6379
6643
  this.objectFit = '';
6380
6644
  /**
6381
- * Source of the image file.
6645
+ * Defines the component height. Possible values for this property can be
6646
+ * <samp>'auto', '100%', '400px' or 400</samp>
6382
6647
  */
6383
- this.srcValue = '';
6648
+ this.height = 'auto';
6384
6649
  /**
6385
- * Width of the image, e.g. <samp>\"100px\"</samp> or <samp>\"50%\"</samp>.
6650
+ * Defines the component min height. Possible values for this property can be
6651
+ * <samp>'auto', '100%', '400px' or 400</samp>
6386
6652
  */
6387
- this.width = '';
6653
+ this.minHeight = 'auto';
6654
+ /**
6655
+ * Defines the component max height. Possible values for this property can be
6656
+ * <samp>'auto', '100%', '400px' or 400</samp>
6657
+ */
6658
+ this.maxHeight = 'none';
6659
+ /**
6660
+ * Set component height to fill all space available
6661
+ */
6662
+ this.fillHeight = false;
6663
+ /**
6664
+ * Defines the component width. Possible values for this property can be
6665
+ * <samp>'auto', '100%', '400px' or 400</samp>
6666
+ */
6667
+ this.width = 'auto';
6668
+ /**
6669
+ * Defines the component min width. Possible values for this property can be
6670
+ * <samp>'auto', '100%', '400px' or 400</samp>
6671
+ */
6672
+ this.minWidth = 'auto';
6673
+ /**
6674
+ * Defines the component max height. Possible values for this property can be
6675
+ * <samp>'auto', '100%', '400px' or 400</samp>
6676
+ */
6677
+ this.maxWidth = 'none';
6678
+ /**
6679
+ * Source of the image file.
6680
+ */
6681
+ this.srcValue = '';
6388
6682
  this.validImage = undefined;
6389
6683
  this.src = this.getInitValue('src', props.src, this.srcValue);
6390
6684
  this.alt = this.getInitValue('alt', props.alt, this.alt);
6391
6685
  this.errorImagePath = this.getInitValue('errorImagePath', props.errorImagePath, this.errorImagePath);
6392
6686
  this.errorImageText = this.getInitValue('errorImageText', props.errorImageText, this.errorImageText);
6393
- this.width = this.getInitValue('width', props.width, this.width);
6394
6687
  this.height = this.getInitValue('height', props.height, this.height);
6688
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
6689
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
6690
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
6691
+ this.width = this.getInitValue('width', props.width, this.width);
6692
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
6693
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
6395
6694
  this.objectFit = this.getInitValue('objectFit', props.objectFit, this.objectFit);
6396
6695
  this.createAccessors();
6397
6696
  }
6398
- /**
6399
- * Returns the style attribute for the image component
6400
- */
6401
- getStyle() {
6402
- const width = this.width ? `width: ${this.width}; ` : '';
6403
- const height = this.height ? `height: ${this.height}; ` : '';
6404
- const objectFit = this.objectFit ? `object-fit: ${this.objectFit};` : '';
6405
- return width + height + objectFit;
6406
- }
6407
6697
  /**
6408
6698
  * Event to be called after the error image is loaded
6409
6699
  */
@@ -7356,17 +7646,39 @@ class IterableComponentRender extends Iterable {
7356
7646
  },
7357
7647
  ];
7358
7648
  /**
7359
- * Sets the height for the component.
7649
+ * Defines the component height. Possible values for this property can be
7650
+ * <samp>'auto', '100%', '400px' or 400</samp>
7360
7651
  */
7361
7652
  this.height = 'auto';
7362
7653
  /**
7363
- * Sets the maximum height for the component.
7654
+ * Defines the component min height. Possible values for this property can be
7655
+ * <samp>'auto', '100%', '400px' or 400</samp>
7656
+ */
7657
+ this.minHeight = 'auto';
7658
+ /**
7659
+ * Defines the component max height. Possible values for this property can be
7660
+ * <samp>'auto', '100%', '400px' or 400</samp>
7364
7661
  */
7365
7662
  this.maxHeight = 'none';
7366
7663
  /**
7367
- * Sets the minimum height for the component.
7664
+ * Set component height to fill all space available
7665
+ */
7666
+ this.fillHeight = false;
7667
+ /**
7668
+ * Defines the component width. Possible values for this property can be
7669
+ * <samp>'auto', '100%', '400px' or 400</samp>
7670
+ */
7671
+ this.width = '100%';
7672
+ /**
7673
+ * Defines the component min width. Possible values for this property can be
7674
+ * <samp>'auto', '100%', '400px' or 400</samp>
7675
+ */
7676
+ this.minWidth = 'auto';
7677
+ /**
7678
+ * Defines the component max height. Possible values for this property can be
7679
+ * <samp>'auto', '100%', '400px' or 400</samp>
7368
7680
  */
7369
- this.minHeight = 'none';
7681
+ this.maxWidth = 'none';
7370
7682
  /**
7371
7683
  * Components that will be rendered in error case
7372
7684
  */
@@ -7381,8 +7693,12 @@ class IterableComponentRender extends Iterable {
7381
7693
  this.noDataSlot = this.changeDefaultSlotNames(this.noDataSlot);
7382
7694
  this.noResultSlot = this.changeDefaultSlotNames(this.noResultSlot);
7383
7695
  this.height = this.getInitValue('height', props.height, this.height);
7384
- this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
7385
7696
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
7697
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
7698
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
7699
+ this.width = this.getInitValue('width', props.width, this.width);
7700
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
7701
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
7386
7702
  this.createAccessors();
7387
7703
  }
7388
7704
  addSlashes(value) {
@@ -7468,17 +7784,39 @@ class List extends ComponentRender {
7468
7784
  */
7469
7785
  this.expand = false;
7470
7786
  /**
7471
- * Sets the height for the component.
7787
+ * Defines the component height. Possible values for this property can be
7788
+ * <samp>'auto', '100%', '400px' or 400</samp>
7472
7789
  */
7473
7790
  this.height = 'auto';
7474
7791
  /**
7475
- * Sets the maxHeight for the component.
7792
+ * Defines the component min height. Possible values for this property can be
7793
+ * <samp>'auto', '100%', '400px' or 400</samp>
7794
+ */
7795
+ this.minHeight = 'auto';
7796
+ /**
7797
+ * Defines the component max height. Possible values for this property can be
7798
+ * <samp>'auto', '100%', '400px' or 400</samp>
7476
7799
  */
7477
7800
  this.maxHeight = 'none';
7478
7801
  /**
7479
- * Sets the minHeight for the component.
7802
+ * Set component height to fill all space available
7803
+ */
7804
+ this.fillHeight = false;
7805
+ /**
7806
+ * Defines the component width. Possible values for this property can be
7807
+ * <samp>'auto', '100%', '400px' or 400</samp>
7808
+ */
7809
+ this.width = '100%';
7810
+ /**
7811
+ * Defines the component min width. Possible values for this property can be
7812
+ * <samp>'auto', '100%', '400px' or 400</samp>
7813
+ */
7814
+ this.minWidth = 'auto';
7815
+ /**
7816
+ * Defines the component max height. Possible values for this property can be
7817
+ * <samp>'auto', '100%', '400px' or 400</samp>
7480
7818
  */
7481
- this.minHeight = 'none';
7819
+ this.maxWidth = 'none';
7482
7820
  this.dark = this.getInitValue('dark', props.dark, this.dark);
7483
7821
  this.dense = this.getInitValue('dense', props.dense, this.dense);
7484
7822
  this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
@@ -7491,8 +7829,12 @@ class List extends ComponentRender {
7491
7829
  this.elevation = this.getInitValue('elevation', props.elevation, this.elevation);
7492
7830
  this.expand = this.getInitValue('expand', props.expand, this.expand);
7493
7831
  this.height = this.getInitValue('height', props.height, this.height);
7494
- this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
7495
7832
  this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
7833
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
7834
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
7835
+ this.width = this.getInitValue('width', props.width, this.width);
7836
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
7837
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
7496
7838
  this.createAccessors();
7497
7839
  }
7498
7840
  /**
@@ -8858,10 +9200,33 @@ class Row extends ComponentRender {
8858
9200
  super(props);
8859
9201
  this.dense = true;
8860
9202
  this.noGutters = false;
9203
+ /**
9204
+ * Defines the component height. Possible values for this property can be
9205
+ * <samp>'auto', '100%', '400px' or 400</samp>
9206
+ */
9207
+ this.height = 'auto';
9208
+ /**
9209
+ * Defines the component min height. Possible values for this property can be
9210
+ * <samp>'auto', '100%', '400px' or 400</samp>
9211
+ */
9212
+ this.minHeight = 'auto';
9213
+ /**
9214
+ * Defines the component max height. Possible values for this property can be
9215
+ * <samp>'auto', '100%', '400px' or 400</samp>
9216
+ */
9217
+ this.maxHeight = 'none';
9218
+ /**
9219
+ * Set component height to fill all space available
9220
+ */
9221
+ this.fillHeight = false;
8861
9222
  this.align = this.getInitValue('align', props.align, this.align);
8862
9223
  this.dense = this.getInitValue('dense', props.dense, this.dense);
8863
9224
  this.justify = this.getInitValue('justify', props.justify, this.justify);
8864
9225
  this.noGutters = this.getInitValue('noGutters', props.noGutters, this.noGutters);
9226
+ this.height = this.getInitValue('height', props.height, this.height);
9227
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
9228
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
9229
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
8865
9230
  this.createAccessors();
8866
9231
  }
8867
9232
  }
@@ -10118,11 +10483,52 @@ class SelectableList extends List {
10118
10483
  * Sets the active list-item inside the list-group
10119
10484
  */
10120
10485
  this.value = undefined;
10486
+ /**
10487
+ * Defines the component height. Possible values for this property can be
10488
+ * <samp>'auto', '100%', '400px' or 400</samp>
10489
+ */
10490
+ this.height = 'auto';
10491
+ /**
10492
+ * Defines the component min height. Possible values for this property can be
10493
+ * <samp>'auto', '100%', '400px' or 400</samp>
10494
+ */
10495
+ this.minHeight = 'auto';
10496
+ /**
10497
+ * Defines the component max height. Possible values for this property can be
10498
+ * <samp>'auto', '100%', '400px' or 400</samp>
10499
+ */
10500
+ this.maxHeight = 'none';
10501
+ /**
10502
+ * Set component height to fill all space available
10503
+ */
10504
+ this.fillHeight = false;
10505
+ /**
10506
+ * Defines the component width. Possible values for this property can be
10507
+ * <samp>'auto', '100%', '400px' or 400</samp>
10508
+ */
10509
+ this.width = '100%';
10510
+ /**
10511
+ * Defines the component min width. Possible values for this property can be
10512
+ * <samp>'auto', '100%', '400px' or 400</samp>
10513
+ */
10514
+ this.minWidth = 'auto';
10515
+ /**
10516
+ * Defines the component max height. Possible values for this property can be
10517
+ * <samp>'auto', '100%', '400px' or 400</samp>
10518
+ */
10519
+ this.maxWidth = 'none';
10121
10520
  this.activeClass = this.getInitValue('activeClass', props.activeClass, this.activeClass);
10122
10521
  this.mandatory = this.getInitValue('mandatory', props.mandatory, this.mandatory);
10123
10522
  this.max = this.getInitValue('max', props.max, this.max);
10124
10523
  this.multiple = this.getInitValue('multiple', props.multiple, this.multiple);
10125
10524
  this.value = this.getInitValue('value', props.value, this.value);
10525
+ this.height = this.getInitValue('height', props.height, this.height);
10526
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
10527
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
10528
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
10529
+ this.width = this.getInitValue('width', props.width, this.width);
10530
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
10531
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
10126
10532
  this.createAccessors();
10127
10533
  }
10128
10534
  change(event, element) {
@@ -10419,9 +10825,32 @@ class Table extends Iterable {
10419
10825
  * Controls table head visibility.
10420
10826
  */
10421
10827
  this.showTableHead = true;
10828
+ /**
10829
+ * Defines the component height. Possible values for this property can be
10830
+ * <samp>'auto', '100%', '400px' or 400</samp>
10831
+ */
10832
+ this.height = 'auto';
10833
+ /**
10834
+ * Defines the component min height. Possible values for this property can be
10835
+ * <samp>'auto', '100%', '400px' or 400</samp>
10836
+ */
10837
+ this.minHeight = 'auto';
10838
+ /**
10839
+ * Defines the component max height. Possible values for this property can be
10840
+ * <samp>'auto', '100%', '400px' or 400</samp>
10841
+ */
10842
+ this.maxHeight = 'none';
10843
+ /**
10844
+ * Set component height to fill all space available
10845
+ */
10846
+ this.fillHeight = false;
10422
10847
  this.caption = Object.assign(Object.assign({}, this.caption), props.caption || {});
10423
10848
  this.fillWidth = this.getInitValue('fillWidth', props.fillWidth, this.fillWidth);
10424
10849
  this.showTableHead = this.getInitValue('showTableHead', props.showTableHead, this.showTableHead);
10850
+ this.height = this.getInitValue('height', props.height, this.height);
10851
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
10852
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
10853
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
10425
10854
  this.createAccessors();
10426
10855
  }
10427
10856
  }
@@ -10442,7 +10871,6 @@ class Tab extends Component {
10442
10871
  this.lazyLoad = true;
10443
10872
  this.tabTitle = this.getInitValue('tabTitle', props.tabTitle, this.tabTitle);
10444
10873
  this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
10445
- this.flex = this.getInitValue('flex', props.flex, this.flex);
10446
10874
  this.lazyLoad = this.getInitValue('lazyLoad', props.lazyLoad, this.lazyLoad);
10447
10875
  this.createAccessors();
10448
10876
  }
@@ -10476,9 +10904,31 @@ class Tabs extends ComponentRender {
10476
10904
  super(props);
10477
10905
  this.activeTabValue = 0;
10478
10906
  this.tabs = [];
10907
+ /**
10908
+ * Defines the component height. Possible values for this property can be
10909
+ * <samp>'auto', '100%', '400px' or 400</samp>
10910
+ */
10911
+ this.height = 'auto';
10912
+ /**
10913
+ * Defines the component min height. Possible values for this property can be
10914
+ * <samp>'auto', '100%', '400px' or 400</samp>
10915
+ */
10916
+ this.minHeight = 'auto';
10917
+ /**
10918
+ * Defines the component max height. Possible values for this property can be
10919
+ * <samp>'auto', '100%', '400px' or 400</samp>
10920
+ */
10921
+ this.maxHeight = 'none';
10922
+ /**
10923
+ * Set component height to fill all space available
10924
+ */
10925
+ this.fillHeight = false;
10479
10926
  this.tabs = this.getTabs(props.tabs || []);
10480
10927
  this.activeTab = this.getInitValue('activeTab', props.activeTab, this.activeTabValue);
10481
10928
  this.height = this.getInitValue('height', props.height, this.height);
10929
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
10930
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
10931
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
10482
10932
  this.createAccessors();
10483
10933
  }
10484
10934
  get activeTab() {
@@ -10640,11 +11090,22 @@ class Textarea extends TextInput {
10640
11090
  */
10641
11091
  this.rows = 5;
10642
11092
  /**
10643
- * Input height
11093
+ * Defines the component height. Possible values for this property can be
11094
+ * <samp>'auto', '100%', '400px' or 400</samp>
10644
11095
  */
10645
11096
  this.height = 'auto';
10646
11097
  /**
10647
- * Should input fill the remaining height
11098
+ * Defines the component min height. Possible values for this property can be
11099
+ * <samp>'auto', '100%', '400px' or 400</samp>
11100
+ */
11101
+ this.minHeight = 'auto';
11102
+ /**
11103
+ * Defines the component max height. Possible values for this property can be
11104
+ * <samp>'auto', '100%', '400px' or 400</samp>
11105
+ */
11106
+ this.maxHeight = 'none';
11107
+ /**
11108
+ * Set component height to fill all space available
10648
11109
  */
10649
11110
  this.fillHeight = false;
10650
11111
  this.autoGrow = this.getInitValue('autoGrow', props.autoGrow, this.autoGrow);
@@ -10659,6 +11120,8 @@ class Textarea extends TextInput {
10659
11120
  this.rowHeight = this.getInitValue('rowHeight', props.rowHeight, this.rowHeight);
10660
11121
  this.rows = this.getInitValue('rows', props.rows, this.rows);
10661
11122
  this.height = this.getInitValue('height', props.height, this.height);
11123
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
11124
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
10662
11125
  this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
10663
11126
  this.createAccessors();
10664
11127
  if (this.counter && !Number.isNaN(parseInt(this.counter.toString(), 10))) {
@@ -11158,6 +11621,40 @@ class Tree extends ComponentRender {
11158
11621
  * Components that will be rendered on toolbar slot
11159
11622
  */
11160
11623
  this.toolbarSlot = [];
11624
+ /**
11625
+ * Defines the component height. Possible values for this property can be
11626
+ * <samp>'auto', '100%', '400px' or 400</samp>
11627
+ */
11628
+ this.height = 'auto';
11629
+ /**
11630
+ * Defines the component min height. Possible values for this property can be
11631
+ * <samp>'auto', '100%', '400px' or 400</samp>
11632
+ */
11633
+ this.minHeight = 'auto';
11634
+ /**
11635
+ * Defines the component max height. Possible values for this property can be
11636
+ * <samp>'auto', '100%', '400px' or 400</samp>
11637
+ */
11638
+ this.maxHeight = 'none';
11639
+ /**
11640
+ * Set component height to fill all space available
11641
+ */
11642
+ this.fillHeight = false;
11643
+ /**
11644
+ * Defines the component width. Possible values for this property can be
11645
+ * <samp>'auto', '100%', '400px' or 400</samp>
11646
+ */
11647
+ this.width = '100%';
11648
+ /**
11649
+ * Defines the component min width. Possible values for this property can be
11650
+ * <samp>'auto', '100%', '400px' or 400</samp>
11651
+ */
11652
+ this.minWidth = 'auto';
11653
+ /**
11654
+ * Defines the component max height. Possible values for this property can be
11655
+ * <samp>'auto', '100%', '400px' or 400</samp>
11656
+ */
11657
+ this.maxWidth = 'none';
11161
11658
  /**
11162
11659
  * Components that will be rendered on title slot
11163
11660
  */
@@ -11201,7 +11698,12 @@ class Tree extends ComponentRender {
11201
11698
  this.openLevelOnLoad = this.getInitValue('openLevelOnLoad', props.openLevelOnLoad, this.openLevelOnLoad);
11202
11699
  this.checkbox = this.getInitValue('checkbox', props.checkbox, this.checkbox);
11203
11700
  this.height = this.getInitValue('height', props.height, this.height);
11701
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
11204
11702
  this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
11703
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
11704
+ this.width = this.getInitValue('width', props.width, this.width);
11705
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
11706
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
11205
11707
  this.disableCheckbox = this.getInitValue('disableCheckbox', props.disableCheckbox, this.disableCheckbox);
11206
11708
  this.afterTitleSlot = props.afterTitleSlot || this.afterTitleSlot;
11207
11709
  this.toolbarSlot = props.toolbarSlot || this.toolbarSlot;
@@ -11953,7 +12455,7 @@ class TreeGridEditable extends TreeGrid {
11953
12455
  }
11954
12456
  } });
11955
12457
  this.updateOriginalRow(key, row);
11956
- return Object.assign(Object.assign({}, componentProps), { name: compName, parent: this, align: column.align, showLabel: false, showHelper: false, dense: true, value: colValue, events: newEvents, autofill: false });
12458
+ return Object.assign(Object.assign({}, componentProps), { name: compName, parent: this, align: column.align, showLabel: false, showHelper: false, dense: true, value: colValue, events: newEvents, autofill: false, allowDuplicate: true });
11957
12459
  }
11958
12460
  updateOriginalRow(key, row) {
11959
12461
  if (this.editedRows[key] !== undefined)