@partium/js-sdk 14.0.2 → 14.1.0

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 (142) hide show
  1. package/catalog/index.js +21 -1
  2. package/catalog/models/catalog-image-info.js +22 -1
  3. package/catalog/models/catalog-image.js +40 -1
  4. package/catalog/models/upsert-catalog-images-dto.js +3 -1
  5. package/catalog/models/upsert-images-result.js +3 -1
  6. package/catalog/services/images.service.js +62 -1
  7. package/core/constants/constants.js +16 -1
  8. package/core/decorators/injection-identifier.js +19 -1
  9. package/core/factories/paginated-request-service.factory.js +33 -1
  10. package/core/index.js +63 -1
  11. package/core/integration-defaults/http/fetch-api-http-error-helper.js +129 -1
  12. package/core/integration-defaults/http/file-transfer/axios-file-transfer.service.js +138 -1
  13. package/core/integration-defaults/http/file-transfer/fetch-api-file-transfer.service.js +210 -1
  14. package/core/integration-defaults/http/handle-axios-error-helper.js +79 -1
  15. package/core/integration-defaults/http/https-client/axios-https-client.service.js +182 -1
  16. package/core/integration-defaults/http/https-client/fetch-api-https-client.service.js +198 -1
  17. package/core/integration-defaults/http/js-oauth-keycloak-https.service.js +32 -1
  18. package/core/integration-defaults/js-p-file.js +36 -1
  19. package/core/integration-defaults/session/js-oauth-api-key-session.service.js +206 -1
  20. package/core/integration-defaults/session/js-oauth-keycloak-auth-config.js +64 -1
  21. package/core/integration-defaults/session/js-oauth-keycloak-session.service.js +257 -1
  22. package/core/integration-defaults/web-device-status.service.js +125 -1
  23. package/core/integration-defaults/web-file.service.js +135 -1
  24. package/core/integration-defaults/web-indexeddb.service.js +142 -1
  25. package/core/integration-defaults/web-local-storage.service.js +310 -1
  26. package/core/models/api-object.js +16 -1
  27. package/core/models/auth-config.js +72 -1
  28. package/core/models/device-info.js +34 -1
  29. package/core/models/error.js +107 -1
  30. package/core/models/formatted-string.js +14 -1
  31. package/core/models/i18n-map.js +61 -1
  32. package/core/models/i18n-string.js +35 -1
  33. package/core/models/log.js +137 -1
  34. package/core/models/organization.js +159 -1
  35. package/core/models/p-file.js +23 -1
  36. package/core/models/paginated-list.js +41 -1
  37. package/core/models/partium-config.js +43 -1
  38. package/core/models/user-token.js +11 -1
  39. package/core/models/user.js +88 -1
  40. package/core/services/backend-status.service.js +147 -1
  41. package/core/services/base-login-init.service.js +57 -1
  42. package/core/services/base.service.js +37 -1
  43. package/core/services/device-status.service.interface.js +117 -1
  44. package/core/services/file.service.interface.js +61 -1
  45. package/core/services/http/file-transfer/file-transfer.service.interface.js +125 -1
  46. package/core/services/http/https-client/https-client.service.interface.js +152 -1
  47. package/core/services/http/https.service.interface.js +294 -1
  48. package/core/services/http/oauth-https.service.js +218 -1
  49. package/core/services/local-storage.service.interface.js +378 -1
  50. package/core/services/log.service.js +139 -1
  51. package/core/services/organization.service.js +202 -1
  52. package/core/services/paginated-request.service.js +160 -1
  53. package/core/services/recent-parts.service.js +194 -1
  54. package/core/services/service-provider.js +114 -1
  55. package/core/services/session/oauth-session.service.js +104 -1
  56. package/core/services/session/session.service.interface.js +367 -1
  57. package/core/utils/general-helper.js +110 -1
  58. package/data/index.js +44 -1
  59. package/data/models/announcement.js +70 -1
  60. package/data/models/assembly-hierarchy-node-breadcrumb.js +51 -1
  61. package/data/models/assembly-hierarchy-node.js +46 -1
  62. package/data/models/attribute.js +106 -1
  63. package/data/models/csa-request-search.js +46 -1
  64. package/data/models/csa-request-status.js +51 -1
  65. package/data/models/csa-request.js +112 -1
  66. package/data/models/document.js +17 -1
  67. package/data/models/filter-key.js +36 -1
  68. package/data/models/filter-option-value.js +41 -1
  69. package/data/models/image.d.ts +6 -1
  70. package/data/models/image.js +77 -1
  71. package/data/models/inquiry.js +71 -1
  72. package/data/models/mounting-location.js +58 -1
  73. package/data/models/multiple-expert-searches.js +40 -1
  74. package/data/models/part-enrichment-data.js +50 -1
  75. package/data/models/part.js +168 -1
  76. package/data/models/shopping-cart.js +60 -1
  77. package/data/services/announcement.service.js +89 -1
  78. package/data/services/assembly-hierarchy-nodes.service.js +193 -1
  79. package/data/services/csa-helper.service.js +158 -1
  80. package/data/services/customer-service-assistance.service.js +276 -1
  81. package/data/services/filter.service.js +97 -1
  82. package/data/services/inquiry.service.js +68 -1
  83. package/data/services/part-attribute.service.js +118 -1
  84. package/data/services/part-enrichment.service.js +56 -1
  85. package/data/services/part.service.js +182 -1
  86. package/data/services/related-parts.service.js +83 -1
  87. package/data/services/shopping-cart.service.js +152 -1
  88. package/find/index.js +51 -1
  89. package/find/models/assets/asset.js +32 -1
  90. package/find/models/search-filter.js +205 -1
  91. package/find/models/search-input.js +3 -1
  92. package/find/models/search-output.js +3 -1
  93. package/find/models/search-result-status.js +40 -1
  94. package/find/models/search-session-log-object.js +22 -1
  95. package/find/models/search-status/cv-search-status.js +22 -1
  96. package/find/models/search-status/search-filter-status.js +36 -1
  97. package/find/models/search-status/search-status.js +56 -1
  98. package/find/models/search-status/tag-search-status.js +23 -1
  99. package/find/models/search-status/text-search-status.js +18 -1
  100. package/find/models/search-tag.js +16 -1
  101. package/find/models/smart-filter.js +49 -1
  102. package/find/models/tagable/i18n-tagable.js +37 -1
  103. package/find/models/tagable/tagable-base.js +22 -1
  104. package/find/models/tagable/tagable.js +37 -1
  105. package/find/models/text-search-config.js +70 -1
  106. package/find/models/text-search-manipulator.js +90 -1
  107. package/find/models/text-search-result-item/text-search-error.js +12 -1
  108. package/find/models/text-search-result-item/text-search-result-item-document.js +34 -1
  109. package/find/models/text-search-result-item/text-search-result-item-part.js +36 -1
  110. package/find/models/text-search-result-item/text-search-result-item-recent-query.js +35 -1
  111. package/find/models/text-search-result-item/text-search-result-item-unknown.js +38 -1
  112. package/find/models/text-search-result-item/text-search-result-item.js +22 -1
  113. package/find/services/asset.service.js +348 -1
  114. package/find/services/filter-uploaders/filter-uploader.js +3 -1
  115. package/find/services/filter-uploaders/update-filters-uploader.js +77 -1
  116. package/find/services/filter-uploaders/update-filters.model.js +7 -1
  117. package/find/services/search/cv-search.service.js +214 -1
  118. package/find/services/search/recent-text-search-queries.service.js +260 -1
  119. package/find/services/search/search-result.service.js +539 -1
  120. package/find/services/search/search.service.js +514 -1
  121. package/find/services/search/tag-search.service.js +124 -1
  122. package/find/services/search/text-search.service.js +316 -1
  123. package/find/services/search-filter.service.js +292 -1
  124. package/find/utils/search-helper.js +75 -1
  125. package/gen/sdk-version.d.ts +1 -1
  126. package/gen/sdk-version.js +5 -1
  127. package/index.js +392 -1
  128. package/management/index.js +21 -1
  129. package/management/models/api-key-list-response.js +3 -1
  130. package/management/models/api-key-type.js +9 -1
  131. package/management/models/api-key.js +3 -1
  132. package/management/services/api-key.service.js +53 -1
  133. package/ocr/index.js +20 -1
  134. package/ocr/models/detect-response.js +3 -1
  135. package/ocr/models/detected-text-entry.js +3 -1
  136. package/ocr/services/ocr.service.js +59 -1
  137. package/package.json +1 -1
  138. package/user-data/index.js +21 -1
  139. package/user-data/models/part-with-nullable.js +3 -1
  140. package/user-data/models/request-list/request-list.js +63 -1
  141. package/user-data/services/favorite/favorite.service.js +108 -1
  142. package/user-data/services/request-list/request-list.service.js +133 -1
