@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.
Files changed (43) hide show
  1. package/dist/cjs/{grid-renderers-bdf3d9df.js → grid-renderers-48827440.js} +4 -3
  2. package/dist/cjs/yoo-ag-grid.cjs.entry.js +1 -1
  3. package/dist/cjs/yoo-chat.cjs.entry.js +3 -2
  4. package/dist/cjs/yoo-form-catalog.cjs.entry.js +11 -2
  5. package/dist/cjs/yoo-form-connect.cjs.entry.js +47 -48
  6. package/dist/cjs/yoo-form-input.cjs.entry.js +1 -1
  7. package/dist/cjs/yoo-form-multi-input.cjs.entry.js +2 -2
  8. package/dist/cjs/yoo-form-scorm.cjs.entry.js +1 -1
  9. package/dist/cjs/yoo-grid.cjs.entry.js +2 -1
  10. package/dist/cjs/yoo-pivot-table.cjs.entry.js +1 -1
  11. package/dist/collection/components/form/form-catalog/form-catalog.js +11 -2
  12. package/dist/collection/components/form/form-connect/form-connect.css +15 -14
  13. package/dist/collection/components/form/form-connect/form-connect.js +46 -47
  14. package/dist/collection/components/form/form-multi-input/form-multi-input.js +2 -2
  15. package/dist/collection/components/form/form-scorm/form-scorm.js +2 -2
  16. package/dist/collection/components/grid/ag-grid/grid-renderers.js +4 -3
  17. package/dist/collection/components/grid/grid/grid.js +1 -0
  18. package/dist/collection/feature-communicate/chat/chat/chat.js +3 -2
  19. package/dist/design-system/{grid-renderers-649f8b12.js → grid-renderers-4dd1c6d7.js} +4 -3
  20. package/dist/design-system/yoo-ag-grid.entry.js +1 -1
  21. package/dist/design-system/yoo-chat.entry.js +3 -2
  22. package/dist/design-system/yoo-form-catalog.entry.js +11 -2
  23. package/dist/design-system/yoo-form-connect.entry.js +47 -48
  24. package/dist/design-system/yoo-form-input.entry.js +1 -1
  25. package/dist/design-system/yoo-form-multi-input.entry.js +2 -2
  26. package/dist/design-system/yoo-form-scorm.entry.js +2 -2
  27. package/dist/design-system/yoo-grid.entry.js +2 -1
  28. package/dist/design-system/yoo-pivot-table.entry.js +1 -1
  29. package/dist/esm/{grid-renderers-649f8b12.js → grid-renderers-4dd1c6d7.js} +4 -3
  30. package/dist/esm/yoo-ag-grid.entry.js +1 -1
  31. package/dist/esm/yoo-chat.entry.js +3 -2
  32. package/dist/esm/yoo-form-catalog.entry.js +11 -2
  33. package/dist/esm/yoo-form-connect.entry.js +47 -48
  34. package/dist/esm/yoo-form-input.entry.js +1 -1
  35. package/dist/esm/yoo-form-multi-input.entry.js +2 -2
  36. package/dist/esm/yoo-form-scorm.entry.js +2 -2
  37. package/dist/esm/yoo-grid.entry.js +2 -1
  38. package/dist/esm/yoo-pivot-table.entry.js +1 -1
  39. package/dist/types/components/form/form-connect/form-connect.d.ts +1 -2
  40. package/dist/types/components/form/form-connect/form-connect.interfaces.d.ts +1 -4
  41. 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
  42. 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
  43. package/package.json +1 -1
@@ -11,7 +11,7 @@ import { a as setValidator, s as setValueAndValidateInput } from './form-input-h
11
11
  import { i as isEmail } from './text-helpers-a008b4db.js';
12
12
  import { $ as debounce, ab as throttle, i as isNil, B as isEqual, h as map, C as sortBy, c as isArray, z as isEmpty, ac as uniqWith, n as compact, E as get, p as isString, o as isNumber, I as isBoolean, S as findIndex, a7 as sum, a8 as range, x as isObject, b as isFunction } from './lodash-cd4a9ba3.js';
