@panneau/core 1.0.1-alpha.0 → 1.0.3-alpha.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.
Files changed (80) hide show
  1. package/contexts.js +1 -1
  2. package/es/contexts.js +1740 -0
  3. package/es/hooks.js +1116 -0
  4. package/es/index.js +991 -9
  5. package/es/utils.js +329 -1
  6. package/hooks.js +1 -0
  7. package/lib/contexts.js +1871 -0
  8. package/lib/hooks.js +1167 -0
  9. package/lib/index.js +1003 -44
  10. package/lib/utils.js +371 -12
  11. package/package.json +79 -49
  12. package/utils.js +1 -1
  13. package/components.js +0 -1
  14. package/es/components/Button.js +0 -157
  15. package/es/components/ButtonGroup.js +0 -87
  16. package/es/components/Errors.js +0 -33
  17. package/es/components/Label.js +0 -32
  18. package/es/components/Loading.js +0 -56
  19. package/es/components/index.js +0 -6
  20. package/es/contexts/Components.js +0 -52
  21. package/es/contexts/Definition.js +0 -21
  22. package/es/contexts/UrlGenerator.js +0 -33
  23. package/es/contexts/index.js +0 -3
  24. package/es/lib/ComponentsCollection.js +0 -107
  25. package/es/lib/Definition.js +0 -134
  26. package/es/lib/PropTypes.js +0 -75
  27. package/es/lib/Resource.js +0 -93
  28. package/es/lib/ResourceApi.js +0 -139
  29. package/es/lib/UrlGenerator.js +0 -66
  30. package/es/lib/requests.js +0 -165
  31. package/es/lib/useResourceApi.js +0 -19
  32. package/es/lib/utils.js +0 -19
  33. package/es/requests.js +0 -1
  34. package/lib/components/Button.js +0 -182
  35. package/lib/components/ButtonGroup.js +0 -104
  36. package/lib/components/Errors.js +0 -49
  37. package/lib/components/Label.js +0 -47
  38. package/lib/components/Loading.js +0 -70
  39. package/lib/components/index.js +0 -47
  40. package/lib/contexts/Components.js +0 -78
  41. package/lib/contexts/Definition.js +0 -45
  42. package/lib/contexts/UrlGenerator.js +0 -53
  43. package/lib/contexts/index.js +0 -73
  44. package/lib/lib/ComponentsCollection.js +0 -117
  45. package/lib/lib/Definition.js +0 -145
  46. package/lib/lib/PropTypes.js +0 -152
  47. package/lib/lib/Resource.js +0 -104
  48. package/lib/lib/ResourceApi.js +0 -154
  49. package/lib/lib/UrlGenerator.js +0 -76
  50. package/lib/lib/requests.js +0 -206
  51. package/lib/lib/useResourceApi.js +0 -33
  52. package/lib/lib/utils.js +0 -35
  53. package/lib/requests.js +0 -17
  54. package/requests.js +0 -1
  55. package/src/components/Button.jsx +0 -186
  56. package/src/components/ButtonGroup.jsx +0 -98
  57. package/src/components/Errors.jsx +0 -46
  58. package/src/components/Label.jsx +0 -32
  59. package/src/components/Loading.jsx +0 -51
  60. package/src/components/index.js +0 -7
  61. package/src/contexts/Components.jsx +0 -49
  62. package/src/contexts/Definition.jsx +0 -21
  63. package/src/contexts/UrlGenerator.jsx +0 -35
  64. package/src/contexts/index.js +0 -12
  65. package/src/index.js +0 -8
  66. package/src/lib/ComponentsCollection.js +0 -81
  67. package/src/lib/Definition.js +0 -87
  68. package/src/lib/PropTypes.js +0 -117
  69. package/src/lib/Resource.js +0 -65
  70. package/src/lib/ResourceApi.js +0 -114
  71. package/src/lib/UrlGenerator.js +0 -55
  72. package/src/lib/requests.js +0 -120
  73. package/src/lib/useResourceApi.jsx +0 -20
  74. package/src/lib/utils.js +0 -13
  75. package/src/requests.js +0 -1
  76. package/src/styles/components/button-group.scss +0 -10
  77. package/src/styles/components/errors.scss +0 -5
  78. package/src/styles/components/loading.scss +0 -36
  79. package/src/styles/variables.scss +0 -5
  80. package/src/utils.js +0 -1
package/lib/index.js CHANGED
@@ -1,62 +1,1021 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var PropTypes$1 = require('prop-types');
6
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
7
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
+ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
9
+ var _createClass = require('@babel/runtime/helpers/createClass');
10
+ var _inherits = require('@babel/runtime/helpers/inherits');
11
+ var _createSuper = require('@babel/runtime/helpers/createSuper');
12
+ var EventEmitter = require('wolfy87-eventemitter');
13
+ require('lodash/isNumber');
14
+ require('snake-case');
15
+ var isObject = require('lodash/isObject');
16
+ require('react');
17
+ var changeCase = require('change-case');
18
+ var ReactIs = require('react-is');
19
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
20
+ require('lodash/isString');
21
+ var isArray = require('lodash/isArray');
22
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
23
+ require('lodash/get');
24
+ require('lodash/capitalize');
25
+ require('slugify');
26
+ var uniqBy = require('lodash/uniqBy');
27
+ var uniq = require('lodash/uniq');
28
+ var tracking = require('@folklore/tracking');
6
29
 
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
30
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
+
32
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes$1);
33
+ var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
34
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
35
+ var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
36
+ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
37
+ var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
38
+ var _createSuper__default = /*#__PURE__*/_interopDefaultLegacy(_createSuper);
39
+ var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
40
+ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
41
+ var ReactIs__default = /*#__PURE__*/_interopDefaultLegacy(ReactIs);
42
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
43
+ var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
44
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
45
+ var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
46
+ var uniq__default = /*#__PURE__*/_interopDefaultLegacy(uniq);
47
+
48
+ var message = PropTypes__default["default"].shape({
49
+ id: PropTypes__default["default"].string.isRequired,
50
+ defaultMessage: PropTypes__default["default"].string
9
51
  });
