@miso.ai/client-sdk-ui 1.11.6-beta.0 → 1.11.6-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/cjs/actor/data.js +5 -7
  2. package/dist/cjs/actor/feedback.js +1 -2
  3. package/dist/cjs/actor/filters.js +20 -21
  4. package/dist/cjs/actor/hub.js +34 -8
  5. package/dist/cjs/actor/index.js +1 -2
  6. package/dist/cjs/actor/interactions.js +5 -7
  7. package/dist/cjs/actor/sessions.js +1 -2
  8. package/dist/cjs/actor/tracker.js +9 -12
  9. package/dist/cjs/actor/view.js +11 -20
  10. package/dist/cjs/actor/views.js +16 -21
  11. package/dist/cjs/affiliation/index.js +1 -2
  12. package/dist/cjs/combo/ask/elements.js +3 -4
  13. package/dist/cjs/combo/ask/index.js +1 -2
  14. package/dist/cjs/combo/ask/options.js +2 -6
  15. package/dist/cjs/defaults/ask/controls.js +1 -2
  16. package/dist/cjs/defaults/ask/index.js +1 -2
  17. package/dist/cjs/defaults/ask/templates.js +3 -6
  18. package/dist/cjs/defaults/common/templates.js +30 -41
  19. package/dist/cjs/defaults/hybrid-search/answer-box.js +9 -11
  20. package/dist/cjs/defaults/hybrid-search/controls.js +1 -2
  21. package/dist/cjs/defaults/hybrid-search/index.js +1 -2
  22. package/dist/cjs/defaults/hybrid-search/templates.js +2 -4
  23. package/dist/cjs/defaults/index.js +1 -2
  24. package/dist/cjs/element/container/miso-explore.js +7 -7
  25. package/dist/cjs/element/container/miso-hybrid-search.js +3 -3
  26. package/dist/cjs/element/container/miso-recommendation.js +3 -38
  27. package/dist/cjs/element/container/miso-search.js +3 -3
  28. package/dist/cjs/element/container/miso-unit.js +52 -0
  29. package/dist/cjs/element/index.js +1 -2
  30. package/dist/cjs/element/role/miso-component.js +3 -4
  31. package/dist/cjs/element/utils.js +6 -9
  32. package/dist/cjs/layout/affiliation/affiliation.js +4 -6
  33. package/dist/cjs/layout/banner/banner.js +1 -2
  34. package/dist/cjs/layout/button/more-button.js +1 -2
  35. package/dist/cjs/layout/container/container.js +7 -12
  36. package/dist/cjs/layout/error/error.js +1 -2
  37. package/dist/cjs/layout/input/facets.js +28 -41
  38. package/dist/cjs/layout/input/option-list.js +1 -2
  39. package/dist/cjs/layout/input/search-box.js +30 -39
  40. package/dist/cjs/layout/input/select.js +1 -2
  41. package/dist/cjs/layout/list/cards.js +1 -2
  42. package/dist/cjs/layout/list/carousel.js +1 -2
  43. package/dist/cjs/layout/list/collection.js +12 -16
  44. package/dist/cjs/layout/list/gallery.js +18 -26
  45. package/dist/cjs/layout/list/list.js +1 -2
  46. package/dist/cjs/layout/mixin/swipeable.js +3 -4
  47. package/dist/cjs/layout/mixin/trackable.js +3 -6
  48. package/dist/cjs/layout/progressive.js +1 -2
  49. package/dist/cjs/layout/radio/feedback.js +6 -8
  50. package/dist/cjs/layout/radio/radio.js +5 -6
  51. package/dist/cjs/layout/raf.js +6 -10
  52. package/dist/cjs/layout/template.js +7 -10
  53. package/dist/cjs/layout/templates.js +51 -71
  54. package/dist/cjs/layout/text/text.js +6 -8
  55. package/dist/cjs/layout/text/typewriter/index.js +14 -18
  56. package/dist/cjs/layout/text/typewriter/plaintext.js +8 -10
  57. package/dist/cjs/layout/text/typewriter/utils.js +12 -15
  58. package/dist/cjs/plugin.js +13 -3
  59. package/dist/cjs/source.js +6 -7
  60. package/dist/cjs/util/dom.js +1 -2
  61. package/dist/cjs/util/proxy.js +3 -4
  62. package/dist/cjs/util/trackers.js +1 -3
  63. package/dist/cjs/util/viewables.js +1 -2
  64. package/dist/cjs/version.js +1 -1
  65. package/dist/cjs/workflow/answer-based.js +17 -24
  66. package/dist/cjs/workflow/ask.js +1 -2
  67. package/dist/cjs/workflow/asks.js +4 -6
  68. package/dist/cjs/workflow/autocomplete.js +3 -4
  69. package/dist/cjs/workflow/base.js +56 -54
  70. package/dist/cjs/workflow/explore.js +18 -22
  71. package/dist/cjs/workflow/explores.js +18 -0
  72. package/dist/cjs/workflow/hybrid-search-answer.js +4 -3
  73. package/dist/cjs/workflow/index.js +3 -3
  74. package/dist/cjs/workflow/options/api.js +2 -6
  75. package/dist/cjs/workflow/options/auto-query.js +2 -4
  76. package/dist/cjs/workflow/options/configurable.js +2 -6
  77. package/dist/cjs/workflow/options/data-processor.js +1 -4
  78. package/dist/cjs/workflow/options/filters.js +1 -4
  79. package/dist/cjs/workflow/options/interactions.js +1 -4
  80. package/dist/cjs/workflow/options/layouts.js +2 -6
  81. package/dist/cjs/workflow/options/options.js +5 -8
  82. package/dist/cjs/workflow/options/pagination.js +1 -4
  83. package/dist/cjs/workflow/options/roles.js +1 -3
  84. package/dist/cjs/workflow/options/trackers.js +6 -16
  85. package/dist/cjs/workflow/processors.js +16 -22
  86. package/dist/cjs/workflow/recommendation.js +9 -52
  87. package/dist/cjs/workflow/recommendations.js +3 -23
  88. package/dist/cjs/workflow/search-based.js +12 -8
  89. package/dist/cjs/workflow/search.js +1 -5
  90. package/dist/cjs/workflow/unit.js +58 -0
  91. package/dist/cjs/workflow/units.js +37 -0
  92. package/dist/cjs/workflow/use-link.js +3 -6
  93. package/package.json +2 -2
  94. package/src/actor/filters.js +4 -2
  95. package/src/actor/hub.js +26 -5
  96. package/src/element/container/miso-explore.js +8 -8
  97. package/src/element/container/miso-hybrid-search.js +4 -4
  98. package/src/element/container/miso-recommendation.js +3 -45
  99. package/src/element/container/miso-search.js +4 -4
  100. package/src/element/container/miso-unit.js +55 -0
  101. package/src/layout/radio/radio.js +1 -0
  102. package/src/layout/templates.js +3 -2
  103. package/src/plugin.js +15 -2
  104. package/src/version.js +1 -1
  105. package/src/workflow/autocomplete.js +1 -0
  106. package/src/workflow/base.js +33 -23
  107. package/src/workflow/explore.js +13 -12
  108. package/src/workflow/explores.js +14 -0
  109. package/src/workflow/hybrid-search-answer.js +1 -1
  110. package/src/workflow/index.js +1 -1
  111. package/src/workflow/processors.js +2 -2
  112. package/src/workflow/recommendation.js +9 -47
  113. package/src/workflow/recommendations.js +3 -23
  114. package/src/workflow/search-based.js +4 -0
  115. package/src/workflow/unit.js +52 -0
  116. package/src/workflow/units.js +37 -0
