@formio/js 5.0.0-rc.67 → 5.0.0-rc.69

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 (64) hide show
  1. package/dist/formio.builder.css +0 -1
  2. package/dist/formio.builder.min.css +1 -1
  3. package/dist/formio.embed.js +1 -1
  4. package/dist/formio.embed.min.js +1 -1
  5. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  6. package/dist/formio.form.css +0 -1
  7. package/dist/formio.form.js +110 -859
  8. package/dist/formio.form.min.css +1 -1
  9. package/dist/formio.form.min.js +1 -1
  10. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  11. package/dist/formio.full.css +0 -1
  12. package/dist/formio.full.js +22 -471
  13. package/dist/formio.full.min.css +1 -1
  14. package/dist/formio.full.min.js +1 -1
  15. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  16. package/dist/formio.js +3 -3
  17. package/dist/formio.min.js +1 -1
  18. package/dist/formio.min.js.LICENSE.txt +1 -1
  19. package/dist/formio.utils.js +95 -874
  20. package/dist/formio.utils.min.js +1 -1
  21. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  22. package/lib/cjs/components/currency/Currency.d.ts +1 -0
  23. package/lib/cjs/components/datagrid/DataGrid.d.ts +9 -0
  24. package/lib/cjs/components/datagrid/DataGrid.js +49 -34
  25. package/lib/cjs/components/datagrid/fixtures/comp-with-reorder.d.ts +100 -0
  26. package/lib/cjs/components/datagrid/fixtures/comp-with-reorder.js +139 -0
  27. package/lib/cjs/components/datagrid/fixtures/index.d.ts +2 -1
  28. package/lib/cjs/components/datagrid/fixtures/index.js +3 -1
  29. package/lib/cjs/components/datamap/DataMap.js +2 -2
  30. package/lib/cjs/components/editgrid/EditGrid.js +2 -1
  31. package/lib/cjs/components/editgrid/fixtures/comp16.d.ts +52 -0
  32. package/lib/cjs/components/editgrid/fixtures/comp16.js +71 -0
  33. package/lib/cjs/components/editgrid/fixtures/index.d.ts +2 -1
  34. package/lib/cjs/components/editgrid/fixtures/index.js +3 -1
  35. package/lib/cjs/components/number/Number.d.ts +10 -1
  36. package/lib/cjs/components/number/Number.js +16 -7
  37. package/lib/cjs/components/number/fixtures/comp8.d.ts +32 -0
  38. package/lib/cjs/components/number/fixtures/comp8.js +28 -0
  39. package/lib/cjs/components/number/fixtures/comp9.d.ts +18 -0
  40. package/lib/cjs/components/number/fixtures/comp9.js +21 -0
  41. package/lib/cjs/components/number/fixtures/index.d.ts +3 -1
  42. package/lib/cjs/components/number/fixtures/index.js +5 -1
  43. package/lib/mjs/components/currency/Currency.d.ts +1 -0
  44. package/lib/mjs/components/datagrid/DataGrid.d.ts +9 -0
  45. package/lib/mjs/components/datagrid/DataGrid.js +48 -33
  46. package/lib/mjs/components/datagrid/fixtures/comp-with-reorder.d.ts +100 -0
  47. package/lib/mjs/components/datagrid/fixtures/comp-with-reorder.js +137 -0
  48. package/lib/mjs/components/datagrid/fixtures/index.d.ts +2 -1
  49. package/lib/mjs/components/datagrid/fixtures/index.js +2 -1
  50. package/lib/mjs/components/datamap/DataMap.js +1 -1
  51. package/lib/mjs/components/editgrid/EditGrid.js +2 -1
  52. package/lib/mjs/components/editgrid/fixtures/comp16.d.ts +52 -0
  53. package/lib/mjs/components/editgrid/fixtures/comp16.js +69 -0
  54. package/lib/mjs/components/editgrid/fixtures/index.d.ts +2 -1
  55. package/lib/mjs/components/editgrid/fixtures/index.js +2 -1
  56. package/lib/mjs/components/number/Number.d.ts +10 -1
  57. package/lib/mjs/components/number/Number.js +15 -6
  58. package/lib/mjs/components/number/fixtures/comp8.d.ts +32 -0
  59. package/lib/mjs/components/number/fixtures/comp8.js +26 -0
  60. package/lib/mjs/components/number/fixtures/comp9.d.ts +18 -0
  61. package/lib/mjs/components/number/fixtures/comp9.js +19 -0
  62. package/lib/mjs/components/number/fixtures/index.d.ts +3 -1
  63. package/lib/mjs/components/number/fixtures/index.js +3 -1
  64. package/package.json +2 -2
