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

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
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "Asks", {
9
9
  return _asks.default;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "Explore", {
12
+ Object.defineProperty(exports, "Explores", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _explore.default;
15
+ return _explores.default;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "HybridSearch", {
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Search", {
35
35
  });
36
36
  var _asks = _interopRequireDefault(require("./asks.js"));
37
37
  var _hybridSearch = _interopRequireDefault(require("./hybrid-search.js"));
38
- var _explore = _interopRequireDefault(require("./explore.js"));
39
38
  var _search = _interopRequireDefault(require("./search.js"));
40
39
  var _recommendations = _interopRequireDefault(require("./recommendations.js"));
40
+ var _explores = _interopRequireDefault(require("./explores.js"));
41
41
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -7,8 +7,7 @@ exports.mergeApiOptions = mergeApiOptions;
7
7
  exports.normalizeApiOptions = normalizeApiOptions;
8
8
  var _commons = require("@miso.ai/commons");
9
9
  var _utils = require("./utils.js");
10
- function normalizeApiOptions() {
11
- let [name, payload] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
10
+ function normalizeApiOptions([name, payload] = []) {
12
11
  // TODO: take object form as well
13
12
  if (name === false) {
14
13
  return {
@@ -32,10 +31,7 @@ function normalizeApiOptions() {
32
31
  payload
33
32
  });
34
33
  }
35
- function mergeApiOptions() {
36
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
37
- optionsList[_key] = arguments[_key];
38
- }
34
+ function mergeApiOptions(...optionsList) {
39
35
  if (optionsList[optionsList.length - 1] === false) {
40
36
  return false;
41
37
  }
@@ -12,8 +12,7 @@ const _excluded = ["setValue", "focus", "updateUrl", "param", "sourceParam"];
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
  const DEFAULT_AUTO_QUERY_PARAM = exports.DEFAULT_AUTO_QUERY_PARAM = 'q';
14
14
  const DEFAULT_AUTO_QUERY_SOURCE_PARAM = exports.DEFAULT_AUTO_QUERY_SOURCE_PARAM = 'qs';
15
- function normalizeAutoQueryOptions() {
16
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
+ function normalizeAutoQueryOptions(_ref = {}) {
17
16
  let {
18
17
  setValue = true,
19
18
  focus = true,
@@ -30,8 +29,7 @@ function normalizeAutoQueryOptions() {
30
29
  sourceParam
31
30
  }, options);
32
31
  }
33
- function autoQuery() {
34
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
32
+ function autoQuery(options = {}) {
35
33
  // TODO: support getting value from URL path
36
34
  const {
37
35
  setValue,
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.makeConfigurable = makeConfigurable;
7
7
  var _constants = require("../../constants.js");
8
8
  const DEFAULT_FEATURES = [_constants.WORKFLOW_CONFIGURABLE.API, _constants.WORKFLOW_CONFIGURABLE.LAYOUTS, _constants.WORKFLOW_CONFIGURABLE.DATA_PROCESSOR, _constants.WORKFLOW_CONFIGURABLE.TRACKERS, _constants.WORKFLOW_CONFIGURABLE.INTERACTIONS];
9
- function makeConfigurable(prototype) {
10
- let features = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_FEATURES;
9
+ function makeConfigurable(prototype, features = DEFAULT_FEATURES) {
11
10
  for (const feature of features) {
12
11
  injectConfigurableFeature(prototype, feature);
13
12
  }
@@ -15,10 +14,7 @@ function makeConfigurable(prototype) {
15
14
  function injectConfigurableFeature(prototype, feature) {
16
15
  if (feature === 'api') {
17
16
  Object.assign(prototype, {
18
- useApi() {
19
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
20
- args[_key] = arguments[_key];
21
- }
17
+ useApi(...args) {
22
18
  this._options.api.merge(args);
23
19
  return this;
24
20
  },
@@ -15,9 +15,6 @@ function normalizeDataProcessorOptions(fns) {
15
15
  }
16
16
  return fns;
17
17
  }
18
- function mergeDataProcessorOptions() {
19
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
20
- optionsList[_key] = arguments[_key];
21
- }
18
+ function mergeDataProcessorOptions(...optionsList) {
22
19
  return optionsList.flat().filter(Boolean);
23
20
  }
@@ -7,10 +7,7 @@ exports.mergeFiltersOptions = mergeFiltersOptions;
7
7
  exports.normalizeFiltersOptions = void 0;
8
8
  var _utils = require("./utils.js");
9
9
  const normalizeFiltersOptions = exports.normalizeFiltersOptions = _utils.normalizeOptions;
10
- function mergeFiltersOptions() {
11
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
12
- optionsList[_key] = arguments[_key];
13
- }
10
+ function mergeFiltersOptions(...optionsList) {
14
11
  if (optionsList[optionsList.length - 1] === false) {
15
12
  return false;
16
13
  }
@@ -31,10 +31,7 @@ function normalizeInteractionsOptions(options) {
31
31
  preprocess
32
32
  });
33
33
  }
34
- function mergeInteractionsOptions() {
35
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
36
- optionsList[_key] = arguments[_key];
37
- }
34
+ function mergeInteractionsOptions(...optionsList) {
38
35
  if (optionsList[optionsList.length - 1] === false) {
39
36
  return false;
40
37
  }
@@ -10,8 +10,7 @@ var _constants = require("../../constants.js");
10
10
  var _utils = require("./utils.js");
11
11
  const _excluded = ["results"];
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
- function normalizeLayoutsOptions() {
14
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
+ function normalizeLayoutsOptions(options = {}) {
15
14
  if (options === false) {
16
15
  return false;
17
16
  }
@@ -54,10 +53,7 @@ function normalizeLayoutOptions(args) {
54
53
  }
55
54
  return [name, options];
56
55
  }
57
- function mergeLayoutsOptions() {
58
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
59
- optionsList[_key] = arguments[_key];
60
- }
56
+ function mergeLayoutsOptions(...optionsList) {
61
57
  if (optionsList[optionsList.length - 1] === false) {
62
58
  return false;
63
59
  }
@@ -56,9 +56,7 @@ class WorkflowContextOptions {
56
56
  }
57
57
  exports.WorkflowContextOptions = WorkflowContextOptions;
58
58
  class WorkflowOptions {
59
- constructor() {
60
- let context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
61
- let defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
59
+ constructor(context = {}, defaults = {}) {
62
60
  this._events = new _commons.EventEmitter({
63
61
  target: this
64
62
  });
@@ -93,11 +91,10 @@ class ResolvedWorkflowOptions {
93
91
  _invalidate(key) {
94
92
  this._cache[key] = undefined;
95
93
  }
96
- _get(_ref) {
97
- let {
98
- key,
99
- merge
100
- } = _ref;
94
+ _get({
95
+ key,
96
+ merge
97
+ }) {
101
98
  if (this._cache[key] === undefined) {
102
99
  const options = this._options;
103
100
  const contextFeature = options._context[key];
@@ -17,10 +17,7 @@ function normalizePaginationOptions(options) {
17
17
  }
18
18
  return options;
19
19
  }
20
- function mergePaginationOptions() {
21
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
22
- optionsList[_key] = arguments[_key];
23
- }
20
+ function mergePaginationOptions(...optionsList) {
24
21
  if (optionsList[optionsList.length - 1] === false) {
25
22
  return false;
26
23
  }
@@ -10,8 +10,6 @@ function mergeRolesOptions(base, overrides) {
10
10
  mappings: Object.freeze(Object.assign({}, base.mappings, overrides.mappings))
11
11
  }));
12
12
  }
13
- function mergeRolesMembers() {
14
- let base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15
- let overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
13
+ function mergeRolesMembers(base = [], overrides = []) {
16
14
  return [...new Set([...base, ...overrides])];
17
15
  }
@@ -26,8 +26,7 @@ const DEFAULT_TRACKER_OPTIONS = exports.DEFAULT_TRACKER_OPTIONS = Object.freeze(
26
26
  lenient: false
27
27
  })
28
28
  });
29
- function normalizeTrackersOptions() {
30
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
+ function normalizeTrackersOptions(options = {}) {
31
30
  options = (0, _utils.normalizeOptions)(options);
32
31
  const {
33
32
  active
@@ -41,8 +40,7 @@ function normalizeTrackersOptions() {
41
40
  active
42
41
  }, normalized);
43
42
  }
44
- function normalizeTrackerOptions() {
45
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
43
+ function normalizeTrackerOptions(options = {}) {
46
44
  options = (0, _utils.normalizeOptions)(options);
47
45
  const rest = _objectWithoutPropertiesLoose(options, _excluded2);
48
46
  const normalized = {};
@@ -51,15 +49,11 @@ function normalizeTrackerOptions() {
51
49
  }
52
50
  return options;
53
51
  }
54
- function normalizeTrackerEventOptions() {
55
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
+ function normalizeTrackerEventOptions(options = {}) {
56
53
  options = (0, _utils.normalizeOptions)(options);
57
54
  return options;
58
55
  }
59
- function mergeTrackersOptions() {
60
- for (var _len = arguments.length, optionsList = new Array(_len), _key = 0; _key < _len; _key++) {
61
- optionsList[_key] = arguments[_key];
62
- }
56
+ function mergeTrackersOptions(...optionsList) {
63
57
  // TODO: should be able to remove this
64
58
  if (optionsList[optionsList.length - 1] === false) {
65
59
  return false;
@@ -74,9 +68,7 @@ function mergeTrackersOptions() {
74
68
  return merged;
75
69
  });
76
70
  }
77
- function mergeTrackerOptions() {
78
- let base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
79
- let overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
71
+ function mergeTrackerOptions(base = {}, overrides = {}) {
80
72
  const merged = Object.assign({}, base);
81
73
  for (const [key, args] of Object.entries(overrides)) {
82
74
  if (args === undefined) {
@@ -86,8 +78,6 @@ function mergeTrackerOptions() {
86
78
  }
87
79
  return merged;
88
80
  }
89
- function mergeTrackerEventOptions() {
90
- let base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
91
- let overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
81
+ function mergeTrackerEventOptions(base = {}, overrides = {}) {
92
82
  return Object.assign({}, base, overrides);
93
83
  }
@@ -23,11 +23,10 @@ var _commons = require("@miso.ai/commons");
23
23
  var _constants = require("../constants.js");
24
24
  var _index = require("../actor/index.js");
25
25
  // role mappings //
26
- function mappingSortData(_) {
27
- let {
28
- hub,
29
- workflowOptions = {}
30
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26
+ function mappingSortData(_, {
27
+ hub,
28
+ workflowOptions = {}
29
+ } = {}) {
31
30
  const {
32
31
  sort: {
33
32
  options = []
@@ -209,10 +208,9 @@ function retainFacetCountsInData(data, currentFacetCounts) {
209
208
  })
210
209
  });
211
210
  }
212
- function concatItemsFromMoreResponse(oldData, newData) {
213
- let {
214
- role = _constants.ROLE.PRODUCTS
215
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
211
+ function concatItemsFromMoreResponse(oldData, newData, {
212
+ role = _constants.ROLE.PRODUCTS
213
+ } = {}) {
216
214
  if (!newData.value) {
217
215
  return oldData;
218
216
  }
@@ -229,17 +227,16 @@ function concatItemsFromMoreResponse(oldData, newData) {
229
227
 
230
228
  // use old values of facet_counts and total, for they are affected by product_id exclusion
231
229
  return Object.assign({}, newData, {
232
- facet_counts,
233
- total,
234
230
  value: Object.assign({}, newData.value, {
231
+ facet_counts,
232
+ total,
235
233
  [role]: [...oldProducts, ...newProducts]
236
234
  })
237
235
  });
238
236
  }
239
- function writeExhaustionToData(data) {
240
- let {
241
- role = _constants.ROLE.PRODUCTS
242
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
237
+ function writeExhaustionToData(data, {
238
+ role = _constants.ROLE.PRODUCTS
239
+ } = {}) {
243
240
  const {
244
241
  status,
245
242
  request,
@@ -324,10 +321,9 @@ function writeAffiliationInfoToInteraction(payload, args) {
324
321
  }
325
322
  });
326
323
  }
327
- function writeEventTargetToInteraction(payload) {
328
- let {
329
- event_target
330
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
324
+ function writeEventTargetToInteraction(payload, {
325
+ event_target
326
+ } = {}) {
331
327
  if (!event_target) {
332
328
  return payload;
333
329
  }
@@ -339,9 +335,7 @@ function writeEventTargetToInteraction(payload) {
339
335
  }
340
336
  });
341
337
  }
342
- function mergeInteraction() {
343
- let base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
344
- let patch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
338
+ function mergeInteraction(base = {}, patch = {}) {
345
339
  return (0, _commons.trimObj)(Object.assign({}, base, patch, {
346
340
  context: (0, _commons.trimObj)(Object.assign({}, base.context, patch.context, {
347
341
  custom_context: (0, _commons.trimObj)(Object.assign({}, base.context && base.context.custom_context, patch.context && patch.context.custom_context))
@@ -5,35 +5,34 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
- var _base = _interopRequireDefault(require("./base.js"));
8
+ var _unit = _interopRequireDefault(require("./unit.js"));
9
9
  var _index = require("../layout/index.js");
10
10
  var _constants = require("../constants.js");
11
11
  var _index2 = require("./options/index.js");
12
- var _processors = require("./processors.js");
13
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- const DEFAULT_API_OPTIONS = Object.freeze(Object.assign({}, _base.default.DEFAULT_API_OPTIONS, {
13
+ const DEFAULT_API_OPTIONS = Object.freeze(Object.assign({}, _unit.default.DEFAULT_API_OPTIONS, {
15
14
  group: _commons.API.GROUP.RECOMMENDATION,
16
15
  name: _commons.API.NAME.USER_TO_PRODUCTS,
17
- payload: Object.assign({}, _base.default.DEFAULT_API_OPTIONS.payload, {
16
+ payload: Object.assign({}, _unit.default.DEFAULT_API_OPTIONS.payload, {
18
17
  fl: ['*']
19
18
  })
20
19
  }));
21
- const DEFAULT_LAYOUTS = Object.freeze(Object.assign({}, _base.default.DEFAULT_LAYOUTS, {
20
+ const DEFAULT_LAYOUTS = Object.freeze(Object.assign({}, _unit.default.DEFAULT_LAYOUTS, {
22
21
  [_constants.ROLE.PRODUCTS]: _index.ListLayout.type
23
22
  }));
24
- const DEFAULT_TRACKERS = Object.freeze(Object.assign({}, _base.default.DEFAULT_TRACKERS, {
23
+ const DEFAULT_TRACKERS = Object.freeze(Object.assign({}, _unit.default.DEFAULT_TRACKERS, {
25
24
  [_constants.ROLE.PRODUCTS]: _index2.DEFAULT_TRACKER_OPTIONS
26
25
  }));
27
- const DEFAULT_OPTIONS = Object.freeze(Object.assign({}, _base.default.DEFAULT_OPTIONS, {
26
+ const DEFAULT_OPTIONS = Object.freeze(Object.assign({}, _unit.default.DEFAULT_OPTIONS, {
28
27
  api: DEFAULT_API_OPTIONS,
29
28
  layouts: DEFAULT_LAYOUTS,
30
29
  trackers: DEFAULT_TRACKERS
31
30
  }));
32
- const ROLES_OPTIONS = (0, _index2.mergeRolesOptions)(_base.default.ROLES_OPTIONS, {
31
+ const ROLES_OPTIONS = (0, _index2.mergeRolesOptions)(_unit.default.ROLES_OPTIONS, {
33
32
  main: _constants.ROLE.PRODUCTS,
34
33
  members: Object.keys(DEFAULT_LAYOUTS)
35
34
  });
36
- class Recommendation extends _base.default {
35
+ class Recommendation extends _unit.default {
37
36
  constructor(context, id) {
38
37
  super({
39
38
  name: 'recommendation',
@@ -43,19 +42,6 @@ class Recommendation extends _base.default {
43
42
  id
44
43
  });
45
44
  }
46
- _initProperties(args) {
47
- super._initProperties(args);
48
- const {
49
- id
50
- } = args;
51
- (0, _commons.defineValues)(this, {
52
- id
53
- });
54
- }
55
- _initSession(args) {
56
- this._context._members.set(args.id, this);
57
- super._initSession(args);
58
- }
59
45
 
60
46
  // lifecycle //
61
47
  start() {
@@ -63,38 +49,9 @@ class Recommendation extends _base.default {
63
49
  this._request();
64
50
  return this;
65
51
  }
66
- notifyViewUpdate() {
67
- let role = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ROLE.PRODUCTS;
68
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
69
- args[_key - 1] = arguments[_key];
70
- }
52
+ notifyViewUpdate(role = _constants.ROLE.PRODUCTS, ...args) {
71
53
  super.notifyViewUpdate(role, ...args);
72
54
  return this;
73
55
  }
74
-
75
- // interactions //
76
- _defaultProcessInteraction(payload, args) {
77
- payload = super._defaultProcessInteraction(payload, args);
78
- payload = this._writeUnitIdToInteraction(payload, args);
79
- return payload;
80
- }
81
- _writeUnitIdToInteraction(payload) {
82
- const unit_id = this.id;
83
- const unit_instance_uuid = this.uuid;
84
- return (0, _processors.mergeInteraction)(payload, {
85
- context: {
86
- custom_context: {
87
- unit_id,
88
- unit_instance_uuid
89
- }
90
- }
91
- });
92
- }
93
-
94
- // destroy //
95
- _destroy(options) {
96
- this._context._members.delete(this.id);
97
- super._destroy(options);
98
- }
99
56
  }
100
57
  exports.default = Recommendation;
@@ -4,35 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _constants = require("../constants.js");
8
- var _context = _interopRequireDefault(require("./context.js"));
7
+ var _units = _interopRequireDefault(require("./units.js"));
9
8
  var _recommendation = _interopRequireDefault(require("./recommendation.js"));
10
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- class Recommendations extends _context.default {
10
+ class Recommendations extends _units.default {
12
11
  constructor(plugin, client) {
13
12
  super('recommendations', plugin, client);
14
- this._members = new Map();
15
13
  }
16
- workflows() {
17
- return [...this._members.values()];
18
- }
19
- create() {
20
- let unitId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_UNIT_ID;
21
- if (this._members.has(unitId)) {
22
- throw new Error(`Unit already exists: ${unitId}`);
23
- }
14
+ _create(unitId) {
24
15
  return new _recommendation.default(this, unitId);
25
16
  }
26
- has() {
27
- let unitId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_UNIT_ID;
28
- return this._members.has(unitId);
29
- }
30
- get() {
31
- let unitId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_UNIT_ID;
32
- if (typeof unitId !== 'string') {
33
- throw new Error(`Required unit ID to be a string: ${unitId}`);
34
- }
35
- return this._members.get(unitId) || new _recommendation.default(this, unitId);
36
- }
37
17
  }
38
18
  exports.default = Recommendations;
@@ -80,8 +80,7 @@ class SearchBasedWorkflow extends _base.default {
80
80
  }
81
81
 
82
82
  // query //
83
- autoQuery() {
84
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
83
+ autoQuery(options = {}) {
85
84
  _index3.autoQuery.call(this, options);
86
85
  }
87
86
  query(args) {
@@ -94,6 +93,11 @@ class SearchBasedWorkflow extends _base.default {
94
93
  // keep track of the query args for refine and more calls
95
94
  this._queryArgs = args;
96
95
 
96
+ // reset filters view
97
+ this._views.filters.reset({
98
+ silent: true
99
+ });
100
+
97
101
  // start a new session
98
102
  this.restart();
99
103
 
@@ -120,6 +124,8 @@ class SearchBasedWorkflow extends _base.default {
120
124
  payload
121
125
  });
122
126
  }
127
+
128
+ // TODO: expose API
123
129
  _more() {
124
130
  // if still loading, complain
125
131
  if (this.status !== _constants.STATUS.READY) {
@@ -193,8 +199,7 @@ class SearchBasedWorkflow extends _base.default {
193
199
  })
194
200
  });
195
201
  }
196
- _processPayloadForMoreRequest() {
197
- let payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
202
+ _processPayloadForMoreRequest(payload = {}) {
198
203
  const data = this._hub.states[_index.fields.data()];
199
204
  const {
200
205
  [this._roles.main]: items = []
@@ -244,10 +249,9 @@ class SearchBasedWorkflow extends _base.default {
244
249
  }
245
250
 
246
251
  // view actions //
247
- _handleSortSelect() {
248
- let {
249
- value
250
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
252
+ _handleSortSelect({
253
+ value
254
+ } = {}) {
251
255
  if (!value) {
252
256
  return;
253
257
  }
@@ -49,11 +49,7 @@ class Search extends _searchBased.default {
49
49
  super._initProperties(args);
50
50
  this._initAutocomplete(args);
51
51
  }
52
- notifyViewUpdate() {
53
- let role = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ROLE.PRODUCTS;
54
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
55
- args[_key - 1] = arguments[_key];
56
- }
52
+ notifyViewUpdate(role = _constants.ROLE.PRODUCTS, ...args) {
57
53
  super.notifyViewUpdate(role, ...args);
58
54
  return this;
59
55
  }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commons = require("@miso.ai/commons");
8
+ var _base = _interopRequireDefault(require("./base.js"));
9
+ var _processors = require("./processors.js");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ class UnitWorkflow extends _base.default {
12
+ _initProperties(args) {
13
+ super._initProperties(args);
14
+ const {
15
+ id
16
+ } = args;
17
+ (0, _commons.defineValues)(this, {
18
+ id
19
+ });
20
+ }
21
+ _initSession(args) {
22
+ this._context._members.set(args.id, this);
23
+ super._initSession(args);
24
+ }
25
+
26
+ // interactions //
27
+ _defaultProcessInteraction(payload, args) {
28
+ payload = super._defaultProcessInteraction(payload, args);
29
+ payload = this._writeUnitIdToInteraction(payload, args);
30
+ return payload;
31
+ }
32
+ _writeUnitIdToInteraction(payload) {
33
+ const unit_id = this.id;
34
+ const unit_instance_uuid = this.uuid;
35
+ return (0, _processors.mergeInteraction)(payload, {
36
+ context: {
37
+ custom_context: {
38
+ unit_id,
39
+ unit_instance_uuid
40
+ }
41
+ }
42
+ });
43
+ }
44
+
45
+ // destroy //
46
+ _destroy(options) {
47
+ this._context._members.delete(this.id);
48
+ super._destroy(options);
49
+ }
50
+ }
51
+ exports.default = UnitWorkflow;
52
+ Object.assign(UnitWorkflow, {
53
+ DEFAULT_API_OPTIONS: _base.default.DEFAULT_API_OPTIONS,
54
+ DEFAULT_LAYOUTS: _base.default.DEFAULT_LAYOUTS,
55
+ DEFAULT_TRACKERS: _base.default.DEFAULT_TRACKERS,
56
+ DEFAULT_OPTIONS: _base.default.DEFAULT_OPTIONS,
57
+ ROLES_OPTIONS: _base.default.ROLES_OPTIONS
58
+ });
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("../constants.js");
8
+ var _context = _interopRequireDefault(require("./context.js"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class UnitWorkflowContext extends _context.default {
11
+ constructor(name, plugin, client) {
12
+ super(name, plugin, client);
13
+ this._members = new Map();
14
+ }
15
+ workflows() {
16
+ return [...this._members.values()];
17
+ }
18
+ create(unitId = _constants.DEFAULT_UNIT_ID) {
19
+ if (this._members.has(unitId)) {
20
+ throw new Error(`Unit already exists: ${unitId}`);
21
+ }
22
+ return this._create(unitId);
23
+ }
24
+ has(unitId = _constants.DEFAULT_UNIT_ID) {
25
+ return this._members.has(unitId);
26
+ }
27
+ get(unitId = _constants.DEFAULT_UNIT_ID) {
28
+ if (typeof unitId !== 'string') {
29
+ throw new Error(`Required unit ID to be a string: ${unitId}`);
30
+ }
31
+ return this._members.get(unitId) || this._create(unitId);
32
+ }
33
+ _create(unitId) {
34
+ throw new Error('Not implemented');
35
+ }
36
+ }
37
+ exports.default = UnitWorkflowContext;
@@ -12,16 +12,14 @@ function enableUseLink(prototype) {
12
12
  (0, _commons.mixin)(prototype, UseLinkMixin.prototype);
13
13
  }
14
14
  class UseLinkMixin {
15
- useLink(fn) {
16
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15
+ useLink(fn, options = {}) {
17
16
  if (typeof fn !== 'function' && fn !== false) {
18
17
  throw new Error('useLink(fn) expects fn to be a function or false');
19
18
  }
20
19
  this._linkFn = fn ? [fn, options] : false;
21
20
  return this;
22
21
  }
23
- _submitToPage() {
24
- let args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
+ _submitToPage(args = {}) {
25
23
  if (!this._linkFn) {
26
24
  return;
27
25
  }
@@ -36,8 +34,7 @@ class UseLinkMixin {
36
34
  window.open(url, target, windowFeatures);
37
35
  }
38
36
  }
39
- _getSubmitUrl() {
40
- let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37
+ _getSubmitUrl(_ref = {}) {
41
38
  let {
42
39
  q
43
40
  } = _ref,