@micromag/core 0.4.71 → 0.4.74

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/lib/index.js DELETED
@@ -1,1713 +0,0 @@
1
- 'use strict';
2
-
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
5
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
7
- var _createClass = require('@babel/runtime/helpers/createClass');
8
- var isArray = require('lodash/isArray');
9
- var isObject = require('lodash/isObject');
10
- var uniqWith = require('lodash/uniqWith');
11
- var sortBy = require('lodash/sortBy');
12
- var _callSuper = require('@babel/runtime/helpers/callSuper');
13
- var _inherits = require('@babel/runtime/helpers/inherits');
14
- var EventEmitter = require('wolfy87-eventemitter');
15
- var changeCase = require('change-case');
16
- var uniqBy = require('lodash/uniqBy');
17
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
18
- var uniq = require('lodash/uniq');
19
- var _typeof = require('@babel/runtime/helpers/typeof');
20
- var isString = require('lodash/isString');
21
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
22
- var isEmpty = require('lodash/isEmpty');
23
- var tracking = require('@folklore/tracking');
24
-
25
- var sortedColors = function sortedColors(colors) {
26
- return sortBy(colors, ['color', 'alpha']);
27
- };
28
- var uniqueColors = function uniqueColors(colors) {
29
- return uniqWith(colors, function (colorA, colorB) {
30
- return colorA.alpha === colorB.alpha && colorA.color === colorB.color;
31
- });
32
- };
33
- var ColorsParser = /*#__PURE__*/function () {
34
- function ColorsParser(_ref) {
35
- var fieldsManager = _ref.fieldsManager,
36
- screensManager = _ref.screensManager;
37
- _classCallCheck(this, ColorsParser);
38
- this.fieldsManager = fieldsManager;
39
- this.screensManager = screensManager;
40
- }
41
-
42
- // Convert medias object to path
43
- return _createClass(ColorsParser, [{
44
- key: "parse",
45
- value: function parse(story) {
46
- var _this = this;
47
- if (story === null) {
48
- return story;
49
- }
50
- var _ref2 = story || {},
51
- _ref2$theme = _ref2.theme,
52
- theme = _ref2$theme === void 0 ? null : _ref2$theme,
53
- _ref2$components = _ref2.components,
54
- components = _ref2$components === void 0 ? [] : _ref2$components;
55
- var _components$reduce = components.reduce(function (_ref3, screen) {
56
- var _ref3$colors = _ref3.colors,
57
- currentColors = _ref3$colors === void 0 ? null : _ref3$colors;
58
- var type = screen.type;
59
- var _ref4 = _this.screensManager.getDefinition(type) || {},
60
- _ref4$fields = _ref4.fields,
61
- fields = _ref4$fields === void 0 ? [] : _ref4$fields;
62
- var fieldsPattern = _this.getColorFieldPatterns(fields);
63
- var _ColorsParser$getColo = ColorsParser.getColorsFromPath(screen, fieldsPattern),
64
- newColors = _ColorsParser$getColo.colors;
65
- return {
66
- colors: [].concat(_toConsumableArray(currentColors), _toConsumableArray(newColors))
67
- };
68
- }, {
69
- colors: []
70
- }),
71
- colors = _components$reduce.colors;
72
- if (theme !== null) {
73
- var themeColors = this.parse(theme);
74
- return colors !== null || themeColors !== null ? uniqueColors([].concat(_toConsumableArray(sortedColors(themeColors || [])), _toConsumableArray(sortedColors(colors || [])))) : [];
75
- }
76
- return colors !== null ? sortedColors(uniqueColors(colors || [])) : [];
77
- }
78
- }, {
79
- key: "getColorFieldPatterns",
80
- value: function getColorFieldPatterns(fields) {
81
- var _this2 = this;
82
- var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
83
- return fields.reduce(function (patterns, field) {
84
- var _field$name = field.name,
85
- name = _field$name === void 0 ? null : _field$name,
86
- _field$type = field.type,
87
- type = _field$type === void 0 ? null : _field$type;
88
- var path = [namePrefix, name].filter(function (it) {
89
- return it !== null;
90
- }).join('\\.');
91
- var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field);
92
- // also check settings fields
93
- var _fieldDefinition$fiel = fieldDefinition.fields,
94
- subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
95
- _fieldDefinition$item = fieldDefinition.itemsField,
96
- itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
97
- _fieldDefinition$sett = fieldDefinition.settings,
98
- settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
99
- return [].concat(_toConsumableArray(patterns), _toConsumableArray(ColorsParser.fieldIsColor(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray(_this2.getColorFieldPatterns(subFields, path)), _toConsumableArray(_this2.getColorFieldPatterns(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getColorFieldPatterns([itemsField], "".concat(path, "\\.[0-9]+")) : []));
100
- }, []);
101
- }
102
- }], [{
103
- key: "fieldIsColor",
104
- value: function fieldIsColor(_ref5) {
105
- var _ref5$id = _ref5.id,
106
- id = _ref5$id === void 0 ? null : _ref5$id;
107
- return id === 'color';
108
- }
109
- }, {
110
- key: "getColorsFromPath",
111
- value: function getColorsFromPath(data, patterns) {
112
- var colors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
113
- var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
114
- var dataIsArray = isArray(data);
115
- var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);
116
- return keys.reduce(function (_ref6, key) {
117
- var currentData = _ref6.data,
118
- _ref6$colors = _ref6.colors,
119
- currentColors = _ref6$colors === void 0 ? null : _ref6$colors;
120
- var path = [keyPrefix, key].filter(function (it) {
121
- return it !== null;
122
- }).join('.');
123
- var patternMatch = patterns.reduce(function (found, pattern) {
124
- return found || pattern.test(path);
125
- }, false);
126
- var value = data[key];
127
- var color = null;
128
- var newValue = null;
129
- var subColors = null;
130
- if (patternMatch && isObject(value)) {
131
- if (value.color && value.color.length === 4) {
132
- var innerColor = value.color.split('').map(function (hex, i) {
133
- return i > 0 ? hex + hex : hex;
134
- }).join('').toUpperCase();
135
- color = {
136
- alpha: value.alpha || 1,
137
- color: innerColor
138
- };
139
- } else if (value.color) {
140
- color = {
141
- alpha: value.alpha,
142
- color: value.color.toUpperCase()
143
- };
144
- }
145
- } else if (isObject(value) || isArray(value)) {
146
- var subReturn = ColorsParser.getColorsFromPath(value, patterns, colors, path);
147
- newValue = subReturn.data;
148
- subColors = subReturn.colors;
149
- } else {
150
- newValue = value;
151
- }
152
- return {
153
- data: dataIsArray ? [].concat(_toConsumableArray(currentData || []), [newValue]) : _objectSpread(_objectSpread({}, currentData), {}, _defineProperty({}, key, newValue)),
154
- colors: color !== null ? [].concat(_toConsumableArray(currentColors || []), _toConsumableArray(subColors || []), [color]) : [].concat(_toConsumableArray(currentColors || []), _toConsumableArray(subColors || []))
155
- };
156
- }, {
157
- data: keys.length === 0 ? data : null,
158
- colors: colors
159
- });
160
- }
161
- }]);
162
- }();
163
-
164
- var getComponentFromName = function getComponentFromName() {
165
- var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
166
- var components = arguments.length > 1 ? arguments[1] : undefined;
167
- var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
168
- if (components === null || name === null) {
169
- return defaultComponent;
170
- }
171
- var pascalName = changeCase.pascalCase(name);
172
- return components[pascalName] || components[name] || defaultComponent;
173
- };
174
-
175
- function getScreenFieldsWithStates(definition) {
176
- var _ref = definition || {},
177
- _ref$fields = _ref.fields,
178
- screenFields = _ref$fields === void 0 ? null : _ref$fields,
179
- _ref$states = _ref.states,
180
- states = _ref$states === void 0 ? null : _ref$states;
181
- if (states === null) {
182
- return screenFields;
183
- }
184
- var extraFields = states.reduce(function (statesFields, current) {
185
- var _ref2 = current || {},
186
- id = _ref2.id,
187
- _ref2$fields = _ref2.fields,
188
- fields = _ref2$fields === void 0 ? [] : _ref2$fields,
189
- _ref2$repeatable = _ref2.repeatable,
190
- repeatable = _ref2$repeatable === void 0 ? false : _ref2$repeatable,
191
- _ref2$fieldName = _ref2.fieldName,
192
- fieldName = _ref2$fieldName === void 0 ? null : _ref2$fieldName,
193
- label = _ref2.label,
194
- _ref2$defaultValue = _ref2.defaultValue,
195
- defaultValue = _ref2$defaultValue === void 0 ? null : _ref2$defaultValue;
196
- return [].concat(_toConsumableArray(statesFields), _toConsumableArray(repeatable ? [{
197
- type: 'items',
198
- name: fieldName || id,
199
- label: label,
200
- defaultValue: defaultValue,
201
- stateId: id,
202
- itemsField: {
203
- label: label,
204
- type: 'fields',
205
- fields: fields
206
- }
207
- }] : []), _toConsumableArray(!repeatable && fieldName !== null ? [{
208
- type: 'fields',
209
- name: fieldName,
210
- stateId: id,
211
- fields: fields
212
- }] : []), _toConsumableArray(!repeatable && fieldName === null ? fields.map(function (it) {
213
- return _objectSpread(_objectSpread({}, it), {}, {
214
- stateId: id
215
- });
216
- }) : []));
217
- }, []);
218
- return [].concat(_toConsumableArray(extraFields), _toConsumableArray(screenFields));
219
- }
220
-
221
- var ComponentsManager = /*#__PURE__*/function (_EventEmitter) {
222
- function ComponentsManager() {
223
- var _this;
224
- var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
225
- _classCallCheck(this, ComponentsManager);
226
- _this = _callSuper(this, ComponentsManager);
227
- _this.components = components;
228
- return _this;
229
- }
230
- _inherits(ComponentsManager, _EventEmitter);
231
- return _createClass(ComponentsManager, [{
232
- key: "addComponent",
233
- value: function addComponent(name, component) {
234
- var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
235
- return this.addComponents(_defineProperty({}, name, component), namespace);
236
- }
237
- }, {
238
- key: "addComponents",
239
- value: function addComponents(components) {
240
- var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
241
- var newComponents = namespace !== null ? Object.keys(components).reduce(function (componentsMaps, name) {
242
- return _objectSpread(_objectSpread({}, componentsMaps), {}, _defineProperty({}, "".concat(namespace, ".").concat(name), components[name]));
243
- }, {}) : components;
244
- this.components = _objectSpread(_objectSpread({}, this.components), newComponents);
245
- this.emit('change');
246
- return this;
247
- }
248
- }, {
249
- key: "merge",
250
- value: function merge(manager) {
251
- var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
252
- return this.addComponents(manager.getComponents(), namespace);
253
- }
254
- }, {
255
- key: "addNamespace",
256
- value: function addNamespace(namespace) {
257
- var _this2 = this;
258
- if (namespace === null) {
259
- return this;
260
- }
261
- this.components = Object.keys(this.components).reduce(function (componentsMap, name) {
262
- return _objectSpread(_objectSpread({}, componentsMap), {}, _defineProperty({}, "".concat(namespace, ".").concat(name), _this2.components[name]));
263
- }, {});
264
- return this;
265
- }
266
- }, {
267
- key: "getComponent",
268
- value: function getComponent(name) {
269
- var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
270
- var components = this.getComponents(namespace);
271
- return getComponentFromName(name, components);
272
- }
273
- }, {
274
- key: "getComponents",
275
- value: function getComponents() {
276
- var _this3 = this;
277
- var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
278
- return namespace !== null ? Object.keys(this.components || {}).reduce(function (componentsMap, name) {
279
- var pattern = new RegExp("^".concat(namespace, "\\.(.*)$"));
280
- var matches = pattern.exec(name);
281
- return matches !== null ? _objectSpread(_objectSpread({}, componentsMap), {}, _defineProperty({}, matches[1], _this3.components[name])) : componentsMap;
282
- }, {}) : this.components;
283
- }
284
- }, {
285
- key: "hasComponent",
286
- value: function hasComponent(name) {
287
- var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
288
- return this.components !== null && typeof this.components[namespace !== null ? "".concat(namespace, ".").concat(name) : name] !== 'undefined';
289
- }
290
- }]);
291
- }(EventEmitter);
292
-
293
- var DefinitionsManager = /*#__PURE__*/function (_EventEmitter) {
294
- function DefinitionsManager() {
295
- var _this;
296
- var definitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
297
- _classCallCheck(this, DefinitionsManager);
298
- _this = _callSuper(this, DefinitionsManager);
299
- _this.definitions = definitions || [];
300
- return _this;
301
- }
302
- _inherits(DefinitionsManager, _EventEmitter);
303
- return _createClass(DefinitionsManager, [{
304
- key: "addDefinition",
305
- value: function addDefinition(definition) {
306
- this.addDefinitions(isArray(definition) ? definition : [definition]);
307
- return this;
308
- }
309
- }, {
310
- key: "addDefinitions",
311
- value: function addDefinitions(definitions) {
312
- this.definitions = uniqBy([].concat(_toConsumableArray(definitions), _toConsumableArray(this.definitions)), function (it) {
313
- return it.id;
314
- });
315
- this.emit('change');
316
- return this;
317
- }
318
- }, {
319
- key: "merge",
320
- value: function merge(manager) {
321
- return this.addDefinitions(manager.getDefinitions());
322
- }
323
- }, {
324
- key: "filter",
325
- value: function filter(_filter) {
326
- // this.definitions = this.definitions.filter(filter);
327
- // return this;
328
- return new DefinitionsManager(this.definitions.filter(_filter));
329
- }
330
- }, {
331
- key: "getDefinition",
332
- value: function getDefinition(id) {
333
- if (id === null) {
334
- return null;
335
- }
336
- return this.definitions.find(function (it) {
337
- return it.id === id;
338
- }) || null;
339
- }
340
- }, {
341
- key: "getDefinitions",
342
- value: function getDefinitions() {
343
- return this.definitions;
344
- }
345
- }, {
346
- key: "hasDefinition",
347
- value: function hasDefinition(id) {
348
- return this.getDefinition(id) !== null;
349
- }
350
- }, {
351
- key: "getComponent",
352
- value: function getComponent(id) {
353
- var _ref = this.getDefinition(id) || {},
354
- _ref$component = _ref.component,
355
- component = _ref$component === void 0 ? null : _ref$component;
356
- return component;
357
- }
358
- }, {
359
- key: "getComponents",
360
- value: function getComponents() {
361
- return this.definitions.reduce(function (allComponents, _ref2) {
362
- var id = _ref2.id,
363
- _ref2$component = _ref2.component,
364
- component = _ref2$component === void 0 ? null : _ref2$component;
365
- return component !== null ? _objectSpread(_objectSpread({}, allComponents), {}, _defineProperty({}, id, component)) : allComponents;
366
- }, {});
367
- }
368
- }]);
369
- }(EventEmitter);
370
-
371
- var EventsManager = /*#__PURE__*/function (_EventEmitter) {
372
- function EventsManager(element) {
373
- var _this;
374
- _classCallCheck(this, EventsManager);
375
- _this = _callSuper(this, EventsManager);
376
- _this.element = element;
377
- _this.events = {};
378
- _this.listeners = {};
379
- return _this;
380
- }
381
- _inherits(EventsManager, _EventEmitter);
382
- return _createClass(EventsManager, [{
383
- key: "subscribe",
384
- value: function subscribe(event, callback) {
385
- this.on(event, callback);
386
- this.events = _objectSpread(_objectSpread({}, this.events), {}, _defineProperty({}, event, [].concat(_toConsumableArray(this.events[event] || []), [callback])));
387
- if (this.events[event].length === 1) {
388
- this.addEventListener(event);
389
- }
390
- }
391
- }, {
392
- key: "unsubscribe",
393
- value: function unsubscribe(event, callback) {
394
- var _this2 = this;
395
- this.off(event, callback);
396
- this.events = Object.keys(this.events).reduce(function (newEvents, eventName) {
397
- if (eventName !== event) {
398
- return _objectSpread(_objectSpread({}, newEvents), {}, _defineProperty({}, eventName, _this2.events[eventName]));
399
- }
400
- var newListeners = _this2.events[eventName].filter(function (listener) {
401
- return listener !== callback;
402
- });
403
- return newListeners.length > 0 ? _objectSpread(_objectSpread({}, newEvents), {}, _defineProperty({}, eventName, newListeners)) : newEvents;
404
- }, {});
405
- if (typeof this.events[event] === 'undefined') {
406
- this.removeEventListener(event);
407
- }
408
- }
409
- }, {
410
- key: "addEventListener",
411
- value: function addEventListener(event) {
412
- var _this3 = this;
413
- if (typeof this.listeners[event] === 'undefined') {
414
- this.listeners[event] = function () {
415
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
416
- args[_key] = arguments[_key];
417
- }
418
- return _this3.emit.apply(_this3, [event].concat(args));
419
- };
420
- }
421
- this.element.addEventListener(event, this.listeners[event]);
422
- }
423
- }, {
424
- key: "removeEventListener",
425
- value: function removeEventListener(event) {
426
- this.element.removeEventListener(event, this.listeners[event]);
427
- }
428
- }]);
429
- }(EventEmitter);
430
-
431
- var FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {
432
- function FieldsManager() {
433
- _classCallCheck(this, FieldsManager);
434
- return _callSuper(this, FieldsManager, arguments);
435
- }
436
- _inherits(FieldsManager, _DefinitionsManager);
437
- return _createClass(FieldsManager, [{
438
- key: "filter",
439
- value: function filter(_filter) {
440
- return new FieldsManager(this.definitions.filter(_filter));
441
- }
442
- }]);
443
- }(DefinitionsManager);
444
-
445
- var _excluded$8 = ["medias"],
446
- _excluded2$3 = ["medias"];
447
- var MediasParser = /*#__PURE__*/function () {
448
- function MediasParser(_ref) {
449
- var fieldsManager = _ref.fieldsManager,
450
- screensManager = _ref.screensManager,
451
- _ref$fieldsPattern = _ref.fieldsPattern,
452
- fieldsPattern = _ref$fieldsPattern === void 0 ? {} : _ref$fieldsPattern;
453
- _classCallCheck(this, MediasParser);
454
- this.fieldsManager = fieldsManager;
455
- this.screensManager = screensManager;
456
- this.fieldsPatternCache = fieldsPattern || {};
457
- this.parsedThemesCache = {};
458
- }
459
- return _createClass(MediasParser, [{
460
- key: "getParsedStoryTheme",
461
- value: function getParsedStoryTheme(storyId, theme) {
462
- if (typeof this.parsedThemesCache[storyId] === 'undefined') {
463
- var _this$toPath = this.toPath(theme),
464
- themeMedias = _this$toPath.medias,
465
- newTheme = _objectWithoutProperties(_this$toPath, _excluded$8);
466
- this.parsedThemesCache[storyId] = {
467
- themeMedias: themeMedias,
468
- newTheme: newTheme
469
- };
470
- }
471
- return this.parsedThemesCache[storyId];
472
- }
473
- }, {
474
- key: "getFieldsPatternByScreen",
475
- value: function getFieldsPatternByScreen(type) {
476
- if (typeof this.fieldsPatternCache[type] === 'undefined') {
477
- var fields = getScreenFieldsWithStates(this.screensManager.getDefinition(type) || {});
478
- this.fieldsPatternCache[type] = this.getFieldsPattern(fields || []);
479
- }
480
- return this.fieldsPatternCache[type];
481
- }
482
-
483
- // Convert medias object to path
484
- }, {
485
- key: "toPath",
486
- value: function toPath(story) {
487
- var _this = this;
488
- if (story === null) {
489
- return story;
490
- }
491
- var _ref2 = story || {},
492
- _ref2$id = _ref2.id,
493
- storyId = _ref2$id === void 0 ? null : _ref2$id,
494
- _ref2$theme = _ref2.theme,
495
- theme = _ref2$theme === void 0 ? null : _ref2$theme,
496
- _ref2$components = _ref2.components,
497
- components = _ref2$components === void 0 ? [] : _ref2$components;
498
- var _components$reduce = components.reduce(function (_ref3, screen) {
499
- var previousComponents = _ref3.components,
500
- currentMedias = _ref3.medias;
501
- var type = screen.type;
502
- var fieldsPattern = _this.getFieldsPatternByScreen(type);
503
- var _MediasParser$replace = MediasParser.replaceMediasWithPaths(screen, fieldsPattern),
504
- newScreen = _MediasParser$replace.data,
505
- newMedias = _MediasParser$replace.medias;
506
- return {
507
- components: [].concat(_toConsumableArray(previousComponents), [newScreen]),
508
- medias: _objectSpread(_objectSpread({}, currentMedias), newMedias)
509
- };
510
- }, {
511
- components: [],
512
- medias: null
513
- }),
514
- newComponents = _components$reduce.components,
515
- medias = _components$reduce.medias;
516
- if (theme !== null) {
517
- var _this$getParsedStoryT = this.getParsedStoryTheme(storyId, theme),
518
- themeMedias = _this$getParsedStoryT.medias,
519
- newTheme = _objectWithoutProperties(_this$getParsedStoryT, _excluded2$3);
520
- return medias !== null || themeMedias !== null ? _objectSpread(_objectSpread({}, story), {}, {
521
- theme: newTheme,
522
- components: newComponents,
523
- medias: _objectSpread(_objectSpread({}, themeMedias), medias)
524
- }) : story;
525
- }
526
- return medias !== null ? _objectSpread(_objectSpread({}, story), {}, {
527
- components: newComponents,
528
- medias: medias
529
- }) : story;
530
- }
531
-
532
- // Convert path to medias object
533
- }, {
534
- key: "fromPath",
535
- value: function fromPath(story) {
536
- var defaultMedias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
537
- if (story === null) {
538
- return story;
539
- }
540
- var _ref4 = story || {},
541
- _ref4$theme = _ref4.theme,
542
- theme = _ref4$theme === void 0 ? null : _ref4$theme,
543
- _ref4$components = _ref4.components,
544
- components = _ref4$components === void 0 ? [] : _ref4$components,
545
- _ref4$medias = _ref4.medias,
546
- medias = _ref4$medias === void 0 ? defaultMedias : _ref4$medias;
547
- if (medias === null && theme === null) {
548
- return story;
549
- }
550
-
551
- // Replace path with medias objects
552
- // const newComponents =
553
- // medias !== null
554
- // ? components.map((screen) => {
555
- // const { type } = screen;
556
- // const fieldsPattern = this.getFieldsPatternByScreen(type);
557
- // return MediasParser.replacePathsWithMedias(screen, medias, fieldsPattern);
558
- // })
559
- // : components;
560
-
561
- // Faster parsing with data only
562
- var componentsPattern = MediasParser.getMediaPatternsFromData(components);
563
- var newComponents = medias !== null && componentsPattern.length > 0 ? MediasParser.replacePathsWithMedias(components, medias, componentsPattern) : components;
564
-
565
- // Replace path with medias object in theme
566
- if (theme !== null) {
567
- var newTheme = this.fromPath(theme, medias);
568
- return newTheme !== theme || newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {
569
- theme: newTheme,
570
- components: newComponents
571
- }) : story;
572
- }
573
- return newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {
574
- components: newComponents
575
- }) : story;
576
- }
577
- }, {
578
- key: "getFieldsPattern",
579
- value: function getFieldsPattern(fields) {
580
- var _this2 = this;
581
- var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
582
- return (fields || []).reduce(function (patterns, field) {
583
- var _field$name = field.name,
584
- name = _field$name === void 0 ? null : _field$name,
585
- _field$type = field.type,
586
- type = _field$type === void 0 ? null : _field$type;
587
- var path = [namePrefix, name].filter(function (it) {
588
- return it !== null && it !== '';
589
- }).join('\\.');
590
- var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field);
591
-
592
- // also check settings fields
593
- var _fieldDefinition$fiel = fieldDefinition.fields,
594
- subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
595
- _fieldDefinition$item = fieldDefinition.itemsField,
596
- itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
597
- _fieldDefinition$sett = fieldDefinition.settings,
598
- settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
599
- return [].concat(_toConsumableArray(patterns), _toConsumableArray(MediasParser.fieldIsMedia(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray(MediasParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "\\.media$")), new RegExp("^".concat(path, "\\.variants\\.[0-9]+\\.media$"))] : []), _toConsumableArray(_this2.getFieldsPattern(subFields, path)), _toConsumableArray(_this2.getFieldsPattern(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
600
- }, []);
601
- }
602
- }], [{
603
- key: "fieldIsMedia",
604
- value: function fieldIsMedia(_ref5) {
605
- var _ref5$media = _ref5.media,
606
- media = _ref5$media === void 0 ? false : _ref5$media;
607
- return media;
608
- }
609
- }, {
610
- key: "fieldIsFontFamily",
611
- value: function fieldIsFontFamily(_ref6) {
612
- var _ref6$id = _ref6.id,
613
- id = _ref6$id === void 0 ? null : _ref6$id;
614
- return id === 'font-family';
615
- }
616
- }, {
617
- key: "replacePathsWithMedias",
618
- value: function replacePathsWithMedias(data, medias, patterns) {
619
- var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
620
- var dataIsArray = isArray(data);
621
- return MediasParser.keys(data).reduce(function (newData, key) {
622
- var path = [keyPrefix, key].filter(function (it) {
623
- return it !== null;
624
- }).join('.');
625
- var patternMatch = patterns.reduce(function (found, pattern) {
626
- return found || pattern.test(path);
627
- }, false);
628
- var value = data[key];
629
- var newValue;
630
- if (patternMatch) {
631
- newValue = isObject(value) ? value : medias[value] || value;
632
- } else {
633
- newValue = isObject(value) || isArray(value) ? MediasParser.replacePathsWithMedias(value, medias, patterns, path) : value;
634
- }
635
- return dataIsArray ? [].concat(_toConsumableArray(newData), [newValue]) : _objectSpread(_objectSpread({}, newData), {}, _defineProperty({}, key, newValue));
636
- }, dataIsArray ? [] : {});
637
- }
638
- }, {
639
- key: "getMediaPath",
640
- value: function getMediaPath(_ref7) {
641
- var _ref7$id = _ref7.id,
642
- id = _ref7$id === void 0 ? null : _ref7$id;
643
- return id !== null ? "media://".concat(id) : null;
644
- }
645
- }, {
646
- key: "replaceMediasWithPaths",
647
- value: function replaceMediasWithPaths(data, patterns) {
648
- var medias = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
649
- var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
650
- var dataIsArray = isArray(data);
651
- var dataKeys = MediasParser.keys(data);
652
- return dataKeys.reduce(function (_ref8, key) {
653
- var currentData = _ref8.data,
654
- currentMedias = _ref8.medias;
655
- var path = [keyPrefix, key].filter(function (it) {
656
- return it !== null;
657
- }).join('.');
658
- var patternMatch = patterns.reduce(function (found, pattern) {
659
- return found || pattern.test(path);
660
- }, false);
661
- var value = data[key];
662
- var newValue;
663
- var media = null;
664
- var subMedias = null;
665
- if (patternMatch && isObject(value)) {
666
- var mediaPath = MediasParser.getMediaPath(value);
667
- newValue = mediaPath !== null ? mediaPath : value;
668
- media = mediaPath !== null ? value : null;
669
- } else if (isObject(value) || isArray(value)) {
670
- var subReturn = MediasParser.replaceMediasWithPaths(value, patterns, medias, path);
671
- newValue = subReturn.data;
672
- subMedias = subReturn.medias;
673
- } else {
674
- newValue = value;
675
- }
676
- return {
677
- data: dataIsArray ? [].concat(_toConsumableArray(currentData || []), [newValue]) : _objectSpread(_objectSpread({}, currentData), {}, _defineProperty({}, key, newValue)),
678
- medias: media !== null ? _objectSpread(_objectSpread(_objectSpread({}, currentMedias), subMedias), {}, _defineProperty({}, newValue, media)) : _objectSpread(_objectSpread({}, currentMedias), subMedias)
679
- };
680
- }, {
681
- data: dataKeys.length === 0 ? data : null,
682
- medias: medias
683
- });
684
- }
685
- }, {
686
- key: "getMediaPatternsFromData",
687
- value: function getMediaPatternsFromData(obj) {
688
- var dotObj = MediasParser.dot(obj);
689
- return Object.keys(dotObj).filter(function (key) {
690
- return isString(dotObj[key]) && dotObj[key].match(/^media:\/\/([^/]+)$/) !== null;
691
- }).map(function (it) {
692
- return new RegExp("^".concat(it, "$"));
693
- });
694
- }
695
- }, {
696
- key: "dot",
697
- value: function dot(obj) {
698
- return MediasParser.keys(obj).reduce(function (acc, key) {
699
- if (_typeof(obj[key]) !== 'object' || !obj[key]) {
700
- return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, obj[key]));
701
- }
702
- var flattenedChild = MediasParser.dot(obj[key]);
703
- return _objectSpread(_objectSpread({}, acc), MediasParser.keys(flattenedChild).reduce(function (childAcc, childKey) {
704
- return _objectSpread(_objectSpread({}, childAcc), {}, _defineProperty({}, "".concat(key, ".").concat(childKey), flattenedChild[childKey]));
705
- }, {}));
706
- }, {});
707
- }
708
- }, {
709
- key: "keys",
710
- value: function keys(obj) {
711
- return isArray(obj) ? _toConsumableArray(obj.keys()) : Object.keys(obj);
712
- }
713
- }]);
714
- }();
715
-
716
- var ScreensManager = /*#__PURE__*/function (_DefinitionsManager) {
717
- function ScreensManager() {
718
- var _this;
719
- var definitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
720
- _classCallCheck(this, ScreensManager);
721
- _this = _callSuper(this, ScreensManager, [definitions]);
722
- _this.fieldsPattern = null;
723
- return _this;
724
- }
725
- _inherits(ScreensManager, _DefinitionsManager);
726
- return _createClass(ScreensManager, [{
727
- key: "getFields",
728
- value: function getFields(id) {
729
- var _ref = this.getDefinition(id) || {},
730
- _ref$fields = _ref.fields,
731
- fields = _ref$fields === void 0 ? null : _ref$fields;
732
- return fields;
733
- }
734
- }, {
735
- key: "getLayouts",
736
- value: function getLayouts(id) {
737
- var _ref2 = this.getDefinition(id) || {},
738
- _ref2$layouts = _ref2.layouts,
739
- layouts = _ref2$layouts === void 0 ? null : _ref2$layouts;
740
- return layouts;
741
- }
742
- }, {
743
- key: "getFieldsPattern",
744
- value: function getFieldsPattern() {
745
- return this.fieldsPattern;
746
- }
747
- }, {
748
- key: "setFieldsPattern",
749
- value: function setFieldsPattern(fieldsPattern) {
750
- this.fieldsPattern = fieldsPattern;
751
- }
752
- }, {
753
- key: "filter",
754
- value: function filter(_filter) {
755
- return new ScreensManager(this.definitions.filter(_filter));
756
- // this.definitions = this.definitions.filter(filter);
757
- // return this;
758
- }
759
- }, {
760
- key: "merge",
761
- value: function merge(manager) {
762
- var newFieldsPattern = manager.getFieldsPattern();
763
- if (newFieldsPattern !== null && this.fieldsPattern === null) {
764
- this.fieldsPattern = newFieldsPattern;
765
- }
766
- return this.addDefinitions(manager.getDefinitions());
767
- }
768
- }]);
769
- }(DefinitionsManager);
770
-
771
- var _excluded$7 = ["fonts"];
772
- var FontsParser = /*#__PURE__*/function () {
773
- function FontsParser(_ref) {
774
- var fieldsManager = _ref.fieldsManager,
775
- screensManager = _ref.screensManager,
776
- _ref$fieldsPattern = _ref.fieldsPattern,
777
- fieldsPattern = _ref$fieldsPattern === void 0 ? {} : _ref$fieldsPattern;
778
- _classCallCheck(this, FontsParser);
779
- this.fieldsManager = fieldsManager;
780
- this.screensManager = screensManager;
781
- this.fieldsPatternCache = fieldsPattern || {};
782
- }
783
- return _createClass(FontsParser, [{
784
- key: "getFieldsPatternByScreen",
785
- value: function getFieldsPatternByScreen(type) {
786
- if (typeof this.fieldsPatternCache[type] === 'undefined') {
787
- var fields = getScreenFieldsWithStates(this.screensManager.getDefinition(type) || {});
788
- this.fieldsPatternCache[type] = this.getFieldsPattern(fields || []);
789
- }
790
- return this.fieldsPatternCache[type];
791
- }
792
-
793
- // Extract fonts
794
- }, {
795
- key: "parse",
796
- value: function parse(story) {
797
- var _this = this;
798
- if (story === null) {
799
- return story;
800
- }
801
-
802
- // Extract fonts from screen
803
- var _ref2 = story || {},
804
- _ref2$theme = _ref2.theme,
805
- theme = _ref2$theme === void 0 ? null : _ref2$theme,
806
- _ref2$components = _ref2.components,
807
- components = _ref2$components === void 0 ? [] : _ref2$components;
808
- var fonts = uniq(components.reduce(function (currentFonts, screen) {
809
- var type = screen.type;
810
- var fieldsPattern = _this.getFieldsPatternByScreen(type);
811
- var newFonts = FontsParser.extractFontsWithPaths(screen, fieldsPattern);
812
- return newFonts.length > 0 ? [].concat(_toConsumableArray(currentFonts), _toConsumableArray(newFonts)) : currentFonts;
813
- }, []), 'name');
814
-
815
- // Extract fonts from theme
816
- if (theme !== null) {
817
- var _this$parse = this.parse(theme),
818
- _this$parse$fonts = _this$parse.fonts,
819
- themeFonts = _this$parse$fonts === void 0 ? [] : _this$parse$fonts,
820
- newTheme = _objectWithoutProperties(_this$parse, _excluded$7);
821
- return fonts.length > 0 || themeFonts.length > 0 ? _objectSpread(_objectSpread({}, story), {}, {
822
- theme: newTheme,
823
- fonts: uniq([].concat(_toConsumableArray(themeFonts), _toConsumableArray(fonts)), 'name')
824
- }) : story;
825
- }
826
- return fonts.length > 0 ? _objectSpread(_objectSpread({}, story), {}, {
827
- fonts: fonts
828
- }) : story;
829
- }
830
- }, {
831
- key: "getFieldsPattern",
832
- value: function getFieldsPattern(fields) {
833
- var _this2 = this;
834
- var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
835
- return (fields || []).reduce(function (patterns, field) {
836
- var _field$name = field.name,
837
- name = _field$name === void 0 ? null : _field$name,
838
- _field$type = field.type,
839
- type = _field$type === void 0 ? null : _field$type;
840
- var path = [namePrefix, name].filter(function (it) {
841
- return it !== null && it !== '';
842
- }).join('\\.');
843
- var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field);
844
-
845
- // also check settings fields
846
- var _fieldDefinition$fiel = fieldDefinition.fields,
847
- subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
848
- _fieldDefinition$item = fieldDefinition.itemsField,
849
- itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
850
- _fieldDefinition$sett = fieldDefinition.settings,
851
- settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
852
- return [].concat(_toConsumableArray(patterns), _toConsumableArray(FontsParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray(_this2.getFieldsPattern(subFields, path)), _toConsumableArray(_this2.getFieldsPattern(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
853
- }, []);
854
- }
855
- }], [{
856
- key: "fieldIsFontFamily",
857
- value: function fieldIsFontFamily(_ref3) {
858
- var _ref3$id = _ref3.id,
859
- id = _ref3$id === void 0 ? null : _ref3$id;
860
- return id === 'font-family';
861
- }
862
- }, {
863
- key: "valueIsFont",
864
- value: function valueIsFont(_ref4) {
865
- var _ref4$type = _ref4.type,
866
- type = _ref4$type === void 0 ? null : _ref4$type;
867
- return type === 'custom' || type === 'google';
868
- }
869
- }, {
870
- key: "extractFontsWithPaths",
871
- value: function extractFontsWithPaths(data, patterns) {
872
- var keyPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
873
- var dataIsArray = isArray(data);
874
- var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);
875
- return keys.reduce(function (currentFonts, key) {
876
- var path = [keyPrefix, key].filter(function (it) {
877
- return it !== null;
878
- }).join('.');
879
- var patternMatch = patterns.reduce(function (found, pattern) {
880
- return found || pattern.test(path);
881
- }, false);
882
- var value = data[key];
883
- var font = null;
884
- var subFonts = null;
885
- if (patternMatch && isObject(value) && FontsParser.valueIsFont(value)) {
886
- font = value;
887
- } else if (isObject(value) || isArray(value)) {
888
- subFonts = FontsParser.extractFontsWithPaths(value, patterns, path);
889
- }
890
- return subFonts !== null || font !== null ? [].concat(_toConsumableArray(currentFonts), _toConsumableArray(subFonts || []), _toConsumableArray(font !== null ? [font] : [])) : currentFonts;
891
- }, []);
892
- }
893
- }]);
894
- }();
895
-
896
- var _excluded$6 = ["shareIncentive", "callToAction"];
897
- /* eslint-disable class-methods-use-this */
898
- var ShareCall = /*#__PURE__*/function () {
899
- function ShareCall() {
900
- _classCallCheck(this, ShareCall);
901
- }
902
- return _createClass(ShareCall, [{
903
- key: "test",
904
- value: function test(screen) {
905
- var _ref = screen || {},
906
- _ref$shareIncentive = _ref.shareIncentive,
907
- shareIncentive = _ref$shareIncentive === void 0 ? null : _ref$shareIncentive,
908
- _ref$callToAction = _ref.callToAction,
909
- callToAction = _ref$callToAction === void 0 ? null : _ref$callToAction;
910
- if (shareIncentive === null && callToAction === null) {
911
- return false;
912
- }
913
- return true;
914
- }
915
- }, {
916
- key: "parse",
917
- value: function parse(screen) {
918
- var _ref2 = screen || {},
919
- _ref2$shareIncentive = _ref2.shareIncentive,
920
- shareIncentive = _ref2$shareIncentive === void 0 ? null : _ref2$shareIncentive,
921
- _ref2$callToAction = _ref2.callToAction,
922
- callToAction = _ref2$callToAction === void 0 ? null : _ref2$callToAction,
923
- restScreen = _objectWithoutProperties(_ref2, _excluded$6);
924
- var _ref3 = screen || {},
925
- _ref3$header = _ref3.header,
926
- header = _ref3$header === void 0 ? null : _ref3$header,
927
- _ref3$footer = _ref3.footer,
928
- footer = _ref3$footer === void 0 ? null : _ref3$footer;
929
-
930
- // Carful for recursivity here cause same key name
931
- var newHeader = shareIncentive !== null ? _objectSpread(_objectSpread({}, shareIncentive !== null ? {
932
- shareIncentive: shareIncentive
933
- } : null), header !== null ? {
934
- header: header
935
- } : null) : header;
936
- var newFooter = callToAction !== null ? _objectSpread(_objectSpread({}, callToAction !== null ? {
937
- callToAction: callToAction
938
- } : null), footer !== null ? {
939
- footer: footer
940
- } : null) : footer;
941
- var newScreen = _objectSpread(_objectSpread(_objectSpread({}, restScreen), newHeader !== null ? {
942
- header: newHeader
943
- } : null), newFooter !== null ? {
944
- footer: newFooter
945
- } : null);
946
- return newScreen;
947
- }
948
- }]);
949
- }();
950
- ShareCall.prototype.priority = 0;
951
-
952
- var _excluded$5 = ["answers"],
953
- _excluded2$2 = ["customAnswerLabel"];
954
- /* eslint-disable class-methods-use-this */
955
- var CustomAnswerLabel = /*#__PURE__*/function () {
956
- function CustomAnswerLabel() {
957
- _classCallCheck(this, CustomAnswerLabel);
958
- }
959
- return _createClass(CustomAnswerLabel, [{
960
- key: "test",
961
- value: function test(screen) {
962
- var _ref = screen || {},
963
- _ref$answers = _ref.answers,
964
- answers = _ref$answers === void 0 ? null : _ref$answers;
965
- if (answers === null || answers.length === 0) {
966
- return false;
967
- }
968
- var hasCustomAnswerLabel = (answers || []).some(function () {
969
- var answer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
970
- return answer !== null && typeof answer.customAnswerLabel !== 'undefined';
971
- });
972
- if (!hasCustomAnswerLabel) {
973
- return false;
974
- }
975
- return true;
976
- }
977
- }, {
978
- key: "parse",
979
- value: function parse(screen) {
980
- var _ref2 = screen || {},
981
- _ref2$answers = _ref2.answers,
982
- answers = _ref2$answers === void 0 ? null : _ref2$answers,
983
- restScreen = _objectWithoutProperties(_ref2, _excluded$5);
984
- return _objectSpread(_objectSpread({}, restScreen), {}, {
985
- answers: answers.map(function () {
986
- var answer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
987
- if (answer === null || typeof answer.customAnswerLabel === 'undefined') {
988
- return answer;
989
- }
990
- var _ref3 = answer || {},
991
- customAnswerLabel = _ref3.customAnswerLabel,
992
- restAnswer = _objectWithoutProperties(_ref3, _excluded2$2);
993
- return _objectSpread(_objectSpread({}, restAnswer), {}, {
994
- result: customAnswerLabel
995
- });
996
- })
997
- });
998
- }
999
- }]);
1000
- }();
1001
- CustomAnswerLabel.prototype.priority = 1;
1002
-
1003
- var _excluded$4 = ["items"],
1004
- _excluded2$1 = ["label", "textStyle"];
1005
-
1006
- /* eslint-disable class-methods-use-this */
1007
- var KeypadItemLabel = /*#__PURE__*/function () {
1008
- function KeypadItemLabel() {
1009
- _classCallCheck(this, KeypadItemLabel);
1010
- }
1011
- return _createClass(KeypadItemLabel, [{
1012
- key: "test",
1013
- value: function test(screen) {
1014
- var _ref = screen || {},
1015
- _ref$type = _ref.type,
1016
- type = _ref$type === void 0 ? null : _ref$type,
1017
- _ref$items = _ref.items,
1018
- items = _ref$items === void 0 ? null : _ref$items;
1019
- if (type !== 'keypad' || items === null || items.length === 0) {
1020
- return false;
1021
- }
1022
- var hasStringItemLabel = (items || []).some(function () {
1023
- var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1024
- return item !== null && isString(item === null || item === void 0 ? void 0 : item.label);
1025
- });
1026
- if (!hasStringItemLabel) {
1027
- return false;
1028
- }
1029
- return true;
1030
- }
1031
- }, {
1032
- key: "parse",
1033
- value: function parse(screen) {
1034
- var _ref2 = screen || {},
1035
- _ref2$items = _ref2.items,
1036
- items = _ref2$items === void 0 ? null : _ref2$items,
1037
- restScreen = _objectWithoutProperties(_ref2, _excluded$4);
1038
- return _objectSpread(_objectSpread({}, restScreen), {}, {
1039
- items: items.map(function () {
1040
- var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1041
- if (item === null || !isString(item === null || item === void 0 ? void 0 : item.label)) {
1042
- return item;
1043
- }
1044
- var _ref3 = item || {},
1045
- label = _ref3.label,
1046
- textStyle = _ref3.textStyle,
1047
- restAnswer = _objectWithoutProperties(_ref3, _excluded2$1);
1048
- return _objectSpread(_objectSpread({}, restAnswer), {}, {
1049
- label: {
1050
- body: label,
1051
- textStyle: textStyle
1052
- }
1053
- });
1054
- })
1055
- });
1056
- }
1057
- }]);
1058
- }();
1059
- KeypadItemLabel.prototype.priority = 1;
1060
-
1061
- var _excluded$3 = ["keypadSettings"];
1062
- /* eslint-disable class-methods-use-this */
1063
- var KeypadSettings = /*#__PURE__*/function () {
1064
- function KeypadSettings() {
1065
- _classCallCheck(this, KeypadSettings);
1066
- }
1067
- return _createClass(KeypadSettings, [{
1068
- key: "test",
1069
- value: function test(screen) {
1070
- var _ref = screen || {},
1071
- _ref$type = _ref.type,
1072
- type = _ref$type === void 0 ? null : _ref$type,
1073
- _ref$keypadSettings = _ref.keypadSettings,
1074
- keypadSettings = _ref$keypadSettings === void 0 ? null : _ref$keypadSettings;
1075
- if (type !== 'keypad' || keypadSettings === null) {
1076
- return false;
1077
- }
1078
- var _ref2 = keypadSettings || {},
1079
- _ref2$layout = _ref2.layout,
1080
- keypadSettingsLayout = _ref2$layout === void 0 ? null : _ref2$layout;
1081
- if (keypadSettingsLayout === null) {
1082
- return false;
1083
- }
1084
- return true;
1085
- }
1086
- }, {
1087
- key: "parse",
1088
- value: function parse(screen) {
1089
- var _ref3 = screen || {},
1090
- _ref3$keypadSettings = _ref3.keypadSettings,
1091
- keypadSettings = _ref3$keypadSettings === void 0 ? null : _ref3$keypadSettings,
1092
- restScreen = _objectWithoutProperties(_ref3, _excluded$3);
1093
- var _ref4 = keypadSettings || {},
1094
- _ref4$layout = _ref4.layout,
1095
- keypadSettingsLayout = _ref4$layout === void 0 ? null : _ref4$layout;
1096
- return _objectSpread(_objectSpread({}, restScreen), {}, {
1097
- keypadLayout: keypadSettingsLayout
1098
- });
1099
- }
1100
- }]);
1101
- }();
1102
- KeypadSettings.prototype.priority = 1;
1103
-
1104
- // export { default as ButtonPadding } from './ButtonPadding';
1105
-
1106
- var migrations = /*#__PURE__*/Object.freeze({
1107
- __proto__: null,
1108
- CustomAnswerLabel: CustomAnswerLabel,
1109
- KeypadItemLabel: KeypadItemLabel,
1110
- KeypadSettings: KeypadSettings,
1111
- ShareCall: ShareCall
1112
- });
1113
-
1114
- var _excluded$2 = ["components"];
1115
- var MigrationsParser = /*#__PURE__*/function () {
1116
- function MigrationsParser(_ref) {
1117
- var screensManager = _ref.screensManager;
1118
- _classCallCheck(this, MigrationsParser);
1119
- this.screensManager = screensManager;
1120
- this.parsers = Object.keys(migrations).map(function (migration) {
1121
- return new migrations[migration]();
1122
- });
1123
- this.parsers.sort(function (a, b) {
1124
- if (a.priority === undefined || b.priority === undefined) {
1125
- return 0;
1126
- }
1127
- if (a.priority === b.priority) {
1128
- return 0;
1129
- }
1130
- return a.priority < b.priority ? -1 : 1;
1131
- });
1132
- }
1133
-
1134
- // eslint-disable-next-line class-methods-use-this
1135
- return _createClass(MigrationsParser, [{
1136
- key: "parse",
1137
- value: function parse(story) {
1138
- var _this = this;
1139
- if (story === null) {
1140
- return story;
1141
- }
1142
- var _ref2 = story || {},
1143
- _ref2$components = _ref2.components,
1144
- components = _ref2$components === void 0 ? [] : _ref2$components,
1145
- restStory = _objectWithoutProperties(_ref2, _excluded$2);
1146
- var finalComponents = components.reduce(function (currentComponents, screen) {
1147
- var newScreen = _this.parsers.reduce(function (currentScreen, parser) {
1148
- if (parser.test(currentScreen, story)) {
1149
- return parser.parse(currentScreen, story);
1150
- }
1151
- return currentScreen;
1152
- }, screen);
1153
- return [].concat(_toConsumableArray(currentComponents), [newScreen]);
1154
- }, []);
1155
- return _objectSpread(_objectSpread({}, restStory), {}, {
1156
- components: finalComponents
1157
- });
1158
- }
1159
- }]);
1160
- }();
1161
-
1162
- var _excluded$1 = ["textStyle", "color", "boxStyle"];
1163
- var ThemeParser = /*#__PURE__*/function () {
1164
- function ThemeParser(_ref) {
1165
- var screensManager = _ref.screensManager;
1166
- _classCallCheck(this, ThemeParser);
1167
- this.screensManager = screensManager;
1168
- this.definitionCache = {};
1169
- this.fieldsCache = {};
1170
- }
1171
- return _createClass(ThemeParser, [{
1172
- key: "getDefinitionByScreen",
1173
- value: function getDefinitionByScreen(type, themeComponents) {
1174
- if (typeof this.definitionCache[type] === 'undefined') {
1175
- var definition = this.screensManager.getDefinition(type) || {};
1176
- var themeScreen = themeComponents.find(function (it) {
1177
- return it.type === type;
1178
- }) || null;
1179
- this.definitionCache[type] = {
1180
- definition: definition,
1181
- themeScreen: themeScreen
1182
- };
1183
- }
1184
- return this.definitionCache[type];
1185
- }
1186
- }, {
1187
- key: "getFieldsForDefinition",
1188
- value: function getFieldsForDefinition(definition) {
1189
- var _ref2 = definition || {},
1190
- _ref2$id = _ref2.id,
1191
- definitionId = _ref2$id === void 0 ? null : _ref2$id,
1192
- _ref2$fields = _ref2.fields,
1193
- fields = _ref2$fields === void 0 ? [] : _ref2$fields,
1194
- _ref2$states = _ref2.states,
1195
- states = _ref2$states === void 0 ? [] : _ref2$states;
1196
- if (typeof this.fieldsCache[definitionId] === 'undefined') {
1197
- if (states === null || states.length === 0) {
1198
- this.fieldsCache[definitionId] = {
1199
- fields: fields
1200
- };
1201
- } else {
1202
- // TODO: test this
1203
- var finalFields = fields;
1204
- var repetableStates = [];
1205
- if (states !== null && states.length > 0) {
1206
- var nonRepetableStates = states.filter(function (_ref3) {
1207
- var _ref3$repeatable = _ref3.repeatable,
1208
- repeatable = _ref3$repeatable === void 0 ? false : _ref3$repeatable;
1209
- return repeatable === false;
1210
- });
1211
- repetableStates = states.filter(function (_ref4) {
1212
- var _ref4$repeatable = _ref4.repeatable,
1213
- repeatable = _ref4$repeatable === void 0 ? false : _ref4$repeatable;
1214
- return repeatable === true;
1215
- });
1216
- finalFields = nonRepetableStates.reduce(function (acc, it) {
1217
- var _ref5 = it || {},
1218
- _ref5$fields = _ref5.fields,
1219
- itemFields = _ref5$fields === void 0 ? [] : _ref5$fields;
1220
- if (itemFields !== null && itemFields.length > 0) {
1221
- return acc.concat(itemFields);
1222
- }
1223
- return acc;
1224
- }, finalFields);
1225
- }
1226
- this.fieldsCache[definitionId] = {
1227
- fields: finalFields,
1228
- repetableStates: repetableStates
1229
- };
1230
- }
1231
- }
1232
- return this.fieldsCache[definitionId];
1233
- }
1234
- }, {
1235
- key: "parse",
1236
- value: function parse(story) {
1237
- var _this = this;
1238
- if (story === null) {
1239
- return story;
1240
- }
1241
- var _ref6 = story || {},
1242
- _ref6$theme = _ref6.theme,
1243
- theme = _ref6$theme === void 0 ? null : _ref6$theme,
1244
- _ref6$components = _ref6.components,
1245
- components = _ref6$components === void 0 ? null : _ref6$components;
1246
- if (theme === null || components === null) {
1247
- return story;
1248
- }
1249
- var _theme$components = theme.components,
1250
- themeComponents = _theme$components === void 0 ? [] : _theme$components,
1251
- _theme$background = theme.background,
1252
- themeBackground = _theme$background === void 0 ? null : _theme$background,
1253
- _theme$colors = theme.colors,
1254
- themeColors = _theme$colors === void 0 ? {} : _theme$colors,
1255
- _theme$textStyles = theme.textStyles,
1256
- themeTextStyles = _theme$textStyles === void 0 ? null : _theme$textStyles,
1257
- _theme$boxStyles = theme.boxStyles,
1258
- themeBoxStyles = _theme$boxStyles === void 0 ? null : _theme$boxStyles;
1259
-
1260
- // Speed test
1261
- // const newComponents = [...components];
1262
- // for (let index = 0; index < components.length; index += 1) {
1263
- // const screen = components[index] || {};
1264
- // const { type } = screen;
1265
- // const { definition, themeScreen } = this.getDefinitionByScreen(type, themeComponents);
1266
- // const newScreen = this.parseScreen(
1267
- // definition,
1268
- // screen,
1269
- // themeScreen,
1270
- // themeBackground,
1271
- // themeColors,
1272
- // themeTextStyles,
1273
- // themeBoxStyles,
1274
- // );
1275
-
1276
- // if (newScreen !== screen || themeScreen !== null) {
1277
- // newComponents[index] = {
1278
- // ...themeScreen,
1279
- // ...newScreen,
1280
- // };
1281
- // }
1282
- // }
1283
- // story.components = newComponents;
1284
- // return story;
1285
-
1286
- var newComponents = components.reduce(function (currentComponents, screen, index) {
1287
- var type = screen.type;
1288
- var _this$getDefinitionBy = _this.getDefinitionByScreen(type, themeComponents),
1289
- definition = _this$getDefinitionBy.definition;
1290
- var themeScreen = null;
1291
- var newScreen = _this.parseScreen(definition, screen, themeScreen, themeBackground, themeColors, themeTextStyles, themeBoxStyles);
1292
-
1293
- // Only switch screen if it has changed
1294
- return newScreen !== screen || themeScreen !== null ? [].concat(_toConsumableArray(currentComponents.slice(0, index)), [_objectSpread(_objectSpread({}, themeScreen), newScreen)], _toConsumableArray(currentComponents.slice(index + 1))) : currentComponents;
1295
- }, components);
1296
- return newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {
1297
- components: newComponents
1298
- }) : story;
1299
- }
1300
- }, {
1301
- key: "parseScreen",
1302
- value: function parseScreen(definition, value, themeValue, themeBackground, themeColors, themeTextStyles, themeBoxStyles) {
1303
- var _this2 = this;
1304
- var _this$getFieldsForDef = this.getFieldsForDefinition(definition),
1305
- _this$getFieldsForDef2 = _this$getFieldsForDef.fields,
1306
- fields = _this$getFieldsForDef2 === void 0 ? null : _this$getFieldsForDef2,
1307
- _this$getFieldsForDef3 = _this$getFieldsForDef.repetableStates,
1308
- repetableStates = _this$getFieldsForDef3 === void 0 ? null : _this$getFieldsForDef3;
1309
- var newThemeValue = themeValue === null && themeBackground !== null ? {} : themeValue;
1310
- if (themeBackground !== null && typeof newThemeValue.background !== 'undefined') {
1311
- newThemeValue.background = _objectSpread(_objectSpread({}, themeBackground), newThemeValue.background);
1312
- } else if (themeBackground !== null) {
1313
- newThemeValue.background = themeBackground;
1314
- }
1315
- var newScreenValue = Object.keys(value).reduce(function (currentValue, key) {
1316
- var repetableState = null;
1317
- if (repetableStates !== null && repetableStates.length > 0) {
1318
- repetableState = repetableStates.find(function (_ref7) {
1319
- var _ref7$id = _ref7.id,
1320
- stateId = _ref7$id === void 0 ? null : _ref7$id;
1321
- return stateId !== null && stateId === key;
1322
- }) || null;
1323
- }
1324
- var fieldDefinition = (fields || null).find(function (it) {
1325
- return it.name === key;
1326
- }) || repetableState || {};
1327
- var fieldValue = value[key];
1328
- var fieldThemeValue = newThemeValue !== null ? newThemeValue[key] || null : null;
1329
-
1330
- // Try for early return
1331
- var _ref8 = fieldDefinition || {},
1332
- _ref8$theme = _ref8.theme,
1333
- theme = _ref8$theme === void 0 ? null : _ref8$theme;
1334
- if ((theme === null || !isObject(theme)) && fields === null) {
1335
- return _objectSpread(_objectSpread({}, currentValue), {}, _defineProperty({}, key, fieldValue));
1336
- }
1337
-
1338
- // console.log('start', key, fieldValue);
1339
- var newFieldValue = _this2.parseField(fieldValue, fieldDefinition, fieldThemeValue, themeColors, themeTextStyles, themeBoxStyles);
1340
- // console.log('result', newFieldValue);
1341
-
1342
- // const newFieldValue = fieldValue;
1343
-
1344
- // Only switch field if it has changed
1345
- return newFieldValue !== fieldValue ? _objectSpread(_objectSpread({}, currentValue), {}, _defineProperty({}, key, newFieldValue)) : currentValue;
1346
- }, value);
1347
- return newThemeValue !== null ? _objectSpread(_objectSpread({}, newThemeValue), newScreenValue) : newScreenValue;
1348
- }
1349
-
1350
- // eslint-disable-next-line class-methods-use-this
1351
- }, {
1352
- key: "parseField",
1353
- value: function parseField(value, fieldDefinition, themeValue, themeColors, themeTextStyles, themeBoxStyles) {
1354
- var _this3 = this;
1355
- var _fieldDefinition$them = fieldDefinition.theme,
1356
- fieldTheme = _fieldDefinition$them === void 0 ? null : _fieldDefinition$them,
1357
- _fieldDefinition$fiel = fieldDefinition.fields,
1358
- definitionFields = _fieldDefinition$fiel === void 0 ? null : _fieldDefinition$fiel;
1359
-
1360
- // There are sub-fields in this definition
1361
- if (definitionFields !== null && value !== null) {
1362
- return isArray(value) ? value.map(function (innerFieldValue) {
1363
- if (innerFieldValue === null) {
1364
- return innerFieldValue;
1365
- }
1366
- return _this3.parseInnerFields(innerFieldValue, definitionFields, themeValue, themeColors, themeTextStyles, themeBoxStyles);
1367
- }) : this.parseInnerFields(value, definitionFields, themeValue, themeColors, themeTextStyles, themeBoxStyles);
1368
- }
1369
-
1370
- // Early return
1371
- if (fieldTheme === null || !isObject(fieldTheme)) {
1372
- return value;
1373
- }
1374
-
1375
- // @TODO very slooow...
1376
- if (isArray(value)) {
1377
- var newFieldValue = value.map(function (innerField) {
1378
- return innerField !== null ? Object.keys(innerField).reduce(function (newInnerField, innerFieldName) {
1379
- // Early return
1380
- if (!isObject(innerField[innerFieldName])) {
1381
- return newInnerField;
1382
- }
1383
- var _ref9 = fieldTheme[innerFieldName] || {},
1384
- _ref9$textStyle = _ref9.textStyle,
1385
- innerFieldTextStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle,
1386
- _ref9$color = _ref9.color,
1387
- innerFieldColor = _ref9$color === void 0 ? null : _ref9$color,
1388
- _ref9$boxStyle = _ref9.boxStyle,
1389
- innerFieldBoxStyle = _ref9$boxStyle === void 0 ? null : _ref9$boxStyle;
1390
-
1391
- // Early return, no theme
1392
- if (innerFieldTextStyle === null && innerFieldColor === null && innerFieldBoxStyle === null) {
1393
- return newInnerField;
1394
- }
1395
- var _ref0 = innerField[innerFieldName] || {},
1396
- _ref0$textStyle = _ref0.textStyle,
1397
- valueTextStyle = _ref0$textStyle === void 0 ? false : _ref0$textStyle,
1398
- _ref0$boxStyle = _ref0.boxStyle,
1399
- valueBoxStyle = _ref0$boxStyle === void 0 ? false : _ref0$boxStyle;
1400
-
1401
- // Color
1402
- var colorValue = innerFieldColor !== null ? {
1403
- color: innerFieldColor !== null && themeColors !== null ? themeColors[innerFieldColor] || null : null
1404
- } : null;
1405
-
1406
- // Text style
1407
- var textStyleValue = innerFieldTextStyle !== null ? {
1408
- textStyle: valueTextStyle !== false ? valueTextStyle : _objectSpread(_objectSpread({}, innerFieldTextStyle !== null && themeTextStyles !== null ? themeTextStyles[innerFieldTextStyle] || null : null), valueTextStyle)
1409
- } : null;
1410
- var boxStyleValue = innerFieldBoxStyle !== null ? {
1411
- boxStyle: valueBoxStyle !== false ? valueBoxStyle : _objectSpread(_objectSpread({}, innerFieldBoxStyle !== null && themeBoxStyles !== null ? themeBoxStyles[innerFieldBoxStyle] || null : null), valueBoxStyle)
1412
- } : null;
1413
- if (colorValue === null && textStyleValue === null && boxStyleValue === null) {
1414
- return newInnerField;
1415
- }
1416
- return _objectSpread(_objectSpread({}, newInnerField), {}, _defineProperty({}, innerFieldName, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, colorValue), innerField[innerFieldName]), textStyleValue), boxStyleValue)));
1417
- }, innerField) : innerField;
1418
- });
1419
- return newFieldValue;
1420
- }
1421
- if (isObject(value)) {
1422
- return this.parseValue(value, fieldTheme, themeValue, themeColors, themeTextStyles, themeBoxStyles);
1423
- }
1424
- return value;
1425
- }
1426
- }, {
1427
- key: "parseInnerFields",
1428
- value: function parseInnerFields(value, fieldsOrDefinition, themeValue, themeColors, themeTextStyles, themeBoxStyles) {
1429
- var _this4 = this;
1430
- var newValue = Object.keys(value).reduce(function (finalValue, innerFieldName) {
1431
- var innerDefinition = isArray(fieldsOrDefinition) ? fieldsOrDefinition.find(function (it) {
1432
- return it.name === innerFieldName;
1433
- }) || null : fieldsOrDefinition;
1434
- var _ref1 = innerDefinition || {},
1435
- _ref1$theme = _ref1.theme,
1436
- idfTheme = _ref1$theme === void 0 ? null : _ref1$theme;
1437
- var innerValue = value[innerFieldName];
1438
-
1439
- // For items fields
1440
- if (innerValue !== null && innerDefinition !== null && isArray(innerValue)) {
1441
- // eslint-disable-next-line no-param-reassign
1442
- finalValue[innerFieldName] = _this4.parseField(innerValue, innerDefinition, themeValue, themeColors, themeTextStyles, themeBoxStyles);
1443
- return finalValue;
1444
- }
1445
-
1446
- // For fields with fields
1447
- if (innerValue !== null && idfTheme !== null && isObject(idfTheme) && isObject(innerValue)) {
1448
- // eslint-disable-next-line no-param-reassign
1449
- finalValue[innerFieldName] = _this4.parseValue(innerValue, idfTheme, themeValue, themeColors, themeTextStyles, themeBoxStyles);
1450
- return finalValue;
1451
- }
1452
-
1453
- // eslint-disable-next-line no-param-reassign
1454
- finalValue[innerFieldName] = value[innerFieldName];
1455
- return finalValue;
1456
- }, {});
1457
- return newValue;
1458
- }
1459
-
1460
- // eslint-disable-next-line class-methods-use-this
1461
- }, {
1462
- key: "parseValue",
1463
- value: function parseValue(initialValue, fieldTheme, themeValue, themeColors, themeTextStyles, themeBoxStyles) {
1464
- var _this5 = this;
1465
- if (isObject(initialValue) || isObject(fieldTheme)) {
1466
- var value = initialValue || null;
1467
- var _ref10 = fieldTheme || {},
1468
- _ref10$textStyle = _ref10.textStyle,
1469
- fieldTextStyleName = _ref10$textStyle === void 0 ? null : _ref10$textStyle,
1470
- _ref10$color = _ref10.color,
1471
- fieldColorName = _ref10$color === void 0 ? null : _ref10$color,
1472
- _ref10$boxStyle = _ref10.boxStyle,
1473
- fieldBoxStyleName = _ref10$boxStyle === void 0 ? null : _ref10$boxStyle,
1474
- otherProps = _objectWithoutProperties(_ref10, _excluded$1);
1475
- if (fieldTextStyleName === null && fieldColorName === null && fieldBoxStyleName === null && isEmpty(otherProps) && !isObject(fieldTheme)) {
1476
- return value;
1477
- }
1478
- var complexValue = null;
1479
- if (!isEmpty(otherProps)) {
1480
- complexValue = Object.keys(otherProps).reduce(function (newObject, key) {
1481
- var innerValue = value !== null ? value[key] || null : null;
1482
- var newValue = _this5.parseValue(innerValue, otherProps[key], themeValue, themeColors, themeTextStyles, themeBoxStyles);
1483
- return _objectSpread(_objectSpread({}, newObject), newValue !== null ? _defineProperty({}, key, newValue) : null);
1484
- }, {});
1485
- }
1486
- var _ref12 = value || {},
1487
- _ref12$textStyle = _ref12.textStyle,
1488
- valueTextStyle = _ref12$textStyle === void 0 ? false : _ref12$textStyle,
1489
- _ref12$boxStyle = _ref12.boxStyle,
1490
- valueBoxStyle = _ref12$boxStyle === void 0 ? false : _ref12$boxStyle;
1491
-
1492
- // Color
1493
- var fieldColor = fieldColorName !== null && themeColors !== null ? themeColors[fieldColorName] || null : null;
1494
- var colorValue = fieldColor !== null ? {
1495
- color: fieldColor
1496
- } : null;
1497
-
1498
- // Text style
1499
- var fieldTextStyle = fieldTextStyleName !== null && themeTextStyles !== null ? themeTextStyles[fieldTextStyleName] || null : null;
1500
- var fieldThemeComponentTextStyle = themeValue !== null ? themeValue.textStyle || null : null;
1501
- var textStyleValue = fieldTextStyle !== null || fieldThemeComponentTextStyle !== null ? {
1502
- textStyle: valueTextStyle !== false ? valueTextStyle : _objectSpread(_objectSpread(_objectSpread({}, fieldTextStyle), fieldThemeComponentTextStyle), valueTextStyle || null)
1503
- } : null;
1504
-
1505
- // Box style
1506
- var fieldBoxStyle = fieldBoxStyleName !== null && themeBoxStyles !== null ? themeBoxStyles[fieldBoxStyleName] || null : null;
1507
- var fieldThemeComponentBoxStyle = themeValue !== null ? themeValue.boxStyle || null : null;
1508
- var boxStyleValue = fieldBoxStyle !== null || fieldThemeComponentBoxStyle !== null ? {
1509
- boxStyle: valueBoxStyle !== false ? valueBoxStyle : _objectSpread(_objectSpread(_objectSpread({}, fieldBoxStyle), fieldThemeComponentBoxStyle), valueBoxStyle || null)
1510
- } : null;
1511
-
1512
- // Only change value if something is overrided
1513
- return colorValue !== null || themeValue !== null || textStyleValue !== null || boxStyleValue !== null || complexValue !== null ? _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, colorValue), themeValue), value), boxStyleValue), textStyleValue), complexValue) : value;
1514
- }
1515
- return initialValue;
1516
- }
1517
- }]);
1518
- }();
1519
-
1520
- var StoryParser = /*#__PURE__*/function () {
1521
- function StoryParser(_ref) {
1522
- var screensManager = _ref.screensManager,
1523
- fieldsManager = _ref.fieldsManager,
1524
- fieldsPattern = _ref.fieldsPattern;
1525
- _classCallCheck(this, StoryParser);
1526
- var _ref2 = fieldsPattern || {},
1527
- _ref2$medias = _ref2.medias,
1528
- mediasPattern = _ref2$medias === void 0 ? null : _ref2$medias,
1529
- _ref2$fonts = _ref2.fonts,
1530
- fontsPattern = _ref2$fonts === void 0 ? null : _ref2$fonts;
1531
- this.themeParser = new ThemeParser({
1532
- screensManager: screensManager
1533
- });
1534
- this.mediasParser = new MediasParser({
1535
- screensManager: screensManager,
1536
- fieldsManager: fieldsManager,
1537
- fieldsPattern: mediasPattern
1538
- });
1539
- this.fontsParser = new FontsParser({
1540
- screensManager: screensManager,
1541
- fieldsManager: fieldsManager,
1542
- fieldsPattern: fontsPattern
1543
- });
1544
- this.migrationsParser = new MigrationsParser({
1545
- screensManager: screensManager
1546
- });
1547
- }
1548
- return _createClass(StoryParser, [{
1549
- key: "parse",
1550
- value: function parse(story) {
1551
- var _this = this;
1552
- var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1553
- _ref3$withTheme = _ref3.withTheme,
1554
- withTheme = _ref3$withTheme === void 0 ? true : _ref3$withTheme,
1555
- _ref3$withMedias = _ref3.withMedias,
1556
- withMedias = _ref3$withMedias === void 0 ? true : _ref3$withMedias,
1557
- _ref3$withFonts = _ref3.withFonts,
1558
- withFonts = _ref3$withFonts === void 0 ? true : _ref3$withFonts,
1559
- _ref3$withMigrations = _ref3.withMigrations,
1560
- withMigrations = _ref3$withMigrations === void 0 ? true : _ref3$withMigrations;
1561
- if (story === null) {
1562
- return story;
1563
- }
1564
- var parsers = [[withMedias, function (newStory) {
1565
- return _this.mediasParser.fromPath(newStory);
1566
- }], [withTheme, function (newStory) {
1567
- return _this.themeParser.parse(newStory);
1568
- }], [withFonts, function (newStory) {
1569
- return _this.fontsParser.parse(newStory);
1570
- }], [withMigrations, function (newStory) {
1571
- return _this.migrationsParser.parse(newStory);
1572
- }]];
1573
- return parsers.reduce(function (parsedStory, _ref4) {
1574
- var _ref5 = _slicedToArray(_ref4, 2),
1575
- enabled = _ref5[0],
1576
- parse = _ref5[1];
1577
- return enabled ? parse(parsedStory) : parsedStory;
1578
- }, story);
1579
- }
1580
- }]);
1581
- }();
1582
-
1583
- var _excluded = ["value"],
1584
- _excluded2 = ["value", "currentTime"];
1585
- var Tracking = /*#__PURE__*/function (_BaseTracking) {
1586
- function Tracking() {
1587
- var _this;
1588
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1589
- _classCallCheck(this, Tracking);
1590
- _this = _callSuper(this, Tracking, [opts]);
1591
- _this.screensViewed = [];
1592
- return _this;
1593
- }
1594
- _inherits(Tracking, _BaseTracking);
1595
- return _createClass(Tracking, [{
1596
- key: "trackScreenView",
1597
- value: function trackScreenView(screen, screenIndex) {
1598
- var _ref = this.variables || {},
1599
- _ref$screensCount = _ref.screensCount,
1600
- screensCount = _ref$screensCount === void 0 ? null : _ref$screensCount;
1601
- var _ref2 = screen || {},
1602
- _ref2$id = _ref2.id,
1603
- screenId = _ref2$id === void 0 ? null : _ref2$id,
1604
- _ref2$type = _ref2.type,
1605
- screenType = _ref2$type === void 0 ? null : _ref2$type,
1606
- _ref2$metadata = _ref2.metadata,
1607
- metadata = _ref2$metadata === void 0 ? null : _ref2$metadata,
1608
- _ref2$parameters = _ref2.parameters,
1609
- _ref2$parameters2 = _ref2$parameters === void 0 ? {} : _ref2$parameters,
1610
- parametersMetadata = _ref2$parameters2.metadata;
1611
- var _ref3 = metadata || parametersMetadata || {},
1612
- screenTitle = _ref3.title,
1613
- screenDescrition = _ref3.description;
1614
- if (this.screensViewed.indexOf(screenId || screenIndex) === -1) {
1615
- this.screensViewed = [].concat(_toConsumableArray(this.screensViewed), [screenId || screenIndex]);
1616
- }
1617
- var data = {
1618
- event: 'screenView',
1619
- screenId: screenId,
1620
- screenType: screenType,
1621
- screenIndex: screenIndex,
1622
- screenTitle: screenTitle,
1623
- screenDescrition: screenDescrition,
1624
- screenProgress: screensCount !== null && screenIndex !== null ? (screenIndex + 1) / screensCount : null,
1625
- screensViewed: this.screensViewed,
1626
- screensViewedProgress: screensCount !== null ? this.screensViewed.length / screensCount : null
1627
- };
1628
- this.push(data);
1629
- }
1630
- }, {
1631
- key: "trackEvent",
1632
- value: function trackEvent() {
1633
- var category = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1634
- var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1635
- var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1636
- var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1637
- var _ref4 = opts || {},
1638
- _ref4$value = _ref4.value,
1639
- value = _ref4$value === void 0 ? null : _ref4$value,
1640
- otherOpts = _objectWithoutProperties(_ref4, _excluded);
1641
- var data = _objectSpread(_objectSpread({}, otherOpts || null), {}, {
1642
- event: 'eventInteraction',
1643
- eventCategory: category,
1644
- eventAction: action,
1645
- eventLabel: label,
1646
- eventValue: value
1647
- });
1648
- this.push(data);
1649
- }
1650
- }, {
1651
- key: "trackMedia",
1652
- value: function trackMedia() {
1653
- var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1654
- var media = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1655
- var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1656
- var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1657
- var _ref5 = opts || {},
1658
- _ref5$value = _ref5.value,
1659
- value = _ref5$value === void 0 ? null : _ref5$value,
1660
- _ref5$currentTime = _ref5.currentTime,
1661
- optsCurrentTime = _ref5$currentTime === void 0 ? null : _ref5$currentTime,
1662
- otherOpts = _objectWithoutProperties(_ref5, _excluded2);
1663
- var _ref6 = media || {},
1664
- _ref6$id = _ref6.id,
1665
- mediaId = _ref6$id === void 0 ? null : _ref6$id,
1666
- _ref6$url = _ref6.url,
1667
- mediaUrl = _ref6$url === void 0 ? null : _ref6$url,
1668
- _ref6$name = _ref6.name,
1669
- mediaName = _ref6$name === void 0 ? null : _ref6$name,
1670
- _ref6$duration = _ref6.duration,
1671
- rootDuration = _ref6$duration === void 0 ? null : _ref6$duration,
1672
- _ref6$currentTime = _ref6.currentTime,
1673
- currentTime = _ref6$currentTime === void 0 ? optsCurrentTime : _ref6$currentTime,
1674
- _ref6$metadata = _ref6.metadata,
1675
- metadata = _ref6$metadata === void 0 ? {} : _ref6$metadata;
1676
- var _ref7 = metadata || {},
1677
- _ref7$duration = _ref7.duration,
1678
- duration = _ref7$duration === void 0 ? rootDuration : _ref7$duration;
1679
- var data = _objectSpread(_objectSpread({}, otherOpts || null), {}, {
1680
- event: 'eventInteraction',
1681
- eventCategory: type,
1682
- eventAction: action,
1683
- eventLabel: mediaName || mediaUrl,
1684
- eventValue: value,
1685
- mediaId: mediaId,
1686
- mediaUrl: mediaUrl,
1687
- mediaName: mediaName
1688
- });
1689
- if (duration !== null) {
1690
- data.mediaDuration = Math.round(duration);
1691
- }
1692
- if (currentTime !== null) {
1693
- data.mediaCurrentTime = Math.round(currentTime);
1694
- }
1695
- if (currentTime !== null && duration !== null && duration > 0) {
1696
- data.mediaProgress = currentTime / duration;
1697
- }
1698
- this.push(data);
1699
- }
1700
- }]);
1701
- }(tracking.Tracking);
1702
-
1703
- exports.ColorsParser = ColorsParser;
1704
- exports.ComponentsManager = ComponentsManager;
1705
- exports.DefinitionsManager = DefinitionsManager;
1706
- exports.EventsManager = EventsManager;
1707
- exports.FieldsManager = FieldsManager;
1708
- exports.FontsParser = FontsParser;
1709
- exports.MediasParser = MediasParser;
1710
- exports.ScreensManager = ScreensManager;
1711
- exports.StoryParser = StoryParser;
1712
- exports.ThemeParser = ThemeParser;
1713
- exports.Tracking = Tracking;