@orangelogic/orange-dam-content-browser-sdk 2.4.4 → 2.4.5
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/build/OrangeDAMContentBrowserSDK.min.js +317 -316
- package/build/api/asset/asset.types.d.ts +1 -0
- package/build/components/content-browser-asset-proxy-selector/content-browser-asset-proxy-selector.d.ts +1 -0
- package/build/components/content-browser-format-dialog/content-browser-format-dialog.d.ts +7 -1
- package/build/content-browser.mjs +177 -70
- package/build/index.mjs +177 -70
- package/build/tools/fetch-and-merge-assets.d.ts +15 -0
- package/package.json +1 -1
package/build/index.mjs
CHANGED
|
@@ -110,7 +110,7 @@ var __yieldStar = (value) => {
|
|
|
110
110
|
}, "return" in obj && method("return"), it2;
|
|
111
111
|
};
|
|
112
112
|
var __forAwait = (obj, it2, method) => (it2 = obj[__knownSymbol("asyncIterator")]) ? it2.call(obj) : (obj = obj[__knownSymbol("iterator")](), it2 = {}, method = (key, fn) => (fn = obj[key]) && (it2[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it2);
|
|
113
|
-
var _a, _b, _c, _d, _e2, _f, _host, _getContainer, _getItemIndexById, _itemSelector, _anchor, _columnCount, _itemHeight, _pendingRestoreFrames, _restoreSequence, _lastGetDataParameters, _lastMappedAvailableExtensions, _lastData, _hasFetchedOnce;
|
|
113
|
+
var _a, _b, _c, _d, _e2, _f, _host, _getContainer, _getItemIndexById, _itemSelector, _anchor, _columnCount, _itemHeight, _pendingRestoreFrames, _restoreSequence, _lastGetDataParameters, _lastMappedAvailableExtensions, _lastData, _hasFetchedOnce, _generation, _inFlight, _queued, _lastPage;
|
|
114
114
|
import CxDrawer from "@orangelogic/design-system/components/drawer";
|
|
115
115
|
import CxFolderSelect from "@orangelogic/design-system/components/folder-select";
|
|
116
116
|
import CxIcon from "@orangelogic/design-system/components/icon";
|
|
@@ -8570,6 +8570,7 @@ let CxContentBrowserAssetProxySelector = class extends CortexElement {
|
|
|
8570
8570
|
this.canUseRepresentative = false;
|
|
8571
8571
|
this.canUseATS = false;
|
|
8572
8572
|
this.canUseTracking = false;
|
|
8573
|
+
this.proxiesFailed = false;
|
|
8573
8574
|
this.selected = "";
|
|
8574
8575
|
this.disabledSelected = false;
|
|
8575
8576
|
this.customWidth = "";
|
|
@@ -8798,7 +8799,10 @@ let CxContentBrowserAssetProxySelector = class extends CortexElement {
|
|
|
8798
8799
|
>
|
|
8799
8800
|
<cx-icon name="warning"></cx-icon>
|
|
8800
8801
|
<cx-typography variant="body3" class="content-browser-asset-proxy-selector__menu-item__name">
|
|
8801
|
-
${this.localize.term(
|
|
8802
|
+
${this.localize.term(
|
|
8803
|
+
// The no-options text names permissions as a possible cause, which a request error is not (L-42BIA4).
|
|
8804
|
+
this.proxiesFailed ? "oopsSomethingWentWrong" : "damViewNoAvailableOptionsForThisAsset"
|
|
8805
|
+
)}
|
|
8802
8806
|
</cx-typography>
|
|
8803
8807
|
</cx-space>
|
|
8804
8808
|
`
|
|
@@ -8831,6 +8835,9 @@ __decorateClass$7([
|
|
|
8831
8835
|
__decorateClass$7([
|
|
8832
8836
|
n$6({ attribute: "can-use-tracking", reflect: true, type: Boolean })
|
|
8833
8837
|
], CxContentBrowserAssetProxySelector.prototype, "canUseTracking", 2);
|
|
8838
|
+
__decorateClass$7([
|
|
8839
|
+
n$6({ attribute: "proxies-failed", reflect: true, type: Boolean })
|
|
8840
|
+
], CxContentBrowserAssetProxySelector.prototype, "proxiesFailed", 2);
|
|
8834
8841
|
__decorateClass$7([
|
|
8835
8842
|
n$6({ attribute: "selected", reflect: true, type: String })
|
|
8836
8843
|
], CxContentBrowserAssetProxySelector.prototype, "selected", 2);
|
|
@@ -9179,6 +9186,7 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9179
9186
|
this.isFavorite = false;
|
|
9180
9187
|
this.isAssetPinned = false;
|
|
9181
9188
|
this.proxies = [];
|
|
9189
|
+
this.proxiesFailed = false;
|
|
9182
9190
|
this.showVersionHistory = false;
|
|
9183
9191
|
this.showCustomFormat = false;
|
|
9184
9192
|
this.loadingVersionHistory = false;
|
|
@@ -9196,7 +9204,7 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9196
9204
|
return !!this.autoExtension && this.supportedExtensions.includes(this.autoExtension);
|
|
9197
9205
|
}
|
|
9198
9206
|
get canUseATS() {
|
|
9199
|
-
if (!this.asset) {
|
|
9207
|
+
if (!this.asset || this.filteredProxies.length === 0) {
|
|
9200
9208
|
return false;
|
|
9201
9209
|
}
|
|
9202
9210
|
const extensionList = (this.availableExtensions && this.asset.docType ? uniqBy([
|
|
@@ -9205,6 +9213,18 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9205
9213
|
], "value") : [{ displayName: this.localize.term("automatic"), value: this.autoExtension }]).filter((item) => this.shouldAppendAutoExtension || item.value !== this.autoExtension);
|
|
9206
9214
|
return this.canCustomFormat && extensionList.some((item) => item.value === this.asset.extension);
|
|
9207
9215
|
}
|
|
9216
|
+
/**
|
|
9217
|
+
* One rule for the Insert button and handleProxyConfirm, so an enabled Insert always confirms (L-42BIA4).
|
|
9218
|
+
*/
|
|
9219
|
+
get canConfirm() {
|
|
9220
|
+
if (!this.asset) {
|
|
9221
|
+
return false;
|
|
9222
|
+
}
|
|
9223
|
+
if (!this.canUseProxies || this.selectedProxy === CUSTOM_FORMAT_VALUE || this.selectedProxy === USE_REPRESENTATIVE_VALUE) {
|
|
9224
|
+
return true;
|
|
9225
|
+
}
|
|
9226
|
+
return this.filteredProxies.some((proxy) => proxy.id === this.selectedProxy);
|
|
9227
|
+
}
|
|
9208
9228
|
handleSupportedExtensionsChange() {
|
|
9209
9229
|
var _a2, _b2;
|
|
9210
9230
|
this.filteredProxies = this.proxies.filter((item) => {
|
|
@@ -9221,12 +9241,14 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9221
9241
|
asset,
|
|
9222
9242
|
isFavorite,
|
|
9223
9243
|
isAssetPinned = false,
|
|
9224
|
-
proxies
|
|
9244
|
+
proxies,
|
|
9245
|
+
proxiesFailed = false
|
|
9225
9246
|
}) {
|
|
9226
9247
|
this.asset = asset;
|
|
9227
9248
|
this.isFavorite = isFavorite;
|
|
9228
9249
|
this.isAssetPinned = isAssetPinned;
|
|
9229
9250
|
this.proxies = proxies;
|
|
9251
|
+
this.proxiesFailed = proxiesFailed;
|
|
9230
9252
|
this.isOpen = true;
|
|
9231
9253
|
}
|
|
9232
9254
|
hide() {
|
|
@@ -9337,7 +9359,7 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9337
9359
|
}
|
|
9338
9360
|
handleProxyConfirm() {
|
|
9339
9361
|
var _a2, _b2;
|
|
9340
|
-
if (!this.asset) {
|
|
9362
|
+
if (!this.asset || !this.canConfirm) {
|
|
9341
9363
|
return;
|
|
9342
9364
|
}
|
|
9343
9365
|
if (!this.canUseProxies) {
|
|
@@ -9360,9 +9382,6 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9360
9382
|
detail: payload
|
|
9361
9383
|
});
|
|
9362
9384
|
} else {
|
|
9363
|
-
if (!selectedProxy && this.selectedProxy !== USE_REPRESENTATIVE_VALUE) {
|
|
9364
|
-
return;
|
|
9365
|
-
}
|
|
9366
9385
|
const payload = this.mapProxyConfirmPayload(this.asset, selectedProxy);
|
|
9367
9386
|
this.loadingConfirm = true;
|
|
9368
9387
|
this.emit("cx-content-browser-format-dialog-proxy-confirm", {
|
|
@@ -9643,11 +9662,12 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9643
9662
|
}
|
|
9644
9663
|
)}
|
|
9645
9664
|
?can-use-ats=${i3(
|
|
9646
|
-
[this.availableExtensions, this.asset, this.canCustomFormat],
|
|
9665
|
+
[this.availableExtensions, this.asset, this.canCustomFormat, this.filteredProxies],
|
|
9647
9666
|
() => this.canUseATS
|
|
9648
9667
|
)}
|
|
9649
9668
|
?can-use-tracking=${this.canTrack}
|
|
9650
9669
|
?enabled-tracking=${this.enabledTracking}
|
|
9670
|
+
?proxies-failed=${this.proxiesFailed}
|
|
9651
9671
|
?disabled-selected=${this.selectedProxy === CUSTOM_FORMAT_VALUE}
|
|
9652
9672
|
@cx-select=${this.handleProxySelect}
|
|
9653
9673
|
@cx-content-browser-asset-tracking-parameters-change=${this.handleTrackingParametersChange}
|
|
@@ -9748,7 +9768,7 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9748
9768
|
content = b`
|
|
9749
9769
|
<cx-button
|
|
9750
9770
|
class="content-browser-format__footer__button"
|
|
9751
|
-
?disabled=${this.disabledConfirm}
|
|
9771
|
+
?disabled=${this.disabledConfirm || !this.canConfirm}
|
|
9752
9772
|
?loading=${this.loadingConfirm}
|
|
9753
9773
|
variant="primary"
|
|
9754
9774
|
style=${o$2({
|
|
@@ -9804,6 +9824,7 @@ let CxContentBrowserFormatDialog = class extends CortexElement {
|
|
|
9804
9824
|
this.loadingPinAsset = false;
|
|
9805
9825
|
this.loadingVersionHistory = false;
|
|
9806
9826
|
this.proxies = [];
|
|
9827
|
+
this.proxiesFailed = false;
|
|
9807
9828
|
this.selectedProxy = "";
|
|
9808
9829
|
this.showCustomFormat = false;
|
|
9809
9830
|
this.showVersionHistory = false;
|
|
@@ -9954,6 +9975,9 @@ __decorateClass$5([
|
|
|
9954
9975
|
__decorateClass$5([
|
|
9955
9976
|
r$6()
|
|
9956
9977
|
], CxContentBrowserFormatDialog.prototype, "proxies", 2);
|
|
9978
|
+
__decorateClass$5([
|
|
9979
|
+
r$6()
|
|
9980
|
+
], CxContentBrowserFormatDialog.prototype, "proxiesFailed", 2);
|
|
9957
9981
|
__decorateClass$5([
|
|
9958
9982
|
r$6()
|
|
9959
9983
|
], CxContentBrowserFormatDialog.prototype, "showVersionHistory", 2);
|
|
@@ -13333,6 +13357,13 @@ function apiGetAvailableProxies(_0) {
|
|
|
13333
13357
|
try {
|
|
13334
13358
|
const response = yield http.request({
|
|
13335
13359
|
baseURL: siteUrl,
|
|
13360
|
+
cache: {
|
|
13361
|
+
// A malformed body arrives with HTTP 200, so the default status check would cache the error and
|
|
13362
|
+
// serve it again after the server recovers.
|
|
13363
|
+
cachePredicate: {
|
|
13364
|
+
responseMatch: ({ data }) => !data.isError
|
|
13365
|
+
}
|
|
13366
|
+
},
|
|
13336
13367
|
method: "GET",
|
|
13337
13368
|
params: {
|
|
13338
13369
|
RecordId: assetRecordId
|
|
@@ -13341,16 +13372,18 @@ function apiGetAvailableProxies(_0) {
|
|
|
13341
13372
|
transformResponse: [
|
|
13342
13373
|
...Array.isArray(http.defaults.transformResponse) ? http.defaults.transformResponse : [],
|
|
13343
13374
|
(rawResponse) => {
|
|
13344
|
-
var _a2
|
|
13345
|
-
if (!rawResponse || typeof rawResponse !== "object") {
|
|
13375
|
+
var _a2;
|
|
13376
|
+
if (!rawResponse || typeof rawResponse !== "object" || !Array.isArray(rawResponse.proxies)) {
|
|
13346
13377
|
return {
|
|
13378
|
+
isError: true,
|
|
13347
13379
|
previewUrl: "",
|
|
13348
13380
|
proxies: []
|
|
13349
13381
|
};
|
|
13350
13382
|
}
|
|
13351
13383
|
return {
|
|
13384
|
+
isError: false,
|
|
13352
13385
|
previewUrl: (_a2 = rawResponse.previewUrl) != null ? _a2 : "",
|
|
13353
|
-
proxies:
|
|
13386
|
+
proxies: rawResponse.proxies.map((proxy) => ({
|
|
13354
13387
|
cdnName: proxy.cdnName,
|
|
13355
13388
|
extension: proxy.extension,
|
|
13356
13389
|
formatHeight: proxy.formatHeight,
|
|
@@ -13361,7 +13394,7 @@ function apiGetAvailableProxies(_0) {
|
|
|
13361
13394
|
proxyLabel: proxy.proxyLabel,
|
|
13362
13395
|
proxyName: proxy.proxyName,
|
|
13363
13396
|
width: proxy.width
|
|
13364
|
-
}))
|
|
13397
|
+
}))
|
|
13365
13398
|
};
|
|
13366
13399
|
}
|
|
13367
13400
|
],
|
|
@@ -13370,6 +13403,7 @@ function apiGetAvailableProxies(_0) {
|
|
|
13370
13403
|
return response.data;
|
|
13371
13404
|
} catch (error) {
|
|
13372
13405
|
return {
|
|
13406
|
+
isError: true,
|
|
13373
13407
|
previewUrl: "",
|
|
13374
13408
|
proxies: []
|
|
13375
13409
|
};
|
|
@@ -13795,6 +13829,10 @@ class FetchAndMergeAssetsController {
|
|
|
13795
13829
|
__privateAdd(this, _lastMappedAvailableExtensions);
|
|
13796
13830
|
__privateAdd(this, _lastData);
|
|
13797
13831
|
__privateAdd(this, _hasFetchedOnce);
|
|
13832
|
+
__privateAdd(this, _generation);
|
|
13833
|
+
__privateAdd(this, _inFlight);
|
|
13834
|
+
__privateAdd(this, _queued);
|
|
13835
|
+
__privateAdd(this, _lastPage);
|
|
13798
13836
|
var _a2, _b2;
|
|
13799
13837
|
this.availableFacets = [];
|
|
13800
13838
|
this.facets = [];
|
|
@@ -13818,6 +13856,10 @@ class FetchAndMergeAssetsController {
|
|
|
13818
13856
|
this.responseInterceptorId = null;
|
|
13819
13857
|
this._debouncePromise = null;
|
|
13820
13858
|
this._debounceResolve = null;
|
|
13859
|
+
__privateSet(this, _generation, 0);
|
|
13860
|
+
__privateSet(this, _inFlight, []);
|
|
13861
|
+
__privateSet(this, _queued, false);
|
|
13862
|
+
__privateSet(this, _lastPage, null);
|
|
13821
13863
|
this.host = host;
|
|
13822
13864
|
this.availableDocTypes = availableDocTypes;
|
|
13823
13865
|
this.defaultFolderId = defaultFolderId;
|
|
@@ -14049,11 +14091,19 @@ class FetchAndMergeAssetsController {
|
|
|
14049
14091
|
fetchAndMergeAssets(request) {
|
|
14050
14092
|
return __async(this, null, function* () {
|
|
14051
14093
|
var _a2;
|
|
14052
|
-
this.loading = true;
|
|
14053
|
-
this.host.requestUpdate();
|
|
14054
14094
|
if (request.start === null) {
|
|
14055
14095
|
return;
|
|
14056
14096
|
}
|
|
14097
|
+
const isRestart = this.isRestart(request);
|
|
14098
|
+
if (!isRestart && this.isBusy()) {
|
|
14099
|
+
return;
|
|
14100
|
+
}
|
|
14101
|
+
if (isRestart) {
|
|
14102
|
+
__privateSet(this, _generation, __privateGet(this, _generation) + 1);
|
|
14103
|
+
}
|
|
14104
|
+
const generation = __privateGet(this, _generation);
|
|
14105
|
+
this.loading = true;
|
|
14106
|
+
this.host.requestUpdate();
|
|
14057
14107
|
if (this._debounceTimeout) {
|
|
14058
14108
|
clearTimeout(this._debounceTimeout);
|
|
14059
14109
|
this._debounceTimeout = void 0;
|
|
@@ -14061,61 +14111,105 @@ class FetchAndMergeAssetsController {
|
|
|
14061
14111
|
(_a2 = this._debouncePromise) != null ? _a2 : this._debouncePromise = new Promise((resolve) => {
|
|
14062
14112
|
this._debounceResolve = resolve;
|
|
14063
14113
|
});
|
|
14114
|
+
__privateSet(this, _queued, true);
|
|
14064
14115
|
this._debounceTimeout = setTimeout(() => __async(this, null, function* () {
|
|
14065
|
-
var _a3, _b2, _c2, _d2, _e3, _f2, _g
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14116
|
+
var _a3, _b2, _c2, _d2, _e3, _f2, _g;
|
|
14117
|
+
__privateSet(this, _queued, false);
|
|
14118
|
+
__privateGet(this, _inFlight).push(generation);
|
|
14119
|
+
try {
|
|
14120
|
+
if (Object.keys(this.sortOrders).length === 0) {
|
|
14121
|
+
const sortOrders = yield apiGetSortOrders();
|
|
14122
|
+
this.sortOrders = sortOrders;
|
|
14123
|
+
}
|
|
14124
|
+
if (generation !== __privateGet(this, _generation)) {
|
|
14125
|
+
return;
|
|
14126
|
+
}
|
|
14127
|
+
if (!__privateGet(this, _hasFetchedOnce)) {
|
|
14128
|
+
request = __spreadProps(__spreadValues({}, request), {
|
|
14129
|
+
// Keep a folder the host already resolved (e.g. the auto-selected initial folder).
|
|
14130
|
+
folderId: request.folderId || this.defaultFolderId,
|
|
14131
|
+
isSeeThrough: (_a3 = request.isSeeThrough) != null ? _a3 : this.defaultIsSeeThrough,
|
|
14132
|
+
searchText: (_b2 = request.searchText) != null ? _b2 : this.defaultSearchText,
|
|
14133
|
+
selectedFacets: (_c2 = request.selectedFacets) != null ? _c2 : this.defaultSelectedFacets,
|
|
14134
|
+
sortDirection: (_d2 = request.sortDirection) != null ? _d2 : this.defaultSortDirection,
|
|
14135
|
+
sortOrderName: (_e3 = request.sortOrderName) != null ? _e3 : this.defaultSortOrderName
|
|
14136
|
+
});
|
|
14137
|
+
}
|
|
14138
|
+
let sortOrder;
|
|
14139
|
+
if (request.sortOrderName && request.sortDirection) {
|
|
14140
|
+
const sortOrders = this.sortOrders[request.sortOrderName];
|
|
14141
|
+
sortOrder = (_f2 = sortOrders == null ? void 0 : sortOrders.find((item) => {
|
|
14142
|
+
var _a4;
|
|
14143
|
+
return item.sortDirection.toLowerCase() === ((_a4 = request.sortDirection) == null ? void 0 : _a4.toLowerCase());
|
|
14144
|
+
})) == null ? void 0 : _f2.id;
|
|
14145
|
+
if (!sortOrder && (sortOrders == null ? void 0 : sortOrders[0])) {
|
|
14146
|
+
sortOrder = sortOrders[0].id;
|
|
14147
|
+
request.sortDirection = sortOrders[0].sortDirection;
|
|
14148
|
+
}
|
|
14149
|
+
}
|
|
14072
14150
|
request = __spreadProps(__spreadValues({}, request), {
|
|
14073
|
-
|
|
14074
|
-
folderId: request.folderId || this.defaultFolderId,
|
|
14075
|
-
isSeeThrough: (_d2 = request.isSeeThrough) != null ? _d2 : this.defaultIsSeeThrough,
|
|
14076
|
-
searchText: (_e3 = request.searchText) != null ? _e3 : this.defaultSearchText,
|
|
14077
|
-
selectedFacets: (_f2 = request.selectedFacets) != null ? _f2 : this.defaultSelectedFacets,
|
|
14078
|
-
sortDirection: (_g = request.sortDirection) != null ? _g : this.defaultSortDirection,
|
|
14079
|
-
sortOrderName: (_h = request.sortOrderName) != null ? _h : this.defaultSortOrderName
|
|
14151
|
+
limitedToDocTypes: this.availableDocTypes
|
|
14080
14152
|
});
|
|
14081
|
-
|
|
14082
|
-
|
|
14083
|
-
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14087
|
-
return item.sortDirection.toLowerCase() === ((_a4 = request.sortDirection) == null ? void 0 : _a4.toLowerCase());
|
|
14088
|
-
})) == null ? void 0 : _i.id;
|
|
14089
|
-
if (!sortOrder && (sortOrders == null ? void 0 : sortOrders[0])) {
|
|
14090
|
-
sortOrder = sortOrders[0].id;
|
|
14091
|
-
request.sortDirection = sortOrders[0].sortDirection;
|
|
14153
|
+
this.lastRequest = request;
|
|
14154
|
+
const assets = yield apiGetAssets(__spreadProps(__spreadValues({}, request), {
|
|
14155
|
+
sortOrder
|
|
14156
|
+
}));
|
|
14157
|
+
if (generation !== __privateGet(this, _generation)) {
|
|
14158
|
+
return;
|
|
14092
14159
|
}
|
|
14160
|
+
if (isRestart) {
|
|
14161
|
+
this.items = assets.items;
|
|
14162
|
+
} else {
|
|
14163
|
+
this.items = uniqBy([...this.items, ...assets.items], "recordId");
|
|
14164
|
+
}
|
|
14165
|
+
this.facets = this.mergeFacetsWithSelected(assets.facets, this.facets, request.selectedFacets);
|
|
14166
|
+
this.totalCount = assets.totalCount;
|
|
14167
|
+
__privateSet(this, _lastPage, {
|
|
14168
|
+
pageSize: request.pageSize || assets.items.length,
|
|
14169
|
+
start: (_g = request.start) != null ? _g : 0
|
|
14170
|
+
});
|
|
14171
|
+
__privateSet(this, _hasFetchedOnce, true);
|
|
14172
|
+
if (this._debounceResolve) {
|
|
14173
|
+
this._debounceResolve(this.lastRequest);
|
|
14174
|
+
}
|
|
14175
|
+
this._debouncePromise = null;
|
|
14176
|
+
this._debounceResolve = null;
|
|
14177
|
+
} finally {
|
|
14178
|
+
const index = __privateGet(this, _inFlight).indexOf(generation);
|
|
14179
|
+
if (index >= 0) {
|
|
14180
|
+
__privateGet(this, _inFlight).splice(index, 1);
|
|
14181
|
+
}
|
|
14182
|
+
this.loading = this.isBusy();
|
|
14183
|
+
this.host.requestUpdate();
|
|
14093
14184
|
}
|
|
14094
|
-
request = __spreadProps(__spreadValues({}, request), {
|
|
14095
|
-
limitedToDocTypes: this.availableDocTypes
|
|
14096
|
-
});
|
|
14097
|
-
this.lastRequest = request;
|
|
14098
|
-
const assets = yield apiGetAssets(__spreadProps(__spreadValues({}, request), {
|
|
14099
|
-
sortOrder
|
|
14100
|
-
}));
|
|
14101
|
-
if (request.start && request.start > 0 && !forceRefetch) {
|
|
14102
|
-
this.items = uniqBy([...this.items, ...assets.items], "recordId");
|
|
14103
|
-
} else {
|
|
14104
|
-
this.items = assets.items;
|
|
14105
|
-
}
|
|
14106
|
-
this.facets = this.mergeFacetsWithSelected(assets.facets, this.facets, request.selectedFacets);
|
|
14107
|
-
this.totalCount = assets.totalCount;
|
|
14108
|
-
this.loading = false;
|
|
14109
|
-
__privateSet(this, _hasFetchedOnce, true);
|
|
14110
|
-
this.host.requestUpdate();
|
|
14111
|
-
if (this._debounceResolve) {
|
|
14112
|
-
this._debounceResolve(this.lastRequest);
|
|
14113
|
-
}
|
|
14114
|
-
this._debouncePromise = null;
|
|
14115
|
-
this._debounceResolve = null;
|
|
14116
14185
|
}), 200);
|
|
14117
14186
|
});
|
|
14118
14187
|
}
|
|
14188
|
+
/**
|
|
14189
|
+
* Where the next page of the list on screen starts, or `null` while a request of that list is queued
|
|
14190
|
+
* or in flight. The start follows the last accepted page, not the last request sent, so a page that
|
|
14191
|
+
* was dropped or discarded never leaves a gap. `lastPageSize` is the size of that accepted page.
|
|
14192
|
+
*/
|
|
14193
|
+
getNextPage() {
|
|
14194
|
+
var _a2, _b2;
|
|
14195
|
+
if (this.isBusy()) {
|
|
14196
|
+
return null;
|
|
14197
|
+
}
|
|
14198
|
+
return {
|
|
14199
|
+
lastPageSize: (_b2 = (_a2 = __privateGet(this, _lastPage)) == null ? void 0 : _a2.pageSize) != null ? _b2 : 0,
|
|
14200
|
+
start: __privateGet(this, _lastPage) ? __privateGet(this, _lastPage).start + __privateGet(this, _lastPage).pageSize : 0
|
|
14201
|
+
};
|
|
14202
|
+
}
|
|
14203
|
+
isBusy() {
|
|
14204
|
+
return __privateGet(this, _queued) || __privateGet(this, _inFlight).includes(__privateGet(this, _generation));
|
|
14205
|
+
}
|
|
14206
|
+
/**
|
|
14207
|
+
* A request that starts a new list: the first page, or the same page asked for with a larger page size.
|
|
14208
|
+
*/
|
|
14209
|
+
isRestart(request) {
|
|
14210
|
+
var _a2, _b2;
|
|
14211
|
+
return !request.start || request.start === ((_a2 = this.lastRequest) == null ? void 0 : _a2.start) && !!request.pageSize && !!((_b2 = this.lastRequest) == null ? void 0 : _b2.pageSize) && request.pageSize > this.lastRequest.pageSize;
|
|
14212
|
+
}
|
|
14119
14213
|
fetchAssetFavoriteStatus(id) {
|
|
14120
14214
|
return __async(this, null, function* () {
|
|
14121
14215
|
return apiGetAssetFavoriteStatus({
|
|
@@ -14125,7 +14219,7 @@ class FetchAndMergeAssetsController {
|
|
|
14125
14219
|
}
|
|
14126
14220
|
fetchAssetByID(id, options) {
|
|
14127
14221
|
return __async(this, null, function* () {
|
|
14128
|
-
var _a2, _b2, _c2, _d2, _e3, _f2, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
14222
|
+
var _a2, _b2, _c2, _d2, _e3, _f2, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
14129
14223
|
const { allowedExtensions = [], canFavorite = false, simplePick = false } = options != null ? options : {};
|
|
14130
14224
|
const promises = [
|
|
14131
14225
|
apiGetAssetsByIDs({
|
|
@@ -14205,7 +14299,8 @@ class FetchAndMergeAssetsController {
|
|
|
14205
14299
|
}
|
|
14206
14300
|
return proxyExtension.toLowerCase() === extension.toLowerCase();
|
|
14207
14301
|
});
|
|
14208
|
-
})
|
|
14302
|
+
}),
|
|
14303
|
+
proxiesFailed: (_o = proxyData == null ? void 0 : proxyData.isError) != null ? _o : false
|
|
14209
14304
|
};
|
|
14210
14305
|
});
|
|
14211
14306
|
}
|
|
@@ -14305,12 +14400,17 @@ class FetchAndMergeAssetsController {
|
|
|
14305
14400
|
this.items = [];
|
|
14306
14401
|
this.totalCount = 0;
|
|
14307
14402
|
this.sortOrders = {};
|
|
14403
|
+
__privateSet(this, _lastPage, null);
|
|
14308
14404
|
}
|
|
14309
14405
|
}
|
|
14310
14406
|
_lastGetDataParameters = new WeakMap();
|
|
14311
14407
|
_lastMappedAvailableExtensions = new WeakMap();
|
|
14312
14408
|
_lastData = new WeakMap();
|
|
14313
14409
|
_hasFetchedOnce = new WeakMap();
|
|
14410
|
+
_generation = new WeakMap();
|
|
14411
|
+
_inFlight = new WeakMap();
|
|
14412
|
+
_queued = new WeakMap();
|
|
14413
|
+
_lastPage = new WeakMap();
|
|
14314
14414
|
function safeInteger(value) {
|
|
14315
14415
|
if (Number.isNaN(value) || !Number.isInteger(value)) {
|
|
14316
14416
|
return 0;
|
|
@@ -14641,10 +14741,13 @@ let CxContentBrowser = class extends CortexElement {
|
|
|
14641
14741
|
}
|
|
14642
14742
|
handleScrollEnd() {
|
|
14643
14743
|
return __async(this, null, function* () {
|
|
14644
|
-
const
|
|
14744
|
+
const nextPage = this.fetchAndMergeAssetsController.getNextPage();
|
|
14745
|
+
if (!nextPage) {
|
|
14746
|
+
return;
|
|
14747
|
+
}
|
|
14645
14748
|
this.lastRequest = __spreadProps(__spreadValues({}, this.lastRequest), {
|
|
14646
14749
|
pageSize: this.defaultPageSize,
|
|
14647
|
-
start:
|
|
14750
|
+
start: nextPage.start
|
|
14648
14751
|
});
|
|
14649
14752
|
yield this.fetchAndMergeAssetsController.fetchAndMergeAssets(this.lastRequest);
|
|
14650
14753
|
});
|
|
@@ -14691,13 +14794,17 @@ let CxContentBrowser = class extends CortexElement {
|
|
|
14691
14794
|
}
|
|
14692
14795
|
return;
|
|
14693
14796
|
}
|
|
14797
|
+
const nextPage = this.fetchAndMergeAssetsController.getNextPage();
|
|
14798
|
+
if (!nextPage) {
|
|
14799
|
+
return;
|
|
14800
|
+
}
|
|
14694
14801
|
const totalCount = this.fetchAndMergeAssetsController.getData().totalCount;
|
|
14695
|
-
const newStart =
|
|
14696
|
-
if (newPageSize <=
|
|
14802
|
+
const newStart = nextPage.start;
|
|
14803
|
+
if (newPageSize <= nextPage.lastPageSize || newPageSize === 0 || newStart > totalCount) {
|
|
14697
14804
|
return;
|
|
14698
14805
|
}
|
|
14699
14806
|
this.lastRequest = __spreadProps(__spreadValues({}, this.lastRequest), {
|
|
14700
|
-
pageSize: newPageSize -
|
|
14807
|
+
pageSize: newPageSize - nextPage.lastPageSize,
|
|
14701
14808
|
start: newStart
|
|
14702
14809
|
});
|
|
14703
14810
|
yield this.fetchAndMergeAssetsController.fetchAndMergeAssets(this.lastRequest);
|
|
@@ -79,6 +79,20 @@ export declare class FetchAndMergeAssetsController implements ReactiveController
|
|
|
79
79
|
*/
|
|
80
80
|
private mergeFacetsWithSelected;
|
|
81
81
|
fetchAndMergeAssets(request: GetAssetsRequest): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Where the next page of the list on screen starts, or `null` while a request of that list is queued
|
|
84
|
+
* or in flight. The start follows the last accepted page, not the last request sent, so a page that
|
|
85
|
+
* was dropped or discarded never leaves a gap. `lastPageSize` is the size of that accepted page.
|
|
86
|
+
*/
|
|
87
|
+
getNextPage(): {
|
|
88
|
+
lastPageSize: number;
|
|
89
|
+
start: number;
|
|
90
|
+
} | null;
|
|
91
|
+
private isBusy;
|
|
92
|
+
/**
|
|
93
|
+
* A request that starts a new list: the first page, or the same page asked for with a larger page size.
|
|
94
|
+
*/
|
|
95
|
+
private isRestart;
|
|
82
96
|
fetchAssetFavoriteStatus(id: string): Promise<boolean>;
|
|
83
97
|
fetchAssetByID(id: string, options?: {
|
|
84
98
|
allowedExtensions?: string[];
|
|
@@ -106,6 +120,7 @@ export declare class FetchAndMergeAssetsController implements ReactiveController
|
|
|
106
120
|
};
|
|
107
121
|
isFavorite: boolean;
|
|
108
122
|
proxies: import("../types/asset").AvailableProxy[];
|
|
123
|
+
proxiesFailed: boolean;
|
|
109
124
|
} | undefined>;
|
|
110
125
|
fetchAssetVersionHistory(id: string): Promise<import("../api/asset/asset.types").GetAssetVersionHistoryResponse>;
|
|
111
126
|
addAssetToFavorite(id: string): Promise<boolean>;
|
package/package.json
CHANGED