@mtna/web-form-angular 1.0.0 → 1.0.1
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.
- package/_index.scss +7 -8
- package/bundles/mtna-web-form-angular.umd.js +18 -4
- package/bundles/mtna-web-form-angular.umd.js.map +1 -1
- package/esm2015/lib/core/utilities/generate-form-steps.js +18 -5
- package/fesm2015/mtna-web-form-angular.js +17 -4
- package/fesm2015/mtna-web-form-angular.js.map +1 -1
- package/lib/_index.scss +7 -8
- package/lib/core/utilities/generate-form-steps.d.ts +12 -1
- package/package.json +1 -1
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import { toLetters } from '@mtna/core-ts';
|
|
2
2
|
import { isDataCubeItem, isSection } from '@mtna/web-form-ts';
|
|
3
3
|
import { FormStep, FormStepGroup, isFormStepGroup } from '../../form-stepper/models';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Builds up an array of FormSteps or FormStepGroups based on what is found in the provided form items. For most typical
|
|
6
|
+
* forms this will mean that a step is generated for every section that is found in the form. It is assumed that all
|
|
7
|
+
* inputs are held within sections and therefore the sections are the steps that should be monitored for completeness.
|
|
8
|
+
* However, in some circumstances, like very short forms, it may be the case that there are no sections and that all
|
|
9
|
+
* the items are set directly on the form itself. In these circumstances the allSteps parameter can be set to true and
|
|
10
|
+
* a step will be produced for each form item found.
|
|
11
|
+
*
|
|
12
|
+
* @param items the items of the form
|
|
13
|
+
* @param allSteps flag indicating that a form step should be produced for every form item
|
|
14
|
+
*/
|
|
15
|
+
export function generateFormSteps(items, allSteps = false) {
|
|
5
16
|
// Build up an array of steps based on the form items
|
|
6
17
|
return items.reduce((newArray, item) => {
|
|
7
18
|
// The number of non-group steps, used to number the top level steps
|
|
8
19
|
const count = newArray.filter((step) => !isFormStepGroup(step)).length;
|
|
9
|
-
if (
|
|
20
|
+
if (allSteps) {
|
|
21
|
+
newArray.push(new FormStep(count + 1, item.name || 'No Title', item.instanceId, !item.required));
|
|
22
|
+
}
|
|
23
|
+
else if (isSection(item)) {
|
|
10
24
|
// If the item is a Section, add a step
|
|
11
25
|
newArray.push(new FormStep(count + 1, item.title.value || 'No Title', item.instanceId, !item.required));
|
|
12
26
|
}
|
|
13
27
|
else if (isDataCubeItem(item)) {
|
|
14
|
-
// If the item is a DataCubeItem, add a step
|
|
15
|
-
// and add a group step for the sub-sections
|
|
28
|
+
// If the item is a DataCubeItem, add a step and add a group step for the sub-sections
|
|
16
29
|
newArray.push(new FormStep(count + 1, item.title.value || '', item.instanceId, !item.required));
|
|
17
30
|
const subSectionSteps = item.items
|
|
18
31
|
.filter(isSection)
|
|
@@ -22,4 +35,4 @@ export function generateFormSteps(items) {
|
|
|
22
35
|
return newArray;
|
|
23
36
|
}, []);
|
|
24
37
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS1zdGVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9jb3JlL3V0aWxpdGllcy9nZW5lcmF0ZS1mb3JtLXN0ZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFZLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQXNCLEVBQUUsUUFBUSxHQUFHLEtBQUs7SUFDeEUscURBQXFEO0lBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQXlDLEVBQUUsSUFBYyxFQUFFLEVBQUU7UUFDaEYsb0VBQW9FO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksUUFBUSxFQUFFO1lBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRzthQUFNLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLHVDQUF1QztZQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN6RzthQUFNLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLHNGQUFzRjtZQUN0RixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUVoRyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSztpQkFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FBQztpQkFDakIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzRTtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0xldHRlcnMgfSBmcm9tICdAbXRuYS9jb3JlLXRzJztcbmltcG9ydCB7IEZvcm1JdGVtLCBpc0RhdGFDdWJlSXRlbSwgaXNTZWN0aW9uIH0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuXG5pbXBvcnQgeyBGb3JtU3RlcCwgRm9ybVN0ZXBHcm91cCwgaXNGb3JtU3RlcEdyb3VwIH0gZnJvbSAnLi4vLi4vZm9ybS1zdGVwcGVyL21vZGVscyc7XG5cbi8qKlxuICogQnVpbGRzIHVwIGFuIGFycmF5IG9mIEZvcm1TdGVwcyBvciBGb3JtU3RlcEdyb3VwcyBiYXNlZCBvbiB3aGF0IGlzIGZvdW5kIGluIHRoZSBwcm92aWRlZCBmb3JtIGl0ZW1zLiBGb3IgbW9zdCB0eXBpY2FsXG4gKiBmb3JtcyB0aGlzIHdpbGwgbWVhbiB0aGF0IGEgc3RlcCBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IHNlY3Rpb24gdGhhdCBpcyBmb3VuZCBpbiB0aGUgZm9ybS4gSXQgaXMgYXNzdW1lZCB0aGF0IGFsbFxuICogaW5wdXRzIGFyZSBoZWxkIHdpdGhpbiBzZWN0aW9ucyBhbmQgdGhlcmVmb3JlIHRoZSBzZWN0aW9ucyBhcmUgdGhlIHN0ZXBzIHRoYXQgc2hvdWxkIGJlIG1vbml0b3JlZCBmb3IgY29tcGxldGVuZXNzLlxuICogSG93ZXZlciwgaW4gc29tZSBjaXJjdW1zdGFuY2VzLCBsaWtlIHZlcnkgc2hvcnQgZm9ybXMsIGl0IG1heSBiZSB0aGUgY2FzZSB0aGF0IHRoZXJlIGFyZSBubyBzZWN0aW9ucyBhbmQgdGhhdCBhbGxcbiAqIHRoZSBpdGVtcyBhcmUgc2V0IGRpcmVjdGx5IG9uIHRoZSBmb3JtIGl0c2VsZi4gSW4gdGhlc2UgY2lyY3Vtc3RhbmNlcyB0aGUgYWxsU3RlcHMgcGFyYW1ldGVyIGNhbiBiZSBzZXQgdG8gdHJ1ZSBhbmRcbiAqIGEgc3RlcCB3aWxsIGJlIHByb2R1Y2VkIGZvciBlYWNoIGZvcm0gaXRlbSBmb3VuZC5cbiAqXG4gKiBAcGFyYW0gaXRlbXMgdGhlIGl0ZW1zIG9mIHRoZSBmb3JtXG4gKiBAcGFyYW0gYWxsU3RlcHMgZmxhZyBpbmRpY2F0aW5nIHRoYXQgYSBmb3JtIHN0ZXAgc2hvdWxkIGJlIHByb2R1Y2VkIGZvciBldmVyeSBmb3JtIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybVN0ZXBzKGl0ZW1zOiBBcnJheTxGb3JtSXRlbT4sIGFsbFN0ZXBzID0gZmFsc2UpOiBBcnJheTxGb3JtU3RlcCB8IEZvcm1TdGVwR3JvdXA+IHtcbiAgLy8gQnVpbGQgdXAgYW4gYXJyYXkgb2Ygc3RlcHMgYmFzZWQgb24gdGhlIGZvcm0gaXRlbXNcbiAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgobmV3QXJyYXk6IEFycmF5PEZvcm1TdGVwIHwgRm9ybVN0ZXBHcm91cD4sIGl0ZW06IEZvcm1JdGVtKSA9PiB7XG4gICAgLy8gVGhlIG51bWJlciBvZiBub24tZ3JvdXAgc3RlcHMsIHVzZWQgdG8gbnVtYmVyIHRoZSB0b3AgbGV2ZWwgc3RlcHNcbiAgICBjb25zdCBjb3VudCA9IG5ld0FycmF5LmZpbHRlcigoc3RlcCkgPT4gIWlzRm9ybVN0ZXBHcm91cChzdGVwKSkubGVuZ3RoO1xuICAgIGlmIChhbGxTdGVwcykge1xuICAgICAgbmV3QXJyYXkucHVzaChuZXcgRm9ybVN0ZXAoY291bnQgKyAxLCBpdGVtLm5hbWUgfHwgJ05vIFRpdGxlJywgaXRlbS5pbnN0YW5jZUlkLCAhaXRlbS5yZXF1aXJlZCkpO1xuICAgIH0gZWxzZSBpZiAoaXNTZWN0aW9uKGl0ZW0pKSB7XG4gICAgICAvLyBJZiB0aGUgaXRlbSBpcyBhIFNlY3Rpb24sIGFkZCBhIHN0ZXBcbiAgICAgIG5ld0FycmF5LnB1c2gobmV3IEZvcm1TdGVwKGNvdW50ICsgMSwgaXRlbS50aXRsZS52YWx1ZSB8fCAnTm8gVGl0bGUnLCBpdGVtLmluc3RhbmNlSWQsICFpdGVtLnJlcXVpcmVkKSk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFDdWJlSXRlbShpdGVtKSkge1xuICAgICAgLy8gSWYgdGhlIGl0ZW0gaXMgYSBEYXRhQ3ViZUl0ZW0sIGFkZCBhIHN0ZXAgYW5kIGFkZCBhIGdyb3VwIHN0ZXAgZm9yIHRoZSBzdWItc2VjdGlvbnNcbiAgICAgIG5ld0FycmF5LnB1c2gobmV3IEZvcm1TdGVwKGNvdW50ICsgMSwgaXRlbS50aXRsZS52YWx1ZSB8fCAnJywgaXRlbS5pbnN0YW5jZUlkLCAhaXRlbS5yZXF1aXJlZCkpO1xuXG4gICAgICBjb25zdCBzdWJTZWN0aW9uU3RlcHMgPSBpdGVtLml0ZW1zXG4gICAgICAgIC5maWx0ZXIoaXNTZWN0aW9uKVxuICAgICAgICAubWFwKChpdGVtLCBpbmRleCkgPT4gbmV3IEZvcm1TdGVwKGAke2NvdW50ICsgMX0ke3RvTGV0dGVycyhpbmRleCArIDEpfWAsIGl0ZW0udGl0bGUudmFsdWUgfHwgJycsIGl0ZW0uaW5zdGFuY2VJZCwgIWl0ZW0ucmVxdWlyZWQpKTtcbiAgICAgIG5ld0FycmF5LnB1c2gobmV3IEZvcm1TdGVwR3JvdXAoc3ViU2VjdGlvblN0ZXBzLCBpdGVtLmluc3RhbmNlSWQsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0FycmF5O1xuICB9LCBbXSk7XG59XG4iXX0=
|
|
@@ -1312,18 +1312,31 @@ function flattenSteps(steps) {
|
|
|
1312
1312
|
return steps.reduce((a, b) => a.concat(isFormStepGroup(b) ? b.steps : b), new Array());
|
|
1313
1313
|
}
|
|
1314
1314
|
|
|
1315
|
-
|
|
1315
|
+
/**
|
|
1316
|
+
* Builds up an array of FormSteps or FormStepGroups based on what is found in the provided form items. For most typical
|
|
1317
|
+
* forms this will mean that a step is generated for every section that is found in the form. It is assumed that all
|
|
1318
|
+
* inputs are held within sections and therefore the sections are the steps that should be monitored for completeness.
|
|
1319
|
+
* However, in some circumstances, like very short forms, it may be the case that there are no sections and that all
|
|
1320
|
+
* the items are set directly on the form itself. In these circumstances the allSteps parameter can be set to true and
|
|
1321
|
+
* a step will be produced for each form item found.
|
|
1322
|
+
*
|
|
1323
|
+
* @param items the items of the form
|
|
1324
|
+
* @param allSteps flag indicating that a form step should be produced for every form item
|
|
1325
|
+
*/
|
|
1326
|
+
function generateFormSteps(items, allSteps = false) {
|
|
1316
1327
|
// Build up an array of steps based on the form items
|
|
1317
1328
|
return items.reduce((newArray, item) => {
|
|
1318
1329
|
// The number of non-group steps, used to number the top level steps
|
|
1319
1330
|
const count = newArray.filter((step) => !isFormStepGroup(step)).length;
|
|
1320
|
-
if (
|
|
1331
|
+
if (allSteps) {
|
|
1332
|
+
newArray.push(new FormStep(count + 1, item.name || 'No Title', item.instanceId, !item.required));
|
|
1333
|
+
}
|
|
1334
|
+
else if (isSection(item)) {
|
|
1321
1335
|
// If the item is a Section, add a step
|
|
1322
1336
|
newArray.push(new FormStep(count + 1, item.title.value || 'No Title', item.instanceId, !item.required));
|
|
1323
1337
|
}
|
|
1324
1338
|
else if (isDataCubeItem(item)) {
|
|
1325
|
-
// If the item is a DataCubeItem, add a step
|
|
1326
|
-
// and add a group step for the sub-sections
|
|
1339
|
+
// If the item is a DataCubeItem, add a step and add a group step for the sub-sections
|
|
1327
1340
|
newArray.push(new FormStep(count + 1, item.title.value || '', item.instanceId, !item.required));
|
|
1328
1341
|
const subSectionSteps = item.items
|
|
1329
1342
|
.filter(isSection)
|