@builttocreate/engine-utils 1.16.0-rc4 → 1.16.0-rc6
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/dist/formHelper.js +99 -5
- package/package.json +1 -1
package/dist/formHelper.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.formatv2Form = exports.getDefaultPage = void 0;
|
|
8
|
+
exports["default"] = exports.getv2FormUpdatePayload = exports.formatv2Form = exports.getDefaultPage = void 0;
|
|
9
9
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
|
|
@@ -44,8 +44,8 @@ var getDefaultPage = function getDefaultPage() {
|
|
|
44
44
|
/**
|
|
45
45
|
* Format a version 2 form (template)
|
|
46
46
|
*
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
* @param {Object} form
|
|
48
|
+
* @return {Object}
|
|
49
49
|
*/
|
|
50
50
|
|
|
51
51
|
|
|
@@ -80,10 +80,12 @@ var formatv2Form = function formatv2Form(form) {
|
|
|
80
80
|
} //Add field parameters
|
|
81
81
|
|
|
82
82
|
|
|
83
|
+
if (field.identifier) formattedData.identifier = field.identifier;
|
|
83
84
|
if (field.title) formattedData.title = field.title;
|
|
84
85
|
if (field.value) formattedData.value = field.value;
|
|
85
86
|
if (field.tableColumns) formattedData.tableColumns = field.tableColumns;
|
|
86
|
-
if (field.
|
|
87
|
+
if (field.tableColumnOrder) formattedData.tableColumnOrder = field.tableColumnOrder;
|
|
88
|
+
if (field.options) formattedData.options = field.options;
|
|
87
89
|
if (field.yTitle) formattedData.yTitle = field.yTitle;
|
|
88
90
|
if (typeof field.yMax === 'number') formattedData.yMax = field.yMax;
|
|
89
91
|
if (typeof field.yMin === 'number') formattedData.yMin = field.yMin;
|
|
@@ -93,16 +95,108 @@ var formatv2Form = function formatv2Form(form) {
|
|
|
93
95
|
nextPage.fields.push(formattedData);
|
|
94
96
|
nextFields.push(formattedData);
|
|
95
97
|
});
|
|
98
|
+
return nextPage;
|
|
96
99
|
});
|
|
97
100
|
return _objectSpread(_objectSpread({}, form), {}, {
|
|
98
101
|
pages: nextPages,
|
|
99
102
|
fields: nextFields
|
|
100
103
|
});
|
|
101
104
|
};
|
|
105
|
+
/**
|
|
106
|
+
* Format a version 2 form (template) update payload
|
|
107
|
+
*
|
|
108
|
+
* @param {Object} form
|
|
109
|
+
* @return {Object}
|
|
110
|
+
*/
|
|
111
|
+
|
|
102
112
|
|
|
103
113
|
exports.formatv2Form = formatv2Form;
|
|
114
|
+
|
|
115
|
+
var getv2FormUpdatePayload = function getv2FormUpdatePayload(formPayload) {
|
|
116
|
+
var pages = formPayload.pages,
|
|
117
|
+
fields = formPayload.fields;
|
|
118
|
+
var nextFields = (0, _toConsumableArray2["default"])(fields);
|
|
119
|
+
var nextFieldsIndexLookup = {};
|
|
120
|
+
nextFields.forEach(function (field, i) {
|
|
121
|
+
nextFieldsIndexLookup[field._id] = i;
|
|
122
|
+
});
|
|
123
|
+
/**
|
|
124
|
+
* Field Keys are fields that belong on the field object
|
|
125
|
+
* and not on the fieldPosition object.
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
var fieldKeys = ['identifier', 'title', 'value', 'tableColumns', 'tableColumnOrder', 'options', 'yTitle', 'yMax', 'yMin', 'xTitle', 'xMax', 'xMin'];
|
|
129
|
+
/**
|
|
130
|
+
* Step 1: Properly save fields and field postion date
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
var nextPages = (0, _toConsumableArray2["default"])(pages).map(function (page) {
|
|
134
|
+
var nextPage = _objectSpread(_objectSpread({}, page), {}, {
|
|
135
|
+
fields: []
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
page.fields.forEach(function (fieldPosition) {
|
|
139
|
+
var fieldData = {
|
|
140
|
+
_id: fieldPosition.field
|
|
141
|
+
};
|
|
142
|
+
var fieldPositionData = {};
|
|
143
|
+
/**
|
|
144
|
+
* Step 1.1: Sort field and fieldPosition data
|
|
145
|
+
*
|
|
146
|
+
* If the fieldPosition.field doesn't to exist inside form.fields
|
|
147
|
+
* then that means it's a brand new fieldPosition and field and
|
|
148
|
+
* we need to add it the new field to form.fields.
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
Object.keys(fieldPosition).forEach(function (key) {
|
|
152
|
+
if (fieldKeys.indexOf(key) !== -1) {
|
|
153
|
+
fieldData[key] = fieldPosition[key];
|
|
154
|
+
} else {
|
|
155
|
+
fieldPositionData[key] = fieldPosition[key];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
/**
|
|
159
|
+
* Step 1.2: Check if field needs to be created or simply updated
|
|
160
|
+
*
|
|
161
|
+
* If the fieldPosition.field doesn't exist inside form.fields
|
|
162
|
+
* then that means it's a brand new fieldPosition and field and
|
|
163
|
+
* we need to add it the new field to form.fields.
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
var fieldIndex = nextFieldsIndexLookup[fieldData._id];
|
|
167
|
+
|
|
168
|
+
if (typeof fieldIndex !== 'number') {
|
|
169
|
+
//Step 1.2.1 Field does not exist so add it
|
|
170
|
+
nextFields.push(fieldData);
|
|
171
|
+
} else {
|
|
172
|
+
//Step 1.2.2 Field does exist so update it
|
|
173
|
+
nextFields[fieldIndex] = _objectSpread(_objectSpread({}, nextFields[fieldIndex]), fieldData);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Step 1.3: Add the fieldPosition to the page.fields
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
nextPage.fields.push(fieldPositionData);
|
|
181
|
+
});
|
|
182
|
+
return nextPage;
|
|
183
|
+
});
|
|
184
|
+
/**
|
|
185
|
+
* Step 2: Delete any fields that no longer have field positions associated with them.
|
|
186
|
+
*
|
|
187
|
+
* TODO
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
return _objectSpread(_objectSpread({}, formPayload), {}, {
|
|
191
|
+
pages: nextPages,
|
|
192
|
+
fields: nextFields
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
exports.getv2FormUpdatePayload = getv2FormUpdatePayload;
|
|
104
197
|
var _default = {
|
|
105
198
|
getDefaultPage: getDefaultPage,
|
|
106
|
-
formatv2Form: formatv2Form
|
|
199
|
+
formatv2Form: formatv2Form,
|
|
200
|
+
getv2FormUpdatePayload: getv2FormUpdatePayload
|
|
107
201
|
};
|
|
108
202
|
exports["default"] = _default;
|