@configura/web-api 2.0.0-alpha.0 → 2.0.0-alpha.3

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 (98) hide show
  1. package/.eslintrc.json +18 -18
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/CatalogueAPI.d.ts +551 -551
  5. package/dist/CatalogueAPI.js +293 -293
  6. package/dist/CfgMeasure.d.ts +32 -32
  7. package/dist/CfgMeasure.js +30 -30
  8. package/dist/CfgProduct.d.ts +268 -268
  9. package/dist/CfgProduct.js +778 -778
  10. package/dist/CfgReferencePathHelper.d.ts +13 -13
  11. package/dist/CfgReferencePathHelper.js +13 -13
  12. package/dist/ConfigurationConverter.d.ts +4 -4
  13. package/dist/ConfigurationConverter.js +72 -72
  14. package/dist/index.d.ts +23 -23
  15. package/dist/index.js +23 -23
  16. package/dist/io/CfgHistoryManager.d.ts +50 -50
  17. package/dist/io/CfgHistoryManager.js +82 -82
  18. package/dist/io/CfgHistoryToProdConfConnector.d.ts +20 -20
  19. package/dist/io/CfgHistoryToProdConfConnector.js +56 -56
  20. package/dist/io/CfgIOManager.d.ts +48 -48
  21. package/dist/io/CfgIOManager.js +115 -115
  22. package/dist/io/CfgIOProdConfConnector.d.ts +52 -52
  23. package/dist/io/CfgIOProdConfConnector.js +141 -141
  24. package/dist/io/CfgObservableStateManager.d.ts +21 -21
  25. package/dist/io/CfgObservableStateManager.js +65 -65
  26. package/dist/io/CfgObservableStateToProdConfConnector.d.ts +14 -14
  27. package/dist/io/CfgObservableStateToProdConfConnector.js +16 -16
  28. package/dist/io/CfgWindowEventManager.d.ts +21 -21
  29. package/dist/io/CfgWindowEventManager.js +38 -38
  30. package/dist/io/CfgWindowMessageManager.d.ts +40 -40
  31. package/dist/io/CfgWindowMessageManager.js +84 -84
  32. package/dist/io/CfgWindowMessageToProdConfConnector.d.ts +16 -16
  33. package/dist/io/CfgWindowMessageToProdConfConnector.js +18 -18
  34. package/dist/io/index.d.ts +8 -8
  35. package/dist/io/index.js +8 -8
  36. package/dist/material/CfgMaterialMapping.d.ts +7 -7
  37. package/dist/material/CfgMaterialMapping.js +181 -181
  38. package/dist/material/CfgMtrlApplication.d.ts +18 -18
  39. package/dist/material/CfgMtrlApplication.js +43 -43
  40. package/dist/material/CfgMtrlApplicationSource.d.ts +7 -7
  41. package/dist/material/CfgMtrlApplicationSource.js +8 -8
  42. package/dist/material/CfgMtrlSource.d.ts +19 -19
  43. package/dist/material/CfgMtrlSource.js +40 -40
  44. package/dist/material/CfgMtrlSourceWithMetaData.d.ts +7 -7
  45. package/dist/material/CfgMtrlSourceWithMetaData.js +1 -1
  46. package/dist/productConfiguration/CfgFeature.d.ts +187 -187
  47. package/dist/productConfiguration/CfgFeature.js +645 -645
  48. package/dist/productConfiguration/CfgOption.d.ts +151 -151
  49. package/dist/productConfiguration/CfgOption.js +416 -416
  50. package/dist/productConfiguration/CfgProductConfiguration.d.ts +117 -117
  51. package/dist/productConfiguration/CfgProductConfiguration.js +307 -307
  52. package/dist/productConfiguration/filters.d.ts +15 -15
  53. package/dist/productConfiguration/filters.js +70 -70
  54. package/dist/productConfiguration/productParamsGenerator.d.ts +15 -15
  55. package/dist/productConfiguration/productParamsGenerator.js +51 -51
  56. package/dist/productConfiguration/utilitiesProductConfiguration.d.ts +17 -17
  57. package/dist/productConfiguration/utilitiesProductConfiguration.js +80 -80
  58. package/dist/productLoader.d.ts +33 -33
  59. package/dist/productLoader.js +49 -49
  60. package/dist/syncGroups/SyncGroupsApplyMode.d.ts +20 -20
  61. package/dist/syncGroups/SyncGroupsApplyMode.js +21 -21
  62. package/dist/syncGroups/SyncGroupsHandler.d.ts +40 -40
  63. package/dist/syncGroups/SyncGroupsHandler.js +359 -359
  64. package/dist/syncGroups/SyncGroupsPathHelper.d.ts +26 -26
  65. package/dist/syncGroups/SyncGroupsPathHelper.js +90 -90
  66. package/dist/syncGroups/SyncGroupsState.d.ts +35 -35
  67. package/dist/syncGroups/SyncGroupsState.js +125 -125
  68. package/dist/syncGroups/SyncGroupsTransaction.d.ts +154 -154
  69. package/dist/syncGroups/SyncGroupsTransaction.js +576 -576
  70. package/dist/tasks/TaskHandler.d.ts +77 -77
  71. package/dist/tasks/TaskHandler.js +275 -275
  72. package/dist/tasks/formats.d.ts +4 -4
  73. package/dist/tasks/formats.js +7 -7
  74. package/dist/tests/testData/collectorForTest.d.ts +73 -73
  75. package/dist/tests/testData/collectorForTest.js +194 -194
  76. package/dist/tests/testData/dummyProductForTest.d.ts +4 -4
  77. package/dist/tests/testData/dummyProductForTest.js +32 -32
  78. package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.d.ts +11 -11
  79. package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.js +277 -277
  80. package/dist/tests/testData/testDataCachedGetProduct.d.ts +5 -5
  81. package/dist/tests/testData/testDataCachedGetProduct.js +185 -185
  82. package/dist/tests/testData/testDataCachedPostValidate.d.ts +7 -7
  83. package/dist/tests/testData/testDataCachedPostValidate.js +183 -183
  84. package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.d.ts +3 -3
  85. package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.js +1099 -1099
  86. package/dist/tests/testData/testDataOptions.d.ts +12 -12
  87. package/dist/tests/testData/testDataOptions.js +60 -60
  88. package/dist/tests/testData/testDataProductAggregatedPrice.d.ts +6 -6
  89. package/dist/tests/testData/testDataProductAggregatedPrice.js +187 -187
  90. package/dist/tests/testData/testDataUpcharge.d.ts +8 -8
  91. package/dist/tests/testData/testDataUpcharge.js +119 -119
  92. package/dist/utilitiesCatalogueData.d.ts +42 -33
  93. package/dist/utilitiesCatalogueData.js +173 -164
  94. package/dist/utilitiesCataloguePermission.d.ts +38 -32
  95. package/dist/utilitiesCataloguePermission.js +79 -76
  96. package/dist/utilitiesNumericValues.d.ts +24 -24
  97. package/dist/utilitiesNumericValues.js +109 -109
  98. package/package.json +3 -3
