@miso.ai/client-sdk-ui 1.12.7 → 1.13.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/actor/index.js +21 -7
- package/dist/cjs/actor/trackers.js +19 -4
- package/dist/cjs/actor/view.js +7 -19
- package/dist/cjs/actor/views.js +38 -100
- package/dist/cjs/element/container/miso-container.js +4 -0
- package/dist/cjs/layout/affiliation/affiliation.js +1 -1
- package/dist/cjs/layout/button/more-button.js +2 -1
- package/dist/cjs/layout/container/container.js +10 -5
- package/dist/cjs/layout/input/option-list.js +1 -1
- package/dist/cjs/layout/input/search-box.js +2 -2
- package/dist/cjs/layout/input/select.js +1 -1
- package/dist/cjs/layout/list/collection.js +1 -1
- package/dist/cjs/layout/mixin/swipeable.js +1 -1
- package/dist/cjs/layout/text/typewriter/index.js +3 -3
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/answer-based.js +19 -1
- package/dist/cjs/workflow/ask.js +8 -10
- package/dist/cjs/workflow/base.js +6 -2
- package/dist/cjs/workflow/explore.js +1 -1
- package/dist/cjs/workflow/hybrid-search-views.js +9 -15
- package/dist/cjs/workflow/options/auto-query.js +4 -4
- package/dist/cjs/workflow/search-based.js +1 -1
- package/package.json +2 -2
- package/src/actor/index.js +1 -1
- package/src/actor/trackers.js +19 -4
- package/src/actor/view.js +10 -14
- package/src/actor/views.js +42 -96
- package/src/element/container/miso-container.js +5 -0
- package/src/layout/affiliation/affiliation.js +1 -1
- package/src/layout/button/more-button.js +2 -1
- package/src/layout/container/container.js +7 -6
- package/src/layout/input/option-list.js +1 -1
- package/src/layout/input/search-box.js +2 -2
- package/src/layout/input/select.js +1 -1
- package/src/layout/list/collection.js +3 -3
- package/src/layout/mixin/swipeable.js +2 -2
- package/src/layout/text/typewriter/index.js +3 -3
- package/src/version.js +1 -1
- package/src/workflow/answer-based.js +14 -2
- package/src/workflow/ask.js +10 -13
- package/src/workflow/base.js +5 -4
- package/src/workflow/explore.js +1 -1
- package/src/workflow/hybrid-search-views.js +11 -12
- package/src/workflow/options/auto-query.js +4 -2
- package/src/workflow/search-based.js +1 -1
package/dist/cjs/actor/index.js
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
fields: true,
|
|
8
|
+
Hub: true,
|
|
9
|
+
SessionMaker: true,
|
|
10
|
+
DataActor: true,
|
|
11
|
+
ViewsActor: true,
|
|
12
|
+
FeedbackActor: true,
|
|
13
|
+
InteractionsActor: true
|
|
14
|
+
};
|
|
6
15
|
Object.defineProperty(exports, "DataActor", {
|
|
7
16
|
enumerable: true,
|
|
8
17
|
get: function () {
|
|
@@ -33,12 +42,6 @@ Object.defineProperty(exports, "SessionMaker", {
|
|
|
33
42
|
return _sessions.default;
|
|
34
43
|
}
|
|
35
44
|
});
|
|
36
|
-
Object.defineProperty(exports, "TrackersActor", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _trackers.default;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
45
|
Object.defineProperty(exports, "ViewsActor", {
|
|
43
46
|
enumerable: true,
|
|
44
47
|
get: function () {
|
|
@@ -53,7 +56,18 @@ var _sessions = _interopRequireDefault(require("./sessions.js"));
|
|
|
53
56
|
var _data = _interopRequireDefault(require("./data.js"));
|
|
54
57
|
var _views = _interopRequireDefault(require("./views.js"));
|
|
55
58
|
var _feedback = _interopRequireDefault(require("./feedback.js"));
|
|
56
|
-
var _trackers = _interopRequireDefault(require("./trackers.js"));
|
|
57
59
|
var _interactions = _interopRequireDefault(require("./interactions.js"));
|
|
60
|
+
var _trackers = require("./trackers.js");
|
|
61
|
+
Object.keys(_trackers).forEach(function (key) {
|
|
62
|
+
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
64
|
+
if (key in exports && exports[key] === _trackers[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _trackers[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
58
72
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
59
73
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -3,25 +3,30 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.TrackersActor = void 0;
|
|
7
|
+
exports.proxyTrackers = proxyTrackers;
|
|
7
8
|
var _constants = require("../constants.js");
|
|
8
9
|
var _tracker = _interopRequireDefault(require("./tracker.js"));
|
|
9
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
class TrackersActor {
|
|
11
12
|
constructor(hub, {
|
|
13
|
+
roles,
|
|
12
14
|
options
|
|
13
15
|
}) {
|
|
14
16
|
this._hub = hub;
|
|
17
|
+
this._roles = roles;
|
|
15
18
|
this._options = options;
|
|
16
19
|
this._trackers = {};
|
|
17
20
|
}
|
|
18
21
|
get(role) {
|
|
22
|
+
if (!this._roles.members.includes(role)) {
|
|
23
|
+
throw new Error(`Role "${role}" is not a member of this workflow.`);
|
|
24
|
+
}
|
|
19
25
|
if (!this._trackers[role]) {
|
|
20
|
-
const itemless = role === _constants.ROLE.CONTAINER;
|
|
21
26
|
this._trackers[role] = new _tracker.default({
|
|
22
27
|
hub: this._hub,
|
|
23
28
|
role,
|
|
24
|
-
itemless,
|
|
29
|
+
itemless: role === _constants.ROLE.CONTAINER,
|
|
25
30
|
options: () => this._getTrackerOptions(role)
|
|
26
31
|
});
|
|
27
32
|
}
|
|
@@ -34,4 +39,14 @@ class TrackersActor {
|
|
|
34
39
|
};
|
|
35
40
|
}
|
|
36
41
|
}
|
|
37
|
-
exports.
|
|
42
|
+
exports.TrackersActor = TrackersActor;
|
|
43
|
+
function proxyTrackers(trackers) {
|
|
44
|
+
return new Proxy(trackers, {
|
|
45
|
+
get: (target, prop) => {
|
|
46
|
+
try {
|
|
47
|
+
return target.get(prop);
|
|
48
|
+
} catch (_) {}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
package/dist/cjs/actor/view.js
CHANGED
|
@@ -8,7 +8,6 @@ var _commons = require("@miso.ai/commons");
|
|
|
8
8
|
var _constants = require("../constants.js");
|
|
9
9
|
var fields = _interopRequireWildcard(require("./fields.js"));
|
|
10
10
|
var _proxy = _interopRequireDefault(require("../util/proxy.js"));
|
|
11
|
-
var _tracker = _interopRequireDefault(require("./tracker.js"));
|
|
12
11
|
const _excluded = ["value", "error", "status", "meta"];
|
|
13
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -99,24 +98,7 @@ class ViewActor {
|
|
|
99
98
|
});
|
|
100
99
|
}
|
|
101
100
|
get tracker() {
|
|
102
|
-
|
|
103
|
-
role
|
|
104
|
-
} = this;
|
|
105
|
-
if (role === _constants.ROLE.CONTAINER) {
|
|
106
|
-
return this._views._getContainerTracker();
|
|
107
|
-
}
|
|
108
|
-
// TODO: we should move this to workflow level, as there could be multiple view of the same role in the future
|
|
109
|
-
if (!this._tracker) {
|
|
110
|
-
const {
|
|
111
|
-
hub
|
|
112
|
-
} = this;
|
|
113
|
-
this._tracker = new _tracker.default({
|
|
114
|
-
hub,
|
|
115
|
-
role,
|
|
116
|
-
options: () => this.trackerOptions
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return this._tracker;
|
|
101
|
+
return this._views.trackers[this.role];
|
|
120
102
|
}
|
|
121
103
|
get workflow() {
|
|
122
104
|
return this._views._workflow;
|
|
@@ -223,6 +205,8 @@ class ViewActor {
|
|
|
223
205
|
}
|
|
224
206
|
return (0, _commons.trimObj)(sliced);
|
|
225
207
|
}
|
|
208
|
+
|
|
209
|
+
// TODO: move this to workflow
|
|
226
210
|
_isContainerEmpty(data) {
|
|
227
211
|
const {
|
|
228
212
|
element
|
|
@@ -260,6 +244,10 @@ class ViewActor {
|
|
|
260
244
|
this._error(e);
|
|
261
245
|
}
|
|
262
246
|
}
|
|
247
|
+
_emit(name, data) {
|
|
248
|
+
this._events.emit(name, data);
|
|
249
|
+
this._views._events.emit(`${this.role}:${name}`, data);
|
|
250
|
+
}
|
|
263
251
|
_error(e) {
|
|
264
252
|
this._views._error(e);
|
|
265
253
|
}
|
package/dist/cjs/actor/views.js
CHANGED
|
@@ -9,8 +9,6 @@ var _constants = require("../constants.js");
|
|
|
9
9
|
var fields = _interopRequireWildcard(require("./fields.js"));
|
|
10
10
|
var _view = _interopRequireDefault(require("./view.js"));
|
|
11
11
|
var _filters = _interopRequireDefault(require("./filters.js"));
|
|
12
|
-
var _tracker = _interopRequireDefault(require("./tracker.js"));
|
|
13
|
-
var _trackers = require("../util/trackers.js");
|
|
14
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
14
|
class ViewsActor {
|
|
@@ -29,18 +27,11 @@ class ViewsActor {
|
|
|
29
27
|
this._options = options;
|
|
30
28
|
this._roles = roles;
|
|
31
29
|
this._containers = new Map();
|
|
32
|
-
this.
|
|
33
|
-
this._views = {};
|
|
30
|
+
this._components = new Map();
|
|
34
31
|
this._filters = new _filters.default(this);
|
|
35
|
-
|
|
36
|
-
if (role === _constants.ROLE.CONTAINER) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
this._views[role] = new _view.default(this, role);
|
|
40
|
-
}
|
|
32
|
+
this._events = new _commons.EventEmitter();
|
|
41
33
|
(0, _commons.defineValues)(this, {
|
|
42
|
-
interface: new Views(this)
|
|
43
|
-
trackers: new Trackers(this, roles.members)
|
|
34
|
+
interface: new Views(this)
|
|
44
35
|
});
|
|
45
36
|
const syncSize = () => this.syncSize();
|
|
46
37
|
window.addEventListener('resize', syncSize);
|
|
@@ -52,15 +43,19 @@ class ViewsActor {
|
|
|
52
43
|
get filters() {
|
|
53
44
|
return this._filters;
|
|
54
45
|
}
|
|
46
|
+
get trackers() {
|
|
47
|
+
return this._workflow.trackers;
|
|
48
|
+
}
|
|
49
|
+
on(role, name, fn) {
|
|
50
|
+
return this._events.on(`${role}:${name}`, fn);
|
|
51
|
+
}
|
|
55
52
|
|
|
56
53
|
// elements //
|
|
57
54
|
addContainer(element) {
|
|
58
55
|
if (this._containers.has(element)) {
|
|
59
56
|
return;
|
|
60
57
|
}
|
|
61
|
-
const view =
|
|
62
|
-
view.layout = this._createLayout(_constants.ROLE.CONTAINER);
|
|
63
|
-
view.element = element;
|
|
58
|
+
const view = this._createView(element);
|
|
64
59
|
this._containers.set(element, view);
|
|
65
60
|
const {
|
|
66
61
|
components
|
|
@@ -84,77 +79,50 @@ class ViewsActor {
|
|
|
84
79
|
this._containers.delete(element);
|
|
85
80
|
}
|
|
86
81
|
addComponent(element) {
|
|
87
|
-
this.
|
|
82
|
+
if (this._components.has(element)) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const view = this._createView(element);
|
|
86
|
+
this._components.set(element, view);
|
|
88
87
|
}
|
|
89
88
|
removeComponent(element) {
|
|
90
|
-
this.
|
|
89
|
+
const view = this._components.get(element);
|
|
90
|
+
if (!view) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
view._destroy();
|
|
94
|
+
this._components.delete(element);
|
|
91
95
|
}
|
|
92
96
|
updateComponentRole(element, oldRole, newRole) {
|
|
93
97
|
// TODO
|
|
94
98
|
}
|
|
95
99
|
containsElement(element) {
|
|
96
|
-
return this._containers.has(element) || this.
|
|
100
|
+
return this._containers.has(element) || this._components.has(element);
|
|
97
101
|
}
|
|
98
102
|
refreshElement(element) {
|
|
99
|
-
const view = element.isContainer ? this._containers.get(element) : this.
|
|
103
|
+
const view = element.isContainer ? this._containers.get(element) : this._components.get(element);
|
|
100
104
|
view && view.refresh({
|
|
101
105
|
force: true
|
|
102
106
|
});
|
|
103
107
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
throw new Error('Component must have a role');
|
|
110
|
-
}
|
|
111
|
-
return this.get(role);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/*
|
|
115
|
-
_requestSyncLayouts() {
|
|
116
|
-
this._setLayoutRequested = true;
|
|
117
|
-
setTimeout(() => {
|
|
118
|
-
if (!this._setLayoutRequested) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
this._setLayoutRequested = false;
|
|
122
|
-
this._syncLayouts();
|
|
123
|
-
});
|
|
108
|
+
_createView(element) {
|
|
109
|
+
const view = new _view.default(this, element.role);
|
|
110
|
+
view.layout = this._createLayout(element.role);
|
|
111
|
+
view.element = element;
|
|
112
|
+
return view;
|
|
124
113
|
}
|
|
125
|
-
*/
|
|
126
|
-
|
|
127
114
|
_syncLayouts() {
|
|
128
115
|
// TODO: put a debug event here
|
|
129
116
|
const {
|
|
130
117
|
layouts
|
|
131
118
|
} = this._options.resolved;
|
|
132
119
|
if (layouts === false) {
|
|
133
|
-
|
|
134
|
-
for (const view of this._containers.values()) {
|
|
135
|
-
view.layout = undefined;
|
|
136
|
-
}
|
|
137
|
-
// components
|
|
138
|
-
for (const view of Object.values(this._views)) {
|
|
120
|
+
for (const view of [...this._containers.values(), ...this._components.values()]) {
|
|
139
121
|
view.layout = undefined;
|
|
140
122
|
}
|
|
141
123
|
} else {
|
|
142
|
-
for (
|
|
143
|
-
|
|
144
|
-
const fn = () => this._layoutFactory.create(name, Object.assign({}, options, {
|
|
145
|
-
role,
|
|
146
|
-
workflow: this._workflowName
|
|
147
|
-
}));
|
|
148
|
-
if (role === _constants.ROLE.CONTAINER) {
|
|
149
|
-
for (const view of this._containers.values()) {
|
|
150
|
-
view.layout = fn();
|
|
151
|
-
}
|
|
152
|
-
} else {
|
|
153
|
-
const view = this.get(role);
|
|
154
|
-
if (view) {
|
|
155
|
-
view.layout = fn();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
124
|
+
for (const view of [...this._containers.values(), ...this._components.values()]) {
|
|
125
|
+
view.layout = this._createLayout(view.role);
|
|
158
126
|
}
|
|
159
127
|
}
|
|
160
128
|
}
|
|
@@ -170,16 +138,20 @@ class ViewsActor {
|
|
|
170
138
|
}));
|
|
171
139
|
}
|
|
172
140
|
get(role) {
|
|
173
|
-
return this.
|
|
141
|
+
return this.getAll(role)[0];
|
|
142
|
+
}
|
|
143
|
+
getAll(role) {
|
|
144
|
+
return role === _constants.ROLE.CONTAINER ? this._containers.values() : this._components.values().filter(view => view.role === role);
|
|
174
145
|
}
|
|
175
146
|
get views() {
|
|
176
147
|
return this._getViews(true);
|
|
177
148
|
}
|
|
178
149
|
_getViews(containerFirst = true) {
|
|
179
|
-
return containerFirst ? [...this._containers.values(), ...
|
|
150
|
+
return containerFirst ? [...this._containers.values(), ...this._components.values()] : [...this._components.values(), ...this._containers.values()];
|
|
180
151
|
}
|
|
181
152
|
syncSize() {
|
|
182
|
-
|
|
153
|
+
// TODO: containers?
|
|
154
|
+
for (const view of this._components.values()) {
|
|
183
155
|
view._syncSize();
|
|
184
156
|
}
|
|
185
157
|
}
|
|
@@ -198,24 +170,6 @@ class ViewsActor {
|
|
|
198
170
|
_getData(data) {
|
|
199
171
|
return data || this._hub.states[fields.data()];
|
|
200
172
|
}
|
|
201
|
-
_getTrackerOptions(role) {
|
|
202
|
-
const allTrackerOptions = this._options.resolved.trackers;
|
|
203
|
-
// TODO: don't need this anymore
|
|
204
|
-
return (0, _trackers.normalizeTrackerOptions)(allTrackerOptions && allTrackerOptions[role] || false);
|
|
205
|
-
}
|
|
206
|
-
_getContainerTracker() {
|
|
207
|
-
if (!this._containerTracker) {
|
|
208
|
-
const hub = this._hub;
|
|
209
|
-
const role = _constants.ROLE.CONTAINER;
|
|
210
|
-
this._containerTracker = new _tracker.default({
|
|
211
|
-
hub,
|
|
212
|
-
role,
|
|
213
|
-
itemless: true,
|
|
214
|
-
options: () => this._getTrackerOptions(role)
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
return this._containerTracker;
|
|
218
|
-
}
|
|
219
173
|
_error(e) {
|
|
220
174
|
// TODO: hub trigger error event
|
|
221
175
|
console.error(e);
|
|
@@ -247,20 +201,4 @@ class Views {
|
|
|
247
201
|
get all() {
|
|
248
202
|
return this._actor.views.map(view => view.interface);
|
|
249
203
|
}
|
|
250
|
-
}
|
|
251
|
-
class Trackers {
|
|
252
|
-
constructor(views, roles) {
|
|
253
|
-
this._views = views;
|
|
254
|
-
for (const role of roles) {
|
|
255
|
-
if (role === _constants.ROLE.CONTAINER) {
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
Object.defineProperty(this, role, {
|
|
259
|
-
get: () => views.get(role).tracker
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
Object.defineProperty(this, _constants.ROLE.CONTAINER, {
|
|
263
|
-
get: () => views._getContainerTracker()
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
204
|
}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _constants = require("../../constants.js");
|
|
7
8
|
var _misoStub = _interopRequireDefault(require("../util/miso-stub.js"));
|
|
8
9
|
var _utils = require("../utils.js");
|
|
9
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -49,6 +50,9 @@ class MisoContainerElement extends _misoStub.default {
|
|
|
49
50
|
get isContainer() {
|
|
50
51
|
return true;
|
|
51
52
|
}
|
|
53
|
+
get role() {
|
|
54
|
+
return _constants.ROLE.CONTAINER;
|
|
55
|
+
}
|
|
52
56
|
get workflow() {
|
|
53
57
|
return this._workflow;
|
|
54
58
|
}
|
|
@@ -306,7 +306,7 @@ class AffiliationLayout extends _collection.default {
|
|
|
306
306
|
this._displayedIndex = index;
|
|
307
307
|
listElement.style.left = `${-index * 100}%`;
|
|
308
308
|
this._viewable.display(index);
|
|
309
|
-
this._view.
|
|
309
|
+
this._view._emit('display', {
|
|
310
310
|
index
|
|
311
311
|
});
|
|
312
312
|
}
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _constants = require("../../constants.js");
|
|
8
8
|
var _index = require("../../actor/index.js");
|
|
9
9
|
var _template = _interopRequireDefault(require("../template.js"));
|
|
10
|
+
var _templates = require("../templates.js");
|
|
10
11
|
const _excluded = ["className", "templates"];
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
13
|
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; }
|
|
@@ -22,7 +23,7 @@ function root(layout, state) {
|
|
|
22
23
|
const disabledAttr = state.status !== _constants.STATUS.READY ? ' disabled' : '';
|
|
23
24
|
return `
|
|
24
25
|
<div class="${className}"${roleAttr}${disabledAttr}>
|
|
25
|
-
${templates.text(layout)}
|
|
26
|
+
${_templates.helpers.asFunction(templates.text)(layout)}
|
|
26
27
|
</div>
|
|
27
28
|
`;
|
|
28
29
|
}
|
|
@@ -8,6 +8,7 @@ var _constants = require("../../constants.js");
|
|
|
8
8
|
var _raf = _interopRequireDefault(require("../raf.js"));
|
|
9
9
|
var _misoBanner = _interopRequireDefault(require("../../element/util/miso-banner.js"));
|
|
10
10
|
var _viewables = _interopRequireDefault(require("../../util/viewables.js"));
|
|
11
|
+
var _dom = require("../../util/dom.js");
|
|
11
12
|
const _excluded = ["logo"];
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
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; }
|
|
@@ -70,8 +71,10 @@ class ContainerLayout extends _raf.default {
|
|
|
70
71
|
if (!element) {
|
|
71
72
|
return;
|
|
72
73
|
}
|
|
74
|
+
// TODO: ad-hoc for non-general status/attributes
|
|
73
75
|
const {
|
|
74
76
|
status,
|
|
77
|
+
data,
|
|
75
78
|
ongoing,
|
|
76
79
|
meta: {
|
|
77
80
|
miso_id,
|
|
@@ -79,6 +82,10 @@ class ContainerLayout extends _raf.default {
|
|
|
79
82
|
unanswerable = false
|
|
80
83
|
} = {}
|
|
81
84
|
} = state;
|
|
85
|
+
const {
|
|
86
|
+
blocked_reason,
|
|
87
|
+
finish_reason
|
|
88
|
+
} = data || {};
|
|
82
89
|
const statuses = [status, empty ? _constants.STATUS.EMPTY : _constants.STATUS.NONEMPTY];
|
|
83
90
|
if (status === _constants.STATUS.READY) {
|
|
84
91
|
statuses.push(ongoing ? _constants.STATUS.ONGOING : _constants.STATUS.DONE);
|
|
@@ -87,11 +94,9 @@ class ContainerLayout extends _raf.default {
|
|
|
87
94
|
statuses.push(_constants.STATUS.UNANSWERABLE);
|
|
88
95
|
}
|
|
89
96
|
element.setAttribute('status', statuses.join(' '));
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
element.removeAttribute('miso-id');
|
|
94
|
-
}
|
|
97
|
+
(0, _dom.setOrRemoveAttribute)(element, 'miso-id', miso_id);
|
|
98
|
+
(0, _dom.setOrRemoveAttribute)(element, 'blocked-reason', blocked_reason);
|
|
99
|
+
(0, _dom.setOrRemoveAttribute)(element, 'finish-reason', finish_reason);
|
|
95
100
|
}
|
|
96
101
|
_trackInteractions(element, state) {
|
|
97
102
|
const {
|
|
@@ -352,7 +352,7 @@ class SearchBoxLayout extends _template.default {
|
|
|
352
352
|
if (inputElement) {
|
|
353
353
|
inputElement.value = value;
|
|
354
354
|
}
|
|
355
|
-
this._view.
|
|
355
|
+
this._view._emit('select', Object.freeze({
|
|
356
356
|
value: item,
|
|
357
357
|
index,
|
|
358
358
|
domEvent: event
|
|
@@ -365,7 +365,7 @@ class SearchBoxLayout extends _template.default {
|
|
|
365
365
|
return;
|
|
366
366
|
}
|
|
367
367
|
if (element.matches('[data-role="product-item"]')) {
|
|
368
|
-
this._view.
|
|
368
|
+
this._view._emit('select', Object.freeze({
|
|
369
369
|
value: item,
|
|
370
370
|
index,
|
|
371
371
|
domEvent: event
|
|
@@ -186,7 +186,7 @@ class TypewriterLayout extends _progressive.default {
|
|
|
186
186
|
if (citationLinkElement) {
|
|
187
187
|
const index = parseInt(citationLinkElement.dataset.index);
|
|
188
188
|
if (!Number.isNaN(index)) {
|
|
189
|
-
this._view.
|
|
189
|
+
this._view._emit('citation-click', {
|
|
190
190
|
event,
|
|
191
191
|
index
|
|
192
192
|
});
|
|
@@ -202,7 +202,7 @@ class TypewriterLayout extends _progressive.default {
|
|
|
202
202
|
} = followUpLinkElement.dataset;
|
|
203
203
|
q = q ? q.trim() : undefined;
|
|
204
204
|
if (q) {
|
|
205
|
-
this._view.
|
|
205
|
+
this._view._emit('follow-up-click', {
|
|
206
206
|
event,
|
|
207
207
|
q
|
|
208
208
|
});
|
|
@@ -221,7 +221,7 @@ class TypewriterLayout extends _progressive.default {
|
|
|
221
221
|
className
|
|
222
222
|
} = anchorElement;
|
|
223
223
|
if (href) {
|
|
224
|
-
this._view.
|
|
224
|
+
this._view._emit('link-click', (0, _commons.trimObj)({
|
|
225
225
|
event,
|
|
226
226
|
url: href,
|
|
227
227
|
text: innerText ? innerText.trim() : '',
|
package/dist/cjs/version.js
CHANGED
|
@@ -100,7 +100,7 @@ class AnswerBasedWorkflow extends _base.default {
|
|
|
100
100
|
}
|
|
101
101
|
_initSubscriptions(args) {
|
|
102
102
|
super._initSubscriptions(args);
|
|
103
|
-
this._unsubscribes = [...this._unsubscribes, this._hub.on(_index.fields.query(), args => this._query(args)), this._views.
|
|
103
|
+
this._unsubscribes = [...this._unsubscribes, this._hub.on(_index.fields.query(), args => this._query(args)), this._views.on(_constants.ROLE.ANSWER, 'citation-click', event => this._onCitationClick(event)), this._views.on(_constants.ROLE.ANSWER, 'link-click', event => this._onAnswerLinkClick(event))];
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
// lifecycle //
|
|
@@ -131,6 +131,7 @@ class AnswerBasedWorkflow extends _base.default {
|
|
|
131
131
|
const done = status === _constants.STATUS.READY && !state.ongoing;
|
|
132
132
|
const erroneous = status === _constants.STATUS.ERRONEOUS;
|
|
133
133
|
const eventName = done ? 'done' : erroneous ? 'error' : status;
|
|
134
|
+
|
|
134
135
|
// answer-stage
|
|
135
136
|
const context = this._getSessionContext(session);
|
|
136
137
|
const oldAnswerStage = context.answerStage;
|
|
@@ -141,6 +142,23 @@ class AnswerBasedWorkflow extends _base.default {
|
|
|
141
142
|
})));
|
|
142
143
|
context.answerStage = newAnswerStage;
|
|
143
144
|
}
|
|
145
|
+
|
|
146
|
+
// blocked reason
|
|
147
|
+
const data = this._hub.states[_index.fields.data()] || {};
|
|
148
|
+
const {
|
|
149
|
+
value
|
|
150
|
+
} = data;
|
|
151
|
+
if (value) {
|
|
152
|
+
const {
|
|
153
|
+
blocked_reason
|
|
154
|
+
} = value;
|
|
155
|
+
if (blocked_reason) {
|
|
156
|
+
this._emitLifecycleEvent('blocked', Object.assign({}, state, {
|
|
157
|
+
blockedReason: blocked_reason
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
144
162
|
// ready, done, or error
|
|
145
163
|
this._emitLifecycleEvent(eventName, state);
|
|
146
164
|
if (done || erroneous) {
|
package/dist/cjs/workflow/ask.js
CHANGED
|
@@ -80,7 +80,7 @@ class Ask extends _answerBased.default {
|
|
|
80
80
|
}
|
|
81
81
|
_initSubscriptions(args) {
|
|
82
82
|
super._initSubscriptions(args);
|
|
83
|
-
this._unsubscribes = [...this._unsubscribes, this._hub.on(_index.fields.view(_constants.ROLE.REASONING), state => this._onReasoningViewUpdate(state)), this._views.
|
|
83
|
+
this._unsubscribes = [...this._unsubscribes, this._hub.on(_index.fields.view(_constants.ROLE.REASONING), state => this._onReasoningViewUpdate(state)), this._views.on(_constants.ROLE.ANSWER, 'follow-up-click', event => this._onFollowUpClick(event)), this._views.on(_constants.ROLE.FOLLOW_UP_QUESTIONS, 'select', event => this._onFollowUpQuestionSelect(event)), this._views.on(_constants.ROLE.QUERY_SUGGESTIONS, 'select', event => this._onQuerySuggestionSelect(event))];
|
|
84
84
|
}
|
|
85
85
|
_initSession(args) {
|
|
86
86
|
// register at context
|
|
@@ -167,8 +167,9 @@ class Ask extends _answerBased.default {
|
|
|
167
167
|
if (!next) {
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
|
-
const view
|
|
171
|
-
|
|
170
|
+
for (const view of next._views.getAll(_constants.ROLE.QUERY_SUGGESTIONS)) {
|
|
171
|
+
view.refresh();
|
|
172
|
+
}
|
|
172
173
|
}
|
|
173
174
|
|
|
174
175
|
// view //
|
|
@@ -179,8 +180,10 @@ class Ask extends _answerBased.default {
|
|
|
179
180
|
if (status !== _constants.STATUS.READY || ongoing) {
|
|
180
181
|
return;
|
|
181
182
|
}
|
|
182
|
-
const
|
|
183
|
-
|
|
183
|
+
for (const view of this._views.getAll(_constants.ROLE.REASONING)) {
|
|
184
|
+
const element = view.element && view.element.closest('[data-role="reasoning-box"]');
|
|
185
|
+
element && element.classList.add('done');
|
|
186
|
+
}
|
|
184
187
|
}
|
|
185
188
|
|
|
186
189
|
// interactions //
|
|
@@ -283,11 +286,6 @@ class Ask extends _answerBased.default {
|
|
|
283
286
|
this._questionId = undefined;
|
|
284
287
|
}
|
|
285
288
|
}
|
|
286
|
-
_getReasoningBoxElement() {
|
|
287
|
-
const view = this._views.get(_constants.ROLE.REASONING);
|
|
288
|
-
const element = view && view.element;
|
|
289
|
-
return element && element.closest('[data-role="reasoning-box"]');
|
|
290
|
-
}
|
|
291
289
|
|
|
292
290
|
// destroy //
|
|
293
291
|
_destroy(options) {
|
|
@@ -73,6 +73,11 @@ class Workflow extends _commons.Component {
|
|
|
73
73
|
const extensions = this._extensions;
|
|
74
74
|
const layouts = this._plugin.layouts;
|
|
75
75
|
this._sessions = new _index.SessionMaker(hub);
|
|
76
|
+
this._trackers = new _index.TrackersActor(hub, {
|
|
77
|
+
roles,
|
|
78
|
+
options
|
|
79
|
+
});
|
|
80
|
+
this._proxyTrackers = (0, _index.proxyTrackers)(this._trackers);
|
|
76
81
|
this._data = new _index.DataActor(hub, Object.assign({
|
|
77
82
|
source: sources.api(client),
|
|
78
83
|
options
|
|
@@ -84,7 +89,6 @@ class Workflow extends _commons.Component {
|
|
|
84
89
|
options,
|
|
85
90
|
workflow: this
|
|
86
91
|
});
|
|
87
|
-
//this._trackers = new TrackersActor(hub, { options });
|
|
88
92
|
this._interactions = new _index.InteractionsActor(hub, {
|
|
89
93
|
client,
|
|
90
94
|
options
|
|
@@ -280,7 +284,7 @@ class Workflow extends _commons.Component {
|
|
|
280
284
|
|
|
281
285
|
// trackers //
|
|
282
286
|
get trackers() {
|
|
283
|
-
return this.
|
|
287
|
+
return this._proxyTrackers;
|
|
284
288
|
}
|
|
285
289
|
_onTracker(args) {
|
|
286
290
|
const workflow = this;
|