@formio/js 5.0.0-dev.5661.22d0f16 → 5.0.0-dev.5664.1af299f

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 (30) hide show
  1. package/Changelog.md +6 -0
  2. package/dist/formio.form.js +98 -2
  3. package/dist/formio.form.min.js +1 -1
  4. package/dist/formio.full.js +2 -2
  5. package/dist/formio.full.min.js +1 -1
  6. package/lib/cjs/components/datagrid/DataGrid.d.ts +9 -0
  7. package/lib/cjs/components/datagrid/DataGrid.js +47 -32
  8. package/lib/cjs/components/datagrid/fixtures/comp-with-reorder.d.ts +100 -0
  9. package/lib/cjs/components/datagrid/fixtures/comp-with-reorder.js +139 -0
  10. package/lib/cjs/components/datagrid/fixtures/index.d.ts +2 -1
  11. package/lib/cjs/components/datagrid/fixtures/index.js +3 -1
  12. package/lib/cjs/components/day/Day.d.ts +1 -1
  13. package/lib/cjs/components/day/Day.js +1 -1
  14. package/lib/cjs/components/day/fixtures/comp7.d.ts +109 -0
  15. package/lib/cjs/components/day/fixtures/comp7.js +109 -0
  16. package/lib/cjs/components/day/fixtures/index.d.ts +2 -1
  17. package/lib/cjs/components/day/fixtures/index.js +3 -1
  18. package/lib/mjs/components/datagrid/DataGrid.d.ts +9 -0
  19. package/lib/mjs/components/datagrid/DataGrid.js +47 -32
  20. package/lib/mjs/components/datagrid/fixtures/comp-with-reorder.d.ts +100 -0
  21. package/lib/mjs/components/datagrid/fixtures/comp-with-reorder.js +137 -0
  22. package/lib/mjs/components/datagrid/fixtures/index.d.ts +2 -1
  23. package/lib/mjs/components/datagrid/fixtures/index.js +2 -1
  24. package/lib/mjs/components/day/Day.d.ts +1 -1
  25. package/lib/mjs/components/day/Day.js +1 -1
  26. package/lib/mjs/components/day/fixtures/comp7.d.ts +109 -0
  27. package/lib/mjs/components/day/fixtures/comp7.js +107 -0
  28. package/lib/mjs/components/day/fixtures/index.d.ts +2 -1
  29. package/lib/mjs/components/day/fixtures/index.js +2 -1
  30. package/package.json +1 -1
@@ -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;
@@ -7,6 +7,7 @@ const lodash_1 = __importDefault(require("lodash"));
7
7
  const NestedArrayComponent_1 = __importDefault(require("../_classes/nestedarray/NestedArrayComponent"));
8
8
  const utils_1 = require("../../utils/utils");
9
9
  const Components_1 = require("../Components");
