@yoobic/yobi 7.7.40 → 7.7.44

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 (126) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/{draggable-tags-helpers-b353ad65.js → draggable-tags-helpers-557e8f4c.js} +21 -20
  3. package/dist/cjs/{form-helpers-b1514b99.js → form-helpers-6b5129aa.js} +2 -8
  4. package/dist/cjs/{grid-renderers-75f5517f.js → grid-renderers-443a0f25.js} +10 -2
  5. package/dist/cjs/index.cjs.js +4 -3
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{operation-helpers-14994f09.js → operation-helpers-fd31a44e.js} +7 -7
  8. package/dist/cjs/string-helpers-4852718a.js +14 -0
  9. package/dist/cjs/yoo-action-sheet-controller_15.cjs.entry.js +7 -5
  10. package/dist/cjs/yoo-ag-grid_96.cjs.entry.js +48 -8
  11. package/dist/cjs/yoo-camera-preview-dialog_7.cjs.entry.js +2 -1
  12. package/dist/cjs/yoo-campaign-heading.cjs.entry.js +1 -1
  13. package/dist/cjs/yoo-card-list-image_12.cjs.entry.js +4 -3
  14. package/dist/cjs/yoo-entity-search.cjs.entry.js +2 -2
  15. package/dist/cjs/yoo-form-categorize-words.cjs.entry.js +1 -1
  16. package/dist/cjs/yoo-form-choice_4.cjs.entry.js +1 -1
  17. package/dist/cjs/yoo-form-connect.cjs.entry.js +204 -323
  18. package/dist/cjs/yoo-form-creator-translate-dialog.cjs.entry.js +9 -7
  19. package/dist/cjs/yoo-form-image-tagging.cjs.entry.js +23 -15
  20. package/dist/cjs/yoo-form-json.cjs.entry.js +2 -1
  21. package/dist/cjs/yoo-form-missing-word.cjs.entry.js +1 -1
  22. package/dist/cjs/yoo-form-product-batch.cjs.entry.js +1 -1
  23. package/dist/cjs/yoo-form-ranking.cjs.entry.js +1 -1
  24. package/dist/cjs/yoo-form-swipe-cards.cjs.entry.js +1 -1
  25. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +1 -0
  26. package/dist/cjs/yoo-form-todo-single.cjs.entry.js +1 -1
  27. package/dist/cjs/yoo-mission-heading_3.cjs.entry.js +1 -1
  28. package/dist/cjs/yoo-mission-results.cjs.entry.js +1 -1
  29. package/dist/cjs/yoo-mission-todo.cjs.entry.js +1 -1
  30. package/dist/collection/components/1.atoms/loader/loader.css +12 -0
  31. package/dist/collection/components/1.atoms/markdown/markdown.js +20 -1
  32. package/dist/collection/components/entities/card-list/card-list.css +6 -0
  33. package/dist/collection/components/entities/entity/entity.js +2 -1
  34. package/dist/collection/components/entities/entity-search/entity-search.css +4 -0
  35. package/dist/collection/components/entities/entity-search/entity-search.js +2 -2
  36. package/dist/collection/components/form/form-connect/form-connect.css +35 -33
  37. package/dist/collection/components/form/form-connect/form-connect.js +207 -375
  38. package/dist/collection/components/form/form-connect/types/index.js +1 -1
  39. package/dist/collection/components/form/form-dynamic/form-dynamic.js +42 -2
  40. package/dist/collection/components/form/form-image-tagging/form-image-tagging.js +41 -16
  41. package/dist/collection/components/form/form-text-editor/form-text-editor.js +1 -0
  42. package/dist/collection/components/form-creator/form-creator-translate-dialog/form-creator-translate-dialog.js +9 -8
  43. package/dist/collection/components/grid/ag-grid/grid-renderers.js +8 -0
  44. package/dist/collection/components/grid/grid/grid.js +41 -1
  45. package/dist/collection/utils/helpers/draggable-tags-helpers.js +21 -20
  46. package/dist/collection/utils/helpers/operation-helpers.js +7 -7
  47. package/dist/design-system/design-system.esm.js +1 -1
  48. package/dist/design-system/index.esm.js +1 -1
  49. package/dist/design-system/{p-72b027cd.entry.js → p-08c3e5e4.entry.js} +1 -1
  50. package/dist/design-system/{p-d5b214f0.entry.js → p-1527ca6a.entry.js} +1 -1
  51. package/dist/design-system/{p-8214c671.js → p-17ca9bca.js} +1 -1
  52. package/dist/design-system/{p-f013d119.entry.js → p-2ed44cf9.entry.js} +1 -1
  53. package/dist/design-system/p-3379386f.entry.js +1 -0
  54. package/dist/design-system/p-3cf42f38.js +1 -0
  55. package/dist/design-system/{p-800cb056.entry.js → p-434dbb2f.entry.js} +1 -1
  56. package/dist/design-system/{p-303c3c22.entry.js → p-46981663.entry.js} +1 -1
  57. package/dist/design-system/{p-8055dcaf.entry.js → p-4a7ab005.entry.js} +1 -1
  58. package/dist/design-system/p-5062d1e2.entry.js +1 -0
  59. package/dist/design-system/p-51cd61bd.entry.js +1 -0
  60. package/dist/design-system/p-5450cf9b.js +1 -0
  61. package/dist/design-system/{p-619154de.entry.js → p-56f8a567.entry.js} +1 -1
  62. package/dist/design-system/p-623e854e.entry.js +1 -0
  63. package/dist/design-system/{p-d17b376e.entry.js → p-687dec7e.entry.js} +1 -1
  64. package/dist/design-system/{p-6dab9545.entry.js → p-6ddf846e.entry.js} +1 -1
  65. package/dist/design-system/p-716336bf.js +1 -0
  66. package/dist/design-system/p-8d5254c0.js +1 -0
  67. package/dist/design-system/p-9a993e45.entry.js +1 -0
  68. package/dist/design-system/p-ba32098a.entry.js +1 -0
  69. package/dist/design-system/{p-47077c2f.entry.js → p-c82876d6.entry.js} +1 -1
  70. package/dist/design-system/{p-5a4a35ae.entry.js → p-ddd372bb.entry.js} +1 -1
  71. package/dist/design-system/{p-1d437750.entry.js → p-e3cc14ba.entry.js} +3 -3
  72. package/dist/design-system/{p-4a323ffb.entry.js → p-e560bd90.entry.js} +1 -1
  73. package/dist/design-system/{p-1b60268b.entry.js → p-e960fda6.entry.js} +1 -1
  74. package/dist/design-system/p-f31faeba.entry.js +1 -0
  75. package/dist/esm/design-system.js +1 -1
  76. package/dist/esm/{draggable-tags-helpers-e3b9cd11.js → draggable-tags-helpers-a9a159b2.js} +21 -20
  77. package/dist/esm/{form-helpers-6f30100d.js → form-helpers-a68bb5a2.js} +1 -7
  78. package/dist/esm/{grid-renderers-3920dbf1.js → grid-renderers-3e052fa0.js} +10 -2
  79. package/dist/esm/index.js +4 -3
  80. package/dist/esm/loader.js +1 -1
  81. package/dist/esm/{operation-helpers-86666c74.js → operation-helpers-4c9210d3.js} +7 -7
  82. package/dist/esm/string-helpers-9646d8e3.js +11 -0
  83. package/dist/esm/yoo-action-sheet-controller_15.entry.js +7 -5
  84. package/dist/esm/yoo-ag-grid_96.entry.js +48 -8
  85. package/dist/esm/yoo-camera-preview-dialog_7.entry.js +2 -1
  86. package/dist/esm/yoo-campaign-heading.entry.js +1 -1
  87. package/dist/esm/yoo-card-list-image_12.entry.js +4 -3
  88. package/dist/esm/yoo-entity-search.entry.js +3 -3
  89. package/dist/esm/yoo-form-categorize-words.entry.js +1 -1
  90. package/dist/esm/yoo-form-choice_4.entry.js +1 -1
  91. package/dist/esm/yoo-form-connect.entry.js +206 -325
  92. package/dist/esm/yoo-form-creator-translate-dialog.entry.js +10 -8
  93. package/dist/esm/yoo-form-image-tagging.entry.js +24 -16
  94. package/dist/esm/yoo-form-json.entry.js +2 -1
  95. package/dist/esm/yoo-form-missing-word.entry.js +1 -1
  96. package/dist/esm/yoo-form-product-batch.entry.js +1 -1
  97. package/dist/esm/yoo-form-ranking.entry.js +1 -1
  98. package/dist/esm/yoo-form-swipe-cards.entry.js +1 -1
  99. package/dist/esm/yoo-form-text-editor.entry.js +1 -0
  100. package/dist/esm/yoo-form-todo-single.entry.js +1 -1
  101. package/dist/esm/yoo-mission-heading_3.entry.js +1 -1
  102. package/dist/esm/yoo-mission-results.entry.js +1 -1
  103. package/dist/esm/yoo-mission-todo.entry.js +1 -1
  104. package/dist/types/components/1.atoms/markdown/markdown.d.ts +1 -0
  105. package/dist/types/components/form/form-connect/form-connect.d.ts +31 -48
  106. package/dist/types/components/form/form-connect/types/index.d.ts +4 -5
  107. package/dist/types/components/form/form-dynamic/form-dynamic.d.ts +1 -0
  108. package/dist/types/components/form/form-image-tagging/form-image-tagging.d.ts +7 -4
  109. package/dist/types/components/form-creator/form-creator-translate-dialog/form-creator-translate-dialog.d.ts +1 -2
  110. package/dist/types/components/grid/grid/grid.d.ts +1 -0
  111. package/dist/types/components.d.ts +6 -9
  112. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/file/file.interface.d.ts +1 -0
  113. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/mission-description/mission-description.interface.d.ts +2 -2
  114. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/services/async-extra-data/async-extra-data.interface.d.ts +1 -1
  115. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/utils/src/helpers/string-helpers.d.ts +1 -0
  116. package/package.json +1 -1
  117. package/dist/design-system/p-15699698.entry.js +0 -1
  118. package/dist/design-system/p-3ea3dc83.js +0 -1
  119. package/dist/design-system/p-72fe82e5.js +0 -1
  120. package/dist/design-system/p-8cfecc25.entry.js +0 -1
  121. package/dist/design-system/p-983e8f1b.js +0 -1
  122. package/dist/design-system/p-98bf6e13.entry.js +0 -1
  123. package/dist/design-system/p-aaf4c6a2.entry.js +0 -1
  124. package/dist/design-system/p-ab3cb64c.entry.js +0 -1
  125. package/dist/design-system/p-adbb882f.entry.js +0 -1
  126. package/dist/design-system/p-ef1e0f03.entry.js +0 -1