@@ -1,2 +1,293 @@
1
1
  // Copyright © 2022-2025 Partium, Inc. DBA Partium
2
- "use strict";var __extends=this&&this.__extends||function(){var e=function(r,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])},e(r,t)};return function(r,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function s(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}}(),__decorate=this&&this.__decorate||function(e,r,t,s){var i,a=arguments.length,c=a<3?r:null===s?s=Object.getOwnPropertyDescriptor(r,t):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,r,t,s);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(c=(a<3?i(c):a>3?i(r,t,c):i(r,t))||c);return a>3&&c&&Object.defineProperty(r,t,c),c},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var s,i=0,a=r.length;i<a;i++)!s&&i in r||(s||(s=Array.prototype.slice.call(r,0,i)),s[i]=r[i]);return e.concat(s||Array.prototype.slice.call(r))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SearchFilterServiceImpl=void 0;var rxjs_1=require("rxjs"),operators_1=require("rxjs/operators"),injection_identifier_1=require("../../core/decorators/injection-identifier"),base_service_1=require("../../core/services/base.service"),https_service_interface_1=require("../../core/services/http/https.service.interface"),assembly_hierarchy_nodes_service_1=require("../../data/services/assembly-hierarchy-nodes.service"),search_filter_1=require("../models/search-filter"),update_filters_uploader_1=require("./filter-uploaders/update-filters-uploader"),search_result_service_1=require("./search/search-result.service"),SearchFilterServiceImpl=function(e){function r(r){var t=e.call(this,r)||this;return t.searchFiltersLoaded$=new rxjs_1.BehaviorSubject(!1),t.searchFilters$=new rxjs_1.BehaviorSubject([]),t.searchFiltersMap$=new rxjs_1.BehaviorSubject({}),t.excludedHierarchyFilterNodes$=new rxjs_1.BehaviorSubject({}),t}return __extends(r,e),r.prototype.onCreate=function(){this.httpsService=this.serviceProvider.getService(https_service_interface_1.HttpsService),this.searchResultService=this.serviceProvider.getService(search_result_service_1.SearchResultService),this.assemblyHierarchyNodeService=this.serviceProvider.getService(assembly_hierarchy_nodes_service_1.AssemblyHierarchyNodesServiceImpl),this.searchFilterUploader=new update_filters_uploader_1.UpdateFiltersUploader(this.httpsService)},r.prototype.getSearchInputFiltersLoaded=function(){return this.searchFiltersLoaded$},r.prototype.reset=function(e){var r,t;this.searchStatus=e,this.searchStatus.filterStatus.filters=[],this.searchStatus.filterStatus.filtersMap={},this.searchStatus.filterStatus.excludedHierarchyNodes={},this.searchFilters$.next([]),this.searchFiltersMap$.next({}),this.searchFiltersLoaded$.next(!1),this.excludedHierarchyFilterNodes$.next({}),null===(r=this.searchFilterUploader)||void 0===r||r.reset(),null===(t=this.searchResultService)||void 0===t||t.startPollingForResults()},r.prototype.setStatusExternal=function(e,r){this.searchStatus=e,r&&(this.searchStatus.filterStatus.filters=Object.values(r),this.searchStatus.filterStatus.filtersMap=r,this.searchFilters$.next(this.searchStatus.filterStatus.filters),this.searchFiltersMap$.next(this.searchStatus.filterStatus.filtersMap)),this.searchFiltersLoaded$.next(!0)},r.prototype.getFilters=function(){return this.searchFiltersMap$.asObservable()},r.prototype.mapFiltersToUploadFilterFormat=function(e,r){var t={};return r&&(t[r.key]=new search_filter_1.HierarchyPartiumIdFilter(r.include,r.exclude)),e.length>0&&e.forEach((function(e){t[e.key]=e})),t},r.prototype.getSearchFilters=function(){return this.searchFilters$.asObservable()},r.prototype.getExcludedHierarchyFilterNodes=function(){return this.excludedHierarchyFilterNodes$.asObservable()},r.prototype.setFilters=function(e){var r=this;return this.uploadSearchFilters(e).pipe((0,operators_1.mergeMap)((function(){var t=e[search_filter_1.HierarchyPartiumIdFilter.KEY];return t&&t.exclude&&t.exclude.length?r.assemblyHierarchyNodeService.getAssemblyHierarchyNodes(t.exclude):(0,rxjs_1.of)([])})),(0,operators_1.map)((function(t){r.searchStatus.filterStatus.filters=Object.values(e),r.searchStatus.filterStatus.filtersMap=e,r.searchStatus.filterStatus.excludedHierarchyNodes=t.reduce((function(e,r){return e[r.partiumId]=r,e}),{}),console.log("NEW filter state: ",{filters:e,excludedNodes:Object.keys(r.searchStatus.filterStatus.excludedHierarchyNodes)}),r.excludedHierarchyFilterNodes$.next(r.searchStatus.filterStatus.excludedHierarchyNodes),r.searchFilters$.next(r.searchStatus.filterStatus.filters),r.searchFiltersMap$.next(r.searchStatus.filterStatus.filtersMap)})))},r.prototype.setSearchFilters=function(e){console.log("SearchFilterService - setSearchFilters():",e);var r=this.mergeFilters(e);return this.setFilters(r)},r.prototype.mergeFilters=function(e){for(var r={},t=0,s=e;t<s.length;t++){var i=s[t];if(i instanceof search_filter_1.HierarchyFilter){var a=Array.isArray(i.value)?i.value:[i.value];(c=r[i.key])?c.include=__spreadArray([],Array.from(new Set(__spreadArray(__spreadArray([],c.include,!0),a,!0))),!0):r[i.key]=new search_filter_1.HierarchyPartiumIdFilter(a,[])}else if(i instanceof search_filter_1.HierarchyPartiumIdFilter){(c=r[i.key])?(c.include=__spreadArray([],Array.from(new Set(__spreadArray(__spreadArray([],c.include,!0),i.include,!0))),!0),c.exclude=__spreadArray([],Array.from(new Set(__spreadArray(__spreadArray([],c.exclude,!0),i.exclude,!0))),!0)):r[i.key]=new search_filter_1.HierarchyPartiumIdFilter(i.include,i.exclude)}else if(i instanceof search_filter_1.CategoryFilter){var c;if(c=r[i.key]){a=Array.isArray(i.value)?i.value:[i.value];var l=Array.isArray(c.value)?c.value:[c.value];c.value=__spreadArray([],Array.from(new Set(__spreadArray(__spreadArray([],l,!0),a,!0))),!0)}else r[i.key]=i}}return r},r.prototype.updateSearchFilters=function(e,r){console.log("SearchFilterService - updateSearchFilters( filtersAdd: %s ; filtersRemove: %s )",e,r);var t=e.filter((function(e){return e instanceof search_filter_1.HierarchyFilter})).reduce((function(e,r){var t=Array.isArray(r.value)?r.value:[r.value];return __spreadArray(__spreadArray([],e,!0),t,!0)}),[]),s=r.filter((function(e){return e instanceof search_filter_1.HierarchyFilter})).reduce((function(e,r){var t=Array.isArray(r.value)?r.value:[r.value];return __spreadArray(__spreadArray([],e,!0),t,!0)}),[]),i=new search_filter_1.HierarchyPartiumIdFilter(t,s);return this.setSearchFilters([i])},r.prototype.addSearchFilter=function(e){console.log("SearchFilterService - addSearchFilter():",e);var r=__spreadArray(__spreadArray([],this.searchStatus.filterStatus.filters,!0),[e],!1);return this.setSearchFilters(r)},r.prototype.removeSearchFilter=function(e){console.log("SearchFilterService - removeSearchFilter(): ",e);var r=__spreadArray([],this.searchStatus.filterStatus.filters,!0),t=r.findIndex((function(r){return r.key===e.key}));return t>-1&&r.splice(t,1),this.setSearchFilters(r)},r.prototype.uploadSearchFilters=function(e){var r=this;return console.log("SearchFilterService - uploadSearchFilters() .."),this.searchFilterUploader.uploadFilters(e,this.searchStatus.searchSessionID).pipe((0,operators_1.tap)((function(){r.searchResultService.startPollingForResults()})))},r=__decorate([(0,injection_identifier_1.InjectionIdentifier)("SearchFilterService")],r)}(base_service_1.BaseService);exports.SearchFilterServiceImpl=SearchFilterServiceImpl;
2
+ "use strict";
3
+ var __extends = (this && this.__extends) || (function () {
4
+ var extendStatics = function (d, b) {
5
+ extendStatics = Object.setPrototypeOf ||
6
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
8
+ return extendStatics(d, b);
9
+ };
10
+ return function (d, b) {
11
+ if (typeof b !== "function" && b !== null)
12
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13
+ extendStatics(d, b);
14
+ function __() { this.constructor = d; }
15
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16
+ };
17
+ })();
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
26
+ if (ar || !(i in from)) {
27
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28
+ ar[i] = from[i];
29
+ }
30
+ }
31
+ return to.concat(ar || Array.prototype.slice.call(from));
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.SearchFilterServiceImpl = void 0;
35
+ var rxjs_1 = require("rxjs");
36
+ var operators_1 = require("rxjs/operators");
37
+ var injection_identifier_1 = require("../../core/decorators/injection-identifier");
38
+ var base_service_1 = require("../../core/services/base.service");
39
+ var https_service_interface_1 = require("../../core/services/http/https.service.interface");
40
+ var assembly_hierarchy_nodes_service_1 = require("../../data/services/assembly-hierarchy-nodes.service");
41
+ var search_filter_1 = require("../models/search-filter");
42
+ var update_filters_uploader_1 = require("./filter-uploaders/update-filters-uploader");
43
+ var search_result_service_1 = require("./search/search-result.service");
44
+ var SearchFilterServiceImpl = /** @class */ (function (_super) {
45
+ __extends(SearchFilterServiceImpl, _super);
46
+ function SearchFilterServiceImpl(serviceProvider) {
47
+ var _this = _super.call(this, serviceProvider) || this;
48
+ _this.searchFiltersLoaded$ = new rxjs_1.BehaviorSubject(false);
49
+ _this.searchFilters$ = new rxjs_1.BehaviorSubject([]);
50
+ _this.searchFiltersMap$ = new rxjs_1.BehaviorSubject({});
51
+ _this.excludedHierarchyFilterNodes$ = new rxjs_1.BehaviorSubject({});
52
+ return _this;
53
+ }
54
+ SearchFilterServiceImpl.prototype.onCreate = function () {
55
+ this.httpsService = this.serviceProvider.getService(https_service_interface_1.HttpsService);
56
+ this.searchResultService = this.serviceProvider.getService(search_result_service_1.SearchResultService);
57
+ this.assemblyHierarchyNodeService = this.serviceProvider.getService(assembly_hierarchy_nodes_service_1.AssemblyHierarchyNodesServiceImpl);
58
+ this.searchFilterUploader = new update_filters_uploader_1.UpdateFiltersUploader(this.httpsService);
59
+ };
60
+ SearchFilterServiceImpl.prototype.getSearchInputFiltersLoaded = function () {
61
+ return this.searchFiltersLoaded$;
62
+ };
63
+ SearchFilterServiceImpl.prototype.reset = function (searchStatus) {
64
+ var _a, _b;
65
+ this.searchStatus = searchStatus;
66
+ this.searchStatus.filterStatus.filters = [];
67
+ this.searchStatus.filterStatus.filtersMap = {};
68
+ this.searchStatus.filterStatus.excludedHierarchyNodes = {};
69
+ this.searchFilters$.next([]);
70
+ this.searchFiltersMap$.next({});
71
+ this.searchFiltersLoaded$.next(false);
72
+ this.excludedHierarchyFilterNodes$.next({});
73
+ (_a = this.searchFilterUploader) === null || _a === void 0 ? void 0 : _a.reset();
74
+ (_b = this.searchResultService) === null || _b === void 0 ? void 0 : _b.startPollingForResults(); // get results from Filtering
75
+ };
76
+ /**
77
+ * Set the search filters to a certain status.
78
+ * This can happen if an old search-session is loaded or a change of the search-input
79
+ * was initiated on the backend-side.
80
+ *
81
+ * @param searchStatus the search-status object
82
+ * @param filters the filters object
83
+ */
84
+ SearchFilterServiceImpl.prototype.setStatusExternal = function (searchStatus, filters) {
85
+ this.searchStatus = searchStatus;
86
+ if (filters) {
87
+ this.searchStatus.filterStatus.filters = Object.values(filters);
88
+ this.searchStatus.filterStatus.filtersMap = filters;
89
+ this.searchFilters$.next(this.searchStatus.filterStatus.filters);
90
+ this.searchFiltersMap$.next(this.searchStatus.filterStatus.filtersMap);
91
+ }
92
+ this.searchFiltersLoaded$.next(true);
93
+ // TODO load filters - needs to be implemented once the new filter system is defined
94
+ };
95
+ SearchFilterServiceImpl.prototype.getFilters = function () {
96
+ return this.searchFiltersMap$.asObservable();
97
+ };
98
+ /**
99
+ * Maps and returns the selected hard filter values and hierarchy filter values into the right structure to be uploaded by the uploadSearchFilters() method:
100
+ *
101
+ * @param selectedHardFiltersKeyWithValues the hard filters with the selected values type Array<FilterKeyWithValues>
102
+ * @param hierarchy the hierarchy filter values
103
+ * @returns an object with the filters , where the hardfilter id is the key of each of the filter objects { [filterKey: string]: SearchFilter }
104
+ *
105
+ *
106
+ * The structure should be something similar to this:
107
+ *
108
+ hierarchy-partium-id: {
109
+ "key": "hierarchy-partium-id",
110
+ "type": "includeExclude",
111
+ "include": [
112
+ "2d102f6a-343a-43ff-9a05-8eb84715a302"
113
+ ],
114
+ "exclude": []
115
+ }
116
+ en/2392692c-dd1f-481e-97cd-3fcd971158b4": {
117
+ "key": "en/2392692c-dd1f-481e-97cd-3fcd971158b4",
118
+ "type": "kvpHardFilter",
119
+ "values": [
120
+ "25A",
121
+ "3A"
122
+ ],
123
+ "label": "Amperage"
124
+ }
125
+ */
126
+ SearchFilterServiceImpl.prototype.mapFiltersToUploadFilterFormat = function (hardFilters, hierarchy) {
127
+ var mappedFilters = {};
128
+ if (hierarchy) {
129
+ mappedFilters[hierarchy.key] = new search_filter_1.HierarchyPartiumIdFilter(hierarchy.include, hierarchy.exclude);
130
+ }
131
+ if (hardFilters.length > 0) {
132
+ hardFilters.forEach(function (hardFilter) {
133
+ mappedFilters[hardFilter.key] = hardFilter;
134
+ });
135
+ }
136
+ return mappedFilters;
137
+ };
138
+ /**
139
+ * @deprecated this method is deprecated in favor of getFilters
140
+ */
141
+ SearchFilterServiceImpl.prototype.getSearchFilters = function () {
142
+ return this.searchFilters$.asObservable();
143
+ };
144
+ /**
145
+ * @deprecated this method is deprecated in favor of getFilters containing the excluded node id's as part of the filter objects
146
+ */
147
+ SearchFilterServiceImpl.prototype.getExcludedHierarchyFilterNodes = function () {
148
+ return this.excludedHierarchyFilterNodes$.asObservable();
149
+ };
150
+ SearchFilterServiceImpl.prototype.setFilters = function (filters) {
151
+ var _this = this;
152
+ return this.uploadSearchFilters(filters).pipe((0, operators_1.mergeMap)(function () {
153
+ // retrieve excludedHierarchyNodes assembly nodes
154
+ var hierarchyFilter = filters[search_filter_1.HierarchyPartiumIdFilter.KEY];
155
+ if (hierarchyFilter && hierarchyFilter.exclude && hierarchyFilter.exclude.length) {
156
+ return _this.assemblyHierarchyNodeService.getAssemblyHierarchyNodes(hierarchyFilter.exclude);
157
+ }
158
+ return (0, rxjs_1.of)([]);
159
+ }), (0, operators_1.map)(function (excludedNodes) {
160
+ // update sdk filter state
161
+ _this.searchStatus.filterStatus.filters = Object.values(filters);
162
+ _this.searchStatus.filterStatus.filtersMap = filters;
163
+ _this.searchStatus.filterStatus.excludedHierarchyNodes = excludedNodes.reduce(function (res, node) {
164
+ res[node.partiumId] = node;
165
+ return res;
166
+ }, {});
167
+ console.log('NEW filter state: ', {
168
+ filters: filters,
169
+ excludedNodes: Object.keys(_this.searchStatus.filterStatus.excludedHierarchyNodes),
170
+ });
171
+ // notify filter state change
172
+ _this.excludedHierarchyFilterNodes$.next(_this.searchStatus.filterStatus.excludedHierarchyNodes);
173
+ _this.searchFilters$.next(_this.searchStatus.filterStatus.filters);
174
+ _this.searchFiltersMap$.next(_this.searchStatus.filterStatus.filtersMap);
175
+ }));
176
+ };
177
+ /**
178
+ * @deprecated this method is deprecated in favor of setFilters
179
+ */
180
+ SearchFilterServiceImpl.prototype.setSearchFilters = function (filters) {
181
+ console.log('SearchFilterService - setSearchFilters():', filters);
182
+ var newFilters = this.mergeFilters(filters);
183
+ return this.setFilters(newFilters);
184
+ };
185
+ /**
186
+ * helper function to merge multiple filters with same key to one filter
187
+ * @param filters array of search filters
188
+ * @returns dict of search filters grouped by their filter key
189
+ */
190
+ SearchFilterServiceImpl.prototype.mergeFilters = function (filters) {
191
+ var result = {};
192
+ for (var _i = 0, filters_1 = filters; _i < filters_1.length; _i++) {
193
+ var currFilter = filters_1[_i];
194
+ // converts and merges deprecated HierarchyFilters to HierarchyPartiumIdFilter
195
+ if (currFilter instanceof search_filter_1.HierarchyFilter) {
196
+ var newValues = Array.isArray(currFilter.value) ? currFilter.value : [currFilter.value];
197
+ var resultFilter = result[currFilter.key];
198
+ if (!resultFilter) {
199
+ result[currFilter.key] = new search_filter_1.HierarchyPartiumIdFilter(newValues, []);
200
+ }
201
+ else {
202
+ // assigns merged and de-duplicated array
203
+ resultFilter.include = __spreadArray([], Array.from(new Set(__spreadArray(__spreadArray([], resultFilter.include, true), newValues, true))), true);
204
+ }
205
+ }
206
+ else if (currFilter instanceof search_filter_1.HierarchyPartiumIdFilter) {
207
+ var resultFilter = result[currFilter.key];
208
+ if (!resultFilter) {
209
+ result[currFilter.key] = new search_filter_1.HierarchyPartiumIdFilter(currFilter.include, currFilter.exclude);
210
+ }
211
+ else {
212
+ // assigns merged and de-duplicated array
213
+ resultFilter.include = __spreadArray([], Array.from(new Set(__spreadArray(__spreadArray([], resultFilter.include, true), currFilter.include, true))), true);
214
+ resultFilter.exclude = __spreadArray([], Array.from(new Set(__spreadArray(__spreadArray([], resultFilter.exclude, true), currFilter.exclude, true))), true);
215
+ }
216
+ }
217
+ else if (currFilter instanceof search_filter_1.CategoryFilter) {
218
+ var resultFilter = result[currFilter.key];
219
+ if (!resultFilter) {
220
+ result[currFilter.key] = currFilter;
221
+ }
222
+ else {
223
+ var newValues = Array.isArray(currFilter.value) ? currFilter.value : [currFilter.value];
224
+ var oldValues = Array.isArray(resultFilter.value) ? resultFilter.value : [resultFilter.value];
225
+ // assigns merged and de-duplicated array
226
+ resultFilter.value = __spreadArray([], Array.from(new Set(__spreadArray(__spreadArray([], oldValues, true), newValues, true))), true);
227
+ }
228
+ }
229
+ }
230
+ return result;
231
+ };
232
+ /**
233
+ * @deprecated this method is deprecated in favor of setFilters
234
+ */
235
+ SearchFilterServiceImpl.prototype.updateSearchFilters = function (filtersAdd, filtersRemove) {
236
+ console.log("SearchFilterService - updateSearchFilters( filtersAdd: %s ; filtersRemove: %s )", filtersAdd, filtersRemove);
237
+ // for backwards compatibility we still consider filtersRemove and the deprecated HierarchyFilter here
238
+ // but we simplify how they are added to the search session
239
+ var include = filtersAdd
240
+ .filter(function (filter) { return filter instanceof search_filter_1.HierarchyFilter; })
241
+ .reduce(function (prev, next) {
242
+ var nextValues = Array.isArray(next.value) ? next.value : [next.value];
243
+ return __spreadArray(__spreadArray([], prev, true), nextValues, true);
244
+ }, []);
245
+ var exclude = filtersRemove
246
+ .filter(function (filter) { return filter instanceof search_filter_1.HierarchyFilter; })
247
+ .reduce(function (prev, next) {
248
+ var nextValues = Array.isArray(next.value) ? next.value : [next.value];
249
+ return __spreadArray(__spreadArray([], prev, true), nextValues, true);
250
+ }, []);
251
+ var updateFilter = new search_filter_1.HierarchyPartiumIdFilter(include, exclude);
252
+ return this.setSearchFilters([updateFilter]);
253
+ };
254
+ /**
255
+ * @deprecated this method is deprecated in favor of setFilters
256
+ */
257
+ SearchFilterServiceImpl.prototype.addSearchFilter = function (filter) {
258
+ console.log('SearchFilterService - addSearchFilter():', filter);
259
+ var filtersUpdate = __spreadArray(__spreadArray([], this.searchStatus.filterStatus.filters, true), [filter], false);
260
+ return this.setSearchFilters(filtersUpdate);
261
+ };
262
+ /**
263
+ * @deprecated this method is deprecated in favor of setFilters
264
+ */
265
+ SearchFilterServiceImpl.prototype.removeSearchFilter = function (filter) {
266
+ console.log('SearchFilterService - removeSearchFilter(): ', filter);
267
+ var filters = __spreadArray([], this.searchStatus.filterStatus.filters, true);
268
+ var index = filters.findIndex(function (curr) { return curr.key === filter.key; });
269
+ if (index > -1) {
270
+ filters.splice(index, 1);
271
+ }
272
+ return this.setSearchFilters(filters);
273
+ };
274
+ /**
275
+ * Send the Request for updating the Search-Filters to the backend
276
+ * @param filters dict of all Search-Filters to set in the search
277
+ * @returns Observable that resolves with the request to the backend.
278
+ */
279
+ SearchFilterServiceImpl.prototype.uploadSearchFilters = function (filters) {
280
+ var _this = this;
281
+ // upload category filters
282
+ console.log('SearchFilterService - uploadSearchFilters() ..');
283
+ return this.searchFilterUploader.uploadFilters(filters, this.searchStatus.searchSessionID).pipe((0, operators_1.tap)(function () {
284
+ _this.searchResultService.startPollingForResults(); // get results from Filtering
285
+ }));
286
+ };
287
+ SearchFilterServiceImpl = __decorate([
288
+ (0, injection_identifier_1.InjectionIdentifier)('SearchFilterService')
289
+ ], SearchFilterServiceImpl);
290
+ return SearchFilterServiceImpl;
291
+ }(base_service_1.BaseService));
292
+ exports.SearchFilterServiceImpl = SearchFilterServiceImpl;
293
+ //# sourceMappingURL=search-filter.service.js.map
@@ -1,2 +1,76 @@
1
1
  // Copyright © 2022-2025 Partium, Inc. DBA Partium
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllResults=exports.performImageSearch=void 0;var rxjs_1=require("rxjs"),core_1=require("../../core"),asset_1=require("../models/assets/asset"),__1=require("../.."),data_1=require("../../data"),performImageSearch=function(e,r,t){var s;if(r.searchImageAssetId){var a=new asset_1.Asset(null==r?void 0:r.searchImage);a.referenceId=r.searchImageAssetId,s=__1.Partium.search.cv.performCVObs(a,r.searchImageCropArea)}else s=r.searchImage?__1.Partium.asset.generateAsset(e,r.searchImage,{eventInterface:null==t?void 0:t.eventInterface}).pipe((0,rxjs_1.filter)((function(e){return e.asset.getStatus()===asset_1.ASSET_STATUS.VERIFIED})),(0,rxjs_1.first)(),(0,rxjs_1.mergeMap)((function(e){return __1.Partium.search.cv.performCVObs(e.asset,r.searchImageCropArea)}))):(0,rxjs_1.of)(null);return s.pipe((0,rxjs_1.catchError)((function(e){return e.code===core_1.SDK_ERROR_CODES.INVALID_MULTIPLE_IMAGE_SEARCHES?(console.log("Swallowed INVALID_MULTIPLE_IMAGE_SEARCHES error"),(0,rxjs_1.of)(null)):(0,rxjs_1.throwError)((function(){return e}))})))};exports.performImageSearch=performImageSearch;var getAllResults=function(e,r){return void 0===r&&(r=500),__1.Partium.https.get("search/".concat(e),[{skip:0},{limit:r}]).pipe((0,rxjs_1.map)((function(e){return e&&e.results&&e.results.entities?e.results.entities.map((function(e){return new data_1.Part({name:new core_1.i18nString(e.name),partiumId:e.partiumId,externalId:e.externalId,externalPayload:e.externalPayload,dataOrigin:data_1.DATA_ORIGIN.PARTIAL})})):[]})))};exports.getAllResults=getAllResults;
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getAllResults = exports.performImageSearch = void 0;
5
+ var rxjs_1 = require("rxjs");
6
+ var core_1 = require("../../core");
7
+ var asset_1 = require("../models/assets/asset");
8
+ var __1 = require("../..");
9
+ var data_1 = require("../../data");
10
+ /**
11
+ * Helper function for sync search.
12
+ * Performs an image search based on the given search-input.
13
+ */
14
+ var performImageSearch = function (organizationId, searchInput, searchEventContext) {
15
+ var imageSearch$;
16
+ if (searchInput.searchImageAssetId) {
17
+ // image was already uploaded previously
18
+ var asset = new asset_1.Asset(searchInput === null || searchInput === void 0 ? void 0 : searchInput.searchImage); // we still pass the image-object so that the cv-search-status is set correctly inside the SDK
19
+ asset.referenceId = searchInput.searchImageAssetId;
20
+ imageSearch$ = __1.Partium.search.cv.performCVObs(asset, searchInput.searchImageCropArea); // should only be run in forkJoin
21
+ }
22
+ else if (searchInput.searchImage) {
23
+ // new image to upload
24
+ imageSearch$ = __1.Partium.asset.generateAsset(organizationId, searchInput.searchImage, { eventInterface: searchEventContext === null || searchEventContext === void 0 ? void 0 : searchEventContext.eventInterface }).pipe((0, rxjs_1.filter)(function (upload) { return upload.asset.getStatus() === asset_1.ASSET_STATUS.VERIFIED; }), (0, rxjs_1.first)(), (0, rxjs_1.mergeMap)(function (upload) { return __1.Partium.search.cv.performCVObs(upload.asset, searchInput.searchImageCropArea); }));
25
+ }
26
+ else {
27
+ // TODO delete image search is not yet implemented, should go here
28
+ imageSearch$ = (0, rxjs_1.of)(null);
29
+ }
30
+ /*
31
+ Swallow INVALID_MULTIPLE_IMAGE_SEARCHES-error, because this will happen every time, even if the same image is contained inside the search-session.
32
+ The backend does not yet support this.
33
+ TODO - remove this as soon as the BE is able to change/remove an image
34
+ */
35
+ return imageSearch$.pipe((0, rxjs_1.catchError)(function (error) {
36
+ if (error.code === core_1.SDK_ERROR_CODES.INVALID_MULTIPLE_IMAGE_SEARCHES) {
37
+ console.log('Swallowed INVALID_MULTIPLE_IMAGE_SEARCHES error');
38
+ return (0, rxjs_1.of)(null); // swallow error
39
+ }
40
+ else {
41
+ return (0, rxjs_1.throwError)(function () { return error; });
42
+ }
43
+ }));
44
+ };
45
+ exports.performImageSearch = performImageSearch;
46
+ /**
47
+ * Load all results of a given searchSessionId
48
+ */
49
+ var getAllResults = function (searchSessionId, maxPartCount) {
50
+ if (maxPartCount === void 0) { maxPartCount = 500; }
51
+ return __1.Partium.https.get("search/".concat(searchSessionId), [
52
+ {
53
+ skip: 0,
54
+ },
55
+ {
56
+ limit: maxPartCount,
57
+ },
58
+ ])
59
+ .pipe((0, rxjs_1.map)(function (res) {
60
+ if (res && res['results'] && res['results'].entities) {
61
+ return res['results'].entities.map(function (partData) { return (new data_1.Part({
62
+ name: new core_1.i18nString(partData.name),
63
+ // images: partData.part.images,
64
+ partiumId: partData.partiumId,
65
+ externalId: partData.externalId,
66
+ externalPayload: partData.externalPayload,
67
+ dataOrigin: data_1.DATA_ORIGIN.PARTIAL,
68
+ })); });
69
+ }
70
+ else {
71
+ return [];
72
+ }
73
+ }));
74
+ };
75
+ exports.getAllResults = getAllResults;
76
+ //# sourceMappingURL=search-helper.js.map
@@ -1,2 +1,2 @@
1
1
  // Copyright © 2022-2025 Partium, Inc. DBA Partium
2
- export declare const SDK_VERSION_NUMBER = "14.0.2";
2
+ export declare const SDK_VERSION_NUMBER = "14.1.0";
@@ -1,2 +1,6 @@
1
1
  // Copyright © 2022-2025 Partium, Inc. DBA Partium
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SDK_VERSION_NUMBER=void 0,exports.SDK_VERSION_NUMBER="14.0.2";
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SDK_VERSION_NUMBER = void 0;
5
+ exports.SDK_VERSION_NUMBER = '14.1.0';
6
+ //# sourceMappingURL=sdk-version.js.map