10
+ const dragula_1 = __importDefault(require("dragula"));
10
11
  class DataGridComponent extends NestedArrayComponent_1.default {
11
12
  static schema(...extend) {
12
13
  return NestedArrayComponent_1.default.schema({
@@ -281,34 +282,32 @@ class DataGridComponent extends NestedArrayComponent_1.default {
281
282
  this.refs[`${this.datagridKey}-row`].forEach((row, index) => {
282
283
  row.dragInfo = { index };
283
284
  });
284
- if (this.root.dragulaLib) {
285
- this.dragula = this.root.dragulaLib([this.refs[`${this.datagridKey}-tbody`]], {
286
- moves: (_draggedElement, _oldParent, clickedElement) => {
287
- const clickedElementKey = clickedElement.getAttribute('data-key');
288
- const oldParentKey = _oldParent.getAttribute('data-key');
289
- //Check if the clicked button belongs to that container, if false, it belongs to the nested container
290
- if (oldParentKey === clickedElementKey) {
291
- return clickedElement.classList.contains('formio-drag-button');
292
- }
293
- }
294
- }).on('drop', this.onReorder.bind(this));
295
- this.dragula.on('cloned', (el, original) => {
296
- if (el && el.children && original && original.children) {
297
- lodash_1.default.each(original.children, (child, index) => {
298
- const styles = getComputedStyle(child, null);
299
- if (styles.cssText !== '') {
300
- el.children[index].style.cssText = styles.cssText;
301
- }
302
- else {
303
- const cssText = Object.values(styles).reduce((css, propertyName) => {
304
- return `${css}${propertyName}:${styles.getPropertyValue(propertyName)};`;
305
- }, '');
306
- el.children[index].style.cssText = cssText;
307
- }
308
- });
285
+ this.dragula = (0, dragula_1.default)([this.refs[`${this.datagridKey}-tbody`]], {
286
+ moves: (_draggedElement, _oldParent, clickedElement) => {
287
+ const clickedElementKey = clickedElement.getAttribute('data-key');
288
+ const oldParentKey = _oldParent.getAttribute('data-key');
289
+ //Check if the clicked button belongs to that container, if false, it belongs to the nested container
290
+ if (oldParentKey === clickedElementKey) {
291
+ return clickedElement.classList.contains('formio-drag-button');
309
292
  }
310
- });
311
- }
293
+ }
294
+ }).on('drop', this.onReorder.bind(this));
295
+ this.dragula.on('cloned', (el, original) => {
296
+ if (el && el.children && original && original.children) {
297
+ lodash_1.default.each(original.children, (child, index) => {
298
+ const styles = getComputedStyle(child, null);
299
+ if (styles.cssText !== '') {
300
+ el.children[index].style.cssText = styles.cssText;
301
+ }
302
+ else {
303
+ const cssText = Object.values(styles).reduce((css, propertyName) => {
304
+ return `${css}${propertyName}:${styles.getPropertyValue(propertyName)};`;
305
+ }, '');
306
+ el.children[index].style.cssText = cssText;
307
+ }
308
+ });
309
+ }
310
+ });
312
311
  }
313
312
  this.refs[`${this.datagridKey}-addRow`].forEach((addButton) => {
314
313
  this.addEventListener(addButton, 'click', this.addRow.bind(this));
@@ -336,6 +335,24 @@ class DataGridComponent extends NestedArrayComponent_1.default {
336
335
  getComponentsContainer() {
337
336
  return this.component.components;
338
337
  }
338
+ /**
339
+ * Reorder values in array based on the old and new position
340
+ * @param {any} valuesArr - An array of values.
341
+ * @param {number} oldPosition - The index of the value in array before reordering.
342
+ * @param {number} newPosition - The index of the value in array after reordering.
343
+ * @param {boolean|any} movedBelow - Whether or not the value is moved below.
344
+ * @returns {void}
345
+ */
346
+ reorderValues(valuesArr, oldPosition, newPosition, movedBelow) {
347
+ if (!lodash_1.default.isArray(valuesArr) || lodash_1.default.isEmpty(valuesArr)) {
348
+ return;
349
+ }
350
+ const draggedRowData = valuesArr[oldPosition];
351
+ //insert element at new position
352
+ valuesArr.splice(newPosition, 0, draggedRowData);
353
+ //remove element from old position (if was moved above, after insertion it's at +1 index)
354
+ valuesArr.splice(movedBelow ? oldPosition : oldPosition + 1, 1);
355
+ }
339
356
  onReorder(element, _target, _source, sibling) {
340
357
  if (!element.dragInfo || (sibling && !sibling.dragInfo)) {
341
358
  console.warn('There is no Drag Info available for either dragged or sibling element');
@@ -346,11 +363,9 @@ class DataGridComponent extends NestedArrayComponent_1.default {
346
363
  const newPosition = sibling ? sibling.dragInfo.index : this.dataValue.length;
347
364
  const movedBelow = newPosition > oldPosition;
348
365
  const dataValue = (0, utils_1.fastCloneDeep)(this.dataValue);
349
- const draggedRowData = dataValue[oldPosition];
350
- //insert element at new position
351
- dataValue.splice(newPosition, 0, draggedRowData);
352
- //remove element from old position (if was moved above, after insertion it's at +1 index)
353
- dataValue.splice(movedBelow ? oldPosition : oldPosition + 1, 1);
366
+ this.reorderValues(dataValue, oldPosition, newPosition, movedBelow);
367
+ //reorder select data
368
+ this.reorderValues(lodash_1.default.get(this.root, `submission.metadata.selectData.${this.path}`, []), oldPosition, newPosition, movedBelow);
354
369
  //need to re-build rows to re-calculate indexes and other indexed fields for component instance (like rows for ex.)
355
370
  this.setValue(dataValue, { isReordered: true });
356
371
  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,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const form = {
4
+ _id: '66742f4146717b98a9fa280f',
5
+ title: 'test reorder',
6
+ name: 'testReorder',
7
+ path: 'testreorder',
8
+ type: 'form',
9
+ display: 'form',
10
+ components: [
11
+ {
12
+ label: 'Data Grid',
13
+ reorder: true,
14
+ addAnotherPosition: 'bottom',
15
+ layoutFixed: false,
16
+ enableRowGroups: false,
17
+ initEmpty: false,
18
+ tableView: false,
19
+ defaultValue: [
20
+ {
21
+ select: '',
22
+ },
23
+ ],
24
+ key: 'dataGrid',
25
+ type: 'datagrid',
26
+ input: true,
27
+ components: [
28
+ {
29
+ label: 'Select',
30
+ widget: 'choicesjs',
31
+ tableView: true,
32
+ dataSrc: 'resource',
33
+ data: {
34
+ resource: '66742ee946717b98a9fa1b0b',
35
+ },
36
+ dataType: 'string',
37
+ valueProperty: 'data.textField',
38
+ template: '<span>{{ item.data.number }}</span>',
39
+ validate: {
40
+ select: false,
41
+ },
42
+ key: 'select',
43
+ type: 'select',
44
+ searchField: 'data.textField__regex',
45
+ limit: 10,
46
+ noRefreshOnScroll: false,
47
+ addResource: false,
48
+ reference: false,
49
+ input: true,
50
+ },
51
+ ],
52
+ },
53
+ {
54
+ type: 'button',
55
+ label: 'Submit',
56
+ key: 'submit',
57
+ disableOnInvalid: true,
58
+ input: true,
59
+ tableView: false,
60
+ },
61
+ ],
62
+ created: '2024-06-20T13:31:45.177Z',
63
+ modified: '2024-06-25T10:32:46.577Z',
64
+ machineName: 'tifwklexhyrgxbr:testReorder',
65
+ };
66
+ const submission = {
67
+ form: '66742f4146717b98a9fa280f',
68
+ metadata: {
69
+ selectData: {
70
+ dataGrid: [
71
+ {
72
+ select: {
73
+ data: {
74
+ number: 1,
75
+ },
76
+ },
77
+ },
78
+ {
79
+ select: {
80
+ data: {
81
+ number: 2,
82
+ },
83
+ },
84
+ },
85
+ {
86
+ select: {
87
+ data: {
88
+ number: 3,
89
+ },
90
+ },
91
+ },
92
+ {
93
+ select: {
94
+ data: {
95
+ number: 4,
96
+ },
97
+ },
98
+ },
99
+ {
100
+ select: {
101
+ data: {
102
+ number: 5,
103
+ },
104
+ },
105
+ },
106
+ ],
107
+ },
108
+ },
109
+ data: {
110
+ dataGrid: [
111
+ {
112
+ select: '11',
113
+ },
114
+ {
115
+ select: '22',
116
+ },
117
+ {
118
+ select: '33',
119
+ },
120
+ {
121
+ select: '44',
122
+ },
123
+ {
124
+ select: '55',
125
+ },
126
+ ],
127
+ dataTable: [],
128
+ submit: true,
129
+ },
130
+ _id: '667ab5ee6a69739703d30def',
131
+ project: '65df46bc93bcfaa231f3db1c',
132
+ state: 'submitted',
133
+ created: '2024-06-25T12:19:58.626Z',
134
+ modified: '2024-06-25T12:19:58.627Z',
135
+ };
136
+ exports.default = {
137
+ form,
138
+ submission,
139
+ };
@@ -15,4 +15,5 @@ import modalWithRequiredFields from './comp-modal-with-required-fields';
15
15
  import withAllowCalculateOverride from './comp-with-allow-calculate-override';
16
16
  import twoWithAllowCalculatedOverride from './two-comp-with-allow-calculate-override';
17
17
  import withCheckboxes from './comp-with-checkboxes';
18
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes };
18
+ import withReorder from './comp-with-reorder';
19
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, withCollapsibleRowGroups, withConditionalFieldsAndValidations, withDefValue, withLogic, withRowGroupsAndDefValue, modalWithRequiredFields, withAllowCalculateOverride, twoWithAllowCalculatedOverride, withCheckboxes, withReorder };
@@ -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.withCheckboxes = exports.twoWithAllowCalculatedOverride = exports.withAllowCalculateOverride = exports.modalWithRequiredFields = exports.withRowGroupsAndDefValue = exports.withLogic = exports.withDefValue = exports.withConditionalFieldsAndValidations = exports.withCollapsibleRowGroups = exports.comp8 = exports.comp7 = exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ exports.withReorder = exports.withCheckboxes = exports.twoWithAllowCalculatedOverride = exports.withAllowCalculateOverride = exports.modalWithRequiredFields = exports.withRowGroupsAndDefValue = exports.withLogic = exports.withDefValue = exports.withConditionalFieldsAndValidations = exports.withCollapsibleRowGroups = 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"));
@@ -38,3 +38,5 @@ const two_comp_with_allow_calculate_override_1 = __importDefault(require("./two-
38
38
  exports.twoWithAllowCalculatedOverride = two_comp_with_allow_calculate_override_1.default;
39
39
  const comp_with_checkboxes_1 = __importDefault(require("./comp-with-checkboxes"));
40
40
  exports.withCheckboxes = comp_with_checkboxes_1.default;
41
+ const comp_with_reorder_1 = __importDefault(require("./comp-with-reorder"));
42
+ exports.withReorder = comp_with_reorder_1.default;
@@ -35,7 +35,7 @@ export default class DayComponent extends Field {
35
35
  id: string;
36
36
  class: string;
37
37
  type: string;
38
- placeholder: any;
38
+ placeholder: string;
39
39
  step: number;
40
40
  min: any;
41
41
  max: any;
@@ -124,7 +124,7 @@ class DayComponent extends Field_1.default {
124
124
  id: `${this.component.key}-${name}`,
125
125
  class: `form-control ${this.transform('class', `formio-day-component-${name}`)}`,
126
126
  type: this.component.fields[name].type === 'select' ? 'select' : 'number',
127
- placeholder: this.component.fields[name].placeholder,
127
+ placeholder: this.t(this.component.fields[name].placeholder),
128
128
  step: 1,
129
129
  min,
130
130
  max,
@@ -0,0 +1,109 @@
1
+ declare namespace _default {
2
+ let components: ({
3
+ type: string;
4
+ key: string;
5
+ label: string;
6
+ placeholder: string;
7
+ input: boolean;
8
+ applyMaskOn?: undefined;
9
+ tableView?: undefined;
10
+ hideInputLabels?: undefined;
11
+ inputsLabelPosition?: undefined;
12
+ useLocaleSettings?: undefined;
13
+ fields?: undefined;
14
+ defaultValue?: undefined;
15
+ values?: undefined;
16
+ questions?: undefined;
17
+ action?: undefined;
18
+ theme?: undefined;
19
+ } | {
20
+ label: string;
21
+ placeholder: string;
22
+ applyMaskOn: string;
23
+ tableView: boolean;
24
+ key: string;
25
+ type: string;
26
+ input: boolean;
27
+ hideInputLabels?: undefined;
28
+ inputsLabelPosition?: undefined;
29
+ useLocaleSettings?: undefined;
30
+ fields?: undefined;
31
+ defaultValue?: undefined;
32
+ values?: undefined;
33
+ questions?: undefined;
34
+ action?: undefined;
35
+ theme?: undefined;
36
+ } | {
37
+ label: string;
38
+ hideInputLabels: boolean;
39
+ inputsLabelPosition: string;
40
+ useLocaleSettings: boolean;
41
+ tableView: boolean;
42
+ fields: {
43
+ day: {
44
+ placeholder: string;
45
+ hide: boolean;
46
+ };
47
+ month: {
48
+ type: string;
49
+ placeholder: string;
50
+ hide: boolean;
51
+ };
52
+ year: {
53
+ placeholder: string;
54
+ hide: boolean;
55
+ };
56
+ };
57
+ key: string;
58
+ type: string;
59
+ input: boolean;
60
+ defaultValue: string;
61
+ placeholder?: undefined;
62
+ applyMaskOn?: undefined;
63
+ values?: undefined;
64
+ questions?: undefined;
65
+ action?: undefined;
66
+ theme?: undefined;
67
+ } | {
68
+ type: string;
69
+ key: string;
70
+ label: string;
71
+ values: {
72
+ label: string;
73
+ value: string;
74
+ }[];
75
+ questions: {
76
+ label: string;
77
+ value: string;
78
+ }[];
79
+ placeholder?: undefined;
80
+ input?: undefined;
81
+ applyMaskOn?: undefined;
82
+ tableView?: undefined;
83
+ hideInputLabels?: undefined;
84
+ inputsLabelPosition?: undefined;
85
+ useLocaleSettings?: undefined;
86
+ fields?: undefined;
87
+ defaultValue?: undefined;
88
+ action?: undefined;
89
+ theme?: undefined;
90
+ } | {
91
+ type: string;
92
+ action: string;
93
+ label: string;
94
+ theme: string;
95
+ key?: undefined;
96
+ placeholder?: undefined;
97
+ input?: undefined;
98
+ applyMaskOn?: undefined;
99
+ tableView?: undefined;
100
+ hideInputLabels?: undefined;
101
+ inputsLabelPosition?: undefined;
102
+ useLocaleSettings?: undefined;
103
+ fields?: undefined;
104
+ defaultValue?: undefined;
105
+ values?: undefined;
106
+ questions?: undefined;
107
+ })[];
108
+ }
109
+ export default _default;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ components: [
5
+ {
6
+ type: 'textfield',
7
+ key: 'firstName',
8
+ label: 'First Name',
9
+ placeholder: 'Enter your first name',
10
+ input: true
11
+ }, {
12
+ "label": "Day",
13
+ "placeholder": "Day",
14
+ "applyMaskOn": "change",
15
+ "tableView": true,
16
+ "key": "day2",
17
+ "type": "textfield",
18
+ "input": true
19
+ }, {
20
+ "label": "Month",
21
+ "placeholder": "Month",
22
+ "applyMaskOn": "change",
23
+ "tableView": true,
24
+ "key": "month2",
25
+ "type": "textfield",
26
+ "input": true
27
+ }, {
28
+ "label": "Year",
29
+ "placeholder": "Year",
30
+ "applyMaskOn": "change",
31
+ "tableView": true,
32
+ "key": "year2",
33
+ "type": "textfield",
34
+ "input": true
35
+ },
36
+ {
37
+ "label": "Day",
38
+ "hideInputLabels": false,
39
+ "inputsLabelPosition": "top",
40
+ "useLocaleSettings": false,
41
+ "tableView": false,
42
+ "fields": {
43
+ "day": {
44
+ "placeholder": "Day",
45
+ "hide": false
46
+ },
47
+ "month": {
48
+ "type": "number",
49
+ "placeholder": "Month",
50
+ "hide": false
51
+ },
52
+ "year": {
53
+ "placeholder": "Year",
54
+ "hide": false
55
+ }
56
+ },
57
+ "key": "day",
58
+ "type": "day",
59
+ "input": true,
60
+ "defaultValue": "00/00/0000"
61
+ },
62
+ {
63
+ type: 'textfield',
64
+ key: 'lastName',
65
+ label: 'Last Name',
66
+ placeholder: 'Enter your last name',
67
+ input: true
68
+ },
69
+ {
70
+ type: 'survey',
71
+ key: 'questions',
72
+ label: 'Survey',
73
+ values: [
74
+ {
75
+ label: 'Great',
76
+ value: 'great'
77
+ },
78
+ {
79
+ label: 'Good',
80
+ value: 'good'
81
+ },
82
+ {
83
+ label: 'Poor',
84
+ value: 'poor'
85
+ }
86
+ ],
87
+ questions: [
88
+ {
89
+ label: 'How would you rate the Form.io platform?',
90
+ value: 'howWouldYouRateTheFormIoPlatform'
91
+ },
92
+ {
93
+ label: 'How was Customer Support?',
94
+ value: 'howWasCustomerSupport'
95
+ },
96
+ {
97
+ label: 'Overall Experience?',
98
+ value: 'overallExperience'
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ type: 'button',
104
+ action: 'submit',
105
+ label: 'Submit',
106
+ theme: 'primary'
107
+ }
108
+ ]
109
+ };
@@ -4,4 +4,5 @@ import comp3 from './comp3';
4
4
  import comp4 from './comp4';
5
5
  import comp5 from './comp5';
6
6
  import comp6 from './comp6';
7
- export { comp1, comp2, comp3, comp4, comp5, comp6 };
7
+ import comp7 from './comp7';
8
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7 };
@@ -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.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ 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"));
@@ -16,3 +16,5 @@ const comp5_1 = __importDefault(require("./comp5"));
16
16
  exports.comp5 = comp5_1.default;
17
17
  const comp6_1 = __importDefault(require("./comp6"));
18
18
  exports.comp6 = comp6_1.default;
19
+ const comp7_1 = __importDefault(require("./comp7"));
20
+ exports.comp7 = comp7_1.default;
@@ -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;