@veloceapps/sdk 8.0.0-117 → 8.0.0-119

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,6 +67,26 @@ const getGuidedSellingConfigurationRequest = (data, context) => {
67
67
  },
68
68
  };
69
69
  };
70
+ const generateConfigurationLineItem = (props, qty = 1) => {
71
+ const id = UUID.UUID();
72
+ const attributes = Object.entries(props.attributesMap ?? {}).map(([name, value]) => ({
73
+ name,
74
+ value,
75
+ cfgStatus: 'User',
76
+ }));
77
+ const lineItems = [];
78
+ return {
79
+ id,
80
+ type: props.product.typeName ?? '',
81
+ cfgStatus: 'Default',
82
+ actionCode: 'ADD',
83
+ qty,
84
+ attributes,
85
+ lineItems,
86
+ productName: props.product.name,
87
+ productId: props.product.id ?? '',
88
+ };
89
+ };
70
90
 
71
91
  class ContextService {
72
92
  constructor(contextApiService) {
@@ -82,6 +102,18 @@ class ContextService {
82
102
  get mode() {
83
103
  return this.resolve().properties.mode;
84
104
  }
105
+ get isEditMode$() {
106
+ return this.resolve$().pipe(map(() => {
107
+ const context = this.resolve();
108
+ if (context.mode === ConfigurationContextMode.ACCOUNT) {
109
+ return true;
110
+ }
111
+ if (context.mode === ConfigurationContextMode.QUOTE) {
112
+ return context.properties.Status === 'Draft';
113
+ }
114
+ return false;
115
+ }));
116
+ }
85
117
  resolve() {
86
118
  if (!this.context.value) {
87
119
  throw new Error('Context is not initialized yet!');
@@ -842,6 +874,9 @@ class FlowStateService {
842
874
  ? this._hasStatefulUnsavedChanges
843
875
  : this.quoteDraftService.hasUnsavedChanges;
844
876
  }
877
+ get stateId() {
878
+ return this.stateId$.value;
879
+ }
845
880
  isInitialized$() {
846
881
  return combineLatest([this.stateId$, this.quoteDraftService.isInitialized$]).pipe(map$1(values => values.some(Boolean)));
847
882
  }
@@ -1762,6 +1797,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1762
1797
  type: Injectable
1763
1798
  }], ctorParameters: function () { return [{ type: i1.ProceduresApiService }, { type: ContextService }, { type: QuoteDraftService }, { type: FlowUpdateService }, { type: ConfigurationService }]; } });
1764
1799
 
1800
+ class FlowConfigurationModule {
1801
+ }
1802
+ FlowConfigurationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1803
+ FlowConfigurationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule });
1804
+ FlowConfigurationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, providers: [FlowConfigurationService, FlowUpdateService, PriceApiService] });
1805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, decorators: [{
1806
+ type: NgModule,
1807
+ args: [{
1808
+ imports: [],
1809
+ providers: [FlowConfigurationService, FlowUpdateService, PriceApiService],
1810
+ }]
1811
+ }] });
1812
+
1813
+ class FlowStateConfigurationService {
1814
+ constructor(flowStateService, flowInfoService, configurationService, flowConfigurationService, flowStateApiService) {
1815
+ this.flowStateService = flowStateService;
1816
+ this.flowInfoService = flowInfoService;
1817
+ this.configurationService = configurationService;
1818
+ this.flowConfigurationService = flowConfigurationService;
1819
+ this.flowStateApiService = flowStateApiService;
1820
+ this.configurationStateId$ = new BehaviorSubject(null);
1821
+ }
1822
+ get configurationStateId() {
1823
+ return this.configurationStateId$.value;
1824
+ }
1825
+ addToCart$(props) {
1826
+ const stateful = this.flowInfoService.flow?.properties.stateful;
1827
+ if (stateful) {
1828
+ const stateId = this.flowStateService.stateId;
1829
+ if (!stateId) {
1830
+ return of();
1831
+ }
1832
+ const lineItem = generateConfigurationLineItem(props, props.qty);
1833
+ return this.flowStateApiService.newConfiguration(stateId, { lineItem }).pipe(tap$1(r => this.configurationStateId$.next(r.stateId)), switchMap(() => {
1834
+ if (!this.configurationStateId) {
1835
+ return of();
1836
+ }
1837
+ return this.flowStateApiService.saveConfiguration(stateId, this.configurationStateId).pipe(switchMap(() => this.flowStateService.executeRequest$({}, true)), tap$1(() => this.configurationStateId$.next(null)), map$1(noop));
1838
+ }));
1839
+ }
1840
+ else {
1841
+ return this.flowConfigurationService.addToCart$(props).pipe(map$1(noop));
1842
+ }
1843
+ }
1844
+ }
1845
+ FlowStateConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, deps: [{ token: FlowStateService }, { token: FlowInfoService }, { token: ConfigurationService }, { token: FlowConfigurationService }, { token: i1.FlowStateApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1846
+ FlowStateConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, providedIn: 'root' });
1847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowStateConfigurationService, decorators: [{
1848
+ type: Injectable,
1849
+ args: [{ providedIn: 'root' }]
1850
+ }], ctorParameters: function () { return [{ type: FlowStateService }, { type: FlowInfoService }, { type: ConfigurationService }, { type: FlowConfigurationService }, { type: i1.FlowStateApiService }]; } });
1851
+
1765
1852
  function calculateMetricByMethod(lineItems, metric, method) {
1766
1853
  const items = getLineItemsByMethod(lineItems, method);
1767
1854
  return items.reduce((acc, li) => {
@@ -2169,19 +2256,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2169
2256
  type: Injectable
2170
2257
  }], ctorParameters: function () { return [{ type: i1.StatefulConfigurationApiService }, { type: ConfigurationRuntimeService }, { type: ConfigurationService }, { type: i6.ToastService }]; } });