@@ -1,7 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-27314512.js';
2
2
  import { o as TRANSLATABLE_FORM_FIELD_ATTRIBUTES, F as FormFieldType, m as COMPLEX_ARRAY_TRANSLATABLE_FORM_FIELD_ATTRIBUTES, n as SINGLE_ARRAY_TRANSLATABLE_FORM_FIELD_ATTRIBUTES } from './input-bar.interface-4e956599.js';
3
- import { w as debounce, a1 as compact, V as getCurrentLanguage, t as translate, a4 as isObject, Z as translateMulti, bo as closeModal } from './rrule-1b4fc7ac.js';
3
+ import { w as debounce, a1 as compact, V as getCurrentLanguage, Z as translateMulti, t as translate, a4 as isObject, bo as closeModal } from './rrule-1b4fc7ac.js';
4
4
  import { e as formatSlides, x as getLocaleTranslation, f as findField } from './form-creator-helpers-ac29a57d.js';
5
+ import { i as isHTML } from './string-helpers-9646d8e3.js';
5
6
  import { Q as updateLocaleTranslation } from './index-1cced256.js';
6
7
  import { c as cloneDeep } from './cloneDeep-b571e871.js';
7
8
  import { i as isEmpty } from './isEmpty-6313ebf5.js';
@@ -143,9 +144,6 @@ const YooFormCreatorTranslateDialogComponent = class {
143
144
  isCreateTranslationMode() {
144
145
  return this.mode === 'create' || this.mode === 'createInitial';
145
146
  }
146
- isTextEditor(translatableFormField, fieldType) {
147
- return translatableFormField === 'description' || translatableFormField === 'explanation' || (translatableFormField === 'value' && fieldType === 'information');
148
- }
149
147
  initTranslationForms() {
150
148
  var _a;
151
149
  this.selectedFieldLocation = this.initialSelectedFieldLocation;
@@ -215,13 +213,14 @@ const YooFormCreatorTranslateDialogComponent = class {
215
213
  field.values = field.values.filter((val) => !field.answer.includes(val));
216
214
  }
217
215
  TRANSLATABLE_FORM_FIELD_ATTRIBUTES.forEach((translatableFormField) => {
216
+ const isRTE = isHTML(translateMulti((field === null || field === void 0 ? void 0 : field[translatableFormField]) || ''));
218
217
  if (field[translatableFormField] && !(hasComplexSentence && translatableFormField === 'sentence')) {
219
218
  if (translatableFormField === 'complexSentence') {
220
219
  hasComplexSentence = true;
221
220
  }
222
221
  slides[0].items.push({
223
222
  type: FormFieldType.textarea,
224
- language: this.isTextEditor(translatableFormField, field.type) ? 'html' : null,
223
+ language: isRTE && 'html',
225
224
  autoInitialRows: true,
226
225
  title: translate(translatableFormField.toUpperCase()),
227
226
  name: `${translatableFormField}Base`,
@@ -230,7 +229,7 @@ const YooFormCreatorTranslateDialogComponent = class {
230
229
  });
231
230
  slides[0].items.push({
232
231
  type: FormFieldType.textarea,
233
- language: this.isTextEditor(translatableFormField, field.type) ? 'html' : null,
232
+ language: isRTE && 'html',
234
233
  autoInitialRows: true,
235
234
  title: translate(translatableFormField.toUpperCase()),
236
235
  name: translatableFormField,
@@ -258,11 +257,12 @@ const YooFormCreatorTranslateDialogComponent = class {
258
257
  hasComplexValues = true;
259
258
  const value = isString(multiInputValue) ? multiInputValue : multiInputValue.text;
260
259
  if (value) {
260
+ const isRTE = isHTML(translateMulti(value));
261
261
  slides[0].items.push({
262
262
  type: FormFieldType.textarea,
263
263
  title: translate('VALUES'),
264
264
  hideLabel: complexValueIndex !== 0 || valueIndex !== 0,
265
- language: complexTranslatableAttr === 'complexTextSequenceValues' ? 'html' : null,
265
+ language: isRTE && 'html',
266
266
  formatAmpersandSymbol: true,
267
267
  autoInitialRows: true,
268
268
  name: `${complexTranslatableAttr}${complexValueIndex}${valueIndex}Base`,
@@ -273,7 +273,7 @@ const YooFormCreatorTranslateDialogComponent = class {
273
273
  type: FormFieldType.textarea,
274
274
  title: translate('VALUES'),
275
275
  hideLabel: complexValueIndex !== 0 || valueIndex !== 0,
276
- language: complexTranslatableAttr === 'complexTextSequenceValues' ? 'html' : null,
276
+ language: isRTE && 'html',
277
277
  formatAmpersandSymbol: true,
278
278
  autoInitialRows: true,
279
279
  name: `${complexTranslatableAttr}${complexValueIndex}${valueIndex}`,
@@ -309,6 +309,7 @@ const YooFormCreatorTranslateDialogComponent = class {
309
309
  hideLabel: valueIndex > 0,
310
310
  formatAmpersandSymbol: true,
311
311
  autoInitialRows: true,
312
+ language: isHTML(translate(value)) && 'html',
312
313
  name: `${singleArrayAttr}${valueIndex}Base`,
313
314
  width: 292,
314
315
  readonly: this.isTranslator
@@ -319,6 +320,7 @@ const YooFormCreatorTranslateDialogComponent = class {
319
320
  hideLabel: valueIndex > 0,
320
321
  formatAmpersandSymbol: true,
321
322
  autoInitialRows: true,
323
+ language: isHTML(translate(value)) && 'html',
322
324
  name: `${singleArrayAttr}${valueIndex}`,
323
325
  inlineActions: [
324
326
  { icon: 'translate', iconColor: 'stable-alt', text: 'GOOGLETRANSLATE', handler: () => this.onTranslateField(value, locale) },
@@ -1,10 +1,10 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-27314512.js';
1
+ import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host, g as getElement } from './index-27314512.js';
2
2
  import { Z as translateMulti, t as translate, E as getCssColor } from './rrule-1b4fc7ac.js';
3
3
  import './input-bar.interface-4e956599.js';
4
4
  import './ResizeObserver.es-857da850.js';
5
5
  import { e as getPercentPositionStyle } from './annotations-helpers-d026cd25.js';
6
6
  import { f as getAppContext } from './common-helpers-736b1b33.js';
7
- import { k as getTagZone, s as setDynamicTagZoneHeight, c as showWarningAlert, h as hasValuesChanged, b as getNewValue, r as resetTags, d as checkArray, u as initZones, p as initTags, j as getDroppedTagsValues, f as filterDuplicateEntries, e as getTagsValues, a as hasDuplicates, l as isTagsZone } from './draggable-tags-helpers-e3b9cd11.js';
7
+ import { k as getTagZone, s as setDynamicTagZoneHeight, c as showWarningAlert, h as hasValuesChanged, b as getNewValue, r as resetTags, u as initZones, p as initTags, d as checkArray, j as getDroppedTagsValues, f as filterDuplicateEntries, e as getTagsValues, a as hasDuplicates, l as isTagsZone } from './draggable-tags-helpers-a9a159b2.js';
8
8
  import { b as setValueAndValidateInput } from './form-input-helpers-d7f93f16.js';
9
9
  import { d as debounce } from './debounce-c1950ab1.js';
10
10
  import './isUndefined-11cbe419.js';
@@ -43,9 +43,6 @@ const YooFormImageTaggingComponent = class {
43
43
  this.placeholder = 'DRAGDROPTAGS';
44
44
  this.zones = [];
45
45
  }
46
- async isValid() {
47
- this.validate();
48
- }
49
46
  onModalAnimationFinished(iaf) {
50
47
  if (iaf && this.zones.length && getTagZone(this.zones)) {
51
48
  setDynamicTagZoneHeight(getTagZone(this.zones).element);
@@ -54,6 +51,9 @@ const YooFormImageTaggingComponent = class {
54
51
  onRequireChanged() {
55
52
  this.validate();
56
53
  }
54
+ onAnnotationsChanged() {
55
+ this.hasAnnotationsChanged = true;
56
+ }
57
57
  onValuesChanged(newValues, oldValues) {
58
58
  this.hasValuesChanged = false;
59
59
  const hasDuplicatedValues = hasDuplicates(newValues) === 1;
@@ -65,8 +65,16 @@ const YooFormImageTaggingComponent = class {
65
65
  this.hasValuesChanged = true;
66
66
  }
67
67
  }
68
- onAnnotationsChanged() {
69
- this.hasAnnotationsChanged = true;
68
+ onIsVisibleChanged() {
69
+ // Timeout set here to reset the draggables in case of being
70
+ // in a slide to prevent the non-draggable tags issue
71
+ this.isVisible && setTimeout(() => {
72
+ this.shouldRender = true;
73
+ forceUpdate(this);
74
+ }, 150);
75
+ }
76
+ async isValid() {
77
+ this.validate();
70
78
  }
71
79
  componentWillLoad() {
72
80
  var _a;
@@ -79,16 +87,16 @@ const YooFormImageTaggingComponent = class {
79
87
  }
80
88
  }
81
89
  componentDidUpdate() {
82
- if (this.livePreview && (this.hasValuesChanged || this.hasAnnotationsChanged)) {
90
+ if ((this.livePreview && (this.hasValuesChanged || this.hasAnnotationsChanged)) || this.shouldRender) {
91
+ this.shouldRender = false;
83
92
  this.initImageTagging();
84
93
  }
85
94
  }
86
95
  validate() {
87
- if (checkArray(this.annotations)) {
88
- this.validity = this.value.length === this.annotations.length;
89
- this.validityChanged.emit(this.validity);
90
- return this.validity;
91
- }
96
+ var _a, _b;
97
+ this.validity = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === ((_b = this.annotations) === null || _b === void 0 ? void 0 : _b.length);
98
+ this.validityChanged.emit(this.validity);
99
+ return this.validity;
92
100
  }
93
101
  initImageTagging() {
94
102
  if (this.image && this.outerContainerElement) {
@@ -127,7 +135,7 @@ const YooFormImageTaggingComponent = class {
127
135
  newValue: this.newValue,
128
136
  zones: this.zones,
129
137
  isReadonly: this.readonly,
130
- shouldAnimateTags: !(this.readonly || this.livePreview),
138
+ shouldAnimateTags: !(this.readonly || this.livePreview || this.isVisible),
131
139
  shouldTruncateTagsValue: true,
132
140
  getColorTag: (tagValue) => this.getColorTag(tagValue),
133
141
  boundingElement: this.outerContainerElement,
@@ -196,8 +204,8 @@ const YooFormImageTaggingComponent = class {
196
204
  static get watchers() { return {
197
205
  "isAnimationFinished": ["onModalAnimationFinished"],
198
206
  "required": ["onRequireChanged"],
199
- "values": ["onValuesChanged"],
200
- "annotations": ["onAnnotationsChanged"]
207
+ "annotations": ["onAnnotationsChanged"],
208
+ "values": ["onValuesChanged"]
201
209
  }; }
202
210
  };
203
211
  YooFormImageTaggingComponent.style = formImageTaggingCss;
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h } from './index-27314512.js'
2
2
  import { c as createCommonjsModule, d as commonjsGlobal, p as getDefaultExportFromCjs, t as translate } from './rrule-1b4fc7ac.js';
3
3
  import './input-bar.interface-4e956599.js';
4
4
  import './ResizeObserver.es-857da850.js';
5
- import { f as getJSONHighlighted } from './form-helpers-6f30100d.js';
5
+ import { f as getJSONHighlighted } from './form-helpers-a68bb5a2.js';
6
6
  import { s as setValidator, b as setValueAndValidateInput } from './form-input-helpers-d7f93f16.js';
7
7
  import './isUndefined-11cbe419.js';
8
8
  import './isNumber-3f36713d.js';
@@ -41,6 +41,7 @@ import './toFinite-50be705d.js';
41
41
  import './toNumber-ca6b9b55.js';
42
42
  import './clone-15f434a7.js';
43
43
  import './isBoolean-df5b7c74.js';
44
+ import './string-helpers-9646d8e3.js';
44
45
  import './set-80b0f59a.js';
45
46
  import './_baseSet-5cd3952d.js';
46
47
  import './common-helpers-736b1b33.js';
@@ -4,7 +4,7 @@ import './input-bar.interface-4e956599.js';
4
4
  import { M as MAX_TAGS_CHARACTERS } from './boost-helpers-17b39a0f.js';
5
5
  import { o as isValueATranslationKey, q as formatTranslation } from './form-creator-helpers-ac29a57d.js';
6
6
  import './ResizeObserver.es-857da850.js';
7
- import { k as getTagZone, s as setDynamicTagZoneHeight, c as showWarningAlert, g as getDuplicatedValue, h as hasValuesChanged, b as getNewValue, r as resetTags, d as checkArray, u as initZones, p as initTags, j as getDroppedTagsValues, e as getTagsValues, a as hasDuplicates } from './draggable-tags-helpers-e3b9cd11.js';
7
+ import { k as getTagZone, s as setDynamicTagZoneHeight, c as showWarningAlert, g as getDuplicatedValue, h as hasValuesChanged, b as getNewValue, r as resetTags, d as checkArray, u as initZones, p as initTags, j as getDroppedTagsValues, e as getTagsValues, a as hasDuplicates } from './draggable-tags-helpers-a9a159b2.js';
8
8
  import { b as setValueAndValidateInput } from './form-input-helpers-d7f93f16.js';
9
9
  import './validate-691c9af1.js';
10
10
  import './get-4d370751.js';
@@ -4,7 +4,7 @@ import './input-bar.interface-4e956599.js';
4
4
  import './ResizeObserver.es-857da850.js';
5
5
  import { s as showPhotoEditor } from './common-helpers-736b1b33.js';
6
6
  import { s as setValidator } from './form-input-helpers-d7f93f16.js';
7
- import { f as getProductBatchDateTag } from './operation-helpers-86666c74.js';
7
+ import { f as getProductBatchDateTag } from './operation-helpers-4c9210d3.js';
8
8
  import './isUndefined-11cbe419.js';
9
9
  import './isNumber-3f36713d.js';
10
10
  import './get-4d370751.js';
@@ -3,7 +3,7 @@ import { y as findParent, T as gsapTo, X as gsapTimeline, E as getCssColor, U as
3
3
  import './input-bar.interface-4e956599.js';
4
4
  import './ResizeObserver.es-857da850.js';
5
5
  import { f as getAppContext } from './common-helpers-736b1b33.js';
6
- import { d as checkArray } from './draggable-tags-helpers-e3b9cd11.js';
6
+ import { d as checkArray } from './draggable-tags-helpers-a9a159b2.js';
7
7
  import { b as setValueAndValidateInput } from './form-input-helpers-d7f93f16.js';
8
8
  import './isUndefined-11cbe419.js';
9
9
  import './isNumber-3f36713d.js';
@@ -4,7 +4,7 @@ import './input-bar.interface-4e956599.js';
4
4
  import { g as getUUID } from './index-e198f864.js';
5
5
  import './ResizeObserver.es-857da850.js';
6
6
  import { f as getAppContext } from './common-helpers-736b1b33.js';
7
- import { c as showWarningAlert, a as hasDuplicates } from './draggable-tags-helpers-e3b9cd11.js';
7
+ import { c as showWarningAlert, a as hasDuplicates } from './draggable-tags-helpers-a9a159b2.js';
8
8
  import { b as setValueAndValidateInput } from './form-input-helpers-d7f93f16.js';
9
9
  import { s as shuffle } from './shuffle-a3cc6057.js';
10
10
  import { i as inRange } from './inRange-5b02d8f6.js';
@@ -7187,6 +7187,7 @@ const YooFormTextEditorComponent = class {
7187
7187
  quickInsertButtons: ['yooTemplateQuick', 'yooUploadButtonQuick', 'emoticons', 'ol', 'ul'],
7188
7188
  colorsBackground: ((_c = (_b = (_a = getSession()) === null || _a === void 0 ? void 0 : _a.tenant) === null || _b === void 0 ? void 0 : _b.rteColors) === null || _c === void 0 ? void 0 : _c.length) > 0 ? (_e = (_d = getSession()) === null || _d === void 0 ? void 0 : _d.tenant) === null || _e === void 0 ? void 0 : _e.rteColors : getColorSwatches(),
7189
7189
  colorsText: ((_h = (_g = (_f = getSession()) === null || _f === void 0 ? void 0 : _f.tenant) === null || _g === void 0 ? void 0 : _g.rteColors) === null || _h === void 0 ? void 0 : _h.length) > 0 ? (_k = (_j = getSession()) === null || _j === void 0 ? void 0 : _j.tenant) === null || _k === void 0 ? void 0 : _k.rteColors : getColorSwatches(),
7190
+ imageEditButtons: ['imageReplace', 'imageAlign', 'imageRemove', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove', '-', 'imageDisplay', 'imageStyle', 'imageSize'],
7190
7191
  toolbarButtons: {
7191
7192
  moreRich: {
7192
7193
  buttons: ['yooUploadButton', 'emoticons', 'insertImage', 'insertVideo', 'insertTable', 'insertLink', 'specialCharacters', 'insertFile', 'insertHR'],
@@ -4,7 +4,7 @@ import { w as debounce, j as getSession, b1 as showAlert, t as translate, i as i
4
4
  import { g as getUserDisplayName } from './entities-helpers-3af2e73e.js';
5
5
  import './ResizeObserver.es-857da850.js';
6
6
  import { z as querySelectorDeep } from './common-helpers-736b1b33.js';
7
- import { l as cleanupTodoTaskSlides } from './operation-helpers-86666c74.js';
7
+ import { l as cleanupTodoTaskSlides } from './operation-helpers-4c9210d3.js';
8
8
  import { p as pick } from './pick-5e56d4c7.js';
9
9
  import { c as cloneDeep } from './cloneDeep-b571e871.js';
10
10
  import './pipe-63412310.js';
@@ -4,7 +4,7 @@ import './input-bar.interface-4e956599.js';
4
4
  import { p as pipes } from './pipe-63412310.js';
5
5
  import './ResizeObserver.es-857da850.js';
6
6
  import { f as getAppContext } from './common-helpers-736b1b33.js';
7
- import { a as getMissionStateTags } from './operation-helpers-86666c74.js';
7
+ import { a as getMissionStateTags } from './operation-helpers-4c9210d3.js';
8
8
  import { g as getUserDisplayName } from './entities-helpers-3af2e73e.js';
9
9
  import { b as baseFlatten } from './_baseFlatten-12bb59d5.js';
10
10
  import { f as flatten } from './flatten-05783f13.js';
@@ -5,7 +5,7 @@ import { p as pipes } from './pipe-63412310.js';
5
5
  import './ResizeObserver.es-857da850.js';
6
6
  import { f as getAppContext } from './common-helpers-736b1b33.js';
7
7
  import { f as formatDistance } from './geolocation-helpers-ecd5cd8b.js';
8
- import { a as getMissionStateTags } from './operation-helpers-86666c74.js';
8
+ import { a as getMissionStateTags } from './operation-helpers-4c9210d3.js';
9
9
  import './toInteger-f806a578.js';
10
10
  import './toFinite-50be705d.js';
11
11
  import './toNumber-ca6b9b55.js';
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host } from './index-2
2
2
  import './rrule-1b4fc7ac.js';
3
3
  import './input-bar.interface-4e956599.js';
4
4
  import './ResizeObserver.es-857da850.js';
5
- import { k as cleanupTodoSlides } from './operation-helpers-86666c74.js';
5
+ import { k as cleanupTodoSlides } from './operation-helpers-4c9210d3.js';
6
6
  import './isUndefined-11cbe419.js';
7
7
  import './isNumber-3f36713d.js';
8
8
  import './pipe-63412310.js';
@@ -6,6 +6,7 @@ export declare class YooMarkdownComponent implements ComponentInterface {
6
6
  * The markdown content to display inside the component
7
7
  */
8
8
  content: string;
9
+ isVisible?: boolean;
9
10
  private treatedContent;
10
11
  private contentDiv;
11
12
  onContentChanged(): void;
@@ -4,10 +4,7 @@ export declare class YooFormConnectComponent {
4
4
  * Poll of words to connect, dispatched in 2 arrays (Left and Right respectively)
5
5
  */
6
6
  values: string[][];
7
- /**
8
- * Value previously given by user, mostly used in read-only mode
9
- */
10
- value: string[][];
7
+ onValuesChanged(): void;
11
8
  /**
12
9
  * Read-only mode : true if displayed within a quiz summary
13
10
  */
@@ -32,72 +29,58 @@ export declare class YooFormConnectComponent {
32
29
  * Used by parent component (`yoo-form-dynamic`)
33
30
  */
34
31
  validity: boolean;
32
+ onValidityChanged(): void;
33
+ /**
34
+ * Value previously given by user, mostly used in read-only mode
35
+ */
36
+ value: string[][];
37
+ onValueChanged(): void;
35
38
  /**
36
39
  * Expected answer. consisting of an array of arrays,
37
40
  * each sub-array containing a pair of correctly connected words
38
41
  */
39
42
  answer: string[][];
43
+ initAnswerChanged(): void;
40
44
  /**
41
45
  * true if component's parent slide is visible within a `yoo-form-dynamic`
42
46
  */
43
47
  isVisible?: boolean;
44
- /**
45
- * Used to check when modal is loaded
46
- */
47
- isAnimationFinished: boolean;
48
+ onIsVisibleChanged(state: boolean): Promise<void>;
49
+ userAnswers: string[][];
48
50
  /**
49
51
  * Used by parent component (form-dynamic)
50
52
  */
51
53
  validityChanged: EventEmitter<boolean>;
52
54
  inputChanged: EventEmitter<string[]>;
53
- dragEnded: EventEmitter<boolean>;
54
55
  host: HTMLYooFormConnectElement;
55
- private overlapThreshold;
56
- private hoverColor;
57
- private mainContainerElement;
58
- private subContainerElements;
56
+ private innerContainerElement;
59
57
  private colors;
60
- private defaultColors;
61
58
  private draggables;
62
59
  private connectables;
63
- private userAnswers;
64
- private draggableInstances;
65
- private animationDelay;
66
- private validationClasses;
67
- onRequireChanged(): void;
68
- isValid(): void;
69
- initValues(): void;
70
- onIsVisibleChanged(state: boolean): void;
71
- onModalAnimationFinished(state: boolean): void;
60
+ get hasValues(): boolean;
61
+ get isGameMatchable(): boolean;
62
+ get draggableElements(): HTMLElement[];
63
+ get connectableElements(): HTMLElement[];
72
64
  componentWillLoad(): void;
65
+ componentWillUpdate(): void;
73
66
  componentDidLoad(): void;
74
- componentDidUpdate(): void;
75
- get hasValues(): boolean;
76
- get isConnectMatchable(): boolean;
77
- private updateDraggables;
78
- private initConnect;
79
- private shuffleObjects;
80
- private shuffleConnectValues;
81
- private getElement;
82
- private getConnectable;
83
- private getDraggable;
84
- private getScrollableArea;
85
- private preserveColors;
86
- private applyCorrections;
87
- private initUserAnswersArray;
88
- private initItems;
89
- private setColor;
90
- private removeColor;
91
- private updateColor;
92
- private getDraggableInstance;
93
- private applyColorChanges;
94
- private removeOldConnectable;
95
- private attachConnectable;
96
- private addAnswer;
97
- private checkAnswersValidity;
98
- private valideAnswers;
67
+ private prepareGame;
68
+ private initGame;
69
+ private initDraggables;
70
+ private scrollToRevealGame;
71
+ private setScrollableHeight;
72
+ private setDraggableObserver;
73
+ private shuffleItems;
74
+ private prepareItems;
75
+ private connectItems;
76
+ private initDraggableActions;
77
+ private getUserAnswers;
78
+ private validateUserAnswers;
79
+ private autoEraseLastConnection;
99
80
  private autoCompleteLastConnection;
100
81
  private truncateValue;
82
+ renderCorrectionIcon(value: string): any;
101
83
  renderContainer(name: string): any;
84
+ renderBanner(): any;
102
85
  render(): any;
103
86
  }
@@ -1,13 +1,12 @@
1
1
  import { TColor } from '@shared/interfaces';
2
2
  import { Draggable } from '@shared/utils';
3
- export interface IFormConnectReliable {
3
+ export declare const CONNECT_TYPES: readonly ["draggable", "connectable"];
4
+ export interface IConnect {
4
5
  id?: string;
5
6
  value?: string;
6
7
  color?: TColor;
7
- element?: HTMLElement;
8
8
  draggableInstance?: Draggable;
9
- tempConnectableId?: string;
10
- connectable?: IFormConnectReliable;
9
+ connectableId?: string;
11
10
  isCorrect?: boolean;
12
- isConnected?: boolean;
11
+ colorize?: () => void;
13
12
  }
@@ -183,6 +183,7 @@ export declare class YooFormDynamicComponent {
183
183
  onImageRecognitionFailed(field: IFormField): Promise<void>;
184
184
  forceFieldChanged(field: IFormField, data?: any): Promise<void>;
185
185
  forceFieldUpdate(field: IFormField, fieldData?: any, formSearch?: IFormSearch): Promise<void>;
186
+ resetCurrentPage(field: IFormField): Promise<void>;
186
187
  afterFetchCustomData(field: IFormField, data: any, options?: any): Promise<void>;
187
188
  findPreviousValue(fieldName: string): Promise<{
188
189
  field: IFormField;
@@ -9,9 +9,15 @@ export declare class YooFormImageTaggingComponent {
9
9
  readonly: boolean;
10
10
  livePreview: boolean;
11
11
  isAnimationFinished?: boolean;
12
+ onModalAnimationFinished(iaf: boolean): void;
12
13
  required: boolean;
14
+ onRequireChanged(): void;
13
15
  annotations: IPhotoAnnotation[];
16
+ onAnnotationsChanged(): void;
14
17
  values: string[];
18
+ onValuesChanged(newValues: string[], oldValues: string[]): void;
19
+ isVisible: boolean;
20
+ onIsVisibleChanged(): void;
15
21
  validityChanged: EventEmitter<boolean>;
16
22
  inputBlurred: EventEmitter<any>;
17
23
  inputFocused: EventEmitter<any>;
@@ -25,15 +31,12 @@ export declare class YooFormImageTaggingComponent {
25
31
  host: HTMLYooFormImageTaggingElement;
26
32
  private outerContainerElement;
27
33
  private imageOverlayElement;
34
+ private shouldRender;
28
35
  private zones;
29
36
  private resizeListener;
30
37
  private filteredValues;
31
38
  private loaded;
32
39
  isValid(): Promise<void>;
33
- onModalAnimationFinished(iaf: boolean): void;
34
- onRequireChanged(): void;
35
- onValuesChanged(newValues: string[], oldValues: string[]): void;
36
- onAnnotationsChanged(): void;
37
40
  componentWillLoad(): void;
38
41
  componentDidLoad(): void;
39
42
  componentDidUpdate(): void;
@@ -3,7 +3,7 @@
3
3
  * @author: Tom Kiddle
4
4
  * Zeplin Link: https://zpl.io/aMj1PZd https://zpl.io/an7D5jv
5
5
  */
6
- import { FormFieldType, IFormField, ISlide, ITranslation } from '@shared/interfaces';
6
+ import { IFormField, ISlide, ITranslation } from '@shared/interfaces';
7
7
  import { EventEmitter } from '../../../stencil-public-runtime';
8
8
  export declare class YooFormCreatorTranslateDialogComponent {
9
9
  /**
@@ -145,7 +145,6 @@ export declare class YooFormCreatorTranslateDialogComponent {
145
145
  componentDidUpdate(): void;
146
146
  updateAvailableLanguages(): void;
147
147
  isCreateTranslationMode(): boolean;
148
- isTextEditor(translatableFormField: string, fieldType: FormFieldType): boolean;
149
148
  initTranslationForms(): void;
150
149
  updateTranslationForms(force?: boolean): void;
151
150
  shouldRenderRightArrow(): boolean;
@@ -306,6 +306,7 @@ export declare class YooGridComponent {
306
306
  updateValues(values: any, total?: number): Promise<void>;
307
307
  getGridSelection(): Promise<any>;
308
308
  forceFieldUpdate(field: IFormField): Promise<void>;
309
+ refreshCells(): Promise<void>;
309
310
  scrollItem(index: number): Promise<void>;
310
311
  pullToRefresh(refresher?: HTMLYooIonRefresherElement): Promise<void>;
311
312
  onForceSearch(ev: CustomEvent<string>): Promise<void>;
@@ -1997,10 +1997,6 @@ export namespace Components {
1997
1997
  * Expected answer. consisting of an array of arrays, each sub-array containing a pair of correctly connected words
1998
1998
  */
1999
1999
  "answer": string[][];
2000
- /**
2001
- * Used to check when modal is loaded
2002
- */
2003
- "isAnimationFinished": boolean;
2004
2000
  /**
2005
2001
  * true if component's parent slide is visible within a `yoo-form-dynamic`
2006
2002
  */
@@ -2651,6 +2647,7 @@ export namespace Components {
2651
2647
  "onSlideNext": (skipEmitEvent?: boolean) => Promise<void>;
2652
2648
  "onSlidePrevious": () => Promise<void>;
2653
2649
  "progress": IFormProgress;
2650
+ "resetCurrentPage": (field: IFormField) => Promise<void>;
2654
2651
  "resume": () => Promise<void>;
2655
2652
  "safeCheckIndex"?: boolean;
2656
2653
  "saveSelectedTab": boolean;
@@ -2967,6 +2964,7 @@ export namespace Components {
2967
2964
  "image": IFileInterface;
2968
2965
  "isAnimationFinished"?: boolean;
2969
2966
  "isValid": () => Promise<void>;
2967
+ "isVisible": boolean;
2970
2968
  "livePreview": boolean;
2971
2969
  "placeholder": string;
2972
2970
  "readonly": boolean;
@@ -4108,6 +4106,7 @@ export namespace Components {
4108
4106
  "progressHandler"?: (data) => number;
4109
4107
  "progressbarAlignMode": string;
4110
4108
  "pullToRefresh": (refresher?: HTMLYooIonRefresherElement) => Promise<void>;
4109
+ "refreshCells": () => Promise<void>;
4111
4110
  "refreshKanban": () => Promise<void>;
4112
4111
  "relativeOpacity": number;
4113
4112
  "removeFromSelection": (item: IEntity) => Promise<void>;
@@ -5126,6 +5125,7 @@ export namespace Components {
5126
5125
  * The markdown content to display inside the component
5127
5126
  */
5128
5127
  "content": string;
5128
+ "isVisible"?: boolean;
5129
5129
  "linkPreviews"?: ILinkPreview[];
5130
5130
  "setContent": () => Promise<void>;
5131
5131
  }
@@ -11232,10 +11232,6 @@ declare namespace LocalJSX {
11232
11232
  * Expected answer. consisting of an array of arrays, each sub-array containing a pair of correctly connected words
11233
11233
  */
11234
11234
  "answer"?: string[][];
11235
- /**
11236
- * Used to check when modal is loaded
11237
- */
11238
- "isAnimationFinished"?: boolean;
11239
11235
  /**
11240
11236
  * true if component's parent slide is visible within a `yoo-form-dynamic`
11241
11237
  */
@@ -11244,7 +11240,6 @@ declare namespace LocalJSX {
11244
11240
  * true if the component is loaded within the preview mode in the course-creator
11245
11241
  */
11246
11242
  "livePreview"?: boolean;
11247
- "onDragEnded"?: (event: CustomEvent<boolean>) => void;
11248
11243
  "onInputChanged"?: (event: CustomEvent<string[]>) => void;
11249
11244
  /**
11250
11245
  * Used by parent component (form-dynamic)
@@ -12785,6 +12780,7 @@ declare namespace LocalJSX {
12785
12780
  "answer"?: string[];
12786
12781
  "image"?: IFileInterface;
12787
12782
  "isAnimationFinished"?: boolean;
12783
+ "isVisible"?: boolean;
12788
12784
  "livePreview"?: boolean;
12789
12785
  "onDragEnded"?: (event: CustomEvent<boolean>) => void;
12790
12786
  "onDragStarted"?: (event: CustomEvent<boolean>) => void;
@@ -15207,6 +15203,7 @@ declare namespace LocalJSX {
15207
15203
  * The markdown content to display inside the component
15208
15204
  */
15209
15205
  "content"?: string;
15206
+ "isVisible"?: boolean;
15210
15207
  "linkPreviews"?: ILinkPreview[];
15211
15208
  }
15212
15209
  interface YooMemoList {
@@ -24,4 +24,5 @@ export declare class IFileInterface extends IEntity {
24
24
  relativeSizeToWindow?: boolean;
25
25
  wikiRef?: string;
26
26
  mediaDimension?: IMediaDimension;
27
+ highlight?: string[];
27
28
  }
@@ -116,7 +116,6 @@ export declare class IMissionDescription extends IEntity {
116
116
  uniqueKeyPrefix?: string;
117
117
  public?: boolean;
118
118
  category?: IMissionDescription;
119
- stats?: IMissionDescriptionStats;
120
119
  campaignStats?: IMissionDescriptionStats;
121
120
  processIcon?: TIconName;
122
121
  color?: string;
@@ -139,6 +138,7 @@ export declare class IMissionDescription extends IEntity {
139
138
  name: string;
140
139
  }[];
141
140
  todo?: ITodo;
141
+ filteredPlanIds?: string[];
142
142
  }
143
143
  export declare class IMissionDescriptionTemplate extends IMissionDescription {
144
144
  active?: boolean;
@@ -153,7 +153,7 @@ export declare class IMissionDescriptionStats extends IEntity {
153
153
  averageScoring?: number;
154
154
  complianceRate?: number;
155
155
  userRef?: string;
156
- descriptionRef: string;
156
+ descriptionRef?: string;
157
157
  isAdminView?: boolean;
158
158
  availableCount?: number;
159
159
  bookedCount?: number;
@@ -46,4 +46,4 @@ export interface IChatRemoveCountParams {
46
46
  channelId: string;
47
47
  multiple: boolean;
48
48
  }
49
- export declare type TGetAsyncExtraDataType = 'box-session' | 'course' | 'decode-html' | 'email-dialog' | 'entity-detail' | 'event-users' | 'feed-comment' | 'feed-detail' | 'feed-dialog' | 'feed-group' | 'field-autocomplete-add' | 'field-computation' | 'field-fetch-data' | 'field-table-add' | 'file-uploader' | 'gif' | 'grid-query' | 'htmltemplate-get' | 'htmltemplate-save' | 'increase-view' | 'link-preview' | 'media-upload' | 'mention' | 'poll-vote' | 'preview-customapp' | 'preview-tiles' | 'product-search' | 'products-search' | 'question-dialog' | 'rate-course' | 'sanitize-html' | 'scorm-create-registration' | 'scorm-delete-registration' | 'scorm-extract-and-transform-runtime-interactions' | 'scorm-get-all-registrations' | 'scorm-get-launch-link' | 'scorm-get-preview-link' | 'scorm-get-registration' | 'select-all-query' | 'show-document-wiki' | 'show-document' | 'show-entity-by-id' | 'sms-segments-count' | 'tags' | 'translate-text' | 'unsplash' | 'upload-api' | 'upload-cloudinary' | 'user-detail-id' | 'user-detail' | 'user-images' | 'user-list' | 'user-selection' | 'waitlist-timeslots';
49
+ export declare type TGetAsyncExtraDataType = 'box-session' | 'course' | 'decode-html' | 'email-dialog' | 'entity-detail' | 'event-users' | 'feed-comment' | 'feed-detail' | 'feed-dialog' | 'feed-group' | 'field-autocomplete-add' | 'field-computation' | 'field-fetch-data' | 'field-table-add' | 'file-uploader' | 'get-by-ids' | 'gif' | 'grid-query' | 'htmltemplate-get' | 'htmltemplate-save' | 'increase-view' | 'link-preview' | 'media-upload' | 'mention' | 'poll-vote' | 'preview-customapp' | 'preview-tiles' | 'product-search' | 'products-search' | 'question-dialog' | 'rate-course' | 'sanitize-html' | 'scorm-create-registration' | 'scorm-delete-registration' | 'scorm-extract-and-transform-runtime-interactions' | 'scorm-get-all-registrations' | 'scorm-get-launch-link' | 'scorm-get-preview-link' | 'scorm-get-registration' | 'select-all-query' | 'show-document-wiki' | 'show-document' | 'show-entity-by-id' | 'sms-segments-count' | 'tags' | 'translate-text' | 'unsplash' | 'upload-api' | 'upload-cloudinary' | 'user-detail-id' | 'user-detail' | 'user-images' | 'user-list' | 'user-selection' | 'waitlist-timeslots';
@@ -1 +1,2 @@
1
1
  export declare const escapeRegExp: (value: string) => string;
2
+ export declare function isHTML(value: string): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoobic/yobi",
3
- "version": "7.7.40",
3
+ "version": "7.7.44",
4
4
  "description": "Yobi - Yoobic Design System",
5
5
  "module": "dist/index.js",
6
6
  "main": "dist/index.cjs.js",