13
13
  import { S as Sortable } from './sortable.esm-f788d1ca.js';
14
- import { g as getRenderer } from './grid-renderers-649f8b12.js';
14
+ import { g as getRenderer } from './grid-renderers-4dd1c6d7.js';
15
15
  import { I as ItemSlidingType } from './item-sliding.interface-85f6790e.js';
16
16
  import './_commonjsHelpers-f4d11124.js';
17
17
  import './workflow.interface-79064a52.js';
@@ -995,6 +995,7 @@ const YooGridComponent = class {
995
995
  this.finalGridConfig = {
996
996
  ...this.gridConfig,
997
997
  treeData: this.isTree(),
998
+ onSortChanged: () => this.onGridStateUpdate(),
998
999
  onColumnResized: () => this.onGridStateUpdate(),
999
1000
  onColumnMoved: () => this.onGridStateUpdate(),
1000
1001
  onColumnVisible: () => this.onGridStateUpdate(),
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, i as createEvent, h, g as getElement } from './index-2cf5b950.js';
2
2
  import { t as translate } from './index-0a31764b.js';
3
- import { g as getRenderer } from './grid-renderers-649f8b12.js';
3
+ import { g as getRenderer } from './grid-renderers-4dd1c6d7.js';
4
4
  import { a as createCommonjsModule, c as commonjsGlobal } from './_commonjsHelpers-f4d11124.js';
5
5
  import { $ as debounce, D as cloneDeep, Y as assign, C as sortBy, B as isEqual } from './lodash-cd4a9ba3.js';
6
6
  import './index-ee2b347f.js';
@@ -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')} ${dateFormat((_b = params === null || params === void 0 ? void 0 : params.data) === null || _b === void 0 ? void 0 : _b.finishedDate, translate('FORMATDATE'))}`
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-649f8b12.js';
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
- if (this.products && !this.products.find((p) => p._id === product._id)) {
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
- if (this.products && !this.products.find((p) => p._id === product._id)) {
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 main,:host #draggables,:host #connectables{display:grid;grid-gap:var(--spacing-08, 0.5rem)}:host #draggables,:host #connectables{position:relative;height:-webkit-max-content;height:-moz-max-content;height:max-content;padding:var(--spacing-08, 0.5rem) 0}:host main{grid-template-rows:repeat(auto-fit, 75%);grid-template-columns:1fr 1fr;padding:0 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[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 .connectable,:host .draggable{position:relative;width:100%;max-width:15rem;height:100%;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;-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: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
+ 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 onPressTile = () => {
180
- if (!draggableElement.style.width) {
181
- this.columnElements.forEach(e => (e === null || e === void 0 ? void 0 : e.clientWidth) && (e.style.width = `${e.clientWidth}px`));
182
- draggableElement.style.width = `${draggableElement.clientWidth}px`;
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 = '65%';
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(e => {
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, e, overlapThreshold)) && e.id !== currentDraggable.connectableId) {
199
- tempConnectableElement = e;
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
- bound: this.mainElement,
232
- onPress: () => onPressTile,
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[0];
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
- const hitDraggable = this.draggables.find(d => { var _a; return (_a = d.hit) === null || _a === void 0 ? void 0 : _a.value; });
264
- if (hitDraggable && connectable) {
265
- hitDraggable.connectableId = connectable.id;
266
- this.autoCompleteLastConnection();
267
- }
268
- };
269
- const onDraggableClick = (draggable) => {
270
- var _a, _b;
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, color, hit } = item || {};
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 connectedAttributes = { style: { backgroundColor: tileColor, color: getContrastColor(tileColor) }, connected: true };
285
- const tileAttr = {
286
- ...(isConnected && connectedAttributes), hit: !!(hit === null || hit === void 0 ? void 0 : hit.value) && isDraggable, type: isImage ? 'image' : 'text'
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-649f8b12.js';
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, H as getCssColor, 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';
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,closebuttoncolor=${getCssColor('app-color')}`);
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();
@@ -11,7 +11,7 @@ import { a as setValidator, s as setValueAndValidateInput } from './form-input-h
11
11
  import { i as isEmail } from './text-helpers-a008b4db.js';
12
12
  import { $ as debounce, ab as throttle, i as isNil, B as isEqual, h as map, C as sortBy, c as isArray, z as isEmpty, ac as uniqWith, n as compact, E as get, p as isString, o as isNumber, I as isBoolean, S as findIndex, a7 as sum, a8 as range, x as isObject, b as isFunction } from './lodash-cd4a9ba3.js';
13
13
  import { S as Sortable } from './sortable.esm-f788d1ca.js';
14
- import { g as getRenderer } from './grid-renderers-649f8b12.js';
14
+ import { g as getRenderer } from './grid-renderers-4dd1c6d7.js';
15
15
  import { I as ItemSlidingType } from './item-sliding.interface-85f6790e.js';
16
16
  import './_commonjsHelpers-f4d11124.js';
17
17
  import './workflow.interface-79064a52.js';
@@ -995,6 +995,7 @@ const YooGridComponent = class {
995
995
  this.finalGridConfig = {
996
996
  ...this.gridConfig,
997
997
  treeData: this.isTree(),
998
+ onSortChanged: () => this.onGridStateUpdate(),
998
999
  onColumnResized: () => this.onGridStateUpdate(),
999
1000
  onColumnMoved: () => this.onGridStateUpdate(),
1000
1001
  onColumnVisible: () => this.onGridStateUpdate(),
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, i as createEvent, h, g as getElement } from './index-2cf5b950.js';
2
2
  import { t as translate } from './index-0a31764b.js';
3
- import { g as getRenderer } from './grid-renderers-649f8b12.js';
3
+ import { g as getRenderer } from './grid-renderers-4dd1c6d7.js';
4
4
  import { a as createCommonjsModule, c as commonjsGlobal } from './_commonjsHelpers-f4d11124.js';
5
5
  import { $ as debounce, D as cloneDeep, Y as assign, C as sortBy, B as isEqual } from './lodash-cd4a9ba3.js';
6
6
  import './index-ee2b347f.js';
@@ -59,7 +59,6 @@ export declare class YooFormConnectComponent {
59
59
  private connectables;
60
60
  private get hasValues();
61
61
  private get isGamePairable();
62
- private get columnElements();
63
62
  private get draggableElements();
64
63
  private get connectableElements();
65
64
  validate(): boolean;
@@ -78,7 +77,7 @@ export declare class YooFormConnectComponent {
78
77
  private autoCompleteLastConnection;
79
78
  renderCorrectionIcon(value: string): JSX.Element;
80
79
  renderContainer(name: string): JSX.Element;
81
- renderBanner(): any;
80
+ renderBanner(): JSX.Element;
82
81
  renderMain(): JSX.Element;
83
82
  render(): JSX.Element;
84
83
  }
@@ -5,11 +5,8 @@ export interface IConnect {
5
5
  id?: string;
6
6
  value?: string;
7
7
  color?: TColor;
8
- hit?: {
9
- value: boolean;
10
- };
8
+ selected?: boolean;
11
9
  draggableInstance?: Draggable;
12
10
  connectableId?: string;
13
11
  isCorrect?: boolean;
14
- colorize?: () => void;
15
12
  }
@@ -13,6 +13,7 @@ export interface IBroadcastDetail {
13
13
  title: string;
14
14
  type: 'live' | 'archived';
15
15
  width: number;
16
+ clientVersion: string;
16
17
  customData?: string;
17
18
  }
18
19
  export declare class IBroadcast extends IEntity {
@@ -87,6 +87,7 @@ export interface IChatBroadcastParams {
87
87
  shareOptions?: IChatShareParams;
88
88
  showControl?: boolean;
89
89
  closeHandler?: (params?: any) => any;
90
+ useHTML5?: boolean;
90
91
  }
91
92
  export interface IChatStatusParams {
92
93
  users: IUser[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoobic/yobi",
3
- "version": "8.6.35",
3
+ "version": "8.6.36",
4
4
  "description": "Yobi - Yoobic Design System",
5
5
  "module": "dist/index.js",
6
6
  "main": "dist/index.cjs.js",