2171
2258
 
2172
- class FlowConfigurationModule {
2173
- }
2174
- FlowConfigurationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2175
- FlowConfigurationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule });
2176
- FlowConfigurationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, providers: [FlowConfigurationService, FlowUpdateService, PriceApiService] });
2177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FlowConfigurationModule, decorators: [{
2178
- type: NgModule,
2179
- args: [{
2180
- imports: [],
2181
- providers: [FlowConfigurationService, FlowUpdateService, PriceApiService],
2182
- }]
2183
- }] });
2184
-
2185
2259
  class ConfigurationModule {
2186
2260
  }
2187
2261
  ConfigurationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2410,5 +2484,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2410
2484
  * Generated bundle index. Do not edit.
2411
2485
  */
2412
2486
 
2413
- export { ActionCodePipe, CalendarDirective, ConfigurationRuntimeService, ConfigurationService, ConfigurationState, ContextService, DEFAULT_FORMATTING_SETTINGS, DatePipe, FLOW_CUSTOMIZATION, FORMATTING_SETTINGS_TOKEN, FlowConfigurationModule, FlowConfigurationService, FlowInfoService, FlowStateService, FlowUpdateService, IntegrationState, LineItemWorker, MetricsCalculationService, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, RuntimeStep, SdkCoreModule, SdkDirectivesModule, SdkPipesModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, filterOutTechnicalAttributes, findLineItem, findLineItemWithComparator, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getGuidedSellingConfigurationRequest, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, isTechnicalAttribute, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
2487
+ export { ActionCodePipe, CalendarDirective, ConfigurationRuntimeService, ConfigurationService, ConfigurationState, ContextService, DEFAULT_FORMATTING_SETTINGS, DatePipe, FLOW_CUSTOMIZATION, FORMATTING_SETTINGS_TOKEN, FlowConfigurationModule, FlowConfigurationService, FlowInfoService, FlowStateConfigurationService, FlowStateService, FlowUpdateService, IntegrationState, LineItemWorker, MetricsCalculationService, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, RuntimeStep, SdkCoreModule, SdkDirectivesModule, SdkPipesModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, filterOutTechnicalAttributes, findLineItem, findLineItemWithComparator, generateConfigurationLineItem, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getGuidedSellingConfigurationRequest, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, isTechnicalAttribute, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
2414
2488
  //# sourceMappingURL=veloceapps-sdk-core.mjs.map