@yoobic/yobi 7.7.97 → 7.7.101

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 (89) hide show
  1. package/dist/cjs/{grid-renderers-dacdc474.js → grid-renderers-9452d5e4.js} +31 -4
  2. package/dist/cjs/{image-helpers-ea15b526.js → image-helpers-3385fd6f.js} +2 -2
  3. package/dist/cjs/{index-541062cd.js → index-621e23cc.js} +11 -3
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/yoo-action-sheet-controller_15.cjs.entry.js +1 -1
  6. package/dist/cjs/yoo-ag-grid_96.cjs.entry.js +2 -2
  7. package/dist/cjs/yoo-avatar_5.cjs.entry.js +1 -1
  8. package/dist/cjs/yoo-card-header.cjs.entry.js +1 -1
  9. package/dist/cjs/yoo-card-list-image_12.cjs.entry.js +2 -2
  10. package/dist/cjs/yoo-form-choice_4.cjs.entry.js +1 -1
  11. package/dist/cjs/yoo-form-creator-block-expandable.cjs.entry.js +1 -1
  12. package/dist/cjs/yoo-form-creator-block-simple_4.cjs.entry.js +2 -2
  13. package/dist/cjs/yoo-form-creator-card_2.cjs.entry.js +1 -1
  14. package/dist/cjs/yoo-form-creator-field-selector_8.cjs.entry.js +5 -4
  15. package/dist/cjs/yoo-form-creator-translate-dialog.cjs.entry.js +1 -1
  16. package/dist/cjs/yoo-form-creator.cjs.entry.js +18 -20
  17. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +1 -1
  18. package/dist/cjs/yoo-gridstack.cjs.entry.js +17 -2
  19. package/dist/cjs/yoo-mission-detail.cjs.entry.js +8 -2
  20. package/dist/cjs/yoo-mission-results.cjs.entry.js +1 -1
  21. package/dist/cjs/yoo-podium.cjs.entry.js +1 -1
  22. package/dist/cjs/yoo-walkthrough.cjs.entry.js +1 -1
  23. package/dist/collection/components/app-operations/mission-detail/mission-detail.js +15 -0
  24. package/dist/collection/components/app-operations/mission-results/mission-results.js +1 -1
  25. package/dist/collection/components/form/form-text-editor/form-text-editor.js +1 -1
  26. package/dist/collection/components/form-creator/form-creator/form-creator.js +9 -11
  27. package/dist/collection/components/form-creator/form-creator-page-card-list/form-creator-page-card-list.js +1 -1
  28. package/dist/collection/components/form-creator/helpers/index.js +11 -3
  29. package/dist/collection/components/form-creator/workflow/workflow.js +4 -3
  30. package/dist/collection/components/grid/ag-grid/grid-renderers.js +31 -4
  31. package/dist/collection/components/grid/gridstack/gridstack.js +18 -3
  32. package/dist/collection/utils/helpers/image-helpers.js +2 -2
  33. package/dist/design-system/design-system.esm.js +1 -1
  34. package/dist/design-system/index.esm.js +1 -1
  35. package/dist/design-system/{p-d74f2bbf.entry.js → p-09036a09.entry.js} +1 -1
  36. package/dist/design-system/{p-83aa89ad.entry.js → p-0cd448c7.entry.js} +1 -1
  37. package/dist/design-system/{p-c5e4eec8.entry.js → p-202031a2.entry.js} +1 -1
  38. package/dist/design-system/p-2752aa83.js +1 -0
  39. package/dist/design-system/{p-e70980f6.entry.js → p-2d017575.entry.js} +1 -1
  40. package/dist/design-system/{p-5c6ef130.js → p-349cb8cd.js} +1 -1
  41. package/dist/design-system/{p-02385015.entry.js → p-3d5d0597.entry.js} +1 -1
  42. package/dist/design-system/{p-7fcd0596.entry.js → p-405c25ba.entry.js} +1 -1
  43. package/dist/design-system/{p-eb421ff4.entry.js → p-44b19de9.entry.js} +1 -1
  44. package/dist/design-system/{p-af4cfea4.entry.js → p-4ae66a1f.entry.js} +1 -1
  45. package/dist/design-system/p-55d4560c.entry.js +1 -0
  46. package/dist/design-system/p-6bc1375d.entry.js +1 -0
  47. package/dist/design-system/{p-1f8cfec7.entry.js → p-80aded97.entry.js} +1 -1
  48. package/dist/design-system/{p-332efa96.entry.js → p-9ed3a063.entry.js} +1 -1
  49. package/dist/design-system/p-a09b181a.entry.js +1 -0
  50. package/dist/design-system/p-be2ae101.entry.js +1 -0
  51. package/dist/design-system/p-c4bffb13.js +1 -0
  52. package/dist/design-system/{p-cb9c30a3.entry.js → p-c4f7294a.entry.js} +1 -1
  53. package/dist/design-system/{p-6470e707.entry.js → p-cf343c67.entry.js} +1 -1
  54. package/dist/design-system/{p-59f99c7c.entry.js → p-e97d2029.entry.js} +1 -1
  55. package/dist/design-system/{p-4ef0efa6.entry.js → p-f9526dad.entry.js} +1 -1
  56. package/dist/esm/{grid-renderers-f81f061f.js → grid-renderers-0cd64b5f.js} +31 -4
  57. package/dist/esm/{image-helpers-6b281c05.js → image-helpers-2f8f9d5d.js} +2 -2
  58. package/dist/esm/{index-70924cfc.js → index-350d88b9.js} +11 -3
  59. package/dist/esm/index.js +1 -1
  60. package/dist/esm/yoo-action-sheet-controller_15.entry.js +1 -1
  61. package/dist/esm/yoo-ag-grid_96.entry.js +2 -2
  62. package/dist/esm/yoo-avatar_5.entry.js +1 -1
  63. package/dist/esm/yoo-card-header.entry.js +1 -1
  64. package/dist/esm/yoo-card-list-image_12.entry.js +2 -2
  65. package/dist/esm/yoo-form-choice_4.entry.js +1 -1
  66. package/dist/esm/yoo-form-creator-block-expandable.entry.js +1 -1
  67. package/dist/esm/yoo-form-creator-block-simple_4.entry.js +2 -2
  68. package/dist/esm/yoo-form-creator-card_2.entry.js +1 -1
  69. package/dist/esm/yoo-form-creator-field-selector_8.entry.js +5 -4
  70. package/dist/esm/yoo-form-creator-translate-dialog.entry.js +1 -1
  71. package/dist/esm/yoo-form-creator.entry.js +10 -12
  72. package/dist/esm/yoo-form-text-editor.entry.js +1 -1
  73. package/dist/esm/yoo-gridstack.entry.js +17 -2
  74. package/dist/esm/yoo-mission-detail.entry.js +8 -2
  75. package/dist/esm/yoo-mission-results.entry.js +1 -1
  76. package/dist/esm/yoo-podium.entry.js +1 -1
  77. package/dist/esm/yoo-walkthrough.entry.js +1 -1
  78. package/dist/types/components/app-operations/mission-detail/mission-detail.d.ts +1 -0
  79. package/dist/types/components/form-creator/helpers/index.d.ts +4 -1
  80. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/form-field/form-field.interface.d.ts +2 -1
  81. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/mission/mission.interface.d.ts +1 -1
  82. package/dist/types/home/runner/work/yoobic-ng-6/yoobic-ng-6/design-system/stencil/.stencil/shared/interfaces/src/entities/workflow/workflow.interface.d.ts +1 -0
  83. package/package.json +1 -1
  84. package/dist/design-system/p-03dbb1fa.entry.js +0 -1
  85. package/dist/design-system/p-486e9464.js +0 -1
  86. package/dist/design-system/p-67582664.entry.js +0 -1
  87. package/dist/design-system/p-6871e6b7.entry.js +0 -1
  88. package/dist/design-system/p-6cfa75b3.js +0 -1
  89. package/dist/design-system/p-c047c9ba.entry.js +0 -1
