@fluid-topics/public-api 1.0.31 → 1.0.33

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 CHANGED
@@ -126,12 +126,20 @@ class FluidTopicsApi {
126
126
  configuration: {
127
127
  reader: `api/configuration/reader`
128
128
  },
129
+ locales: {
130
+ ui: `api/locales/ui`
131
+ },
129
132
  messages: {
130
133
  locale: (locale) => ({
131
134
  fluidTopics: {
132
135
  contextName: (contextName) => ({
133
136
  endpoint: `api/messages/${locale}/fluid-topics/${contextName}`,
134
137
  })
138
+ },
139
+ custom: {
140
+ contextName: (contextName) => ({
141
+ endpoint: `api/messages/${locale}/custom/${contextName}`,
142
+ })
135
143
  }
136
144
  })
137
145
  },
@@ -234,6 +242,9 @@ class FluidTopicsApi {
234
242
  getAvailableSearchLocales() {
235
243
  return this.get(this.endpoints.khub.locales);
236
244
  }
245
+ getAvailableUiLocales() {
246
+ return this.get(this.endpoints.khub.locales);
247
+ }
237
248
  getMapRating(mapId) {
238
249
  return this.get(this.endpoints.khub.maps.mapId(mapId).rating);
239
250
  }
@@ -272,6 +283,9 @@ class FluidTopicsApi {
272
283
  getFluidTopicsMessageContext(locale, name) {
273
284
  return this.get(this.endpoints.messages.locale(locale).fluidTopics.contextName(name).endpoint);
274
285
  }
286
+ getCustomMessageContext(locale, name) {
287
+ return this.get(this.endpoints.messages.locale(locale).custom.contextName(name).endpoint);
288
+ }
275
289
  get(endpoint) {
276
290
  return this.makeRequest("GET", endpoint);
277
291
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFtTopicResource = exports.isFtSpellcheck = exports.isFtSearchSortCriterion = exports.isFtSearchFacetEntry = exports.isFtSearchFacetConf = exports.isFtSearchFacet = exports.isFtSearchResultType = exports.FtSearchResultType = exports.isFtSearchResultTopic = exports.isFtSearchResultMap = exports.isFtSearchResultUnstructuredDocument = exports.isFtSearchResultClusterEntry = exports.isFtSearchResultCluster = exports.isFtSearchRequest = exports.isFtSearchPrior = exports.isFtSearchResults = exports.isFtCollectionDocumentType = exports.FtCollectionDocumentType = exports.isFtPageRequest = exports.isFtOpenMode = exports.FtOpenMode = exports.isFtEditorialType = exports.FtEditorialType = exports.isFtSearchResultsPageInfo = exports.isFtSearchPreset = exports.isFtSearchFilter = exports.isFtSearchPreferencesConfiguration = exports.isFtMetadataPreferenceConfiguration = exports.isFtMapResource = exports.isFtTopicsRatingSummary = exports.isFtTopicRating = exports.isFtRatingSummary = exports.isFtRatingCreation = exports.isFtPublicationRatingSummary = exports.isFtPublicationRating = exports.isFtRatingType = exports.FtRatingType = exports.isFtMetadata = exports.isFtSearchLocales = exports.isFtSearchLocale = exports.isFtFeedbackCreation = exports.isFtTopicContentTarget = exports.FtTopicContentTarget = exports.isFtUnstructuredDocument = exports.isFtTopic = exports.isFtTocNode = exports.isFtMapStyles = exports.isFtMap = exports.isFtCollectionDocument = exports.isFtCredentials = void 0;
4
- exports.isFtAuthenticationIdentifier = exports.isFtUserRole = exports.FtUserRole = exports.isFtSuggestResults = exports.isFtSuggestResult = exports.isFtSuggestRequest = void 0;
3
+ exports.isFtSearchFacet = exports.isFtSearchResultType = exports.FtSearchResultType = exports.isFtSearchResultTopic = exports.isFtSearchResultMap = exports.isFtSearchResultUnstructuredDocument = exports.isFtSearchResultClusterEntry = exports.isFtSearchResultCluster = exports.isFtSearchRequest = exports.isFtSearchPrior = exports.isFtSearchResults = exports.isFtCollectionDocumentType = exports.FtCollectionDocumentType = exports.isFtPageRequest = exports.isFtOpenMode = exports.FtOpenMode = exports.isFtEditorialType = exports.FtEditorialType = exports.isFtSearchResultsPageInfo = exports.isFtSearchPreset = exports.isFtSearchFilter = exports.isFtSearchPreferencesConfiguration = exports.isFtMetadataPreferenceConfiguration = exports.isFtMapResource = exports.isFtTopicsRatingSummary = exports.isFtTopicRating = exports.isFtRatingSummary = exports.isFtRatingCreation = exports.isFtPublicationRatingSummary = exports.isFtPublicationRating = exports.isFtRatingType = exports.FtRatingType = exports.isFtMetadata = exports.isFtUiLocale = exports.isFtMessageContext = exports.isFtSearchLocales = exports.isFtSearchLocale = exports.isFtFeedbackCreation = exports.isFtTopicContentTarget = exports.FtTopicContentTarget = exports.isFtUnstructuredDocument = exports.isFtTopic = exports.isFtTocNode = exports.isFtMapStyles = exports.isFtMap = exports.isFtCollectionDocument = exports.isFtPersonalBookTopicLinkCreation = exports.isFtPersonalBookNodeCreation = exports.isFtPersonalBookCreation = exports.isFtCredentials = void 0;
4
+ exports.isFtUserProfile = exports.isFtSession = exports.isFtAuthenticatedSession = exports.isFtAuthenticationIdentifier = exports.isFtUserRole = exports.FtUserRole = exports.isFtSuggestResults = exports.isFtSuggestResult = exports.isFtSuggestRequest = exports.isFtTopicResource = exports.isFtSpellcheck = exports.isFtSearchSortCriterion = exports.isFtSearchFacetEntry = exports.isFtSearchFacetConf = void 0;
5
5
  const isObject = (o) => typeof o === "object" && o != null;
6
6
  const isBoolean = (o) => typeof o === "boolean";
7
7
  const isNumber = (o) => typeof o === "number";
@@ -14,6 +14,31 @@ const isFtCredentials = (o) => {
14
14
  && (isString(o.login));
15
15
  };
16
16
  exports.isFtCredentials = isFtCredentials;
17
+ const isFtPersonalBookCreation = (o) => {
18
+ return isObject(o)
19
+ && ((Array.isArray(o.nodes)
20
+ && o.nodes.every((v) => (0, exports.isFtPersonalBookNodeCreation)(v))))
21
+ && (isString(o.description))
22
+ && (isString(o.title));
23
+ };
24
+ exports.isFtPersonalBookCreation = isFtPersonalBookCreation;
25
+ const isFtPersonalBookNodeCreation = (o) => {
26
+ return isObject(o)
27
+ && (isString(o.notes))
28
+ && ((Array.isArray(o.children)
29
+ && o.children.every((v) => (0, exports.isFtPersonalBookNodeCreation)(v))))
30
+ && (o.topicLink == null || (0, exports.isFtPersonalBookTopicLinkCreation)(o.topicLink))
31
+ && (isString(o.title))
32
+ && (o.htmlContent == null || isString(o.htmlContent));
33
+ };
34
+ exports.isFtPersonalBookNodeCreation = isFtPersonalBookNodeCreation;
35
+ const isFtPersonalBookTopicLinkCreation = (o) => {
36
+ return isObject(o)
37
+ && (isString(o.tocId))
38
+ && (isString(o.contentId))
39
+ && (isString(o.mapId));
40
+ };
41
+ exports.isFtPersonalBookTopicLinkCreation = isFtPersonalBookTopicLinkCreation;
17
42
  const isFtCollectionDocument = (o) => {
18
43
  return isObject(o)
19
44
  && (isBoolean(o.deleted))
@@ -132,6 +157,22 @@ const isFtSearchLocales = (o) => {
132
157
  && o.contentLocales.every((v) => (0, exports.isFtSearchLocale)(v))));
133
158
  };
134
159
  exports.isFtSearchLocales = isFtSearchLocales;
160
+ const isFtMessageContext = (o) => {
161
+ return isObject(o)
162
+ && (isString(o.name))
163
+ && ((isObject(o.messages)
164
+ && Object.keys(o.messages).every((k) => isString(k))
165
+ && Object.values(o.messages).every((v) => isString(v))))
166
+ && (isString(o.locale));
167
+ };
168
+ exports.isFtMessageContext = isFtMessageContext;
169
+ const isFtUiLocale = (o) => {
170
+ return isObject(o)
171
+ && (isString(o.displayName))
172
+ && (isString(o.languageTag))
173
+ && (isBoolean(o.translated));
174
+ };
175
+ exports.isFtUiLocale = isFtUiLocale;
135
176
  const isFtMetadata = (o) => {
136
177
  return isObject(o)
137
178
  && ((Array.isArray(o.values)
@@ -507,3 +548,26 @@ const isFtAuthenticationIdentifier = (o) => {
507
548
  && (isString(o.realm));
508
549
  };
509
550
  exports.isFtAuthenticationIdentifier = isFtAuthenticationIdentifier;
551
+ const isFtAuthenticatedSession = (o) => {
552
+ return isObject(o)
553
+ && ((0, exports.isFtAuthenticationIdentifier)(o.authenticationIdentifier))
554
+ && ((0, exports.isFtUserProfile)(o.profile));
555
+ };
556
+ exports.isFtAuthenticatedSession = isFtAuthenticatedSession;
557
+ const isFtSession = (o) => {
558
+ return isObject(o)
559
+ && (o.authenticationIdentifier == null || (0, exports.isFtAuthenticationIdentifier)(o.authenticationIdentifier))
560
+ && (isNumber(o.idleTimeoutInMillis))
561
+ && ((0, exports.isFtUserProfile)(o.profile))
562
+ && (isBoolean(o.sessionAuthenticated));
563
+ };
564
+ exports.isFtSession = isFtSession;
565
+ const isFtUserProfile = (o) => {
566
+ return isObject(o)
567
+ && (o.emailAddress == null || isString(o.emailAddress))
568
+ && (o.displayName == null || isString(o.displayName))
569
+ && ((Array.isArray(o.roles)
570
+ && o.roles.every((v) => (0, exports.isFtUserRole)(v))))
571
+ && (o.userId == null || isString(o.userId));
572
+ };
573
+ exports.isFtUserProfile = isFtUserProfile;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFtMessageContext = exports.isFtPaginationConfiguration = exports.isFtPaginatedTocNode = exports.isFtPaginatedToc = exports.isFtPageConfiguration = exports.isFtMapAttachment = exports.isFtUserProfile = exports.isFtSession = exports.isFtAuthenticatedSession = exports.isFtReaderFeedbackConfiguration = exports.isFtReaderConfiguration = void 0;
3
+ exports.isFtPaginationConfiguration = exports.isFtPaginatedTocNode = exports.isFtPaginatedToc = exports.isFtPageConfiguration = exports.isFtMapAttachment = exports.isFtReaderFeedbackConfiguration = exports.isFtReaderConfiguration = void 0;
4
4
  const isObject = (o) => typeof o === "object" && o != null;
5
5
  const isBoolean = (o) => typeof o === "boolean";
6
6
  const isNumber = (o) => typeof o === "number";
@@ -21,26 +21,6 @@ const isFtReaderFeedbackConfiguration = (o) => {
21
21
  && o.subjectMetadataIds.every((v) => isString(v))));
22
22
  };
23
23
  exports.isFtReaderFeedbackConfiguration = isFtReaderFeedbackConfiguration;
24
- const isFtAuthenticatedSession = (o) => {
25
- return isObject(o)
26
- && ((0, exports.isFtUserProfile)(o.profile));
27
- };
28
- exports.isFtAuthenticatedSession = isFtAuthenticatedSession;
29
- const isFtSession = (o) => {
30
- return isObject(o)
31
- && (isNumber(o.idleTimeoutInMillis))
32
- && ((0, exports.isFtUserProfile)(o.profile))
33
- && (isBoolean(o.sessionAuthenticated));
34
- };
35
- exports.isFtSession = isFtSession;
36
- const isFtUserProfile = (o) => {
37
- return isObject(o)
38
- && (o.emailAddress == null || isString(o.emailAddress))
39
- && (o.displayName == null || isString(o.displayName))
40
- && ((Array.isArray(o.roles)))
41
- && (o.userId == null || isString(o.userId));
42
- };
43
- exports.isFtUserProfile = isFtUserProfile;
44
24
  const isFtMapAttachment = (o) => {
45
25
  return isObject(o)
46
26
  && (isString(o.file))
@@ -84,12 +64,3 @@ const isFtPaginationConfiguration = (o) => {
84
64
  && (isBoolean(o.splitCurrentPageToc));
85
65
  };
86
66
  exports.isFtPaginationConfiguration = isFtPaginationConfiguration;
87
- const isFtMessageContext = (o) => {
88
- return isObject(o)
89
- && (isString(o.name))
90
- && ((isObject(o.messages)
91
- && Object.keys(o.messages).every((k) => isString(k))
92
- && Object.values(o.messages).every((v) => isString(v))))
93
- && (isString(o.locale));
94
- };
95
- exports.isFtMessageContext = isFtMessageContext;
@@ -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:{},i={exports:{}},s={exports:{}};!function(e,t){var i=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==i)return i;throw new Error("unable to locate global object")}();e.exports=t=i.fetch,i.fetch&&(t.default=i.fetch.bind(i)),t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response}(s,s.exports),function(e,t){const i=s.exports,a=i.default||i,n=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),a.call(this,e,t)};n.ponyfill=!0,e.exports=t=n,t.fetch=n,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,t.default=n}(i,i.exports);const a=i.exports,n=a.fetch.bind({});n.polyfill=!0,t.fetch||(t.fetch=n,t.Response=a.Response,t.Headers=a.Headers,t.Request=a.Request);const r=e=>"object"==typeof e&&null!=e,o=e=>"boolean"==typeof e,l=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>r(e)&&u(e.topicStylesheetUrl)&&u(e.titleStylesheetUrl)&&Array.isArray(e.customCssClasses)&&e.customCssClasses.every((e=>u(e))),d=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&(null==e.hasRating||o(e.hasRating))&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>d(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",p.CONTENT_PACKAGER="CONTENT_PACKAGER",p.PAGES="PAGES",p.DESIGNED_READER="DESIGNED_READER";const h=e=>r(e)&&l(e.count)&&u(e.label)&&(null==e.lang||u(e.lang)),y=e=>r(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&(null==e.hierarchicalValues||Array.isArray(e.hierarchicalValues)&&e.hierarchicalValues.every((e=>Array.isArray(e)&&e.every((e=>u(e))))))&&u(e.label)&&u(e.key);var g;e.FtRatingType=void 0,(g=e.FtRatingType||(e.FtRatingType={})).STARS="STARS",g.LIKE="LIKE",g.DICHOTOMOUS="DICHOTOMOUS",g.NO_RATING="NO_RATING";const m=e=>["STARS","LIKE","DICHOTOMOUS","NO_RATING"].includes(e),A=e=>r(e)&&u(e.date)&&m(e.type)&&l(e.value),f=e=>r(e)&&(null==e.rating||A(e.rating))&&m(e.type),R=e=>r(e)&&u(e.date)&&u(e.tocId)&&m(e.type)&&l(e.value),E=e=>r(e)&&Array.isArray(e.ratings)&&e.ratings.every((e=>R(e)))&&m(e.type),T=e=>r(e)&&Array.isArray(e.filter)&&e.filter.every((e=>u(e)))&&Array.isArray(e.prior)&&e.prior.every((e=>u(e))),S=e=>r(e)&&o(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key),b=e=>r(e)&&l(e.totalResultsCount)&&o(e.lastPage)&&l(e.currentPage)&&l(e.totalClustersCount);var I;e.FtEditorialType=void 0,(I=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",I.BOOK="BOOK";const U=e=>["ARTICLE","BOOK"].includes(e);var F;e.FtOpenMode=void 0,(F=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",F.EXTERNAL="EXTERNAL";const O=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),C=e=>r(e)&&(null==e.perPage||l(e.perPage))&&l(e.page);var _;e.FtCollectionDocumentType=void 0,(_=e.FtCollectionDocumentType||(e.FtCollectionDocumentType={})).MAP="MAP",_.DOCUMENT="DOCUMENT",_.TOPIC="TOPIC",_.PERSONAL_BOOK="PERSONAL_BOOK",_.SHARED_BOOK="SHARED_BOOK";const v=e=>["MAP","DOCUMENT","TOPIC","PERSONAL_BOOK","SHARED_BOOK"].includes(e),k=e=>r(e)&&l(e.weight)&&u(e.value)&&u(e.key),P=e=>r(e)&&Array.isArray(e.entries)&&e.entries.every((e=>D(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),D=e=>r(e)&&(null==e.document||N(e.document))&&(null==e.topic||M(e.topic))&&B(e.type)&&(null==e.map||L(e.map)),N=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(e)))&&O(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),L=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(e)))&&(null==e.openMode||O(e.openMode))&&U(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),M=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(e)))&&O(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>G(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 B=e=>["MAP","DOCUMENT","TOPIC"].includes(e),H=e=>r(e)&&o(e.hierarchical)&&u(e.label)&&o(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>$(e))),x=e=>r(e)&&(null==e.maxDepth||l(e.maxDepth))&&u(e.id),$=e=>r(e)&&l(e.totalResultsCount)&&o(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>$(e)))&&u(e.label)&&u(e.value)&&o(e.selected),K=e=>r(e)&&u(e.key),V=e=>r(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),G=e=>r(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),q=e=>r(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||U(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&B(e.type)&&u(e.value);var j;e.FtUserRole=void 0,(j=e.FtUserRole||(e.FtUserRole={})).PERSONAL_BOOK_USER="PERSONAL_BOOK_USER",j.PERSONAL_BOOK_SHARE_USER="PERSONAL_BOOK_SHARE_USER",j.HTML_EXPORT_USER="HTML_EXPORT_USER",j.PDF_EXPORT_USER="PDF_EXPORT_USER",j.SAVED_SEARCH_USER="SAVED_SEARCH_USER",j.COLLECTION_USER="COLLECTION_USER",j.OFFLINE_USER="OFFLINE_USER",j.ANALYTICS_USER="ANALYTICS_USER",j.BETA_USER="BETA_USER",j.DEBUG_USER="DEBUG_USER",j.PRINT_USER="PRINT_USER",j.RATING_USER="RATING_USER",j.FEEDBACK_USER="FEEDBACK_USER",j.CONTENT_PUBLISHER="CONTENT_PUBLISHER",j.KHUB_ADMIN="KHUB_ADMIN",j.USERS_ADMIN="USERS_ADMIN",j.PORTAL_ADMIN="PORTAL_ADMIN",j.ADMIN="ADMIN",j.DEVELOPER="DEVELOPER";const z=e=>"object"==typeof e&&null!=e,X=e=>"boolean"==typeof e,Y=e=>"number"==typeof e,J=e=>"string"==typeof e,Q=e=>z(e)&&X(e.mailsSentByFluidTopics)&&Array.isArray(e.recipients)&&e.recipients.every((e=>J(e)))&&Array.isArray(e.subjectMetadataIds)&&e.subjectMetadataIds.every((e=>J(e))),W=e=>z(e)&&(null==e.emailAddress||J(e.emailAddress))&&(null==e.displayName||J(e.displayName))&&Array.isArray(e.roles)&&(null==e.userId||J(e.userId)),Z=e=>z(e)&&(null==e.parentsVisibility||Array.isArray(e.parentsVisibility)&&e.parentsVisibility.every((e=>X(e))))&&X(e.isVisible),ee=e=>z(e)&&(null==e.prettyUrl||J(e.prettyUrl))&&(null==e.hasRating||X(e.hasRating))&&(null==e.pageToc||Array.isArray(e.pageToc))&&(null==e.tocId||J(e.tocId))&&Array.isArray(e.children)&&e.children.every((e=>ee(e)))&&(null==e.pageConfiguration||Z(e.pageConfiguration))&&(null==e.contentId||J(e.contentId))&&(null==e.title||J(e.title)),te=e=>z(e)&&X(e.splitCurrentPageToc),ie="undefined"==typeof window?globalThis:window;function se(e){let t={};for(let i in e){let s=e[i];("object"!=typeof s||Array.isArray(s))&&(s={prior:s});for(let e of["prior","filter"])s[e]=Array.isArray(s[e])?s[e]:[s[e]],s[e]=s[e].map((e=>null!=e?""+e:"")).filter((e=>""!==e));t[i]=s}return t}function ae(e){return`${e}-FluidTopicsUnauthenticatedUserSearchPreferences`}const ne="undefined"==typeof window?globalThis:window;class re extends Error{status;statusText;body;constructor(e,t,i){super(`${e} - ${t}: ${i}`),this.status=e,this.statusText=t,this.body=i}}async function oe(e){if(!e.ok)throw new re(e.status,e.statusText,await e.text());return e}function le(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class ue{tenantBaseUrl;ftCallingApp;authorization;searchLabel;endpoints={authentication:{login:"api/authentication/login",logout:"api/authentication/logout",currentSession:"api/authentication/current-session"},khub:{maps:{mapId:e=>({info:`api/khub/maps/${e}`,toc:`api/khub/maps/${e}/toc`,pages:`api/khub/maps/${e}/pages`,feedback:`api/khub/maps/${e}/feedback`,rating:`api/khub/maps/${e}/rating`,attachments:{list:`api/khub/maps/${e}/attachments`,attachmentId:t=>({content:`api/khub/maps/${e}/attachments/${t}/content`})},resources:{list:`api/khub/maps/${e}/resources`,resourceId:t=>({content:`api/khub/maps/${e}/resources/${t}/content`})},topics:{contentId:t=>({info:`api/khub/maps/${e}/topics/${t}`,content:`api/khub/maps/${e}/topics/${t}/content`}),tocId:t=>({feedback:`api/khub/maps/${e}/topics/${t}/feedback`,rating:`api/khub/maps/${e}/topics/${t}/rating`})}})},documents:{documentId:e=>({info:`api/khub/documents/${e}`,content:`api/khub/documents/${e}/content`,text:`api/khub/documents/${e}/content/text`,feedback:`api/khub/documents/${e}/feedback`,rating:`api/khub/documents/${e}/rating`})},suggest:"api/khub/suggest",clusteredSearch:"api/khub/clustered-search",locales:"api/khub/locales"},users:{userId:e=>({collections:{collectionId:t=>({documents:`api/users/${e}/collections/${t}/documents`})}})},stylesheets:{fonts:"api/stylesheets/fonts.css",theme:"api/stylesheets/theme.css",content:{title:"api/stylesheets/content/title.css",topic:"api/stylesheets/content/topic.css"}},configuration:{reader:"api/configuration/reader"},messages:{locale:e=>({fluidTopics:{contextName:t=>({endpoint:`api/messages/${e}/fluid-topics/${t}`})}})}};get defaultHeaders(){return{...this.authorization,...this.searchLabel,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t,i){e=(e??ne.__gwt_ft_moduleBase??ne.fluidtopicsclient?.__moduleBase??ne.__gwt_activeModules?.fluidtopicsclient?.moduleBase??"").trim(),this.tenantBaseUrl=e.endsWith("/")?e:e+"/",i&&void 0!==ne.location&&ne.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 i;this.authorization={Authorization:"Basic "+(i=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(i).toString("base64"):btoa(i))}}clearAuthentication(){this.authorization=void 0}setSearchLabel(e){this.searchLabel={"FT-search-label":e}}clearSearchLabel(){this.searchLabel=void 0}login(e,t){let i={login:e,password:t,rememberMe:!0};return this.post(this.endpoints.authentication.login,i).then((i=>(this.setCredentials(e,t),i)))}logout(){return this.post(this.endpoints.authentication.logout).then((()=>this.clearAuthentication()))}getCurrentSession(){return this.get(this.endpoints.authentication.currentSession)}getReaderConfiguration(){return this.get(this.endpoints.configuration.reader)}getMap(e){return this.get(this.endpoints.khub.maps.mapId(e).info)}getTableOfContent(e){return this.get(this.endpoints.khub.maps.mapId(e).toc)}getPages(e){return this.get(this.endpoints.khub.maps.mapId(e).pages)}getTopic(e,t){return this.get(this.endpoints.khub.maps.mapId(e).topics.contentId(t).info)}getTopicHTMLContent(e,t,i){return this.get(this.endpoints.khub.maps.mapId(e).topics.contentId(t).content+(i?"?target="+i:""))}getMapAttachments(e){return this.get(this.endpoints.khub.maps.mapId(e).attachments.list)}getMapAttachmentContent(e,t){return this.fetchRawData(this.endpoints.khub.maps.mapId(e).attachments.attachmentId(t).content)}getMapResources(e){return this.get(this.endpoints.khub.maps.mapId(e).resources.list)}getMapResourceContent(e,t){return this.fetchRawData(this.endpoints.khub.maps.mapId(e).resources.resourceId(t).content)}getUnstructuredDocument(e){return this.get(this.endpoints.khub.documents.documentId(e).info)}getUnstructuredDocumentContent(e){return this.fetchRawData(this.endpoints.khub.documents.documentId(e).content)}getUnstructuredDocumentTextContent(e){return this.get(this.endpoints.khub.documents.documentId(e).text)}getCollectionDocuments(e,t){return this.get(this.endpoints.users.userId(e).collections.collectionId(t).documents)}getSuggestions(e){return this.post(this.endpoints.khub.suggest,e)}search(e){return this.post(this.endpoints.khub.clusteredSearch,e)}getAvailableSearchLocales(){return this.get(this.endpoints.khub.locales)}getMapRating(e){return this.get(this.endpoints.khub.maps.mapId(e).rating)}rateMap(e,t,i){return this.post(this.endpoints.khub.maps.mapId(e).rating,{type:t,value:i})}unrateMap(e){return this.delete(this.endpoints.khub.maps.mapId(e).rating)}sendMapFeedback(e,t){return this.post(this.endpoints.khub.maps.mapId(e).feedback,{message:t})}rateTopic(e,t,i,s){return this.post(this.endpoints.khub.maps.mapId(e).topics.tocId(t).rating,{type:i,value:s})}unrateTopic(e,t){return this.delete(this.endpoints.khub.maps.mapId(e).topics.tocId(t).rating)}sendTopicFeedback(e,t,i){return this.post(this.endpoints.khub.maps.mapId(e).topics.tocId(t).feedback,{message:i})}getDocumentRating(e){return this.get(this.endpoints.khub.documents.documentId(e).rating)}rateDocument(e,t,i){return this.post(this.endpoints.khub.documents.documentId(e).rating,{type:t,value:i})}unrateDocument(e){return this.delete(this.endpoints.khub.documents.documentId(e).rating)}sendDocumentFeedback(e,t){return this.post(this.endpoints.khub.documents.documentId(e).feedback,{message:t})}getFluidTopicsMessageContext(e,t){return this.get(this.endpoints.messages.locale(e).fluidTopics.contextName(t).endpoint)}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)}makeAbsolute(e){return this.tenantBaseUrl+e.replace(/^\//,"")}async fetch(e,t){const i=t;return await fetch(this.makeAbsolute(e),{...i??{},headers:{...this.defaultHeaders,...i?.headers??{}}})}upload(e,t,i,s=(()=>{})){return"undefined"!=typeof XMLHttpRequest?new Promise(((a,n)=>{let r=new XMLHttpRequest;r.onload=()=>{if(r.status>=200&&r.status<300){let e="application/json"===r.getResponseHeader("Content-Type")?JSON.parse(r.responseText):r.responseText;a(e)}else n(new re(r.status,r.statusText,r.responseText))},r.upload.onprogress=e=>s(e),r.open(e,this.makeAbsolute(t),!0),r.send(i)})):this.fetch(t,{method:e,body:i}).then(oe).then(le)}makeRequest(e,t,i){return this.fetch(t,{method:e,headers:{...null!=i?{"Content-Type":"application/json"}:{}},body:null!=i?JSON.stringify(i):void 0,credentials:null==this.authorization?"include":void 0}).then(oe).then(le)}fetchRawData(e){return fetch(this.makeAbsolute(e),{headers:this.defaultHeaders,credentials:null==this.authorization?"include":void 0}).then(oe).then((e=>e.arrayBuffer()))}}e.FluidTopicsApi=ue,e.HttpError=re,e.addUnauthenticatedUserSearchPreferencesChangeHandler=function(e,t){if(ie.localStorage){const i=ae(e),s=e=>{e.storageArea===ie.localStorage&&e.key===i&&t(JSON.parse(e.newValue??"{}"))};return ie.addEventListener("storage",s),{removeHandler:()=>ie.removeEventListener("storage",s)}}console.error("Cannot handle unauthenticated preferences: local storage is unavailable.")},e.default=ue,e.getUnauthenticatedUserSearchPreferences=function(e){if(ie.localStorage)return JSON.parse(ie.localStorage.getItem(ae(e))??"{}");console.error("Cannot get unauthenticated preferences: local storage is unavailable.")},e.isFtAuthenticatedSession=e=>z(e)&&W(e.profile),e.isFtAuthenticationIdentifier=e=>r(e)&&u(e.identifier)&&u(e.realm),e.isFtCollectionDocument=e=>r(e)&&o(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&v(e.type),e.isFtCollectionDocumentType=v,e.isFtCredentials=e=>r(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&o(e.rememberMe)&&u(e.login),e.isFtEditorialType=U,e.isFtFeedbackCreation=e=>r(e)&&u(e.message),e.isFtMap=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(e)))&&O(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&U(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&c(e.contentStyles)&&(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=>z(e)&&J(e.file)&&(null==e.size||Y(e.size))&&X(e.externalLink)&&J(e.name)&&J(e.id)&&(null==e.mimeType||J(e.mimeType))&&(null==e.viewerUrl||J(e.viewerUrl)),e.isFtMapResource=e=>r(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMapStyles=c,e.isFtMessageContext=e=>z(e)&&J(e.name)&&z(e.messages)&&Object.keys(e.messages).every((e=>J(e)))&&Object.values(e.messages).every((e=>J(e)))&&J(e.locale),e.isFtMetadata=y,e.isFtMetadataPreferenceConfiguration=T,e.isFtOpenMode=O,e.isFtPageConfiguration=Z,e.isFtPageRequest=C,e.isFtPaginatedToc=e=>z(e)&&te(e.configuration)&&Array.isArray(e.paginatedToc)&&e.paginatedToc.every((e=>ee(e))),e.isFtPaginatedTocNode=ee,e.isFtPaginationConfiguration=te,e.isFtPublicationRating=A,e.isFtPublicationRatingSummary=f,e.isFtRatingCreation=e=>r(e)&&m(e.type)&&l(e.value),e.isFtRatingSummary=e=>r(e)&&(null==e.topics||E(e.topics))&&f(e.publication),e.isFtRatingType=m,e.isFtReaderConfiguration=e=>z(e)&&Q(e.feedback)&&Y(e.loadAfterLastVisibleTopic)&&Y(e.loadBeforeFirstVisibleTopic),e.isFtReaderFeedbackConfiguration=Q,e.isFtSearchFacet=H,e.isFtSearchFacetConf=x,e.isFtSearchFacetEntry=$,e.isFtSearchFilter=S,e.isFtSearchLocale=h,e.isFtSearchLocales=e=>r(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>h(e))),e.isFtSearchPreferencesConfiguration=e=>r(e)&&r(e.metadata)&&Object.keys(e.metadata).every((e=>u(e)))&&Object.values(e.metadata).every((e=>T(e))),e.isFtSearchPreset=e=>r(e)&&u(e.name)&&Array.isArray(e.filters)&&e.filters.every((e=>S(e)))&&l(e.priority)&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSearchPrior=k,e.isFtSearchRequest=e=>r(e)&&u(e.query)&&C(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>S(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>K(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>k(e))))&&Array.isArray(e.facets)&&e.facets.every((e=>x(e))),e.isFtSearchResultCluster=P,e.isFtSearchResultClusterEntry=D,e.isFtSearchResultMap=L,e.isFtSearchResultTopic=M,e.isFtSearchResultType=B,e.isFtSearchResultUnstructuredDocument=N,e.isFtSearchResults=e=>r(e)&&(null==e.spellcheck||V(e.spellcheck))&&b(e.paging)&&Array.isArray(e.results)&&e.results.every((e=>P(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>H(e))),e.isFtSearchResultsPageInfo=b,e.isFtSearchSortCriterion=K,e.isFtSession=e=>z(e)&&Y(e.idleTimeoutInMillis)&&W(e.profile)&&X(e.sessionAuthenticated),e.isFtSpellcheck=V,e.isFtSuggestRequest=e=>r(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>S(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>K(e)))&&(null==e.maxCount||l(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSuggestResult=q,e.isFtSuggestResults=e=>r(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>q(e))),e.isFtTocNode=d,e.isFtTopic=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID","CONTENT_PACKAGER","PAGES","DESIGNED_READER"].includes(e),e.isFtTopicRating=R,e.isFtTopicResource=G,e.isFtTopicsRatingSummary=E,e.isFtUnstructuredDocument=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>y(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=W,e.isFtUserRole=e=>["PERSONAL_BOOK_USER","PERSONAL_BOOK_SHARE_USER","HTML_EXPORT_USER","PDF_EXPORT_USER","SAVED_SEARCH_USER","COLLECTION_USER","OFFLINE_USER","ANALYTICS_USER","BETA_USER","DEBUG_USER","PRINT_USER","RATING_USER","FEEDBACK_USER","CONTENT_PUBLISHER","KHUB_ADMIN","USERS_ADMIN","PORTAL_ADMIN","ADMIN","DEVELOPER"].includes(e),e.setUnauthenticatedUserSearchPreferences=function(e,t){if(ie.localStorage){let i={...t,metadata:se(t.metadata??{})};const s=ae(e),a=JSON.stringify(i);return ie.localStorage.setItem(s,a),ie.dispatchEvent(new StorageEvent("storage",{key:s,newValue:a,storageArea:ie.localStorage,url:ie.location.href})),i}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:{},i={exports:{}},s={exports:{}};!function(e,t){var i=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==i)return i;throw new Error("unable to locate global object")}();e.exports=t=i.fetch,i.fetch&&(t.default=i.fetch.bind(i)),t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response}(s,s.exports),function(e,t){const i=s.exports,a=i.default||i,n=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),a.call(this,e,t)};n.ponyfill=!0,e.exports=t=n,t.fetch=n,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,t.default=n}(i,i.exports);const a=i.exports,n=a.fetch.bind({});n.polyfill=!0,t.fetch||(t.fetch=n,t.Response=a.Response,t.Headers=a.Headers,t.Request=a.Request);const r=e=>"object"==typeof e&&null!=e,o=e=>"boolean"==typeof e,l=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>r(e)&&u(e.notes)&&Array.isArray(e.children)&&e.children.every((e=>c(e)))&&(null==e.topicLink||d(e.topicLink))&&u(e.title)&&(null==e.htmlContent||u(e.htmlContent)),d=e=>r(e)&&u(e.tocId)&&u(e.contentId)&&u(e.mapId),p=e=>r(e)&&u(e.topicStylesheetUrl)&&u(e.titleStylesheetUrl)&&Array.isArray(e.customCssClasses)&&e.customCssClasses.every((e=>u(e))),h=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&(null==e.hasRating||o(e.hasRating))&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>h(e)))&&u(e.contentId)&&u(e.title);var y;e.FtTopicContentTarget=void 0,(y=e.FtTopicContentTarget||(e.FtTopicContentTarget={})).THIRD_PARTY="THIRD_PARTY",y.OFF_THE_GRID="OFF_THE_GRID",y.CONTENT_PACKAGER="CONTENT_PACKAGER",y.PAGES="PAGES",y.DESIGNED_READER="DESIGNED_READER";const g=e=>r(e)&&l(e.count)&&u(e.label)&&(null==e.lang||u(e.lang)),m=e=>r(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&(null==e.hierarchicalValues||Array.isArray(e.hierarchicalValues)&&e.hierarchicalValues.every((e=>Array.isArray(e)&&e.every((e=>u(e))))))&&u(e.label)&&u(e.key);var A;e.FtRatingType=void 0,(A=e.FtRatingType||(e.FtRatingType={})).STARS="STARS",A.LIKE="LIKE",A.DICHOTOMOUS="DICHOTOMOUS",A.NO_RATING="NO_RATING";const f=e=>["STARS","LIKE","DICHOTOMOUS","NO_RATING"].includes(e),R=e=>r(e)&&u(e.date)&&f(e.type)&&l(e.value),E=e=>r(e)&&(null==e.rating||R(e.rating))&&f(e.type),T=e=>r(e)&&u(e.date)&&u(e.tocId)&&f(e.type)&&l(e.value),S=e=>r(e)&&Array.isArray(e.ratings)&&e.ratings.every((e=>T(e)))&&f(e.type),b=e=>r(e)&&Array.isArray(e.filter)&&e.filter.every((e=>u(e)))&&Array.isArray(e.prior)&&e.prior.every((e=>u(e))),I=e=>r(e)&&o(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key),U=e=>r(e)&&l(e.totalResultsCount)&&o(e.lastPage)&&l(e.currentPage)&&l(e.totalClustersCount);var F;e.FtEditorialType=void 0,(F=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",F.BOOK="BOOK";const C=e=>["ARTICLE","BOOK"].includes(e);var O;e.FtOpenMode=void 0,(O=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",O.EXTERNAL="EXTERNAL";const _=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),v=e=>r(e)&&(null==e.perPage||l(e.perPage))&&l(e.page);var k;e.FtCollectionDocumentType=void 0,(k=e.FtCollectionDocumentType||(e.FtCollectionDocumentType={})).MAP="MAP",k.DOCUMENT="DOCUMENT",k.TOPIC="TOPIC",k.PERSONAL_BOOK="PERSONAL_BOOK",k.SHARED_BOOK="SHARED_BOOK";const P=e=>["MAP","DOCUMENT","TOPIC","PERSONAL_BOOK","SHARED_BOOK"].includes(e),D=e=>r(e)&&l(e.weight)&&u(e.value)&&u(e.key),N=e=>r(e)&&Array.isArray(e.entries)&&e.entries.every((e=>L(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),L=e=>r(e)&&(null==e.document||M(e.document))&&(null==e.topic||w(e.topic))&&H(e.type)&&(null==e.map||B(e.map)),M=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(e)))&&_(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),B=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(e)))&&(null==e.openMode||_(e.openMode))&&C(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),w=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(e)))&&_(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>j(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 x;e.FtSearchResultType=void 0,(x=e.FtSearchResultType||(e.FtSearchResultType={})).MAP="MAP",x.DOCUMENT="DOCUMENT",x.TOPIC="TOPIC";const H=e=>["MAP","DOCUMENT","TOPIC"].includes(e),$=e=>r(e)&&o(e.hierarchical)&&u(e.label)&&o(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>V(e))),K=e=>r(e)&&(null==e.maxDepth||l(e.maxDepth))&&u(e.id),V=e=>r(e)&&l(e.totalResultsCount)&&o(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>V(e)))&&u(e.label)&&u(e.value)&&o(e.selected),G=e=>r(e)&&u(e.key),q=e=>r(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),j=e=>r(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),z=e=>r(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||C(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&H(e.type)&&u(e.value);var X;e.FtUserRole=void 0,(X=e.FtUserRole||(e.FtUserRole={})).PERSONAL_BOOK_USER="PERSONAL_BOOK_USER",X.PERSONAL_BOOK_SHARE_USER="PERSONAL_BOOK_SHARE_USER",X.HTML_EXPORT_USER="HTML_EXPORT_USER",X.PDF_EXPORT_USER="PDF_EXPORT_USER",X.SAVED_SEARCH_USER="SAVED_SEARCH_USER",X.COLLECTION_USER="COLLECTION_USER",X.OFFLINE_USER="OFFLINE_USER",X.ANALYTICS_USER="ANALYTICS_USER",X.BETA_USER="BETA_USER",X.DEBUG_USER="DEBUG_USER",X.PRINT_USER="PRINT_USER",X.RATING_USER="RATING_USER",X.FEEDBACK_USER="FEEDBACK_USER",X.CONTENT_PUBLISHER="CONTENT_PUBLISHER",X.KHUB_ADMIN="KHUB_ADMIN",X.USERS_ADMIN="USERS_ADMIN",X.PORTAL_ADMIN="PORTAL_ADMIN",X.ADMIN="ADMIN",X.DEVELOPER="DEVELOPER";const Y=e=>["PERSONAL_BOOK_USER","PERSONAL_BOOK_SHARE_USER","HTML_EXPORT_USER","PDF_EXPORT_USER","SAVED_SEARCH_USER","COLLECTION_USER","OFFLINE_USER","ANALYTICS_USER","BETA_USER","DEBUG_USER","PRINT_USER","RATING_USER","FEEDBACK_USER","CONTENT_PUBLISHER","KHUB_ADMIN","USERS_ADMIN","PORTAL_ADMIN","ADMIN","DEVELOPER"].includes(e),J=e=>r(e)&&u(e.identifier)&&u(e.realm),Q=e=>r(e)&&(null==e.emailAddress||u(e.emailAddress))&&(null==e.displayName||u(e.displayName))&&Array.isArray(e.roles)&&e.roles.every((e=>Y(e)))&&(null==e.userId||u(e.userId)),W=e=>"object"==typeof e&&null!=e,Z=e=>"boolean"==typeof e,ee=e=>"number"==typeof e,te=e=>"string"==typeof e,ie=e=>W(e)&&Z(e.mailsSentByFluidTopics)&&Array.isArray(e.recipients)&&e.recipients.every((e=>te(e)))&&Array.isArray(e.subjectMetadataIds)&&e.subjectMetadataIds.every((e=>te(e))),se=e=>W(e)&&(null==e.parentsVisibility||Array.isArray(e.parentsVisibility)&&e.parentsVisibility.every((e=>Z(e))))&&Z(e.isVisible),ae=e=>W(e)&&(null==e.prettyUrl||te(e.prettyUrl))&&(null==e.hasRating||Z(e.hasRating))&&(null==e.pageToc||Array.isArray(e.pageToc))&&(null==e.tocId||te(e.tocId))&&Array.isArray(e.children)&&e.children.every((e=>ae(e)))&&(null==e.pageConfiguration||se(e.pageConfiguration))&&(null==e.contentId||te(e.contentId))&&(null==e.title||te(e.title)),ne=e=>W(e)&&Z(e.splitCurrentPageToc),re="undefined"==typeof window?globalThis:window;function oe(e){let t={};for(let i in e){let s=e[i];("object"!=typeof s||Array.isArray(s))&&(s={prior:s});for(let e of["prior","filter"])s[e]=Array.isArray(s[e])?s[e]:[s[e]],s[e]=s[e].map((e=>null!=e?""+e:"")).filter((e=>""!==e));t[i]=s}return t}function le(e){return`${e}-FluidTopicsUnauthenticatedUserSearchPreferences`}const ue="undefined"==typeof window?globalThis:window;class ce extends Error{status;statusText;body;constructor(e,t,i){super(`${e} - ${t}: ${i}`),this.status=e,this.statusText=t,this.body=i}}async function de(e){if(!e.ok)throw new ce(e.status,e.statusText,await e.text());return e}function pe(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class he{tenantBaseUrl;ftCallingApp;authorization;searchLabel;endpoints={authentication:{login:"api/authentication/login",logout:"api/authentication/logout",currentSession:"api/authentication/current-session"},khub:{maps:{mapId:e=>({info:`api/khub/maps/${e}`,toc:`api/khub/maps/${e}/toc`,pages:`api/khub/maps/${e}/pages`,feedback:`api/khub/maps/${e}/feedback`,rating:`api/khub/maps/${e}/rating`,attachments:{list:`api/khub/maps/${e}/attachments`,attachmentId:t=>({content:`api/khub/maps/${e}/attachments/${t}/content`})},resources:{list:`api/khub/maps/${e}/resources`,resourceId:t=>({content:`api/khub/maps/${e}/resources/${t}/content`})},topics:{contentId:t=>({info:`api/khub/maps/${e}/topics/${t}`,content:`api/khub/maps/${e}/topics/${t}/content`}),tocId:t=>({feedback:`api/khub/maps/${e}/topics/${t}/feedback`,rating:`api/khub/maps/${e}/topics/${t}/rating`})}})},documents:{documentId:e=>({info:`api/khub/documents/${e}`,content:`api/khub/documents/${e}/content`,text:`api/khub/documents/${e}/content/text`,feedback:`api/khub/documents/${e}/feedback`,rating:`api/khub/documents/${e}/rating`})},suggest:"api/khub/suggest",clusteredSearch:"api/khub/clustered-search",locales:"api/khub/locales"},users:{userId:e=>({collections:{collectionId:t=>({documents:`api/users/${e}/collections/${t}/documents`})}})},stylesheets:{fonts:"api/stylesheets/fonts.css",theme:"api/stylesheets/theme.css",content:{title:"api/stylesheets/content/title.css",topic:"api/stylesheets/content/topic.css"}},configuration:{reader:"api/configuration/reader"},locales:{ui:"api/locales/ui"},messages:{locale:e=>({fluidTopics:{contextName:t=>({endpoint:`api/messages/${e}/fluid-topics/${t}`})},custom:{contextName:t=>({endpoint:`api/messages/${e}/custom/${t}`})}})}};get defaultHeaders(){return{...this.authorization,...this.searchLabel,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t,i){e=(e??ue.__gwt_ft_moduleBase??ue.fluidtopicsclient?.__moduleBase??ue.__gwt_activeModules?.fluidtopicsclient?.moduleBase??"").trim(),this.tenantBaseUrl=e.endsWith("/")?e:e+"/",i&&void 0!==ue.location&&ue.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 i;this.authorization={Authorization:"Basic "+(i=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(i).toString("base64"):btoa(i))}}clearAuthentication(){this.authorization=void 0}setSearchLabel(e){this.searchLabel={"FT-search-label":e}}clearSearchLabel(){this.searchLabel=void 0}login(e,t){let i={login:e,password:t,rememberMe:!0};return this.post(this.endpoints.authentication.login,i).then((i=>(this.setCredentials(e,t),i)))}logout(){return this.post(this.endpoints.authentication.logout).then((()=>this.clearAuthentication()))}getCurrentSession(){return this.get(this.endpoints.authentication.currentSession)}getReaderConfiguration(){return this.get(this.endpoints.configuration.reader)}getMap(e){return this.get(this.endpoints.khub.maps.mapId(e).info)}getTableOfContent(e){return this.get(this.endpoints.khub.maps.mapId(e).toc)}getPages(e){return this.get(this.endpoints.khub.maps.mapId(e).pages)}getTopic(e,t){return this.get(this.endpoints.khub.maps.mapId(e).topics.contentId(t).info)}getTopicHTMLContent(e,t,i){return this.get(this.endpoints.khub.maps.mapId(e).topics.contentId(t).content+(i?"?target="+i:""))}getMapAttachments(e){return this.get(this.endpoints.khub.maps.mapId(e).attachments.list)}getMapAttachmentContent(e,t){return this.fetchRawData(this.endpoints.khub.maps.mapId(e).attachments.attachmentId(t).content)}getMapResources(e){return this.get(this.endpoints.khub.maps.mapId(e).resources.list)}getMapResourceContent(e,t){return this.fetchRawData(this.endpoints.khub.maps.mapId(e).resources.resourceId(t).content)}getUnstructuredDocument(e){return this.get(this.endpoints.khub.documents.documentId(e).info)}getUnstructuredDocumentContent(e){return this.fetchRawData(this.endpoints.khub.documents.documentId(e).content)}getUnstructuredDocumentTextContent(e){return this.get(this.endpoints.khub.documents.documentId(e).text)}getCollectionDocuments(e,t){return this.get(this.endpoints.users.userId(e).collections.collectionId(t).documents)}getSuggestions(e){return this.post(this.endpoints.khub.suggest,e)}search(e){return this.post(this.endpoints.khub.clusteredSearch,e)}getAvailableSearchLocales(){return this.get(this.endpoints.khub.locales)}getAvailableUiLocales(){return this.get(this.endpoints.khub.locales)}getMapRating(e){return this.get(this.endpoints.khub.maps.mapId(e).rating)}rateMap(e,t,i){return this.post(this.endpoints.khub.maps.mapId(e).rating,{type:t,value:i})}unrateMap(e){return this.delete(this.endpoints.khub.maps.mapId(e).rating)}sendMapFeedback(e,t){return this.post(this.endpoints.khub.maps.mapId(e).feedback,{message:t})}rateTopic(e,t,i,s){return this.post(this.endpoints.khub.maps.mapId(e).topics.tocId(t).rating,{type:i,value:s})}unrateTopic(e,t){return this.delete(this.endpoints.khub.maps.mapId(e).topics.tocId(t).rating)}sendTopicFeedback(e,t,i){return this.post(this.endpoints.khub.maps.mapId(e).topics.tocId(t).feedback,{message:i})}getDocumentRating(e){return this.get(this.endpoints.khub.documents.documentId(e).rating)}rateDocument(e,t,i){return this.post(this.endpoints.khub.documents.documentId(e).rating,{type:t,value:i})}unrateDocument(e){return this.delete(this.endpoints.khub.documents.documentId(e).rating)}sendDocumentFeedback(e,t){return this.post(this.endpoints.khub.documents.documentId(e).feedback,{message:t})}getFluidTopicsMessageContext(e,t){return this.get(this.endpoints.messages.locale(e).fluidTopics.contextName(t).endpoint)}getCustomMessageContext(e,t){return this.get(this.endpoints.messages.locale(e).custom.contextName(t).endpoint)}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)}makeAbsolute(e){return this.tenantBaseUrl+e.replace(/^\//,"")}async fetch(e,t){const i=t;return await fetch(this.makeAbsolute(e),{...i??{},headers:{...this.defaultHeaders,...i?.headers??{}}})}upload(e,t,i,s=(()=>{})){return"undefined"!=typeof XMLHttpRequest?new Promise(((a,n)=>{let r=new XMLHttpRequest;r.onload=()=>{if(r.status>=200&&r.status<300){let e="application/json"===r.getResponseHeader("Content-Type")?JSON.parse(r.responseText):r.responseText;a(e)}else n(new ce(r.status,r.statusText,r.responseText))},r.upload.onprogress=e=>s(e),r.open(e,this.makeAbsolute(t),!0),r.send(i)})):this.fetch(t,{method:e,body:i}).then(de).then(pe)}makeRequest(e,t,i){return this.fetch(t,{method:e,headers:{...null!=i?{"Content-Type":"application/json"}:{}},body:null!=i?JSON.stringify(i):void 0,credentials:null==this.authorization?"include":void 0}).then(de).then(pe)}fetchRawData(e){return fetch(this.makeAbsolute(e),{headers:this.defaultHeaders,credentials:null==this.authorization?"include":void 0}).then(de).then((e=>e.arrayBuffer()))}}e.FluidTopicsApi=he,e.HttpError=ce,e.addUnauthenticatedUserSearchPreferencesChangeHandler=function(e,t){if(re.localStorage){const i=le(e),s=e=>{e.storageArea===re.localStorage&&e.key===i&&t(JSON.parse(e.newValue??"{}"))};return re.addEventListener("storage",s),{removeHandler:()=>re.removeEventListener("storage",s)}}console.error("Cannot handle unauthenticated preferences: local storage is unavailable.")},e.default=he,e.getUnauthenticatedUserSearchPreferences=function(e){if(re.localStorage)return JSON.parse(re.localStorage.getItem(le(e))??"{}");console.error("Cannot get unauthenticated preferences: local storage is unavailable.")},e.isFtAuthenticatedSession=e=>r(e)&&J(e.authenticationIdentifier)&&Q(e.profile),e.isFtAuthenticationIdentifier=J,e.isFtCollectionDocument=e=>r(e)&&o(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&P(e.type),e.isFtCollectionDocumentType=P,e.isFtCredentials=e=>r(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&o(e.rememberMe)&&u(e.login),e.isFtEditorialType=C,e.isFtFeedbackCreation=e=>r(e)&&u(e.message),e.isFtMap=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(e)))&&_(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&C(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&p(e.contentStyles)&&(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=>W(e)&&te(e.file)&&(null==e.size||ee(e.size))&&Z(e.externalLink)&&te(e.name)&&te(e.id)&&(null==e.mimeType||te(e.mimeType))&&(null==e.viewerUrl||te(e.viewerUrl)),e.isFtMapResource=e=>r(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMapStyles=p,e.isFtMessageContext=e=>r(e)&&u(e.name)&&r(e.messages)&&Object.keys(e.messages).every((e=>u(e)))&&Object.values(e.messages).every((e=>u(e)))&&u(e.locale),e.isFtMetadata=m,e.isFtMetadataPreferenceConfiguration=b,e.isFtOpenMode=_,e.isFtPageConfiguration=se,e.isFtPageRequest=v,e.isFtPaginatedToc=e=>W(e)&&ne(e.configuration)&&Array.isArray(e.paginatedToc)&&e.paginatedToc.every((e=>ae(e))),e.isFtPaginatedTocNode=ae,e.isFtPaginationConfiguration=ne,e.isFtPersonalBookCreation=e=>r(e)&&Array.isArray(e.nodes)&&e.nodes.every((e=>c(e)))&&u(e.description)&&u(e.title),e.isFtPersonalBookNodeCreation=c,e.isFtPersonalBookTopicLinkCreation=d,e.isFtPublicationRating=R,e.isFtPublicationRatingSummary=E,e.isFtRatingCreation=e=>r(e)&&f(e.type)&&l(e.value),e.isFtRatingSummary=e=>r(e)&&(null==e.topics||S(e.topics))&&E(e.publication),e.isFtRatingType=f,e.isFtReaderConfiguration=e=>W(e)&&ie(e.feedback)&&ee(e.loadAfterLastVisibleTopic)&&ee(e.loadBeforeFirstVisibleTopic),e.isFtReaderFeedbackConfiguration=ie,e.isFtSearchFacet=$,e.isFtSearchFacetConf=K,e.isFtSearchFacetEntry=V,e.isFtSearchFilter=I,e.isFtSearchLocale=g,e.isFtSearchLocales=e=>r(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>g(e))),e.isFtSearchPreferencesConfiguration=e=>r(e)&&r(e.metadata)&&Object.keys(e.metadata).every((e=>u(e)))&&Object.values(e.metadata).every((e=>b(e))),e.isFtSearchPreset=e=>r(e)&&u(e.name)&&Array.isArray(e.filters)&&e.filters.every((e=>I(e)))&&l(e.priority)&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSearchPrior=D,e.isFtSearchRequest=e=>r(e)&&u(e.query)&&v(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>I(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>G(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&(null==e.priors||Array.isArray(e.priors)&&e.priors.every((e=>D(e))))&&Array.isArray(e.facets)&&e.facets.every((e=>K(e))),e.isFtSearchResultCluster=N,e.isFtSearchResultClusterEntry=L,e.isFtSearchResultMap=B,e.isFtSearchResultTopic=w,e.isFtSearchResultType=H,e.isFtSearchResultUnstructuredDocument=M,e.isFtSearchResults=e=>r(e)&&(null==e.spellcheck||q(e.spellcheck))&&U(e.paging)&&Array.isArray(e.results)&&e.results.every((e=>N(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>$(e))),e.isFtSearchResultsPageInfo=U,e.isFtSearchSortCriterion=G,e.isFtSession=e=>r(e)&&(null==e.authenticationIdentifier||J(e.authenticationIdentifier))&&l(e.idleTimeoutInMillis)&&Q(e.profile)&&o(e.sessionAuthenticated),e.isFtSpellcheck=q,e.isFtSuggestRequest=e=>r(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>I(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>G(e)))&&(null==e.maxCount||l(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSuggestResult=z,e.isFtSuggestResults=e=>r(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>z(e))),e.isFtTocNode=h,e.isFtTopic=e=>r(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID","CONTENT_PACKAGER","PAGES","DESIGNED_READER"].includes(e),e.isFtTopicRating=T,e.isFtTopicResource=j,e.isFtTopicsRatingSummary=S,e.isFtUiLocale=e=>r(e)&&u(e.displayName)&&u(e.languageTag)&&o(e.translated),e.isFtUnstructuredDocument=e=>r(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>m(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=Q,e.isFtUserRole=Y,e.setUnauthenticatedUserSearchPreferences=function(e,t){if(re.localStorage){let i={...t,metadata:oe(t.metadata??{})};const s=le(e),a=JSON.stringify(i);return re.localStorage.setItem(s,a),re.dispatchEvent(new StorageEvent("storage",{key:s,newValue:a,storageArea:re.localStorage,url:re.location.href})),i}console.error("Cannot set unauthenticated preferences: local storage is unavailable.")}}));
@@ -1,6 +1,6 @@
1
1
  import "cross-fetch/polyfill";
2
- import { FtCollectionDocument, FtMap, FtMapResource, FtRatingSummary, FtRatingType, FtSearchLocales, FtSearchRequest, FtSearchResults, FtSuggestRequest, FtSuggestResults, FtTocNode, FtTopic, FtTopicContentTarget, FtTopicContentTargetKeys, FtUnstructuredDocument } from "./types/ft-common/public";
3
- import { FtAuthenticatedSession, FtMapAttachment, FtMessageContext, FtPaginatedToc, FtReaderConfiguration, FtSession } from "./types/ft-server/public";
2
+ import { FtAuthenticatedSession, FtCollectionDocument, FtMap, FtMapResource, FtMessageContext, FtRatingSummary, FtRatingType, FtRatingTypeKeys, FtSearchLocales, FtSearchRequest, FtSearchResults, FtSession, FtSuggestRequest, FtSuggestResults, FtTocNode, FtTopic, FtTopicContentTarget, FtTopicContentTargetKeys, FtUiLocale, FtUnstructuredDocument } from "./types/ft-common/public";
3
+ import { FtMapAttachment, FtPaginatedToc, FtReaderConfiguration } from "./types/ft-server/public";
4
4
  export * from "./types/ft-common/public";
5
5
  export * from "./types/ft-server/public";
6
6
  export * from "./preferences/unauthenticated-preferences";
@@ -86,6 +86,9 @@ export declare class FluidTopicsApi {
86
86
  configuration: {
87
87
  reader: string;
88
88
  };
89
+ locales: {
90
+ ui: string;
91
+ };
89
92
  messages: {
90
93
  locale: (locale: string) => {
91
94
  fluidTopics: {
@@ -93,6 +96,11 @@ export declare class FluidTopicsApi {
93
96
  endpoint: string;
94
97
  };
95
98
  };
99
+ custom: {
100
+ contextName: (contextName: string) => {
101
+ endpoint: string;
102
+ };
103
+ };
96
104
  };
97
105
  };
98
106
  };
@@ -123,18 +131,20 @@ export declare class FluidTopicsApi {
123
131
  getSuggestions(request: FtSuggestRequest): Promise<FtSuggestResults>;
124
132
  search(request: FtSearchRequest): Promise<FtSearchResults>;
125
133
  getAvailableSearchLocales(): Promise<FtSearchLocales>;
134
+ getAvailableUiLocales(): Promise<Array<FtUiLocale>>;
126
135
  getMapRating(mapId: string): Promise<FtRatingSummary>;
127
- rateMap(mapId: string, type: FtRatingType, value: number): Promise<void>;
136
+ rateMap(mapId: string, type: FtRatingType | FtRatingTypeKeys, value: number): Promise<void>;
128
137
  unrateMap(mapId: string): Promise<void>;
129
138
  sendMapFeedback(mapId: string, message: string): Promise<void>;
130
- rateTopic(mapId: string, tocId: string, type: FtRatingType, value: number): Promise<void>;
139
+ rateTopic(mapId: string, tocId: string, type: FtRatingType | FtRatingTypeKeys, value: number): Promise<void>;
131
140
  unrateTopic(mapId: string, tocId: string): Promise<void>;
132
141
  sendTopicFeedback(mapId: string, tocId: string, message: string): Promise<void>;
133
142
  getDocumentRating(docId: string): Promise<FtRatingSummary>;
134
- rateDocument(docId: string, type: FtRatingType, value: number): Promise<void>;
143
+ rateDocument(docId: string, type: FtRatingType | FtRatingTypeKeys, value: number): Promise<void>;
135
144
  unrateDocument(docId: string): Promise<void>;
136
145
  sendDocumentFeedback(docId: string, message: string): Promise<void>;
137
146
  getFluidTopicsMessageContext(locale: string, name: string): Promise<FtMessageContext>;
147
+ getCustomMessageContext(locale: string, name: string): Promise<FtMessageContext>;
138
148
  get<T>(endpoint: string): Promise<T>;
139
149
  post<T>(endpoint: string, data?: any): Promise<T>;
140
150
  put<T>(endpoint: string, data?: any): Promise<T>;
package/dist/mjs/index.js CHANGED
@@ -102,12 +102,20 @@ export class FluidTopicsApi {
102
102
  configuration: {
103
103
  reader: `api/configuration/reader`
104
104
  },
105
+ locales: {
106
+ ui: `api/locales/ui`
107
+ },
105
108
  messages: {
106
109
  locale: (locale) => ({
107
110
  fluidTopics: {
108
111
  contextName: (contextName) => ({
109
112
  endpoint: `api/messages/${locale}/fluid-topics/${contextName}`,
110
113
  })
114
+ },
115
+ custom: {
116
+ contextName: (contextName) => ({
117
+ endpoint: `api/messages/${locale}/custom/${contextName}`,
118
+ })
111
119
  }
112
120
  })
113
121
  },
@@ -215,6 +223,9 @@ export class FluidTopicsApi {
215
223
  getAvailableSearchLocales() {
216
224
  return this.get(this.endpoints.khub.locales);
217
225
  }
226
+ getAvailableUiLocales() {
227
+ return this.get(this.endpoints.khub.locales);
228
+ }
218
229
  getMapRating(mapId) {
219
230
  return this.get(this.endpoints.khub.maps.mapId(mapId).rating);
220
231
  }
@@ -253,6 +264,9 @@ export class FluidTopicsApi {
253
264
  getFluidTopicsMessageContext(locale, name) {
254
265
  return this.get(this.endpoints.messages.locale(locale).fluidTopics.contextName(name).endpoint);
255
266
  }
267
+ getCustomMessageContext(locale, name) {
268
+ return this.get(this.endpoints.messages.locale(locale).custom.contextName(name).endpoint);
269
+ }
256
270
  get(endpoint) {
257
271
  return this.makeRequest("GET", endpoint);
258
272
  }
@@ -5,23 +5,44 @@ export interface FtCredentials {
5
5
  login: string;
6
6
  }
7
7
  export declare const isFtCredentials: (o: any) => o is FtCredentials;
8
+ export interface FtPersonalBookCreation {
9
+ nodes: Array<FtPersonalBookNodeCreation>;
10
+ description: string;
11
+ title: string;
12
+ }
13
+ export declare const isFtPersonalBookCreation: (o: any) => o is FtPersonalBookCreation;
14
+ export interface FtPersonalBookNodeCreation {
15
+ notes: string;
16
+ children: Array<FtPersonalBookNodeCreation>;
17
+ topicLink?: FtPersonalBookTopicLinkCreation;
18
+ title: string;
19
+ htmlContent?: string;
20
+ }
21
+ export declare const isFtPersonalBookNodeCreation: (o: any) => o is FtPersonalBookNodeCreation;
22
+ export interface FtPersonalBookTopicLinkCreation {
23
+ tocId: string;
24
+ contentId: string;
25
+ mapId: string;
26
+ type: any;
27
+ }
28
+ export declare const isFtPersonalBookTopicLinkCreation: (o: any) => o is FtPersonalBookTopicLinkCreation;
8
29
  export interface FtCollectionDocument {
9
30
  deleted: boolean;
10
31
  apiUrl?: string;
11
32
  portalUrl?: string;
12
33
  id: string;
13
34
  title: string;
14
- type: FtCollectionDocumentType;
35
+ type: FtCollectionDocumentTypeKeys | FtCollectionDocumentType;
15
36
  }
16
37
  export declare const isFtCollectionDocument: (o: any) => o is FtCollectionDocument;
17
38
  export interface FtMap {
18
39
  prettyUrl?: string;
19
40
  metadata: Array<FtMetadata>;
20
- openMode: FtOpenMode;
41
+ openMode: FtOpenModeKeys | FtOpenMode;
21
42
  topicsApiEndpoint: string;
22
43
  description?: string;
23
44
  attachmentsApiEndpoint: string;
24
- editorialType: FtEditorialType;
45
+ editorialType: FtEditorialTypeKeys | FtEditorialType;
25
46
  baseId: string;
26
47
  clusterId: string;
27
48
  title: string;
@@ -104,6 +125,18 @@ export interface FtSearchLocales {
104
125
  contentLocales: Array<FtSearchLocale>;
105
126
  }
106
127
  export declare const isFtSearchLocales: (o: any) => o is FtSearchLocales;
128
+ export interface FtMessageContext {
129
+ name: string;
130
+ messages: Record<string, string>;
131
+ locale: string;
132
+ }
133
+ export declare const isFtMessageContext: (o: any) => o is FtMessageContext;
134
+ export interface FtUiLocale {
135
+ displayName: string;
136
+ languageTag: string;
137
+ translated: boolean;
138
+ }
139
+ export declare const isFtUiLocale: (o: any) => o is FtUiLocale;
107
140
  export interface FtMetadata {
108
141
  values: Array<string>;
109
142
  hierarchicalValues?: Array<Array<string>>;
@@ -121,17 +154,17 @@ export declare type FtRatingTypeKeys = keyof typeof FtRatingType;
121
154
  export declare const isFtRatingType: (o: any) => o is FtRatingType;
122
155
  export interface FtPublicationRating {
123
156
  date: Date | string;
124
- type: FtRatingType;
157
+ type: FtRatingTypeKeys | FtRatingType;
125
158
  value: number;
126
159
  }
127
160
  export declare const isFtPublicationRating: (o: any) => o is FtPublicationRating;
128
161
  export interface FtPublicationRatingSummary {
129
162
  rating?: FtPublicationRating;
130
- type: FtRatingType;
163
+ type: FtRatingTypeKeys | FtRatingType;
131
164
  }
132
165
  export declare const isFtPublicationRatingSummary: (o: any) => o is FtPublicationRatingSummary;
133
166
  export interface FtRatingCreation {
134
- type: FtRatingType;
167
+ type: FtRatingTypeKeys | FtRatingType;
135
168
  value: number;
136
169
  }
137
170
  export declare const isFtRatingCreation: (o: any) => o is FtRatingCreation;
@@ -143,13 +176,13 @@ export declare const isFtRatingSummary: (o: any) => o is FtRatingSummary;
143
176
  export interface FtTopicRating {
144
177
  date: Date | string;
145
178
  tocId: string;
146
- type: FtRatingType;
179
+ type: FtRatingTypeKeys | FtRatingType;
147
180
  value: number;
148
181
  }
149
182
  export declare const isFtTopicRating: (o: any) => o is FtTopicRating;
150
183
  export interface FtTopicsRatingSummary {
151
184
  ratings: Array<FtTopicRating>;
152
- type: FtRatingType;
185
+ type: FtRatingTypeKeys | FtRatingType;
153
186
  }
154
187
  export declare const isFtTopicsRatingSummary: (o: any) => o is FtTopicsRatingSummary;
155
188
  export interface FtMapResource {
@@ -247,13 +280,13 @@ export declare const isFtSearchResultCluster: (o: any) => o is FtSearchResultClu
247
280
  export interface FtSearchResultClusterEntry {
248
281
  document?: FtSearchResultUnstructuredDocument;
249
282
  topic?: FtSearchResultTopic;
250
- type: FtSearchResultType;
283
+ type: FtSearchResultTypeKeys | FtSearchResultType;
251
284
  map?: FtSearchResultMap;
252
285
  }
253
286
  export declare const isFtSearchResultClusterEntry: (o: any) => o is FtSearchResultClusterEntry;
254
287
  export interface FtSearchResultUnstructuredDocument {
255
288
  metadata: Array<FtMetadata>;
256
- openMode: FtOpenMode;
289
+ openMode: FtOpenModeKeys | FtOpenMode;
257
290
  documentUrl: string;
258
291
  mimeType: string;
259
292
  source: any;
@@ -271,8 +304,8 @@ export interface FtSearchResultUnstructuredDocument {
271
304
  export declare const isFtSearchResultUnstructuredDocument: (o: any) => o is FtSearchResultUnstructuredDocument;
272
305
  export interface FtSearchResultMap {
273
306
  metadata: Array<FtMetadata>;
274
- openMode?: FtOpenMode;
275
- editorialType: FtEditorialType;
307
+ openMode?: FtOpenModeKeys | FtOpenMode;
308
+ editorialType: FtEditorialTypeKeys | FtEditorialType;
276
309
  source?: any;
277
310
  title: string;
278
311
  lastPublicationDate?: string;
@@ -287,7 +320,7 @@ export interface FtSearchResultMap {
287
320
  export declare const isFtSearchResultMap: (o: any) => o is FtSearchResultMap;
288
321
  export interface FtSearchResultTopic {
289
322
  metadata: Array<FtMetadata>;
290
- openMode: FtOpenMode;
323
+ openMode: FtOpenModeKeys | FtOpenMode;
291
324
  contentId: string;
292
325
  resources: Array<FtTopicResource>;
293
326
  source?: any;
@@ -364,9 +397,9 @@ export interface FtSuggestRequest {
364
397
  export declare const isFtSuggestRequest: (o: any) => o is FtSuggestRequest;
365
398
  export interface FtSuggestResult {
366
399
  filenameExtension?: string;
367
- editorialType?: FtEditorialType;
400
+ editorialType?: FtEditorialTypeKeys | FtEditorialType;
368
401
  mimeType?: string;
369
- type: FtSearchResultType;
402
+ type: FtSearchResultTypeKeys | FtSearchResultType;
370
403
  value: string;
371
404
  }
372
405
  export declare const isFtSuggestResult: (o: any) => o is FtSuggestResult;
@@ -402,3 +435,22 @@ export interface FtAuthenticationIdentifier {
402
435
  realm: string;
403
436
  }
404
437
  export declare const isFtAuthenticationIdentifier: (o: any) => o is FtAuthenticationIdentifier;
438
+ export interface FtAuthenticatedSession {
439
+ authenticationIdentifier: FtAuthenticationIdentifier;
440
+ profile: FtUserProfile;
441
+ }
442
+ export declare const isFtAuthenticatedSession: (o: any) => o is FtAuthenticatedSession;
443
+ export interface FtSession {
444
+ authenticationIdentifier?: FtAuthenticationIdentifier;
445
+ idleTimeoutInMillis: number;
446
+ profile: FtUserProfile;
447
+ sessionAuthenticated: boolean;
448
+ }
449
+ export declare const isFtSession: (o: any) => o is FtSession;
450
+ export interface FtUserProfile {
451
+ emailAddress?: string;
452
+ displayName?: string;
453
+ roles: Array<FtUserRoleKeys | FtUserRole>;
454
+ userId?: string;
455
+ }
456
+ export declare const isFtUserProfile: (o: any) => o is FtUserProfile;
@@ -9,6 +9,28 @@ export const isFtCredentials = (o) => {
9
9
  && (isBoolean(o.rememberMe))
10
10
  && (isString(o.login));
11
11
  };
12
+ export const isFtPersonalBookCreation = (o) => {
13
+ return isObject(o)
14
+ && ((Array.isArray(o.nodes)
15
+ && o.nodes.every((v) => isFtPersonalBookNodeCreation(v))))
16
+ && (isString(o.description))
17
+ && (isString(o.title));
18
+ };
19
+ export const isFtPersonalBookNodeCreation = (o) => {
20
+ return isObject(o)
21
+ && (isString(o.notes))
22
+ && ((Array.isArray(o.children)
23
+ && o.children.every((v) => isFtPersonalBookNodeCreation(v))))
24
+ && (o.topicLink == null || isFtPersonalBookTopicLinkCreation(o.topicLink))
25
+ && (isString(o.title))
26
+ && (o.htmlContent == null || isString(o.htmlContent));
27
+ };
28
+ export const isFtPersonalBookTopicLinkCreation = (o) => {
29
+ return isObject(o)
30
+ && (isString(o.tocId))
31
+ && (isString(o.contentId))
32
+ && (isString(o.mapId));
33
+ };
12
34
  export const isFtCollectionDocument = (o) => {
13
35
  return isObject(o)
14
36
  && (isBoolean(o.deleted))
@@ -117,6 +139,20 @@ export const isFtSearchLocales = (o) => {
117
139
  && ((Array.isArray(o.contentLocales)
118
140
  && o.contentLocales.every((v) => isFtSearchLocale(v))));
119
141
  };
142
+ export const isFtMessageContext = (o) => {
143
+ return isObject(o)
144
+ && (isString(o.name))
145
+ && ((isObject(o.messages)
146
+ && Object.keys(o.messages).every((k) => isString(k))
147
+ && Object.values(o.messages).every((v) => isString(v))))
148
+ && (isString(o.locale));
149
+ };
150
+ export const isFtUiLocale = (o) => {
151
+ return isObject(o)
152
+ && (isString(o.displayName))
153
+ && (isString(o.languageTag))
154
+ && (isBoolean(o.translated));
155
+ };
120
156
  export const isFtMetadata = (o) => {
121
157
  return isObject(o)
122
158
  && ((Array.isArray(o.values)
@@ -454,3 +490,23 @@ export const isFtAuthenticationIdentifier = (o) => {
454
490
  && (isString(o.identifier))
455
491
  && (isString(o.realm));
456
492
  };
493
+ export const isFtAuthenticatedSession = (o) => {
494
+ return isObject(o)
495
+ && (isFtAuthenticationIdentifier(o.authenticationIdentifier))
496
+ && (isFtUserProfile(o.profile));
497
+ };
498
+ export const isFtSession = (o) => {
499
+ return isObject(o)
500
+ && (o.authenticationIdentifier == null || isFtAuthenticationIdentifier(o.authenticationIdentifier))
501
+ && (isNumber(o.idleTimeoutInMillis))
502
+ && (isFtUserProfile(o.profile))
503
+ && (isBoolean(o.sessionAuthenticated));
504
+ };
505
+ export const isFtUserProfile = (o) => {
506
+ return isObject(o)
507
+ && (o.emailAddress == null || isString(o.emailAddress))
508
+ && (o.displayName == null || isString(o.displayName))
509
+ && ((Array.isArray(o.roles)
510
+ && o.roles.every((v) => isFtUserRole(v))))
511
+ && (o.userId == null || isString(o.userId));
512
+ };
@@ -10,25 +10,6 @@ export interface FtReaderFeedbackConfiguration {
10
10
  subjectMetadataIds: Array<string>;
11
11
  }
12
12
  export declare const isFtReaderFeedbackConfiguration: (o: any) => o is FtReaderFeedbackConfiguration;
13
- export interface FtAuthenticatedSession {
14
- authenticationIdentifier: any;
15
- profile: FtUserProfile;
16
- }
17
- export declare const isFtAuthenticatedSession: (o: any) => o is FtAuthenticatedSession;
18
- export interface FtSession {
19
- authenticationIdentifier?: any;
20
- idleTimeoutInMillis: number;
21
- profile: FtUserProfile;
22
- sessionAuthenticated: boolean;
23
- }
24
- export declare const isFtSession: (o: any) => o is FtSession;
25
- export interface FtUserProfile {
26
- emailAddress?: string;
27
- displayName?: string;
28
- roles: Array<any>;
29
- userId?: string;
30
- }
31
- export declare const isFtUserProfile: (o: any) => o is FtUserProfile;
32
13
  export interface FtMapAttachment {
33
14
  file: string;
34
15
  size?: number;
@@ -64,9 +45,3 @@ export interface FtPaginationConfiguration {
64
45
  splitCurrentPageToc: boolean;
65
46
  }
66
47
  export declare const isFtPaginationConfiguration: (o: any) => o is FtPaginationConfiguration;
67
- export interface FtMessageContext {
68
- name: string;
69
- messages: Record<string, string>;
70
- locale: string;
71
- }
72
- export declare const isFtMessageContext: (o: any) => o is FtMessageContext;
@@ -16,23 +16,6 @@ export const isFtReaderFeedbackConfiguration = (o) => {
16
16
  && ((Array.isArray(o.subjectMetadataIds)
17
17
  && o.subjectMetadataIds.every((v) => isString(v))));
18
18
  };
19
- export const isFtAuthenticatedSession = (o) => {
20
- return isObject(o)
21
- && (isFtUserProfile(o.profile));
22
- };
23
- export const isFtSession = (o) => {
24
- return isObject(o)
25
- && (isNumber(o.idleTimeoutInMillis))
26
- && (isFtUserProfile(o.profile))
27
- && (isBoolean(o.sessionAuthenticated));
28
- };
29
- export const isFtUserProfile = (o) => {
30
- return isObject(o)
31
- && (o.emailAddress == null || isString(o.emailAddress))
32
- && (o.displayName == null || isString(o.displayName))
33
- && ((Array.isArray(o.roles)))
34
- && (o.userId == null || isString(o.userId));
35
- };
36
19
  export const isFtMapAttachment = (o) => {
37
20
  return isObject(o)
38
21
  && (isString(o.file))
@@ -71,11 +54,3 @@ export const isFtPaginationConfiguration = (o) => {
71
54
  return isObject(o)
72
55
  && (isBoolean(o.splitCurrentPageToc));
73
56
  };
74
- export const isFtMessageContext = (o) => {
75
- return isObject(o)
76
- && (isString(o.name))
77
- && ((isObject(o.messages)
78
- && Object.keys(o.messages).every((k) => isString(k))
79
- && Object.values(o.messages).every((v) => isString(v))))
80
- && (isString(o.locale));
81
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/public-api",
3
- "version": "1.0.31",
3
+ "version": "1.0.33",
4
4
  "description": "Fluid Topics Public API",
5
5
  "author": "Fluid Topics dev team <opensource@antidot.net>",
6
6
  "license": "LGPL-3.0-only",