@fluid-topics/public-api 1.0.17 → 1.0.18
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/dist/cjs/index.js +2 -48
- package/dist/cjs/preferences/unauthenticated-preferences.js +70 -0
- package/dist/fluidtopics.min.js +1 -1
- package/dist/mjs/index.d.ts +2 -5
- package/dist/mjs/index.js +1 -46
- package/dist/mjs/preferences/unauthenticated-preferences.d.ts +9 -0
- package/dist/mjs/preferences/unauthenticated-preferences.js +63 -0
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -19,11 +19,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.
|
|
22
|
+
exports.FluidTopicsApi = exports.HttpError = void 0;
|
|
23
23
|
require("cross-fetch/polyfill");
|
|
24
24
|
const wnd = (typeof window === "undefined" ? globalThis : window);
|
|
25
25
|
__exportStar(require("./types/ft-common/public"), exports);
|
|
26
26
|
__exportStar(require("./types/ft-server/public"), exports);
|
|
27
|
+
__exportStar(require("./preferences/unauthenticated-preferences"), exports);
|
|
27
28
|
function toBase64(s) {
|
|
28
29
|
return typeof Buffer !== "undefined" ? Buffer.from(s).toString("base64") : btoa(s);
|
|
29
30
|
}
|
|
@@ -192,50 +193,3 @@ class FluidTopicsApi {
|
|
|
192
193
|
}
|
|
193
194
|
exports.FluidTopicsApi = FluidTopicsApi;
|
|
194
195
|
exports.default = FluidTopicsApi;
|
|
195
|
-
function normalizeMetadataPreferences(metadata) {
|
|
196
|
-
let normalized = {};
|
|
197
|
-
for (let key in metadata) {
|
|
198
|
-
let values = metadata[key];
|
|
199
|
-
if (typeof values !== "object" || Array.isArray(values)) {
|
|
200
|
-
values = { prior: values };
|
|
201
|
-
}
|
|
202
|
-
for (let property of ["prior", "filter"]) {
|
|
203
|
-
values[property] = Array.isArray(values[property]) ? values[property] : [values[property]];
|
|
204
|
-
values[property] = values[property]
|
|
205
|
-
.map(v => v != null ? "" + v : "")
|
|
206
|
-
.filter(v => v !== "");
|
|
207
|
-
}
|
|
208
|
-
normalized[key] = values;
|
|
209
|
-
}
|
|
210
|
-
return normalized;
|
|
211
|
-
}
|
|
212
|
-
function setUnauthenticatedUserSearchPreferences(input, tenantBaseUrl) {
|
|
213
|
-
var _a, _b, _c, _d, _e, _f;
|
|
214
|
-
if (wnd.localStorage) {
|
|
215
|
-
//@ts-ignore
|
|
216
|
-
tenantBaseUrl = (_c = (_a = tenantBaseUrl !== null && tenantBaseUrl !== void 0 ? tenantBaseUrl : wnd.__gwt_ft_moduleBase) !== null && _a !== void 0 ? _a : (_b = wnd.fluidtopicsclient) === null || _b === void 0 ? void 0 : _b.__moduleBase) !== null && _c !== void 0 ? _c : (_e = (_d = wnd.__gwt_activeModules) === null || _d === void 0 ? void 0 : _d.fluidtopicsclient) === null || _e === void 0 ? void 0 : _e.moduleBase;
|
|
217
|
-
let preferences = Object.assign(Object.assign({}, input), { metadata: normalizeMetadataPreferences((_f = input.metadata) !== null && _f !== void 0 ? _f : {}) });
|
|
218
|
-
const key = `${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`;
|
|
219
|
-
const newValue = JSON.stringify(preferences);
|
|
220
|
-
wnd.localStorage.setItem(key, newValue);
|
|
221
|
-
wnd.dispatchEvent(new StorageEvent("storage", {
|
|
222
|
-
key,
|
|
223
|
-
newValue,
|
|
224
|
-
storageArea: wnd.localStorage,
|
|
225
|
-
url: wnd.location.href
|
|
226
|
-
}));
|
|
227
|
-
return preferences;
|
|
228
|
-
}
|
|
229
|
-
console.error("Cannot set unauthenticated preferences: local storage is unavailable.");
|
|
230
|
-
}
|
|
231
|
-
exports.setUnauthenticatedUserSearchPreferences = setUnauthenticatedUserSearchPreferences;
|
|
232
|
-
function getUnauthenticatedUserSearchPreferences(tenantBaseUrl) {
|
|
233
|
-
var _a, _b, _c, _d, _e, _f;
|
|
234
|
-
if (wnd.localStorage) {
|
|
235
|
-
//@ts-ignore
|
|
236
|
-
tenantBaseUrl = (_c = (_a = tenantBaseUrl !== null && tenantBaseUrl !== void 0 ? tenantBaseUrl : wnd.__gwt_ft_moduleBase) !== null && _a !== void 0 ? _a : (_b = wnd.fluidtopicsclient) === null || _b === void 0 ? void 0 : _b.__moduleBase) !== null && _c !== void 0 ? _c : (_e = (_d = wnd.__gwt_activeModules) === null || _d === void 0 ? void 0 : _d.fluidtopicsclient) === null || _e === void 0 ? void 0 : _e.moduleBase;
|
|
237
|
-
return JSON.parse((_f = wnd.localStorage.getItem(`${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`)) !== null && _f !== void 0 ? _f : "{}");
|
|
238
|
-
}
|
|
239
|
-
console.error("Cannot get unauthenticated preferences: local storage is unavailable.");
|
|
240
|
-
}
|
|
241
|
-
exports.getUnauthenticatedUserSearchPreferences = getUnauthenticatedUserSearchPreferences;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addUnauthenticatedUserSearchPreferencesChangeHandler = exports.getUnauthenticatedUserSearchPreferences = exports.setUnauthenticatedUserSearchPreferences = void 0;
|
|
4
|
+
const wnd = (typeof window === "undefined" ? globalThis : window);
|
|
5
|
+
function normalizeMetadataPreferences(metadata) {
|
|
6
|
+
let normalized = {};
|
|
7
|
+
for (let key in metadata) {
|
|
8
|
+
let values = metadata[key];
|
|
9
|
+
if (typeof values !== "object" || Array.isArray(values)) {
|
|
10
|
+
values = { prior: values };
|
|
11
|
+
}
|
|
12
|
+
for (let property of ["prior", "filter"]) {
|
|
13
|
+
values[property] = Array.isArray(values[property]) ? values[property] : [values[property]];
|
|
14
|
+
values[property] = values[property]
|
|
15
|
+
.map(v => v != null ? "" + v : "")
|
|
16
|
+
.filter(v => v !== "");
|
|
17
|
+
}
|
|
18
|
+
normalized[key] = values;
|
|
19
|
+
}
|
|
20
|
+
return normalized;
|
|
21
|
+
}
|
|
22
|
+
function getStorageKey(tenantBaseUrl) {
|
|
23
|
+
var _a, _b, _c, _d, _e;
|
|
24
|
+
//@ts-ignore
|
|
25
|
+
tenantBaseUrl = (_c = (_a = tenantBaseUrl !== null && tenantBaseUrl !== void 0 ? tenantBaseUrl : wnd.__gwt_ft_moduleBase) !== null && _a !== void 0 ? _a : (_b = wnd.fluidtopicsclient) === null || _b === void 0 ? void 0 : _b.__moduleBase) !== null && _c !== void 0 ? _c : (_e = (_d = wnd.__gwt_activeModules) === null || _d === void 0 ? void 0 : _d.fluidtopicsclient) === null || _e === void 0 ? void 0 : _e.moduleBase;
|
|
26
|
+
return `${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`;
|
|
27
|
+
}
|
|
28
|
+
function setUnauthenticatedUserSearchPreferences(input, tenantBaseUrl) {
|
|
29
|
+
var _a;
|
|
30
|
+
if (wnd.localStorage) {
|
|
31
|
+
let preferences = Object.assign(Object.assign({}, input), { metadata: normalizeMetadataPreferences((_a = input.metadata) !== null && _a !== void 0 ? _a : {}) });
|
|
32
|
+
const key = getStorageKey(tenantBaseUrl);
|
|
33
|
+
const newValue = JSON.stringify(preferences);
|
|
34
|
+
wnd.localStorage.setItem(key, newValue);
|
|
35
|
+
wnd.dispatchEvent(new StorageEvent("storage", {
|
|
36
|
+
key,
|
|
37
|
+
newValue,
|
|
38
|
+
storageArea: wnd.localStorage,
|
|
39
|
+
url: wnd.location.href
|
|
40
|
+
}));
|
|
41
|
+
return preferences;
|
|
42
|
+
}
|
|
43
|
+
console.error("Cannot set unauthenticated preferences: local storage is unavailable.");
|
|
44
|
+
}
|
|
45
|
+
exports.setUnauthenticatedUserSearchPreferences = setUnauthenticatedUserSearchPreferences;
|
|
46
|
+
function getUnauthenticatedUserSearchPreferences(tenantBaseUrl) {
|
|
47
|
+
var _a;
|
|
48
|
+
if (wnd.localStorage) {
|
|
49
|
+
return JSON.parse((_a = wnd.localStorage.getItem(getStorageKey(tenantBaseUrl))) !== null && _a !== void 0 ? _a : "{}");
|
|
50
|
+
}
|
|
51
|
+
console.error("Cannot get unauthenticated preferences: local storage is unavailable.");
|
|
52
|
+
}
|
|
53
|
+
exports.getUnauthenticatedUserSearchPreferences = getUnauthenticatedUserSearchPreferences;
|
|
54
|
+
function addUnauthenticatedUserSearchPreferencesChangeHandler(handler, tenantBaseUrl) {
|
|
55
|
+
if (wnd.localStorage) {
|
|
56
|
+
const key = getStorageKey(tenantBaseUrl);
|
|
57
|
+
const eventListener = (event) => {
|
|
58
|
+
var _a;
|
|
59
|
+
if (event.storageArea === wnd.localStorage && event.key === key) {
|
|
60
|
+
handler(JSON.parse((_a = event.newValue) !== null && _a !== void 0 ? _a : "{}"));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
wnd.addEventListener("storage", eventListener);
|
|
64
|
+
return {
|
|
65
|
+
removeHandler: () => wnd.removeEventListener("storage", eventListener)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
console.error("Cannot handle unauthenticated preferences: local storage is unavailable.");
|
|
69
|
+
}
|
|
70
|
+
exports.addUnauthenticatedUserSearchPreferencesChangeHandler = addUnauthenticatedUserSearchPreferencesChangeHandler;
|
package/dist/fluidtopics.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).fluidtopics={})}(this,(function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}},a={exports:{}};!function(e,t){var r=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r)return r;throw new Error("unable to locate global object")}();e.exports=t=r.fetch,r.fetch&&(t.default=r.fetch.bind(r)),t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response}(a,a.exports),function(e,t){const r=a.exports,i=r.default||r,n=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),i.call(this,e,t)};n.ponyfill=!0,e.exports=t=n,t.fetch=n,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,t.default=n}(r,r.exports);const i=r.exports,n=i.fetch.bind({});n.polyfill=!0,t.fetch||(t.fetch=n,t.Response=i.Response,t.Headers=i.Headers,t.Request=i.Request);const s=e=>"object"==typeof e&&null!=e,l=e=>"boolean"==typeof e,o=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>s(e)&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>c(e)))&&u(e.contentId)&&u(e.title);var p;e.FtTopicContentTarget=void 0,(p=e.FtTopicContentTarget||(e.FtTopicContentTarget={})).THIRD_PARTY="THIRD_PARTY",p.OFF_THE_GRID="OFF_THE_GRID";const d=e=>s(e)&&o(e.count)&&u(e.label)&&(null==e.lang||u(e.lang)),h=e=>s(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.label)&&u(e.key),y=e=>s(e)&&Array.isArray(e.filter)&&e.filter.every((e=>u(e)))&&Array.isArray(e.prior)&&e.prior.every((e=>u(e))),f=e=>s(e)&&l(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key),g=e=>s(e)&&o(e.totalResultsCount)&&l(e.lastPage)&&o(e.currentPage)&&o(e.totalClustersCount);var m;e.FtEditorialType=void 0,(m=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",m.BOOK="BOOK";const A=e=>["ARTICLE","BOOK"].includes(e);var T;e.FtOpenMode=void 0,(T=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",T.EXTERNAL="EXTERNAL";const F=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),b=e=>s(e)&&(null==e.perPage||o(e.perPage))&&o(e.page);var v;e.FtCollectionDocumentType=void 0,(v=e.FtCollectionDocumentType||(e.FtCollectionDocumentType={})).MAP="MAP",v.DOCUMENT="DOCUMENT",v.TOPIC="TOPIC",v.PERSONAL_BOOK="PERSONAL_BOOK",v.SHARED_BOOK="SHARED_BOOK";const R=e=>["MAP","DOCUMENT","TOPIC","PERSONAL_BOOK","SHARED_BOOK"].includes(e),U=e=>s(e)&&o(e.weight)&&u(e.value)&&u(e.key),C=e=>s(e)&&Array.isArray(e.entries)&&e.entries.every((e=>S(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),S=e=>s(e)&&(null==e.document||E(e.document))&&(null==e.topic||P(e.topic))&&w(e.type)&&(null==e.map||O(e.map)),E=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&F(e.openMode)&&u(e.documentUrl)&&u(e.mimeType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.viewerUrl)&&u(e.contentUrl)&&u(e.filename)&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.documentId)&&u(e.lastEditionDate)&&u(e.htmlExcerpt),O=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&(null==e.openMode||F(e.openMode))&&A(e.editorialType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.mapUrl)&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt),P=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&F(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>L(e)))&&u(e.title)&&u(e.mapTitle)&&u(e.topicUrl)&&u(e.contentUrl)&&u(e.htmlTitle)&&Array.isArray(e.breadcrumb)&&e.breadcrumb.every((e=>u(e)))&&u(e.tocId)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt);var D;e.FtSearchResultType=void 0,(D=e.FtSearchResultType||(e.FtSearchResultType={})).MAP="MAP",D.DOCUMENT="DOCUMENT",D.TOPIC="TOPIC";const w=e=>["MAP","DOCUMENT","TOPIC"].includes(e),I=e=>s(e)&&l(e.hierarchical)&&u(e.label)&&l(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>k(e))),M=e=>s(e)&&(null==e.maxDepth||o(e.maxDepth))&&u(e.id),k=e=>s(e)&&o(e.totalResultsCount)&&l(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>k(e)))&&u(e.label)&&u(e.value)&&l(e.selected),x=e=>s(e)&&u(e.key),_=e=>s(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),L=e=>s(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),$=e=>s(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||A(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&w(e.type)&&u(e.value),B=e=>"object"==typeof e&&null!=e,N=e=>"boolean"==typeof e,H=e=>"number"==typeof e,q=e=>"string"==typeof e,j=e=>B(e)&&(null==e.emailAddress||q(e.emailAddress))&&(null==e.displayName||q(e.displayName))&&Array.isArray(e.roles)&&q(e.userId),K="undefined"==typeof window?globalThis:window;class z extends Error{status;statusText;body;constructor(e,t,r){super(`${e} - ${t}: ${r}`),this.status=e,this.statusText=t,this.body=r}}async function V(e){if(!e.ok)throw new z(e.status,e.statusText,await e.text());return e}function G(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class J{tenantBaseUrl;ftCallingApp;authorization={};get defaultHeaders(){return{...this.authorization,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t,r){this.tenantBaseUrl=e.trim().replace(/\/$/,""),r&&void 0!==K.location&&K.location.href.startsWith(this.tenantBaseUrl+"/")?this.ftCallingApp=t:this.ftCallingApp=`ft-public-api/${t}`}setApiKey(e){this.authorization={Authorization:"Bearer "+e}}setCredentials(e,t){var r;this.authorization={Authorization:"Basic "+(r=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(r).toString("base64"):btoa(r))}}clearAuthentication(){this.authorization={}}login(e,t){let r={login:e,password:t,rememberMe:!0};return this.post("/api/authentication/login",r).then((r=>(this.setCredentials(e,t),r)))}logout(){return this.post("/api/authentication/logout").then((()=>this.clearAuthentication()))}getCurrentSession(){return this.get("/api/authentication/current-session")}getMap(e){return this.get(`/api/khub/maps/${e}`)}getTableOfContent(e){return this.get(`/api/khub/maps/${e}/toc`)}getTopic(e,t){return this.get(`/api/khub/maps/${e}/topics/${t}`)}getTopicHTMLContent(e,t,r){return this.get(`/api/khub/maps/${e}/topics/${t}/content${r?"?target="+r:""}`)}getMapAttachments(e){return this.get(`/api/khub/maps/${e}/attachments`)}getMapAttachmentContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/attachments/${t}/content`)}getMapResources(e){return this.get(`/api/khub/maps/${e}/resources`)}getMapResourceContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/resources/${t}/content`)}getUnstructuredDocument(e){return this.get(`/api/khub/documents/${e}`)}getUnstructuredDocumentContent(e){return this.fetchRawData(`/api/khub/documents/${e}/content`)}getUnstructuredDocumentTextContent(e){return this.get(`/api/khub/documents/${e}/content/text`)}getCollectionDocuments(e,t){return this.get(`/api/users/${e}/collections/${t}/documents`)}getSuggestions(e){return this.post("/api/khub/suggest",e)}search(e){return this.post("/api/khub/clustered-search",e)}getAvailableSearchLocales(){return this.get("/api/khub/locales")}get(e){return this.makeRequest("GET",e)}post(e,t){return this.makeRequest("POST",e,t)}put(e,t){return this.makeRequest("PUT",e,t)}delete(e){return this.makeRequest("DELETE",e)}async fetch(e,t){const r=t;return e.startsWith("/")||(e="/"+e),await fetch(this.tenantBaseUrl+e,{...r??{},headers:{...this.defaultHeaders,...r?.headers??{}}})}async upload(e,t,r,a=(()=>{})){return new Promise(((i,n)=>{let s=new XMLHttpRequest;s.onload=()=>{if(s.status>=200&&s.status<300){let e="application/json"===s.getResponseHeader("Content-Type")?JSON.parse(s.responseText):s.responseText;i(e)}else n(new z(s.status,s.statusText,s.responseText))},s.upload.onprogress=e=>a(e),s.open(e,this.tenantBaseUrl+t,!0),s.send(r)}))}makeRequest(e,t,r){return this.fetch(t,{method:e,headers:{...null!=r?{"Content-Type":"application/json"}:{}},body:null!=r?JSON.stringify(r):void 0}).then(V).then(G)}fetchRawData(e){return fetch(this.tenantBaseUrl+e,{headers:this.defaultHeaders}).then(V).then((e=>e.arrayBuffer()))}}function X(e){let t={};for(let r in e){let a=e[r];("object"!=typeof a||Array.isArray(a))&&(a={prior:a});for(let e of["prior","filter"])a[e]=Array.isArray(a[e])?a[e]:[a[e]],a[e]=a[e].map((e=>null!=e?""+e:"")).filter((e=>""!==e));t[r]=a}return t}e.FluidTopicsApi=J,e.HttpError=z,e.default=J,e.getUnauthenticatedUserSearchPreferences=function(e){if(K.localStorage)return e=e??K.__gwt_ft_moduleBase??K.fluidtopicsclient?.__moduleBase??K.__gwt_activeModules?.fluidtopicsclient?.moduleBase,JSON.parse(K.localStorage.getItem(`${e}-FluidTopicsUnauthenticatedUserSearchPreferences`)??"{}");console.error("Cannot get unauthenticated preferences: local storage is unavailable.")},e.isFtAuthenticatedSession=e=>B(e)&&j(e.profile),e.isFtAuthenticationIdentifier=e=>s(e)&&u(e.identifier)&&u(e.realm),e.isFtCollectionDocument=e=>s(e)&&l(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&R(e.type),e.isFtCollectionDocumentType=R,e.isFtCredentials=e=>s(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&l(e.rememberMe)&&u(e.login),e.isFtEditorialType=A,e.isFtMap=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&F(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&A(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtMapAttachment=e=>B(e)&&q(e.file)&&(null==e.size||H(e.size))&&N(e.externalLink)&&q(e.name)&&q(e.id)&&(null==e.mimeType||q(e.mimeType))&&(null==e.viewerUrl||q(e.viewerUrl)),e.isFtMapResource=e=>s(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMetadata=h,e.isFtMetadataPreferenceConfiguration=y,e.isFtOpenMode=F,e.isFtPageRequest=b,e.isFtSearchFacet=I,e.isFtSearchFacetConf=M,e.isFtSearchFacetEntry=k,e.isFtSearchFilter=f,e.isFtSearchLocale=d,e.isFtSearchLocales=e=>s(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>d(e))),e.isFtSearchPreferencesConfiguration=e=>s(e)&&s(e.metadata)&&Object.keys(e.metadata).every((e=>u(e)))&&Object.values(e.metadata).every((e=>y(e))),e.isFtSearchPreset=e=>s(e)&&u(e.name)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSearchPrior=U,e.isFtSearchRequest=e=>s(e)&&u(e.query)&&b(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>x(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>U(e))))&&Array.isArray(e.facets)&&e.facets.every((e=>M(e))),e.isFtSearchResultCluster=C,e.isFtSearchResultClusterEntry=S,e.isFtSearchResultMap=O,e.isFtSearchResultTopic=P,e.isFtSearchResultType=w,e.isFtSearchResultUnstructuredDocument=E,e.isFtSearchResults=e=>s(e)&&(null==e.spellcheck||_(e.spellcheck))&&g(e.paging)&&Array.isArray(e.results)&&e.results.every((e=>C(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>I(e))),e.isFtSearchResultsPageInfo=g,e.isFtSearchSortCriterion=x,e.isFtSession=e=>B(e)&&H(e.idleTimeoutInMillis)&&(null==e.profile||j(e.profile))&&N(e.sessionAuthenticated),e.isFtSpellcheck=_,e.isFtSuggestRequest=e=>s(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>x(e)))&&(null==e.maxCount||o(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>U(e)))),e.isFtSuggestResult=$,e.isFtSuggestResults=e=>s(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>$(e))),e.isFtTocNode=c,e.isFtTopic=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID"].includes(e),e.isFtTopicResource=L,e.isFtUnstructuredDocument=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.openMode)&&(null==e.description||u(e.description))&&u(e.mimeType)&&(null==e.baseId||u(e.baseId))&&(null==e.clusterId||u(e.clusterId))&&u(e.contentApiEndpoint)&&u(e.title)&&(null==e.lastPublication||u(e.lastPublication))&&u(e.viewerUrl)&&u(e.lastEdition)&&u(e.filename)&&(null==e.originId||u(e.originId))&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtUserProfile=j,e.setUnauthenticatedUserSearchPreferences=function(e,t){if(K.localStorage){t=t??K.__gwt_ft_moduleBase??K.fluidtopicsclient?.__moduleBase??K.__gwt_activeModules?.fluidtopicsclient?.moduleBase;let r={...e,metadata:X(e.metadata??{})};const a=`${t}-FluidTopicsUnauthenticatedUserSearchPreferences`,i=JSON.stringify(r);return K.localStorage.setItem(a,i),K.dispatchEvent(new StorageEvent("storage",{key:a,newValue:i,storageArea:K.localStorage,url:K.location.href})),r}console.error("Cannot set unauthenticated preferences: local storage is unavailable.")}}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).fluidtopics={})}(this,(function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}},a={exports:{}};!function(e,t){var r=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r)return r;throw new Error("unable to locate global object")}();e.exports=t=r.fetch,r.fetch&&(t.default=r.fetch.bind(r)),t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response}(a,a.exports),function(e,t){const r=a.exports,n=r.default||r,i=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),n.call(this,e,t)};i.ponyfill=!0,e.exports=t=i,t.fetch=i,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,t.default=i}(r,r.exports);const n=r.exports,i=n.fetch.bind({});i.polyfill=!0,t.fetch||(t.fetch=i,t.Response=n.Response,t.Headers=n.Headers,t.Request=n.Request);const s=e=>"object"==typeof e&&null!=e,o=e=>"boolean"==typeof e,l=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>s(e)&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>c(e)))&&u(e.contentId)&&u(e.title);var p;e.FtTopicContentTarget=void 0,(p=e.FtTopicContentTarget||(e.FtTopicContentTarget={})).THIRD_PARTY="THIRD_PARTY",p.OFF_THE_GRID="OFF_THE_GRID";const d=e=>s(e)&&l(e.count)&&u(e.label)&&(null==e.lang||u(e.lang)),h=e=>s(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.label)&&u(e.key),y=e=>s(e)&&Array.isArray(e.filter)&&e.filter.every((e=>u(e)))&&Array.isArray(e.prior)&&e.prior.every((e=>u(e))),f=e=>s(e)&&o(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key),g=e=>s(e)&&l(e.totalResultsCount)&&o(e.lastPage)&&l(e.currentPage)&&l(e.totalClustersCount);var m;e.FtEditorialType=void 0,(m=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",m.BOOK="BOOK";const A=e=>["ARTICLE","BOOK"].includes(e);var T;e.FtOpenMode=void 0,(T=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",T.EXTERNAL="EXTERNAL";const b=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),F=e=>s(e)&&(null==e.perPage||l(e.perPage))&&l(e.page);var v;e.FtCollectionDocumentType=void 0,(v=e.FtCollectionDocumentType||(e.FtCollectionDocumentType={})).MAP="MAP",v.DOCUMENT="DOCUMENT",v.TOPIC="TOPIC",v.PERSONAL_BOOK="PERSONAL_BOOK",v.SHARED_BOOK="SHARED_BOOK";const R=e=>["MAP","DOCUMENT","TOPIC","PERSONAL_BOOK","SHARED_BOOK"].includes(e),U=e=>s(e)&&l(e.weight)&&u(e.value)&&u(e.key),C=e=>s(e)&&Array.isArray(e.entries)&&e.entries.every((e=>S(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),S=e=>s(e)&&(null==e.document||E(e.document))&&(null==e.topic||P(e.topic))&&D(e.type)&&(null==e.map||O(e.map)),E=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&b(e.openMode)&&u(e.documentUrl)&&u(e.mimeType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.viewerUrl)&&u(e.contentUrl)&&u(e.filename)&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.documentId)&&u(e.lastEditionDate)&&u(e.htmlExcerpt),O=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&(null==e.openMode||b(e.openMode))&&A(e.editorialType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.mapUrl)&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt),P=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&b(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>$(e)))&&u(e.title)&&u(e.mapTitle)&&u(e.topicUrl)&&u(e.contentUrl)&&u(e.htmlTitle)&&Array.isArray(e.breadcrumb)&&e.breadcrumb.every((e=>u(e)))&&u(e.tocId)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt);var w;e.FtSearchResultType=void 0,(w=e.FtSearchResultType||(e.FtSearchResultType={})).MAP="MAP",w.DOCUMENT="DOCUMENT",w.TOPIC="TOPIC";const D=e=>["MAP","DOCUMENT","TOPIC"].includes(e),I=e=>s(e)&&o(e.hierarchical)&&u(e.label)&&o(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>k(e))),M=e=>s(e)&&(null==e.maxDepth||l(e.maxDepth))&&u(e.id),k=e=>s(e)&&l(e.totalResultsCount)&&o(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>k(e)))&&u(e.label)&&u(e.value)&&o(e.selected),x=e=>s(e)&&u(e.key),L=e=>s(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),$=e=>s(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),H=e=>s(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||A(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&D(e.type)&&u(e.value),N=e=>"object"==typeof e&&null!=e,_=e=>"boolean"==typeof e,B=e=>"number"==typeof e,q=e=>"string"==typeof e,j=e=>N(e)&&(null==e.emailAddress||q(e.emailAddress))&&(null==e.displayName||q(e.displayName))&&Array.isArray(e.roles)&&q(e.userId),K="undefined"==typeof window?globalThis:window;function z(e){let t={};for(let r in e){let a=e[r];("object"!=typeof a||Array.isArray(a))&&(a={prior:a});for(let e of["prior","filter"])a[e]=Array.isArray(a[e])?a[e]:[a[e]],a[e]=a[e].map((e=>null!=e?""+e:"")).filter((e=>""!==e));t[r]=a}return t}function V(e){return`${e=e??K.__gwt_ft_moduleBase??K.fluidtopicsclient?.__moduleBase??K.__gwt_activeModules?.fluidtopicsclient?.moduleBase}-FluidTopicsUnauthenticatedUserSearchPreferences`}const J="undefined"==typeof window?globalThis:window;class G extends Error{status;statusText;body;constructor(e,t,r){super(`${e} - ${t}: ${r}`),this.status=e,this.statusText=t,this.body=r}}async function X(e){if(!e.ok)throw new G(e.status,e.statusText,await e.text());return e}function Y(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class Q{tenantBaseUrl;ftCallingApp;authorization={};get defaultHeaders(){return{...this.authorization,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t,r){this.tenantBaseUrl=e.trim().replace(/\/$/,""),r&&void 0!==J.location&&J.location.href.startsWith(this.tenantBaseUrl+"/")?this.ftCallingApp=t:this.ftCallingApp=`ft-public-api/${t}`}setApiKey(e){this.authorization={Authorization:"Bearer "+e}}setCredentials(e,t){var r;this.authorization={Authorization:"Basic "+(r=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(r).toString("base64"):btoa(r))}}clearAuthentication(){this.authorization={}}login(e,t){let r={login:e,password:t,rememberMe:!0};return this.post("/api/authentication/login",r).then((r=>(this.setCredentials(e,t),r)))}logout(){return this.post("/api/authentication/logout").then((()=>this.clearAuthentication()))}getCurrentSession(){return this.get("/api/authentication/current-session")}getMap(e){return this.get(`/api/khub/maps/${e}`)}getTableOfContent(e){return this.get(`/api/khub/maps/${e}/toc`)}getTopic(e,t){return this.get(`/api/khub/maps/${e}/topics/${t}`)}getTopicHTMLContent(e,t,r){return this.get(`/api/khub/maps/${e}/topics/${t}/content${r?"?target="+r:""}`)}getMapAttachments(e){return this.get(`/api/khub/maps/${e}/attachments`)}getMapAttachmentContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/attachments/${t}/content`)}getMapResources(e){return this.get(`/api/khub/maps/${e}/resources`)}getMapResourceContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/resources/${t}/content`)}getUnstructuredDocument(e){return this.get(`/api/khub/documents/${e}`)}getUnstructuredDocumentContent(e){return this.fetchRawData(`/api/khub/documents/${e}/content`)}getUnstructuredDocumentTextContent(e){return this.get(`/api/khub/documents/${e}/content/text`)}getCollectionDocuments(e,t){return this.get(`/api/users/${e}/collections/${t}/documents`)}getSuggestions(e){return this.post("/api/khub/suggest",e)}search(e){return this.post("/api/khub/clustered-search",e)}getAvailableSearchLocales(){return this.get("/api/khub/locales")}get(e){return this.makeRequest("GET",e)}post(e,t){return this.makeRequest("POST",e,t)}put(e,t){return this.makeRequest("PUT",e,t)}delete(e){return this.makeRequest("DELETE",e)}async fetch(e,t){const r=t;return e.startsWith("/")||(e="/"+e),await fetch(this.tenantBaseUrl+e,{...r??{},headers:{...this.defaultHeaders,...r?.headers??{}}})}async upload(e,t,r,a=(()=>{})){return new Promise(((n,i)=>{let s=new XMLHttpRequest;s.onload=()=>{if(s.status>=200&&s.status<300){let e="application/json"===s.getResponseHeader("Content-Type")?JSON.parse(s.responseText):s.responseText;n(e)}else i(new G(s.status,s.statusText,s.responseText))},s.upload.onprogress=e=>a(e),s.open(e,this.tenantBaseUrl+t,!0),s.send(r)}))}makeRequest(e,t,r){return this.fetch(t,{method:e,headers:{...null!=r?{"Content-Type":"application/json"}:{}},body:null!=r?JSON.stringify(r):void 0}).then(X).then(Y)}fetchRawData(e){return fetch(this.tenantBaseUrl+e,{headers:this.defaultHeaders}).then(X).then((e=>e.arrayBuffer()))}}e.FluidTopicsApi=Q,e.HttpError=G,e.addUnauthenticatedUserSearchPreferencesChangeHandler=function(e,t){if(K.localStorage){const r=V(t),a=t=>{t.storageArea===K.localStorage&&t.key===r&&e(JSON.parse(t.newValue??"{}"))};return K.addEventListener("storage",a),{removeHandler:()=>K.removeEventListener("storage",a)}}console.error("Cannot handle unauthenticated preferences: local storage is unavailable.")},e.default=Q,e.getUnauthenticatedUserSearchPreferences=function(e){if(K.localStorage)return JSON.parse(K.localStorage.getItem(V(e))??"{}");console.error("Cannot get unauthenticated preferences: local storage is unavailable.")},e.isFtAuthenticatedSession=e=>N(e)&&j(e.profile),e.isFtAuthenticationIdentifier=e=>s(e)&&u(e.identifier)&&u(e.realm),e.isFtCollectionDocument=e=>s(e)&&o(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&R(e.type),e.isFtCollectionDocumentType=R,e.isFtCredentials=e=>s(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&o(e.rememberMe)&&u(e.login),e.isFtEditorialType=A,e.isFtMap=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&b(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&A(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtMapAttachment=e=>N(e)&&q(e.file)&&(null==e.size||B(e.size))&&_(e.externalLink)&&q(e.name)&&q(e.id)&&(null==e.mimeType||q(e.mimeType))&&(null==e.viewerUrl||q(e.viewerUrl)),e.isFtMapResource=e=>s(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMetadata=h,e.isFtMetadataPreferenceConfiguration=y,e.isFtOpenMode=b,e.isFtPageRequest=F,e.isFtSearchFacet=I,e.isFtSearchFacetConf=M,e.isFtSearchFacetEntry=k,e.isFtSearchFilter=f,e.isFtSearchLocale=d,e.isFtSearchLocales=e=>s(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>d(e))),e.isFtSearchPreferencesConfiguration=e=>s(e)&&s(e.metadata)&&Object.keys(e.metadata).every((e=>u(e)))&&Object.values(e.metadata).every((e=>y(e))),e.isFtSearchPreset=e=>s(e)&&u(e.name)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSearchPrior=U,e.isFtSearchRequest=e=>s(e)&&u(e.query)&&F(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>x(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>U(e))))&&Array.isArray(e.facets)&&e.facets.every((e=>M(e))),e.isFtSearchResultCluster=C,e.isFtSearchResultClusterEntry=S,e.isFtSearchResultMap=O,e.isFtSearchResultTopic=P,e.isFtSearchResultType=D,e.isFtSearchResultUnstructuredDocument=E,e.isFtSearchResults=e=>s(e)&&(null==e.spellcheck||L(e.spellcheck))&&g(e.paging)&&Array.isArray(e.results)&&e.results.every((e=>C(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>I(e))),e.isFtSearchResultsPageInfo=g,e.isFtSearchSortCriterion=x,e.isFtSession=e=>N(e)&&B(e.idleTimeoutInMillis)&&(null==e.profile||j(e.profile))&&_(e.sessionAuthenticated),e.isFtSpellcheck=L,e.isFtSuggestRequest=e=>s(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>f(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>x(e)))&&(null==e.maxCount||l(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>U(e)))),e.isFtSuggestResult=H,e.isFtSuggestResults=e=>s(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>H(e))),e.isFtTocNode=c,e.isFtTopic=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID"].includes(e),e.isFtTopicResource=$,e.isFtUnstructuredDocument=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.openMode)&&(null==e.description||u(e.description))&&u(e.mimeType)&&(null==e.baseId||u(e.baseId))&&(null==e.clusterId||u(e.clusterId))&&u(e.contentApiEndpoint)&&u(e.title)&&(null==e.lastPublication||u(e.lastPublication))&&u(e.viewerUrl)&&u(e.lastEdition)&&u(e.filename)&&(null==e.originId||u(e.originId))&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtUserProfile=j,e.setUnauthenticatedUserSearchPreferences=function(e,t){if(K.localStorage){let r={...e,metadata:z(e.metadata??{})};const a=V(t),n=JSON.stringify(r);return K.localStorage.setItem(a,n),K.dispatchEvent(new StorageEvent("storage",{key:a,newValue:n,storageArea:K.localStorage,url:K.location.href})),r}console.error("Cannot set unauthenticated preferences: local storage is unavailable.")}}));
|
package/dist/mjs/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import "cross-fetch/polyfill";
|
|
2
|
-
import { FtCollectionDocument, FtMap, FtMapResource,
|
|
2
|
+
import { FtCollectionDocument, FtMap, FtMapResource, FtSearchLocales, FtSearchRequest, FtSearchResults, FtSuggestRequest, FtSuggestResults, FtTocNode, FtTopic, FtTopicContentTarget, FtUnstructuredDocument } from "./types/ft-common/public";
|
|
3
3
|
import { FtAuthenticatedSession, FtMapAttachment, FtSession } from "./types/ft-server/public";
|
|
4
4
|
export * from "./types/ft-common/public";
|
|
5
5
|
export * from "./types/ft-server/public";
|
|
6
|
+
export * from "./preferences/unauthenticated-preferences";
|
|
6
7
|
export declare class HttpError extends Error {
|
|
7
8
|
readonly status: number;
|
|
8
9
|
readonly statusText: string;
|
|
@@ -46,7 +47,3 @@ export declare class FluidTopicsApi {
|
|
|
46
47
|
private fetchRawData;
|
|
47
48
|
}
|
|
48
49
|
export default FluidTopicsApi;
|
|
49
|
-
export declare function setUnauthenticatedUserSearchPreferences(input: FtSearchPreferencesConfiguration, tenantBaseUrl?: string): {
|
|
50
|
-
metadata: Record<string, FtMetadataPreferenceConfiguration>;
|
|
51
|
-
};
|
|
52
|
-
export declare function getUnauthenticatedUserSearchPreferences(tenantBaseUrl?: string): FtSearchPreferencesConfiguration;
|
package/dist/mjs/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import "cross-fetch/polyfill";
|
|
|
2
2
|
const wnd = (typeof window === "undefined" ? globalThis : window);
|
|
3
3
|
export * from "./types/ft-common/public";
|
|
4
4
|
export * from "./types/ft-server/public";
|
|
5
|
+
export * from "./preferences/unauthenticated-preferences";
|
|
5
6
|
function toBase64(s) {
|
|
6
7
|
return typeof Buffer !== "undefined" ? Buffer.from(s).toString("base64") : btoa(s);
|
|
7
8
|
}
|
|
@@ -177,49 +178,3 @@ export class FluidTopicsApi {
|
|
|
177
178
|
}
|
|
178
179
|
}
|
|
179
180
|
export default FluidTopicsApi;
|
|
180
|
-
function normalizeMetadataPreferences(metadata) {
|
|
181
|
-
let normalized = {};
|
|
182
|
-
for (let key in metadata) {
|
|
183
|
-
let values = metadata[key];
|
|
184
|
-
if (typeof values !== "object" || Array.isArray(values)) {
|
|
185
|
-
values = { prior: values };
|
|
186
|
-
}
|
|
187
|
-
for (let property of ["prior", "filter"]) {
|
|
188
|
-
values[property] = Array.isArray(values[property]) ? values[property] : [values[property]];
|
|
189
|
-
values[property] = values[property]
|
|
190
|
-
.map(v => v != null ? "" + v : "")
|
|
191
|
-
.filter(v => v !== "");
|
|
192
|
-
}
|
|
193
|
-
normalized[key] = values;
|
|
194
|
-
}
|
|
195
|
-
return normalized;
|
|
196
|
-
}
|
|
197
|
-
export function setUnauthenticatedUserSearchPreferences(input, tenantBaseUrl) {
|
|
198
|
-
if (wnd.localStorage) {
|
|
199
|
-
//@ts-ignore
|
|
200
|
-
tenantBaseUrl = tenantBaseUrl ?? wnd.__gwt_ft_moduleBase ?? wnd.fluidtopicsclient?.__moduleBase ?? wnd.__gwt_activeModules?.fluidtopicsclient?.moduleBase;
|
|
201
|
-
let preferences = {
|
|
202
|
-
...input,
|
|
203
|
-
metadata: normalizeMetadataPreferences(input.metadata ?? {})
|
|
204
|
-
};
|
|
205
|
-
const key = `${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`;
|
|
206
|
-
const newValue = JSON.stringify(preferences);
|
|
207
|
-
wnd.localStorage.setItem(key, newValue);
|
|
208
|
-
wnd.dispatchEvent(new StorageEvent("storage", {
|
|
209
|
-
key,
|
|
210
|
-
newValue,
|
|
211
|
-
storageArea: wnd.localStorage,
|
|
212
|
-
url: wnd.location.href
|
|
213
|
-
}));
|
|
214
|
-
return preferences;
|
|
215
|
-
}
|
|
216
|
-
console.error("Cannot set unauthenticated preferences: local storage is unavailable.");
|
|
217
|
-
}
|
|
218
|
-
export function getUnauthenticatedUserSearchPreferences(tenantBaseUrl) {
|
|
219
|
-
if (wnd.localStorage) {
|
|
220
|
-
//@ts-ignore
|
|
221
|
-
tenantBaseUrl = tenantBaseUrl ?? wnd.__gwt_ft_moduleBase ?? wnd.fluidtopicsclient?.__moduleBase ?? wnd.__gwt_activeModules?.fluidtopicsclient?.moduleBase;
|
|
222
|
-
return JSON.parse(wnd.localStorage.getItem(`${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`) ?? "{}");
|
|
223
|
-
}
|
|
224
|
-
console.error("Cannot get unauthenticated preferences: local storage is unavailable.");
|
|
225
|
-
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FtMetadataPreferenceConfiguration, FtSearchPreferencesConfiguration } from "../types/ft-common/public";
|
|
2
|
+
export declare function setUnauthenticatedUserSearchPreferences(input: FtSearchPreferencesConfiguration, tenantBaseUrl?: string): {
|
|
3
|
+
metadata: Record<string, FtMetadataPreferenceConfiguration>;
|
|
4
|
+
};
|
|
5
|
+
export declare function getUnauthenticatedUserSearchPreferences(tenantBaseUrl?: string): FtSearchPreferencesConfiguration;
|
|
6
|
+
export declare type HandlerRegistration = {
|
|
7
|
+
removeHandler: () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare function addUnauthenticatedUserSearchPreferencesChangeHandler(handler: (newValue: FtSearchPreferencesConfiguration) => void, tenantBaseUrl?: string): HandlerRegistration;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const wnd = (typeof window === "undefined" ? globalThis : window);
|
|
2
|
+
function normalizeMetadataPreferences(metadata) {
|
|
3
|
+
let normalized = {};
|
|
4
|
+
for (let key in metadata) {
|
|
5
|
+
let values = metadata[key];
|
|
6
|
+
if (typeof values !== "object" || Array.isArray(values)) {
|
|
7
|
+
values = { prior: values };
|
|
8
|
+
}
|
|
9
|
+
for (let property of ["prior", "filter"]) {
|
|
10
|
+
values[property] = Array.isArray(values[property]) ? values[property] : [values[property]];
|
|
11
|
+
values[property] = values[property]
|
|
12
|
+
.map(v => v != null ? "" + v : "")
|
|
13
|
+
.filter(v => v !== "");
|
|
14
|
+
}
|
|
15
|
+
normalized[key] = values;
|
|
16
|
+
}
|
|
17
|
+
return normalized;
|
|
18
|
+
}
|
|
19
|
+
function getStorageKey(tenantBaseUrl) {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
tenantBaseUrl = tenantBaseUrl ?? wnd.__gwt_ft_moduleBase ?? wnd.fluidtopicsclient?.__moduleBase ?? wnd.__gwt_activeModules?.fluidtopicsclient?.moduleBase;
|
|
22
|
+
return `${tenantBaseUrl}-FluidTopicsUnauthenticatedUserSearchPreferences`;
|
|
23
|
+
}
|
|
24
|
+
export function setUnauthenticatedUserSearchPreferences(input, tenantBaseUrl) {
|
|
25
|
+
if (wnd.localStorage) {
|
|
26
|
+
let preferences = {
|
|
27
|
+
...input,
|
|
28
|
+
metadata: normalizeMetadataPreferences(input.metadata ?? {})
|
|
29
|
+
};
|
|
30
|
+
const key = getStorageKey(tenantBaseUrl);
|
|
31
|
+
const newValue = JSON.stringify(preferences);
|
|
32
|
+
wnd.localStorage.setItem(key, newValue);
|
|
33
|
+
wnd.dispatchEvent(new StorageEvent("storage", {
|
|
34
|
+
key,
|
|
35
|
+
newValue,
|
|
36
|
+
storageArea: wnd.localStorage,
|
|
37
|
+
url: wnd.location.href
|
|
38
|
+
}));
|
|
39
|
+
return preferences;
|
|
40
|
+
}
|
|
41
|
+
console.error("Cannot set unauthenticated preferences: local storage is unavailable.");
|
|
42
|
+
}
|
|
43
|
+
export function getUnauthenticatedUserSearchPreferences(tenantBaseUrl) {
|
|
44
|
+
if (wnd.localStorage) {
|
|
45
|
+
return JSON.parse(wnd.localStorage.getItem(getStorageKey(tenantBaseUrl)) ?? "{}");
|
|
46
|
+
}
|
|
47
|
+
console.error("Cannot get unauthenticated preferences: local storage is unavailable.");
|
|
48
|
+
}
|
|
49
|
+
export function addUnauthenticatedUserSearchPreferencesChangeHandler(handler, tenantBaseUrl) {
|
|
50
|
+
if (wnd.localStorage) {
|
|
51
|
+
const key = getStorageKey(tenantBaseUrl);
|
|
52
|
+
const eventListener = (event) => {
|
|
53
|
+
if (event.storageArea === wnd.localStorage && event.key === key) {
|
|
54
|
+
handler(JSON.parse(event.newValue ?? "{}"));
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
wnd.addEventListener("storage", eventListener);
|
|
58
|
+
return {
|
|
59
|
+
removeHandler: () => wnd.removeEventListener("storage", eventListener)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
console.error("Cannot handle unauthenticated preferences: local storage is unavailable.");
|
|
63
|
+
}
|