10
- Object.defineProperty(exports, "ComponentsCollection", {
11
- enumerable: true,
12
- get: function get() {
13
- return _ComponentsCollection["default"];
14
- }
52
+ var label = PropTypes__default["default"].oneOfType([message, PropTypes__default["default"].node]);
53
+ var statusCode = PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]);
54
+ /**
55
+ * Core
56
+ */
57
+
58
+ var menuItem = PropTypes__default["default"].shape({
59
+ id: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
60
+ label: label,
61
+ url: PropTypes__default["default"].string,
62
+ external: PropTypes__default["default"].bool,
63
+ active: PropTypes__default["default"].bool
15
64
  });
16
- Object.defineProperty(exports, "UrlGenerator", {
17
- enumerable: true,
18
- get: function get() {
19
- return _UrlGenerator["default"];
20
- }
65
+ var menuItems = PropTypes__default["default"].arrayOf(menuItem);
66
+ var button = PropTypes__default["default"].shape({
67
+ id: PropTypes__default["default"].string,
68
+ label: label,
69
+ onClick: PropTypes__default["default"].func
21
70
  });
22
- Object.defineProperty(exports, "Definition", {
23
- enumerable: true,
24
- get: function get() {
25
- return _Definition["default"];
26
- }
71
+ var buttons = PropTypes__default["default"].arrayOf(button);
72
+ var buttonTheme = PropTypes__default["default"].oneOf(['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark', null]);
73
+ var buttonSize = PropTypes__default["default"].oneOf(['lg', 'sm', null]);
74
+ var buttonType = PropTypes__default["default"].oneOf(['button', 'submit']);
75
+ var dropdownAlign = PropTypes__default["default"].oneOf(['start', 'end']);
76
+ var controlSize = PropTypes__default["default"].oneOf(['lg', 'sm', null]);
77
+ var formStatus = PropTypes__default["default"].oneOf(['loading', 'success', 'error', null]);
78
+ var fieldOption = PropTypes__default["default"].shape({
79
+ value: PropTypes__default["default"].string,
80
+ label: PropTypes__default["default"].string
27
81
  });
28
- Object.defineProperty(exports, "Resource", {
29
- enumerable: true,
30
- get: function get() {
31
- return _Resource["default"];
32
- }
82
+ var fieldOptions = PropTypes__default["default"].arrayOf(fieldOption);
83
+ var toggle = PropTypes__default["default"].shape({
84
+ key: PropTypes__default["default"].string,
85
+ label: PropTypes__default["default"].string
33
86
  });
34
- Object.defineProperty(exports, "ResourceApi", {
35
- enumerable: true,
36
- get: function get() {
37
- return _ResourceApi["default"];
38
- }
87
+ var toggles = PropTypes__default["default"].arrayOf(toggle);
88
+ var tableColumn = PropTypes__default["default"].shape({
89
+ id: PropTypes__default["default"].string,
90
+ component: PropTypes__default["default"].string,
91
+ path: PropTypes__default["default"].string,
92
+ field: PropTypes__default["default"].string,
93
+ columnClassName: PropTypes__default["default"].string
39
94
  });
40
- Object.defineProperty(exports, "useResourceApi", {
41
- enumerable: true,
42
- get: function get() {
43
- return _useResourceApi["default"];
44
- }
95
+ var tableColumns = PropTypes__default["default"].arrayOf(tableColumn);
96
+ /**
97
+ * Panneau Definitions
98
+ */
99
+
100
+ var routes = PropTypes__default["default"].shape({
101
+ 'resources.index': PropTypes__default["default"].string.isRequired,
102
+ 'resources.create': PropTypes__default["default"].string.isRequired,
103
+ 'resources.store': PropTypes__default["default"].string.isRequired,
104
+ 'resources.show': PropTypes__default["default"].string.isRequired,
105
+ 'resources.edit': PropTypes__default["default"].string.isRequired,
106
+ 'resources.update': PropTypes__default["default"].string.isRequired,
107
+ 'resources.delete': PropTypes__default["default"].string.isRequired,
108
+ 'resources.destroy': PropTypes__default["default"].string.isRequired
109
+ });
110
+ var intl = PropTypes__default["default"].shape({
111
+ locale: PropTypes__default["default"].string,
112
+ messages: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
113
+ values: PropTypes__default["default"].objectOf(PropTypes__default["default"].string)
114
+ });
115
+ var page = PropTypes__default["default"].shape({
116
+ component: PropTypes__default["default"].string.isRequired
117
+ });
118
+ var pages = PropTypes__default["default"].objectOf(page);
119
+ var field = PropTypes__default["default"].shape({
120
+ name: PropTypes__default["default"].string.isRequired,
121
+ type: PropTypes__default["default"].string,
122
+ component: PropTypes__default["default"].string,
123
+ label: PropTypes__default["default"].node
124
+ });
125
+ var fields = PropTypes__default["default"].arrayOf(field);
126
+ var form = PropTypes__default["default"].shape({
127
+ // type: PropTypes.string.isRequired,
128
+ title: PropTypes__default["default"].isRequired,
129
+ fields: fields
130
+ });
131
+ var forms = PropTypes__default["default"].arrayOf(form);
132
+ var resource = PropTypes__default["default"].shape({
133
+ id: PropTypes__default["default"].string.isRequired,
134
+ name: PropTypes__default["default"].string.isRequired,
135
+ intl: intl,
136
+ fields: fields,
137
+ forms: PropTypes__default["default"].shape({}),
138
+ shows_in_navbar: PropTypes__default["default"].bool
139
+ });
140
+ var resources = PropTypes__default["default"].arrayOf(resource);
141
+ var panneauDefinition = PropTypes__default["default"].shape({
142
+ name: PropTypes__default["default"].string,
143
+ resources: resources,
144
+ routes: routes,
145
+ pages: pages,
146
+ intl: intl // intl,
147
+
148
+ });
149
+ var definition = PropTypes__default["default"].shape({
150
+ name: PropTypes__default["default"].string // resources,
151
+ // routes,
152
+ // intl,
153
+
154
+ });
155
+ var item = PropTypes__default["default"].shape({
156
+ id: PropTypes__default["default"].string.isRequired
45
157
  });
46
- exports.PropTypes = void 0;
158
+ var items = PropTypes__default["default"].arrayOf(item);
159
+ var user = PropTypes__default["default"].shape({
160
+ id: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string])
161
+ });
162
+ var users = PropTypes__default["default"].arrayOf(user);
163
+ var selectOption = PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].shape({
164
+ value: PropTypes__default["default"].any,
165
+ // eslint-disable-line
166
+ label: label
167
+ })]);
168
+ var selectOptions = PropTypes__default["default"].arrayOf(selectOption);
169
+ var feedback = PropTypes__default["default"].oneOf(['valid', 'invalid', 'loading', null]);
170
+ var formError = PropTypes__default["default"].shape({
171
+ message: PropTypes__default["default"].string
172
+ });
173
+ var formErrors = PropTypes__default["default"].arrayOf(formError);
174
+ var uppy = PropTypes__default["default"].shape({
175
+ tus: PropTypes__default["default"].object
176
+ }); // eslint-disable-line
177
+
178
+ var triggerUpdate = PropTypes__default["default"].string;
179
+
180
+ var PropTypes = /*#__PURE__*/Object.freeze({
181
+ __proto__: null,
182
+ message: message,
183
+ label: label,
184
+ statusCode: statusCode,
185
+ menuItem: menuItem,
186
+ menuItems: menuItems,
187
+ button: button,
188
+ buttons: buttons,
189
+ buttonTheme: buttonTheme,
190
+ buttonSize: buttonSize,
191
+ buttonType: buttonType,
192
+ dropdownAlign: dropdownAlign,
193
+ controlSize: controlSize,
194
+ formStatus: formStatus,
195
+ fieldOption: fieldOption,
196
+ fieldOptions: fieldOptions,
197
+ toggle: toggle,
198
+ toggles: toggles,
199
+ tableColumn: tableColumn,
200
+ tableColumns: tableColumns,
201
+ routes: routes,
202
+ intl: intl,
203
+ page: page,
204
+ pages: pages,
205
+ field: field,
206
+ fields: fields,
207
+ form: form,
208
+ forms: forms,
209
+ resource: resource,
210
+ resources: resources,
211
+ panneauDefinition: panneauDefinition,
212
+ definition: definition,
213
+ item: item,
214
+ items: items,
215
+ user: user,
216
+ users: users,
217
+ selectOption: selectOption,
218
+ selectOptions: selectOptions,
219
+ feedback: feedback,
220
+ formError: formError,
221
+ formErrors: formErrors,
222
+ uppy: uppy,
223
+ triggerUpdate: triggerUpdate
224
+ });
225
+
226
+ var flattenComponents = function flattenComponents(components) {
227
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
228
+
229
+ if (components === null) {
230
+ return null;
231
+ }
232
+
233
+ return Object.keys(components).reduce(function (newMap, key) {
234
+ return ReactIs__default["default"].isValidElementType(components[key]) ? _objectSpread__default["default"](_objectSpread__default["default"]({}, newMap), {}, _defineProperty__default["default"]({}, prefix !== null ? "".concat(prefix, ".").concat(key) : key, components[key])) : _objectSpread__default["default"](_objectSpread__default["default"]({}, newMap), flattenComponents(components[key], key));
235
+ }, {});
236
+ };
237
+
238
+ var getComponentFromName = function getComponentFromName() {
239
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
240
+ var components = arguments.length > 1 ? arguments[1] : undefined;
241
+ var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
242
+
243
+ if (components === null || name === null) {
244
+ return defaultComponent;
245
+ }
246
+
247
+ var pascalName = changeCase.pascalCase(name);
248
+ var component = components[pascalName] || components[name] || defaultComponent;
249
+
250
+ if (!component) {
251
+ console.warn('Could not find component from name', name, pascalName, components);
252
+ }
253
+
254
+ return component;
255
+ };
256
+
257
+ var ComponentsManager = /*#__PURE__*/function (_EventEmitter) {
258
+ _inherits__default["default"](ComponentsManager, _EventEmitter);
259
+
260
+ var _super = _createSuper__default["default"](ComponentsManager);
261
+
262
+ function ComponentsManager() {
263
+ var _this;
264
+
265
+ var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
266
+
267
+ _classCallCheck__default["default"](this, ComponentsManager);
268
+
269
+ _this = _super.call(this);
270
+ _this.components = flattenComponents(components);
271
+ return _this;
272
+ }
273
+
274
+ _createClass__default["default"](ComponentsManager, [{
275
+ key: "addComponent",
276
+ value: function addComponent(name, component) {
277
+ var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
278
+ return this.addComponents(_defineProperty__default["default"]({}, name, component), namespace);
279
+ }
280
+ }, {
281
+ key: "addComponents",
282
+ value: function addComponents(components) {
283
+ var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
284
+ var newComponents = namespace !== null ? Object.keys(components).reduce(function (componentsMaps, name) {
285
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, componentsMaps), {}, _defineProperty__default["default"]({}, "".concat(namespace, ".").concat(name), components[name]));
286
+ }, {}) : components;
287
+ this.components = _objectSpread__default["default"](_objectSpread__default["default"]({}, this.components), newComponents);
288
+ this.emit('change');
289
+ return this;
290
+ }
291
+ }, {
292
+ key: "merge",
293
+ value: function merge(manager) {
294
+ var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
295
+ return this.addComponents(manager.getComponents(), namespace);
296
+ }
297
+ }, {
298
+ key: "addNamespace",
299
+ value: function addNamespace(namespace) {
300
+ var _this2 = this;
301
+
302
+ if (namespace === null) {
303
+ return this;
304
+ }
305
+
306
+ this.components = Object.keys(this.components).reduce(function (componentsMap, name) {
307
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, componentsMap), {}, _defineProperty__default["default"]({}, "".concat(namespace, ".").concat(name), _this2.components[name]));
308
+ }, {});
309
+ return this;
310
+ }
311
+ }, {
312
+ key: "getComponent",
313
+ value: function getComponent(name) {
314
+ var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
315
+ var components = this.getComponents(namespace);
316
+ return getComponentFromName(name, components);
317
+ }
318
+ }, {
319
+ key: "getComponents",
320
+ value: function getComponents() {
321
+ var _this3 = this;
322
+
323
+ var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
324
+ return namespace !== null ? Object.keys(this.components || {}).reduce(function (componentsMap, name) {
325
+ var pattern = new RegExp("^".concat(namespace, "\\.(.*)$"));
326
+ var matches = pattern.exec(name);
327
+ return matches !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, componentsMap), {}, _defineProperty__default["default"]({}, matches[1], _this3.components[name])) : componentsMap;
328
+ }, null) : this.components;
329
+ }
330
+ }, {
331
+ key: "hasComponent",
332
+ value: function hasComponent(name) {
333
+ var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
334
+ return this.components !== null && typeof this.components[namespace !== null ? "".concat(namespace, ".").concat(name) : name] !== 'undefined';
335
+ }
336
+ }]);
337
+
338
+ return ComponentsManager;
339
+ }(EventEmitter__default["default"]);
340
+
341
+ var DefinitionsManager = /*#__PURE__*/function (_EventEmitter) {
342
+ _inherits__default["default"](DefinitionsManager, _EventEmitter);
343
+
344
+ var _super = _createSuper__default["default"](DefinitionsManager);
345
+
346
+ function DefinitionsManager() {
347
+ var _this;
348
+
349
+ var definitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
350
+
351
+ _classCallCheck__default["default"](this, DefinitionsManager);
352
+
353
+ _this = _super.call(this);
354
+ _this.definitions = definitions || [];
355
+ return _this;
356
+ }
357
+
358
+ _createClass__default["default"](DefinitionsManager, [{
359
+ key: "addDefinition",
360
+ value: function addDefinition(definition) {
361
+ this.addDefinitions(isArray__default["default"](definition) ? definition : [definition]);
362
+ return this;
363
+ }
364
+ }, {
365
+ key: "addDefinitions",
366
+ value: function addDefinitions(definitions) {
367
+ this.definitions = uniqBy__default["default"]([].concat(_toConsumableArray__default["default"](definitions), _toConsumableArray__default["default"](this.definitions)), function (it) {
368
+ return it.id;
369
+ });
370
+ this.emit('change');
371
+ return this;
372
+ }
373
+ }, {
374
+ key: "merge",
375
+ value: function merge(manager) {
376
+ return this.addDefinitions(manager.getDefinitions());
377
+ }
378
+ }, {
379
+ key: "getDefinition",
380
+ value: function getDefinition(id) {
381
+ if (id === null) {
382
+ return null;
383
+ }
384
+
385
+ return this.definitions.find(function (it) {
386
+ return it.id === id;
387
+ }) || null;
388
+ }
389
+ }, {
390
+ key: "getDefinitions",
391
+ value: function getDefinitions() {
392
+ return this.definitions;
393
+ }
394
+ }, {
395
+ key: "hasDefinition",
396
+ value: function hasDefinition(id) {
397
+ return this.getDefinition(id) !== null;
398
+ }
399
+ }, {
400
+ key: "getComponent",
401
+ value: function getComponent(id) {
402
+ var _ref = this.getDefinition(id) || {},
403
+ _ref$component = _ref.component,
404
+ component = _ref$component === void 0 ? null : _ref$component;
405
+
406
+ return component;
407
+ }
408
+ }, {
409
+ key: "getComponents",
410
+ value: function getComponents() {
411
+ return this.definitions.reduce(function (allComponents, _ref2) {
412
+ var id = _ref2.id,
413
+ _ref2$component = _ref2.component,
414
+ component = _ref2$component === void 0 ? null : _ref2$component;
415
+ return component !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, allComponents), {}, _defineProperty__default["default"]({}, id, component)) : allComponents;
416
+ }, {});
417
+ }
418
+ }]);
419
+
420
+ return DefinitionsManager;
421
+ }(EventEmitter__default["default"]);
422
+
423
+ var EventsManager = /*#__PURE__*/function (_EventEmitter) {
424
+ _inherits__default["default"](EventsManager, _EventEmitter);
425
+
426
+ var _super = _createSuper__default["default"](EventsManager);
427
+
428
+ function EventsManager(element) {
429
+ var _this;
430
+
431
+ _classCallCheck__default["default"](this, EventsManager);
432
+
433
+ _this = _super.call(this);
434
+ _this.element = element;
435
+ _this.events = {};
436
+ _this.listeners = {};
437
+ return _this;
438
+ }
439
+
440
+ _createClass__default["default"](EventsManager, [{
441
+ key: "subscribe",
442
+ value: function subscribe(event, callback) {
443
+ this.on(event, callback);
444
+ this.events = _objectSpread__default["default"](_objectSpread__default["default"]({}, this.events), {}, _defineProperty__default["default"]({}, event, [].concat(_toConsumableArray__default["default"](this.events[event] || []), [callback])));
445
+
446
+ if (this.events[event].length === 1) {
447
+ this.addEventListener(event);
448
+ }
449
+ }
450
+ }, {
451
+ key: "unsubscribe",
452
+ value: function unsubscribe(event, callback) {
453
+ var _this2 = this;
454
+
455
+ this.off(event, callback);
456
+ this.events = Object.keys(this.events).reduce(function (newEvents, eventName) {
457
+ if (eventName !== event) {
458
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, newEvents), {}, _defineProperty__default["default"]({}, eventName, _this2.events[eventName]));
459
+ }
460
+
461
+ var newListeners = _this2.events[eventName].filter(function (listener) {
462
+ return listener !== callback;
463
+ });
464
+
465
+ return newListeners.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, newEvents), {}, _defineProperty__default["default"]({}, eventName, newListeners)) : newEvents;
466
+ }, {});
467
+
468
+ if (typeof this.events[event] === 'undefined') {
469
+ this.removeEventListener(event);
470
+ }
471
+ }
472
+ }, {
473
+ key: "addEventListener",
474
+ value: function addEventListener(event) {
475
+ var _this3 = this;
476
+
477
+ if (typeof this.listeners[event] === 'undefined') {
478
+ this.listeners[event] = function () {
479
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
480
+ args[_key] = arguments[_key];
481
+ }
482
+
483
+ return _this3.emit.apply(_this3, [event].concat(args));
484
+ };
485
+ }
486
+
487
+ this.element.addEventListener(event, this.listeners[event]);
488
+ }
489
+ }, {
490
+ key: "removeEventListener",
491
+ value: function removeEventListener(event) {
492
+ this.element.removeEventListener(event, this.listeners[event]);
493
+ }
494
+ }]);
495
+
496
+ return EventsManager;
497
+ }(EventEmitter__default["default"]);
498
+
499
+ var FieldsManager$1 = /*#__PURE__*/function (_DefinitionsManager) {
500
+ _inherits__default["default"](FieldsManager, _DefinitionsManager);
501
+
502
+ var _super = _createSuper__default["default"](FieldsManager);
503
+
504
+ function FieldsManager() {
505
+ _classCallCheck__default["default"](this, FieldsManager);
506
+
507
+ return _super.apply(this, arguments);
508
+ }
509
+
510
+ return _createClass__default["default"](FieldsManager);
511
+ }(DefinitionsManager);
512
+
513
+ var _excluded$2 = ["fonts"];
514
+
515
+ var FontsParser = /*#__PURE__*/function () {
516
+ function FontsParser(_ref) {
517
+ var fieldsManager = _ref.fieldsManager,
518
+ screensManager = _ref.screensManager;
519
+
520
+ _classCallCheck__default["default"](this, FontsParser);
521
+
522
+ this.fieldsManager = fieldsManager;
523
+ this.screensManager = screensManager;
524
+ } // Extract fonts
525
+
526
+
527
+ _createClass__default["default"](FontsParser, [{
528
+ key: "parse",
529
+ value: function parse(story) {
530
+ var _this = this;
531
+
532
+ if (story === null) {
533
+ return story;
534
+ } // Extract fonts from screen
535
+
536
+
537
+ var _ref2 = story || {},
538
+ _ref2$theme = _ref2.theme,
539
+ theme = _ref2$theme === void 0 ? null : _ref2$theme,
540
+ _ref2$components = _ref2.components,
541
+ components = _ref2$components === void 0 ? [] : _ref2$components;
542
+
543
+ var fonts = uniq__default["default"](components.reduce(function (currentFonts, screen) {
544
+ var type = screen.type;
545
+
546
+ var _ref3 = _this.screensManager.getDefinition(type) || {},
547
+ _ref3$fields = _ref3.fields,
548
+ fields = _ref3$fields === void 0 ? [] : _ref3$fields;
549
+
550
+ var fieldsPattern = _this.getFieldsPattern(fields);
551
+
552
+ var newFonts = FontsParser.extractFontsWithPaths(screen, fieldsPattern);
553
+ return newFonts.length > 0 ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](newFonts)) : currentFonts;
554
+ }, []), 'name'); // Extract fonts from theme
555
+
556
+ if (theme !== null) {
557
+ var _this$parse = this.parse(theme),
558
+ _this$parse$fonts = _this$parse.fonts,
559
+ themeFonts = _this$parse$fonts === void 0 ? [] : _this$parse$fonts,
560
+ newTheme = _objectWithoutProperties__default["default"](_this$parse, _excluded$2);
561
+
562
+ return fonts.length > 0 || themeFonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
563
+ theme: newTheme,
564
+ fonts: uniq__default["default"]([].concat(_toConsumableArray__default["default"](themeFonts), _toConsumableArray__default["default"](fonts)), 'name')
565
+ }) : story;
566
+ }
567
+
568
+ return fonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
569
+ fonts: fonts
570
+ }) : story;
571
+ }
572
+ }, {
573
+ key: "getFieldsPattern",
574
+ value: function getFieldsPattern(fields) {
575
+ var _this2 = this;
576
+
577
+ var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
578
+ return fields.reduce(function (patterns, field) {
579
+ var _field$name = field.name,
580
+ name = _field$name === void 0 ? null : _field$name,
581
+ _field$type = field.type,
582
+ type = _field$type === void 0 ? null : _field$type;
583
+ var path = [namePrefix, name].filter(function (it) {
584
+ return it !== null;
585
+ }).join('\\.');
586
+
587
+ var fieldDefinition = _objectSpread__default["default"](_objectSpread__default["default"]({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field); // also check settings fields
588
+
589
+
590
+ var _fieldDefinition$fiel = fieldDefinition.fields,
591
+ subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
592
+ _fieldDefinition$item = fieldDefinition.itemsField,
593
+ itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
594
+ _fieldDefinition$sett = fieldDefinition.settings,
595
+ settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
596
+ return [].concat(_toConsumableArray__default["default"](patterns), _toConsumableArray__default["default"](FontsParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray__default["default"](_this2.getFieldsPattern(subFields, path)), _toConsumableArray__default["default"](_this2.getFieldsPattern(settings, path)), _toConsumableArray__default["default"](itemsField !== null ? _this2.getFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
597
+ }, []);
598
+ }
599
+ }], [{
600
+ key: "fieldIsFontFamily",
601
+ value: function fieldIsFontFamily(_ref4) {
602
+ var _ref4$id = _ref4.id,
603
+ id = _ref4$id === void 0 ? null : _ref4$id;
604
+ return id === 'font-family';
605
+ }
606
+ }, {
607
+ key: "valueIsFont",
608
+ value: function valueIsFont(_ref5) {
609
+ var _ref5$type = _ref5.type,
610
+ type = _ref5$type === void 0 ? null : _ref5$type;
611
+ return type === 'custom' || type === 'google';
612
+ }
613
+ }, {
614
+ key: "extractFontsWithPaths",
615
+ value: function extractFontsWithPaths(data, patterns) {
616
+ var keyPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
617
+ var dataIsArray = isArray__default["default"](data);
618
+ var keys = dataIsArray ? _toConsumableArray__default["default"](data.keys()) : Object.keys(data);
619
+ return keys.reduce(function (currentFonts, key) {
620
+ var path = [keyPrefix, key].filter(function (it) {
621
+ return it !== null;
622
+ }).join('.');
623
+ var patternMatch = patterns.reduce(function (found, pattern) {
624
+ return found || pattern.test(path);
625
+ }, false);
626
+ var value = data[key];
627
+ var font = null;
628
+ var subFonts = null;
629
+
630
+ if (patternMatch && isObject__default["default"](value) && FontsParser.valueIsFont(value)) {
631
+ font = value;
632
+ } else if (isObject__default["default"](value) || isArray__default["default"](value)) {
633
+ subFonts = FontsParser.extractFontsWithPaths(value, patterns, path);
634
+ }
635
+
636
+ return subFonts !== null || font !== null ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](subFonts || []), _toConsumableArray__default["default"](font !== null ? [font] : [])) : currentFonts;
637
+ }, []);
638
+ }
639
+ }]);
640
+
641
+ return FontsParser;
642
+ }();
643
+
644
+ var FieldsManager = /*#__PURE__*/function (_ComponentsManager) {
645
+ _inherits__default["default"](FieldsManager, _ComponentsManager);
646
+
647
+ var _super = _createSuper__default["default"](FieldsManager);
648
+
649
+ function FieldsManager() {
650
+ _classCallCheck__default["default"](this, FieldsManager);
651
+
652
+ return _super.apply(this, arguments);
653
+ }
654
+
655
+ return _createClass__default["default"](FieldsManager);
656
+ }(ComponentsManager);
657
+
658
+ var _excluded$1 = ["medias"];
659
+
660
+ var MediasParser = /*#__PURE__*/function () {
661
+ function MediasParser(_ref) {
662
+ var fieldsManager = _ref.fieldsManager,
663
+ screensManager = _ref.screensManager;
664
+
665
+ _classCallCheck__default["default"](this, MediasParser);
666
+
667
+ this.fieldsManager = fieldsManager;
668
+ this.screensManager = screensManager;
669
+ } // Convert medias object to path
670
+
671
+
672
+ _createClass__default["default"](MediasParser, [{
673
+ key: "toPath",
674
+ value: function toPath(story) {
675
+ var _this = this;
676
+
677
+ if (story === null) {
678
+ return story;
679
+ }
680
+
681
+ var _ref2 = story || {},
682
+ _ref2$theme = _ref2.theme,
683
+ theme = _ref2$theme === void 0 ? null : _ref2$theme,
684
+ _ref2$components = _ref2.components,
685
+ components = _ref2$components === void 0 ? [] : _ref2$components;
686
+
687
+ var _components$reduce = components.reduce(function (_ref3, screen) {
688
+ var previousComponents = _ref3.components,
689
+ currentMedias = _ref3.medias;
690
+ var type = screen.type;
691
+
692
+ var _ref4 = _this.screensManager.getDefinition(type) || {},
693
+ _ref4$fields = _ref4.fields,
694
+ fields = _ref4$fields === void 0 ? [] : _ref4$fields;
695
+
696
+ var fieldsPattern = _this.getMediaFieldsPattern(fields);
697
+
698
+ var _MediasParser$replace = MediasParser.replaceMediasWithPaths(screen, fieldsPattern),
699
+ newScreen = _MediasParser$replace.data,
700
+ newMedias = _MediasParser$replace.medias;
701
+
702
+ return {
703
+ components: [].concat(_toConsumableArray__default["default"](previousComponents), [newScreen]),
704
+ medias: _objectSpread__default["default"](_objectSpread__default["default"]({}, currentMedias), newMedias)
705
+ };
706
+ }, {
707
+ components: [],
708
+ medias: null
709
+ }),
710
+ newComponents = _components$reduce.components,
711
+ medias = _components$reduce.medias;
712
+
713
+ if (theme !== null) {
714
+ var _this$toPath = this.toPath(theme),
715
+ themeMedias = _this$toPath.medias,
716
+ newTheme = _objectWithoutProperties__default["default"](_this$toPath, _excluded$1);
717
+
718
+ return medias !== null || themeMedias !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
719
+ theme: newTheme,
720
+ components: newComponents,
721
+ medias: _objectSpread__default["default"](_objectSpread__default["default"]({}, themeMedias), medias)
722
+ }) : story;
723
+ }
724
+
725
+ return medias !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
726
+ components: newComponents,
727
+ medias: medias
728
+ }) : story;
729
+ } // Convert path to medias object
730
+
731
+ }, {
732
+ key: "fromPath",
733
+ value: function fromPath(story) {
734
+ var _this2 = this;
735
+
736
+ var defaultMedias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
737
+
738
+ if (story === null) {
739
+ return story;
740
+ }
741
+
742
+ var _ref5 = story || {},
743
+ _ref5$theme = _ref5.theme,
744
+ theme = _ref5$theme === void 0 ? null : _ref5$theme,
745
+ _ref5$components = _ref5.components,
746
+ components = _ref5$components === void 0 ? [] : _ref5$components,
747
+ _ref5$medias = _ref5.medias,
748
+ medias = _ref5$medias === void 0 ? defaultMedias : _ref5$medias;
749
+
750
+ if (medias === null && theme === null) {
751
+ return story;
752
+ } // Replace path with medias objects
753
+
754
+
755
+ var newComponents = medias !== null ? components.map(function (screen) {
756
+ var type = screen.type;
757
+
758
+ var _ref6 = _this2.screensManager.getDefinition(type) || {},
759
+ _ref6$fields = _ref6.fields,
760
+ fields = _ref6$fields === void 0 ? [] : _ref6$fields;
761
+
762
+ var fieldsPattern = _this2.getMediaFieldsPattern(fields);
763
+
764
+ return MediasParser.replacePathsWithMedias(screen, medias, fieldsPattern);
765
+ }) : components; // Replace path with medias object in theme
766
+
767
+ if (theme !== null) {
768
+ var newTheme = this.fromPath(theme, medias);
769
+ return newTheme !== theme || newComponents !== components ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
770
+ theme: newTheme,
771
+ components: newComponents
772
+ }) : story;
773
+ }
774
+
775
+ return newComponents !== components ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
776
+ components: newComponents
777
+ }) : story;
778
+ }
779
+ }, {
780
+ key: "getMediaFieldsPattern",
781
+ value: function getMediaFieldsPattern(fields) {
782
+ var _this3 = this;
783
+
784
+ var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
785
+ return fields.reduce(function (patterns, field) {
786
+ var _field$name = field.name,
787
+ name = _field$name === void 0 ? null : _field$name,
788
+ _field$type = field.type,
789
+ type = _field$type === void 0 ? null : _field$type;
790
+ var path = [namePrefix, name].filter(function (it) {
791
+ return it !== null;
792
+ }).join('\\.');
793
+
794
+ var fieldDefinition = _objectSpread__default["default"](_objectSpread__default["default"]({}, type !== null ? _this3.fieldsManager.getDefinition(type) : null), field); // also check settings fields
795
+
796
+
797
+ var _fieldDefinition$fiel = fieldDefinition.fields,
798
+ subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
799
+ _fieldDefinition$item = fieldDefinition.itemsField,
800
+ itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
801
+ _fieldDefinition$sett = fieldDefinition.settings,
802
+ settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
803
+ return [].concat(_toConsumableArray__default["default"](patterns), _toConsumableArray__default["default"](MediasParser.fieldIsMedia(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray__default["default"](MediasParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "\\.media$"))] : []), _toConsumableArray__default["default"](_this3.getMediaFieldsPattern(subFields, path)), _toConsumableArray__default["default"](_this3.getMediaFieldsPattern(settings, path)), _toConsumableArray__default["default"](itemsField !== null ? _this3.getMediaFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
804
+ }, []);
805
+ }
806
+ }], [{
807
+ key: "fieldIsMedia",
808
+ value: function fieldIsMedia(_ref7) {
809
+ var _ref7$media = _ref7.media,
810
+ media = _ref7$media === void 0 ? false : _ref7$media;
811
+ return media;
812
+ }
813
+ }, {
814
+ key: "fieldIsFontFamily",
815
+ value: function fieldIsFontFamily(_ref8) {
816
+ var _ref8$id = _ref8.id,
817
+ id = _ref8$id === void 0 ? null : _ref8$id;
818
+ return id === 'font-family';
819
+ }
820
+ }, {
821
+ key: "replacePathsWithMedias",
822
+ value: function replacePathsWithMedias(data, medias, patterns) {
823
+ var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
824
+ var dataIsArray = isArray__default["default"](data);
825
+ var keys = dataIsArray ? _toConsumableArray__default["default"](data.keys()) : Object.keys(data);
826
+ return keys.reduce(function (newData, key) {
827
+ var path = [keyPrefix, key].filter(function (it) {
828
+ return it !== null;
829
+ }).join('.');
830
+ var patternMatch = patterns.reduce(function (found, pattern) {
831
+ return found || pattern.test(path);
832
+ }, false);
833
+ var value = data[key];
834
+ var newValue;
835
+
836
+ if (patternMatch) {
837
+ newValue = isObject__default["default"](value) ? value : medias[value] || null;
838
+ } else {
839
+ newValue = isObject__default["default"](value) || isArray__default["default"](value) ? MediasParser.replacePathsWithMedias(value, medias, patterns, path) : value;
840
+ }
841
+
842
+ return dataIsArray ? [].concat(_toConsumableArray__default["default"](newData), [newValue]) : _objectSpread__default["default"](_objectSpread__default["default"]({}, newData), {}, _defineProperty__default["default"]({}, key, newValue));
843
+ }, dataIsArray ? [] : {});
844
+ }
845
+ }, {
846
+ key: "getMediaPath",
847
+ value: function getMediaPath(_ref9) {
848
+ var _ref9$id = _ref9.id,
849
+ id = _ref9$id === void 0 ? null : _ref9$id;
850
+ return id !== null ? "media://".concat(id) : null;
851
+ }
852
+ }, {
853
+ key: "replaceMediasWithPaths",
854
+ value: function replaceMediasWithPaths(data, patterns) {
855
+ var medias = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
856
+ var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
857
+ var dataIsArray = isArray__default["default"](data);
858
+ var keys = dataIsArray ? _toConsumableArray__default["default"](data.keys()) : Object.keys(data);
859
+ return keys.reduce(function (_ref10, key) {
860
+ var currentData = _ref10.data,
861
+ currentMedias = _ref10.medias;
862
+ var path = [keyPrefix, key].filter(function (it) {
863
+ return it !== null;
864
+ }).join('.');
865
+ var patternMatch = patterns.reduce(function (found, pattern) {
866
+ return found || pattern.test(path);
867
+ }, false);
868
+ var value = data[key];
869
+ var newValue;
870
+ var media = null;
871
+ var subMedias = null;
872
+
873
+ if (patternMatch && isObject__default["default"](value)) {
874
+ var mediaPath = MediasParser.getMediaPath(value);
875
+ newValue = mediaPath !== null ? mediaPath : value;
876
+ media = mediaPath !== null ? value : null;
877
+ } else if (isObject__default["default"](value) || isArray__default["default"](value)) {
878
+ var subReturn = MediasParser.replaceMediasWithPaths(value, patterns, medias, path);
879
+ newValue = subReturn.data;
880
+ subMedias = subReturn.medias;
881
+ } else {
882
+ newValue = value;
883
+ }
884
+
885
+ return {
886
+ data: dataIsArray ? [].concat(_toConsumableArray__default["default"](currentData || []), [newValue]) : _objectSpread__default["default"](_objectSpread__default["default"]({}, currentData), {}, _defineProperty__default["default"]({}, key, newValue)),
887
+ medias: media !== null ? _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, currentMedias), subMedias), {}, _defineProperty__default["default"]({}, newValue, media)) : _objectSpread__default["default"](_objectSpread__default["default"]({}, currentMedias), subMedias)
888
+ };
889
+ }, {
890
+ data: null,
891
+ medias: medias
892
+ });
893
+ }
894
+ }]);
895
+
896
+ return MediasParser;
897
+ }();
898
+
899
+ var _excluded = ["value"],
900
+ _excluded2 = ["value"];
901
+
902
+ var Tracking = /*#__PURE__*/function (_BaseTracking) {
903
+ _inherits__default["default"](Tracking, _BaseTracking);
904
+
905
+ var _super = _createSuper__default["default"](Tracking);
906
+
907
+ function Tracking() {
908
+ var _this;
909
+
910
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
911
+
912
+ _classCallCheck__default["default"](this, Tracking);
913
+
914
+ _this = _super.call(this, opts);
915
+ var _this$options$variabl = _this.options.variables,
916
+ variables = _this$options$variabl === void 0 ? null : _this$options$variabl;
917
+ _this.variables = null;
918
+
919
+ if (variables !== null) {
920
+ _this.setVariables(variables);
921
+ }
922
+
923
+ return _this;
924
+ }
925
+
926
+ _createClass__default["default"](Tracking, [{
927
+ key: "setVariables",
928
+ value: function setVariables(variables) {
929
+ this.variables = variables;
930
+
931
+ if (variables !== null) {
932
+ this.push(variables);
933
+ }
934
+ }
935
+ }, {
936
+ key: "getVariables",
937
+ value: function getVariables() {
938
+ return this.variables;
939
+ }
940
+ }, {
941
+ key: "trackScreenView",
942
+ value: function trackScreenView(screen, screenIndex) {
943
+ var _ref = screen || {},
944
+ _ref$id = _ref.id,
945
+ screenId = _ref$id === void 0 ? null : _ref$id,
946
+ _ref$type = _ref.type,
947
+ screenType = _ref$type === void 0 ? null : _ref$type;
948
+
949
+ var data = {
950
+ event: 'screenView',
951
+ screenId: screenId,
952
+ screenType: screenType,
953
+ screenIndex: screenIndex
954
+ };
955
+ this.push(data);
956
+ }
957
+ }, {
958
+ key: "trackEvent",
959
+ value: function trackEvent(category, action, label) {
960
+ var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
961
+ _ref2$value = _ref2.value,
962
+ value = _ref2$value === void 0 ? null : _ref2$value,
963
+ opts = _objectWithoutProperties__default["default"](_ref2, _excluded);
47
964
 
48
- var _PropTypes = _interopRequireWildcard(require("./lib/PropTypes"));
965
+ var data = _objectSpread__default["default"](_objectSpread__default["default"]({}, opts), {}, {
966
+ event: 'eventInteraction',
967
+ eventCategory: category,
968
+ eventAction: action,
969
+ eventLabel: label,
970
+ eventValue: value
971
+ });
49
972
 
50
- exports.PropTypes = _PropTypes;
973
+ this.push(data);
974
+ }
975
+ }, {
976
+ key: "trackMedia",
977
+ value: function trackMedia(type, media, action) {
978
+ var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
979
+ _ref3$value = _ref3.value,
980
+ value = _ref3$value === void 0 ? null : _ref3$value,
981
+ opts = _objectWithoutProperties__default["default"](_ref3, _excluded2);
51
982
 
52
- var _ComponentsCollection = _interopRequireDefault(require("./lib/ComponentsCollection"));
983
+ var _ref4 = media || {},
984
+ _ref4$id = _ref4.id,
985
+ mediaId = _ref4$id === void 0 ? null : _ref4$id,
986
+ _ref4$name = _ref4.name,
987
+ name = _ref4$name === void 0 ? null : _ref4$name,
988
+ _ref4$duration = _ref4.duration,
989
+ duration = _ref4$duration === void 0 ? null : _ref4$duration,
990
+ _ref4$currentTime = _ref4.currentTime,
991
+ currentTime = _ref4$currentTime === void 0 ? null : _ref4$currentTime;
53
992
 
54
- var _UrlGenerator = _interopRequireDefault(require("./lib/UrlGenerator"));
993
+ var label = name;
55
994
 
56
- var _Definition = _interopRequireDefault(require("./lib/Definition"));
995
+ var data = _objectSpread__default["default"](_objectSpread__default["default"]({}, opts), {}, {
996
+ event: 'eventInteraction',
997
+ eventCategory: type,
998
+ eventAction: action,
999
+ eventLabel: label,
1000
+ eventValue: value,
1001
+ mediaId: mediaId,
1002
+ mediaCurrentTime: currentTime !== null ? Math.round(currentTime) : null,
1003
+ mediaProgress: currentTime !== null && duration !== null && duration > 0 ? Math.round(currentTime / duration * 100) : null
1004
+ });
57
1005
 
58
- var _Resource = _interopRequireDefault(require("./lib/Resource"));
1006
+ this.push(data);
1007
+ }
1008
+ }]);
59
1009
 
60
- var _ResourceApi = _interopRequireDefault(require("./lib/ResourceApi"));
1010
+ return Tracking;
1011
+ }(tracking.Tracking);
61
1012
 
62
- var _useResourceApi = _interopRequireDefault(require("./lib/useResourceApi"));
1013
+ exports.ComponentsManager = ComponentsManager;
1014
+ exports.DefinitionsManager = DefinitionsManager;
1015
+ exports.EventsManager = EventsManager;
1016
+ exports.FieldsManager = FieldsManager$1;
1017
+ exports.FontsParser = FontsParser;
1018
+ exports.FormsManager = FieldsManager;
1019
+ exports.MediasParser = MediasParser;
1020
+ exports.PropTypes = PropTypes;
1021
+ exports.Tracking = Tracking;