@veloceapps/sdk 7.0.2-2 → 7.0.2-21

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 (65) hide show
  1. package/cms/cms.actions.d.ts +7 -1
  2. package/cms/components/element-children/element-children.component.d.ts +3 -1
  3. package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +14 -0
  4. package/cms/components/preview/preview.module.d.ts +2 -1
  5. package/cms/components/preview/preview.types.d.ts +4 -0
  6. package/cms/injection-tokens.d.ts +1 -3
  7. package/cms/modules/runtime/services/compilation.service.d.ts +2 -1
  8. package/cms/modules/runtime/services/runtime-editor.service.d.ts +6 -4
  9. package/cms/modules/runtime/types/runtime.actions.d.ts +5 -2
  10. package/cms/plugins/element-hover.plugin.d.ts +32 -0
  11. package/cms/plugins/script.plugin.d.ts +0 -3
  12. package/cms/types/common.types.d.ts +11 -1
  13. package/cms/types/index.d.ts +2 -0
  14. package/cms/types/layouts.types.d.ts +28 -2
  15. package/cms/types/pages.types.d.ts +1 -0
  16. package/cms/utils/elements-resolver.d.ts +5 -1
  17. package/cms/utils/script.utils.d.ts +2 -0
  18. package/cms/vendor-map.d.ts +7 -5
  19. package/core/modules/configuration/services/configuration.service.d.ts +3 -3
  20. package/core/types/ui-definition.types.d.ts +7 -2
  21. package/core/utils/line-item.utils.d.ts +4 -2
  22. package/core/utils/line-item.worker.d.ts +2 -2
  23. package/esm2020/cms/cms.actions.mjs +11 -2
  24. package/esm2020/cms/cms.elements.mjs +14 -3
  25. package/esm2020/cms/cms.layouts.mjs +39 -1
  26. package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
  27. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +2 -2
  28. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +35 -0
  29. package/esm2020/cms/components/preview/preview.module.mjs +22 -4
  30. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  31. package/esm2020/cms/injection-tokens.mjs +1 -2
  32. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
  33. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +5 -3
  34. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +2 -2
  35. package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +1 -1
  36. package/esm2020/cms/plugins/element-hover.plugin.mjs +112 -0
  37. package/esm2020/cms/plugins/script.plugin.mjs +6 -40
  38. package/esm2020/cms/services/integration.state.mjs +3 -6
  39. package/esm2020/cms/services/io-provider.service.mjs +7 -5
  40. package/esm2020/cms/types/common.types.mjs +1 -1
  41. package/esm2020/cms/types/index.mjs +3 -1
  42. package/esm2020/cms/types/layouts.types.mjs +70 -1
  43. package/esm2020/cms/types/pages.types.mjs +2 -0
  44. package/esm2020/cms/utils/elements-resolver.mjs +22 -8
  45. package/esm2020/cms/utils/script.utils.mjs +42 -0
  46. package/esm2020/cms/vendor-map.mjs +3 -2
  47. package/esm2020/core/modules/configuration/services/configuration.service.mjs +6 -5
  48. package/esm2020/core/types/ui-definition.types.mjs +1 -1
  49. package/esm2020/core/utils/line-item.utils.mjs +35 -16
  50. package/esm2020/core/utils/line-item.worker.mjs +5 -5
  51. package/esm2020/src/components/header/header.component.mjs +15 -3
  52. package/esm2020/src/flow-routing.module.mjs +1 -1
  53. package/fesm2015/veloceapps-sdk-cms.mjs +343 -108
  54. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  55. package/fesm2015/veloceapps-sdk-core.mjs +46 -24
  56. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  57. package/fesm2015/veloceapps-sdk.mjs +15 -2
  58. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  59. package/fesm2020/veloceapps-sdk-cms.mjs +424 -122
  60. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  61. package/fesm2020/veloceapps-sdk-core.mjs +46 -24
  62. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  63. package/fesm2020/veloceapps-sdk.mjs +14 -2
  64. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  65. package/package.json +1 -1
@@ -503,18 +503,25 @@ const removeLineItem = (lineItem, idToRemove) => {
503
503
  .filter(r => !!r),
504
504
  };
505
505
  };
506
- const replaceLineItem = (lineItem, replaceTo) => {
506
+ const replaceLineItem = (lineItem, replaceTo, skipCardinalityCalculation = false) => {
507
507
  if (lineItem.id === replaceTo.id) {
508
- return { ...recalculateCardinalityVariables(lineItem, replaceTo) };
508
+ if (!skipCardinalityCalculation) {
509
+ return { ...recalculateCardinalityVariables(lineItem, replaceTo) };
510
+ }
511
+ else {
512
+ return { ...replaceTo };
513
+ }
509
514
  }
510
515
  return {
511
516
  ...lineItem,
512
- lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)),
517
+ lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo, skipCardinalityCalculation)),
513
518
  };
514
519
  };
515
520
  const calculateCardinalityVariables = (lineItems) => {
516
521
  const cardVars = new Map();
517
- lineItems.forEach(li => {
522
+ lineItems
523
+ .filter(({ port, type }) => !!port && !!type)
524
+ .forEach(li => {
518
525
  const cardinalityVariableName = `#CV-${li.type}@${li.port}`;
519
526
  cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);
520
527
  });
@@ -554,13 +561,13 @@ const upsertAttributes = (originalAttributes, attributesToUpsert) => {
554
561
  ];
555
562
  }, originalAttributes);
556
563
  };
