bruce-models 4.9.9 → 5.0.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.
- package/dist/bruce-models.es5.js +224 -173
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +224 -173
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -1
- package/dist/lib/calculator/calculator.js +223 -172
- package/dist/lib/calculator/calculator.js.map +1 -1
- package/dist/types/bruce-models.d.ts +1 -1
- package/dist/types/calculator/calculator.d.ts +22 -6
- package/package.json +1 -1
package/dist/lib/bruce-models.js
CHANGED
|
@@ -103,5 +103,5 @@ __exportStar(require("./plugin/plugin"), exports);
|
|
|
103
103
|
__exportStar(require("./environment"), exports);
|
|
104
104
|
__exportStar(require("./data-source/data-source"), exports);
|
|
105
105
|
// This is updated with the package.json version on build.
|
|
106
|
-
exports.VERSION = "
|
|
106
|
+
exports.VERSION = "5.0.0";
|
|
107
107
|
//# sourceMappingURL=bruce-models.js.map
|
|
@@ -77,61 +77,228 @@ var Calculator;
|
|
|
77
77
|
EValueType[EValueType["RandomColor"] = 5] = "RandomColor";
|
|
78
78
|
})(EValueType = Calculator.EValueType || (Calculator.EValueType = {}));
|
|
79
79
|
/**
|
|
80
|
-
* Calculates
|
|
81
|
-
* The
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* @param entity
|
|
85
|
-
* @param tags
|
|
86
|
-
* @returns
|
|
80
|
+
* Calculates a value-type 'T' based on given set of fields.
|
|
81
|
+
* The supplied data + tags are fed into the calculation.
|
|
82
|
+
* When a value fails to be calculated, the 'defaultValue' is returned.
|
|
83
|
+
* If no 'defaultValue' is provided, then 'null' is returned.
|
|
87
84
|
*/
|
|
88
|
-
function
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
function Calculate(params) {
|
|
86
|
+
let { fields, tags, data, defaultValue, type } = params;
|
|
87
|
+
if (fields == null) {
|
|
88
|
+
return defaultValue;
|
|
89
|
+
}
|
|
90
|
+
if (data == null || typeof data != "object") {
|
|
91
|
+
data = {};
|
|
91
92
|
}
|
|
92
|
-
if (!tags) {
|
|
93
|
+
if (tags == null || !Array.isArray(tags)) {
|
|
93
94
|
tags = [];
|
|
94
95
|
}
|
|
95
|
-
if (
|
|
96
|
-
|
|
96
|
+
if (type == null) {
|
|
97
|
+
type = "any";
|
|
98
|
+
}
|
|
99
|
+
// Normalize fields to be an array of options.
|
|
100
|
+
let fieldsArr = [];
|
|
101
|
+
if (Array.isArray(fields)) {
|
|
102
|
+
fieldsArr = fields;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
fieldsArr = [fields];
|
|
97
106
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
107
|
+
// Indicator for old data.
|
|
108
|
+
// When a range is provided in older data, it is expected that invalid/failed mappings should default to the minimum value.
|
|
109
|
+
// We are deprecating this logic.
|
|
110
|
+
// The first step of deprecation is to avoid using this logic when multiple calculations are provided.
|
|
111
|
+
// TODO: When we've reviewed all existing uses, we can remove this logic entirely and just update the needed style records.
|
|
112
|
+
let shouldRangesDefaultToMin = true;
|
|
113
|
+
// This reduce totals the number of mappings and gradients.
|
|
114
|
+
// >1 means we should not default to min as there are multiple calculations.
|
|
115
|
+
if (fieldsArr.reduce((acc, field) => acc += (field.type == EValueType.Mapping || field.type == EValueType.Gradient) ? 1 : 0, 0) > 1) {
|
|
116
|
+
shouldRangesDefaultToMin = false;
|
|
117
|
+
}
|
|
118
|
+
const assertColor = (color) => {
|
|
119
|
+
if (color && typeof color == "string") {
|
|
120
|
+
color = color_1.Color.ColorFromStr(color);
|
|
121
|
+
}
|
|
122
|
+
if (color && typeof color == "object" && !isNaN(color.red) && color.red != null) {
|
|
123
|
+
return color;
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
};
|
|
127
|
+
const isColor = (value) => {
|
|
128
|
+
if (value && typeof value == "object" && !isNaN(value.red) && value.red != null) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
};
|
|
133
|
+
// Calculate the value.
|
|
134
|
+
let value = null;
|
|
135
|
+
for (let i = 0; i < fieldsArr.length; i++) {
|
|
136
|
+
let field = fieldsArr[i];
|
|
137
|
+
if (field) {
|
|
138
|
+
// Dereference.
|
|
139
|
+
// We do this because we'll be modifying the field to fix bad data.
|
|
140
|
+
field = JSON.parse(JSON.stringify(field));
|
|
141
|
+
}
|
|
142
|
+
// Bad data has it set to 'color' but expects the input to be a number.
|
|
143
|
+
if (type == "number" && field.type == EValueType.Color) {
|
|
144
|
+
field.type = EValueType.Input;
|
|
145
|
+
}
|
|
101
146
|
switch (field.type) {
|
|
102
147
|
case EValueType.Color:
|
|
148
|
+
if (type === "number") {
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
103
151
|
value = field.value;
|
|
104
|
-
|
|
105
|
-
|
|
152
|
+
value = assertColor(value);
|
|
153
|
+
if (value && type == "string") {
|
|
154
|
+
value = `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;
|
|
106
155
|
}
|
|
107
156
|
break;
|
|
108
157
|
case EValueType.Gradient:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
value =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
158
|
+
if (type === "number") {
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
value = GetGradientValue(field.value, data, shouldRangesDefaultToMin);
|
|
162
|
+
value = assertColor(value);
|
|
163
|
+
if (value && type == "string") {
|
|
164
|
+
value = `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;
|
|
165
|
+
}
|
|
116
166
|
break;
|
|
117
167
|
case EValueType.RandomColor:
|
|
168
|
+
if (type === "number") {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
118
171
|
value = color_1.Color.RandomColor();
|
|
172
|
+
value = assertColor(value);
|
|
173
|
+
if (value && type == "string") {
|
|
174
|
+
value = `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;
|
|
175
|
+
}
|
|
119
176
|
break;
|
|
120
177
|
case EValueType.TagColor:
|
|
178
|
+
if (type === "number") {
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
121
181
|
for (let i = 0; i < tags.length; i++) {
|
|
122
182
|
const tag = tags[i];
|
|
123
183
|
if (tag.Color) {
|
|
124
184
|
value = color_1.Color.ColorFromStr(tag.Color);
|
|
125
|
-
|
|
185
|
+
value = assertColor(value);
|
|
186
|
+
if (value) {
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (value && type == "string") {
|
|
192
|
+
const cColor = value;
|
|
193
|
+
value = `rgba(${cColor.red},${cColor.green},${cColor.blue},${cColor.alpha})`;
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
// Input can be an arbitrary value.
|
|
197
|
+
// Eg: Result is a colour, a number, a string.
|
|
198
|
+
// This means we first calculate the value, then validate it in the context of the desired type.
|
|
199
|
+
case EValueType.Input:
|
|
200
|
+
value = GetInputValue(field.value, data);
|
|
201
|
+
if (value != null) {
|
|
202
|
+
if (type == "number") {
|
|
203
|
+
if (typeof value == "string" && value != "" && value != null && value != undefined) {
|
|
204
|
+
value = Number(value);
|
|
205
|
+
}
|
|
206
|
+
else if (typeof value != "number") {
|
|
207
|
+
value = null;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
else if (type == "string") {
|
|
211
|
+
if (typeof value == "number") {
|
|
212
|
+
value = String(value);
|
|
213
|
+
}
|
|
214
|
+
else if (typeof value == "object") {
|
|
215
|
+
if (isColor(value)) {
|
|
216
|
+
value = `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
value = null;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else if (type == "color") {
|
|
224
|
+
value = assertColor(value);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
// Mapping can be an arbitrary value.
|
|
229
|
+
// Eg: mapping a value to a Client File ID, or a colour, or a number.
|
|
230
|
+
// This means we first calculate the value, then validate it in the context of the desired type.
|
|
231
|
+
case EValueType.Mapping:
|
|
232
|
+
value = GetMappingValue(field.value, data);
|
|
233
|
+
if (value != null) {
|
|
234
|
+
if (type == "number") {
|
|
235
|
+
if (typeof value == "string" && value != "" && value != null && value != undefined) {
|
|
236
|
+
value = Number(value);
|
|
237
|
+
}
|
|
238
|
+
else if (typeof value != "number") {
|
|
239
|
+
value = null;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
else if (type == "string") {
|
|
243
|
+
if (typeof value == "number") {
|
|
244
|
+
value = String(value);
|
|
245
|
+
}
|
|
246
|
+
else if (typeof value == "object") {
|
|
247
|
+
if (isColor(value)) {
|
|
248
|
+
value = `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
value = null;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else if (type == "color") {
|
|
256
|
+
value = assertColor(typeof value === "number" ? String(value) : value);
|
|
126
257
|
}
|
|
127
258
|
}
|
|
128
259
|
break;
|
|
129
260
|
}
|
|
130
|
-
|
|
131
|
-
|
|
261
|
+
// Extra layer of validation.
|
|
262
|
+
// This is a backup in case some branch above failed to convert into the right type.
|
|
263
|
+
if (type == "number") {
|
|
264
|
+
if (typeof value !== "number" || isNaN(value)) {
|
|
265
|
+
value = null;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
else if (type == "color") {
|
|
269
|
+
if (typeof value !== "object" || !value) {
|
|
270
|
+
value = null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else if (type == "string") {
|
|
274
|
+
if (typeof value !== "string" || !value) {
|
|
275
|
+
value = null;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (value != null) {
|
|
279
|
+
break;
|
|
132
280
|
}
|
|
133
281
|
}
|
|
134
|
-
|
|
282
|
+
// Return the value or default.
|
|
283
|
+
return value != null ? value : defaultValue;
|
|
284
|
+
}
|
|
285
|
+
Calculator.Calculate = Calculate;
|
|
286
|
+
/**
|
|
287
|
+
* Calculates the value of arbitrary field options.
|
|
288
|
+
* The context calling this should validate results and parse stuff if needed.
|
|
289
|
+
* @param fields
|
|
290
|
+
* @param entity
|
|
291
|
+
* @param tags
|
|
292
|
+
* @returns
|
|
293
|
+
*/
|
|
294
|
+
function GetValue(fields, entity = {}, tags = []) {
|
|
295
|
+
return Calculate({
|
|
296
|
+
fields: fields,
|
|
297
|
+
data: entity,
|
|
298
|
+
defaultValue: null,
|
|
299
|
+
tags: tags,
|
|
300
|
+
type: "any"
|
|
301
|
+
});
|
|
135
302
|
}
|
|
136
303
|
Calculator.GetValue = GetValue;
|
|
137
304
|
/**
|
|
@@ -141,53 +308,14 @@ var Calculator;
|
|
|
141
308
|
* @param entity
|
|
142
309
|
* @param tags
|
|
143
310
|
*/
|
|
144
|
-
function GetColor(fields, entity, tags) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
tags
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
entity = {};
|
|
153
|
-
}
|
|
154
|
-
for (let i = 0; i < fields.length; i++) {
|
|
155
|
-
const field = fields[i];
|
|
156
|
-
let value;
|
|
157
|
-
switch (field.type) {
|
|
158
|
-
case EValueType.Color:
|
|
159
|
-
value = field.value;
|
|
160
|
-
break;
|
|
161
|
-
case EValueType.Gradient:
|
|
162
|
-
value = GetGradientValue(field.value, entity);
|
|
163
|
-
break;
|
|
164
|
-
case EValueType.Input:
|
|
165
|
-
value = GetInputValue(field.value, entity);
|
|
166
|
-
break;
|
|
167
|
-
case EValueType.Mapping:
|
|
168
|
-
value = GetMappingValue(field.value, entity);
|
|
169
|
-
break;
|
|
170
|
-
case EValueType.RandomColor:
|
|
171
|
-
value = color_1.Color.RandomColor();
|
|
172
|
-
break;
|
|
173
|
-
case EValueType.TagColor:
|
|
174
|
-
for (let i = 0; i < tags.length; i++) {
|
|
175
|
-
const tag = tags[i];
|
|
176
|
-
if (tag.Color) {
|
|
177
|
-
value = color_1.Color.ColorFromStr(tag.Color);
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
if (typeof value === "string") {
|
|
184
|
-
value = color_1.Color.ColorFromStr(value);
|
|
185
|
-
}
|
|
186
|
-
if (value && typeof value === "object" && (value.red || value.red == 0)) {
|
|
187
|
-
return value;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return null;
|
|
311
|
+
function GetColor(fields, entity = {}, tags = []) {
|
|
312
|
+
return Calculate({
|
|
313
|
+
fields: fields,
|
|
314
|
+
data: entity,
|
|
315
|
+
defaultValue: null,
|
|
316
|
+
tags: tags,
|
|
317
|
+
type: "color"
|
|
318
|
+
});
|
|
191
319
|
}
|
|
192
320
|
Calculator.GetColor = GetColor;
|
|
193
321
|
/**
|
|
@@ -198,39 +326,14 @@ var Calculator;
|
|
|
198
326
|
* @param tags
|
|
199
327
|
* @returns
|
|
200
328
|
*/
|
|
201
|
-
function GetNumber(fields, entity, tags) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
tags
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
entity = {};
|
|
210
|
-
}
|
|
211
|
-
for (let i = 0; i < fields.length; i++) {
|
|
212
|
-
const field = fields[i];
|
|
213
|
-
let value;
|
|
214
|
-
switch (field.type) {
|
|
215
|
-
case EValueType.Gradient:
|
|
216
|
-
value = GetGradientValue(field.value, entity);
|
|
217
|
-
break;
|
|
218
|
-
case EValueType.Color:
|
|
219
|
-
case EValueType.Input:
|
|
220
|
-
value = GetInputValue(field.value, entity);
|
|
221
|
-
break;
|
|
222
|
-
case EValueType.Mapping:
|
|
223
|
-
value = GetMappingValue(field.value, entity);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
if (value != "" && value != null && value != undefined) {
|
|
227
|
-
value = Number(value);
|
|
228
|
-
}
|
|
229
|
-
if (value || value == 0) {
|
|
230
|
-
return value;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return null;
|
|
329
|
+
function GetNumber(fields, entity = {}, tags = []) {
|
|
330
|
+
return Calculate({
|
|
331
|
+
fields: fields,
|
|
332
|
+
data: entity,
|
|
333
|
+
defaultValue: null,
|
|
334
|
+
tags: tags,
|
|
335
|
+
type: "number"
|
|
336
|
+
});
|
|
234
337
|
}
|
|
235
338
|
Calculator.GetNumber = GetNumber;
|
|
236
339
|
/**
|
|
@@ -241,68 +344,14 @@ var Calculator;
|
|
|
241
344
|
* @param tags
|
|
242
345
|
* @returns
|
|
243
346
|
*/
|
|
244
|
-
function GetString(fields, entity, tags) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
tags
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
entity = {};
|
|
253
|
-
}
|
|
254
|
-
for (let i = 0; i < fields.length; i++) {
|
|
255
|
-
const field = fields[i];
|
|
256
|
-
let value;
|
|
257
|
-
switch (field.type) {
|
|
258
|
-
case EValueType.Gradient:
|
|
259
|
-
{
|
|
260
|
-
const tmp = GetGradientValue(field.value, entity);
|
|
261
|
-
// This avoids null turning into "null".
|
|
262
|
-
if (tmp) {
|
|
263
|
-
value = String(tmp);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
break;
|
|
267
|
-
case EValueType.Color:
|
|
268
|
-
case EValueType.Input:
|
|
269
|
-
{
|
|
270
|
-
const tmp = GetInputValue(field.value, entity);
|
|
271
|
-
// This avoids null turning into "null".
|
|
272
|
-
if (tmp) {
|
|
273
|
-
value = String(tmp);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
break;
|
|
277
|
-
case EValueType.Mapping:
|
|
278
|
-
{
|
|
279
|
-
const tmp = GetMappingValue(field.value, entity);
|
|
280
|
-
// This avoids null turning into "null".
|
|
281
|
-
if (tmp) {
|
|
282
|
-
value = String(tmp);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
break;
|
|
286
|
-
case EValueType.RandomColor:
|
|
287
|
-
// Would be nice to randomize based on an attribute or entity ID instead of pure random.
|
|
288
|
-
var color = color_1.Color.RandomColor();
|
|
289
|
-
value = `rgba(${color.red},${color.green},${color.blue},${color.alpha})`;
|
|
290
|
-
break;
|
|
291
|
-
case EValueType.TagColor:
|
|
292
|
-
for (let i = 0; i < tags.length; i++) {
|
|
293
|
-
const tag = tags[i];
|
|
294
|
-
if (tag.Color) {
|
|
295
|
-
value = tag.Color;
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
if (value) {
|
|
302
|
-
return value;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return null;
|
|
347
|
+
function GetString(fields, entity = {}, tags = []) {
|
|
348
|
+
return Calculate({
|
|
349
|
+
fields: fields,
|
|
350
|
+
data: entity,
|
|
351
|
+
defaultValue: null,
|
|
352
|
+
tags: tags,
|
|
353
|
+
type: "string"
|
|
354
|
+
});
|
|
306
355
|
}
|
|
307
356
|
Calculator.GetString = GetString;
|
|
308
357
|
/**
|
|
@@ -370,9 +419,11 @@ var Calculator;
|
|
|
370
419
|
* It is intended to be parsed and validated within a value-type context. Eg: GetColor, GetNumber, GetString.
|
|
371
420
|
* @param value
|
|
372
421
|
* @param entity
|
|
422
|
+
* @param defaultToMin if a value fails to be calculated, should we default to the minimum value?
|
|
423
|
+
* Default is true for backwards compatibility.
|
|
373
424
|
* @returns
|
|
374
425
|
*/
|
|
375
|
-
function GetGradientValue(value, entity) {
|
|
426
|
+
function GetGradientValue(value, entity, defaultToMin) {
|
|
376
427
|
const min = +value.points[0].position;
|
|
377
428
|
const max = +value.points[value.points.length - 1].position;
|
|
378
429
|
const attrPaths = parseLegacyPath(value.field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/calculator/calculator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/calculator/calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Color } from "../common/color";
|
|
2
2
|
import { Entity } from "../entity/entity";
|
|
3
|
+
import { EntityTag } from "../entity/entity-tag";
|
|
3
4
|
/**
|
|
4
5
|
* Utility for calculating values from Nextspace fields.
|
|
5
6
|
* These fields are typically found in entity styles.
|
|
@@ -54,16 +55,29 @@ export declare namespace Calculator {
|
|
|
54
55
|
value: IGradientValue | IMappingValue | string | number;
|
|
55
56
|
type: EValueType;
|
|
56
57
|
}
|
|
58
|
+
type ValueType = string | number | Color.IColor | any;
|
|
59
|
+
/**
|
|
60
|
+
* Calculates a value-type 'T' based on given set of fields.
|
|
61
|
+
* The supplied data + tags are fed into the calculation.
|
|
62
|
+
* When a value fails to be calculated, the 'defaultValue' is returned.
|
|
63
|
+
* If no 'defaultValue' is provided, then 'null' is returned.
|
|
64
|
+
*/
|
|
65
|
+
function Calculate(params: {
|
|
66
|
+
type: ValueType;
|
|
67
|
+
fields: IField | IField[];
|
|
68
|
+
tags?: EntityTag.ITag[];
|
|
69
|
+
data?: any;
|
|
70
|
+
defaultValue?: ValueType | null;
|
|
71
|
+
}): ValueType | null;
|
|
57
72
|
/**
|
|
58
73
|
* Calculates the value of arbitrary field options.
|
|
59
74
|
* The context calling this should validate results and parse stuff if needed.
|
|
60
|
-
* @deprecated use specific calls: eg GetColor or GetNumber.
|
|
61
75
|
* @param fields
|
|
62
76
|
* @param entity
|
|
63
77
|
* @param tags
|
|
64
78
|
* @returns
|
|
65
79
|
*/
|
|
66
|
-
function GetValue(fields: IField[], entity
|
|
80
|
+
function GetValue(fields: IField[], entity?: Entity.IEntity | any, tags?: EntityTag.ITag[]): string | number | Color.IColor;
|
|
67
81
|
/**
|
|
68
82
|
* Calculates the value of arbitrary field options with assumption that desired result is a color.
|
|
69
83
|
* Will return null if a color is not found.
|
|
@@ -71,7 +85,7 @@ export declare namespace Calculator {
|
|
|
71
85
|
* @param entity
|
|
72
86
|
* @param tags
|
|
73
87
|
*/
|
|
74
|
-
function GetColor(fields: IField[], entity
|
|
88
|
+
function GetColor(fields: IField[], entity?: Entity.IEntity | any, tags?: EntityTag.ITag[]): Color.IColor;
|
|
75
89
|
/**
|
|
76
90
|
* Calculates the value of arbitrary field options with assumption that desired result is a number.
|
|
77
91
|
* Will return null if a number is not found.
|
|
@@ -80,7 +94,7 @@ export declare namespace Calculator {
|
|
|
80
94
|
* @param tags
|
|
81
95
|
* @returns
|
|
82
96
|
*/
|
|
83
|
-
function GetNumber(fields: IField[], entity
|
|
97
|
+
function GetNumber(fields: IField[], entity?: Entity.IEntity | any, tags?: EntityTag.ITag[]): number;
|
|
84
98
|
/**
|
|
85
99
|
* Calculates the value of arbitrary field options with assumption that desired result is a string.
|
|
86
100
|
* Will return null if a string is not found.
|
|
@@ -89,7 +103,7 @@ export declare namespace Calculator {
|
|
|
89
103
|
* @param tags
|
|
90
104
|
* @returns
|
|
91
105
|
*/
|
|
92
|
-
function GetString(fields: IField[], entity
|
|
106
|
+
function GetString(fields: IField[], entity?: Entity.IEntity | any, tags?: EntityTag.ITag[]): string;
|
|
93
107
|
/**
|
|
94
108
|
* Calculates a mapping value. This can return any value type.
|
|
95
109
|
* It is intended to be parsed and validated within a value-type context. Eg: GetColor, GetNumber, GetString.
|
|
@@ -103,9 +117,11 @@ export declare namespace Calculator {
|
|
|
103
117
|
* It is intended to be parsed and validated within a value-type context. Eg: GetColor, GetNumber, GetString.
|
|
104
118
|
* @param value
|
|
105
119
|
* @param entity
|
|
120
|
+
* @param defaultToMin if a value fails to be calculated, should we default to the minimum value?
|
|
121
|
+
* Default is true for backwards compatibility.
|
|
106
122
|
* @returns
|
|
107
123
|
*/
|
|
108
|
-
function GetGradientValue(value: IGradientValue, entity: Entity.IEntity): Color.IColor;
|
|
124
|
+
function GetGradientValue(value: IGradientValue, entity: Entity.IEntity, defaultToMin?: boolean): Color.IColor;
|
|
109
125
|
/**
|
|
110
126
|
* Calculates an input value. This can return any value type.
|
|
111
127
|
* It is intended to be parsed and validated within a value-type context. Eg: GetColor, GetNumber, GetString.
|