@@ -782,6 +782,7 @@ export class YooFormCreatorComponent {
782
782
  this.selectedPageIndex = index;
783
783
  }
784
784
  async addNewPage(newPage, index) {
785
+ newPage = Object.assign({ _id: getUUID() }, newPage);
785
786
  this.currentSlides.splice(index, 0, newPage);
786
787
  this.selectedPageIndex = index;
787
788
  this.hasPageChanged = index;
@@ -1596,26 +1597,23 @@ export class YooFormCreatorComponent {
1596
1597
  }
1597
1598
  }
1598
1599
  onCustomFieldAdded(customFieldId, selectedCustomFormField, indexToAdd) {
1599
- var _a, _b, _c, _d;
1600
+ var _a, _b, _c, _d, _e, _f;
1600
1601
  if (!this.currentSlides[this.selectedPageIndex]) {
1601
1602
  return;
1602
1603
  }
1604
+ indexToAdd = isNullOrUndefined(indexToAdd) ? (_b = (_a = this.currentSlides[this.selectedPageIndex]) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length : indexToAdd;
1603
1605
  if (!selectedCustomFormField) {
1604
- selectedCustomFormField = (_a = this.customFormFields) === null || _a === void 0 ? void 0 : _a.find((customField) => customField._id === customFieldId);
1606
+ selectedCustomFormField = (_c = this.customFormFields) === null || _c === void 0 ? void 0 : _c.find((customField) => customField._id === customFieldId);
1605
1607
  }
1606
- const newFields = createNewIdsForCustomFields(selectedCustomFormField.fields);
1608
+ const newFields = createNewIdsForCustomFields(selectedCustomFormField.fields, ((_d = this.missionDescription) === null || _d === void 0 ? void 0 : _d.type) === 'dataset', { slideIndex: this.selectedPageIndex, itemIndex: indexToAdd });
1607
1609
  newFields === null || newFields === void 0 ? void 0 : newFields.forEach((field) => {
1608
- var _a;
1610
+ var _a, _b;
1609
1611
  field.slideIndex = this.selectedPageIndex;
1610
1612
  field.slideTitle = (_a = this.currentSlides[this.selectedPageIndex]) === null || _a === void 0 ? void 0 : _a.title;
1613
+ field.slideId = (_b = this.currentSlides[this.selectedPageIndex]) === null || _b === void 0 ? void 0 : _b._id;
1611
1614
  });
1612
- if (((_c = (_b = this.currentSlides[this.selectedPageIndex]) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.length) > 0) {
1613
- if (isNullOrUndefined(indexToAdd)) {
1614
- this.currentSlides[this.selectedPageIndex].items = [...(_d = this.currentSlides[this.selectedPageIndex]) === null || _d === void 0 ? void 0 : _d.items, ...newFields];
1615
- }
1616
- else {
1617
- this.currentSlides[this.selectedPageIndex].items.splice(indexToAdd, 0, ...newFields);
1618
- }
1615
+ if (((_f = (_e = this.currentSlides[this.selectedPageIndex]) === null || _e === void 0 ? void 0 : _e.items) === null || _f === void 0 ? void 0 : _f.length) > 0) {
1616
+ this.currentSlides[this.selectedPageIndex].items.splice(indexToAdd, 0, ...newFields);
1619
1617
  }
1620
1618
  else {
1621
1619
  this.currentSlides[this.selectedPageIndex].items = newFields;
@@ -153,7 +153,7 @@ export class YooFormCreatorPageCardListComponent {
153
153
  if (this.workflowVisibility) {
154
154
  pageEntry.pageWorkflowState = this.workflowVisibility;
155
155
  if ((_a = this.pagePermissions) === null || _a === void 0 ? void 0 : _a.length) {
156
- const pagePermission = this.pagePermissions.find((permission) => permission.name === slide.title);
156
+ const pagePermission = this.pagePermissions.find((permission) => permission.name === slide._id || permission.name === slide.title);
157
157
  pageEntry.pageWorkflowState = getWorkflowFieldState(pagePermission, this.workflowVisibility);
158
158
  }
159
159
  }
@@ -896,6 +896,8 @@ export function setChildFields(parentConditions, itemIndex) {
896
896
  export function addNewIdsToSlide(slide) {
897
897
  var _a, _b;
898
898
  const ids = [];
899
+ if (slide)
900
+ slide._id = getUUID();
899
901
  (_a = slide === null || slide === void 0 ? void 0 : slide.items) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
900
902
  const newId = getUUID();
901
903
  ids.push({ oldId: item.name, newId });
@@ -1145,10 +1147,16 @@ export function cleanCustomFormFieldSlides(selectedFields, translations) {
1145
1147
  });
1146
1148
  return { cleanedFields: selectedFields, removedConditionIds };
1147
1149
  }
1148
- export function createNewIdsForCustomFields(customFields) {
1149
- const cleanedFields = customFields.map((field) => {
1150
+ export function createNewIdsForCustomFields(customFields, isCustomDataSet, fieldLocation) {
1151
+ const cleanedFields = customFields.map((field, fIndex) => {
1150
1152
  const cleanedField = cloneDeep(field);
1151
- cleanedField.name = getUUID();
1153
+ if (isCustomDataSet) {
1154
+ cleanedField.name = getCustomName(cleanedField.title, fieldLocation.slideIndex, fieldLocation.itemIndex + fIndex);
1155
+ cleanedField.customName = getUUID();
1156
+ }
1157
+ else {
1158
+ cleanedField.name = getUUID();
1159
+ }
1152
1160
  return cleanedField;
1153
1161
  });
1154
1162
  cleanedFields.forEach((cleanedFeild) => {
@@ -245,7 +245,7 @@ export class YooWorkflowComponent {
245
245
  onPageStateChange(ev) {
246
246
  var _a, _b, _c, _d;
247
247
  if (this.internalMissionDescription.slides[ev.detail.index]) {
248
- const pageName = this.internalMissionDescription.slides[ev.detail.index].title;
248
+ const pageName = this.internalMissionDescription.slides[ev.detail.index]._id || this.internalMissionDescription.slides[ev.detail.index].title;
249
249
  const fieldPermission = { name: pageName };
250
250
  switch (ev.detail.newState.title) {
251
251
  case 'EDITABLE':
@@ -388,8 +388,9 @@ export class YooWorkflowComponent {
388
388
  }
389
389
  ], iconPairLeft: ARROW_PAIR, showBottomBorder: true, forceEntryUpdate: true, allowMultipleSelection: true, onAccordionSelected: (ev) => (this.isFieldsAccordionOpen = ev.detail.selected) },
390
390
  h("div", { slot: "CONTENTS" }, (_e = (_d = (_c = this.internalMissionDescription) === null || _c === void 0 ? void 0 : _c.slides[this.currentPageSelected]) === null || _d === void 0 ? void 0 : _d.items) === null || _e === void 0 ? void 0 : _e.map((item) => {
391
- var _a, _b;
392
- const pagePermission = (_b = (_a = this.currentWorkflowStep) === null || _a === void 0 ? void 0 : _a.pagesPermission) === null || _b === void 0 ? void 0 : _b.find((permission) => { var _a; return permission.name === ((_a = this.internalMissionDescription) === null || _a === void 0 ? void 0 : _a.slides[this.currentPageSelected].title); });
391
+ var _a, _b, _c, _d;
392
+ const slideName = ((_a = this.internalMissionDescription) === null || _a === void 0 ? void 0 : _a.slides[this.currentPageSelected]._id) || ((_b = this.internalMissionDescription) === null || _b === void 0 ? void 0 : _b.slides[this.currentPageSelected].title);
393
+ const pagePermission = (_d = (_c = this.currentWorkflowStep) === null || _c === void 0 ? void 0 : _c.pagesPermission) === null || _d === void 0 ? void 0 : _d.find((permission) => permission.name === slideName);
393
394
  const pageState = getWorkflowFieldState(pagePermission, this.defaultFieldState);
394
395
  return this.renderSimpleBlock(item, pageState);
395
396
  }))));
@@ -383,7 +383,7 @@ function photoRenderer(params) {
383
383
  return '';
384
384
  }
385
385
  function multiphotoRenderer(params) {
386
- const photos = params.value;
386
+ const photos = compact([].concat(params.value));
387
387
  if (photos && isArray(photos) && photos.length > 0) {
388
388
  //return photos.map((photo) => `<yoo-img style="${getStyle(roundedImageStyle)}" src="${photo || ''}" />`).join(' ');
389
389
  const container = document.createElement('div');
@@ -404,6 +404,27 @@ function multiphotoRenderer(params) {
404
404
  }
405
405
  return '';
406
406
  }
407
+ function imageRenderer(params) {
408
+ var _a, _b, _c;
409
+ let photos = [];
410
+ const colDef = (_a = params.column) === null || _a === void 0 ? void 0 : _a.getColDef();
411
+ photos = compact([].concat((_c = (_b = colDef) === null || _b === void 0 ? void 0 : _b.fieldDefinition) === null || _c === void 0 ? void 0 : _c.imagesCarousel));
412
+ if (photos && isArray(photos) && photos.length > 0) {
413
+ //return photos.map((photo) => `<yoo-img style="${getStyle(roundedImageStyle)}" src="${photo || ''}" />`).join(' ');
414
+ const container = document.createElement('div');
415
+ container.style.display = 'inherit';
416
+ photos.forEach((photo) => {
417
+ const img = document.createElement('yoo-img');
418
+ keys(roundedImageStyle).forEach((k) => {
419
+ img.style[k] = roundedImageStyle[k];
420
+ });
421
+ img.src = photo;
422
+ container.appendChild(img);
423
+ });
424
+ return container;
425
+ }
426
+ return '';
427
+ }
407
428
  function videoRenderer(params) {
408
429
  return '<video class="ag-cell-image video" [src]="' + params.value + '"></video>';
409
430
  }
@@ -577,13 +598,16 @@ function catalogRenderer(params) {
577
598
  return formCatalog;
578
599
  }
579
600
  function documentRenderer(params) {
601
+ var _a, _b, _c, _d;
580
602
  let documents = [];
581
- if (params.colDef.fieldDefinition.type === FormFieldType.document) {
582
- documents = compact([].concat(params.colDef.fieldDefinition.document));
603
+ const colDef = (_a = params.column) === null || _a === void 0 ? void 0 : _a.getColDef();
604
+ if (((_c = (_b = colDef) === null || _b === void 0 ? void 0 : _b.fieldDefinition) === null || _c === void 0 ? void 0 : _c.type) === FormFieldType.document) {
605
+ documents = compact([].concat(colDef.fieldDefinition.document));
583
606
  }
584
607
  else {
585
608
  documents = compact([].concat(params.value));
586
609
  }
610
+ documents = documents.filter((d) => !!d._downloadURL);
587
611
  const wrapper = document.createElement('div');
588
612
  wrapper.classList.add('col');
589
613
  if (documents.length > 0) {
@@ -595,8 +619,9 @@ function documentRenderer(params) {
595
619
  formDocument.showActionSheet = false;
596
620
  wrapper.appendChild(formDocument);
597
621
  });
622
+ return ((_d = params) === null || _d === void 0 ? void 0 : _d.type) === 'excel' ? documents.map((d) => d._downloadURL).join(',') : wrapper;
598
623
  }
599
- return wrapper;
624
+ return '';
600
625
  }
601
626
  function pricecheckRenderer(params) {
602
627
  const value = params.value;
@@ -1113,6 +1138,8 @@ export function getRenderer(renderer) {
1113
1138
  return photoRenderer;
1114
1139
  case 'multiphotoRenderer':
1115
1140
  return multiphotoRenderer;
1141
+ case 'imageRenderer':
1142
+ return imageRenderer;
1116
1143
  case 'videoRenderer':
1117
1144
  return videoRenderer;
1118
1145
  case 'starratingRenderer':
@@ -1,7 +1,7 @@
1
1
  import 'gridstack/dist/h5/gridstack-dd-native';
2
2
  import { debounce } from '@shared/utils';
3
3
  import { Component, Element, Event, h, Host, Method, Prop, State, Watch } from '@stencil/core';
4
- import { GridStack } from 'gridstack';
4
+ import { GridStack, Utils } from 'gridstack';
5
5
  import { DDResizable } from 'gridstack/dist/h5/dd-resizable';
6
6
  import { assign, cloneDeep, isEqual, isFunction, pick, sortBy } from 'lodash-es';
7
7
  DDResizable.prototype._resizeStopOriginal = DDResizable.prototype._resizeStop;
@@ -189,9 +189,11 @@ export class YooGridstackComponent {
189
189
  }
190
190
  delete this.containerEl.gridstack;
191
191
  this.grid = GridStack.init({
192
+ auto: false,
192
193
  column: this.column || 12,
193
194
  animate: true,
194
195
  disableOneColumnMode: this.forceOneColumn !== true,
196
+ oneColumnModeDomSort: false,
195
197
  cellHeight: this.cellHeight || 'auto',
196
198
  margin: this.itemMargin,
197
199
  acceptWidgets: '.ui-draggable',
@@ -255,10 +257,23 @@ export class YooGridstackComponent {
255
257
  }
256
258
  }
257
259
  renderConfig() {
258
- var _a;
259
260
  this.grid.removeAll(true);
260
261
  this.grid.batchUpdate();
261
- (_a = this.config) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
262
+ let finalConfig = this.config;
263
+ if (this.column === 1 && (finalConfig === null || finalConfig === void 0 ? void 0 : finalConfig.length) > 0) {
264
+ finalConfig = Utils.sort(this.config, 1, this.column);
265
+ finalConfig.forEach((v, i) => {
266
+ if (i === 0) {
267
+ v.y = 0;
268
+ v.x = 0;
269
+ }
270
+ else {
271
+ v.x = 0;
272
+ v.y = finalConfig[i - 1].y + finalConfig[i - 1].h;
273
+ }
274
+ });
275
+ }
276
+ finalConfig === null || finalConfig === void 0 ? void 0 : finalConfig.forEach((item) => {
262
277
  const isHidden = !!this.hiddenWidgets.find((i) => i.id === item.id);
263
278
  const el = this.grid.addWidget(this.getItemTemplate(item, isHidden), cloneDeep(item));
264
279
  if (isHidden) {
@@ -1,11 +1,11 @@
1
1
  import { cleanupWKWebViewImagePath, Cloudinary, getCssColor, isBase64, isCloudinaryLink, isImageUrl } from '@shared/utils';
2
2
  export async function getImageSize(src, onErr) {
3
3
  const img = new Image();
4
- if (src && (isImageUrl(src) || isBase64(src))) {
4
+ if (src) {
5
5
  img.src = isCloudinaryLink(src) ? new Cloudinary(src).quality('low').getUrl() : src;
6
6
  await new Promise((resolve, reject) => {
7
7
  img.onload = () => resolve(img.width);
8
- img.onerror = () => reject(onErr === null || onErr === void 0 ? void 0 : onErr());
8
+ img.onerror = () => isImageUrl(src) || isBase64(src) && reject(onErr === null || onErr === void 0 ? void 0 : onErr());
9
9
  });
10
10
  }
11
11
  return {