557
- const patchAttributes = (rootLineItem, id, attrs) => {
564
+ const patchAttributes = (rootLineItem, id, attrs, skipCardinalityCalculation = false) => {
558
565
  const lineItem = findLineItem(id, [rootLineItem]);
559
566
  if (!lineItem) {
560
567
  return rootLineItem;
561
568
  }
562
569
  const attributes = upsertAttributes(lineItem.attributes, attrs);
563
- return replaceLineItem(rootLineItem, { ...lineItem, attributes });
570
+ return replaceLineItem(rootLineItem, { ...lineItem, attributes }, skipCardinalityCalculation);
564
571
  };
565
572
  const getAttributeValue = (attributes, name) => attributes.find(attr => attr.name === name)?.value;
566
573
  const generateLineItem = (port, type, parentId, attributes = [], lineItems = []) => {
@@ -588,19 +595,31 @@ const getRecommendedPrices = (portDomain, type) => {
588
595
  };
589
596
  const generateModifiedAssetsMap = (lineItems) => {
590
597
  return lineItems.reduce((acc, li) => {
591
- if (li.rampInstanceId && li.status !== 'EXIST') {
592
- let target = li;
593
- while (target && target.rampInstanceId) {
594
- target = lineItems.find(sub => sub.id === li.rampInstanceId);
595
- }
596
- const id = target?.assetId ?? target?.openOrderLineItemId;
597
- if (id) {
598
- acc[id] = true;
599
- }
598
+ const isModified = isLineItemModified(li);
599
+ if (!isModified) {
600
+ return acc;
601
+ }
602
+ const target = getOriginParent(lineItems, li);
603
+ const id = target?.assetId ?? target?.openOrderLineItemId;
604
+ if (id) {
605
+ acc[id] = true;
600
606
  }
601
607
  return acc;
602
608
  }, {});
603
609
  };
610
+ const getOriginParent = (lineItems, currentLineItem) => {
611
+ let target = currentLineItem;
612
+ while (target && target.rampInstanceId) {
613
+ target = lineItems.find(sub => sub.id === currentLineItem.rampInstanceId);
614
+ }
615
+ return target;
616
+ };
617
+ const isLineItemModified = (lineItem) => {
618
+ if (lineItem.actionCode === 'EXIST' && lineItem.status === 'PENDING') {
619
+ return false;
620
+ }
621
+ return lineItem.actionCode !== 'EXIST';
622
+ };
604
623
  const multiplyLineItems = (lineItem, qty, split) => {
605
624
  if (split) {
606
625
  const unifyIds = (lineItem) => ({
@@ -629,8 +648,10 @@ var lineItem_utils = /*#__PURE__*/Object.freeze({
629
648
  generateModifiedAssetsMap: generateModifiedAssetsMap,
630
649
  getAttributeValue: getAttributeValue,
631
650
  getAttributes: getAttributes,
651
+ getOriginParent: getOriginParent,
632
652
  getRecommendedPrices: getRecommendedPrices,
633
653
  insertLineItem: insertLineItem,
654
+ isLineItemModified: isLineItemModified,
634
655
  mapAttributes: mapAttributes,
635
656
  multiplyLineItems: multiplyLineItems,
636
657
  patchAttributes: patchAttributes,
@@ -650,11 +671,11 @@ class LineItemWorker {
650
671
  remove(id) {
651
672
  return new LineItemWorker(removeLineItem(this.li, id));
652
673
  }
653
- replace(toReplace) {
654
- return new LineItemWorker(replaceLineItem(this.li, toReplace));
674
+ replace(toReplace, skipCardinalityCalculation = false) {
675
+ return new LineItemWorker(replaceLineItem(this.li, toReplace, skipCardinalityCalculation));
655
676
  }
656
- patchAttribute(attrs, id) {
657
- return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));
677
+ patchAttribute(attrs, id, skipCardinalityCalculation = false) {
678
+ return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs, skipCardinalityCalculation));
658
679
  }
659
680
  }
660
681
 
@@ -680,11 +701,12 @@ class ConfigurationService {
680
701
  this.charges.next({});
681
702
  this.pricePlans.next({});
682
703
  }
683
- patch$(lineItem) {
704
+ patch$(lineItem, options) {
684
705
  if (!this.lineItem.value) {
685
706
  return throwError(() => new Error(`Source LineItem not found`));
686
707
  }
687
- this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;
708
+ const skipCardinalityCalculation = options?.skipCardinalityCalculation || this.contextSnapshot.properties['#skipCardinalityCalculation'] === 'true';
709
+ this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem, skipCardinalityCalculation).li;
688
710
  return this.configure().pipe(catchError(error => {
689
711
  console.error(error);
690
712
  if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
@@ -699,8 +721,8 @@ class ConfigurationService {
699
721
  }
700
722
  }));
701
723
  }
702
- patch(lineItem) {
703
- this.patch$(lineItem).subscribe();
724
+ patch(lineItem, options) {
725
+ this.patch$(lineItem, options).subscribe();
704
726
  }
705
727
  setConfigurableRamp(lineItem) {
706
728
  this.configurableRamp = lineItem;
@@ -1285,5 +1307,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1285
1307
  * Generated bundle index. Do not edit.
1286
1308
  */
1287
1309
 
1288
- export { ConfigurationRuntimeService, ConfigurationService, ContextService, FlowConfigurationModule, FlowConfigurationService, FlowUpdateService, LineItemWorker, MetricsCalculationService, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeStep, SdkCoreModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, findLineItem, findLineItemWithComparator, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getRecommendedPrices, insertLineItem, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
1310
+ export { ConfigurationRuntimeService, ConfigurationService, ContextService, FlowConfigurationModule, FlowConfigurationService, FlowUpdateService, LineItemWorker, MetricsCalculationService, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeStep, SdkCoreModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, findLineItem, findLineItemWithComparator, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
1289
1311
  //# sourceMappingURL=veloceapps-sdk-core.mjs.map