@@ -1,118 +1,118 @@
1
- import { LengthUnit, LengthValue, Observable, SingleArgCallback } from "@configura/web-utilities";
2
- import { DtoConfFeature, DtoFeature, DtoFeatureRef, DtoSelectedOption } from "../CatalogueAPI.js";
3
- import { CfgProduct, _CfgProductInternal } from "../CfgProduct.js";
4
- import { CfgFeature, _CfgFeatureInternal } from "./CfgFeature.js";
5
- import { ProductConfigurationBubbleMode } from "./CfgOption.js";
6
- export declare type ProductConfigurationChangeNotification = {
7
- freshRef: CfgProductConfiguration;
8
- committed: boolean;
9
- };
10
- export declare type StretchMap = Map<string, {
11
- def: LengthValue | undefined;
12
- current: LengthValue;
13
- }>;
14
- /**
15
- * This class is meant to only be used through CfgProductConfiguration. It should never be
16
- * instantiated on its own. Normally the internal state of this class should never be directly
17
- * modified. CfgProductConfiguration is the class that should be used and interacted with.
18
- */
19
- export declare class _CfgProductConfigurationInternal {
20
- readonly allRawFeatures: DtoFeature[];
21
- readonly parentProduct: _CfgProductInternal;
22
- readonly rootProduct: _CfgProductInternal;
23
- static _makeUninitialized(rootFeatureRefs: DtoFeatureRef[], allRawFeatures: DtoFeature[], // Flat packed. All the features that can appear anyplace in the selection tree.
24
- parentProduct: _CfgProductInternal, rootProduct: _CfgProductInternal): _CfgProductConfigurationInternal;
25
- private constructor();
26
- readonly key = "~";
27
- private _rootFeatureRefs;
28
- private _features;
29
- readonly stretchReferenceLengthsByMeasureParamCode: StretchMap;
30
- readonly changeObservable: Observable<ProductConfigurationChangeNotification>;
31
- get rootFeatureRefs(): DtoFeatureRef[];
32
- get features(): CfgFeature[];
33
- private _notifyAllOfChange;
34
- _freshRefDescendants(): void;
35
- /** Called by child to tell its parent that it has changed. */
36
- _childHasChanged: (freshRef: CfgFeature, bubbleMode: ProductConfigurationBubbleMode, committed: boolean) => Promise<void>;
37
- getDtoConf: (includeExtendedData: boolean) => DtoConfFeature[];
38
- /**
39
- * When used internally the notifications are taken care off by the caller, but if set from
40
- * outside we want notifications to bubble all the way to the root.
41
- */
42
- setApiSelection: (selectedOptions: DtoSelectedOption[], bubbleToRoot: boolean) => Promise<boolean>;
43
- structureCompare: (other: _CfgProductConfigurationInternal, strictOrder: boolean, descriptionMatch: boolean) => boolean;
44
- /**
45
- * When used internally the notifications are taken care off by the caller, but if set from
46
- * outside we want notifications to bubble all the way to the root.
47
- */
48
- tryMatchSelection: (other: _CfgProductConfigurationInternal, descriptionMatch: boolean | undefined, validate: boolean) => Promise<boolean>;
49
- /** Only selected features. */
50
- _getFeaturesWithCode: (code: string) => _CfgFeatureInternal[];
51
- populateFeatures: (rootFeatureRefs: DtoFeatureRef[]) => void;
52
- setStretchReferenceLength: (measureParamCode: string, referenceLength: number | undefined, unit: LengthUnit) => Promise<boolean>;
53
- }
54
- export declare class CfgProductConfiguration {
55
- readonly _internal: _CfgProductConfigurationInternal;
56
- /**
57
- * This method is semi-async. It will immediately give you a reference to the created
58
- * CfgProductConfiguration, but is not properly initialized until the initDone-callback
59
- * has been called.
60
- */
61
- static make(initSuccess: (c: CfgProductConfiguration) => void, initFail: (error: Error) => void, rootFeatureRefs: DtoFeatureRef[], allRawFeatures: DtoFeature[], // Flat packed. All the features that can appear anyplace in the selection tree.
62
- apiSelection: DtoSelectedOption[], parentProduct: _CfgProductInternal, rootProduct: _CfgProductInternal): CfgProductConfiguration;
63
- /**
64
- * Makes an object wrapping the passed object. This is not a clone method, it is a method to
65
- * make a new outer reference. Like a shallow copy.
66
- *
67
- * We use this to help frameworks that are built around using equals to detect change.
68
- */
69
- static _makeNewRefFrom(internal: _CfgProductConfigurationInternal): CfgProductConfiguration;
70
- /**
71
- * Private constructor and make-method because make new ref requires the constructor to take an
72
- * internal and we don't want those who instantiate CfgProductConfiguration to have to be aware
73
- * of the internal.
74
- */
75
- private constructor();
76
- isBackedBySame: (other: CfgProductConfiguration) => boolean;
77
- get parentProduct(): CfgProduct;
78
- get rootProduct(): CfgProduct;
79
- get key(): string;
80
- /**
81
- * Every (unprocessed) feature which might be used in this product. This is constant for a
82
- * product load. What features are actually used is controlled by rootFeatureRefs and what
83
- * options are selected.
84
- */
85
- get allRawFeatures(): DtoFeature[];
86
- /** What features are used in the root of this. This can change with new validate calls. */
87
- get rootFeatureRefs(): DtoFeatureRef[];
88
- /** The root features at the root of the selection tree. */
89
- get features(): CfgFeature[];
90
- structureCompare: (other: CfgProductConfiguration, strictOrder?: boolean, descriptionMatch?: boolean) => boolean;
91
- /**
92
- * This method will try to match the selection from another product configuration
93
- * This method does not propagate its selections.
94
- * This method will cause validation calls.
95
- */
96
- tryMatchSelection: (other: CfgProductConfiguration, descriptionMatch?: boolean) => Promise<boolean>;
97
- getApiSelection: () => DtoSelectedOption[];
98
- /**
99
- * This method does not propagate its selections.
100
- * This method will not cause validation calls. Data is assumed to already be validated.
101
- */
102
- setApiSelection: (selectedOptions: DtoSelectedOption[]) => Promise<boolean>;
103
- /**
104
- * Set how stretched a certain measure should be measureParamCode is the measure to be
105
- * stretched referenceLength is a value relative to the initial length of the measure. If the
106
- * stretch drawn up in Model Lab was from the start let's say 2.4 units from start point to end
107
- * point a reference value of 4.8 would stretch the start point to end point to double length.
108
- * This however does not stop things from extending outside start point to end point. So the
109
- * actual perceived length after stretching might have little to do with the referenceLength.
110
- * Undefined as referenceLength will clear, that is, make the stretched thing revert to its
111
- * default state.
112
- */
113
- setStretchReferenceLength: (measureParamCode: string, referenceLength: number, unit: LengthUnit) => Promise<boolean>;
114
- listenForChange: (l: SingleArgCallback<ProductConfigurationChangeNotification>) => void;
115
- stopListenForChange: (l: SingleArgCallback<ProductConfigurationChangeNotification>) => void;
116
- stopAllListenForChange: () => void;
117
- }
1
+ import { LengthUnit, LengthValue, Observable, SingleArgCallback } from "@configura/web-utilities";
2
+ import { DtoConfFeature, DtoFeature, DtoFeatureRef, DtoSelectedOption } from "../CatalogueAPI.js";
3
+ import { CfgProduct, _CfgProductInternal } from "../CfgProduct.js";
4
+ import { CfgFeature, _CfgFeatureInternal } from "./CfgFeature.js";
5
+ import { ProductConfigurationBubbleMode } from "./CfgOption.js";
6
+ export declare type ProductConfigurationChangeNotification = {
7
+ freshRef: CfgProductConfiguration;
8
+ committed: boolean;
9
+ };
10
+ export declare type StretchMap = Map<string, {
11
+ def: LengthValue | undefined;
12
+ current: LengthValue;
13
+ }>;
14
+ /**
15
+ * This class is meant to only be used through CfgProductConfiguration. It should never be
16
+ * instantiated on its own. Normally the internal state of this class should never be directly
17
+ * modified. CfgProductConfiguration is the class that should be used and interacted with.
18
+ */
19
+ export declare class _CfgProductConfigurationInternal {
20
+ readonly allRawFeatures: DtoFeature[];
21
+ readonly parentProduct: _CfgProductInternal;
22
+ readonly rootProduct: _CfgProductInternal;
23
+ static _makeUninitialized(rootFeatureRefs: DtoFeatureRef[], allRawFeatures: DtoFeature[], // Flat packed. All the features that can appear anyplace in the selection tree.
24
+ parentProduct: _CfgProductInternal, rootProduct: _CfgProductInternal): _CfgProductConfigurationInternal;
25
+ private constructor();
26
+ readonly key = "~";
27
+ private _rootFeatureRefs;
28
+ private _features;
29
+ readonly stretchReferenceLengthsByMeasureParamCode: StretchMap;
30
+ readonly changeObservable: Observable<ProductConfigurationChangeNotification>;
31
+ get rootFeatureRefs(): DtoFeatureRef[];
32
+ get features(): CfgFeature[];
33
+ private _notifyAllOfChange;
34
+ _freshRefDescendants(): void;
35
+ /** Called by child to tell its parent that it has changed. */
36
+ _childHasChanged: (freshRef: CfgFeature, bubbleMode: ProductConfigurationBubbleMode, committed: boolean) => Promise<void>;
37
+ getDtoConf: (includeExtendedData: boolean) => DtoConfFeature[];
38
+ /**
39
+ * When used internally the notifications are taken care off by the caller, but if set from
40
+ * outside we want notifications to bubble all the way to the root.
41
+ */
42
+ setApiSelection: (selectedOptions: DtoSelectedOption[], bubbleToRoot: boolean) => Promise<boolean>;
43
+ structureCompare: (other: _CfgProductConfigurationInternal, strictOrder: boolean, descriptionMatch: boolean) => boolean;
44
+ /**
45
+ * When used internally the notifications are taken care off by the caller, but if set from
46
+ * outside we want notifications to bubble all the way to the root.
47
+ */
48
+ tryMatchSelection: (other: _CfgProductConfigurationInternal, descriptionMatch: boolean | undefined, validate: boolean) => Promise<boolean>;
49
+ /** Only selected features. */
50
+ _getFeaturesWithCode: (code: string) => _CfgFeatureInternal[];
51
+ populateFeatures: (rootFeatureRefs: DtoFeatureRef[]) => void;
52
+ setStretchReferenceLength: (measureParamCode: string, referenceLength: number | undefined, unit: LengthUnit) => Promise<boolean>;
53
+ }
54
+ export declare class CfgProductConfiguration {
55
+ readonly _internal: _CfgProductConfigurationInternal;
56
+ /**
57
+ * This method is semi-async. It will immediately give you a reference to the created
58
+ * CfgProductConfiguration, but is not properly initialized until the initDone-callback
59
+ * has been called.
60
+ */
61
+ static make(initSuccess: (c: CfgProductConfiguration) => void, initFail: (error: Error) => void, rootFeatureRefs: DtoFeatureRef[], allRawFeatures: DtoFeature[], // Flat packed. All the features that can appear anyplace in the selection tree.
62
+ apiSelection: DtoSelectedOption[], parentProduct: _CfgProductInternal, rootProduct: _CfgProductInternal): CfgProductConfiguration;
63
+ /**
64
+ * Makes an object wrapping the passed object. This is not a clone method, it is a method to
65
+ * make a new outer reference. Like a shallow copy.
66
+ *
67
+ * We use this to help frameworks that are built around using equals to detect change.
68
+ */
69
+ static _makeNewRefFrom(internal: _CfgProductConfigurationInternal): CfgProductConfiguration;
70
+ /**
71
+ * Private constructor and make-method because make new ref requires the constructor to take an
72
+ * internal and we don't want those who instantiate CfgProductConfiguration to have to be aware
73
+ * of the internal.
74
+ */
75
+ private constructor();
76
+ isBackedBySame: (other: CfgProductConfiguration) => boolean;
77
+ get parentProduct(): CfgProduct;
78
+ get rootProduct(): CfgProduct;
79
+ get key(): string;
80
+ /**
81
+ * Every (unprocessed) feature which might be used in this product. This is constant for a
82
+ * product load. What features are actually used is controlled by rootFeatureRefs and what
83
+ * options are selected.
84
+ */
85
+ get allRawFeatures(): DtoFeature[];
86
+ /** What features are used in the root of this. This can change with new validate calls. */
87
+ get rootFeatureRefs(): DtoFeatureRef[];
88
+ /** The root features at the root of the selection tree. */
89
+ get features(): CfgFeature[];
90
+ structureCompare: (other: CfgProductConfiguration, strictOrder?: boolean, descriptionMatch?: boolean) => boolean;
91
+ /**
92
+ * This method will try to match the selection from another product configuration
93
+ * This method does not propagate its selections.
94
+ * This method will cause validation calls.
95
+ */
96
+ tryMatchSelection: (other: CfgProductConfiguration, descriptionMatch?: boolean) => Promise<boolean>;
97
+ getApiSelection: () => DtoSelectedOption[];
98
+ /**
99
+ * This method does not propagate its selections.
100
+ * This method will not cause validation calls. Data is assumed to already be validated.
101
+ */
102
+ setApiSelection: (selectedOptions: DtoSelectedOption[]) => Promise<boolean>;
103
+ /**
104
+ * Set how stretched a certain measure should be measureParamCode is the measure to be
105
+ * stretched referenceLength is a value relative to the initial length of the measure. If the
106
+ * stretch drawn up in Model Lab was from the start let's say 2.4 units from start point to end
107
+ * point a reference value of 4.8 would stretch the start point to end point to double length.
108
+ * This however does not stop things from extending outside start point to end point. So the
109
+ * actual perceived length after stretching might have little to do with the referenceLength.
110
+ * Undefined as referenceLength will clear, that is, make the stretched thing revert to its
111
+ * default state.
112
+ */
113
+ setStretchReferenceLength: (measureParamCode: string, referenceLength: number, unit: LengthUnit) => Promise<boolean>;
114
+ listenForChange: (l: SingleArgCallback<ProductConfigurationChangeNotification>) => void;
115
+ stopListenForChange: (l: SingleArgCallback<ProductConfigurationChangeNotification>) => void;
116
+ stopAllListenForChange: () => void;
117
+ }
118
118
  //# sourceMappingURL=CfgProductConfiguration.d.ts.map