@@ -72,8 +72,7 @@ class SelectLayout extends _template.default {
72
72
  static get defaultClassName() {
73
73
  return DEFAULT_CLASSNAME;
74
74
  }
75
- constructor() {
76
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
+ constructor(_ref = {}) {
77
76
  let {
78
77
  className = DEFAULT_CLASSNAME,
79
78
  templates
@@ -20,8 +20,7 @@ class CardsLayout extends _collection.default {
20
20
  static get defaultClassName() {
21
21
  return DEFAULT_CLASSNAME;
22
22
  }
23
- constructor() {
24
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
+ constructor(_ref = {}) {
25
24
  let {
26
25
  className = DEFAULT_CLASSNAME
27
26
  } = _ref,
@@ -70,8 +70,7 @@ class CarouselLayout extends _collection.default {
70
70
  static get defaultClassName() {
71
71
  return DEFAULT_CLASSNAME;
72
72
  }
73
- constructor() {
74
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
73
+ constructor(_ref = {}) {
75
74
  let {
76
75
  className = DEFAULT_CLASSNAME,
77
76
  templates
@@ -54,10 +54,9 @@ function list(layout, state, values) {
54
54
  // TODO: support separator?
55
55
  return `<${listTag} class="${className}__list" data-role="list"${itemTypeAttr}>${templates.items(layout, state, values)}</${listTag}>`;
56
56
  }
57
- function items(layout, state, values) {
58
- let {
59
- offset = 0
60
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
57
+ function items(layout, state, values, {
58
+ offset = 0
59
+ } = {}) {
61
60
  const {
62
61
  templates
63
62
  } = layout;
@@ -139,11 +138,10 @@ class CollectionLayout extends _template.default {
139
138
  initialize(view) {
140
139
  this._unsubscribes.push(view.proxyElement.on('click', this._onClick.bind(this)));
141
140
  }
142
- _preprocess(_ref2) {
143
- let {
144
- state,
145
- rendered
146
- } = _ref2;
141
+ _preprocess({
142
+ state,
143
+ rendered
144
+ }) {
147
145
  const incremental = this._shallRenderIncrementally(state, rendered);
148
146
  const html = this._html(state, rendered, incremental);
149
147
  return Object.assign({}, state, {
@@ -166,13 +164,11 @@ class CollectionLayout extends _template.default {
166
164
  return this.templates.root(this, state);
167
165
  }
168
166
  }
169
- _render(element, _ref3, _ref4) {
170
- let {
171
- state
172
- } = _ref3;
173
- let {
174
- notifyUpdate
175
- } = _ref4;
167
+ _render(element, {
168
+ state
169
+ }, {
170
+ notifyUpdate
171
+ }) {
176
172
  const {
177
173
  incremental,
178
174
  html
@@ -55,8 +55,7 @@ class GalleryLayout extends _collection.default {
55
55
  static get defaultClassName() {
56
56
  return DEFAULT_CLASSNAME;
57
57
  }
58
- constructor() {
59
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
+ constructor(_ref = {}) {
60
59
  let {
61
60
  className = DEFAULT_CLASSNAME,
62
61
  templates
@@ -83,11 +82,10 @@ class GalleryLayout extends _collection.default {
83
82
  this._syncListAspectRatio(listElement);
84
83
  this._syncItemSizes(listElement);
85
84
  }
86
- _preprocess(_ref2) {
87
- let {
88
- state,
89
- rendered
90
- } = _ref2;
85
+ _preprocess({
86
+ state,
87
+ rendered
88
+ }) {
91
89
  const incremental = this._shallRenderIncrementally(state, rendered);
92
90
  const bodyHtml = incremental ? undefined : this._bodyHtml(state);
93
91
  const itemsHtml = this._itemsHtml(state, rendered);
@@ -119,10 +117,9 @@ class GalleryLayout extends _collection.default {
119
117
  this._syncListAspectRatio(listElement);
120
118
  this._renderItems(listElement, states, controls);
121
119
  }
122
- _renderListElement(element, _ref3) {
123
- let {
124
- state
125
- } = _ref3;
120
+ _renderListElement(element, {
121
+ state
122
+ }) {
126
123
  const {
127
124
  incremental,
128
125
  bodyHtml
@@ -139,20 +136,18 @@ class GalleryLayout extends _collection.default {
139
136
  this._updateItems(listElement, states);
140
137
  }
141
138
  }
142
- _updateItems(listElement, _ref4) {
143
- let {
144
- state
145
- } = _ref4;
139
+ _updateItems(listElement, {
140
+ state
141
+ }) {
146
142
  const {
147
143
  itemSizes
148
144
  } = this._galleryContext;
149
145
  const values = this._writeItemSizes(this._getItems(state) || [], itemSizes);
150
146
  listElement.innerHTML = this.templates.items(this, state, values);
151
147
  }
152
- _appendItems(listElement, _ref5) {
153
- let {
154
- state
155
- } = _ref5;
148
+ _appendItems(listElement, {
149
+ state
150
+ }) {
156
151
  const {
157
152
  itemSizes
158
153
  } = this._galleryContext;
@@ -165,9 +160,7 @@ class GalleryLayout extends _collection.default {
165
160
  offset
166
161
  }));
167
162
  }
168
- _writeItemSizes(values) {
169
- let [large = 0, medium = 0] = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
170
- let offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
163
+ _writeItemSizes(values, [large = 0, medium = 0] = [], offset = 0) {
171
164
  let omitted = 0;
172
165
  if (offset > 0) {
173
166
  omitted = Math.min(offset, large);
@@ -234,10 +227,9 @@ class GalleryLayout extends _collection.default {
234
227
  listElement.style.aspectRatio = `${columnCount} / 2`;
235
228
  listElement.style.height = itemCount > 0 ? 'auto' : '0';
236
229
  }
237
- _syncItemCount() {
238
- let {
239
- state
240
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
230
+ _syncItemCount({
231
+ state
232
+ } = {}) {
241
233
  const items = this._getItems(state);
242
234
  this._galleryContext.itemCount = items ? items.length : undefined;
243
235
  }
@@ -20,8 +20,7 @@ class ListLayout extends _collection.default {
20
20
  static get defaultClassName() {
21
21
  return DEFAULT_CLASSNAME;
22
22
  }
23
- constructor() {
24
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
+ constructor(_ref = {}) {
25
24
  let {
26
25
  className = DEFAULT_CLASSNAME
27
26
  } = _ref,
@@ -59,10 +59,9 @@ class SwipeableMixin {
59
59
  _afterRenderSwipeable() {
60
60
  this._emitSwipeableDisplayEvent();
61
61
  }
62
- _syncSwipeableItemCount() {
63
- let {
64
- state
65
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
+ _syncSwipeableItemCount({
63
+ state
64
+ } = {}) {
66
65
  const context = this._swipeableContext;
67
66
  const items = this._getItems(state);
68
67
  const oldItemCount = context.itemCount;
@@ -60,12 +60,9 @@ class TrackableMixin {
60
60
  if (!options) {
61
61
  return;
62
62
  }
63
- this._view.tracker.impression(entries.map(_ref => {
64
- let {
65
- value
66
- } = _ref;
67
- return value;
68
- }));
63
+ this._view.tracker.impression(entries.map(({
64
+ value
65
+ }) => value));
69
66
  }
70
67
  _untrackViewables(entries) {
71
68
  for (const {
@@ -14,8 +14,7 @@ class ProgressiveLayout extends _raf.default {
14
14
  _takePending() {
15
15
  return this._pending;
16
16
  }
17
- _applyRender(timestamp) {
18
- let extraControls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17
+ _applyRender(timestamp, extraControls = {}) {
19
18
  const loop = (0, _commons.capture)(false);
20
19
  super._applyRender(timestamp, Object.assign({}, extraControls, {
21
20
  loop: loop.t
@@ -21,10 +21,9 @@ function options(layout) {
21
21
  value
22
22
  })).join('');
23
23
  }
24
- function content(layout, _ref) {
25
- let {
26
- value
27
- } = _ref;
24
+ function content(layout, {
25
+ value
26
+ }) {
28
27
  const {
29
28
  className,
30
29
  templates,
@@ -70,13 +69,12 @@ class FeedbackLayout extends _radio.default {
70
69
  static get defaultClassName() {
71
70
  return DEFAULT_CLASSNAME;
72
71
  }
73
- constructor() {
74
- let _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
+ constructor(_ref = {}) {
75
73
  let {
76
74
  className = DEFAULT_CLASSNAME,
77
75
  templates
78
- } = _ref2,
79
- options = _objectWithoutPropertiesLoose(_ref2, _excluded);
76
+ } = _ref,
77
+ options = _objectWithoutPropertiesLoose(_ref, _excluded);
80
78
  super(Object.assign({
81
79
  className,
82
80
  templates: Object.assign({}, DEFAULT_TEMPLATES, templates),
@@ -42,8 +42,7 @@ class RadioLayout extends _template.default {
42
42
  static get defaultTemplates() {
43
43
  return DEFAULT_TEMPLATES;
44
44
  }
45
- constructor() {
46
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
45
+ constructor(_ref = {}) {
47
46
  let {
48
47
  className,
49
48
  templates,
@@ -63,6 +62,7 @@ class RadioLayout extends _template.default {
63
62
  proxyElement
64
63
  } = view;
65
64
  this._unsubscribes = [...this._unsubscribes, view.hub.on(this._field, () => this._refresh()), proxyElement.on('click', e => this._handleClick(e))];
65
+ // TODO: it shall not carry the responsibility of setting default value
66
66
  this._defaultValue ? this._select(this._defaultValue, {
67
67
  silent: true
68
68
  }) : this._clear({
@@ -75,10 +75,9 @@ class RadioLayout extends _template.default {
75
75
  }
76
76
  return super._preprocess(states, controls);
77
77
  }
78
- _handleClick(_ref2) {
79
- let {
80
- target
81
- } = _ref2;
78
+ _handleClick({
79
+ target
80
+ }) {
82
81
  const element = (0, _commons.findInAncestors)(target, element => element.hasAttribute('data-value') ? element : undefined);
83
82
  if (!element) {
84
83
  return;
@@ -8,8 +8,7 @@ var _commons = require("@miso.ai/commons");
8
8
  const _excluded = ["role", "workflow"];
9
9
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
10
10
  class RafLayout {
11
- constructor() {
12
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
+ constructor(_ref = {}) {
13
12
  let {
14
13
  role,
15
14
  workflow
@@ -26,8 +25,7 @@ class RafLayout {
26
25
  this._notifyUpdate = undefined;
27
26
  this._pending = undefined;
28
27
  }
29
- async render(element, state) {
30
- let controls = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
28
+ async render(element, state, controls = {}) {
31
29
  this._syncElement(element);
32
30
  const rendered = this._rendered.get(element);
33
31
  const skip = (0, _commons.capture)(false);
@@ -57,10 +55,9 @@ class RafLayout {
57
55
  }
58
56
  this._element = element;
59
57
  }
60
- _preprocess(_ref2) {
61
- let {
62
- state
63
- } = _ref2;
58
+ _preprocess({
59
+ state
60
+ }) {
64
61
  return state;
65
62
  }
66
63
  _updatePending(state, controls) {
@@ -88,8 +85,7 @@ class RafLayout {
88
85
  this._requested = false;
89
86
  this._applyRender(timestamp);
90
87
  }
91
- _applyRender(timestamp) {
92
- let extraControls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
88
+ _applyRender(timestamp, extraControls = {}) {
93
89
  if (!this._pending) {
94
90
  return; // just in case
95
91
  }
@@ -11,8 +11,7 @@ const _excluded = ["className", "templates"];
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
13
13
  class TemplateBasedLayout extends _raf.default {
14
- constructor() {
15
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14
+ constructor(_ref = {}) {
16
15
  let {
17
16
  className,
18
17
  templates
@@ -26,19 +25,17 @@ class TemplateBasedLayout extends _raf.default {
26
25
  })
27
26
  });
28
27
  }
29
- _preprocess(_ref2) {
30
- let {
31
- state
32
- } = _ref2;
28
+ _preprocess({
29
+ state
30
+ }) {
33
31
  const html = this.templates.root(this, state);
34
32
  return Object.assign({}, state, {
35
33
  html
36
34
  });
37
35
  }
38
- _render(element, _ref3) {
39
- let {
40
- state
41
- } = _ref3;
36
+ _render(element, {
37
+ state
38
+ }) {
42
39
  element.innerHTML = state.html;
43
40
  }
44
41
  }
@@ -29,10 +29,7 @@ var _commons = require("@miso.ai/commons");
29
29
  var _constants = require("../constants.js");
30
30
  const _excluded = ["classSuffix", "role"];
31
31
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
32
- function requiresImplementation() {
33
- for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {
34
- names[_key] = arguments[_key];
35
- }
32
+ function requiresImplementation(...names) {
36
33
  return names.reduce((acc, name) => {
37
34
  acc[name] = unimplemented(name);
38
35
  return acc;
@@ -107,49 +104,43 @@ function imageInfoBlock(layout, data, meta) {
107
104
  } = layout;
108
105
  return `<div class="${className}__item-info-container">${[(templates.titleBlock || titleBlock)(layout, data, meta)].join('')}</div>`;
109
106
  }
110
- function titleBlock(_ref, _ref2) {
111
- let {
112
- className
113
- } = _ref;
114
- let {
115
- title
116
- } = _ref2;
117
- return title ? `<div class="${className}__item-title">${(0, _commons.escapeHtml)(title)}</div>` : '';
107
+ function titleBlock({
108
+ className
109
+ }, {
110
+ title,
111
+ _title_with_markups
112
+ }) {
113
+ const text = _title_with_markups || (0, _commons.escapeHtml)(title);
114
+ return text ? `<div class="${className}__item-title">${text}</div>` : '';
118
115
  }
119
- function brandBlock(_ref3, _ref4) {
120
- let {
121
- className
122
- } = _ref3;
123
- let {
124
- brand,
125
- brand_logo
126
- } = _ref4;
116
+ function brandBlock({
117
+ className
118
+ }, {
119
+ brand,
120
+ brand_logo
121
+ }) {
127
122
  if (!brand && !brand_logo) {
128
123
  return '';
129
124
  }
130
125
  const content = brand_logo ? `<img class="${className}__item-brand-logo" src="${brand_logo}"${brand ? ` alt="${brand}"` : ''}>` : `<div class="${className}__item-brand">${brand}</div>`;
131
126
  return `<div class="${className}__item-brand-container">${content}</div>`;
132
127
  }
133
- function descriptionBlock(_ref5, _ref6) {
134
- let {
135
- className
136
- } = _ref5;
137
- let {
138
- snippet,
139
- description
140
- } = _ref6;
128
+ function descriptionBlock({
129
+ className
130
+ }, {
131
+ snippet,
132
+ description
133
+ }) {
141
134
  return snippet ? `<div class="${className}__item-snippet">${snippet}</div>` : description ? `<div class="${className}__item-desc">${(0, _commons.escapeHtml)(description)}</div>` : '';
142
135
  }
143
- function dateBlock(_ref7, _ref8) {
144
- let {
145
- className,
146
- templates
147
- } = _ref7;
148
- let {
149
- created_at,
150
- updated_at,
151
- published_at
152
- } = _ref8;
136
+ function dateBlock({
137
+ className,
138
+ templates
139
+ }, {
140
+ created_at,
141
+ updated_at,
142
+ published_at
143
+ }) {
153
144
  const date = published_at || created_at || updated_at;
154
145
  return date ? `<div class="${className}__item-date">${formatDate(date, templates.date)}</div>` : '';
155
146
  }
@@ -185,14 +176,12 @@ function priceBlock(layout, data) {
185
176
  }
186
177
  return `<div class="${className}__item-price-container">${content}</div>`;
187
178
  }
188
- function discountRateText(layout, _ref9) {
189
- let {
190
- discount_rate_percent
191
- } = _ref9;
179
+ function discountRateText(layout, {
180
+ discount_rate_percent
181
+ }) {
192
182
  return `(${discount_rate_percent}% off)`;
193
183
  }
194
- function imageBlock(layout, data) {
195
- let meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
184
+ function imageBlock(layout, data, meta = {}) {
196
185
  const {
197
186
  className,
198
187
  templates
@@ -210,13 +199,11 @@ function imageBlock(layout, data) {
210
199
  const brand = subtype === 'cover-image' && meta.brand ? (templates.brandBlock || brandBlock)(layout, data, meta) : '';
211
200
  return `<div class="${className}__item-${subtype}-container">${img}${brand}</div>`;
212
201
  }
213
- function indexBlock(_ref10, data, _ref11) {
214
- let {
215
- className
216
- } = _ref10;
217
- let {
218
- index
219
- } = _ref11;
202
+ function indexBlock({
203
+ className
204
+ }, data, {
205
+ index
206
+ }) {
220
207
  return `<div class="${className}__item-index-container"><span class="${className}__item-index miso-citation-index" data-index="${index + 1}"></span></div>`;
221
208
  }
222
209
  function ctaBlock(layout, data, meta) {
@@ -248,29 +235,25 @@ function cta(layout, data, meta) {
248
235
  }
249
236
 
250
237
  // helpers //
251
- function tagPair(_ref13, _ref14) {
252
- let {
253
- className,
254
- options = {}
255
- } = _ref13;
256
- let {
257
- product_id,
258
- url
259
- } = _ref14;
260
- let _ref12 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
238
+ function tagPair({
239
+ className,
240
+ options = {}
241
+ }, {
242
+ product_id,
243
+ url
244
+ }, _ref = {}) {
261
245
  let {
262
246
  classSuffix = 'item-body',
263
247
  role = 'item'
264
- } = _ref12,
265
- meta = _objectWithoutPropertiesLoose(_ref12, _excluded);
248
+ } = _ref,
249
+ meta = _objectWithoutPropertiesLoose(_ref, _excluded);
266
250
  const tag = meta.link !== false && url ? 'a' : 'div';
267
251
  const urlAttrs = meta.link !== false && url ? `href="${url}" ${linkAttrs(options.link)}` : '';
268
252
  const productAttrs = product_id ? `${_constants.ATTR_DATA_MISO_PRODUCT_ID}="${product_id}"` : '';
269
253
  const roleAttrs = role ? `data-role="${role}"` : '';
270
254
  return [`<${tag} class="${className}__${classSuffix}" ${roleAttrs} ${productAttrs} ${urlAttrs}>`, `</${tag}>`];
271
255
  }
272
- function linkAttrs() {
273
- let link = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
256
+ function linkAttrs(link = {}) {
274
257
  const {
275
258
  target = '_blank',
276
259
  rel = 'noopener',
@@ -294,8 +277,7 @@ const DEFAULT_DATE_OPTIONS = Object.freeze({
294
277
  day: 'numeric'
295
278
  });
296
279
  const DEFAULT_NUMBER_OPTIONS = 'en-US';
297
- function formatDate(date) {
298
- let fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_DATE_OPTIONS;
280
+ function formatDate(date, fn = DEFAULT_DATE_OPTIONS) {
299
281
  switch (typeof fn) {
300
282
  case 'function':
301
283
  return fn(date);
@@ -307,8 +289,7 @@ function formatDate(date) {
307
289
  throw new Error(`Invalid date format: ${fn}`);
308
290
  }
309
291
  }
310
- function formatNumber(number) {
311
- let fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_NUMBER_OPTIONS;
292
+ function formatNumber(number, fn = DEFAULT_NUMBER_OPTIONS) {
312
293
  switch (typeof fn) {
313
294
  case 'function':
314
295
  return fn(number);
@@ -320,8 +301,7 @@ function formatNumber(number) {
320
301
  throw new Error(`Invalid number format: ${fn}`);
321
302
  }
322
303
  }
323
- function asFunction() {
324
- let template = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
304
+ function asFunction(template = '') {
325
305
  return typeof template === 'function' ? template : () => template;
326
306
  }
327
307
  const helpers = exports.helpers = Object.freeze({
@@ -11,10 +11,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
11
11
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
12
12
  const TYPE = 'text';
13
13
  const DEFAULT_CLASSNAME = 'miso-text';
14
- function root(layout, _ref) {
15
- let {
16
- value
17
- } = _ref;
14
+ function root(layout, {
15
+ value
16
+ }) {
18
17
  const {
19
18
  className,
20
19
  role,
@@ -68,14 +67,13 @@ class TextLayout extends _template.default {
68
67
  static get defaultClassName() {
69
68
  return DEFAULT_CLASSNAME;
70
69
  }
71
- constructor() {
72
- let _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
70
+ constructor(_ref = {}) {
73
71
  let {
74
72
  className = DEFAULT_CLASSNAME,
75
73
  templates,
76
74
  tag = 'p'
77
- } = _ref2,
78
- options = _objectWithoutPropertiesLoose(_ref2, _excluded);
75
+ } = _ref,
76
+ options = _objectWithoutPropertiesLoose(_ref, _excluded);
79
77
  super(Object.assign({
80
78
  className,
81
79
  templates: Object.assign({}, DEFAULT_TEMPLATES, templates),
@@ -21,8 +21,7 @@ class TypewriterLayout extends _progressive.default {
21
21
  static get defaultClassName() {
22
22
  return DEFAULT_CLASSNAME;
23
23
  }
24
- constructor() {
25
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
+ constructor(_ref = {}) {
26
25
  let {
27
26
  className = DEFAULT_CLASSNAME,
28
27
  tag = 'auto',
@@ -111,14 +110,13 @@ class TypewriterLayout extends _progressive.default {
111
110
  }
112
111
 
113
112
  // render //
114
- async render() {
113
+ async render(...args) {
115
114
  await this._ready();
116
- await super.render(...arguments);
115
+ await super.render(...args);
117
116
  }
118
- _preprocess(_ref2) {
119
- let {
120
- state
121
- } = _ref2;
117
+ _preprocess({
118
+ state
119
+ }) {
122
120
  const prev = this._prevState;
123
121
  const {
124
122
  value = '',
@@ -143,16 +141,14 @@ class TypewriterLayout extends _progressive.default {
143
141
  done
144
142
  }));
145
143
  }
146
- _render(element, _ref3, _ref4) {
147
- let {
148
- state,
149
- rendered
150
- } = _ref3;
151
- let {
152
- notifyUpdate,
153
- writeToState,
154
- loop
155
- } = _ref4;
144
+ _render(element, {
145
+ state,
146
+ rendered
147
+ }, {
148
+ notifyUpdate,
149
+ writeToState,
150
+ loop
151
+ }) {
156
152
  const container = (0, _utils.containerElement)(this, element, state);
157
153
  // TODO: distinguish between first render and element replacement
158
154
  let result;