@partium/js-sdk 14.4.1 → 14.5.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.
- package/catalog/index.js +1 -21
- package/catalog/models/catalog-image-info.js +1 -22
- package/catalog/models/catalog-image.js +1 -40
- package/catalog/models/upsert-catalog-images-dto.js +1 -3
- package/catalog/models/upsert-images-result.js +1 -3
- package/catalog/services/images.service.js +1 -62
- package/core/constants/constants.d.ts +1 -0
- package/core/constants/constants.js +1 -16
- package/core/decorators/injection-identifier.js +1 -19
- package/core/factories/paginated-request-service.factory.js +1 -33
- package/core/index.js +1 -63
- package/core/integration-defaults/http/fetch-api-http-error-helper.js +1 -129
- package/core/integration-defaults/http/file-transfer/axios-file-transfer.service.js +1 -138
- package/core/integration-defaults/http/file-transfer/fetch-api-file-transfer.service.js +1 -210
- package/core/integration-defaults/http/handle-axios-error-helper.js +1 -79
- package/core/integration-defaults/http/https-client/axios-https-client.service.js +1 -182
- package/core/integration-defaults/http/https-client/fetch-api-https-client.service.js +1 -198
- package/core/integration-defaults/http/js-oauth-keycloak-https.service.js +1 -32
- package/core/integration-defaults/js-p-file.js +1 -36
- package/core/integration-defaults/session/js-oauth-api-key-session.service.js +1 -206
- package/core/integration-defaults/session/js-oauth-keycloak-auth-config.js +1 -64
- package/core/integration-defaults/session/js-oauth-keycloak-session.service.js +1 -257
- package/core/integration-defaults/web-device-status.service.js +1 -125
- package/core/integration-defaults/web-file.service.js +1 -135
- package/core/integration-defaults/web-indexeddb.service.js +1 -142
- package/core/integration-defaults/web-local-storage.service.js +1 -310
- package/core/models/api-object.js +1 -16
- package/core/models/auth-config.js +1 -72
- package/core/models/device-info.js +1 -34
- package/core/models/error.js +1 -107
- package/core/models/formatted-string.js +1 -14
- package/core/models/i18n-map.js +1 -61
- package/core/models/i18n-string.js +1 -35
- package/core/models/log.js +1 -137
- package/core/models/organization.js +1 -159
- package/core/models/p-file.js +1 -23
- package/core/models/paginated-list.js +1 -41
- package/core/models/partium-config.js +1 -43
- package/core/models/user-token.js +1 -11
- package/core/models/user.js +1 -89
- package/core/services/backend-status.service.js +1 -147
- package/core/services/base-login-init.service.js +1 -57
- package/core/services/base.service.js +1 -37
- package/core/services/device-status.service.interface.js +1 -117
- package/core/services/file.service.interface.js +1 -61
- package/core/services/http/file-transfer/file-transfer.service.interface.js +1 -125
- package/core/services/http/https-client/https-client.service.interface.js +1 -152
- package/core/services/http/https.service.interface.d.ts +3 -1
- package/core/services/http/https.service.interface.js +1 -294
- package/core/services/http/oauth-https.service.js +1 -218
- package/core/services/local-storage.service.interface.js +1 -378
- package/core/services/log.service.js +1 -139
- package/core/services/organization.service.js +1 -202
- package/core/services/paginated-request.service.js +1 -154
- package/core/services/recent-parts.service.js +1 -194
- package/core/services/service-provider.js +1 -114
- package/core/services/session/oauth-session.service.js +1 -104
- package/core/services/session/session.service.interface.js +1 -367
- package/core/utils/general-helper.js +1 -110
- package/data/index.js +1 -44
- package/data/models/announcement.js +1 -70
- package/data/models/assembly-hierarchy-node-breadcrumb.js +1 -51
- package/data/models/assembly-hierarchy-node.js +1 -46
- package/data/models/attribute.js +1 -106
- package/data/models/csa-request-search.js +1 -46
- package/data/models/csa-request-status.js +1 -51
- package/data/models/csa-request.js +1 -112
- package/data/models/document.js +1 -17
- package/data/models/filter-key.js +1 -36
- package/data/models/filter-option-value.js +1 -41
- package/data/models/image.js +1 -77
- package/data/models/inquiry.js +1 -71
- package/data/models/mounting-location.js +1 -58
- package/data/models/multiple-expert-searches.js +1 -40
- package/data/models/part-enrichment-data.js +1 -50
- package/data/models/part.d.ts +1 -1
- package/data/models/part.js +1 -168
- package/data/models/shopping-cart.js +1 -60
- package/data/services/announcement.service.js +1 -89
- package/data/services/assembly-hierarchy-nodes.service.js +1 -193
- package/data/services/csa-helper.service.js +1 -158
- package/data/services/customer-service-assistance.service.js +1 -276
- package/data/services/filter.service.js +1 -97
- package/data/services/inquiry.service.js +1 -68
- package/data/services/part-attribute.service.js +1 -118
- package/data/services/part-enrichment.service.js +1 -56
- package/data/services/part.service.js +1 -182
- package/data/services/related-parts.service.js +1 -83
- package/data/services/shopping-cart.service.js +1 -152
- package/datacuration/index.d.ts +2 -0
- package/datacuration/index.js +2 -0
- package/datacuration/models/image-submission-request.d.ts +55 -0
- package/datacuration/models/image-submission-request.js +2 -0
- package/datacuration/models/submitted-image-response.d.ts +27 -0
- package/datacuration/models/submitted-image-response.js +2 -0
- package/datacuration/services/image-submission.service.d.ts +26 -0
- package/datacuration/services/image-submission.service.js +2 -0
- package/find/index.js +1 -51
- package/find/models/assets/asset.js +1 -32
- package/find/models/search-filter.js +1 -205
- package/find/models/search-input.js +1 -3
- package/find/models/search-output.js +1 -3
- package/find/models/search-result-status.js +1 -40
- package/find/models/search-session-log-object.js +1 -22
- package/find/models/search-status/cv-search-status.js +1 -22
- package/find/models/search-status/search-filter-status.js +1 -36
- package/find/models/search-status/search-status.js +1 -56
- package/find/models/search-status/tag-search-status.js +1 -23
- package/find/models/search-status/text-search-status.js +1 -18
- package/find/models/search-tag.js +1 -16
- package/find/models/smart-filter.js +1 -49
- package/find/models/tagable/i18n-tagable.js +1 -37
- package/find/models/tagable/tagable-base.js +1 -22
- package/find/models/tagable/tagable.js +1 -37
- package/find/models/text-search-config.js +1 -70
- package/find/models/text-search-manipulator.js +1 -90
- package/find/models/text-search-result-item/text-search-error.js +1 -12
- package/find/models/text-search-result-item/text-search-result-item-document.js +1 -34
- package/find/models/text-search-result-item/text-search-result-item-part.js +1 -36
- package/find/models/text-search-result-item/text-search-result-item-recent-query.js +1 -35
- package/find/models/text-search-result-item/text-search-result-item-unknown.js +1 -38
- package/find/models/text-search-result-item/text-search-result-item.js +1 -22
- package/find/services/asset.service.js +1 -348
- package/find/services/filter-uploaders/filter-uploader.js +1 -3
- package/find/services/filter-uploaders/update-filters-uploader.js +1 -77
- package/find/services/filter-uploaders/update-filters.model.js +1 -7
- package/find/services/search/cv-search.service.js +1 -214
- package/find/services/search/recent-text-search-queries.service.js +1 -260
- package/find/services/search/search-result.service.js +1 -539
- package/find/services/search/search.service.js +1 -514
- package/find/services/search/tag-search.service.js +1 -124
- package/find/services/search/text-search.service.js +1 -316
- package/find/services/search-filter.service.js +1 -292
- package/find/utils/search-helper.js +1 -75
- package/gen/sdk-version.d.ts +1 -1
- package/gen/sdk-version.js +1 -5
- package/index.d.ts +2 -0
- package/index.js +1 -392
- package/management/index.js +1 -21
- package/management/models/api-key-list-response.js +1 -3
- package/management/models/api-key-type.js +1 -9
- package/management/models/api-key.js +1 -3
- package/management/services/api-key.service.js +1 -53
- package/ocr/index.js +1 -20
- package/ocr/models/detect-response.js +1 -3
- package/ocr/models/detected-text-entry.js +1 -3
- package/ocr/services/ocr.service.js +1 -59
- package/package.json +1 -1
- package/user-data/index.js +1 -21
- package/user-data/models/part-with-nullable.js +1 -3
- package/user-data/models/request-list/request-list.js +1 -63
- package/user-data/services/favorite/favorite.service.js +1 -108
- package/user-data/services/request-list/request-list.service.js +1 -133
|
@@ -1,293 +1,2 @@
|
|
|
1
1
|
// Copyright © 2022-2025 Partium, Inc. DBA Partium
|
|
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
|
|
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;
|
|
@@ -1,76 +1,2 @@
|
|
|
1
1
|
// Copyright © 2022-2025 Partium, Inc. DBA Partium
|
|
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
|
|
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;
|
package/gen/sdk-version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Copyright © 2022-2025 Partium, Inc. DBA Partium
|
|
2
|
-
export declare const SDK_VERSION_NUMBER = "14.
|
|
2
|
+
export declare const SDK_VERSION_NUMBER = "14.5.0";
|
package/gen/sdk-version.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
// Copyright © 2022-2025 Partium, Inc. DBA Partium
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SDK_VERSION_NUMBER = void 0;
|
|
5
|
-
exports.SDK_VERSION_NUMBER = '14.4.1';
|
|
6
|
-
//# sourceMappingURL=sdk-version.js.map
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SDK_VERSION_NUMBER=void 0,exports.SDK_VERSION_NUMBER="14.5.0";
|
package/index.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ import { RelatedPartsService } from './data/services/related-parts.service';
|
|
|
25
25
|
import { ApiKeyService } from './management';
|
|
26
26
|
import { PartEnrichmentService } from './data/services/part-enrichment.service';
|
|
27
27
|
import { ImagesService } from './catalog/services/images.service';
|
|
28
|
+
import { ImageSubmissionService } from './datacuration/services/image-submission.service';
|
|
28
29
|
export declare enum INITIALIZATION_STATUS {
|
|
29
30
|
NOT_INITIALIZED = 0,
|
|
30
31
|
INITIALIZING = 1,
|
|
@@ -67,6 +68,7 @@ export declare class Partium {
|
|
|
67
68
|
static get apiKey(): ApiKeyService;
|
|
68
69
|
static get localStorage(): LocalStorageService;
|
|
69
70
|
static get images(): ImagesService;
|
|
71
|
+
static get imageSubmission(): ImageSubmissionService;
|
|
70
72
|
/**
|
|
71
73
|
* Initialize the Partium SDK with a given configuration.
|
|
72
74
|
* The configuration defines what Authentication method is used and which
|