@@ -45,19 +45,19 @@ class NumberComponent extends Input_1.default {
45
45
  return (0, utils_1.getComponentSavedTypes)(schema) || [utils_1.componentValueTypes.number];
46
46
  }
47
47
  constructor(...args) {
48
- var _a, _b;
48
+ var _a, _b, _c;
49
49
  super(...args);
50
50
  const separators = (0, utils_1.getNumberSeparators)(this.options.language || navigator.language);
51
- this.decimalSeparator = this.options.decimalSeparator = this.options.decimalSeparator
51
+ this.decimalSeparator = this.options.decimalSeparator = this.component.decimalSymbol || this.options.decimalSeparator
52
52
  || ((_a = this.options.properties) === null || _a === void 0 ? void 0 : _a.decimalSeparator)
53
53
  || separators.decimalSeparator;
54
54
  if (this.component.delimiter) {
55
- if (this.options.hasOwnProperty('thousandsSeparator')) {
56
- console.warn("Property 'thousandsSeparator' is deprecated. Please use i18n to specify delimiter.");
57
- }
58
- this.delimiter = ((_b = this.options.properties) === null || _b === void 0 ? void 0 : _b.thousandsSeparator) || this.options.thousandsSeparator || separators.delimiter;
55
+ this.delimiter = this.component.thousandsSeparator || ((_b = this.options.properties) === null || _b === void 0 ? void 0 : _b.thousandsSeparator) || this.options.thousandsSeparator || separators.delimiter;
59
56
  }
60
57
  else {
58
+ if (this.component.thousandsSeparator || ((_c = this.options.properties) === null || _c === void 0 ? void 0 : _c.thousandsSeparator) || this.options.thousandsSeparator) {
59
+ console.warn('In order for thousands separator to work properly, you must set the delimiter to true in the component json');
60
+ }
61
61
  this.delimiter = '';
62
62
  }
63
63
  const requireDecimal = lodash_1.default.get(this.component, 'requireDecimal', false);
@@ -79,7 +79,7 @@ class NumberComponent extends Input_1.default {
79
79
  prefix: '',
80
80
  suffix: '',
81
81
  requireDecimal: lodash_1.default.get(this.component, 'requireDecimal', false),
82
- thousandsSeparatorSymbol: lodash_1.default.get(this.component, 'thousandsSeparator', this.delimiter),
82
+ thousandsSeparatorSymbol: this.delimiter || '',
83
83
  decimalSymbol: lodash_1.default.get(this.component, 'decimalSymbol', this.decimalSeparator),
84
84
  decimalLimit: lodash_1.default.get(this.component, 'decimalLimit', this.decimalLimit),
85
85
  allowNegative: lodash_1.default.get(this.component, 'allowNegative', true),
@@ -146,6 +146,15 @@ class NumberComponent extends Input_1.default {
146
146
  setValueAt(index, value, flags = {}) {
147
147
  return super.setValueAt(index, this.formatValue(this.parseValue(value)), flags);
148
148
  }
149
+ /**
150
+ * Converts a string to a floating point number, formats the number based on the parsed float function
151
+ * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat) and then returns the
152
+ * formatted number back as a string
153
+ * Example Input: "123.456,22"
154
+ * Example Output: "123456,22"
155
+ * @param {string | number} input the numeric string to parse
156
+ * @returns {string | null} a parsed string
157
+ */
149
158
  parseValue(input) {
150
159
  if (typeof input === 'string') {
151
160
  input = input.split(this.delimiter).join('').replace(this.decimalSeparator, '.');
@@ -0,0 +1,32 @@
1
+ declare namespace _default {
2
+ let components: ({
3
+ label: string;
4
+ applyMaskOn: string;
5
+ mask: boolean;
6
+ tableView: boolean;
7
+ delimiter: boolean;
8
+ requireDecimal: boolean;
9
+ inputFormat: string;
10
+ truncateMultipleSpaces: boolean;
11
+ key: string;
12
+ type: string;
13
+ input: boolean;
14
+ decimalSymbol: string;
15
+ disableOnInvalid?: undefined;
16
+ } | {
17
+ type: string;
18
+ label: string;
19
+ key: string;
20
+ disableOnInvalid: boolean;
21
+ input: boolean;
22
+ tableView: boolean;
23
+ applyMaskOn?: undefined;
24
+ mask?: undefined;
25
+ delimiter?: undefined;
26
+ requireDecimal?: undefined;
27
+ inputFormat?: undefined;
28
+ truncateMultipleSpaces?: undefined;
29
+ decimalSymbol?: undefined;
30
+ })[];
31
+ }
32
+ export default _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ components: [
5
+ {
6
+ "label": "Number",
7
+ "applyMaskOn": "change",
8
+ "mask": false,
9
+ "tableView": false,
10
+ "delimiter": false,
11
+ "requireDecimal": false,
12
+ "inputFormat": "plain",
13
+ "truncateMultipleSpaces": false,
14
+ "key": "number",
15
+ "type": "number",
16
+ "input": true,
17
+ "decimalSymbol": "-"
18
+ },
19
+ {
20
+ "type": "button",
21
+ "label": "Submit",
22
+ "key": "submit",
23
+ "disableOnInvalid": true,
24
+ "input": true,
25
+ "tableView": false
26
+ }
27
+ ]
28
+ };
@@ -0,0 +1,18 @@
1
+ declare namespace _default {
2
+ let components: {
3
+ label: string;
4
+ applyMaskOn: string;
5
+ mask: boolean;
6
+ tableView: boolean;
7
+ delimiter: boolean;
8
+ requireDecimal: boolean;
9
+ inputFormat: string;
10
+ truncateMultipleSpaces: boolean;
11
+ key: string;
12
+ type: string;
13
+ input: boolean;
14
+ decimalSymbol: string;
15
+ thousandsSeparator: string;
16
+ }[];
17
+ }
18
+ export default _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ components: [
5
+ {
6
+ "label": "Number",
7
+ "applyMaskOn": "change",
8
+ "mask": false,
9
+ "tableView": false,
10
+ "delimiter": true,
11
+ "requireDecimal": false,
12
+ "inputFormat": "plain",
13
+ "truncateMultipleSpaces": false,
14
+ "key": "number",
15
+ "type": "number",
16
+ "input": true,
17
+ "decimalSymbol": ",",
18
+ "thousandsSeparator": "."
19
+ }
20
+ ]
21
+ };
@@ -5,4 +5,6 @@ import comp4 from './comp4';
5
5
  import comp5 from './comp5';
6
6
  import comp6 from './comp6';
7
7
  import comp7 from './comp7';
8
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7 };
8
+ import comp8 from './comp8';
9
+ import comp9 from './comp9';
10
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9 };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ exports.comp9 = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
7
7
  const comp1_1 = __importDefault(require("./comp1"));
8
8
  exports.comp1 = comp1_1.default;
9
9
  const comp2_1 = __importDefault(require("./comp2"));
@@ -18,3 +18,7 @@ const comp6_1 = __importDefault(require("./comp6"));
18
18
  exports.comp6 = comp6_1.default;
19
19
  const comp7_1 = __importDefault(require("./comp7"));
20
20
  exports.comp7 = comp7_1.default;
21
+ const comp8_1 = __importDefault(require("./comp8"));
22
+ exports.comp8 = comp8_1.default;
23
+ const comp9_1 = __importDefault(require("./comp9"));
24
+ exports.comp9 = comp9_1.default;
@@ -2,6 +2,7 @@ export default class CurrencyComponent extends NumberComponent {
2
2
  constructor(component: any, options: any, data: any);
3
3
  currencyPrefix: any;
4
4
  currencySuffix: any;
5
+ parseValue(value: any): string | null;
5
6
  addZerosAndFormatValue(value: any): any;
6
7
  stripPrefixSuffix(value: any): any;
7
8
  }
@@ -61,6 +61,15 @@ export default class DataGridComponent extends NestedArrayComponent {
61
61
  loadRefs(element: any, refs: any): void;
62
62
  dragula: any;
63
63
  getComponentsContainer(): any;
64
+ /**
65
+ * Reorder values in array based on the old and new position
66
+ * @param {any} valuesArr - An array of values.
67
+ * @param {number} oldPosition - The index of the value in array before reordering.
68
+ * @param {number} newPosition - The index of the value in array after reordering.
69
+ * @param {boolean|any} movedBelow - Whether or not the value is moved below.
70
+ * @returns {void}
71
+ */
72
+ reorderValues(valuesArr: any, oldPosition: number, newPosition: number, movedBelow: boolean | any): void;
64
73
  onReorder(element: any, _target: any, _source: any, sibling: any): void;
65
74
  focusOnNewRowElement(row: any): void;
66
75
  addRow(): void;
@@ -1,7 +1,8 @@
1
1
  import _ from 'lodash';
2
2
  import NestedArrayComponent from '../_classes/nestedarray/NestedArrayComponent';
3
3
  import { fastCloneDeep, getFocusableElements } from '../../utils/utils';
4
- import { Components } from '../Components';
4
+ import Components from '../Components';
5
+ import dragula from 'dragula';
5
6
  export default class DataGridComponent extends NestedArrayComponent {
6
7
  static schema(...extend) {
7
8
  return NestedArrayComponent.schema({
@@ -278,34 +279,32 @@ export default class DataGridComponent extends NestedArrayComponent {
278
279
  this.refs[`${this.datagridKey}-row`].forEach((row, index) => {
279
280
  row.dragInfo = { index };
280
281
  });
281
- if (this.root.dragulaLib) {
282
- this.dragula = this.root.dragulaLib([this.refs[`${this.datagridKey}-tbody`]], {
283
- moves: (_draggedElement, _oldParent, clickedElement) => {
284
- const clickedElementKey = clickedElement.getAttribute('data-key');
285
- const oldParentKey = _oldParent.getAttribute('data-key');
286
- //Check if the clicked button belongs to that container, if false, it belongs to the nested container
287
- if (oldParentKey === clickedElementKey) {
288
- return clickedElement.classList.contains('formio-drag-button');
289
- }
290
- }
291
- }).on('drop', this.onReorder.bind(this));
292
- this.dragula.on('cloned', (el, original) => {
293
- if (el && el.children && original && original.children) {
294
- _.each(original.children, (child, index) => {
295
- const styles = getComputedStyle(child, null);
296
- if (styles.cssText !== '') {
297
- el.children[index].style.cssText = styles.cssText;
298
- }
299
- else {
300
- const cssText = Object.values(styles).reduce((css, propertyName) => {
301
- return `${css}${propertyName}:${styles.getPropertyValue(propertyName)};`;
302
- }, '');
303
- el.children[index].style.cssText = cssText;
304
- }
305
- });
282
+ this.dragula = dragula([this.refs[`${this.datagridKey}-tbody`]], {
283
+ moves: (_draggedElement, _oldParent, clickedElement) => {
284
+ const clickedElementKey = clickedElement.getAttribute('data-key');
285
+ const oldParentKey = _oldParent.getAttribute('data-key');
286
+ //Check if the clicked button belongs to that container, if false, it belongs to the nested container
287
+ if (oldParentKey === clickedElementKey) {
288
+ return clickedElement.classList.contains('formio-drag-button');
306
289
  }
307
- });
308
- }
290
+ }
291
+ }).on('drop', this.onReorder.bind(this));
292
+ this.dragula.on('cloned', (el, original) => {
293
+ if (el && el.children && original && original.children) {
294
+ _.each(original.children, (child, index) => {
295
+ const styles = getComputedStyle(child, null);
296
+ if (styles.cssText !== '') {
297
+ el.children[index].style.cssText = styles.cssText;
298
+ }
299
+ else {
300
+ const cssText = Object.values(styles).reduce((css, propertyName) => {
301
+ return `${css}${propertyName}:${styles.getPropertyValue(propertyName)};`;
302
+ }, '');
303
+ el.children[index].style.cssText = cssText;
304
+ }
305
+ });
306
+ }
307
+ });
309
308
  }
310
309
  this.refs[`${this.datagridKey}-addRow`].forEach((addButton) => {
311
310
  this.addEventListener(addButton, 'click', this.addRow.bind(this));
@@ -333,6 +332,24 @@ export default class DataGridComponent extends NestedArrayComponent {
333
332
  getComponentsContainer() {
334
333
  return this.component.components;
335
334
  }
335
+ /**
336
+ * Reorder values in array based on the old and new position
337
+ * @param {any} valuesArr - An array of values.
338
+ * @param {number} oldPosition - The index of the value in array before reordering.
339
+ * @param {number} newPosition - The index of the value in array after reordering.
340
+ * @param {boolean|any} movedBelow - Whether or not the value is moved below.
341
+ * @returns {void}
342
+ */
343
+ reorderValues(valuesArr, oldPosition, newPosition, movedBelow) {
344
+ if (!_.isArray(valuesArr) || _.isEmpty(valuesArr)) {
345
+ return;
346
+ }
347
+ const draggedRowData = valuesArr[oldPosition];
348
+ //insert element at new position
349
+ valuesArr.splice(newPosition, 0, draggedRowData);
350
+ //remove element from old position (if was moved above, after insertion it's at +1 index)
351
+ valuesArr.splice(movedBelow ? oldPosition : oldPosition + 1, 1);
352
+ }
336
353
  onReorder(element, _target, _source, sibling) {
337
354
  if (!element.dragInfo || (sibling && !sibling.dragInfo)) {
338
355
  console.warn('There is no Drag Info available for either dragged or sibling element');
@@ -343,11 +360,9 @@ export default class DataGridComponent extends NestedArrayComponent {
343
360
  const newPosition = sibling ? sibling.dragInfo.index : this.dataValue.length;
344
361
  const movedBelow = newPosition > oldPosition;
345
362
  const dataValue = fastCloneDeep(this.dataValue);
346
- const draggedRowData = dataValue[oldPosition];
347
- //insert element at new position
348
- dataValue.splice(newPosition, 0, draggedRowData);
349
- //remove element from old position (if was moved above, after insertion it's at +1 index)
350
- dataValue.splice(movedBelow ? oldPosition : oldPosition + 1, 1);
363
+ this.reorderValues(dataValue, oldPosition, newPosition, movedBelow);
364
+ //reorder select data
365
+ this.reorderValues(_.get(this.root, `submission.metadata.selectData.${this.path}`, []), oldPosition, newPosition, movedBelow);
351
366
  //need to re-build rows to re-calculate indexes and other indexed fields for component instance (like rows for ex.)
352
367
  this.setValue(dataValue, { isReordered: true });
353
368
  this.rebuild();
@@ -0,0 +1,100 @@
1
+ declare namespace _default {
2
+ export { form };
3
+ export { submission };
4
+ }
5
+ export default _default;
6
+ declare namespace form {
7
+ let _id: string;
8
+ let title: string;
9
+ let name: string;
10
+ let path: string;
11
+ let type: string;
12
+ let display: string;
13
+ let components: ({
14
+ label: string;
15
+ reorder: boolean;
16
+ addAnotherPosition: string;
17
+ layoutFixed: boolean;
18
+ enableRowGroups: boolean;
19
+ initEmpty: boolean;
20
+ tableView: boolean;
21
+ defaultValue: {
22
+ select: string;
23
+ }[];
24
+ key: string;
25
+ type: string;
26
+ input: boolean;
27
+ components: {
28
+ label: string;
29
+ widget: string;
30
+ tableView: boolean;
31
+ dataSrc: string;
32
+ data: {
33
+ resource: string;
34
+ };
35
+ dataType: string;
36
+ valueProperty: string;
37
+ template: string;
38
+ validate: {
39
+ select: boolean;
40
+ };
41
+ key: string;
42
+ type: string;
43
+ searchField: string;
44
+ limit: number;
45
+ noRefreshOnScroll: boolean;
46
+ addResource: boolean;
47
+ reference: boolean;
48
+ input: boolean;
49
+ }[];
50
+ disableOnInvalid?: undefined;
51
+ } | {
52
+ type: string;
53
+ label: string;
54
+ key: string;
55
+ disableOnInvalid: boolean;
56
+ input: boolean;
57
+ tableView: boolean;
58
+ reorder?: undefined;
59
+ addAnotherPosition?: undefined;
60
+ layoutFixed?: undefined;
61
+ enableRowGroups?: undefined;
62
+ initEmpty?: undefined;
63
+ defaultValue?: undefined;
64
+ components?: undefined;
65
+ })[];
66
+ let created: string;
67
+ let modified: string;
68
+ let machineName: string;
69
+ }
70
+ declare namespace submission {
71
+ let form_1: string;
72
+ export { form_1 as form };
73
+ export namespace metadata {
74
+ namespace selectData {
75
+ let dataGrid: {
76
+ select: {
77
+ data: {
78
+ number: number;
79
+ };
80
+ };
81
+ }[];
82
+ }
83
+ }
84
+ export namespace data {
85
+ let dataGrid_1: {
86
+ select: string;
87
+ }[];
88
+ export { dataGrid_1 as dataGrid };
89
+ export let dataTable: never[];
90
+ export let submit: boolean;
91
+ }
92
+ let _id_1: string;
93
+ export { _id_1 as _id };
94
+ export let project: string;
95
+ export let state: string;
96
+ let created_1: string;
97
+ export { created_1 as created };
98
+ let modified_1: string;
99
+ export { modified_1 as modified };
100
+ }
@@ -0,0 +1,137 @@
1
+ const form = {
2
+ _id: '66742f4146717b98a9fa280f',
3
+ title: 'test reorder',
4
+ name: 'testReorder',
5
+ path: 'testreorder',
6
+ type: 'form',
7
+ display: 'form',
8
+ components: [
9
+ {
10
+ label: 'Data Grid',
11
+ reorder: true,
12
+ addAnotherPosition: 'bottom',
13
+ layoutFixed: false,
14
+ enableRowGroups: false,
15
+ initEmpty: false,
16
+ tableView: false,
17
+ defaultValue: [
18
+ {
19
+ select: '',
20
+ },
21
+ ],
22
+ key: 'dataGrid',
23
+ type: 'datagrid',
24
+ input: true,
25
+ components: [
26
+ {
27
+ label: 'Select',
28
+ widget: 'choicesjs',
29
+ tableView: true,
30
+ dataSrc: 'resource',
31
+ data: {
32
+ resource: '66742ee946717b98a9fa1b0b',
33
+ },
34
+ dataType: 'string',
35
+ valueProperty: 'data.textField',
36
+ template: '<span>{{ item.data.number }}</span>',
37
+ validate: {
38
+ select: false,
39
+ },
40
+ key: 'select',
41
+ type: 'select',
42
+ searchField: 'data.textField__regex',
43
+ limit: 10,
44
+ noRefreshOnScroll: false,
45
+ addResource: false,
46
+ reference: false,
47
+ input: true,
48
+ },
49
+ ],
50
+ },
51
+ {
52
+ type: 'button',
53
+ label: 'Submit',
54
+ key: 'submit',
55
+ disableOnInvalid: true,
56
+ input: true,
57
+ tableView: false,
58
+ },
59
+ ],
60
+ created: '2024-06-20T13:31:45.177Z',
61
+ modified: '2024-06-25T10:32:46.577Z',
62
+ machineName: 'tifwklexhyrgxbr:testReorder',
63
+ };
64
+ const submission = {
65
+ form: '66742f4146717b98a9fa280f',
66
+ metadata: {
67
+ selectData: {
68
+ dataGrid: [
69
+ {
70
+ select: {
71
+ data: {
72
+ number: 1,
73
+ },
74
+ },
75
+ },
76
+ {
77
+ select: {
78
+ data: {
79
+ number: 2,
80
+ },
81
+ },
82
+ },
83
+ {
84
+ select: {
85
+ data: {
86
+ number: 3,
87
+ },
88
+ },
89
+ },
90
+ {
91
+ select: {
92
+ data: {
93
+ number: 4,
94
+ },
95
+ },
96
+ },
97
+ {
98
+ select: {
99
+ data: {
100
+ number: 5,
101
+ },
102
+ },
103
+ },
104
+ ],
105
+ },
106
+ },
107
+ data: {
108
+ dataGrid: [
109
+ {
110
+ select: '11',
111
+ },
112
+ {
113
+ select: '22',
114
+ },
115
+ {
116
+ select: '33',
117
+ },
118
+ {
119
+ select: '44',
120
+ },
121
+ {
122
+ select: '55',
123
+ },
124
+ ],
125
+ dataTable: [],
126
+ submit: true,
127
+ },
128
+ _id: '667ab5ee6a69739703d30def',
129
+ project: '65df46bc93bcfaa231f3db1c',
130
+ state: 'submitted',
131
+ created: '2024-06-25T12:19:58.626Z',
132
+ modified: '2024-06-25T12:19:58.627Z',
133
+ };
134
+ export default {
135
+ form,
136
+ submission,
137
+ };
@@ -16,4 +16,5 @@ import modalWithRequiredFields from './comp-modal-with-required-fields';
16
16
  import withAllowCalculateOverride from './comp-with-allow-calculate-override';
17
17
  import twoWithAllowCalculatedOverride from './two-comp-with-allow-calculate-override';
18
18
  import withCheckboxes from './comp-with-checkboxes';
19
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes };
19
+ import withReorder from './comp-with-reorder';
20
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes, withReorder };
@@ -16,4 +16,5 @@ import withCollapsibleRowGroups from './comp-with-collapsible-groups';
16
16
  import withAllowCalculateOverride from './comp-with-allow-calculate-override';
17
17
  import twoWithAllowCalculatedOverride from './two-comp-with-allow-calculate-override';
18
18
  import withCheckboxes from './comp-with-checkboxes';
19
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes };
19
+ import withReorder from './comp-with-reorder';
20
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes, withReorder };
@@ -3,7 +3,7 @@ import DataGridComponent from '../datagrid/DataGrid';
3
3
  import _ from 'lodash';
4
4
  import EventEmitter from 'eventemitter3';
5
5
  import { componentValueTypes, getComponentSavedTypes, uniqueKey } from '../../utils/utils';
6
- import { Components } from '../Components';
6
+ import Components from '../Components';
7
7
  export default class DataMapComponent extends DataGridComponent {
8
8
  static schema(...extend) {
9
9
  return Component.schema({
@@ -1079,7 +1079,8 @@ export default class EditGridComponent extends NestedArrayComponent {
1079
1079
  return false;
1080
1080
  }
1081
1081
  else if (rowsEditing && this.saveEditMode && !this.component.openWhenEmpty) {
1082
- this.setCustomValidity(this.t(this.errorMessage('unsavedRowsError')), dirty);
1082
+ this._errors = this.setCustomValidity(this.t(this.errorMessage('unsavedRowsError')), dirty);
1083
+ errors.push(...this._errors);
1083
1084
  return false;
1084
1085
  }
1085
1086
  const message = this.invalid || this.invalidMessage(data, dirty, false, row);
@@ -0,0 +1,52 @@
1
+ declare namespace _default {
2
+ let type: string;
3
+ let display: string;
4
+ let components: ({
5
+ title: string;
6
+ breadcrumbClickable: boolean;
7
+ buttonSettings: {
8
+ previous: boolean;
9
+ cancel: boolean;
10
+ next: boolean;
11
+ };
12
+ collapsible: boolean;
13
+ tableView: boolean;
14
+ key: string;
15
+ type: string;
16
+ label: string;
17
+ input: boolean;
18
+ components: {
19
+ label: string;
20
+ tableView: boolean;
21
+ rowDrafts: boolean;
22
+ key: string;
23
+ type: string;
24
+ input: boolean;
25
+ components: {
26
+ label: string;
27
+ tableView: boolean;
28
+ key: string;
29
+ type: string;
30
+ input: boolean;
31
+ alwaysEnabled: boolean;
32
+ }[];
33
+ alwaysEnabled: boolean;
34
+ }[];
35
+ alwaysEnabled: boolean;
36
+ showValidations?: undefined;
37
+ } | {
38
+ label: string;
39
+ showValidations: boolean;
40
+ alwaysEnabled: boolean;
41
+ tableView: boolean;
42
+ key: string;
43
+ type: string;
44
+ input: boolean;
45
+ title?: undefined;
46
+ breadcrumbClickable?: undefined;
47
+ buttonSettings?: undefined;
48
+ collapsible?: undefined;
49
+ components?: undefined;
50
+ })[];
51
+ }
52
+ export default _default;