@yoobic/yobi 8.6.35 → 8.6.36
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/{grid-renderers-bdf3d9df.js → grid-renderers-48827440.js} +4 -3
- package/dist/cjs/yoo-ag-grid.cjs.entry.js +1 -1
- package/dist/cjs/yoo-chat.cjs.entry.js +3 -2
- package/dist/cjs/yoo-form-catalog.cjs.entry.js +11 -2
- package/dist/cjs/yoo-form-connect.cjs.entry.js +47 -48
- package/dist/cjs/yoo-form-input.cjs.entry.js +1 -1
- package/dist/cjs/yoo-form-multi-input.cjs.entry.js +2 -2
- package/dist/cjs/yoo-form-scorm.cjs.entry.js +1 -1
- package/dist/cjs/yoo-grid.cjs.entry.js +2 -1
- package/dist/cjs/yoo-pivot-table.cjs.entry.js +1 -1
- package/dist/collection/components/form/form-catalog/form-catalog.js +11 -2
- package/dist/collection/components/form/form-connect/form-connect.css +15 -14
- package/dist/collection/components/form/form-connect/form-connect.js +46 -47
- package/dist/collection/components/form/form-multi-input/form-multi-input.js +2 -2
- package/dist/collection/components/form/form-scorm/form-scorm.js +2 -2
- package/dist/collection/components/grid/ag-grid/grid-renderers.js +4 -3
- package/dist/collection/components/grid/grid/grid.js +1 -0
- package/dist/collection/feature-communicate/chat/chat/chat.js +3 -2
- package/dist/design-system/{grid-renderers-649f8b12.js → grid-renderers-4dd1c6d7.js} +4 -3
- package/dist/design-system/yoo-ag-grid.entry.js +1 -1
- package/dist/design-system/yoo-chat.entry.js +3 -2
- package/dist/design-system/yoo-form-catalog.entry.js +11 -2
- package/dist/design-system/yoo-form-connect.entry.js +47 -48
- package/dist/design-system/yoo-form-input.entry.js +1 -1
- package/dist/design-system/yoo-form-multi-input.entry.js +2 -2
- package/dist/design-system/yoo-form-scorm.entry.js +2 -2
- package/dist/design-system/yoo-grid.entry.js +2 -1
- package/dist/design-system/yoo-pivot-table.entry.js +1 -1
- package/dist/esm/{grid-renderers-649f8b12.js → grid-renderers-4dd1c6d7.js} +4 -3
- package/dist/esm/yoo-ag-grid.entry.js +1 -1
- package/dist/esm/yoo-chat.entry.js +3 -2
- package/dist/esm/yoo-form-catalog.entry.js +11 -2
- package/dist/esm/yoo-form-connect.entry.js +47 -48
- package/dist/esm/yoo-form-input.entry.js +1 -1
- package/dist/esm/yoo-form-multi-input.entry.js +2 -2
- package/dist/esm/yoo-form-scorm.entry.js +2 -2
- package/dist/esm/yoo-grid.entry.js +2 -1
- package/dist/esm/yoo-pivot-table.entry.js +1 -1
- package/dist/types/components/form/form-connect/form-connect.d.ts +1 -2
- package/dist/types/components/form/form-connect/form-connect.interfaces.d.ts +1 -4
- package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/communicate/broadcast/broadcast.interface.d.ts +1 -0
- package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/ui/chat/chat.interface.d.ts +1 -0
- package/package.json +1 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Draggable, getContrastColor, getCssColor, getUUID, gsapTo, isImageUrl, translateMulti } from '@shared/utils';
|
2
2
|
import { h, Host } from '@stencil/core';
|
3
|
+
import { updateBounds } from '@yobi/utils/draggables';
|
3
4
|
import { showWarningBanner } from '@yobi/utils/helpers/draggable-tags-helpers';
|
4
5
|
import { setValueAndValidateInput } from '@yobi/utils/helpers/form-input-helpers';
|
5
6
|
import { difference, isEqual, shuffle } from 'lodash-es';
|
@@ -45,10 +46,6 @@ export class YooFormConnectComponent {
|
|
45
46
|
var _a, _b, _c, _d, _e, _f;
|
46
47
|
return ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) && ((_c = (_b = this.values[0]) === null || _b === void 0 ? void 0 : _b.filter(v => v)) === null || _c === void 0 ? void 0 : _c.length) === ((_f = (_e = (_d = this.values) === null || _d === void 0 ? void 0 : _d[1]) === null || _e === void 0 ? void 0 : _e.filter(v => v)) === null || _f === void 0 ? void 0 : _f.length);
|
47
48
|
}
|
48
|
-
get columnElements() {
|
49
|
-
var _a;
|
50
|
-
return Array.from(((_a = this.mainElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll('section')) || []);
|
51
|
-
}
|
52
49
|
get draggableElements() {
|
53
50
|
var _a;
|
54
51
|
return Array.from(((_a = this.mainElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.draggable')) || []);
|
@@ -118,14 +115,6 @@ export class YooFormConnectComponent {
|
|
118
115
|
}
|
119
116
|
});
|
120
117
|
this.getUserAnswers();
|
121
|
-
this.validate();
|
122
|
-
}
|
123
|
-
if (key === 'hit') {
|
124
|
-
this.draggables.map(dr => {
|
125
|
-
if ((dr.id !== draggable.id)) {
|
126
|
-
delete dr.hit;
|
127
|
-
}
|
128
|
-
});
|
129
118
|
}
|
130
119
|
return true;
|
131
120
|
}
|
@@ -166,11 +155,26 @@ export class YooFormConnectComponent {
|
|
166
155
|
const currentDraggable = draggableElement && ((_a = this.draggables) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === draggableElement.id));
|
167
156
|
if (currentDraggable) {
|
168
157
|
let tempConnectableElement;
|
169
|
-
const
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
158
|
+
const onClickTile = () => {
|
159
|
+
this.draggables.forEach(draggable => {
|
160
|
+
const selectedDraggable = draggable.id === currentDraggable.id && draggable;
|
161
|
+
draggable.selected = selectedDraggable && !currentDraggable.selected;
|
162
|
+
if (selectedDraggable.connectableId) {
|
163
|
+
draggable.selected = false;
|
164
|
+
delete draggable.connectableId;
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
this.getUserAnswers();
|
168
|
+
}
|
169
|
+
});
|
170
|
+
};
|
171
|
+
const onPressTile = (scope) => {
|
172
|
+
updateBounds({
|
173
|
+
dragHandler: draggableElement,
|
174
|
+
dragHandlerZone: draggableElement.parentElement,
|
175
|
+
draggable: scope,
|
176
|
+
host: this.host
|
177
|
+
});
|
174
178
|
};
|
175
179
|
const onDragStartTile = () => {
|
176
180
|
draggableElement.removeAttribute('hit');
|
@@ -178,17 +182,20 @@ export class YooFormConnectComponent {
|
|
178
182
|
};
|
179
183
|
const onDragTile = () => {
|
180
184
|
var _a, _b;
|
181
|
-
const overlapThreshold = '
|
185
|
+
const overlapThreshold = '45%';
|
182
186
|
const { x, width } = draggableElement.getBoundingClientRect();
|
183
187
|
const connectableThreshold = this.mainElement.querySelector('#connectables').getBoundingClientRect().x;
|
184
188
|
const isInConnectableArea = x + width >= connectableThreshold;
|
185
189
|
if (isInConnectableArea) {
|
186
|
-
this.connectableElements.forEach(
|
190
|
+
this.connectableElements.forEach(element => {
|
187
191
|
var _a, _b;
|
188
|
-
if (((_b = (_a = currentDraggable === null || currentDraggable === void 0 ? void 0 : currentDraggable.draggableInstance) === null || _a === void 0 ? void 0 : _a.hitTest) === null || _b === void 0 ? void 0 : _b.call(_a,
|
189
|
-
tempConnectableElement =
|
192
|
+
if (((_b = (_a = currentDraggable === null || currentDraggable === void 0 ? void 0 : currentDraggable.draggableInstance) === null || _a === void 0 ? void 0 : _a.hitTest) === null || _b === void 0 ? void 0 : _b.call(_a, element, overlapThreshold)) && element.id !== currentDraggable.connectableId) {
|
193
|
+
tempConnectableElement = element;
|
190
194
|
tempConnectableElement.setAttribute('hit', 'true');
|
191
195
|
}
|
196
|
+
else {
|
197
|
+
element.removeAttribute('hit');
|
198
|
+
}
|
192
199
|
});
|
193
200
|
}
|
194
201
|
if (tempConnectableElement && !currentDraggable.draggableInstance.hitTest(tempConnectableElement, overlapThreshold)) {
|
@@ -200,7 +207,6 @@ export class YooFormConnectComponent {
|
|
200
207
|
color: getContrastColor(connectableColor)
|
201
208
|
});
|
202
209
|
}
|
203
|
-
tempConnectableElement.removeAttribute('hit');
|
204
210
|
tempConnectableElement = null;
|
205
211
|
}
|
206
212
|
};
|
@@ -208,9 +214,10 @@ export class YooFormConnectComponent {
|
|
208
214
|
await gsapTo(draggableElement, this.animated ? 0.25 : 0, { x: 0, y: 0 });
|
209
215
|
draggableElement.style.removeProperty('z-index');
|
210
216
|
if (tempConnectableElement) {
|
217
|
+
currentDraggable.selected = false;
|
211
218
|
currentDraggable.connectableId = tempConnectableElement.id;
|
212
|
-
[...this.connectableElements, ...this.draggableElements].forEach(e => e.removeAttribute('hit'));
|
213
219
|
this.autoCompleteLastConnection();
|
220
|
+
tempConnectableElement.removeAttribute('hit');
|
214
221
|
}
|
215
222
|
tempConnectableElement = null;
|
216
223
|
};
|
@@ -218,8 +225,8 @@ export class YooFormConnectComponent {
|
|
218
225
|
currentDraggable.draggableInstance = new Draggable(draggableElement, {
|
219
226
|
zIndexBoost: false,
|
220
227
|
autoScroll: 1,
|
221
|
-
|
222
|
-
onPress
|
228
|
+
onClick: onClickTile,
|
229
|
+
onPress() { onPressTile(this); },
|
223
230
|
onDragStart: onDragStartTile,
|
224
231
|
onDrag: onDragTile,
|
225
232
|
onRelease: onReleaseTile
|
@@ -236,7 +243,7 @@ export class YooFormConnectComponent {
|
|
236
243
|
var _a, _b;
|
237
244
|
const freeDraggables = this.draggables.filter(d => !d.connectableId);
|
238
245
|
if ((freeDraggables === null || freeDraggables === void 0 ? void 0 : freeDraggables.length) === 1 && ((_a = this.draggables) === null || _a === void 0 ? void 0 : _a.length) > 1) {
|
239
|
-
const lastDraggable = freeDraggables
|
246
|
+
const [lastDraggable] = freeDraggables;
|
240
247
|
const lastConectableId = (_b = difference(this.connectables.map(({ id }) => id), this.draggables.map(({ connectableId }) => connectableId))) === null || _b === void 0 ? void 0 : _b[0];
|
241
248
|
lastDraggable.connectableId = lastConectableId;
|
242
249
|
}
|
@@ -250,33 +257,25 @@ export class YooFormConnectComponent {
|
|
250
257
|
var _a;
|
251
258
|
const tileType = `${name}s`;
|
252
259
|
const onConnectableClick = (connectable) => {
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
const currentDraggable = (_a = this.draggables) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === draggable.id);
|
262
|
-
currentDraggable.hit = { value: !((_b = currentDraggable.hit) === null || _b === void 0 ? void 0 : _b.value) && !currentDraggable.connectableId };
|
263
|
-
delete currentDraggable.connectableId;
|
264
|
-
this.getUserAnswers();
|
265
|
-
this.validate();
|
260
|
+
this.draggables.forEach(draggable => {
|
261
|
+
const selectedDraggable = draggable.selected && draggable;
|
262
|
+
if (selectedDraggable && connectable) {
|
263
|
+
draggable.selected = false;
|
264
|
+
draggable.connectableId = connectable.id;
|
265
|
+
this.autoCompleteLastConnection();
|
266
|
+
}
|
267
|
+
});
|
266
268
|
};
|
267
269
|
return (h("section", { id: tileType }, (_a = this[tileType]) === null || _a === void 0 ? void 0 : _a.map((item) => {
|
268
270
|
const isDraggable = name === 'draggable';
|
269
|
-
const { id, value, connectableId,
|
271
|
+
const { id, value, connectableId, selected } = item || {};
|
270
272
|
const isImage = value && isImageUrl(value);
|
271
273
|
const connectable = this.draggables.find(({ connectableId }) => connectableId === id);
|
272
274
|
const isConnected = !!(connectableId || connectable);
|
273
|
-
const tileColor = color || (connectable === null || connectable === void 0 ? void 0 : connectable.color);
|
274
|
-
const
|
275
|
-
const tileAttr = {
|
276
|
-
|
277
|
-
};
|
278
|
-
const tileClick = () => isDraggable ? onDraggableClick(item) : onConnectableClick(item);
|
279
|
-
return !!value && h("div", { ...tileAttr, id: id, key: id, class: name, onTouchStart: () => tileClick(), onClick: () => tileClick() }, !isImage ? h("p", null, translateMulti(value)) : [h("yoo-img", { type: "background", src: value }), h("div", { id: "overlay" })], this.readonly && this.renderCorrectionIcon(value));
|
275
|
+
const tileColor = item.color || (connectable === null || connectable === void 0 ? void 0 : connectable.color);
|
276
|
+
const { backgroundColor, color } = { backgroundColor: getCssColor(tileColor), color: getContrastColor(tileColor) };
|
277
|
+
const tileAttr = { type: isImage ? 'image' : 'text', connected: isConnected, hit: isDraggable && !isConnected && selected };
|
278
|
+
return (!!value && (h("div", { ...tileAttr, style: isConnected && !isImage && { backgroundColor, color }, id: id, key: id, class: name, ...(!isDraggable && { onTouchStart: () => onConnectableClick(item), onClick: () => onConnectableClick(item) }) }, !isImage ? h("p", null, translateMulti(value)) : [h("yoo-img", { type: "background", src: value }), h("div", { class: "overlay", style: isConnected && { backgroundColor, color } })], this.readonly && this.renderCorrectionIcon(value))));
|
280
279
|
})));
|
281
280
|
}
|
282
281
|
renderBanner() {
|
@@ -211,7 +211,7 @@ export class YooFormMultiInputComponent {
|
|
211
211
|
const rowsCount = Math.max(...[this.getMaxRowsOf('init'), this.getMaxRowsOf('min'), values.length]) || 1;
|
212
212
|
this.rows = Array.from({ length: rowsCount }).map((_, rowIndex) => {
|
213
213
|
return this.columnsDefinition.map((column, colIndex) => {
|
214
|
-
const { hasImage, maxRows, hasText } = column;
|
214
|
+
const { hasImage, maxRows, hasText, forceObjectValue } = column;
|
215
215
|
const rowValue = values === null || values === void 0 ? void 0 : values[rowIndex];
|
216
216
|
const value = Array.isArray(rowValue) ? rowValue === null || rowValue === void 0 ? void 0 : rowValue[colIndex] : rowValue;
|
217
217
|
const [text, file, selection] = ['text', 'file', 'selection'].map((type) => (Array.isArray(value) ? value[colIndex] : typeof value === 'object' ? value === null || value === void 0 ? void 0 : value[type] : value));
|
@@ -220,7 +220,7 @@ export class YooFormMultiInputComponent {
|
|
220
220
|
rowIndex,
|
221
221
|
column,
|
222
222
|
hidden: rowIndex + 1 > maxRows || (!value && rowIndex + 1 > column.initRows),
|
223
|
-
value: {
|
223
|
+
value: forceObjectValue ? { text: value } : {
|
224
224
|
...(hasText && { text }),
|
225
225
|
...(hasImage && { file: isImageUrl(file) ? file : '' }),
|
226
226
|
...(selection && { selection })
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { IRoute } from '@shared/interfaces';
|
2
|
-
import { getAsyncExtraData,
|
2
|
+
import { getAsyncExtraData, getCurrentLanguage, getLocaleVariantScormCloudId, getSession, isAndroid, isNativeMobile, isSafari, isWeb, screenOrientationLock, screenOrientationUnlock, showAlert, showModal, translate, translateMulti } from '@shared/utils';
|
3
3
|
import { forceUpdate, h } from '@stencil/core';
|
4
4
|
import { setValidator, setValueAndValidateInput } from '@yobi/utils/helpers/form-input-helpers';
|
5
5
|
import { get, isNumber } from 'lodash-es';
|
@@ -75,7 +75,7 @@ export class YooFormScormComponent {
|
|
75
75
|
}
|
76
76
|
if (ret === null || ret === void 0 ? void 0 : ret.launchLink) {
|
77
77
|
if (isNativeMobile()) {
|
78
|
-
const iab = window.open(ret.launchLink, isNativeMobile() ? '_blank' : '_system', `location=${isAndroid() ? 'yes,hideurlbar=yes' : 'no'},toolbar=yes,hidenavigationbuttons=${isAndroid() ? 'yes' : 'no'},closebuttoncaption=${translate('CLOSE')},beforeload=yes,allowInlineMediaPlayback=yes
|
78
|
+
const iab = window.open(ret.launchLink, isNativeMobile() ? '_blank' : '_system', `location=${isAndroid() ? 'yes,hideurlbar=yes' : 'no'},toolbar=yes,hidenavigationbuttons=${isAndroid() ? 'yes' : 'no'},closebuttoncaption=${translate('CLOSE')},beforeload=yes,allowInlineMediaPlayback=yes`);
|
79
79
|
iab.addEventListener('exit', () => {
|
80
80
|
if (!this.isPreview) {
|
81
81
|
this.onCloseScormPlayer();
|
@@ -1083,6 +1083,7 @@ function incentiveRankingRenderer(params) {
|
|
1083
1083
|
function courseStatusRenderer(params) {
|
1084
1084
|
var _a, _b;
|
1085
1085
|
const status = isString(params.value) ? params.value : (_a = params.value) === null || _a === void 0 ? void 0 : _a.tag;
|
1086
|
+
const finishedDate = (_b = params === null || params === void 0 ? void 0 : params.data) === null || _b === void 0 ? void 0 : _b.finishedDate;
|
1086
1087
|
const _STATUS = {
|
1087
1088
|
'-': {
|
1088
1089
|
color: 'stable',
|
@@ -1094,7 +1095,7 @@ function courseStatusRenderer(params) {
|
|
1094
1095
|
},
|
1095
1096
|
completed: {
|
1096
1097
|
color: 'success-20',
|
1097
|
-
content: `<yoo-icon size="small" slot="start" name="check"></yoo-icon>${translate('COMPLETEDON')} ${
|
1098
|
+
content: `<yoo-icon size="small" slot="start" name="check"></yoo-icon>${translate(finishedDate ? 'COMPLETEDON' : 'COMPLETED')} ${finishedDate ? dateFormat(finishedDate, translate('FORMATDATE')) : ''}`
|
1098
1099
|
},
|
1099
1100
|
notstarted: {
|
1100
1101
|
color: 'danger-20',
|
@@ -1556,8 +1557,8 @@ export class CustomLoadingCellRenderer {
|
|
1556
1557
|
init(params) {
|
1557
1558
|
this.eGui = document.createElement('div');
|
1558
1559
|
this.eGui.innerHTML = `
|
1559
|
-
<div class="ag-custom-loading-cell" style="padding-left: 10px; line-height: 25px;">
|
1560
|
-
<i class="fas fa-spinner fa-pulse"></i>
|
1560
|
+
<div class="ag-custom-loading-cell" style="padding-left: 10px; line-height: 25px;">
|
1561
|
+
<i class="fas fa-spinner fa-pulse"></i>
|
1561
1562
|
<span>${params.loadingMessage} </span>
|
1562
1563
|
</div>
|
1563
1564
|
`;
|
@@ -916,6 +916,7 @@ export class YooGridComponent {
|
|
916
916
|
this.finalGridConfig = {
|
917
917
|
...this.gridConfig,
|
918
918
|
treeData: this.isTree(),
|
919
|
+
onSortChanged: () => this.onGridStateUpdate(),
|
919
920
|
onColumnResized: () => this.onGridStateUpdate(),
|
920
921
|
onColumnMoved: () => this.onGridStateUpdate(),
|
921
922
|
onColumnVisible: () => this.onGridStateUpdate(),
|
@@ -554,7 +554,7 @@ export class YooChatComponent {
|
|
554
554
|
], this.broadcastParams.finished && this.broadcastParams.shareOptions && this.renderShareOptions(this.broadcastParams.shareOptions), !this.broadcastParams.isLive && !this.broadcastParams.finished && this.broadcastParams.footerAction && getButton(this.broadcastParams.footerAction)));
|
555
555
|
}
|
556
556
|
renderVideo() {
|
557
|
-
var _a;
|
557
|
+
var _a, _b;
|
558
558
|
const notCordova = !isNativeMobile() && this.broadcastParams.isLive;
|
559
559
|
if (!((_a = this.broadcastParams) === null || _a === void 0 ? void 0 : _a.videoSrc) && !notCordova) {
|
560
560
|
return;
|
@@ -570,7 +570,8 @@ export class YooChatComponent {
|
|
570
570
|
extraClass: 'fullscreen'
|
571
571
|
},
|
572
572
|
preventVcAuto: true,
|
573
|
-
preventAutoPauseOnBlur: true
|
573
|
+
preventAutoPauseOnBlur: true,
|
574
|
+
type: (((_b = this.broadcastParams) === null || _b === void 0 ? void 0 : _b.useHTML5) ? 'html5' : 'videojs')
|
574
575
|
};
|
575
576
|
return (h("div", { ref: (el) => (this.videoElWrapper = el), class: {
|
576
577
|
'video-outer-container': true,
|
@@ -1341,6 +1341,7 @@ function incentiveRankingRenderer(params) {
|
|
1341
1341
|
function courseStatusRenderer(params) {
|
1342
1342
|
var _a, _b;
|
1343
1343
|
const status = isString(params.value) ? params.value : (_a = params.value) === null || _a === void 0 ? void 0 : _a.tag;
|
1344
|
+
const finishedDate = (_b = params === null || params === void 0 ? void 0 : params.data) === null || _b === void 0 ? void 0 : _b.finishedDate;
|
1344
1345
|
const _STATUS = {
|
1345
1346
|
'-': {
|
1346
1347
|
color: 'stable',
|
@@ -1352,7 +1353,7 @@ function courseStatusRenderer(params) {
|
|
1352
1353
|
},
|
1353
1354
|
completed: {
|
1354
1355
|
color: 'success-20',
|
1355
|
-
content: `<yoo-icon size="small" slot="start" name="check"></yoo-icon>${translate('COMPLETEDON')} ${
|
1356
|
+
content: `<yoo-icon size="small" slot="start" name="check"></yoo-icon>${translate(finishedDate ? 'COMPLETEDON' : 'COMPLETED')} ${finishedDate ? dateFormat(finishedDate, translate('FORMATDATE')) : ''}`
|
1356
1357
|
},
|
1357
1358
|
notstarted: {
|
1358
1359
|
color: 'danger-20',
|
@@ -1814,8 +1815,8 @@ class CustomLoadingCellRenderer {
|
|
1814
1815
|
init(params) {
|
1815
1816
|
this.eGui = document.createElement('div');
|
1816
1817
|
this.eGui.innerHTML = `
|
1817
|
-
<div class="ag-custom-loading-cell" style="padding-left: 10px; line-height: 25px;">
|
1818
|
-
<i class="fas fa-spinner fa-pulse"></i>
|
1818
|
+
<div class="ag-custom-loading-cell" style="padding-left: 10px; line-height: 25px;">
|
1819
|
+
<i class="fas fa-spinner fa-pulse"></i>
|
1819
1820
|
<span>${params.loadingMessage} </span>
|
1820
1821
|
</div>
|
1821
1822
|
`;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { r as registerInstance, h, e as Host, g as getElement } from './index-2cf5b950.js';
|
2
2
|
import { g as global, n as compact, x as isObject, ad as min, O as max, o as isNumber, a7 as sum$1, k as keys$1, C as sortBy, M as reduce, i as isNil, D as cloneDeep, E as get$1, J as omit, p as isString } from './lodash-cd4a9ba3.js';
|
3
3
|
import { g as getAppContext } from './common-helpers-f4f92196.js';
|
4
|
-
import { a as getKeyTemplate, p as progressValue, v as validationProgressValue, c as conformityProgressValue, b as conformityRelativeProgressValue, g as getRenderer } from './grid-renderers-
|
4
|
+
import { a as getKeyTemplate, p as progressValue, v as validationProgressValue, c as conformityProgressValue, b as conformityRelativeProgressValue, g as getRenderer } from './grid-renderers-4dd1c6d7.js';
|
5
5
|
import { bW as dateParse, M as getAsyncExtraData, t as translate } from './index-0a31764b.js';
|
6
6
|
import './index-ee2b347f.js';
|
7
7
|
import './incentive-helpers-94537d6e.js';
|
@@ -572,7 +572,7 @@ const YooChatComponent = class {
|
|
572
572
|
], this.broadcastParams.finished && this.broadcastParams.shareOptions && this.renderShareOptions(this.broadcastParams.shareOptions), !this.broadcastParams.isLive && !this.broadcastParams.finished && this.broadcastParams.footerAction && getButton(this.broadcastParams.footerAction)));
|
573
573
|
}
|
574
574
|
renderVideo() {
|
575
|
-
var _a;
|
575
|
+
var _a, _b;
|
576
576
|
const notCordova = !isNativeMobile() && this.broadcastParams.isLive;
|
577
577
|
if (!((_a = this.broadcastParams) === null || _a === void 0 ? void 0 : _a.videoSrc) && !notCordova) {
|
578
578
|
return;
|
@@ -588,7 +588,8 @@ const YooChatComponent = class {
|
|
588
588
|
extraClass: 'fullscreen'
|
589
589
|
},
|
590
590
|
preventVcAuto: true,
|
591
|
-
preventAutoPauseOnBlur: true
|
591
|
+
preventAutoPauseOnBlur: true,
|
592
|
+
type: (((_b = this.broadcastParams) === null || _b === void 0 ? void 0 : _b.useHTML5) ? 'html5' : 'videojs')
|
592
593
|
};
|
593
594
|
return (h("div", { ref: (el) => (this.videoElWrapper = el), class: {
|
594
595
|
'video-outer-container': true,
|
@@ -194,9 +194,14 @@ const YooFormCatalogComponent = class {
|
|
194
194
|
else {
|
195
195
|
value[product._id] = quantity > 0 ? quantity : 0;
|
196
196
|
}
|
197
|
-
|
197
|
+
this.products = this.products || [];
|
198
|
+
const index = this.products.findIndex((p) => p._id === product._id);
|
199
|
+
if (index < 0) {
|
198
200
|
this.products.push(product);
|
199
201
|
}
|
202
|
+
else {
|
203
|
+
this.products[index] = product;
|
204
|
+
}
|
200
205
|
this.setValue(value);
|
201
206
|
}
|
202
207
|
addProduct(product) {
|
@@ -214,9 +219,13 @@ const YooFormCatalogComponent = class {
|
|
214
219
|
value[product._id] = product.step || 1;
|
215
220
|
}
|
216
221
|
this.products = this.products || [];
|
217
|
-
|
222
|
+
const index = this.products.findIndex((p) => p._id === product._id);
|
223
|
+
if (index < 0) {
|
218
224
|
this.products.push(product);
|
219
225
|
}
|
226
|
+
else {
|
227
|
+
this.products[index] = product;
|
228
|
+
}
|
220
229
|
this.setValue(value);
|
221
230
|
}
|
222
231
|
clearProduct(product) {
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { r as registerInstance, i as createEvent, h, e as Host, g as getElement } from './index-2cf5b950.js';
|
2
2
|
import { b6 as getUUID, H as getCssColor, b9 as getContrastColor, b5 as gsapTo, b7 as Draggable, ba as isImageUrl, a0 as translateMulti } from './index-0a31764b.js';
|
3
|
+
import { u as updateBounds } from './index-0ef5b513.js';
|
3
4
|
import { s as showWarningBanner } from './draggable-tags-helpers-f7c49cf1.js';
|
4
5
|
import { s as setValueAndValidateInput } from './form-input-helpers-c4bbb638.js';
|
5
6
|
import { B as isEqual, T as shuffle, U as difference } from './lodash-cd4a9ba3.js';
|
@@ -9,7 +10,7 @@ import './common-helpers-f4f92196.js';
|
|
9
10
|
|
10
11
|
const CONNECT_TYPES = ['draggable', 'connectable'];
|
11
12
|
|
12
|
-
const formConnectCss = "svg:not(:root){overflow:hidden}.bg-accent{background-color:var(--accent, #276ef1) !important}.accent{color:var(--accent, #276ef1);fill:var(--accent, #276ef1)}.border-accent{border:var(--border-width-02, 0.125rem) solid var(--accent, #276ef1)}.bg-app-color{background-color:var(--app-color, #5a30f4) !important}.app-color{color:var(--app-color, #5a30f4);fill:var(--app-color, #5a30f4)}.border-app-color{border:var(--border-width-02, 0.125rem) solid var(--app-color, #5a30f4)}.bg-danger{background-color:var(--danger, #d44333) !important}.danger{color:var(--danger, #d44333);fill:var(--danger, #d44333)}.border-danger{border:var(--border-width-02, 0.125rem) solid var(--danger, #d44333)}.bg-dark{background-color:var(--dark, #000000) !important}.dark{color:var(--dark, #000000);fill:var(--dark, #000000)}.border-dark{border:var(--border-width-02, 0.125rem) solid var(--dark, #000000)}.bg-energized{background-color:var(--energized, #ffc043) !important}.energized{color:var(--energized, #ffc043);fill:var(--energized, #ffc043)}.border-energized{border:var(--border-width-02, 0.125rem) solid var(--energized, #ffc043)}.bg-info{background-color:var(--info, #d84c96) !important}.info{color:var(--info, #d84c96);fill:var(--info, #d84c96)}.border-info{border:var(--border-width-02, 0.125rem) solid var(--info, #d84c96)}.bg-light{background-color:var(--light, #ffffff) !important}.light{color:var(--light, #ffffff);fill:var(--light, #ffffff)}.border-light{border:var(--border-width-02, 0.125rem) solid var(--light, #ffffff)}.bg-stable{background-color:var(--stable, #adadad) !important}.stable{color:var(--stable, #adadad);fill:var(--stable, #adadad)}.border-stable{border:var(--border-width-02, 0.125rem) solid var(--stable, #adadad)}.bg-stable-alt{background-color:var(--stable-alt, #d0d0d0) !important}.stable-alt{color:var(--stable-alt, #d0d0d0);fill:var(--stable-alt, #d0d0d0)}.border-stable-alt{border:var(--border-width-02, 0.125rem) solid var(--stable-alt, #d0d0d0)}.bg-stable-light{background-color:var(--stable-light, #f1f1f1) !important}.stable-light{color:var(--stable-light, #f1f1f1);fill:var(--stable-light, #f1f1f1)}.border-stable-light{border:var(--border-width-02, 0.125rem) solid var(--stable-light, #f1f1f1)}.bg-stable-ultralight{background-color:var(--stable-ultralight, #fafafa) !important}.stable-ultralight{color:var(--stable-ultralight, #fafafa);fill:var(--stable-ultralight, #fafafa)}.border-stable-ultralight{border:var(--border-width-02, 0.125rem) solid var(--stable-ultralight, #fafafa)}.bg-success{background-color:var(--success, #3aa76d) !important}.success{color:var(--success, #3aa76d);fill:var(--success, #3aa76d)}.border-success{border:var(--border-width-02, 0.125rem) solid var(--success, #3aa76d)}.bg-text-color{background-color:var(--text-color, #807f83) !important}.text-color{color:var(--text-color, #807f83);fill:var(--text-color, #807f83)}.border-text-color{border:var(--border-width-02, 0.125rem) solid var(--text-color, #807f83)}.bg-warning{background-color:var(--warning, #ed6e33) !important}.warning{color:var(--warning, #ed6e33);fill:var(--warning, #ed6e33)}.border-warning{border:var(--border-width-02, 0.125rem) solid var(--warning, #ed6e33)}.bg-wood{background-color:var(--wood, #99644c) !important}.wood{color:var(--wood, #99644c);fill:var(--wood, #99644c)}.border-wood{border:var(--border-width-02, 0.125rem) solid var(--wood, #99644c)}:host{display:block;width:100%;max-width:30rem}:host yoo-banner{height:0}:host yoo-banner p{padding:0}:host yoo-icon{position:absolute;top:var(--spacing-08, 0.5rem);right:var(--spacing-08, 0.5rem);background:var(--light, #ffffff);border-radius:50%}:host yoo-img{border-radius:inherit}:host
|
13
|
+
const formConnectCss = "svg:not(:root){overflow:hidden}.bg-accent{background-color:var(--accent, #276ef1) !important}.accent{color:var(--accent, #276ef1);fill:var(--accent, #276ef1)}.border-accent{border:var(--border-width-02, 0.125rem) solid var(--accent, #276ef1)}.bg-app-color{background-color:var(--app-color, #5a30f4) !important}.app-color{color:var(--app-color, #5a30f4);fill:var(--app-color, #5a30f4)}.border-app-color{border:var(--border-width-02, 0.125rem) solid var(--app-color, #5a30f4)}.bg-danger{background-color:var(--danger, #d44333) !important}.danger{color:var(--danger, #d44333);fill:var(--danger, #d44333)}.border-danger{border:var(--border-width-02, 0.125rem) solid var(--danger, #d44333)}.bg-dark{background-color:var(--dark, #000000) !important}.dark{color:var(--dark, #000000);fill:var(--dark, #000000)}.border-dark{border:var(--border-width-02, 0.125rem) solid var(--dark, #000000)}.bg-energized{background-color:var(--energized, #ffc043) !important}.energized{color:var(--energized, #ffc043);fill:var(--energized, #ffc043)}.border-energized{border:var(--border-width-02, 0.125rem) solid var(--energized, #ffc043)}.bg-info{background-color:var(--info, #d84c96) !important}.info{color:var(--info, #d84c96);fill:var(--info, #d84c96)}.border-info{border:var(--border-width-02, 0.125rem) solid var(--info, #d84c96)}.bg-light{background-color:var(--light, #ffffff) !important}.light{color:var(--light, #ffffff);fill:var(--light, #ffffff)}.border-light{border:var(--border-width-02, 0.125rem) solid var(--light, #ffffff)}.bg-stable{background-color:var(--stable, #adadad) !important}.stable{color:var(--stable, #adadad);fill:var(--stable, #adadad)}.border-stable{border:var(--border-width-02, 0.125rem) solid var(--stable, #adadad)}.bg-stable-alt{background-color:var(--stable-alt, #d0d0d0) !important}.stable-alt{color:var(--stable-alt, #d0d0d0);fill:var(--stable-alt, #d0d0d0)}.border-stable-alt{border:var(--border-width-02, 0.125rem) solid var(--stable-alt, #d0d0d0)}.bg-stable-light{background-color:var(--stable-light, #f1f1f1) !important}.stable-light{color:var(--stable-light, #f1f1f1);fill:var(--stable-light, #f1f1f1)}.border-stable-light{border:var(--border-width-02, 0.125rem) solid var(--stable-light, #f1f1f1)}.bg-stable-ultralight{background-color:var(--stable-ultralight, #fafafa) !important}.stable-ultralight{color:var(--stable-ultralight, #fafafa);fill:var(--stable-ultralight, #fafafa)}.border-stable-ultralight{border:var(--border-width-02, 0.125rem) solid var(--stable-ultralight, #fafafa)}.bg-success{background-color:var(--success, #3aa76d) !important}.success{color:var(--success, #3aa76d);fill:var(--success, #3aa76d)}.border-success{border:var(--border-width-02, 0.125rem) solid var(--success, #3aa76d)}.bg-text-color{background-color:var(--text-color, #807f83) !important}.text-color{color:var(--text-color, #807f83);fill:var(--text-color, #807f83)}.border-text-color{border:var(--border-width-02, 0.125rem) solid var(--text-color, #807f83)}.bg-warning{background-color:var(--warning, #ed6e33) !important}.warning{color:var(--warning, #ed6e33);fill:var(--warning, #ed6e33)}.border-warning{border:var(--border-width-02, 0.125rem) solid var(--warning, #ed6e33)}.bg-wood{background-color:var(--wood, #99644c) !important}.wood{color:var(--wood, #99644c);fill:var(--wood, #99644c)}.border-wood{border:var(--border-width-02, 0.125rem) solid var(--wood, #99644c)}:host{display:block;width:100%;max-width:30rem}:host yoo-banner{height:0}:host yoo-banner p{padding:0}:host yoo-icon{position:absolute;top:var(--spacing-08, 0.5rem);right:var(--spacing-08, 0.5rem);background:var(--light, #ffffff);border-radius:50%}:host yoo-img{border-radius:inherit}:host #draggables,:host #connectables{position:relative;width:calc(50% - var(--spacing-08, 0.5rem));height:-webkit-max-content;height:-moz-max-content;height:max-content}:host main{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;padding-top:var(--spacing-08, 0.5rem);word-break:break-word;background-color:var(--stable-alt-20, rgba(208, 208, 208, 0.2));border-radius:var(--border-radius-04, 0.25rem);-webkit-transition:height 750ms ease-in-out;transition:height 750ms ease-in-out}:host main:first-of-type{padding-left:var(--spacing-08, 0.5rem)}:host main:last-of-type{padding-right:var(--spacing-08, 0.5rem)}:host main[style*=height]{overflow:hidden auto}:host main.overflowing{overflow:hidden auto}:host main.overflowing::-webkit-scrollbar{width:var(--spacing-08, 0.5rem)}:host main.overflowing::-webkit-scrollbar-track{border-radius:var(--border-radius-04, 0.25rem);-webkit-box-shadow:inset 0 0 5px var(--stable, #adadad);box-shadow:inset 0 0 5px var(--stable, #adadad)}:host main.overflowing::-webkit-scrollbar-thumb{background:var(--app-color, #5a30f4);border-radius:var(--border-radius-04, 0.25rem)}:host [type],:host .overlay{-webkit-transition:background-color 0.25s ease-in-out, color 0.25s ease-in-out;transition:background-color 0.25s ease-in-out, color 0.25s ease-in-out}:host .connectable,:host .draggable{position:relative;max-width:15rem;margin-bottom:var(--spacing-08, 0.5rem);background-color:var(--light, #ffffff);border-radius:var(--border-radius-08, 0.5rem);-webkit-box-shadow:var(--shadow-02, 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1));box-shadow:var(--shadow-02, 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1));cursor:pointer}:host .connectable:before,:host .draggable:before{display:block;width:0;height:0;padding-bottom:75%;content:\"\"}:host .connectable[type=image],:host .draggable[type=image]{padding:0}:host .connectable[type=image]:not([hit]),:host .draggable[type=image]:not([hit]){background-color:transparent}:host .connectable[type=image][hit] yoo-img,:host .draggable[type=image][hit] yoo-img{opacity:0.6;-webkit-transition:opacity 0.25s ease-in-out;transition:opacity 0.25s ease-in-out}:host .connectable[type=image]>*:not(yoo-icon),:host .draggable[type=image]>*:not(yoo-icon){top:0;left:0;width:100%;height:100%}:host .connectable[type=text][hit],:host .draggable[type=text][hit]{background-color:var(--stable-light, #f1f1f1)}:host .connectable[type=text] p,:host .draggable[type=text] p{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;max-height:calc(100% - var(--spacing-16, 1rem));margin:0;padding:var(--spacing-16, 1rem);overflow:hidden;font-size:var(--font-size-14, 0.875rem);text-align:center}:host .connectable[type=text]>*:not(yoo-icon),:host .draggable[type=text]>*:not(yoo-icon){position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .connectable>*:not(yoo-icon),:host .draggable>*:not(yoo-icon){position:absolute}:host .overlay{background-color:inherit;border-radius:inherit;opacity:0.6}";
|
13
14
|
|
14
15
|
const DEFAULT_TILES_COLORS = ['warning', 'accent', 'app-color', 'info', 'energized'];
|
15
16
|
const YooFormConnectComponent = class {
|
@@ -55,10 +56,6 @@ const YooFormConnectComponent = class {
|
|
55
56
|
var _a, _b, _c, _d, _e, _f;
|
56
57
|
return ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) && ((_c = (_b = this.values[0]) === null || _b === void 0 ? void 0 : _b.filter(v => v)) === null || _c === void 0 ? void 0 : _c.length) === ((_f = (_e = (_d = this.values) === null || _d === void 0 ? void 0 : _d[1]) === null || _e === void 0 ? void 0 : _e.filter(v => v)) === null || _f === void 0 ? void 0 : _f.length);
|
57
58
|
}
|
58
|
-
get columnElements() {
|
59
|
-
var _a;
|
60
|
-
return Array.from(((_a = this.mainElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll('section')) || []);
|
61
|
-
}
|
62
59
|
get draggableElements() {
|
63
60
|
var _a;
|
64
61
|
return Array.from(((_a = this.mainElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.draggable')) || []);
|
@@ -128,14 +125,6 @@ const YooFormConnectComponent = class {
|
|
128
125
|
}
|
129
126
|
});
|
130
127
|
this.getUserAnswers();
|
131
|
-
this.validate();
|
132
|
-
}
|
133
|
-
if (key === 'hit') {
|
134
|
-
this.draggables.map(dr => {
|
135
|
-
if ((dr.id !== draggable.id)) {
|
136
|
-
delete dr.hit;
|
137
|
-
}
|
138
|
-
});
|
139
128
|
}
|
140
129
|
return true;
|
141
130
|
}
|
@@ -176,11 +165,26 @@ const YooFormConnectComponent = class {
|
|
176
165
|
const currentDraggable = draggableElement && ((_a = this.draggables) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === draggableElement.id));
|
177
166
|
if (currentDraggable) {
|
178
167
|
let tempConnectableElement;
|
179
|
-
const
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
168
|
+
const onClickTile = () => {
|
169
|
+
this.draggables.forEach(draggable => {
|
170
|
+
const selectedDraggable = draggable.id === currentDraggable.id && draggable;
|
171
|
+
draggable.selected = selectedDraggable && !currentDraggable.selected;
|
172
|
+
if (selectedDraggable.connectableId) {
|
173
|
+
draggable.selected = false;
|
174
|
+
delete draggable.connectableId;
|
175
|
+
}
|
176
|
+
else {
|
177
|
+
this.getUserAnswers();
|
178
|
+
}
|
179
|
+
});
|
180
|
+
};
|
181
|
+
const onPressTile = (scope) => {
|
182
|
+
updateBounds({
|
183
|
+
dragHandler: draggableElement,
|
184
|
+
dragHandlerZone: draggableElement.parentElement,
|
185
|
+
draggable: scope,
|
186
|
+
host: this.host
|
187
|
+
});
|
184
188
|
};
|
185
189
|
const onDragStartTile = () => {
|
186
190
|
draggableElement.removeAttribute('hit');
|
@@ -188,17 +192,20 @@ const YooFormConnectComponent = class {
|
|
188
192
|
};
|
189
193
|
const onDragTile = () => {
|
190
194
|
var _a, _b;
|
191
|
-
const overlapThreshold = '
|
195
|
+
const overlapThreshold = '45%';
|
192
196
|
const { x, width } = draggableElement.getBoundingClientRect();
|
193
197
|
const connectableThreshold = this.mainElement.querySelector('#connectables').getBoundingClientRect().x;
|
194
198
|
const isInConnectableArea = x + width >= connectableThreshold;
|
195
199
|
if (isInConnectableArea) {
|
196
|
-
this.connectableElements.forEach(
|
200
|
+
this.connectableElements.forEach(element => {
|
197
201
|
var _a, _b;
|
198
|
-
if (((_b = (_a = currentDraggable === null || currentDraggable === void 0 ? void 0 : currentDraggable.draggableInstance) === null || _a === void 0 ? void 0 : _a.hitTest) === null || _b === void 0 ? void 0 : _b.call(_a,
|
199
|
-
tempConnectableElement =
|
202
|
+
if (((_b = (_a = currentDraggable === null || currentDraggable === void 0 ? void 0 : currentDraggable.draggableInstance) === null || _a === void 0 ? void 0 : _a.hitTest) === null || _b === void 0 ? void 0 : _b.call(_a, element, overlapThreshold)) && element.id !== currentDraggable.connectableId) {
|
203
|
+
tempConnectableElement = element;
|
200
204
|
tempConnectableElement.setAttribute('hit', 'true');
|
201
205
|
}
|
206
|
+
else {
|
207
|
+
element.removeAttribute('hit');
|
208
|
+
}
|
202
209
|
});
|
203
210
|
}
|
204
211
|
if (tempConnectableElement && !currentDraggable.draggableInstance.hitTest(tempConnectableElement, overlapThreshold)) {
|
@@ -210,7 +217,6 @@ const YooFormConnectComponent = class {
|
|
210
217
|
color: getContrastColor(connectableColor)
|
211
218
|
});
|
212
219
|
}
|
213
|
-
tempConnectableElement.removeAttribute('hit');
|
214
220
|
tempConnectableElement = null;
|
215
221
|
}
|
216
222
|
};
|
@@ -218,9 +224,10 @@ const YooFormConnectComponent = class {
|
|
218
224
|
await gsapTo(draggableElement, this.animated ? 0.25 : 0, { x: 0, y: 0 });
|
219
225
|
draggableElement.style.removeProperty('z-index');
|
220
226
|
if (tempConnectableElement) {
|
227
|
+
currentDraggable.selected = false;
|
221
228
|
currentDraggable.connectableId = tempConnectableElement.id;
|
222
|
-
[...this.connectableElements, ...this.draggableElements].forEach(e => e.removeAttribute('hit'));
|
223
229
|
this.autoCompleteLastConnection();
|
230
|
+
tempConnectableElement.removeAttribute('hit');
|
224
231
|
}
|
225
232
|
tempConnectableElement = null;
|
226
233
|
};
|
@@ -228,8 +235,8 @@ const YooFormConnectComponent = class {
|
|
228
235
|
currentDraggable.draggableInstance = new Draggable(draggableElement, {
|
229
236
|
zIndexBoost: false,
|
230
237
|
autoScroll: 1,
|
231
|
-
|
232
|
-
onPress
|
238
|
+
onClick: onClickTile,
|
239
|
+
onPress() { onPressTile(this); },
|
233
240
|
onDragStart: onDragStartTile,
|
234
241
|
onDrag: onDragTile,
|
235
242
|
onRelease: onReleaseTile
|
@@ -246,7 +253,7 @@ const YooFormConnectComponent = class {
|
|
246
253
|
var _a, _b;
|
247
254
|
const freeDraggables = this.draggables.filter(d => !d.connectableId);
|
248
255
|
if ((freeDraggables === null || freeDraggables === void 0 ? void 0 : freeDraggables.length) === 1 && ((_a = this.draggables) === null || _a === void 0 ? void 0 : _a.length) > 1) {
|
249
|
-
const lastDraggable = freeDraggables
|
256
|
+
const [lastDraggable] = freeDraggables;
|
250
257
|
const lastConectableId = (_b = difference(this.connectables.map(({ id }) => id), this.draggables.map(({ connectableId }) => connectableId))) === null || _b === void 0 ? void 0 : _b[0];
|
251
258
|
lastDraggable.connectableId = lastConectableId;
|
252
259
|
}
|
@@ -260,33 +267,25 @@ const YooFormConnectComponent = class {
|
|
260
267
|
var _a;
|
261
268
|
const tileType = `${name}s`;
|
262
269
|
const onConnectableClick = (connectable) => {
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
const currentDraggable = (_a = this.draggables) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === draggable.id);
|
272
|
-
currentDraggable.hit = { value: !((_b = currentDraggable.hit) === null || _b === void 0 ? void 0 : _b.value) && !currentDraggable.connectableId };
|
273
|
-
delete currentDraggable.connectableId;
|
274
|
-
this.getUserAnswers();
|
275
|
-
this.validate();
|
270
|
+
this.draggables.forEach(draggable => {
|
271
|
+
const selectedDraggable = draggable.selected && draggable;
|
272
|
+
if (selectedDraggable && connectable) {
|
273
|
+
draggable.selected = false;
|
274
|
+
draggable.connectableId = connectable.id;
|
275
|
+
this.autoCompleteLastConnection();
|
276
|
+
}
|
277
|
+
});
|
276
278
|
};
|
277
279
|
return (h("section", { id: tileType }, (_a = this[tileType]) === null || _a === void 0 ? void 0 : _a.map((item) => {
|
278
280
|
const isDraggable = name === 'draggable';
|
279
|
-
const { id, value, connectableId,
|
281
|
+
const { id, value, connectableId, selected } = item || {};
|
280
282
|
const isImage = value && isImageUrl(value);
|
281
283
|
const connectable = this.draggables.find(({ connectableId }) => connectableId === id);
|
282
284
|
const isConnected = !!(connectableId || connectable);
|
283
|
-
const tileColor = color || (connectable === null || connectable === void 0 ? void 0 : connectable.color);
|
284
|
-
const
|
285
|
-
const tileAttr = {
|
286
|
-
|
287
|
-
};
|
288
|
-
const tileClick = () => isDraggable ? onDraggableClick(item) : onConnectableClick(item);
|
289
|
-
return !!value && h("div", { ...tileAttr, id: id, key: id, class: name, onTouchStart: () => tileClick(), onClick: () => tileClick() }, !isImage ? h("p", null, translateMulti(value)) : [h("yoo-img", { type: "background", src: value }), h("div", { id: "overlay" })], this.readonly && this.renderCorrectionIcon(value));
|
285
|
+
const tileColor = item.color || (connectable === null || connectable === void 0 ? void 0 : connectable.color);
|
286
|
+
const { backgroundColor, color } = { backgroundColor: getCssColor(tileColor), color: getContrastColor(tileColor) };
|
287
|
+
const tileAttr = { type: isImage ? 'image' : 'text', connected: isConnected, hit: isDraggable && !isConnected && selected };
|
288
|
+
return (!!value && (h("div", { ...tileAttr, style: isConnected && !isImage && { backgroundColor, color }, id: id, key: id, class: name, ...(!isDraggable && { onTouchStart: () => onConnectableClick(item), onClick: () => onConnectableClick(item) }) }, !isImage ? h("p", null, translateMulti(value)) : [h("yoo-img", { type: "background", src: value }), h("div", { class: "overlay", style: isConnected && { backgroundColor, color } })], this.readonly && this.renderCorrectionIcon(value))));
|
290
289
|
})));
|
291
290
|
}
|
292
291
|
renderBanner() {
|
@@ -3,7 +3,7 @@ import { y as isWeb, z as debounce, b as isNativeMobile, E as isIOS, dB as isKey
|
|
3
3
|
import { g as getAppContext } from './common-helpers-f4f92196.js';
|
4
4
|
import { v as validate, i as initNumber, s as setValueAndValidateInput, a as setValidator, c as convertValueForInputType, f as onIconClicked, o as onInputClear, e as onInputBlurred, d as onInputFocused, h as setContentEditableValidity, j as clearFocused } from './form-input-helpers-c4bbb638.js';
|
5
5
|
import { i as isNil, p as isString, b as isFunction, o as isNumber } from './lodash-cd4a9ba3.js';
|
6
|
-
import { g as getRenderer } from './grid-renderers-
|
6
|
+
import { g as getRenderer } from './grid-renderers-4dd1c6d7.js';
|
7
7
|
import './_commonjsHelpers-f4d11124.js';
|
8
8
|
import './index-ee2b347f.js';
|
9
9
|
import './incentive-helpers-94537d6e.js';
|
@@ -224,7 +224,7 @@ const YooFormMultiInputComponent = class {
|
|
224
224
|
const rowsCount = Math.max(...[this.getMaxRowsOf('init'), this.getMaxRowsOf('min'), values.length]) || 1;
|
225
225
|
this.rows = Array.from({ length: rowsCount }).map((_, rowIndex) => {
|
226
226
|
return this.columnsDefinition.map((column, colIndex) => {
|
227
|
-
const { hasImage, maxRows, hasText } = column;
|
227
|
+
const { hasImage, maxRows, hasText, forceObjectValue } = column;
|
228
228
|
const rowValue = values === null || values === void 0 ? void 0 : values[rowIndex];
|
229
229
|
const value = Array.isArray(rowValue) ? rowValue === null || rowValue === void 0 ? void 0 : rowValue[colIndex] : rowValue;
|
230
230
|
const [text, file, selection] = ['text', 'file', 'selection'].map((type) => (Array.isArray(value) ? value[colIndex] : typeof value === 'object' ? value === null || value === void 0 ? void 0 : value[type] : value));
|
@@ -233,7 +233,7 @@ const YooFormMultiInputComponent = class {
|
|
233
233
|
rowIndex,
|
234
234
|
column,
|
235
235
|
hidden: rowIndex + 1 > maxRows || (!value && rowIndex + 1 > column.initRows),
|
236
|
-
value: {
|
236
|
+
value: forceObjectValue ? { text: value } : {
|
237
237
|
...(hasText && { text }),
|
238
238
|
...(hasImage && { file: isImageUrl(file) ? file : '' }),
|
239
239
|
...(selection && { selection })
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { r as registerInstance, i as createEvent, f as forceUpdate, h, g as getElement } from './index-2cf5b950.js';
|
2
2
|
import { P as IRoute } from './index-ee2b347f.js';
|
3
|
-
import { a6 as getSession, b as isNativeMobile, bR as screenOrientationUnlock, M as getAsyncExtraData, c as isAndroid, t as translate,
|
3
|
+
import { a6 as getSession, b as isNativeMobile, bR as screenOrientationUnlock, M as getAsyncExtraData, c as isAndroid, t as translate, a0 as translateMulti, x as showModal, y as isWeb, aj as showAlert, bS as screenOrientationLock, bT as getLocaleVariantScormCloudId, ax as getCurrentLanguage, m as isSafari } from './index-0a31764b.js';
|
4
4
|
import { a as setValidator, s as setValueAndValidateInput } from './form-input-helpers-c4bbb638.js';
|
5
5
|
import { o as isNumber, E as get } from './lodash-cd4a9ba3.js';
|
6
6
|
import './_commonjsHelpers-f4d11124.js';
|
@@ -88,7 +88,7 @@ const YooFormScormComponent = class {
|
|
88
88
|
}
|
89
89
|
if (ret === null || ret === void 0 ? void 0 : ret.launchLink) {
|
90
90
|
if (isNativeMobile()) {
|
91
|
-
const iab = window.open(ret.launchLink, isNativeMobile() ? '_blank' : '_system', `location=${isAndroid() ? 'yes,hideurlbar=yes' : 'no'},toolbar=yes,hidenavigationbuttons=${isAndroid() ? 'yes' : 'no'},closebuttoncaption=${translate('CLOSE')},beforeload=yes,allowInlineMediaPlayback=yes
|
91
|
+
const iab = window.open(ret.launchLink, isNativeMobile() ? '_blank' : '_system', `location=${isAndroid() ? 'yes,hideurlbar=yes' : 'no'},toolbar=yes,hidenavigationbuttons=${isAndroid() ? 'yes' : 'no'},closebuttoncaption=${translate('CLOSE')},beforeload=yes,allowInlineMediaPlayback=yes`);
|
92
92
|
iab.addEventListener('exit', () => {
|
93
93
|
if (!this.isPreview) {
|
94
94
|
this.onCloseScormPlayer();
|