@veloceapps/sdk 7.0.2-2 → 7.0.2-21

Sign up to get free protection for your applications and to get access to all the features.
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