@miso.ai/client-sdk-ui 1.11.4-beta.0 → 1.11.4-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.
- package/dist/cjs/actor/fields.js +0 -4
- package/dist/cjs/layout/text/typewriter/index.js +3 -2
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/answer-based.js +17 -1
- package/dist/cjs/workflow/base.js +23 -0
- package/dist/cjs/workflow/hybrid-search.js +9 -1
- package/package.json +2 -2
- package/src/actor/fields.js +0 -4
- package/src/layout/text/typewriter/index.js +3 -2
- package/src/version.js +1 -1
- package/src/workflow/answer-based.js +15 -1
- package/src/workflow/base.js +21 -0
- package/src/workflow/hybrid-search.js +11 -0
package/dist/cjs/actor/fields.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.completions = completions;
|
|
7
7
|
exports.data = data;
|
|
8
|
-
exports.event = event;
|
|
9
8
|
exports.feedback = feedback;
|
|
10
9
|
exports.filters = filters;
|
|
11
10
|
exports.input = input;
|
|
@@ -45,9 +44,6 @@ function data() {
|
|
|
45
44
|
function view(role) {
|
|
46
45
|
return role ? `view:${role}` : 'view';
|
|
47
46
|
}
|
|
48
|
-
function event() {
|
|
49
|
-
return 'event';
|
|
50
|
-
}
|
|
51
47
|
function tracker() {
|
|
52
48
|
return 'tracker';
|
|
53
49
|
}
|
|
@@ -154,7 +154,8 @@ class TypewriterLayout extends _progressive.default {
|
|
|
154
154
|
const container = (0, _utils.containerElement)(this, element, state);
|
|
155
155
|
// TODO: distinguish between first render and element replacement
|
|
156
156
|
let result;
|
|
157
|
-
|
|
157
|
+
const newStreak = !rendered || state.streak !== rendered.streak;
|
|
158
|
+
if (newStreak) {
|
|
158
159
|
// new typing streak
|
|
159
160
|
result = this._renderer.clear(container, rendered);
|
|
160
161
|
} else {
|
|
@@ -166,7 +167,7 @@ class TypewriterLayout extends _progressive.default {
|
|
|
166
167
|
writeToState(result);
|
|
167
168
|
const ongoing = state.status === _constants.STATUS.READY && !result.done;
|
|
168
169
|
// silence on consecutive ongoing renders
|
|
169
|
-
const silent = ongoing && (!rendered || rendered.status === _constants.STATUS.READY);
|
|
170
|
+
const silent = ongoing && (!rendered || rendered.status === _constants.STATUS.READY) && !newStreak;
|
|
170
171
|
notifyUpdate({
|
|
171
172
|
ongoing
|
|
172
173
|
}, {
|
package/dist/cjs/version.js
CHANGED
|
@@ -94,6 +94,9 @@ class AnswerBasedWorkflow extends _base.default {
|
|
|
94
94
|
// restart
|
|
95
95
|
super.restart();
|
|
96
96
|
}
|
|
97
|
+
_shallEmitLifecycleEvent(name, event) {
|
|
98
|
+
return name === 'answer-stage' || super._shallEmitLifecycleEvent(name, event);
|
|
99
|
+
}
|
|
97
100
|
_emitInterruptEventIfNecessary() {
|
|
98
101
|
const state = this._hub.states[_index.fields.view(this._roles.main)] || {};
|
|
99
102
|
if (state.session && state.status !== _constants.STATUS.INITIAL && (state.status !== _constants.STATUS.READY || state.ongoing)) {
|
|
@@ -104,13 +107,26 @@ class AnswerBasedWorkflow extends _base.default {
|
|
|
104
107
|
}
|
|
105
108
|
_onMainViewUpdate(state) {
|
|
106
109
|
const {
|
|
107
|
-
status
|
|
110
|
+
status,
|
|
111
|
+
session
|
|
108
112
|
} = state;
|
|
109
113
|
const done = status === _constants.STATUS.READY && !state.ongoing;
|
|
110
114
|
const erroneous = status === _constants.STATUS.ERRONEOUS;
|
|
111
115
|
const eventName = done ? 'done' : erroneous ? 'error' : status;
|
|
116
|
+
// answer-stage
|
|
117
|
+
const context = this._getSessionContext(session);
|
|
118
|
+
const oldAnswerStage = context.answerStage;
|
|
119
|
+
const newAnswerStage = state.meta && state.meta.answer_stage;
|
|
120
|
+
if (newAnswerStage && newAnswerStage !== oldAnswerStage) {
|
|
121
|
+
this._emitLifecycleEvent('answer-stage', Object.freeze(Object.assign({}, state, {
|
|
122
|
+
answer_stage: newAnswerStage
|
|
123
|
+
})));
|
|
124
|
+
context.answerStage = newAnswerStage;
|
|
125
|
+
}
|
|
126
|
+
// ready, done, or error
|
|
112
127
|
this._emitLifecycleEvent(eventName, state);
|
|
113
128
|
if (done || erroneous) {
|
|
129
|
+
// finally
|
|
114
130
|
this._emitLifecycleEvent('finally', state);
|
|
115
131
|
}
|
|
116
132
|
}
|
|
@@ -76,6 +76,7 @@ class Workflow extends _commons.Component {
|
|
|
76
76
|
this._hub = injectLogger(new _index.Hub(), function () {
|
|
77
77
|
return _this._log(...arguments);
|
|
78
78
|
});
|
|
79
|
+
this._sessionContext = new WeakMap();
|
|
79
80
|
this._initProperties(args);
|
|
80
81
|
this._initActors(args);
|
|
81
82
|
this._initSubscriptions(args);
|
|
@@ -121,6 +122,15 @@ class Workflow extends _commons.Component {
|
|
|
121
122
|
_initSession() {
|
|
122
123
|
this.restart();
|
|
123
124
|
}
|
|
125
|
+
_getSessionContext(session) {
|
|
126
|
+
let context = this._sessionContext.get(session);
|
|
127
|
+
if (!context) {
|
|
128
|
+
this._sessionContext.set(session, context = {});
|
|
129
|
+
}
|
|
130
|
+
return context;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// properties //
|
|
124
134
|
get uuid() {
|
|
125
135
|
return this.session && this.session.uuid;
|
|
126
136
|
}
|
|
@@ -173,7 +183,20 @@ class Workflow extends _commons.Component {
|
|
|
173
183
|
this._emitLifecycleEvent('finally', state);
|
|
174
184
|
}
|
|
175
185
|
}
|
|
186
|
+
_shallEmitLifecycleEvent(name, _ref3) {
|
|
187
|
+
let {
|
|
188
|
+
session
|
|
189
|
+
} = _ref3;
|
|
190
|
+
const context = this._getSessionContext(session);
|
|
191
|
+
const events = context.lifecycleEvents || (context.lifecycleEvents = new Set());
|
|
192
|
+
const emitted = events.has(name);
|
|
193
|
+
events.add(name);
|
|
194
|
+
return !emitted;
|
|
195
|
+
}
|
|
176
196
|
_emitLifecycleEvent(name, event) {
|
|
197
|
+
if (!this._shallEmitLifecycleEvent(name, event)) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
177
200
|
this._emit(name, event);
|
|
178
201
|
}
|
|
179
202
|
|
|
@@ -14,6 +14,7 @@ var _index2 = require("../layout/index.js");
|
|
|
14
14
|
var _hybridSearchAnswer = _interopRequireDefault(require("./hybrid-search-answer.js"));
|
|
15
15
|
var _hybridSearchResults = _interopRequireDefault(require("./hybrid-search-results.js"));
|
|
16
16
|
var _hybridSearchViews = _interopRequireDefault(require("./hybrid-search-views.js"));
|
|
17
|
+
var _options = require("./options.js");
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
19
|
const DEFAULT_API_OPTIONS = Object.freeze({
|
|
19
20
|
group: _commons.API.GROUP.ASK,
|
|
@@ -101,6 +102,12 @@ class HybridSearch extends _base.default {
|
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
// properties //
|
|
105
|
+
get answer() {
|
|
106
|
+
return this._answer;
|
|
107
|
+
}
|
|
108
|
+
get results() {
|
|
109
|
+
return this._results;
|
|
110
|
+
}
|
|
104
111
|
get questionId() {
|
|
105
112
|
return this._answer.questionId;
|
|
106
113
|
}
|
|
@@ -132,4 +139,5 @@ class HybridSearch extends _base.default {
|
|
|
132
139
|
super._destroy();
|
|
133
140
|
}
|
|
134
141
|
}
|
|
135
|
-
exports.default = HybridSearch;
|
|
142
|
+
exports.default = HybridSearch;
|
|
143
|
+
(0, _options.makeConfigurable)(HybridSearch.prototype, ['pagination']);
|
package/package.json
CHANGED
package/src/actor/fields.js
CHANGED
|
@@ -130,7 +130,8 @@ export default class TypewriterLayout extends ProgressiveLayout {
|
|
|
130
130
|
const container = containerElement(this, element, state);
|
|
131
131
|
// TODO: distinguish between first render and element replacement
|
|
132
132
|
let result;
|
|
133
|
-
|
|
133
|
+
const newStreak = !rendered || state.streak !== rendered.streak;
|
|
134
|
+
if (newStreak) {
|
|
134
135
|
// new typing streak
|
|
135
136
|
result = this._renderer.clear(container, rendered);
|
|
136
137
|
} else {
|
|
@@ -141,7 +142,7 @@ export default class TypewriterLayout extends ProgressiveLayout {
|
|
|
141
142
|
|
|
142
143
|
const ongoing = state.status === STATUS.READY && !result.done;
|
|
143
144
|
// silence on consecutive ongoing renders
|
|
144
|
-
const silent = ongoing && (!rendered || rendered.status === STATUS.READY);
|
|
145
|
+
const silent = ongoing && (!rendered || rendered.status === STATUS.READY) && !newStreak;
|
|
145
146
|
notifyUpdate({ ongoing }, { silent });
|
|
146
147
|
|
|
147
148
|
ongoing && loop();
|
package/src/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '1.11.4-beta.
|
|
1
|
+
export default '1.11.4-beta.1';
|
|
@@ -91,6 +91,10 @@ export default class AnswerBasedWorkflow extends Workflow {
|
|
|
91
91
|
super.restart();
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
_shallEmitLifecycleEvent(name, event) {
|
|
95
|
+
return name === 'answer-stage' || super._shallEmitLifecycleEvent(name, event);
|
|
96
|
+
}
|
|
97
|
+
|
|
94
98
|
_emitInterruptEventIfNecessary() {
|
|
95
99
|
const state = this._hub.states[fields.view(this._roles.main)] || {};
|
|
96
100
|
if (state.session && state.status !== STATUS.INITIAL && (state.status !== STATUS.READY || state.ongoing)) {
|
|
@@ -101,12 +105,22 @@ export default class AnswerBasedWorkflow extends Workflow {
|
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
_onMainViewUpdate(state) {
|
|
104
|
-
const { status } = state;
|
|
108
|
+
const { status, session } = state;
|
|
105
109
|
const done = status === STATUS.READY && !state.ongoing;
|
|
106
110
|
const erroneous = status === STATUS.ERRONEOUS;
|
|
107
111
|
const eventName = done ? 'done' : erroneous ? 'error' : status;
|
|
112
|
+
// answer-stage
|
|
113
|
+
const context = this._getSessionContext(session);
|
|
114
|
+
const oldAnswerStage = context.answerStage;
|
|
115
|
+
const newAnswerStage = state.meta && state.meta.answer_stage;
|
|
116
|
+
if (newAnswerStage && newAnswerStage !== oldAnswerStage) {
|
|
117
|
+
this._emitLifecycleEvent('answer-stage', Object.freeze({ ...state, answer_stage: newAnswerStage }));
|
|
118
|
+
context.answerStage = newAnswerStage;
|
|
119
|
+
}
|
|
120
|
+
// ready, done, or error
|
|
108
121
|
this._emitLifecycleEvent(eventName, state);
|
|
109
122
|
if (done || erroneous) {
|
|
123
|
+
// finally
|
|
110
124
|
this._emitLifecycleEvent('finally', state);
|
|
111
125
|
}
|
|
112
126
|
}
|
package/src/workflow/base.js
CHANGED
|
@@ -61,6 +61,7 @@ export default class Workflow extends Component {
|
|
|
61
61
|
this._defaults = args.defaults;
|
|
62
62
|
this._options = options || new WorkflowOptions(context && context._options, args.defaults);
|
|
63
63
|
this._hub = injectLogger(new Hub(), (...args) => this._log(...args));
|
|
64
|
+
this._sessionContext = new WeakMap();
|
|
64
65
|
|
|
65
66
|
this._initProperties(args);
|
|
66
67
|
this._initActors(args);
|
|
@@ -97,6 +98,15 @@ export default class Workflow extends Component {
|
|
|
97
98
|
this.restart();
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
_getSessionContext(session) {
|
|
102
|
+
let context = this._sessionContext.get(session);
|
|
103
|
+
if (!context) {
|
|
104
|
+
this._sessionContext.set(session, context = {});
|
|
105
|
+
}
|
|
106
|
+
return context;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// properties //
|
|
100
110
|
get uuid() {
|
|
101
111
|
return this.session && this.session.uuid;
|
|
102
112
|
}
|
|
@@ -152,7 +162,18 @@ export default class Workflow extends Component {
|
|
|
152
162
|
}
|
|
153
163
|
}
|
|
154
164
|
|
|
165
|
+
_shallEmitLifecycleEvent(name, { session }) {
|
|
166
|
+
const context = this._getSessionContext(session);
|
|
167
|
+
const events = context.lifecycleEvents || (context.lifecycleEvents = new Set());
|
|
168
|
+
const emitted = events.has(name);
|
|
169
|
+
events.add(name);
|
|
170
|
+
return !emitted;
|
|
171
|
+
}
|
|
172
|
+
|
|
155
173
|
_emitLifecycleEvent(name, event) {
|
|
174
|
+
if (!this._shallEmitLifecycleEvent(name, event)) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
156
177
|
this._emit(name, event);
|
|
157
178
|
}
|
|
158
179
|
|
|
@@ -8,6 +8,7 @@ import { SearchBoxLayout, TextLayout } from '../layout/index.js';
|
|
|
8
8
|
import HybridSearchAnswer from './hybrid-search-answer.js';
|
|
9
9
|
import HybridSearchResults from './hybrid-search-results.js';
|
|
10
10
|
import HybridSearchViewsActor from './hybrid-search-views.js';
|
|
11
|
+
import { makeConfigurable } from './options.js';
|
|
11
12
|
|
|
12
13
|
const DEFAULT_API_OPTIONS = Object.freeze({
|
|
13
14
|
group: API.GROUP.ASK,
|
|
@@ -117,6 +118,14 @@ export default class HybridSearch extends Workflow {
|
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
// properties //
|
|
121
|
+
get answer() {
|
|
122
|
+
return this._answer;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
get results() {
|
|
126
|
+
return this._results;
|
|
127
|
+
}
|
|
128
|
+
|
|
120
129
|
get questionId() {
|
|
121
130
|
return this._answer.questionId;
|
|
122
131
|
}
|
|
@@ -152,3 +161,5 @@ export default class HybridSearch extends Workflow {
|
|
|
152
161
|
}
|
|
153
162
|
|
|
154
163
|
}
|
|
164
|
+
|
|
165
|
+
makeConfigurable(HybridSearch.prototype, ['pagination']);
|