@fluid-topics/ft-reader-context 0.3.50 → 0.3.52

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.
@@ -71,7 +71,7 @@ export class FtReaderContext extends FtLitElementRedux {
71
71
  if (this._stateManager == null) {
72
72
  this._stateManager = FtReaderStateManager.build(this.id || ("" + Math.round(Math.random() * 999000)).padStart(6, "0"));
73
73
  this._stateManager.errorHandler = (e) => this.handleLoadError(e);
74
- this.store = this.stateManager.store;
74
+ this.addStore(this.stateManager.store);
75
75
  }
76
76
  return this._stateManager;
77
77
  }
@@ -1,9 +1,9 @@
1
- !function(t,e,r,i){function n(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];throw Error("[Immer] minified error nr: "+t+(r.length?" "+r.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function o(t){return!!t&&!!t[q]}function s(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var r=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===V}(t)||Array.isArray(t)||!!t[W]||!!t.constructor[W]||h(t)||d(t))}function u(t,e,r){void 0===r&&(r=!1),0===a(t)?(r?Object.keys:z)(t).forEach((function(i){r&&"symbol"==typeof i||e(i,t[i],t)})):t.forEach((function(r,i){return e(i,r,t)}))}function a(t){var e=t[q];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:h(t)?2:d(t)?3:0}function c(t,e){return 2===a(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function f(t,e,r){var i=a(t);2===i?t.set(e,r):3===i?(t.delete(e),t.add(r)):t[e]=r}function l(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function h(t){return L&&t instanceof Map}function d(t){return $&&t instanceof Set}function v(t){return t.o||t.t}function p(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=J(t);delete e[q];for(var r=z(e),i=0;i<r.length;i++){var n=r[i],o=e[n];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[n]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[n]})}return Object.create(Object.getPrototypeOf(t),e)}function b(t,e){return void 0===e&&(e=!1),g(t)||o(t)||!s(t)||(a(t)>1&&(t.set=t.add=t.clear=t.delete=y),Object.freeze(t),e&&u(t,(function(t,e){return b(e,!0)}),!0)),t}function y(){n(2)}function g(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function m(t){var e=X[t];return e||n(18,t),e}function w(){return k}function I(t,e){e&&(m("Patches"),t.u=[],t.s=[],t.v=e)}function j(t){O(t),t.p.forEach(A),t.p=null}function O(t){t===k&&(k=t.l)}function T(t){return k={p:[],l:k,h:t,m:!0,_:0}}function A(t){var e=t[q];0===e.i||1===e.i?e.j():e.O=!0}function P(t,e){e._=e.p.length;var r=e.p[0],i=void 0!==t&&t!==r;return e.h.g||m("ES5").S(e,t,i),i?(r[q].P&&(j(e),n(4)),s(t)&&(t=S(e,t),e.l||M(e,t)),e.u&&m("Patches").M(r[q].t,t,e.u,e.s)):t=S(e,r,[]),j(e),e.u&&e.v(e.u,e.s),t!==K?t:void 0}function S(t,e,r){if(g(e))return e;var i=e[q];if(!i)return u(e,(function(n,o){return E(t,i,e,n,o,r)}),!0),e;if(i.A!==t)return e;if(!i.P)return M(t,i.t,!0),i.t;if(!i.I){i.I=!0,i.A._--;var n=4===i.i||5===i.i?i.o=p(i.k):i.o;u(3===i.i?new Set(n):n,(function(e,o){return E(t,i,n,e,o,r)})),M(t,n,!1),r&&t.u&&m("Patches").R(i,r,t.u,t.s)}return i.o}function E(t,e,r,i,n,u){if(o(n)){var a=S(t,n,u&&e&&3!==e.i&&!c(e.D,i)?u.concat(i):void 0);if(f(r,i,a),!o(a))return;t.m=!1}if(s(n)&&!g(n)){if(!t.h.F&&t._<1)return;S(t,n),e&&e.A.l||M(t,n)}}function M(t,e,r){void 0===r&&(r=!1),t.h.F&&t.m&&b(e,r)}function R(t,e){var r=t[q];return(r?v(r):t)[e]}function C(t,e){if(e in t)for(var r=Object.getPrototypeOf(t);r;){var i=Object.getOwnPropertyDescriptor(r,e);if(i)return i;r=Object.getPrototypeOf(r)}}function x(t){t.P||(t.P=!0,t.l&&x(t.l))}function N(t){t.o||(t.o=p(t.t))}function U(t,e,r){var i=h(e)?m("MapSet").N(e,r):d(e)?m("MapSet").T(e,r):t.g?function(t,e){var r=Array.isArray(t),i={i:r?1:0,A:e?e.A:w(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},n=i,o=Y;r&&(n=[i],o=H);var s=Proxy.revocable(n,o),u=s.revoke,a=s.proxy;return i.k=a,i.j=u,a}(e,r):m("ES5").J(e,r);return(r?r.A:w()).p.push(i),i}function _(t){return o(t)||n(22,t),function t(e){if(!s(e))return e;var r,i=e[q],n=a(e);if(i){if(!i.P&&(i.i<4||!m("ES5").K(i)))return i.t;i.I=!0,r=B(e,n),i.I=!1}else r=B(e,n);return u(r,(function(e,n){i&&function(t,e){return 2===a(t)?t.get(e):t[e]}(i.t,e)===n||f(r,e,t(n))})),3===n?new Set(r):r}(t)}function B(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return p(t)}var D,k,F="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),L="undefined"!=typeof Map,$="undefined"!=typeof Set,G="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,K=F?Symbol.for("immer-nothing"):((D={})["immer-nothing"]=!0,D),W=F?Symbol.for("immer-draftable"):"__$immer_draftable",q=F?Symbol.for("immer-state"):"__$immer_state",V=""+Object.prototype.constructor,z="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,J=Object.getOwnPropertyDescriptors||function(t){var e={};return z(t).forEach((function(r){e[r]=Object.getOwnPropertyDescriptor(t,r)})),e},X={},Y={get:function(t,e){if(e===q)return t;var r=v(t);if(!c(r,e))return function(t,e,r){var i,n=C(e,r);return n?"value"in n?n.value:null===(i=n.get)||void 0===i?void 0:i.call(t.k):void 0}(t,r,e);var i=r[e];return t.I||!s(i)?i:i===R(t.t,e)?(N(t),t.o[e]=U(t.A.h,i,t)):i},has:function(t,e){return e in v(t)},ownKeys:function(t){return Reflect.ownKeys(v(t))},set:function(t,e,r){var i=C(v(t),e);if(null==i?void 0:i.set)return i.set.call(t.k,r),!0;if(!t.P){var n=R(v(t),e),o=null==n?void 0:n[q];if(o&&o.t===r)return t.o[e]=r,t.D[e]=!1,!0;if(l(r,n)&&(void 0!==r||c(t.t,e)))return!0;N(t),x(t)}return t.o[e]===r&&"number"!=typeof r&&(void 0!==r||e in t.o)||(t.o[e]=r,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==R(t.t,e)||e in t.t?(t.D[e]=!1,N(t),x(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var r=v(t),i=Reflect.getOwnPropertyDescriptor(r,e);return i?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:i.enumerable,value:r[e]}:i},defineProperty:function(){n(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){n(12)}},H={};u(Y,(function(t,e){H[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),H.deleteProperty=function(t,e){return H.set.call(this,t,e,void 0)},H.set=function(t,e,r){return Y.set.call(this,t[0],e,r,t[0])};var Q=function(){function t(t){var e=this;this.g=G,this.F=!0,this.produce=function(t,r,i){if("function"==typeof t&&"function"!=typeof r){var o=r;r=t;var u=e;return function(t){var e=this;void 0===t&&(t=o);for(var i=arguments.length,n=Array(i>1?i-1:0),s=1;s<i;s++)n[s-1]=arguments[s];return u.produce(t,(function(t){var i;return(i=r).call.apply(i,[e,t].concat(n))}))}}var a;if("function"!=typeof r&&n(6),void 0!==i&&"function"!=typeof i&&n(7),s(t)){var c=T(e),f=U(e,t,void 0),l=!0;try{a=r(f),l=!1}finally{l?j(c):O(c)}return"undefined"!=typeof Promise&&a instanceof Promise?a.then((function(t){return I(c,i),P(t,c)}),(function(t){throw j(c),t})):(I(c,i),P(a,c))}if(!t||"object"!=typeof t){if(void 0===(a=r(t))&&(a=t),a===K&&(a=void 0),e.F&&b(a,!0),i){var h=[],d=[];m("Patches").M(t,a,h,d),i(h,d)}return a}n(21,t)},this.produceWithPatches=function(t,r){if("function"==typeof t)return function(r){for(var i=arguments.length,n=Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return e.produceWithPatches(r,(function(e){return t.apply(void 0,[e].concat(n))}))};var i,n,o=e.produce(t,r,(function(t,e){i=t,n=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,i,n]})):[o,i,n]},"boolean"==typeof(null==t?void 0:t.useProxies)&&this.setUseProxies(t.useProxies),"boolean"==typeof(null==t?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze)}var e=t.prototype;return e.createDraft=function(t){s(t)||n(8),o(t)&&(t=_(t));var e=T(this),r=U(this,t,void 0);return r[q].C=!0,O(e),r},e.finishDraft=function(t,e){var r=(t&&t[q]).A;return I(r,e),P(void 0,r)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!G&&n(20),this.g=t},e.applyPatches=function(t,e){var r;for(r=e.length-1;r>=0;r--){var i=e[r];if(0===i.path.length&&"replace"===i.op){t=i.value;break}}r>-1&&(e=e.slice(r+1));var n=m("Patches").$;return o(t)?n(t,e):this.produce(t,(function(t){return n(t,e)}))},t}(),Z=new Q,tt=Z.produce;Z.produceWithPatches.bind(Z),Z.setAutoFreeze.bind(Z),Z.setUseProxies.bind(Z),Z.applyPatches.bind(Z),Z.createDraft.bind(Z),Z.finishDraft.bind(Z);var et,rt=tt,it=(et=function(t,e){return et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},et(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}et(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),nt=function(t,e){for(var r=0,i=e.length,n=t.length;r<i;r++,n++)t[n]=e[r];return t},ot=Object.defineProperty,st=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,ct=function(t,e,r){return e in t?ot(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r},ft=function(t,e){for(var r in e||(e={}))ut.call(e,r)&&ct(t,r,e[r]);if(st)for(var i=0,n=st(e);i<n.length;i++){r=n[i];at.call(e,r)&&ct(t,r,e[r])}return t};function lt(t){return s(t)?rt(t,(function(){})):t}function ht(t,e){function r(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var n=e.apply(void 0,r);if(!n)throw new Error("prepareAction did not return an object");return ft(ft({type:t,payload:n.payload},"meta"in n&&{meta:n.meta}),"error"in n&&{error:n.error})}return{type:t,payload:r[0]}}return r.toString=function(){return""+t},r.type=t,r.match=function(e){return e.type===t},r}function dt(t){var e,r={},i=[],n={addCase:function(t,e){var i="string"==typeof t?t:t.type;if(i in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[i]=e,n},addMatcher:function(t,e){return i.push({matcher:t,reducer:e}),n},addDefaultCase:function(t){return e=t,n}};return t(n),[r,i,e]}function vt(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var r,i="function"==typeof t.initialState?t.initialState:lt(t.initialState),n=t.reducers||{},u=Object.keys(n),a={},c={},f={};function l(){var e="function"==typeof t.extraReducers?dt(t.extraReducers):[t.extraReducers],r=e[0],n=void 0===r?{}:r,u=e[1],a=void 0===u?[]:u,f=e[2],l=void 0===f?void 0:f,h=ft(ft({},n),c);return function(t,e,r,i){void 0===r&&(r=[]);var n,u="function"==typeof e?dt(e):[e,r,i],a=u[0],c=u[1],f=u[2];if(function(t){return"function"==typeof t}(t))n=function(){return lt(t())};else{var l=lt(t);n=function(){return l}}function h(t,e){void 0===t&&(t=n());var r=nt([a[e.type]],c.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===r.filter((function(t){return!!t})).length&&(r=[f]),r.reduce((function(t,r){if(r){var i;if(o(t))return void 0===(i=r(t,e))?t:i;if(s(t))return rt(t,(function(t){return r(t,e)}));if(void 0===(i=r(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return i}return t}),t)}return h.getInitialState=n,h}(i,h,a,l)}return u.forEach((function(t){var r,i,o=n[t],s=e+"/"+t;"reducer"in o?(r=o.reducer,i=o.prepare):r=o,a[t]=r,c[s]=r,f[t]=i?ht(s,i):ht(s)})),{name:e,reducer:function(t,e){return r||(r=l()),r(t,e)},actions:f,caseReducers:a,getInitialState:function(){return r||(r=l()),r.getInitialState()}}}!function(t){function e(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];var n=t.apply(this,r)||this;return Object.setPrototypeOf(n,e.prototype),n}it(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,nt([void 0],t[0].concat(this)))):new(e.bind.apply(e,nt([void 0],t.concat(this))))}}(Array);var pt="listenerMiddleware";ht(pt+"/add"),ht(pt+"/removeAll"),ht(pt+"/remove"),function(){function t(t,e){var r=n[t];return r?r.enumerable=e:n[t]=r={configurable:!0,enumerable:e,get:function(){var e=this[q];return Y.get(e,t)},set:function(e){var r=this[q];Y.set(r,t,e)}},r}function e(t){for(var e=t.length-1;e>=0;e--){var n=t[e][q];if(!n.P)switch(n.i){case 5:i(n)&&x(n);break;case 4:r(n)&&x(n)}}}function r(t){for(var e=t.t,r=t.k,i=z(r),n=i.length-1;n>=0;n--){var o=i[n];if(o!==q){var s=e[o];if(void 0===s&&!c(e,o))return!0;var u=r[o],a=u&&u[q];if(a?a.t!==s:!l(u,s))return!0}}var f=!!e[q];return i.length!==z(e).length+(f?0:1)}function i(t){var e=t.k;if(e.length!==t.t.length)return!0;var r=Object.getOwnPropertyDescriptor(e,e.length-1);if(r&&!r.get)return!0;for(var i=0;i<e.length;i++)if(!e.hasOwnProperty(i))return!0;return!1}var n={};!function(t,e){X[t]||(X[t]=e)}("ES5",{J:function(e,r){var i=Array.isArray(e),n=function(e,r){if(e){for(var i=Array(r.length),n=0;n<r.length;n++)Object.defineProperty(i,""+n,t(n,!0));return i}var o=J(r);delete o[q];for(var s=z(o),u=0;u<s.length;u++){var a=s[u];o[a]=t(a,e||!!o[a].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(i,e),o={i:i?5:4,A:r?r.A:w(),P:!1,I:!1,D:{},l:r,t:e,k:n,o:null,O:!1,C:!1};return Object.defineProperty(n,q,{value:o,writable:!0}),n},S:function(t,r,n){n?o(r)&&r[q].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var r=e[q];if(r){var n=r.t,o=r.k,s=r.D,a=r.i;if(4===a)u(o,(function(e){e!==q&&(void 0!==n[e]||c(n,e)?s[e]||t(o[e]):(s[e]=!0,x(r)))})),u(n,(function(t){void 0!==o[t]||c(o,t)||(s[t]=!1,x(r))}));else if(5===a){if(i(r)&&(x(r),s.length=!0),o.length<n.length)for(var f=o.length;f<n.length;f++)s[f]=!1;else for(var l=n.length;l<o.length;l++)s[l]=!0;for(var h=Math.min(o.length,n.length),d=0;d<h;d++)o.hasOwnProperty(d)||(s[d]=!0),void 0===s[d]&&t(o[d])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?r(t):i(t)}})}();const bt={setBaseUrl:(t,e)=>{t.baseUrl=e.payload},setApiIntegrationIdentifier:(t,e)=>{t.apiIntegrationIdentifier=e.payload},setMapId:(t,e)=>{t.mapId=e.payload},setTocId:(t,e)=>{t.tocId=e.payload},setMap:(t,e)=>{t.map=e.payload},setToc:(t,e)=>{t.toc=e.payload},setPagesToc:(t,e)=>{t.pagesToc=e.payload},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload},setRenderBeforeFirst:(t,e)=>{t.renderBeforeFirst=e.payload},setRenderAfterLast:(t,e)=>{t.renderAfterLast=e.payload},setLabels:(t,e)=>{t.labels=e.payload}},yt={topicMissingAdvice:"Sorry, this topic is missing",somethingWentWrong:"Oops, something went wrong"};class gt{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,e,r){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,r)),null==t.tocId?this.extractPagesToc(t.children,e,r):[{tocId:t.tocId,title:t.title,depth:e,children:this.extractPagesToc(t.children,e+1,t.tocId)}])))}convertNodes(t,e,r){return t.flatMap((t=>{var i,n,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(i=t.pageToc)&&void 0!==i?i:[],e,t.tocId),...this.convertNodes(t.children,e,t.tocId)];let s=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const u={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:s,depth:e,parentTocId:r,children:[]};this.register(u);const a=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],e+1,t.tocId),c=this.convertNodes(t.children,e+1,u.tocId);return u.children=[...a,...c],[u]}))}convertSectionNodes(t,e,r){return t.flatMap((t=>{var i;let n=null===(i=t.prettyUrl)||void 0===i?void 0:i.replace(/^\//,"");const o={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:n,depth:e,parentTocId:r,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,e+1,t.tocId),[o]}))}buildPage(t,e){var r,i,n,o,s,u;const a={number:this.pages.length+1,title:null!==(r=t.title)&&void 0!==r?r:"",rootTocId:null!==(i=t.tocId)&&void 0!==i?i:"root",toc:(null!==(n=t.pageToc)&&void 0!==n?n:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:e?this.buildBreadcrumb(this.nodeByTocId[e]):[]},c=(t,e)=>(e?a.topics:a.hiddenTopics).push(t),f=null!==(s=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==s?s:[];return a.breadcrumb.forEach(((t,e)=>{c(t,f[e])})),t.tocId&&c(t.tocId,t.pageConfiguration.isVisible),a.topics.push(...this.tocIds(null!==(u=t.pageToc)&&void 0!==u?u:[])),a}registerPage(t){for(let e of[...t.topics,...t.hiddenTopics])this.pageByTocId[e]||(this.pageByTocId[e]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const e=[t.tocId];for(;null==t?void 0:t.parentTocId;)e.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return e}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class mt{convertPaginatedToc(t){return new gt(t).build()}}class wt{constructor(t,r,i,n){this.converter=t,this.api=r,this.baseUrl=i,this.mapId=n,this.topics={},this.topicContents={},this.labelResolver=new e.ParametrizedLabelResolver(yt,{}),i.endsWith("/")||(this.baseUrl=i+"/")}static build(t,e,r){if(null==window.fluidtopics)throw console.error("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api"),new Error("Fluid Topics public API not found");return new wt(new mt,new window.fluidtopics.FluidTopicsApi(t,e,!0),t,r)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={},this.ratingSummary=void 0}getMap(){return this.loadIfNeeded((()=>this.map),(t=>this.map=t),(()=>this.api.getMap(this.mapId)))}getEnrichedToc(){return this.loadIfNeeded((()=>this.enrichedToc),(t=>this.enrichedToc=t),(()=>this.api.getPages(this.mapId).then((t=>this.converter.convertPaginatedToc(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var e;if(!("boolean"==typeof this.enrichedToc||this.enrichedToc instanceof Error))return null===(e=this.enrichedToc)||void 0===e?void 0:e.nodeByTocId[t]}async getPage(t){const e=await this.getEnrichedToc();return e.pages[t-1]||e.pages[0]}async getPageByTocId(t){const e=await this.getEnrichedToc();return e.pageByTocId[t]||e.pages[0]}getTopicInfo(t){return this.loadIfNeeded((()=>this.topics[t]),(e=>this.topics[t]=e),(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.loadIfNeeded((()=>this.topicContents[t]),(e=>this.topicContents[t]=e),(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,e,r){const i=this.getNavigationData(t,e,r),n="r/"+(i.prettyUrl?i.prettyUrl:`${i.mapId}/${i.tocId}`),o=new URL(n,this.baseUrl);return null!=i.page&&o.searchParams.set("page",`${i.page}`),i.prettyUrlDuplicated&&o.searchParams.set("tocId",i.tocId),null!=i.section&&o.searchParams.set("section",i.section),o.href}getNavigationData(t,e,r){var i,n;t=t||"root";const o="object"==typeof this.enrichedToc?this.enrichedToc:void 0,s=null==o?void 0:o.pageByTocId[t],u=null==o?void 0:o.nodeByTocId[t],a=null==u?void 0:u.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(i=null==u?void 0:u.title)&&void 0!==i?i:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=a?a.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(n=null==o?void 0:o.duplicatedPrettyUrls.has(null!=a?a:""))&&void 0!==n&&n,section:r}}async getAccurateNavigationData(t,e,r){return await this.getEnrichedToc(),this.getNavigationData(t,e,r)}async loadIfNeeded(t,r,i){for(void 0===t()&&(r(!0),r(await i().catch((t=>t))));!0===t();)await e.delay(10);const n=t();if(n instanceof Error)throw n;return n}set labels(t){this.labelResolver=new e.ParametrizedLabelResolver(yt,t)}resolveLabel(t,...e){return this.labelResolver.resolve(t,e)}getRatingSummary(){return this.loadIfNeeded((()=>this.ratingSummary),(t=>this.ratingSummary=t),(()=>this.api.getMapRating(this.mapId)))}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((e=>{var r;return{type:e.topics.type,rating:null===(r=e.topics)||void 0===r?void 0:r.ratings.find((e=>e.tocId===t))}}))}rateMap(t,e){return this.api.rateMap(this.mapId,t,e).then((()=>this.ratingSummary=void 0))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.ratingSummary=void 0))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,e,r){return this.api.rateTopic(this.mapId,t,e,r).then((()=>this.ratingSummary=void 0))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.ratingSummary=void 0))}sendTopicFeedback(t,e){return this.api.sendTopicFeedback(this.mapId,t,e)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class It{constructor(t,r){this.store=t,this.slice=r,this.reloadDebouncer=new e.Debouncer(10)}static build(t){const r=(t=>vt({name:"ft-reader-"+t,initialState:{baseUrl:void 0,apiIntegrationIdentifier:"ft-reader",mapId:void 0,visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3,labels:{}},reducers:bt}))(t.trim()||"context");return new It(e.getStore(r),r)}setBaseUrl(t){this.setRequiredStateField("baseUrl","setBaseUrl",t)}setApiIntegrationIdentifier(t){this.setRequiredStateField("apiIntegrationIdentifier","setApiIntegrationIdentifier",t)}setMapId(t){this.setRequiredStateField("mapId","setMapId",t)}setRenderBeforeFirst(t){this.dispatch(this.slice.actions.setRenderBeforeFirst(t))}setRenderAfterLast(t){this.dispatch(this.slice.actions.setRenderAfterLast(t))}setVisibleTopics(t){this.dispatch(this.slice.actions.setVisibleTopics(t))}setLabels(t){this.dispatch(this.slice.actions.setLabels(t)),this.service&&(this.service.labels=t)}async awaitService(){for(;null==this.service;)await e.delay(5);return this.service}async navigateToTopic(t,e,r){const i=await this.awaitService();let n=await(null!=r?i.getPage(r):i.getPageByTocId(t));this.dispatch(this.slice.actions.setCurrentPage(n),this.slice.actions.setScrollTarget({tocId:t,section:e}))}async navigateToPage(t){const e=await this.awaitService();let r=await e.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(r))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,e,r){this.store.getState()[t]!==r&&(this.dispatch(this.slice.actions[e](r)),this.reload())}reload(){const t=this.store.getState();return t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?(this.service=wt.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId),this.service.labels=t.labels):this.service=void 0,this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setPagesToc(void 0),this.slice.actions.setCurrentPage(void 0)),this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,e,r;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getMap().then((t=>this.dispatch(this.slice.actions.setMap(t)))),null===(e=this.service)||void 0===e?void 0:e.getToc().then((t=>this.dispatch(this.slice.actions.setToc(t)))),null===(r=this.service)||void 0===r?void 0:r.getPagesToc().then((t=>this.dispatch(this.slice.actions.setPagesToc(t))))])}catch(t){this.errorHandler&&this.errorHandler(t)}}dispatch(...t){for(let e of t)this.store.dispatch(e)}}const jt=r.css`
2
- `;var Ot=function(t,e,r,i){for(var n,o=arguments.length,s=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,r):i,u=t.length-1;u>=0;u--)(n=t[u])&&(s=(o<3?n(s):o>3?n(e,r,s):n(e,r))||s);return o>3&&s&&Object.defineProperty(e,r,s),s};class Tt extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class At extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class Pt extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class St extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class Et extends Event{constructor(){super("ft-reader-map-not-found")}}class Mt extends Event{constructor(){super("ft-reader-map-unauthorized")}}const Rt=t=>e=>+(null!=e?e:"NaN")>0?+e:t;class Ct extends e.FtLitElementRedux{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.labels={},this.visibleTopics=[],this.navigationDebouncer=new e.Debouncer(5)}render(){return r.html`
1
+ !function(t,i,e,s){const r={setBaseUrl:(t,i)=>{t.baseUrl=i.payload},setApiIntegrationIdentifier:(t,i)=>{t.apiIntegrationIdentifier=i.payload},setMapId:(t,i)=>{t.mapId=i.payload},setTocId:(t,i)=>{t.tocId=i.payload},setMap:(t,i)=>{t.map=i.payload},setToc:(t,i)=>{t.toc=i.payload},setPagesToc:(t,i)=>{t.pagesToc=i.payload},setPaginationConfiguration:(t,i)=>{t.paginationConfiguration=i.payload},setCurrentPage:(t,i)=>{t.currentPage=i.payload},setScrollTarget:(t,i)=>{t.scrollTarget=i.payload},setVisibleTopics:(t,i)=>{t.visibleTopics=i.payload},setRenderBeforeFirst:(t,i)=>{t.renderBeforeFirst=i.payload},setRenderAfterLast:(t,i)=>{t.renderAfterLast=i.payload},setLabels:(t,i)=>{t.labels=i.payload}},n={topicMissingAdvice:"Sorry, this topic is missing",somethingWentWrong:"Oops, something went wrong"};class o{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,i,e){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,e)),null==t.tocId?this.extractPagesToc(t.children,i,e):[{tocId:t.tocId,title:t.title,depth:i,children:this.extractPagesToc(t.children,i+1,t.tocId)}])))}convertNodes(t,i,e){return t.flatMap((t=>{var s,r,n;if(null==t.tocId)return[...this.convertSectionNodes(null!==(s=t.pageToc)&&void 0!==s?s:[],i,t.tocId),...this.convertNodes(t.children,i,t.tocId)];let o=null===(r=t.prettyUrl)||void 0===r?void 0:r.replace(/^\//,"");const h={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:o,depth:i,parentTocId:e,children:[]};this.register(h);const a=this.convertSectionNodes(null!==(n=t.pageToc)&&void 0!==n?n:[],i+1,t.tocId),l=this.convertNodes(t.children,i+1,h.tocId);return h.children=[...a,...l],[h]}))}convertSectionNodes(t,i,e){return t.flatMap((t=>{var s;let r=null===(s=t.prettyUrl)||void 0===s?void 0:s.replace(/^\//,"");const n={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:r,depth:i,parentTocId:e,children:[]};return this.register(n),n.children=this.convertSectionNodes(t.children,i+1,t.tocId),[n]}))}buildPage(t,i){var e,s,r,n,o,h;const a={number:this.pages.length+1,title:null!==(e=t.title)&&void 0!==e?e:"",rootTocId:null!==(s=t.tocId)&&void 0!==s?s:"root",toc:(null!==(r=t.pageToc)&&void 0!==r?r:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:i?this.buildBreadcrumb(this.nodeByTocId[i]):[]},l=(t,i)=>(i?a.topics:a.hiddenTopics).push(t),d=null!==(o=null===(n=t.pageConfiguration)||void 0===n?void 0:n.parentsVisibility)&&void 0!==o?o:[];return a.breadcrumb.forEach(((t,i)=>{l(t,d[i])})),t.tocId&&l(t.tocId,t.pageConfiguration.isVisible),a.topics.push(...this.tocIds(null!==(h=t.pageToc)&&void 0!==h?h:[])),a}registerPage(t){for(let i of[...t.topics,...t.hiddenTopics])this.pageByTocId[i]||(this.pageByTocId[i]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const i=[t.tocId];for(;null==t?void 0:t.parentTocId;)i.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return i}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class h{convertPaginatedToc(t){return new o(t).build()}}class a{constructor(t,e,s,r,o,h){this.converter=t,this.api=e,this.cache=s,this.baseUrl=r,this.labelResolver=new i.ParametrizedLabelResolver(n,{}),r.endsWith("/")||(this.baseUrl=r+"/"),this.mapId=o,this.labels=null!=h?h:{},this.initCache()}static build(t,e,s,r){if(null==window.fluidtopics)throw console.error("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api"),new Error("Fluid Topics public API not found");const n=new window.fluidtopics.FluidTopicsApi(t,e,!0);return new a(new h,n,new i.CacheRegistry,t,s,r)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}initCache(){this.cache.register("map",(()=>this.api.getMap(this.mapId))),this.cache.register("enrichedToc",(()=>this.api.getPages(this.mapId).then((t=>this.converter.convertPaginatedToc(t))))),this.cache.register("ratingSummary",(()=>this.api.getMapRating(this.mapId)))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var i;return null===(i=this.enrichedToc)||void 0===i?void 0:i.nodeByTocId[t]}async getPage(t){const i=await this.getEnrichedToc();return i.pages[t-1]||i.pages[0]}async getPageByTocId(t){const i=await this.getEnrichedToc();return i.pageByTocId[t]||i.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,i,e){const s=this.getNavigationData(t,i,e),r="r/"+(s.prettyUrl?s.prettyUrl:`${s.mapId}/${s.tocId}`),n=new URL(r,this.baseUrl);return null!=s.page&&n.searchParams.set("page",`${s.page}`),s.prettyUrlDuplicated&&n.searchParams.set("tocId",s.tocId),null!=s.section&&n.searchParams.set("section",s.section),n.href}getNavigationData(t,i,e){var s,r;t=t||"root";const n=this.enrichedToc,o=null==n?void 0:n.pageByTocId[t],h=null==n?void 0:n.nodeByTocId[t],a=null==h?void 0:h.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(s=null==h?void 0:h.title)&&void 0!==s?s:"",page:i&&o&&o.number!==i?i:void 0,prettyUrl:null!=a?a.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(r=null==n?void 0:n.duplicatedPrettyUrls.has(null!=a?a:""))&&void 0!==r&&r,section:e}}async getAccurateNavigationData(t,i,e){return await this.getEnrichedToc(),this.getNavigationData(t,i,e)}set labels(t){this.labelResolver=new i.ParametrizedLabelResolver(n,t)}resolveLabel(t,...i){return this.labelResolver.resolve(t,i)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((i=>{var e;return{type:i.topics.type,rating:null===(e=i.topics)||void 0===e?void 0:e.ratings.find((i=>i.tocId===t))}}))}rateMap(t,i){return this.api.rateMap(this.mapId,t,i).then((()=>this.cache.clear("ratingSummary")))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.cache.clear("ratingSummary")))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,i,e){return this.api.rateTopic(this.mapId,t,i,e).then((()=>this.cache.clear("ratingSummary")))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.cache.clear("ratingSummary")))}sendTopicFeedback(t,i){return this.api.sendTopicFeedback(this.mapId,t,i)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class l{constructor(t){this.store=t,this.reloadDebouncer=new i.Debouncer(10)}static build(t){return new l((t=>i.FtReduxStore.get({name:"ft-reader-"+t,initialState:{baseUrl:void 0,apiIntegrationIdentifier:"ft-reader",mapId:void 0,visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3,labels:{}},reducers:r}))(t.trim()||"context"))}setBaseUrl(t){this.store.actions.setBaseUrl(t),this.initService()}setApiIntegrationIdentifier(t){this.store.actions.setApiIntegrationIdentifier(t),this.initService()}initService(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier?this.service=a.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId,t.labels):this.service=void 0,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setRenderBeforeFirst(t){this.store.actions.setRenderBeforeFirst(t)}setRenderAfterLast(t){this.store.actions.setRenderAfterLast(t)}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}setLabels(t){this.store.actions.setLabels(t),this.service&&(this.service.labels=t)}async awaitService(){for(;null==this.service;)await i.delay(5);return this.service}async navigateToTopic(t,i,e){const s=await this.awaitService();let r=await(null!=e?s.getPage(e):s.getPageByTocId(t));this.store.actions.setCurrentPage(r),this.store.actions.setScrollTarget({tocId:t,section:i})}async navigateToPage(t){const i=await this.awaitService();let e=await i.getPage(t);this.store.actions.setCurrentPage(e)}scrollDone(){this.store.actions.setScrollTarget({})}reload(){var t;return null===(t=this.service)||void 0===t||t.clear(),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,i,e,s;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getMap().then((t=>this.store.actions.setMap(t))),null===(i=this.service)||void 0===i?void 0:i.getToc().then((t=>this.store.actions.setToc(t))),null===(e=this.service)||void 0===e?void 0:e.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(s=this.service)||void 0===s?void 0:s.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const d=e.css`
2
+ `;var c=function(t,i,e,s){for(var r,n=arguments.length,o=n<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s,h=t.length-1;h>=0;h--)(r=t[h])&&(o=(n<3?r(o):n>3?r(i,e,o):r(i,e))||o);return n>3&&o&&Object.defineProperty(i,e,o),o};class u extends CustomEvent{constructor(t,i){super("ft-reader-map-loaded",{detail:{map:t,toc:i}})}}class v extends CustomEvent{constructor(t,i){super("ft-reader-visible-topics-change",{detail:{visibleTopics:i}})}}class p extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class g extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class m extends Event{constructor(){super("ft-reader-map-not-found")}}class f extends Event{constructor(){super("ft-reader-map-unauthorized")}}const w=t=>i=>+(null!=i?i:"NaN")>0?+i:t;class b extends i.FtLitElementRedux{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.labels={},this.visibleTopics=[],this.navigationDebouncer=new i.Debouncer(5)}render(){return e.html`
3
3
  ${this.importStyleIfNeeded()}
4
4
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
5
- `}importStyleIfNeeded(){var t,e;return!this.stateManager.service||window.location.href.startsWith(null!==(t=this.baseUrl)&&void 0!==t?t:"")?r.nothing:r.html`
5
+ `}importStyleIfNeeded(){var t,i;return!this.stateManager.service||window.location.href.startsWith(null!==(t=this.baseUrl)&&void 0!==t?t:"")?e.nothing:e.html`
6
6
  <style>
7
- @import "${null===(e=this.stateManager.service)||void 0===e?void 0:e.themeStylesheet()}"
7
+ @import "${null===(i=this.stateManager.service)||void 0===i?void 0:i.themeStylesheet()}"
8
8
  </style>
9
- `}get stateManager(){return null==this._stateManager&&(this._stateManager=It.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this._stateManager.errorHandler=t=>this.handleLoadError(t),this.store=this.stateManager.store),this._stateManager}connectedCallback(){super.connectedCallback(),this.stateManager.awaitService().then((t=>{const e=t.fontsStylesheet();if(!window.location.href.startsWith(this.baseUrl)&&!document.querySelector(`head link[href="${e}"]`)){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",e),document.head.append(t)}}))}updated(t){super.updated(t),t.has("baseUrl")&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.stateManager.setMapId(this.mapId),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):t.has("page")&&!this.tocId&&null!=this.page?this.stateManager.navigateToPage(this.page):t.has("mapId")&&this.mapId&&this.navigateToTarget(),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast),t.has("labels")&&this.stateManager.setLabels(this.labels)}contentAvailableCallback(t){var e;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new Tt(this.map,this.toc)),t.has("scrollTarget")&&null==(null===(e=this.scrollTarget)||void 0===e?void 0:e.tocId)){const e=t.get("scrollTarget");null!=(null==e?void 0:e.tocId)&&this.navigationDebouncer.run((()=>{var t;return this.stateManager.service.getAccurateNavigationData(e.tocId,null===(t=this.currentPage)||void 0===t?void 0:t.number,e.section).then((t=>this.dispatchEvent(new Pt(t))))}))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>{var e;return this.stateManager.service.getAccurateNavigationData(t,null===(e=this.currentPage)||void 0===e?void 0:e.number)}))).then((t=>{let e=t.filter((t=>null!=t&&""!==t.topicTitle)).map((t=>({tocId:t.tocId,title:t.topicTitle,page:t.page,prettyUrl:t.prettyUrl,prettyUrlDuplicated:t.prettyUrlDuplicated,breadcrumb:this.buildBreadcrumb(t.tocId)})));this.dispatchEvent(new At(this.map,e))}))}buildBreadcrumb(t){var e,r,i,n;let o=[],s=null===(r=null===(e=this.stateManager.service)||void 0===e?void 0:e.getTocNodeNow(t))||void 0===r?void 0:r.parentTocId,u=null===(i=this.stateManager.service)||void 0===i?void 0:i.getTocNodeNow(s);for(;u;)o.unshift({tocId:u.tocId,title:u.title}),u=null===(n=this.stateManager.service)||void 0===n?void 0:n.getTocNodeNow(u.parentTocId);return o}async reload(){await this.stateManager.reload(),this.navigateToTarget()}navigateToTarget(){null!=this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):null!=this.page&&this.stateManager.navigateToPage(this.page)}registerComponent(t){t.stopPropagation();const e=t.composedPath()[0];this.register(e)}register(t){t.setReaderStateManager(this.stateManager)}handleLoadError(t){const e=t;404===e.status?this.dispatchEvent(new Et):401===e.status?this.dispatchEvent(new Mt):this.dispatchEvent(new St(t))}}Ct.styles=jt,Ot([i.property()],Ct.prototype,"baseUrl",void 0),Ot([i.property()],Ct.prototype,"apiIntegrationIdentifier",void 0),Ot([i.property()],Ct.prototype,"mapId",void 0),Ot([i.property()],Ct.prototype,"tocId",void 0),Ot([i.property()],Ct.prototype,"section",void 0),Ot([i.property({type:Number,converter:{fromAttribute:Rt()}})],Ct.prototype,"page",void 0),Ot([i.property({type:Number,converter:{fromAttribute:Rt(2)}})],Ct.prototype,"renderBeforeFirst",void 0),Ot([i.property({type:Number,converter:{fromAttribute:Rt(3)}})],Ct.prototype,"renderAfterLast",void 0),Ot([e.jsonProperty({})],Ct.prototype,"labels",void 0),Ot([e.redux()],Ct.prototype,"map",void 0),Ot([e.redux()],Ct.prototype,"toc",void 0),Ot([e.redux()],Ct.prototype,"visibleTopics",void 0),Ot([e.redux()],Ct.prototype,"currentPage",void 0),Ot([e.redux()],Ct.prototype,"scrollTarget",void 0),e.customElement("ft-reader-context")(Ct),t.FtReaderContext=Ct,t.FtReaderContextCssVariables={},t.LoadErrorEvent=St,t.MapLoadedEvent=Tt,t.NavigationDoneEvent=Pt,t.NotFoundErrorEvent=Et,t.UnauthorizedErrorEvent=Mt,t.VisibleTopicsChangeEvent=At,t.styles=jt,Object.defineProperty(t,"U",{value:!0})}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
9
+ `}get stateManager(){return null==this._stateManager&&(this._stateManager=l.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this._stateManager.errorHandler=t=>this.handleLoadError(t),this.addStore(this.stateManager.store)),this._stateManager}connectedCallback(){super.connectedCallback(),this.stateManager.awaitService().then((t=>{const i=t.fontsStylesheet();if(!window.location.href.startsWith(this.baseUrl)&&!document.querySelector(`head link[href="${i}"]`)){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",i),document.head.append(t)}}))}updated(t){super.updated(t),t.has("baseUrl")&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.stateManager.setMapId(this.mapId),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):t.has("page")&&!this.tocId&&null!=this.page?this.stateManager.navigateToPage(this.page):t.has("mapId")&&this.mapId&&this.navigateToTarget(),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast),t.has("labels")&&this.stateManager.setLabels(this.labels)}contentAvailableCallback(t){var i;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new u(this.map,this.toc)),t.has("scrollTarget")&&null==(null===(i=this.scrollTarget)||void 0===i?void 0:i.tocId)){const i=t.get("scrollTarget");null!=(null==i?void 0:i.tocId)&&this.navigationDebouncer.run((()=>{var t;return this.stateManager.service.getAccurateNavigationData(i.tocId,null===(t=this.currentPage)||void 0===t?void 0:t.number,i.section).then((t=>this.dispatchEvent(new p(t))))}))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>{var i;return this.stateManager.service.getAccurateNavigationData(t,null===(i=this.currentPage)||void 0===i?void 0:i.number)}))).then((t=>{let i=t.filter((t=>null!=t&&""!==t.topicTitle)).map((t=>({tocId:t.tocId,title:t.topicTitle,page:t.page,prettyUrl:t.prettyUrl,prettyUrlDuplicated:t.prettyUrlDuplicated,breadcrumb:this.buildBreadcrumb(t.tocId)})));this.dispatchEvent(new v(this.map,i))}))}buildBreadcrumb(t){var i,e,s,r;let n=[],o=null===(e=null===(i=this.stateManager.service)||void 0===i?void 0:i.getTocNodeNow(t))||void 0===e?void 0:e.parentTocId,h=null===(s=this.stateManager.service)||void 0===s?void 0:s.getTocNodeNow(o);for(;h;)n.unshift({tocId:h.tocId,title:h.title}),h=null===(r=this.stateManager.service)||void 0===r?void 0:r.getTocNodeNow(h.parentTocId);return n}async reload(){await this.stateManager.reload(),this.navigateToTarget()}navigateToTarget(){null!=this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):null!=this.page&&this.stateManager.navigateToPage(this.page)}registerComponent(t){t.stopPropagation();const i=t.composedPath()[0];this.register(i)}register(t){t.setReaderStateManager(this.stateManager)}handleLoadError(t){const i=t;404===i.status?this.dispatchEvent(new m):401===i.status?this.dispatchEvent(new f):this.dispatchEvent(new g(t))}}b.styles=d,c([s.property()],b.prototype,"baseUrl",void 0),c([s.property()],b.prototype,"apiIntegrationIdentifier",void 0),c([s.property()],b.prototype,"mapId",void 0),c([s.property()],b.prototype,"tocId",void 0),c([s.property()],b.prototype,"section",void 0),c([s.property({type:Number,converter:{fromAttribute:w()}})],b.prototype,"page",void 0),c([s.property({type:Number,converter:{fromAttribute:w(2)}})],b.prototype,"renderBeforeFirst",void 0),c([s.property({type:Number,converter:{fromAttribute:w(3)}})],b.prototype,"renderAfterLast",void 0),c([i.jsonProperty({})],b.prototype,"labels",void 0),c([i.redux()],b.prototype,"map",void 0),c([i.redux()],b.prototype,"toc",void 0),c([i.redux()],b.prototype,"visibleTopics",void 0),c([i.redux()],b.prototype,"currentPage",void 0),c([i.redux()],b.prototype,"scrollTarget",void 0),i.customElement("ft-reader-context")(b),t.FtReaderContext=b,t.FtReaderContextCssVariables={},t.LoadErrorEvent=g,t.MapLoadedEvent=u,t.NavigationDoneEvent=p,t.NotFoundErrorEvent=m,t.UnauthorizedErrorEvent=f,t.VisibleTopicsChangeEvent=v,t.styles=d,Object.defineProperty(t,"t",{value:!0})}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
@@ -14,50 +14,50 @@
14
14
  *
15
15
  * @see https://github.com/webcomponents/polyfills/tree/master/packages/scoped-custom-element-registry
16
16
  */
17
- if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,i=window.customElements.get,r=window.customElements,n=new WeakMap,o=new WeakMap,s=new WeakMap,a=new WeakMap;let u;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,n){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(n))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const a=n.prototype.attributeChangedCallback,u=new Set(n.observedAttributes||[]);f(n,u,a);const c={elementClass:n,connectedCallback:n.prototype.connectedCallback,disconnectedCallback:n.prototype.disconnectedCallback,adoptedCallback:n.prototype.adoptedCallback,attributeChangedCallback:a,formAssociated:n.formAssociated,formAssociatedCallback:n.prototype.formAssociatedCallback,formDisabledCallback:n.prototype.formDisabledCallback,formResetCallback:n.prototype.formResetCallback,formStateRestoreCallback:n.prototype.formStateRestoreCallback,observedAttributes:u};this._definitionsByTag.set(t,c),this._definitionsByClass.set(n,c);let l=i.call(r,t);l||(l=h(t),e.call(r,t,l)),this===window.customElements&&(s.set(n,c),c.standInClass=l);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)o.delete(t),v(t,c,!0)}const p=this._whenDefinedPromises.get(t);return void 0!==p&&(p.resolve(n),this._whenDefinedPromises.delete(t)),n}upgrade(){b.push(this),r.upgrade.apply(r,arguments),b.pop()}get(t){return this._definitionsByTag.get(t)?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const e=this._getDefinition(t);if(void 0!==e)return Promise.resolve(e.elementClass);let i=this._whenDefinedPromises.get(t);return void 0===i&&(i={},i.promise=new Promise((t=>i.resolve=t)),this._whenDefinedPromises.set(t,i)),i.promise}_upgradeWhenDefined(t,e,i){let r=this._awaitingUpgrade.get(e);r||this._awaitingUpgrade.set(e,r=new Set),i?r.add(t):r.delete(t)}},window.HTMLElement=function(){let e=u;if(e)return u=void 0,e;const i=s.get(this.constructor);if(!i)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return e=Reflect.construct(t,[],i.standInClass),Object.setPrototypeOf(e,this.constructor.prototype),n.set(e,i),e},window.HTMLElement.prototype=t.prototype;const c=t=>t===document||t instanceof ShadowRoot,l=t=>{let e=t.getRootNode();if(!c(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),c(e)||(e=a.get(e)?.getRootNode()||document)}return e.customElements},h=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const r=l(i)||window.customElements,n=r._getDefinition(e);return n?v(i,n):o.set(i,r),i}connectedCallback(){const t=n.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=n.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){n.get(this)?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=n.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=n.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=n.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=n.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},f=(t,e,i)=>{if(0===e.size||void 0===i)return;const r=t.prototype.setAttribute;r&&(t.prototype.setAttribute=function(t,n){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);r.call(this,o,n),i.call(this,o,t,n)}else r.call(this,o,n)});const n=t.prototype.removeAttribute;n&&(t.prototype.removeAttribute=function(t){const r=t.toLowerCase();if(e.has(r)){const t=this.getAttribute(r);n.call(this,r),i.call(this,r,t,null)}else n.call(this,r)})},d=e=>{const i=Object.getPrototypeOf(e);if(i!==window.HTMLElement)return i===t||"HTMLElement"===i?.prototype?.constructor?.name?Object.setPrototypeOf(e,window.HTMLElement):d(i)},v=(t,e,i=!1)=>{Object.setPrototypeOf(t,e.elementClass.prototype),n.set(t,e),u=t;try{new e.elementClass}catch(t){d(e.elementClass),new e.elementClass}e.observedAttributes.forEach((i=>{t.hasAttribute(i)&&e.attributeChangedCallback.call(t,i,null,t.getAttribute(i))})),i&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},p=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const e=p.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};let b=[document];const w=(t,e,i)=>{const r=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=r.apply(i||this,arguments);return void 0!==t&&a.set(t,this),b.pop(),t}};w(ShadowRoot,"createElement",document),w(ShadowRoot,"importNode",document),w(Element,"insertAdjacentHTML");const y=(t,e)=>{const i=Object.getOwnPropertyDescriptor(t.prototype,e);Object.defineProperty(t.prototype,e,{...i,set(t){b.push(this),i.set.call(this,t),b.pop()}})};if(y(Element,"innerHTML"),y(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,e=HTMLElement.prototype.attachInternals,i=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...i){const r=e.call(this,...i);return t.set(r,this),r},i.forEach((e=>{const i=window.ElementInternals.prototype,r=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==n.get(i).formAssociated)throw new DOMException(`Failed to execute ${r} on 'ElementInternals': The target element is not a form-associated custom element.`);r?.call(this,...e)}}));class r extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class o{constructor(t){const e=new Map;t.forEach(((t,i)=>{const r=t.getAttribute("name"),n=e.get(r)||[];this[+i]=t,n.push(t),e.set(r,n)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new r(t))}))}namedItem(t){return this[t]}}const s=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=s.get.call(this,[]),e=[];for(const i of t){const t=n.get(i);t&&!0!==t.formAssociated||e.push(i)}return new o(e)}})}}try{window.customElements.define("custom-element",null)}catch(t){const e=window.customElements.define;window.customElements.define=(t,i,r)=>{try{e.bind(window.customElements)(t,i,r)}catch(e){console.info(t,i,r,e)}}}class e{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){return this.callbacks=[t],this.debounce(e)}queue(t,e){return this.callbacks.push(t),this.debounce(e)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,e)=>{this.resolvePromise=t,this.rejectPromise=e}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,e;const i=[...this.callbacks];this.callbacks=[];const r=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,n=null!==(e=this.resolvePromise)&&void 0!==e?e:()=>null;this.clearPromise();for(let t of i)try{await t()}catch(t){return void r(t)}n(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
17
+ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,i=window.customElements.get,r=window.customElements,n=new WeakMap,o=new WeakMap,s=new WeakMap,u=new WeakMap;let a;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,n){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(n))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const u=n.prototype.attributeChangedCallback,a=new Set(n.observedAttributes||[]);f(n,a,u);const c={elementClass:n,connectedCallback:n.prototype.connectedCallback,disconnectedCallback:n.prototype.disconnectedCallback,adoptedCallback:n.prototype.adoptedCallback,attributeChangedCallback:u,formAssociated:n.formAssociated,formAssociatedCallback:n.prototype.formAssociatedCallback,formDisabledCallback:n.prototype.formDisabledCallback,formResetCallback:n.prototype.formResetCallback,formStateRestoreCallback:n.prototype.formStateRestoreCallback,observedAttributes:a};this._definitionsByTag.set(t,c),this._definitionsByClass.set(n,c);let l=i.call(r,t);l||(l=h(t),e.call(r,t,l)),this===window.customElements&&(s.set(n,c),c.standInClass=l);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)o.delete(t),v(t,c,!0)}const p=this._whenDefinedPromises.get(t);return void 0!==p&&(p.resolve(n),this._whenDefinedPromises.delete(t)),n}upgrade(){b.push(this),r.upgrade.apply(r,arguments),b.pop()}get(t){return this._definitionsByTag.get(t)?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const e=this._getDefinition(t);if(void 0!==e)return Promise.resolve(e.elementClass);let i=this._whenDefinedPromises.get(t);return void 0===i&&(i={},i.promise=new Promise((t=>i.resolve=t)),this._whenDefinedPromises.set(t,i)),i.promise}_upgradeWhenDefined(t,e,i){let r=this._awaitingUpgrade.get(e);r||this._awaitingUpgrade.set(e,r=new Set),i?r.add(t):r.delete(t)}},window.HTMLElement=function(){let e=a;if(e)return a=void 0,e;const i=s.get(this.constructor);if(!i)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return e=Reflect.construct(t,[],i.standInClass),Object.setPrototypeOf(e,this.constructor.prototype),n.set(e,i),e},window.HTMLElement.prototype=t.prototype;const c=t=>t===document||t instanceof ShadowRoot,l=t=>{let e=t.getRootNode();if(!c(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),c(e)||(e=u.get(e)?.getRootNode()||document)}return e.customElements},h=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const r=l(i)||window.customElements,n=r._getDefinition(e);return n?v(i,n):o.set(i,r),i}connectedCallback(){const t=n.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=n.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){n.get(this)?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=n.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=n.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=n.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=n.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},f=(t,e,i)=>{if(0===e.size||void 0===i)return;const r=t.prototype.setAttribute;r&&(t.prototype.setAttribute=function(t,n){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);r.call(this,o,n),i.call(this,o,t,n)}else r.call(this,o,n)});const n=t.prototype.removeAttribute;n&&(t.prototype.removeAttribute=function(t){const r=t.toLowerCase();if(e.has(r)){const t=this.getAttribute(r);n.call(this,r),i.call(this,r,t,null)}else n.call(this,r)})},d=e=>{const i=Object.getPrototypeOf(e);if(i!==window.HTMLElement)return i===t||"HTMLElement"===i?.prototype?.constructor?.name?Object.setPrototypeOf(e,window.HTMLElement):d(i)},v=(t,e,i=!1)=>{Object.setPrototypeOf(t,e.elementClass.prototype),n.set(t,e),a=t;try{new e.elementClass}catch(t){d(e.elementClass),new e.elementClass}e.observedAttributes.forEach((i=>{t.hasAttribute(i)&&e.attributeChangedCallback.call(t,i,null,t.getAttribute(i))})),i&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},p=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const e=p.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};let b=[document];const w=(t,e,i)=>{const r=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=r.apply(i||this,arguments);return void 0!==t&&u.set(t,this),b.pop(),t}};w(ShadowRoot,"createElement",document),w(ShadowRoot,"importNode",document),w(Element,"insertAdjacentHTML");const y=(t,e)=>{const i=Object.getOwnPropertyDescriptor(t.prototype,e);Object.defineProperty(t.prototype,e,{...i,set(t){b.push(this),i.set.call(this,t),b.pop()}})};if(y(Element,"innerHTML"),y(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,e=HTMLElement.prototype.attachInternals,i=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...i){const r=e.call(this,...i);return t.set(r,this),r},i.forEach((e=>{const i=window.ElementInternals.prototype,r=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==n.get(i).formAssociated)throw new DOMException(`Failed to execute ${r} on 'ElementInternals': The target element is not a form-associated custom element.`);r?.call(this,...e)}}));class r extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class o{constructor(t){const e=new Map;t.forEach(((t,i)=>{const r=t.getAttribute("name"),n=e.get(r)||[];this[+i]=t,n.push(t),e.set(r,n)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new r(t))}))}namedItem(t){return this[t]}}const s=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=s.get.call(this,[]),e=[];for(const i of t){const t=n.get(i);t&&!0!==t.formAssociated||e.push(i)}return new o(e)}})}}try{window.customElements.define("custom-element",null)}catch(t){const e=window.customElements.define;window.customElements.define=(t,i,r)=>{try{e.bind(window.customElements)(t,i,r)}catch(e){console.info(t,i,r,e)}}}class e extends Promise{constructor(t){super(((e,i)=>t((t=>{this.isCanceled?i(new Error("Promise has been canceled")):e(t)}),(t=>{this.isCanceled?i(new Error("Promise has been canceled")):i(t)})))),this.isCanceled=!1}cancel(){this.isCanceled=!0}}class i{constructor(){this.loaders={},this.content={},this.finalContent=new Set}register(t,e){this.loaders[t]=e,this.finalContent.delete(t)}registerFinal(t,e){this.loaders[t]=e,this.finalContent.add(t)}clearAll(){for(let t in this.content)this.clear(t)}clear(t){this.finalContent.has(t)||(this.content[t]instanceof e&&this.content[t].cancel(),delete this.content[t])}async get(t,i){if(void 0===this.content[t]){if(null==(i=null!=i?i:this.loaders[t]))throw new Error("Unknown cache key "+t);const n=(r=i(),new e(((t,e)=>r.then(t).catch(e))));return this.content[t]=n,n.then((e=>(this.content[t]=e,e)))}var r;if(this.content[t]instanceof Error)throw this.content[t];return this.content[t]}getNow(t){if(!(this.content[t]instanceof Promise||this.content[t]instanceof Error))return this.content[t]}}class r{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){return this.callbacks=[t],this.debounce(e)}queue(t,e){return this.callbacks.push(t),this.debounce(e)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,e)=>{this.resolvePromise=t,this.rejectPromise=e}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,e;const i=[...this.callbacks];this.callbacks=[];const r=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,n=null!==(e=this.resolvePromise)&&void 0!==e?e:()=>null;this.clearPromise();for(let t of i)try{await t()}catch(t){return void r(t)}n(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
18
18
  /**
19
19
  * @license
20
20
  * Copyright 2017 Google LLC
21
21
  * SPDX-License-Identifier: BSD-3-Clause
22
- */const i=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function r(t){return(e,r)=>void 0!==r?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,r):i(t,e)
22
+ */const n=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function o(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):n(t,e)
23
23
  /**
24
24
  * @license
25
25
  * Copyright 2021 Google LLC
26
26
  * SPDX-License-Identifier: BSD-3-Clause
27
- */}var n;null===(n=window.HTMLSlotElement)||void 0===n||n.prototype.assignedElements;function o(t,e){const i=()=>JSON.parse(JSON.stringify(t));return r({type:Object,converter:{fromAttribute:t=>{if(null==t)return i();try{return JSON.parse(t)}catch{return i()}},toAttribute:t=>JSON.stringify(t)},...null!=e?e:{}})}function s(t,e){try{return function(t,e){if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;var i,r,n;if(Array.isArray(t)){if((i=t.length)!=e.length)return!1;for(r=i;0!=r--;)if(!s(t[r],e[r]))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(r of t.entries())if(!e.has(r[0]))return!1;for(r of t.entries())if(!s(r[1],e.get(r[0])))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(r of t.entries())if(!e.has(r[0]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if((i=(n=Object.keys(t)).length)!==Object.keys(e).length)return!1;for(r=i;0!=r--;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=i;0!=r--;){var o=n[r];if(!s(t[o],e[o]))return!1}return!0}return t!=t&&e!=e}(t,e)}catch(t){return!1}}const a=t=>new Promise((e=>setTimeout(e,t)))
27
+ */}var s;null===(s=window.HTMLSlotElement)||void 0===s||s.prototype.assignedElements;function u(t,e){const i=()=>JSON.parse(JSON.stringify(t));return o({type:Object,converter:{fromAttribute:t=>{if(null==t)return i();try{return JSON.parse(t)}catch{return i()}},toAttribute:t=>JSON.stringify(t)},...null!=e?e:{}})}function a(t,e){try{return function(t,e){if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;var i,r,n;if(Array.isArray(t)){if((i=t.length)!=e.length)return!1;for(r=i;0!=r--;)if(!a(t[r],e[r]))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(r of t.entries())if(!e.has(r[0]))return!1;for(r of t.entries())if(!a(r[1],e.get(r[0])))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(r of t.entries())if(!e.has(r[0]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if((i=(n=Object.keys(t)).length)!==Object.keys(e).length)return!1;for(r=i;0!=r--;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=i;0!=r--;){var o=n[r];if(!a(t[o],e[o]))return!1}return!0}return t!=t&&e!=e}(t,e)}catch(t){return!1}}const c=t=>new Promise((e=>setTimeout(e,t)))
28
28
  /**
29
29
  * @license
30
30
  * Copyright 2019 Google LLC
31
31
  * SPDX-License-Identifier: BSD-3-Clause
32
- */,u=window,c=u.ShadowRoot&&(void 0===u.ShadyCSS||u.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,l=Symbol(),h=new WeakMap;class f{constructor(t,e,i){if(this._$cssResult$=!0,i!==l)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(c&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=h.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&h.set(e,t))}return t}toString(){return this.cssText}}const d=t=>new f("string"==typeof t?t:t+"",void 0,l),v=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[r+1]),t[0]);return new f(i,t,l)},p=(t,e)=>{c?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),r=u.litNonce;void 0!==r&&i.setAttribute("nonce",r),i.textContent=e.cssText,t.appendChild(i)}))},b=c?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return d(e)})(t):t
32
+ */,l=window,h=l.ShadowRoot&&(void 0===l.ShadyCSS||l.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,f=Symbol(),d=new WeakMap;class v{constructor(t,e,i){if(this._$cssResult$=!0,i!==f)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(h&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=d.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&d.set(e,t))}return t}toString(){return this.cssText}}const p=t=>new v("string"==typeof t?t:t+"",void 0,f),b=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[r+1]),t[0]);return new v(i,t,f)},w=(t,e)=>{h?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),r=l.litNonce;void 0!==r&&i.setAttribute("nonce",r),i.textContent=e.cssText,t.appendChild(i)}))},y=h?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return p(e)})(t):t
33
33
  /**
34
34
  * @license
35
35
  * Copyright 2017 Google LLC
36
36
  * SPDX-License-Identifier: BSD-3-Clause
37
- */;var w;const y=window,m=y.trustedTypes,g=m?m.emptyScript:"",x=y.reactiveElementPolyfillSupport,O={toAttribute(t,e){switch(e){case Boolean:t=t?g:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},E=(t,e)=>e!==t&&(e==e||t==t),j={attribute:!0,type:String,converter:O,reflect:!1,hasChanged:E};class N extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const r=this._$Ep(i,e);void 0!==r&&(this._$Ev.set(r,i),t.push(r))})),t}static createProperty(t,e=j){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,r=this.getPropertyDescriptor(t,i,e);void 0!==r&&Object.defineProperty(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(r){const n=this[t];this[e]=r,this.requestUpdate(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||j}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(b(t))}else void 0!==t&&e.push(b(t));return e}static _$Ep(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return p(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=j){var r;const n=this.constructor._$Ep(t,i);if(void 0!==n&&!0===i.reflect){const o=(void 0!==(null===(r=i.converter)||void 0===r?void 0:r.toAttribute)?i.converter:O).toAttribute(e,i.type);this._$El=t,null==o?this.removeAttribute(n):this.setAttribute(n,o),this._$El=null}}_$AK(t,e){var i;const r=this.constructor,n=r._$Ev.get(t);if(void 0!==n&&this._$El!==n){const t=r.getPropertyOptions(n),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:O;this._$El=n,this[n]=o.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let r=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||E)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):r=!1),!this.isUpdatePending&&r&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}
37
+ */;var m;const g=window,x=g.trustedTypes,O=x?x.emptyScript:"",E=g.reactiveElementPolyfillSupport,S={toAttribute(t,e){switch(e){case Boolean:t=t?O:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},j=(t,e)=>e!==t&&(e==e||t==t),N={attribute:!0,type:String,converter:S,reflect:!1,hasChanged:j};class R extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const r=this._$Ep(i,e);void 0!==r&&(this._$Ev.set(r,i),t.push(r))})),t}static createProperty(t,e=N){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,r=this.getPropertyDescriptor(t,i,e);void 0!==r&&Object.defineProperty(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(r){const n=this[t];this[e]=r,this.requestUpdate(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||N}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(y(t))}else void 0!==t&&e.push(y(t));return e}static _$Ep(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return w(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=N){var r;const n=this.constructor._$Ep(t,i);if(void 0!==n&&!0===i.reflect){const o=(void 0!==(null===(r=i.converter)||void 0===r?void 0:r.toAttribute)?i.converter:S).toAttribute(e,i.type);this._$El=t,null==o?this.removeAttribute(n):this.setAttribute(n,o),this._$El=null}}_$AK(t,e){var i;const r=this.constructor,n=r._$Ev.get(t);if(void 0!==n&&this._$El!==n){const t=r.getPropertyOptions(n),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:S;this._$El=n,this[n]=o.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let r=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||j)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):r=!1),!this.isUpdatePending&&r&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}
38
38
  /**
39
39
  * @license
40
40
  * Copyright 2017 Google LLC
41
41
  * SPDX-License-Identifier: BSD-3-Clause
42
42
  */
43
- var S;N.finalized=!0,N.elementProperties=new Map,N.elementStyles=[],N.shadowRootOptions={mode:"open"},null==x||x({ReactiveElement:N}),(null!==(w=y.reactiveElementVersions)&&void 0!==w?w:y.reactiveElementVersions=[]).push("1.4.1");const R=window,C=R.trustedTypes,M=C?C.createPolicy("lit-html",{createHTML:t=>t}):void 0,A=`lit$${(Math.random()+"").slice(9)}$`,T="?"+A,I=`<${T}>`,U=document,$=(t="")=>U.createComment(t),k=t=>null===t||"object"!=typeof t&&"function"!=typeof t,F=Array.isArray,P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,B=/>/g,_=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),W=/'/g,D=/"/g,K=/^(?:script|style|textarea|title)$/i,H=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),z=Symbol.for("lit-noChange"),J=Symbol.for("lit-nothing"),V=new WeakMap,Z=U.createTreeWalker(U,129,null,!1);class q{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let n=0,o=0;const s=t.length-1,a=this.parts,[u,c]=((t,e)=>{const i=t.length-1,r=[];let n,o=2===e?"<svg>":"",s=P;for(let e=0;e<i;e++){const i=t[e];let a,u,c=-1,l=0;for(;l<i.length&&(s.lastIndex=l,u=s.exec(i),null!==u);)l=s.lastIndex,s===P?"!--"===u[1]?s=L:void 0!==u[1]?s=B:void 0!==u[2]?(K.test(u[2])&&(n=RegExp("</"+u[2],"g")),s=_):void 0!==u[3]&&(s=_):s===_?">"===u[0]?(s=null!=n?n:P,c=-1):void 0===u[1]?c=-2:(c=s.lastIndex-u[2].length,a=u[1],s=void 0===u[3]?_:'"'===u[3]?D:W):s===D||s===W?s=_:s===L||s===B?s=P:(s=_,n=void 0);const h=s===_&&t[e+1].startsWith("/>")?" ":"";o+=s===P?i+I:c>=0?(r.push(a),i.slice(0,c)+"$lit$"+i.slice(c)+A+h):i+A+(-2===c?(r.push(void 0),e):h)}const a=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==M?M.createHTML(a):a,r]})(t,e);if(this.el=q.createElement(u,i),Z.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(r=Z.nextNode())&&a.length<s;){if(1===r.nodeType){if(r.hasAttributes()){const t=[];for(const e of r.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(A)){const i=c[o++];if(t.push(e),void 0!==i){const t=r.getAttribute(i.toLowerCase()+"$lit$").split(A),e=/([.?@])?(.*)/.exec(i);a.push({type:1,index:n,name:e[2],strings:t,ctor:"."===e[1]?tt:"?"===e[1]?it:"@"===e[1]?rt:Q})}else a.push({type:6,index:n})}for(const e of t)r.removeAttribute(e)}if(K.test(r.tagName)){const t=r.textContent.split(A),e=t.length-1;if(e>0){r.textContent=C?C.emptyScript:"";for(let i=0;i<e;i++)r.append(t[i],$()),Z.nextNode(),a.push({type:2,index:++n});r.append(t[e],$())}}}else if(8===r.nodeType)if(r.data===T)a.push({type:2,index:n});else{let t=-1;for(;-1!==(t=r.data.indexOf(A,t+1));)a.push({type:7,index:n}),t+=A.length-1}n++}}static createElement(t,e){const i=U.createElement("template");return i.innerHTML=t,i}}function X(t,e,i=t,r){var n,o,s,a;if(e===z)return e;let u=void 0!==r?null===(n=i._$Co)||void 0===n?void 0:n[r]:i._$Cl;const c=k(e)?void 0:e._$litDirective$;return(null==u?void 0:u.constructor)!==c&&(null===(o=null==u?void 0:u._$AO)||void 0===o||o.call(u,!1),void 0===c?u=void 0:(u=new c(t),u._$AT(t,i,r)),void 0!==r?(null!==(s=(a=i)._$Co)&&void 0!==s?s:a._$Co=[])[r]=u:i._$Cl=u),void 0!==u&&(e=X(t,u._$AS(t,e.values),u,r)),e}class G{constructor(t,e){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var e;const{el:{content:i},parts:r}=this._$AD,n=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:U).importNode(i,!0);Z.currentNode=n;let o=Z.nextNode(),s=0,a=0,u=r[0];for(;void 0!==u;){if(s===u.index){let e;2===u.type?e=new Y(o,o.nextSibling,this,t):1===u.type?e=new u.ctor(o,u.name,u.strings,this,t):6===u.type&&(e=new nt(o,this,t)),this.u.push(e),u=r[++a]}s!==(null==u?void 0:u.index)&&(o=Z.nextNode(),s++)}return n}p(t){let e=0;for(const i of this.u)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class Y{constructor(t,e,i,r){var n;this.type=2,this._$AH=J,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=r,this._$Cm=null===(n=null==r?void 0:r.isConnected)||void 0===n||n}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=X(this,t,e),k(t)?t===J||null==t||""===t?(this._$AH!==J&&this._$AR(),this._$AH=J):t!==this._$AH&&t!==z&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>F(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]))(t)?this.k(t):this.g(t)}O(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==J&&k(this._$AH)?this._$AA.nextSibling.data=t:this.T(U.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:r}=t,n="number"==typeof r?this._$AC(t):(void 0===r.el&&(r.el=q.createElement(r.h,this.options)),r);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===n)this._$AH.p(i);else{const t=new G(n,this),e=t.v(this.options);t.p(i),this.T(e),this._$AH=t}}_$AC(t){let e=V.get(t.strings);return void 0===e&&V.set(t.strings,e=new q(t)),e}k(t){F(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,r=0;for(const n of t)r===e.length?e.push(i=new Y(this.O($()),this.O($()),this,this.options)):i=e[r],i._$AI(n),r++;r<e.length&&(this._$AR(i&&i._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cm=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class Q{constructor(t,e,i,r,n){this.type=1,this._$AH=J,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=n,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=J}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,r){const n=this.strings;let o=!1;if(void 0===n)t=X(this,t,e,0),o=!k(t)||t!==this._$AH&&t!==z,o&&(this._$AH=t);else{const r=t;let s,a;for(t=n[0],s=0;s<n.length-1;s++)a=X(this,r[i+s],e,s),a===z&&(a=this._$AH[s]),o||(o=!k(a)||a!==this._$AH[s]),a===J?t=J:t!==J&&(t+=(null!=a?a:"")+n[s+1]),this._$AH[s]=a}o&&!r&&this.j(t)}j(t){t===J?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class tt extends Q{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===J?void 0:t}}const et=C?C.emptyScript:"";class it extends Q{constructor(){super(...arguments),this.type=4}j(t){t&&t!==J?this.element.setAttribute(this.name,et):this.element.removeAttribute(this.name)}}class rt extends Q{constructor(t,e,i,r,n){super(t,e,i,r,n),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=X(this,t,e,0))&&void 0!==i?i:J)===z)return;const r=this._$AH,n=t===J&&r!==J||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==J&&(r===J||n);n&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class nt{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){X(this,t)}}const ot=R.litHtmlPolyfillSupport;null==ot||ot(q,Y),(null!==(S=R.litHtmlVersions)&&void 0!==S?S:R.litHtmlVersions=[]).push("2.4.0");
43
+ var C;R.finalized=!0,R.elementProperties=new Map,R.elementStyles=[],R.shadowRootOptions={mode:"open"},null==E||E({ReactiveElement:R}),(null!==(m=g.reactiveElementVersions)&&void 0!==m?m:g.reactiveElementVersions=[]).push("1.4.1");const M=window,A=M.trustedTypes,T=A?A.createPolicy("lit-html",{createHTML:t=>t}):void 0,U=`lit$${(Math.random()+"").slice(9)}$`,I="?"+U,$=`<${I}>`,k=document,P=(t="")=>k.createComment(t),F=t=>null===t||"object"!=typeof t&&"function"!=typeof t,L=Array.isArray,_=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,B=/-->/g,W=/>/g,D=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),K=/'/g,H=/"/g,z=/^(?:script|style|textarea|title)$/i,J=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),V=Symbol.for("lit-noChange"),Z=Symbol.for("lit-nothing"),q=new WeakMap,X=k.createTreeWalker(k,129,null,!1);class G{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let n=0,o=0;const s=t.length-1,u=this.parts,[a,c]=((t,e)=>{const i=t.length-1,r=[];let n,o=2===e?"<svg>":"",s=_;for(let e=0;e<i;e++){const i=t[e];let u,a,c=-1,l=0;for(;l<i.length&&(s.lastIndex=l,a=s.exec(i),null!==a);)l=s.lastIndex,s===_?"!--"===a[1]?s=B:void 0!==a[1]?s=W:void 0!==a[2]?(z.test(a[2])&&(n=RegExp("</"+a[2],"g")),s=D):void 0!==a[3]&&(s=D):s===D?">"===a[0]?(s=null!=n?n:_,c=-1):void 0===a[1]?c=-2:(c=s.lastIndex-a[2].length,u=a[1],s=void 0===a[3]?D:'"'===a[3]?H:K):s===H||s===K?s=D:s===B||s===W?s=_:(s=D,n=void 0);const h=s===D&&t[e+1].startsWith("/>")?" ":"";o+=s===_?i+$:c>=0?(r.push(u),i.slice(0,c)+"$lit$"+i.slice(c)+U+h):i+U+(-2===c?(r.push(void 0),e):h)}const u=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==T?T.createHTML(u):u,r]})(t,e);if(this.el=G.createElement(a,i),X.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(r=X.nextNode())&&u.length<s;){if(1===r.nodeType){if(r.hasAttributes()){const t=[];for(const e of r.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(U)){const i=c[o++];if(t.push(e),void 0!==i){const t=r.getAttribute(i.toLowerCase()+"$lit$").split(U),e=/([.?@])?(.*)/.exec(i);u.push({type:1,index:n,name:e[2],strings:t,ctor:"."===e[1]?it:"?"===e[1]?nt:"@"===e[1]?ot:et})}else u.push({type:6,index:n})}for(const e of t)r.removeAttribute(e)}if(z.test(r.tagName)){const t=r.textContent.split(U),e=t.length-1;if(e>0){r.textContent=A?A.emptyScript:"";for(let i=0;i<e;i++)r.append(t[i],P()),X.nextNode(),u.push({type:2,index:++n});r.append(t[e],P())}}}else if(8===r.nodeType)if(r.data===I)u.push({type:2,index:n});else{let t=-1;for(;-1!==(t=r.data.indexOf(U,t+1));)u.push({type:7,index:n}),t+=U.length-1}n++}}static createElement(t,e){const i=k.createElement("template");return i.innerHTML=t,i}}function Y(t,e,i=t,r){var n,o,s,u;if(e===V)return e;let a=void 0!==r?null===(n=i._$Co)||void 0===n?void 0:n[r]:i._$Cl;const c=F(e)?void 0:e._$litDirective$;return(null==a?void 0:a.constructor)!==c&&(null===(o=null==a?void 0:a._$AO)||void 0===o||o.call(a,!1),void 0===c?a=void 0:(a=new c(t),a._$AT(t,i,r)),void 0!==r?(null!==(s=(u=i)._$Co)&&void 0!==s?s:u._$Co=[])[r]=a:i._$Cl=a),void 0!==a&&(e=Y(t,a._$AS(t,e.values),a,r)),e}class Q{constructor(t,e){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var e;const{el:{content:i},parts:r}=this._$AD,n=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:k).importNode(i,!0);X.currentNode=n;let o=X.nextNode(),s=0,u=0,a=r[0];for(;void 0!==a;){if(s===a.index){let e;2===a.type?e=new tt(o,o.nextSibling,this,t):1===a.type?e=new a.ctor(o,a.name,a.strings,this,t):6===a.type&&(e=new st(o,this,t)),this.u.push(e),a=r[++u]}s!==(null==a?void 0:a.index)&&(o=X.nextNode(),s++)}return n}p(t){let e=0;for(const i of this.u)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class tt{constructor(t,e,i,r){var n;this.type=2,this._$AH=Z,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=r,this._$Cm=null===(n=null==r?void 0:r.isConnected)||void 0===n||n}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Y(this,t,e),F(t)?t===Z||null==t||""===t?(this._$AH!==Z&&this._$AR(),this._$AH=Z):t!==this._$AH&&t!==V&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>L(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]))(t)?this.k(t):this.g(t)}O(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==Z&&F(this._$AH)?this._$AA.nextSibling.data=t:this.T(k.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:r}=t,n="number"==typeof r?this._$AC(t):(void 0===r.el&&(r.el=G.createElement(r.h,this.options)),r);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===n)this._$AH.p(i);else{const t=new Q(n,this),e=t.v(this.options);t.p(i),this.T(e),this._$AH=t}}_$AC(t){let e=q.get(t.strings);return void 0===e&&q.set(t.strings,e=new G(t)),e}k(t){L(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,r=0;for(const n of t)r===e.length?e.push(i=new tt(this.O(P()),this.O(P()),this,this.options)):i=e[r],i._$AI(n),r++;r<e.length&&(this._$AR(i&&i._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cm=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class et{constructor(t,e,i,r,n){this.type=1,this._$AH=Z,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=n,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=Z}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,r){const n=this.strings;let o=!1;if(void 0===n)t=Y(this,t,e,0),o=!F(t)||t!==this._$AH&&t!==V,o&&(this._$AH=t);else{const r=t;let s,u;for(t=n[0],s=0;s<n.length-1;s++)u=Y(this,r[i+s],e,s),u===V&&(u=this._$AH[s]),o||(o=!F(u)||u!==this._$AH[s]),u===Z?t=Z:t!==Z&&(t+=(null!=u?u:"")+n[s+1]),this._$AH[s]=u}o&&!r&&this.j(t)}j(t){t===Z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class it extends et{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===Z?void 0:t}}const rt=A?A.emptyScript:"";class nt extends et{constructor(){super(...arguments),this.type=4}j(t){t&&t!==Z?this.element.setAttribute(this.name,rt):this.element.removeAttribute(this.name)}}class ot extends et{constructor(t,e,i,r,n){super(t,e,i,r,n),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=Y(this,t,e,0))&&void 0!==i?i:Z)===V)return;const r=this._$AH,n=t===Z&&r!==Z||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==Z&&(r===Z||n);n&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class st{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){Y(this,t)}}const ut=M.litHtmlPolyfillSupport;null==ut||ut(G,tt),(null!==(C=M.litHtmlVersions)&&void 0!==C?C:M.litHtmlVersions=[]).push("2.4.0");
44
44
  /**
45
45
  * @license
46
46
  * Copyright 2017 Google LLC
47
47
  * SPDX-License-Identifier: BSD-3-Clause
48
48
  */
49
- var st,at;class ut extends N{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,i)=>{var r,n;const o=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:e;let s=o._$litPart$;if(void 0===s){const t=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:null;o._$litPart$=s=new Y(e.insertBefore($(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return z}}ut.finalized=!0,ut._$litElement$=!0,null===(st=globalThis.litElementHydrateSupport)||void 0===st||st.call(globalThis,{LitElement:ut});const ct=globalThis.litElementPolyfillSupport;null==ct||ct({LitElement:ut}),(null!==(at=globalThis.litElementVersions)&&void 0!==at?at:globalThis.litElementVersions=[]).push("3.2.2");class lt{static create(t,e,i){let r=t=>d(null!=t?t:i),n=v`var(${d(t)}, ${r(i)})`;return n.name=t,n.category=e,n.defaultValue=i,n.defaultCssValue=r,n.get=e=>v`var(${d(t)}, ${r(e)})`,n.breadcrumb=()=>[],n.lastResortDefaultValue=()=>i,n}static extend(t,e,i){let r=t=>e.get(null!=t?t:i),n=v`var(${d(t)}, ${r(i)})`;return n.name=t,n.category=e.category,n.fallbackVariable=e,n.defaultValue=i,n.defaultCssValue=r,n.get=e=>v`var(${d(t)}, ${r(e)})`,n.breadcrumb=()=>[e.name,...e.breadcrumb()],n.lastResortDefaultValue=()=>i,n}static external(t,e){let i=e=>t.fallbackVariable?t.fallbackVariable.get(null!=e?e:t.defaultValue):d(null!=e?e:t.defaultValue),r=v`var(${d(t.name)}, ${i(t.defaultValue)})`;return r.name=t.name,r.category=t.category,r.fallbackVariable=t.fallbackVariable,r.defaultValue=t.defaultValue,r.context=e,r.defaultCssValue=i,r.get=e=>v`var(${d(t.name)}, ${i(e)})`,r.breadcrumb=()=>t.fallbackVariable?[t.fallbackVariable.name,...t.fallbackVariable.breadcrumb()]:[],r.lastResortDefaultValue=()=>{var e,i;return null!==(e=t.defaultValue)&&void 0!==e?e:null===(i=t.fallbackVariable)||void 0===i?void 0:i.lastResortDefaultValue()},r}}lt.create("--ft-color-primary","COLOR","#2196F3"),lt.create("--ft-color-primary-variant","COLOR","#1976D2"),lt.create("--ft-color-secondary","COLOR","#FFCC80"),lt.create("--ft-color-secondary-variant","COLOR","#F57C00"),lt.create("--ft-color-surface","COLOR","#FFFFFF"),lt.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),lt.create("--ft-color-error","COLOR","#B00020"),lt.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),lt.create("--ft-color-opacity-high","NUMBER","1"),lt.create("--ft-color-opacity-medium","NUMBER","0.74"),lt.create("--ft-color-opacity-disabled","NUMBER","0.38"),lt.create("--ft-color-on-primary","COLOR","#FFFFFF"),lt.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),lt.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),lt.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),lt.create("--ft-color-on-secondary","COLOR","#FFFFFF"),lt.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),lt.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),lt.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),lt.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),lt.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),lt.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),lt.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),lt.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),lt.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),lt.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),lt.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),lt.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),lt.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),lt.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),lt.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),lt.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),lt.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),lt.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),lt.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),lt.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),lt.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),lt.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),lt.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),lt.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),lt.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),lt.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),lt.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),lt.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),lt.create("--ft-elevation-00","UNKNOWN","0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0)"),lt.create("--ft-elevation-01","UNKNOWN","0px 1px 4px 0px rgba(0, 0, 0, 0.06), 0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-02","UNKNOWN","0px 4px 10px 0px rgba(0, 0, 0, 0.06), 0px 2px 5px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-03","UNKNOWN","0px 6px 13px 0px rgba(0, 0, 0, 0.06), 0px 3px 7px 0px rgba(0, 0, 0, 0.14), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-04","UNKNOWN","0px 8px 16px 0px rgba(0, 0, 0, 0.06), 0px 4px 9px 0px rgba(0, 0, 0, 0.14), 0px 2px 3px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-06","UNKNOWN","0px 12px 22px 0px rgba(0, 0, 0, 0.06), 0px 6px 13px 0px rgba(0, 0, 0, 0.14), 0px 4px 5px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-08","UNKNOWN","0px 16px 28px 0px rgba(0, 0, 0, 0.06), 0px 8px 17px 0px rgba(0, 0, 0, 0.14), 0px 6px 7px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-12","UNKNOWN","0px 22px 40px 0px rgba(0, 0, 0, 0.06), 0px 12px 23px 0px rgba(0, 0, 0, 0.14), 0px 10px 11px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-16","UNKNOWN","0px 28px 52px 0px rgba(0, 0, 0, 0.06), 0px 16px 29px 0px rgba(0, 0, 0, 0.14), 0px 14px 15px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-elevation-24","UNKNOWN","0px 40px 76px 0px rgba(0, 0, 0, 0.06), 0px 24px 41px 0px rgba(0, 0, 0, 0.14), 0px 22px 23px 0px rgba(0, 0, 0, 0.06)"),lt.create("--ft-border-radius-S","SIZE","4px"),lt.create("--ft-border-radius-M","SIZE","8px"),lt.create("--ft-border-radius-L","SIZE","12px"),lt.create("--ft-border-radius-XL","SIZE","16px"),lt.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),lt.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),lt.create("--ft-transition-duration","UNKNOWN","250ms"),lt.create("--ft-transition-timing-function","UNKNOWN","ease-in-out");var ht=function(t,e,i,r){for(var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r,a=t.length-1;a>=0;a--)(n=t[a])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class ft extends(
49
+ var at,ct;class lt extends R{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,i)=>{var r,n;const o=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:e;let s=o._$litPart$;if(void 0===s){const t=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:null;o._$litPart$=s=new tt(e.insertBefore(P(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return V}}lt.finalized=!0,lt._$litElement$=!0,null===(at=globalThis.litElementHydrateSupport)||void 0===at||at.call(globalThis,{LitElement:lt});const ht=globalThis.litElementPolyfillSupport;null==ht||ht({LitElement:lt}),(null!==(ct=globalThis.litElementVersions)&&void 0!==ct?ct:globalThis.litElementVersions=[]).push("3.2.2");class ft{static create(t,e,i){let r=t=>p(null!=t?t:i),n=b`var(${p(t)}, ${r(i)})`;return n.name=t,n.category=e,n.defaultValue=i,n.defaultCssValue=r,n.get=e=>b`var(${p(t)}, ${r(e)})`,n.breadcrumb=()=>[],n.lastResortDefaultValue=()=>i,n}static extend(t,e,i){let r=t=>e.get(null!=t?t:i),n=b`var(${p(t)}, ${r(i)})`;return n.name=t,n.category=e.category,n.fallbackVariable=e,n.defaultValue=i,n.defaultCssValue=r,n.get=e=>b`var(${p(t)}, ${r(e)})`,n.breadcrumb=()=>[e.name,...e.breadcrumb()],n.lastResortDefaultValue=()=>i,n}static external(t,e){let i=e=>t.fallbackVariable?t.fallbackVariable.get(null!=e?e:t.defaultValue):p(null!=e?e:t.defaultValue),r=b`var(${p(t.name)}, ${i(t.defaultValue)})`;return r.name=t.name,r.category=t.category,r.fallbackVariable=t.fallbackVariable,r.defaultValue=t.defaultValue,r.context=e,r.defaultCssValue=i,r.get=e=>b`var(${p(t.name)}, ${i(e)})`,r.breadcrumb=()=>t.fallbackVariable?[t.fallbackVariable.name,...t.fallbackVariable.breadcrumb()]:[],r.lastResortDefaultValue=()=>{var e,i;return null!==(e=t.defaultValue)&&void 0!==e?e:null===(i=t.fallbackVariable)||void 0===i?void 0:i.lastResortDefaultValue()},r}}ft.create("--ft-color-primary","COLOR","#2196F3"),ft.create("--ft-color-primary-variant","COLOR","#1976D2"),ft.create("--ft-color-secondary","COLOR","#FFCC80"),ft.create("--ft-color-secondary-variant","COLOR","#F57C00"),ft.create("--ft-color-surface","COLOR","#FFFFFF"),ft.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-error","COLOR","#B00020"),ft.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),ft.create("--ft-color-opacity-high","NUMBER","1"),ft.create("--ft-color-opacity-medium","NUMBER","0.74"),ft.create("--ft-color-opacity-disabled","NUMBER","0.38"),ft.create("--ft-color-on-primary","COLOR","#FFFFFF"),ft.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),ft.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),ft.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),ft.create("--ft-color-on-secondary","COLOR","#FFFFFF"),ft.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),ft.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),ft.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),ft.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),ft.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),ft.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),ft.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),ft.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),ft.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),ft.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),ft.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),ft.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),ft.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),ft.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),ft.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),ft.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),ft.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),ft.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),ft.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),ft.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),ft.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),ft.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),ft.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),ft.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),ft.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),ft.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),ft.create("--ft-elevation-00","UNKNOWN","0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0)"),ft.create("--ft-elevation-01","UNKNOWN","0px 1px 4px 0px rgba(0, 0, 0, 0.06), 0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-02","UNKNOWN","0px 4px 10px 0px rgba(0, 0, 0, 0.06), 0px 2px 5px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-03","UNKNOWN","0px 6px 13px 0px rgba(0, 0, 0, 0.06), 0px 3px 7px 0px rgba(0, 0, 0, 0.14), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-04","UNKNOWN","0px 8px 16px 0px rgba(0, 0, 0, 0.06), 0px 4px 9px 0px rgba(0, 0, 0, 0.14), 0px 2px 3px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-06","UNKNOWN","0px 12px 22px 0px rgba(0, 0, 0, 0.06), 0px 6px 13px 0px rgba(0, 0, 0, 0.14), 0px 4px 5px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-08","UNKNOWN","0px 16px 28px 0px rgba(0, 0, 0, 0.06), 0px 8px 17px 0px rgba(0, 0, 0, 0.14), 0px 6px 7px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-12","UNKNOWN","0px 22px 40px 0px rgba(0, 0, 0, 0.06), 0px 12px 23px 0px rgba(0, 0, 0, 0.14), 0px 10px 11px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-16","UNKNOWN","0px 28px 52px 0px rgba(0, 0, 0, 0.06), 0px 16px 29px 0px rgba(0, 0, 0, 0.14), 0px 14px 15px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-24","UNKNOWN","0px 40px 76px 0px rgba(0, 0, 0, 0.06), 0px 24px 41px 0px rgba(0, 0, 0, 0.14), 0px 22px 23px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-border-radius-S","SIZE","4px"),ft.create("--ft-border-radius-M","SIZE","8px"),ft.create("--ft-border-radius-L","SIZE","12px"),ft.create("--ft-border-radius-XL","SIZE","16px"),ft.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),ft.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),ft.create("--ft-transition-duration","UNKNOWN","250ms"),ft.create("--ft-transition-timing-function","UNKNOWN","ease-in-out");var dt=function(t,e,i,r){for(var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r,u=t.length-1;u>=0;u--)(n=t[u])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class vt extends(
50
50
  /**
51
51
  * @license
52
52
  * Copyright 2021 Google LLC
53
53
  * SPDX-License-Identifier: BSD-3-Clause
54
54
  */
55
- function(t){return class extends t{createRenderRoot(){const t=this.constructor,{registry:e,elementDefinitions:i,shadowRootOptions:r}=t;i&&!e&&(t.registry=new CustomElementRegistry,Object.entries(i).forEach((([e,i])=>t.registry.define(e,i))));const n=this.renderOptions.creationScope=this.attachShadow({...r,customElements:t.registry});return p(n,this.constructor.elementStyles),n}}}(ut)){constructor(){super(),this.exportpartsDebouncer=new e(5),this.constructorName=this.constructor.name,this.constructorPrototype=this.constructor.prototype}adoptedCallback(){this.constructor.name!==this.constructorName&&Object.setPrototypeOf(this,this.constructorPrototype)}getStyles(){return[]}getTemplate(){return null}render(){let t=this.getStyles();return Array.isArray(t)||(t=[t]),H`
56
- ${t.map((t=>H`
55
+ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{registry:e,elementDefinitions:i,shadowRootOptions:r}=t;i&&!e&&(t.registry=new CustomElementRegistry,Object.entries(i).forEach((([e,i])=>t.registry.define(e,i))));const n=this.renderOptions.creationScope=this.attachShadow({...r,customElements:t.registry});return w(n,this.constructor.elementStyles),n}}}(lt)){constructor(){super(),this.exportpartsDebouncer=new r(5),this.constructorName=this.constructor.name,this.constructorPrototype=this.constructor.prototype}adoptedCallback(){this.constructor.name!==this.constructorName&&Object.setPrototypeOf(this,this.constructorPrototype)}getStyles(){return[]}getTemplate(){return null}render(){let t=this.getStyles();return Array.isArray(t)||(t=[t]),J`
56
+ ${t.map((t=>J`
57
57
  <style>${t}</style>
58
58
  `))}
59
59
  ${this.getTemplate()}
60
- `}updated(t){super.updated(t),setTimeout((()=>{this.contentAvailableCallback(t),this.scheduleExportpartsUpdate()}),0)}contentAvailableCallback(t){}scheduleExportpartsUpdate(){this.exportpartsDebouncer.run((()=>{var t;(null===(t=this.exportpartsPrefix)||void 0===t?void 0:t.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}))}setExportpartsAttribute(t){var e,i,r,n,o,s;const a=t=>null!=t&&t.trim().length>0,u=t.filter(a).map((t=>t.trim()));if(0===u.length)return void this.removeAttribute("exportparts");const c=new Set;for(let t of null!==(i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll("[part],[exportparts]"))&&void 0!==i?i:[]){const e=null!==(n=null===(r=t.getAttribute("part"))||void 0===r?void 0:r.split(" "))&&void 0!==n?n:[],i=null!==(s=null===(o=t.getAttribute("exportparts"))||void 0===o?void 0:o.split(",").map((t=>t.split(":")[1])))&&void 0!==s?s:[];new Array(...e,...i).filter(a).map((t=>t.trim())).forEach((t=>c.add(t)))}if(0===c.size)return void this.removeAttribute("exportparts");const l=[...c.values()].flatMap((t=>u.map((e=>`${t}:${e}--${t}`))));this.setAttribute("exportparts",[...this.part,...l].join(", "))}}ht([r()],ft.prototype,"exportpartsPrefix",void 0),ht([o([])],ft.prototype,"exportpartsPrefixes",void 0),v`
60
+ `}updated(t){super.updated(t),setTimeout((()=>{this.contentAvailableCallback(t),this.scheduleExportpartsUpdate()}),0)}contentAvailableCallback(t){var e,i;if((null!==(i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll(".ft-lit-element--custom-stylesheet"))&&void 0!==i?i:[]).forEach((t=>t.remove())),this.customStylesheet){const t=document.createElement("style");t.classList.add("ft-lit-element--custom-stylesheet"),t.innerHTML=this.customStylesheet,this.shadowRoot.append(t)}}scheduleExportpartsUpdate(){this.exportpartsDebouncer.run((()=>{var t;(null===(t=this.exportpartsPrefix)||void 0===t?void 0:t.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}))}setExportpartsAttribute(t){var e,i,r,n,o,s;const u=t=>null!=t&&t.trim().length>0,a=t.filter(u).map((t=>t.trim()));if(0===a.length)return void this.removeAttribute("exportparts");const c=new Set;for(let t of null!==(i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll("[part],[exportparts]"))&&void 0!==i?i:[]){const e=null!==(n=null===(r=t.getAttribute("part"))||void 0===r?void 0:r.split(" "))&&void 0!==n?n:[],i=null!==(s=null===(o=t.getAttribute("exportparts"))||void 0===o?void 0:o.split(",").map((t=>t.split(":")[1])))&&void 0!==s?s:[];new Array(...e,...i).filter(u).map((t=>t.trim())).forEach((t=>c.add(t)))}if(0===c.size)return void this.removeAttribute("exportparts");const l=[...c.values()].flatMap((t=>a.map((e=>`${t}:${e}--${t}`))));this.setAttribute("exportparts",[...this.part,...l].join(", "))}}dt([o()],vt.prototype,"exportpartsPrefix",void 0),dt([u([])],vt.prototype,"exportpartsPrefixes",void 0),dt([o()],vt.prototype,"customStylesheet",void 0),b`
61
61
  .ft-no-text-select {
62
62
  -webkit-touch-callout: none;
63
63
  -webkit-user-select: none;
@@ -66,7 +66,7 @@ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{
66
66
  -ms-user-select: none;
67
67
  user-select: none;
68
68
  }
69
- `,v`
69
+ `,b`
70
70
  .ft-word-wrap {
71
71
  white-space: normal;
72
72
  word-wrap: break-word;
@@ -78,12 +78,12 @@ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{
78
78
  -webkit-hyphens: auto;
79
79
  hyphens: auto
80
80
  }
81
- `;class dt{constructor(t,e){this.defaultLabels=t,this.labels=e}resolve(t,...e){var i,r;let n=null!==(r=null!==(i=this.labels[t])&&void 0!==i?i:this.defaultLabels[t])&&void 0!==r?r:"";return e.forEach(((t,e)=>n=n.replace(new RegExp(`\\{${e}\\}`,"g"),t))),n}}function vt(t){for(var e=arguments.length,i=Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(i.length?" "+i.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function pt(t){return!!t&&!!t[ee]}function bt(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===ie}(t)||Array.isArray(t)||!!t[te]||!!t.constructor[te]||Ot(t)||Et(t))}function wt(t,e,i){void 0===i&&(i=!1),0===yt(t)?(i?Object.keys:re)(t).forEach((function(r){i&&"symbol"==typeof r||e(r,t[r],t)})):t.forEach((function(i,r){return e(r,i,t)}))}function yt(t){var e=t[ee];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:Ot(t)?2:Et(t)?3:0}function mt(t,e){return 2===yt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function gt(t,e,i){var r=yt(t);2===r?t.set(e,i):3===r?(t.delete(e),t.add(i)):t[e]=i}function xt(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function Ot(t){return Xt&&t instanceof Map}function Et(t){return Gt&&t instanceof Set}function jt(t){return t.o||t.t}function Nt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=ne(t);delete e[ee];for(var i=re(e),r=0;r<i.length;r++){var n=i[r],o=e[n];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[n]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[n]})}return Object.create(Object.getPrototypeOf(t),e)}function St(t,e){return void 0===e&&(e=!1),Ct(t)||pt(t)||!bt(t)||(yt(t)>1&&(t.set=t.add=t.clear=t.delete=Rt),Object.freeze(t),e&&wt(t,(function(t,e){return St(e,!0)}),!0)),t}function Rt(){vt(2)}function Ct(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function Mt(t){var e=oe[t];return e||vt(18,t),e}function At(){return Zt}function Tt(t,e){e&&(Mt("Patches"),t.u=[],t.s=[],t.v=e)}function It(t){Ut(t),t.p.forEach(kt),t.p=null}function Ut(t){t===Zt&&(Zt=t.l)}function $t(t){return Zt={p:[],l:Zt,h:t,m:!0,_:0}}function kt(t){var e=t[ee];0===e.i||1===e.i?e.j():e.O=!0}function Ft(t,e){e._=e.p.length;var i=e.p[0],r=void 0!==t&&t!==i;return e.h.g||Mt("ES5").S(e,t,r),r?(i[ee].P&&(It(e),vt(4)),bt(t)&&(t=Pt(e,t),e.l||Bt(e,t)),e.u&&Mt("Patches").M(i[ee].t,t,e.u,e.s)):t=Pt(e,i,[]),It(e),e.u&&e.v(e.u,e.s),t!==Qt?t:void 0}function Pt(t,e,i){if(Ct(e))return e;var r=e[ee];if(!r)return wt(e,(function(n,o){return Lt(t,r,e,n,o,i)}),!0),e;if(r.A!==t)return e;if(!r.P)return Bt(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var n=4===r.i||5===r.i?r.o=Nt(r.k):r.o;wt(3===r.i?new Set(n):n,(function(e,o){return Lt(t,r,n,e,o,i)})),Bt(t,n,!1),i&&t.u&&Mt("Patches").R(r,i,t.u,t.s)}return r.o}function Lt(t,e,i,r,n,o){if(pt(n)){var s=Pt(t,n,o&&e&&3!==e.i&&!mt(e.D,r)?o.concat(r):void 0);if(gt(i,r,s),!pt(s))return;t.m=!1}if(bt(n)&&!Ct(n)){if(!t.h.F&&t._<1)return;Pt(t,n),e&&e.A.l||Bt(t,n)}}function Bt(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&St(e,i)}function _t(t,e){var i=t[ee];return(i?jt(i):t)[e]}function Wt(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var r=Object.getOwnPropertyDescriptor(i,e);if(r)return r;i=Object.getPrototypeOf(i)}}function Dt(t){t.P||(t.P=!0,t.l&&Dt(t.l))}function Kt(t){t.o||(t.o=Nt(t.t))}function Ht(t,e,i){var r=Ot(e)?Mt("MapSet").N(e,i):Et(e)?Mt("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),r={i:i?1:0,A:e?e.A:At(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},n=r,o=se;i&&(n=[r],o=ae);var s=Proxy.revocable(n,o),a=s.revoke,u=s.proxy;return r.k=u,r.j=a,u}(e,i):Mt("ES5").J(e,i);return(i?i.A:At()).p.push(r),r}function zt(t){return pt(t)||vt(22,t),function t(e){if(!bt(e))return e;var i,r=e[ee],n=yt(e);if(r){if(!r.P&&(r.i<4||!Mt("ES5").K(r)))return r.t;r.I=!0,i=Jt(e,n),r.I=!1}else i=Jt(e,n);return wt(i,(function(e,n){r&&function(t,e){return 2===yt(t)?t.get(e):t[e]}(r.t,e)===n||gt(i,e,t(n))})),3===n?new Set(i):i}(t)}function Jt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Nt(t)}var Vt,Zt,qt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Xt="undefined"!=typeof Map,Gt="undefined"!=typeof Set,Yt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,Qt=qt?Symbol.for("immer-nothing"):((Vt={})["immer-nothing"]=!0,Vt),te=qt?Symbol.for("immer-draftable"):"__$immer_draftable",ee=qt?Symbol.for("immer-state"):"__$immer_state",ie=""+Object.prototype.constructor,re="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,ne=Object.getOwnPropertyDescriptors||function(t){var e={};return re(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},oe={},se={get:function(t,e){if(e===ee)return t;var i=jt(t);if(!mt(i,e))return function(t,e,i){var r,n=Wt(e,i);return n?"value"in n?n.value:null===(r=n.get)||void 0===r?void 0:r.call(t.k):void 0}(t,i,e);var r=i[e];return t.I||!bt(r)?r:r===_t(t.t,e)?(Kt(t),t.o[e]=Ht(t.A.h,r,t)):r},has:function(t,e){return e in jt(t)},ownKeys:function(t){return Reflect.ownKeys(jt(t))},set:function(t,e,i){var r=Wt(jt(t),e);if(null==r?void 0:r.set)return r.set.call(t.k,i),!0;if(!t.P){var n=_t(jt(t),e),o=null==n?void 0:n[ee];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(xt(i,n)&&(void 0!==i||mt(t.t,e)))return!0;Kt(t),Dt(t)}return t.o[e]===i&&"number"!=typeof i&&(void 0!==i||e in t.o)||(t.o[e]=i,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==_t(t.t,e)||e in t.t?(t.D[e]=!1,Kt(t),Dt(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=jt(t),r=Reflect.getOwnPropertyDescriptor(i,e);return r?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:r.enumerable,value:i[e]}:r},defineProperty:function(){vt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){vt(12)}},ae={};wt(se,(function(t,e){ae[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),ae.deleteProperty=function(t,e){return ae.set.call(this,t,e,void 0)},ae.set=function(t,e,i){return se.set.call(this,t[0],e,i,t[0])};var ue=function(){function t(t){var e=this;this.g=Yt,this.F=!0,this.produce=function(t,i,r){if("function"==typeof t&&"function"!=typeof i){var n=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=n);for(var r=arguments.length,s=Array(r>1?r-1:0),a=1;a<r;a++)s[a-1]=arguments[a];return o.produce(t,(function(t){var r;return(r=i).call.apply(r,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&vt(6),void 0!==r&&"function"!=typeof r&&vt(7),bt(t)){var a=$t(e),u=Ht(e,t,void 0),c=!0;try{s=i(u),c=!1}finally{c?It(a):Ut(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return Tt(a,r),Ft(t,a)}),(function(t){throw It(a),t})):(Tt(a,r),Ft(s,a))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===Qt&&(s=void 0),e.F&&St(s,!0),r){var l=[],h=[];Mt("Patches").M(t,s,l,h),r(l,h)}return s}vt(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(n))}))};var r,n,o=e.produce(t,i,(function(t,e){r=t,n=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,r,n]})):[o,r,n]},"boolean"==typeof(null==t?void 0:t.useProxies)&&this.setUseProxies(t.useProxies),"boolean"==typeof(null==t?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze)}var e=t.prototype;return e.createDraft=function(t){bt(t)||vt(8),pt(t)&&(t=zt(t));var e=$t(this),i=Ht(this,t,void 0);return i[ee].C=!0,Ut(e),i},e.finishDraft=function(t,e){var i=(t&&t[ee]).A;return Tt(i,e),Ft(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!Yt&&vt(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var r=e[i];if(0===r.path.length&&"replace"===r.op){t=r.value;break}}i>-1&&(e=e.slice(i+1));var n=Mt("Patches").$;return pt(t)?n(t,e):this.produce(t,(function(t){return n(t,e)}))},t}(),ce=new ue,le=ce.produce;ce.produceWithPatches.bind(ce),ce.setAutoFreeze.bind(ce),ce.setUseProxies.bind(ce),ce.applyPatches.bind(ce),ce.createDraft.bind(ce),ce.finishDraft.bind(ce);var he=le;function fe(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function de(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function ve(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?de(Object(i),!0).forEach((function(e){fe(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):de(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function pe(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var be="function"==typeof Symbol&&Symbol.observable||"@@observable",we=function(){return Math.random().toString(36).substring(7).split("").join(".")},ye={INIT:"@@redux/INIT"+we(),REPLACE:"@@redux/REPLACE"+we(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+we()}};function me(t){if("object"!=typeof t||null===t)return!1;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function ge(t,e,i){var r;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(pe(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(pe(1));return i(ge)(t,e)}if("function"!=typeof t)throw new Error(pe(2));var n=t,o=e,s=[],a=s,u=!1;function c(){a===s&&(a=s.slice())}function l(){if(u)throw new Error(pe(3));return o}function h(t){if("function"!=typeof t)throw new Error(pe(4));if(u)throw new Error(pe(5));var e=!0;return c(),a.push(t),function(){if(e){if(u)throw new Error(pe(6));e=!1,c();var i=a.indexOf(t);a.splice(i,1),s=null}}}function f(t){if(!me(t))throw new Error(pe(7));if(void 0===t.type)throw new Error(pe(8));if(u)throw new Error(pe(9));try{u=!0,o=n(o,t)}finally{u=!1}for(var e=s=a,i=0;i<e.length;i++){(0,e[i])()}return t}function d(t){if("function"!=typeof t)throw new Error(pe(10));n=t,f({type:ye.REPLACE})}function v(){var t,e=h;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(pe(11));function i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[be]=function(){return this},t}return f({type:ye.INIT}),(r={dispatch:f,subscribe:h,getState:l,replaceReducer:d})[be]=v,r}function xe(t){for(var e=Object.keys(t),i={},r=0;r<e.length;r++){var n=e[r];"function"==typeof t[n]&&(i[n]=t[n])}var o,s=Object.keys(i);try{!function(t){Object.keys(t).forEach((function(e){var i=t[e];if(void 0===i(void 0,{type:ye.INIT}))throw new Error(pe(12));if(void 0===i(void 0,{type:ye.PROBE_UNKNOWN_ACTION()}))throw new Error(pe(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var r=!1,n={},a=0;a<s.length;a++){var u=s[a],c=i[u],l=t[u],h=c(l,e);if(void 0===h)throw e&&e.type,new Error(pe(14));n[u]=h,r=r||h!==l}return(r=r||s.length!==Object.keys(t).length)?n:t}}function Oe(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce((function(t,e){return function(){return t(e.apply(void 0,arguments))}}))}function Ee(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return function(t){return function(){var i=t.apply(void 0,arguments),r=function(){throw new Error(pe(15))},n={getState:i.getState,dispatch:function(){return r.apply(void 0,arguments)}},o=e.map((function(t){return t(n)}));return r=Oe.apply(void 0,o)(i.dispatch),ve(ve({},i),{},{dispatch:r})}}}function je(t){return function(e){var i=e.dispatch,r=e.getState;return function(e){return function(n){return"function"==typeof n?n(i,r,t):e(n)}}}}var Ne=je();Ne.withExtraArgument=je;var Se,Re=Ne,Ce=(Se=function(t,e){return Se=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},Se(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}Se(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),Me=function(t,e){for(var i=0,r=e.length,n=t.length;i<r;i++,n++)t[n]=e[i];return t},Ae=Object.defineProperty,Te=Object.getOwnPropertySymbols,Ie=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable,$e=function(t,e,i){return e in t?Ae(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},ke=function(t,e){for(var i in e||(e={}))Ie.call(e,i)&&$e(t,i,e[i]);if(Te)for(var r=0,n=Te(e);r<n.length;r++){i=n[r];Ue.call(e,i)&&$e(t,i,e[i])}return t},Fe="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?Oe:Oe.apply(null,arguments)};var Pe=function(t){function e(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];var n=t.apply(this,i)||this;return Object.setPrototypeOf(n,e.prototype),n}return Ce(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,Me([void 0],t[0].concat(this)))):new(e.bind.apply(e,Me([void 0],t.concat(this))))},e}(Array);function Le(t){return bt(t)?he(t,(function(){})):t}function Be(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var r=new Pe;i&&(!function(t){return"boolean"==typeof t}(i)?r.push(Re.withExtraArgument(i.extraArgument)):r.push(Re));return r}(t)}}function _e(t){var e,i=Be(),r=t||{},n=r.reducer,o=void 0===n?void 0:n,s=r.middleware,a=void 0===s?i():s,u=r.devTools,c=void 0===u||u,l=r.preloadedState,h=void 0===l?void 0:l,f=r.enhancers,d=void 0===f?void 0:f;if("function"==typeof o)e=o;else{if(!function(t){if("object"!=typeof t||null===t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;for(var i=e;null!==Object.getPrototypeOf(i);)i=Object.getPrototypeOf(i);return e===i}(o))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');e=xe(o)}var v=a;"function"==typeof v&&(v=v(i));var p=Ee.apply(void 0,v),b=Oe;c&&(b=Fe(ke({trace:!1},"object"==typeof c&&c)));var w=[p];return Array.isArray(d)?w=Me([p],d):"function"==typeof d&&(w=d(w)),ge(e,h,b.apply(void 0,w))}function We(t,e){function i(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];if(e){var n=e.apply(void 0,i);if(!n)throw new Error("prepareAction did not return an object");return ke(ke({type:t,payload:n.payload},"meta"in n&&{meta:n.meta}),"error"in n&&{error:n.error})}return{type:t,payload:i[0]}}return i.toString=function(){return""+t},i.type=t,i.match=function(e){return e.type===t},i}function De(t){var e,i={},r=[],n={addCase:function(t,e){var r="string"==typeof t?t:t.type;if(r in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[r]=e,n},addMatcher:function(t,e){return r.push({matcher:t,reducer:e}),n},addDefaultCase:function(t){return e=t,n}};return t(n),[i,r,e]}function Ke(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,r="function"==typeof t.initialState?t.initialState:Le(t.initialState),n=t.reducers||{},o=Object.keys(n),s={},a={},u={};function c(){var e="function"==typeof t.extraReducers?De(t.extraReducers):[t.extraReducers],i=e[0],n=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,u=e[2],c=void 0===u?void 0:u,l=ke(ke({},n),a);return function(t,e,i,r){void 0===i&&(i=[]);var n,o="function"==typeof e?De(e):[e,i,r],s=o[0],a=o[1],u=o[2];if(function(t){return"function"==typeof t}(t))n=function(){return Le(t())};else{var c=Le(t);n=function(){return c}}function l(t,e){void 0===t&&(t=n());var i=Me([s[e.type]],a.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===i.filter((function(t){return!!t})).length&&(i=[u]),i.reduce((function(t,i){if(i){var r;if(pt(t))return void 0===(r=i(t,e))?t:r;if(bt(t))return he(t,(function(t){return i(t,e)}));if(void 0===(r=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return r}return t}),t)}return l.getInitialState=n,l}(r,l,s,c)}return o.forEach((function(t){var i,r,o=n[t],c=e+"/"+t;"reducer"in o?(i=o.reducer,r=o.prepare):i=o,s[t]=i,a[c]=i,u[t]=r?We(c,r):We(c)})),{name:e,reducer:function(t,e){return i||(i=c()),i(t,e)},actions:u,caseReducers:s,getInitialState:function(){return i||(i=c()),i.getInitialState()}}}var He="listenerMiddleware";We(He+"/add"),We(He+"/removeAll"),We(He+"/remove"),function(){function t(t,e){var i=n[t];return i?i.enumerable=e:n[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[ee];return se.get(e,t)},set:function(e){var i=this[ee];se.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var n=t[e][ee];if(!n.P)switch(n.i){case 5:r(n)&&Dt(n);break;case 4:i(n)&&Dt(n)}}}function i(t){for(var e=t.t,i=t.k,r=re(i),n=r.length-1;n>=0;n--){var o=r[n];if(o!==ee){var s=e[o];if(void 0===s&&!mt(e,o))return!0;var a=i[o],u=a&&a[ee];if(u?u.t!==s:!xt(a,s))return!0}}var c=!!e[ee];return r.length!==re(e).length+(c?0:1)}function r(t){var e=t.k;if(e.length!==t.t.length)return!0;var i=Object.getOwnPropertyDescriptor(e,e.length-1);if(i&&!i.get)return!0;for(var r=0;r<e.length;r++)if(!e.hasOwnProperty(r))return!0;return!1}var n={};!function(t,e){oe[t]||(oe[t]=e)}("ES5",{J:function(e,i){var r=Array.isArray(e),n=function(e,i){if(e){for(var r=Array(i.length),n=0;n<i.length;n++)Object.defineProperty(r,""+n,t(n,!0));return r}var o=ne(i);delete o[ee];for(var s=re(o),a=0;a<s.length;a++){var u=s[a];o[u]=t(u,e||!!o[u].enumerable)}return Object.create(Object.getPrototypeOf(i),o)}(r,e),o={i:r?5:4,A:i?i.A:At(),P:!1,I:!1,D:{},l:i,t:e,k:n,o:null,O:!1,C:!1};return Object.defineProperty(n,ee,{value:o,writable:!0}),n},S:function(t,i,n){n?pt(i)&&i[ee].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[ee];if(i){var n=i.t,o=i.k,s=i.D,a=i.i;if(4===a)wt(o,(function(e){e!==ee&&(void 0!==n[e]||mt(n,e)?s[e]||t(o[e]):(s[e]=!0,Dt(i)))})),wt(n,(function(t){void 0!==o[t]||mt(o,t)||(s[t]=!1,Dt(i))}));else if(5===a){if(r(i)&&(Dt(i),s.length=!0),o.length<n.length)for(var u=o.length;u<n.length;u++)s[u]=!1;else for(var c=n.length;c<o.length;c++)s[c]=!0;for(var l=Math.min(o.length,n.length),h=0;h<l;h++)o.hasOwnProperty(h)||(s[h]=!0),void 0===s[h]&&t(o[h])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?i(t):r(t)}})}();const ze=(t,e)=>(i,r)=>{i.constructor.createProperty(r,{attribute:!1,hasChanged:null!=e?e:(t,e)=>!s(t,e)});const n=i;n.reduxProperties=n.reduxProperties||new Map,n.reduxProperties.set(r,null!=t?t:t=>t[r])};class Je extends ft{get store(){return this.internalStore}set store(t){this.internalStore=t,this.store&&this.setupStore()}updateFromStore(){const t=this.store.getState();this.reduxProperties&&this.reduxProperties.forEach(((e,i)=>{this[i]=e(t,this)}))}setupStore(){this.unsubscribeFromStore&&this.unsubscribeFromStore(),this.updateFromStore(),this.unsubscribeFromStore=this.store.subscribe((()=>{this.updateFromStore()})),this.onStoreAvailable(),this.requestUpdate()}onStoreAvailable(){}connectedCallback(){super.connectedCallback(),this.store&&this.setupStore()}disconnectedCallback(){this.unsubscribeFromStore&&this.unsubscribeFromStore(),super.disconnectedCallback()}}var Ve,Ze;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(Ze=null===(Ve=window.safari)||void 0===Ve?void 0:Ve.pushNotification)||void 0===Ze||Ze.toString());const qe={setBaseUrl:(t,e)=>{t.baseUrl=e.payload},setApiIntegrationIdentifier:(t,e)=>{t.apiIntegrationIdentifier=e.payload},setMapId:(t,e)=>{t.mapId=e.payload},setTocId:(t,e)=>{t.tocId=e.payload},setMap:(t,e)=>{t.map=e.payload},setToc:(t,e)=>{t.toc=e.payload},setPagesToc:(t,e)=>{t.pagesToc=e.payload},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload},setRenderBeforeFirst:(t,e)=>{t.renderBeforeFirst=e.payload},setRenderAfterLast:(t,e)=>{t.renderAfterLast=e.payload},setLabels:(t,e)=>{t.labels=e.payload}},Xe={topicMissingAdvice:"Sorry, this topic is missing",somethingWentWrong:"Oops, something went wrong"};class Ge{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,e,i){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,i)),null==t.tocId?this.extractPagesToc(t.children,e,i):[{tocId:t.tocId,title:t.title,depth:e,children:this.extractPagesToc(t.children,e+1,t.tocId)}])))}convertNodes(t,e,i){return t.flatMap((t=>{var r,n,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(r=t.pageToc)&&void 0!==r?r:[],e,t.tocId),...this.convertNodes(t.children,e,t.tocId)];let s=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const a={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:s,depth:e,parentTocId:i,children:[]};this.register(a);const u=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],e+1,t.tocId),c=this.convertNodes(t.children,e+1,a.tocId);return a.children=[...u,...c],[a]}))}convertSectionNodes(t,e,i){return t.flatMap((t=>{var r;let n=null===(r=t.prettyUrl)||void 0===r?void 0:r.replace(/^\//,"");const o={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:n,depth:e,parentTocId:i,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,e+1,t.tocId),[o]}))}buildPage(t,e){var i,r,n,o,s,a;const u={number:this.pages.length+1,title:null!==(i=t.title)&&void 0!==i?i:"",rootTocId:null!==(r=t.tocId)&&void 0!==r?r:"root",toc:(null!==(n=t.pageToc)&&void 0!==n?n:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:e?this.buildBreadcrumb(this.nodeByTocId[e]):[]},c=(t,e)=>(e?u.topics:u.hiddenTopics).push(t),l=null!==(s=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==s?s:[];return u.breadcrumb.forEach(((t,e)=>{c(t,l[e])})),t.tocId&&c(t.tocId,t.pageConfiguration.isVisible),u.topics.push(...this.tocIds(null!==(a=t.pageToc)&&void 0!==a?a:[])),u}registerPage(t){for(let e of[...t.topics,...t.hiddenTopics])this.pageByTocId[e]||(this.pageByTocId[e]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const e=[t.tocId];for(;null==t?void 0:t.parentTocId;)e.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return e}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class Ye{convertPaginatedToc(t){return new Ge(t).build()}}class Qe{constructor(t,e,i,r){this.converter=t,this.api=e,this.baseUrl=i,this.mapId=r,this.topics={},this.topicContents={},this.labelResolver=new dt(Xe,{}),i.endsWith("/")||(this.baseUrl=i+"/")}static build(t,e,i){if(null==window.fluidtopics)throw console.error("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api"),new Error("Fluid Topics public API not found");return new Qe(new Ye,new window.fluidtopics.FluidTopicsApi(t,e,!0),t,i)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={},this.ratingSummary=void 0}getMap(){return this.loadIfNeeded((()=>this.map),(t=>this.map=t),(()=>this.api.getMap(this.mapId)))}getEnrichedToc(){return this.loadIfNeeded((()=>this.enrichedToc),(t=>this.enrichedToc=t),(()=>this.api.getPages(this.mapId).then((t=>this.converter.convertPaginatedToc(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var e;if(!("boolean"==typeof this.enrichedToc||this.enrichedToc instanceof Error))return null===(e=this.enrichedToc)||void 0===e?void 0:e.nodeByTocId[t]}async getPage(t){const e=await this.getEnrichedToc();return e.pages[t-1]||e.pages[0]}async getPageByTocId(t){const e=await this.getEnrichedToc();return e.pageByTocId[t]||e.pages[0]}getTopicInfo(t){return this.loadIfNeeded((()=>this.topics[t]),(e=>this.topics[t]=e),(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.loadIfNeeded((()=>this.topicContents[t]),(e=>this.topicContents[t]=e),(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,e,i){const r=this.getNavigationData(t,e,i),n="r/"+(r.prettyUrl?r.prettyUrl:`${r.mapId}/${r.tocId}`),o=new URL(n,this.baseUrl);return null!=r.page&&o.searchParams.set("page",`${r.page}`),r.prettyUrlDuplicated&&o.searchParams.set("tocId",r.tocId),null!=r.section&&o.searchParams.set("section",r.section),o.href}getNavigationData(t,e,i){var r,n;t=t||"root";const o="object"==typeof this.enrichedToc?this.enrichedToc:void 0,s=null==o?void 0:o.pageByTocId[t],a=null==o?void 0:o.nodeByTocId[t],u=null==a?void 0:a.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(r=null==a?void 0:a.title)&&void 0!==r?r:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=u?u.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(n=null==o?void 0:o.duplicatedPrettyUrls.has(null!=u?u:""))&&void 0!==n&&n,section:i}}async getAccurateNavigationData(t,e,i){return await this.getEnrichedToc(),this.getNavigationData(t,e,i)}async loadIfNeeded(t,e,i){for(void 0===t()&&(e(!0),e(await i().catch((t=>t))));!0===t();)await a(10);const r=t();if(r instanceof Error)throw r;return r}set labels(t){this.labelResolver=new dt(Xe,t)}resolveLabel(t,...e){return this.labelResolver.resolve(t,e)}getRatingSummary(){return this.loadIfNeeded((()=>this.ratingSummary),(t=>this.ratingSummary=t),(()=>this.api.getMapRating(this.mapId)))}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((e=>{var i;return{type:e.topics.type,rating:null===(i=e.topics)||void 0===i?void 0:i.ratings.find((e=>e.tocId===t))}}))}rateMap(t,e){return this.api.rateMap(this.mapId,t,e).then((()=>this.ratingSummary=void 0))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.ratingSummary=void 0))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,e,i){return this.api.rateTopic(this.mapId,t,e,i).then((()=>this.ratingSummary=void 0))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.ratingSummary=void 0))}sendTopicFeedback(t,e){return this.api.sendTopicFeedback(this.mapId,t,e)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class ti{constructor(t,i){this.store=t,this.slice=i,this.reloadDebouncer=new e(10)}static build(t){const e=(t=>Ke({name:"ft-reader-"+t,initialState:{baseUrl:void 0,apiIntegrationIdentifier:"ft-reader",mapId:void 0,visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3,labels:{}},reducers:qe}))(t.trim()||"context");return new ti(function(t,e,i){window.ftReduxStores||(window.ftReduxStores={});const r=e||t.name;return window.ftReduxStores[r]||(window.ftReduxStores[r]=_e({reducer:t.reducer})),window.ftReduxStores[r]}(e),e)}setBaseUrl(t){this.setRequiredStateField("baseUrl","setBaseUrl",t)}setApiIntegrationIdentifier(t){this.setRequiredStateField("apiIntegrationIdentifier","setApiIntegrationIdentifier",t)}setMapId(t){this.setRequiredStateField("mapId","setMapId",t)}setRenderBeforeFirst(t){this.dispatch(this.slice.actions.setRenderBeforeFirst(t))}setRenderAfterLast(t){this.dispatch(this.slice.actions.setRenderAfterLast(t))}setVisibleTopics(t){this.dispatch(this.slice.actions.setVisibleTopics(t))}setLabels(t){this.dispatch(this.slice.actions.setLabels(t)),this.service&&(this.service.labels=t)}async awaitService(){for(;null==this.service;)await a(5);return this.service}async navigateToTopic(t,e,i){const r=await this.awaitService();let n=await(null!=i?r.getPage(i):r.getPageByTocId(t));this.dispatch(this.slice.actions.setCurrentPage(n),this.slice.actions.setScrollTarget({tocId:t,section:e}))}async navigateToPage(t){const e=await this.awaitService();let i=await e.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(i))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,e,i){this.store.getState()[t]!==i&&(this.dispatch(this.slice.actions[e](i)),this.reload())}reload(){const t=this.store.getState();return t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?(this.service=Qe.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId),this.service.labels=t.labels):this.service=void 0,this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setPagesToc(void 0),this.slice.actions.setCurrentPage(void 0)),this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,e,i;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getMap().then((t=>this.dispatch(this.slice.actions.setMap(t)))),null===(e=this.service)||void 0===e?void 0:e.getToc().then((t=>this.dispatch(this.slice.actions.setToc(t)))),null===(i=this.service)||void 0===i?void 0:i.getPagesToc().then((t=>this.dispatch(this.slice.actions.setPagesToc(t))))])}catch(t){this.errorHandler&&this.errorHandler(t)}}dispatch(...t){for(let e of t)this.store.dispatch(e)}}const ei=v`
82
- `;var ii=function(t,e,i,r){for(var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r,a=t.length-1;a>=0;a--)(n=t[a])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class ri extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class ni extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class oi extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class si extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class ai extends Event{constructor(){super("ft-reader-map-not-found")}}class ui extends Event{constructor(){super("ft-reader-map-unauthorized")}}const ci=t=>e=>+(null!=e?e:"NaN")>0?+e:t;class li extends Je{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.labels={},this.visibleTopics=[],this.navigationDebouncer=new e(5)}render(){return H`
81
+ `;class pt{constructor(t,e){this.defaultLabels=t,this.labels=e}resolve(t,...e){var i,r;let n=null!==(r=null!==(i=this.labels[t])&&void 0!==i?i:this.defaultLabels[t])&&void 0!==r?r:"";return e.forEach(((t,e)=>n=n.replace(new RegExp(`\\{${e}\\}`,"g"),t))),n}}function bt(t){for(var e=arguments.length,i=Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(i.length?" "+i.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function wt(t){return!!t&&!!t[re]}function yt(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===ne}(t)||Array.isArray(t)||!!t[ie]||!!t.constructor[ie]||St(t)||jt(t))}function mt(t,e,i){void 0===i&&(i=!1),0===gt(t)?(i?Object.keys:oe)(t).forEach((function(r){i&&"symbol"==typeof r||e(r,t[r],t)})):t.forEach((function(i,r){return e(r,i,t)}))}function gt(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:St(t)?2:jt(t)?3:0}function xt(t,e){return 2===gt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Ot(t,e,i){var r=gt(t);2===r?t.set(e,i):3===r?(t.delete(e),t.add(i)):t[e]=i}function Et(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function St(t){return Yt&&t instanceof Map}function jt(t){return Qt&&t instanceof Set}function Nt(t){return t.o||t.t}function Rt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=se(t);delete e[re];for(var i=oe(e),r=0;r<i.length;r++){var n=i[r],o=e[n];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[n]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[n]})}return Object.create(Object.getPrototypeOf(t),e)}function Ct(t,e){return void 0===e&&(e=!1),At(t)||wt(t)||!yt(t)||(gt(t)>1&&(t.set=t.add=t.clear=t.delete=Mt),Object.freeze(t),e&&mt(t,(function(t,e){return Ct(e,!0)}),!0)),t}function Mt(){bt(2)}function At(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function Tt(t){var e=ue[t];return e||bt(18,t),e}function Ut(){return Xt}function It(t,e){e&&(Tt("Patches"),t.u=[],t.s=[],t.v=e)}function $t(t){kt(t),t.p.forEach(Ft),t.p=null}function kt(t){t===Xt&&(Xt=t.l)}function Pt(t){return Xt={p:[],l:Xt,h:t,m:!0,_:0}}function Ft(t){var e=t[re];0===e.i||1===e.i?e.j():e.O=!0}function Lt(t,e){e._=e.p.length;var i=e.p[0],r=void 0!==t&&t!==i;return e.h.g||Tt("ES5").S(e,t,r),r?(i[re].P&&($t(e),bt(4)),yt(t)&&(t=_t(e,t),e.l||Wt(e,t)),e.u&&Tt("Patches").M(i[re].t,t,e.u,e.s)):t=_t(e,i,[]),$t(e),e.u&&e.v(e.u,e.s),t!==ee?t:void 0}function _t(t,e,i){if(At(e))return e;var r=e[re];if(!r)return mt(e,(function(n,o){return Bt(t,r,e,n,o,i)}),!0),e;if(r.A!==t)return e;if(!r.P)return Wt(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var n=4===r.i||5===r.i?r.o=Rt(r.k):r.o;mt(3===r.i?new Set(n):n,(function(e,o){return Bt(t,r,n,e,o,i)})),Wt(t,n,!1),i&&t.u&&Tt("Patches").R(r,i,t.u,t.s)}return r.o}function Bt(t,e,i,r,n,o){if(wt(n)){var s=_t(t,n,o&&e&&3!==e.i&&!xt(e.D,r)?o.concat(r):void 0);if(Ot(i,r,s),!wt(s))return;t.m=!1}if(yt(n)&&!At(n)){if(!t.h.F&&t._<1)return;_t(t,n),e&&e.A.l||Wt(t,n)}}function Wt(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&Ct(e,i)}function Dt(t,e){var i=t[re];return(i?Nt(i):t)[e]}function Kt(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var r=Object.getOwnPropertyDescriptor(i,e);if(r)return r;i=Object.getPrototypeOf(i)}}function Ht(t){t.P||(t.P=!0,t.l&&Ht(t.l))}function zt(t){t.o||(t.o=Rt(t.t))}function Jt(t,e,i){var r=St(e)?Tt("MapSet").N(e,i):jt(e)?Tt("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),r={i:i?1:0,A:e?e.A:Ut(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},n=r,o=ae;i&&(n=[r],o=ce);var s=Proxy.revocable(n,o),u=s.revoke,a=s.proxy;return r.k=a,r.j=u,a}(e,i):Tt("ES5").J(e,i);return(i?i.A:Ut()).p.push(r),r}function Vt(t){return wt(t)||bt(22,t),function t(e){if(!yt(e))return e;var i,r=e[re],n=gt(e);if(r){if(!r.P&&(r.i<4||!Tt("ES5").K(r)))return r.t;r.I=!0,i=Zt(e,n),r.I=!1}else i=Zt(e,n);return mt(i,(function(e,n){r&&function(t,e){return 2===gt(t)?t.get(e):t[e]}(r.t,e)===n||Ot(i,e,t(n))})),3===n?new Set(i):i}(t)}function Zt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Rt(t)}var qt,Xt,Gt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Yt="undefined"!=typeof Map,Qt="undefined"!=typeof Set,te="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ee=Gt?Symbol.for("immer-nothing"):((qt={})["immer-nothing"]=!0,qt),ie=Gt?Symbol.for("immer-draftable"):"__$immer_draftable",re=Gt?Symbol.for("immer-state"):"__$immer_state",ne=""+Object.prototype.constructor,oe="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,se=Object.getOwnPropertyDescriptors||function(t){var e={};return oe(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},ue={},ae={get:function(t,e){if(e===re)return t;var i=Nt(t);if(!xt(i,e))return function(t,e,i){var r,n=Kt(e,i);return n?"value"in n?n.value:null===(r=n.get)||void 0===r?void 0:r.call(t.k):void 0}(t,i,e);var r=i[e];return t.I||!yt(r)?r:r===Dt(t.t,e)?(zt(t),t.o[e]=Jt(t.A.h,r,t)):r},has:function(t,e){return e in Nt(t)},ownKeys:function(t){return Reflect.ownKeys(Nt(t))},set:function(t,e,i){var r=Kt(Nt(t),e);if(null==r?void 0:r.set)return r.set.call(t.k,i),!0;if(!t.P){var n=Dt(Nt(t),e),o=null==n?void 0:n[re];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(Et(i,n)&&(void 0!==i||xt(t.t,e)))return!0;zt(t),Ht(t)}return t.o[e]===i&&"number"!=typeof i&&(void 0!==i||e in t.o)||(t.o[e]=i,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==Dt(t.t,e)||e in t.t?(t.D[e]=!1,zt(t),Ht(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=Nt(t),r=Reflect.getOwnPropertyDescriptor(i,e);return r?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:r.enumerable,value:i[e]}:r},defineProperty:function(){bt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){bt(12)}},ce={};mt(ae,(function(t,e){ce[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),ce.deleteProperty=function(t,e){return ce.set.call(this,t,e,void 0)},ce.set=function(t,e,i){return ae.set.call(this,t[0],e,i,t[0])};var le=function(){function t(t){var e=this;this.g=te,this.F=!0,this.produce=function(t,i,r){if("function"==typeof t&&"function"!=typeof i){var n=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=n);for(var r=arguments.length,s=Array(r>1?r-1:0),u=1;u<r;u++)s[u-1]=arguments[u];return o.produce(t,(function(t){var r;return(r=i).call.apply(r,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&bt(6),void 0!==r&&"function"!=typeof r&&bt(7),yt(t)){var u=Pt(e),a=Jt(e,t,void 0),c=!0;try{s=i(a),c=!1}finally{c?$t(u):kt(u)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return It(u,r),Lt(t,u)}),(function(t){throw $t(u),t})):(It(u,r),Lt(s,u))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===ee&&(s=void 0),e.F&&Ct(s,!0),r){var l=[],h=[];Tt("Patches").M(t,s,l,h),r(l,h)}return s}bt(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(n))}))};var r,n,o=e.produce(t,i,(function(t,e){r=t,n=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,r,n]})):[o,r,n]},"boolean"==typeof(null==t?void 0:t.useProxies)&&this.setUseProxies(t.useProxies),"boolean"==typeof(null==t?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze)}var e=t.prototype;return e.createDraft=function(t){yt(t)||bt(8),wt(t)&&(t=Vt(t));var e=Pt(this),i=Jt(this,t,void 0);return i[re].C=!0,kt(e),i},e.finishDraft=function(t,e){var i=(t&&t[re]).A;return It(i,e),Lt(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!te&&bt(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var r=e[i];if(0===r.path.length&&"replace"===r.op){t=r.value;break}}i>-1&&(e=e.slice(i+1));var n=Tt("Patches").$;return wt(t)?n(t,e):this.produce(t,(function(t){return n(t,e)}))},t}(),he=new le,fe=he.produce;he.produceWithPatches.bind(he),he.setAutoFreeze.bind(he),he.setUseProxies.bind(he),he.applyPatches.bind(he),he.createDraft.bind(he),he.finishDraft.bind(he);var de=fe;function ve(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function pe(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function be(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?pe(Object(i),!0).forEach((function(e){ve(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):pe(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function we(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var ye="function"==typeof Symbol&&Symbol.observable||"@@observable",me=function(){return Math.random().toString(36).substring(7).split("").join(".")},ge={INIT:"@@redux/INIT"+me(),REPLACE:"@@redux/REPLACE"+me(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+me()}};function xe(t){if("object"!=typeof t||null===t)return!1;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Oe(t,e,i){var r;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(we(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(we(1));return i(Oe)(t,e)}if("function"!=typeof t)throw new Error(we(2));var n=t,o=e,s=[],u=s,a=!1;function c(){u===s&&(u=s.slice())}function l(){if(a)throw new Error(we(3));return o}function h(t){if("function"!=typeof t)throw new Error(we(4));if(a)throw new Error(we(5));var e=!0;return c(),u.push(t),function(){if(e){if(a)throw new Error(we(6));e=!1,c();var i=u.indexOf(t);u.splice(i,1),s=null}}}function f(t){if(!xe(t))throw new Error(we(7));if(void 0===t.type)throw new Error(we(8));if(a)throw new Error(we(9));try{a=!0,o=n(o,t)}finally{a=!1}for(var e=s=u,i=0;i<e.length;i++){(0,e[i])()}return t}function d(t){if("function"!=typeof t)throw new Error(we(10));n=t,f({type:ge.REPLACE})}function v(){var t,e=h;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(we(11));function i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[ye]=function(){return this},t}return f({type:ge.INIT}),(r={dispatch:f,subscribe:h,getState:l,replaceReducer:d})[ye]=v,r}function Ee(t){for(var e=Object.keys(t),i={},r=0;r<e.length;r++){var n=e[r];"function"==typeof t[n]&&(i[n]=t[n])}var o,s=Object.keys(i);try{!function(t){Object.keys(t).forEach((function(e){var i=t[e];if(void 0===i(void 0,{type:ge.INIT}))throw new Error(we(12));if(void 0===i(void 0,{type:ge.PROBE_UNKNOWN_ACTION()}))throw new Error(we(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var r=!1,n={},u=0;u<s.length;u++){var a=s[u],c=i[a],l=t[a],h=c(l,e);if(void 0===h)throw e&&e.type,new Error(we(14));n[a]=h,r=r||h!==l}return(r=r||s.length!==Object.keys(t).length)?n:t}}function Se(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce((function(t,e){return function(){return t(e.apply(void 0,arguments))}}))}function je(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return function(t){return function(){var i=t.apply(void 0,arguments),r=function(){throw new Error(we(15))},n={getState:i.getState,dispatch:function(){return r.apply(void 0,arguments)}},o=e.map((function(t){return t(n)}));return r=Se.apply(void 0,o)(i.dispatch),be(be({},i),{},{dispatch:r})}}}function Ne(t){return function(e){var i=e.dispatch,r=e.getState;return function(e){return function(n){return"function"==typeof n?n(i,r,t):e(n)}}}}var Re=Ne();Re.withExtraArgument=Ne;var Ce,Me=Re,Ae=(Ce=function(t,e){return Ce=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},Ce(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}Ce(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),Te=function(t,e){for(var i=0,r=e.length,n=t.length;i<r;i++,n++)t[n]=e[i];return t},Ue=Object.defineProperty,Ie=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,ke=Object.prototype.propertyIsEnumerable,Pe=function(t,e,i){return e in t?Ue(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},Fe=function(t,e){for(var i in e||(e={}))$e.call(e,i)&&Pe(t,i,e[i]);if(Ie)for(var r=0,n=Ie(e);r<n.length;r++){i=n[r];ke.call(e,i)&&Pe(t,i,e[i])}return t},Le="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?Se:Se.apply(null,arguments)};var _e=function(t){function e(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];var n=t.apply(this,i)||this;return Object.setPrototypeOf(n,e.prototype),n}return Ae(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,Te([void 0],t[0].concat(this)))):new(e.bind.apply(e,Te([void 0],t.concat(this))))},e}(Array);function Be(t){return yt(t)?de(t,(function(){})):t}function We(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var r=new _e;i&&(!function(t){return"boolean"==typeof t}(i)?r.push(Me.withExtraArgument(i.extraArgument)):r.push(Me));return r}(t)}}function De(t){var e,i=We(),r=t||{},n=r.reducer,o=void 0===n?void 0:n,s=r.middleware,u=void 0===s?i():s,a=r.devTools,c=void 0===a||a,l=r.preloadedState,h=void 0===l?void 0:l,f=r.enhancers,d=void 0===f?void 0:f;if("function"==typeof o)e=o;else{if(!function(t){if("object"!=typeof t||null===t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;for(var i=e;null!==Object.getPrototypeOf(i);)i=Object.getPrototypeOf(i);return e===i}(o))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');e=Ee(o)}var v=u;"function"==typeof v&&(v=v(i));var p=je.apply(void 0,v),b=Se;c&&(b=Le(Fe({trace:!1},"object"==typeof c&&c)));var w=[p];return Array.isArray(d)?w=Te([p],d):"function"==typeof d&&(w=d(w)),Oe(e,h,b.apply(void 0,w))}function Ke(t,e){function i(){for(var i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];if(e){var n=e.apply(void 0,i);if(!n)throw new Error("prepareAction did not return an object");return Fe(Fe({type:t,payload:n.payload},"meta"in n&&{meta:n.meta}),"error"in n&&{error:n.error})}return{type:t,payload:i[0]}}return i.toString=function(){return""+t},i.type=t,i.match=function(e){return e.type===t},i}function He(t){var e,i={},r=[],n={addCase:function(t,e){var r="string"==typeof t?t:t.type;if(r in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[r]=e,n},addMatcher:function(t,e){return r.push({matcher:t,reducer:e}),n},addDefaultCase:function(t){return e=t,n}};return t(n),[i,r,e]}function ze(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,r="function"==typeof t.initialState?t.initialState:Be(t.initialState),n=t.reducers||{},o=Object.keys(n),s={},u={},a={};function c(){var e="function"==typeof t.extraReducers?He(t.extraReducers):[t.extraReducers],i=e[0],n=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,a=e[2],c=void 0===a?void 0:a,l=Fe(Fe({},n),u);return function(t,e,i,r){void 0===i&&(i=[]);var n,o="function"==typeof e?He(e):[e,i,r],s=o[0],u=o[1],a=o[2];if(function(t){return"function"==typeof t}(t))n=function(){return Be(t())};else{var c=Be(t);n=function(){return c}}function l(t,e){void 0===t&&(t=n());var i=Te([s[e.type]],u.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===i.filter((function(t){return!!t})).length&&(i=[a]),i.reduce((function(t,i){if(i){var r;if(wt(t))return void 0===(r=i(t,e))?t:r;if(yt(t))return de(t,(function(t){return i(t,e)}));if(void 0===(r=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return r}return t}),t)}return l.getInitialState=n,l}(r,l,s,c)}return o.forEach((function(t){var i,r,o=n[t],c=e+"/"+t;"reducer"in o?(i=o.reducer,r=o.prepare):i=o,s[t]=i,u[c]=i,a[t]=r?Ke(c,r):Ke(c)})),{name:e,reducer:function(t,e){return i||(i=c()),i(t,e)},actions:a,caseReducers:s,getInitialState:function(){return i||(i=c()),i.getInitialState()}}}var Je="listenerMiddleware";Ke(Je+"/add"),Ke(Je+"/removeAll"),Ke(Je+"/remove"),function(){function t(t,e){var i=n[t];return i?i.enumerable=e:n[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[re];return ae.get(e,t)},set:function(e){var i=this[re];ae.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var n=t[e][re];if(!n.P)switch(n.i){case 5:r(n)&&Ht(n);break;case 4:i(n)&&Ht(n)}}}function i(t){for(var e=t.t,i=t.k,r=oe(i),n=r.length-1;n>=0;n--){var o=r[n];if(o!==re){var s=e[o];if(void 0===s&&!xt(e,o))return!0;var u=i[o],a=u&&u[re];if(a?a.t!==s:!Et(u,s))return!0}}var c=!!e[re];return r.length!==oe(e).length+(c?0:1)}function r(t){var e=t.k;if(e.length!==t.t.length)return!0;var i=Object.getOwnPropertyDescriptor(e,e.length-1);if(i&&!i.get)return!0;for(var r=0;r<e.length;r++)if(!e.hasOwnProperty(r))return!0;return!1}var n={};!function(t,e){ue[t]||(ue[t]=e)}("ES5",{J:function(e,i){var r=Array.isArray(e),n=function(e,i){if(e){for(var r=Array(i.length),n=0;n<i.length;n++)Object.defineProperty(r,""+n,t(n,!0));return r}var o=se(i);delete o[re];for(var s=oe(o),u=0;u<s.length;u++){var a=s[u];o[a]=t(a,e||!!o[a].enumerable)}return Object.create(Object.getPrototypeOf(i),o)}(r,e),o={i:r?5:4,A:i?i.A:Ut(),P:!1,I:!1,D:{},l:i,t:e,k:n,o:null,O:!1,C:!1};return Object.defineProperty(n,re,{value:o,writable:!0}),n},S:function(t,i,n){n?wt(i)&&i[re].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[re];if(i){var n=i.t,o=i.k,s=i.D,u=i.i;if(4===u)mt(o,(function(e){e!==re&&(void 0!==n[e]||xt(n,e)?s[e]||t(o[e]):(s[e]=!0,Ht(i)))})),mt(n,(function(t){void 0!==o[t]||xt(o,t)||(s[t]=!1,Ht(i))}));else if(5===u){if(r(i)&&(Ht(i),s.length=!0),o.length<n.length)for(var a=o.length;a<n.length;a++)s[a]=!1;else for(var c=n.length;c<o.length;c++)s[c]=!0;for(var l=Math.min(o.length,n.length),h=0;h<l;h++)o.hasOwnProperty(h)||(s[h]=!0),void 0===s[h]&&t(o[h])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?i(t):r(t)}})}();const Ve=(t,e)=>{var i;const r="function"==typeof t?{}:null!=t?t:{};return e=null!==(i=null!=e?e:r.hasChanged)&&void 0!==i?i:(t,e)=>!a(t,e),(i,n)=>{var o;i.constructor.createProperty(n,{attribute:!1,hasChanged:e});const s=i;s.reduxProperties=s.reduxProperties||new Map;const u=null!==(o="function"==typeof t?t:r.selector)&&void 0!==o?o:t=>t[n];s.reduxProperties.set(n,{selector:u,store:r.store})}};class Ze extends vt{constructor(){super(...arguments),this.internalStoresUnsubscribers=new Map,this.internalStores=new Map}getUnnamedStore(){if(this.internalStores.size>1)throw new Error("Cannot resolve unnamed store when multiple stores are configured.");return[...this.internalStores.values()][0]}get store(){return this.getUnnamedStore()}set store(t){this.unsubscribeFromStores(),this.internalStores.clear(),t&&this.addStore(t)}getStore(t){var e;return null==t?null!==(e=this.getUnnamedStore())&&void 0!==e?e:this.store:this.internalStores.get(t)}addStore(t,e){e=null!=e?e:qe(t)?t.name:"ft-lit-element-redux-default-store",this.unsubscribeFromStore(e),this.setupStore(e,t)}removeStore(t){const e="string"==typeof t?t:qe(t)?t.name:"ft-lit-element-redux-default-store";this.unsubscribeFromStore(e),this.internalStores.delete(e)}setupStore(t,e){this.internalStores.set(t,e),this.updateFromStores(),this.subscribeToStore(t,e)}setupStores(){this.unsubscribeFromStores(),this.updateFromStores(),this.internalStores.forEach(((t,e)=>this.subscribeToStore(e,t)))}updateFromStores(){this.reduxProperties&&this.reduxProperties.forEach(((t,e)=>{const i=this.getStore(t.store);i&&(this[e]=t.selector(i.getState(),this))}))}subscribeToStore(t,e){this.internalStoresUnsubscribers.set(t,e.subscribe((()=>this.updateFromStores()))),this.onStoreAvailable(t)}unsubscribeFromStores(){Object.keys(this.internalStoresUnsubscribers).forEach((t=>this.unsubscribeFromStore(t)))}unsubscribeFromStore(t){this.internalStoresUnsubscribers.has(t)&&this.internalStoresUnsubscribers.get(t)(),this.internalStoresUnsubscribers.delete(t)}onStoreAvailable(t){}connectedCallback(){super.connectedCallback(),this.setupStores()}disconnectedCallback(){this.unsubscribeFromStores(),super.disconnectedCallback()}}function qe(t){var e;return null===(e=t)||void 0===e?void 0:e.isFtReduxStore}class Xe{constructor(t,e){this.reduxSlice=t,this.reduxStore=e,this.isFtReduxStore=!0,this.actions=new Proxy(this.reduxSlice.actions,{get:(t,e,i)=>{const r=t[e];if(r)return(...t)=>{const e=r(...t);return this.reduxStore.dispatch(e),e}}})}static get(t){window.ftReduxStores||(window.ftReduxStores={});const e=window.ftReduxStores[t.name];if(qe(e))return e;const i=ze(t);if(e)return new Xe(i,e);const r=De({reducer:i.reducer});return window.ftReduxStores[t.name]=new Xe(i,r)}get dispatch(){throw new Error("Don't use this method, actions are automatically dispatched when called.")}[Symbol.observable](){return this.reduxStore[Symbol.observable]()}getState(){return this.reduxStore.getState()}replaceReducer(t){throw new Error("Not implemented yet.")}subscribe(t){return this.reduxStore.subscribe(t)}get name(){return this.reduxSlice.name}get reducer(){return this.reduxSlice.reducer}get caseReducers(){return this.reduxSlice.caseReducers}getInitialState(){return this.reduxSlice.getInitialState()}}var Ge,Ye;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(Ye=null===(Ge=window.safari)||void 0===Ge?void 0:Ge.pushNotification)||void 0===Ye||Ye.toString());const Qe={setBaseUrl:(t,e)=>{t.baseUrl=e.payload},setApiIntegrationIdentifier:(t,e)=>{t.apiIntegrationIdentifier=e.payload},setMapId:(t,e)=>{t.mapId=e.payload},setTocId:(t,e)=>{t.tocId=e.payload},setMap:(t,e)=>{t.map=e.payload},setToc:(t,e)=>{t.toc=e.payload},setPagesToc:(t,e)=>{t.pagesToc=e.payload},setPaginationConfiguration:(t,e)=>{t.paginationConfiguration=e.payload},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload},setRenderBeforeFirst:(t,e)=>{t.renderBeforeFirst=e.payload},setRenderAfterLast:(t,e)=>{t.renderAfterLast=e.payload},setLabels:(t,e)=>{t.labels=e.payload}},ti={topicMissingAdvice:"Sorry, this topic is missing",somethingWentWrong:"Oops, something went wrong"};class ei{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,e,i){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,i)),null==t.tocId?this.extractPagesToc(t.children,e,i):[{tocId:t.tocId,title:t.title,depth:e,children:this.extractPagesToc(t.children,e+1,t.tocId)}])))}convertNodes(t,e,i){return t.flatMap((t=>{var r,n,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(r=t.pageToc)&&void 0!==r?r:[],e,t.tocId),...this.convertNodes(t.children,e,t.tocId)];let s=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const u={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:s,depth:e,parentTocId:i,children:[]};this.register(u);const a=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],e+1,t.tocId),c=this.convertNodes(t.children,e+1,u.tocId);return u.children=[...a,...c],[u]}))}convertSectionNodes(t,e,i){return t.flatMap((t=>{var r;let n=null===(r=t.prettyUrl)||void 0===r?void 0:r.replace(/^\//,"");const o={tocId:t.tocId,contentId:t.contentId,title:t.title,prettyUrl:n,depth:e,parentTocId:i,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,e+1,t.tocId),[o]}))}buildPage(t,e){var i,r,n,o,s,u;const a={number:this.pages.length+1,title:null!==(i=t.title)&&void 0!==i?i:"",rootTocId:null!==(r=t.tocId)&&void 0!==r?r:"root",toc:(null!==(n=t.pageToc)&&void 0!==n?n:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:e?this.buildBreadcrumb(this.nodeByTocId[e]):[]},c=(t,e)=>(e?a.topics:a.hiddenTopics).push(t),l=null!==(s=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==s?s:[];return a.breadcrumb.forEach(((t,e)=>{c(t,l[e])})),t.tocId&&c(t.tocId,t.pageConfiguration.isVisible),a.topics.push(...this.tocIds(null!==(u=t.pageToc)&&void 0!==u?u:[])),a}registerPage(t){for(let e of[...t.topics,...t.hiddenTopics])this.pageByTocId[e]||(this.pageByTocId[e]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const e=[t.tocId];for(;null==t?void 0:t.parentTocId;)e.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return e}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class ii{convertPaginatedToc(t){return new ei(t).build()}}class ri{constructor(t,e,i,r,n,o){this.converter=t,this.api=e,this.cache=i,this.baseUrl=r,this.labelResolver=new pt(ti,{}),r.endsWith("/")||(this.baseUrl=r+"/"),this.mapId=n,this.labels=null!=o?o:{},this.initCache()}static build(t,e,r,n){if(null==window.fluidtopics)throw console.error("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api"),new Error("Fluid Topics public API not found");const o=new window.fluidtopics.FluidTopicsApi(t,e,!0);return new ri(new ii,o,new i,t,r,n)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}initCache(){this.cache.register("map",(()=>this.api.getMap(this.mapId))),this.cache.register("enrichedToc",(()=>this.api.getPages(this.mapId).then((t=>this.converter.convertPaginatedToc(t))))),this.cache.register("ratingSummary",(()=>this.api.getMapRating(this.mapId)))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var e;return null===(e=this.enrichedToc)||void 0===e?void 0:e.nodeByTocId[t]}async getPage(t){const e=await this.getEnrichedToc();return e.pages[t-1]||e.pages[0]}async getPageByTocId(t){const e=await this.getEnrichedToc();return e.pageByTocId[t]||e.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,e,i){const r=this.getNavigationData(t,e,i),n="r/"+(r.prettyUrl?r.prettyUrl:`${r.mapId}/${r.tocId}`),o=new URL(n,this.baseUrl);return null!=r.page&&o.searchParams.set("page",`${r.page}`),r.prettyUrlDuplicated&&o.searchParams.set("tocId",r.tocId),null!=r.section&&o.searchParams.set("section",r.section),o.href}getNavigationData(t,e,i){var r,n;t=t||"root";const o=this.enrichedToc,s=null==o?void 0:o.pageByTocId[t],u=null==o?void 0:o.nodeByTocId[t],a=null==u?void 0:u.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(r=null==u?void 0:u.title)&&void 0!==r?r:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=a?a.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(n=null==o?void 0:o.duplicatedPrettyUrls.has(null!=a?a:""))&&void 0!==n&&n,section:i}}async getAccurateNavigationData(t,e,i){return await this.getEnrichedToc(),this.getNavigationData(t,e,i)}set labels(t){this.labelResolver=new pt(ti,t)}resolveLabel(t,...e){return this.labelResolver.resolve(t,e)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((e=>{var i;return{type:e.topics.type,rating:null===(i=e.topics)||void 0===i?void 0:i.ratings.find((e=>e.tocId===t))}}))}rateMap(t,e){return this.api.rateMap(this.mapId,t,e).then((()=>this.cache.clear("ratingSummary")))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.cache.clear("ratingSummary")))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,e,i){return this.api.rateTopic(this.mapId,t,e,i).then((()=>this.cache.clear("ratingSummary")))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.cache.clear("ratingSummary")))}sendTopicFeedback(t,e){return this.api.sendTopicFeedback(this.mapId,t,e)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class ni{constructor(t){this.store=t,this.reloadDebouncer=new r(10)}static build(t){return new ni((t=>Xe.get({name:"ft-reader-"+t,initialState:{baseUrl:void 0,apiIntegrationIdentifier:"ft-reader",mapId:void 0,visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3,labels:{}},reducers:Qe}))(t.trim()||"context"))}setBaseUrl(t){this.store.actions.setBaseUrl(t),this.initService()}setApiIntegrationIdentifier(t){this.store.actions.setApiIntegrationIdentifier(t),this.initService()}initService(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier?this.service=ri.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId,t.labels):this.service=void 0,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setRenderBeforeFirst(t){this.store.actions.setRenderBeforeFirst(t)}setRenderAfterLast(t){this.store.actions.setRenderAfterLast(t)}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}setLabels(t){this.store.actions.setLabels(t),this.service&&(this.service.labels=t)}async awaitService(){for(;null==this.service;)await c(5);return this.service}async navigateToTopic(t,e,i){const r=await this.awaitService();let n=await(null!=i?r.getPage(i):r.getPageByTocId(t));this.store.actions.setCurrentPage(n),this.store.actions.setScrollTarget({tocId:t,section:e})}async navigateToPage(t){const e=await this.awaitService();let i=await e.getPage(t);this.store.actions.setCurrentPage(i)}scrollDone(){this.store.actions.setScrollTarget({})}reload(){var t;return null===(t=this.service)||void 0===t||t.clear(),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,e,i,r;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getMap().then((t=>this.store.actions.setMap(t))),null===(e=this.service)||void 0===e?void 0:e.getToc().then((t=>this.store.actions.setToc(t))),null===(i=this.service)||void 0===i?void 0:i.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(r=this.service)||void 0===r?void 0:r.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const oi=b`
82
+ `;var si=function(t,e,i,r){for(var n,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r,u=t.length-1;u>=0;u--)(n=t[u])&&(s=(o<3?n(s):o>3?n(e,i,s):n(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class ui extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class ai extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class ci extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class li extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class hi extends Event{constructor(){super("ft-reader-map-not-found")}}class fi extends Event{constructor(){super("ft-reader-map-unauthorized")}}const di=t=>e=>+(null!=e?e:"NaN")>0?+e:t;class vi extends Ze{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.labels={},this.visibleTopics=[],this.navigationDebouncer=new r(5)}render(){return J`
83
83
  ${this.importStyleIfNeeded()}
84
84
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
85
- `}importStyleIfNeeded(){var t,e;return!this.stateManager.service||window.location.href.startsWith(null!==(t=this.baseUrl)&&void 0!==t?t:"")?J:H`
85
+ `}importStyleIfNeeded(){var t,e;return!this.stateManager.service||window.location.href.startsWith(null!==(t=this.baseUrl)&&void 0!==t?t:"")?Z:J`
86
86
  <style>
87
87
  @import "${null===(e=this.stateManager.service)||void 0===e?void 0:e.themeStylesheet()}"
88
88
  </style>
89
- `}get stateManager(){return null==this._stateManager&&(this._stateManager=ti.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this._stateManager.errorHandler=t=>this.handleLoadError(t),this.store=this.stateManager.store),this._stateManager}connectedCallback(){super.connectedCallback(),this.stateManager.awaitService().then((t=>{const e=t.fontsStylesheet();if(!window.location.href.startsWith(this.baseUrl)&&!document.querySelector(`head link[href="${e}"]`)){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",e),document.head.append(t)}}))}updated(t){super.updated(t),t.has("baseUrl")&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.stateManager.setMapId(this.mapId),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):t.has("page")&&!this.tocId&&null!=this.page?this.stateManager.navigateToPage(this.page):t.has("mapId")&&this.mapId&&this.navigateToTarget(),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast),t.has("labels")&&this.stateManager.setLabels(this.labels)}contentAvailableCallback(t){var e;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new ri(this.map,this.toc)),t.has("scrollTarget")&&null==(null===(e=this.scrollTarget)||void 0===e?void 0:e.tocId)){const e=t.get("scrollTarget");null!=(null==e?void 0:e.tocId)&&this.navigationDebouncer.run((()=>{var t;return this.stateManager.service.getAccurateNavigationData(e.tocId,null===(t=this.currentPage)||void 0===t?void 0:t.number,e.section).then((t=>this.dispatchEvent(new oi(t))))}))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>{var e;return this.stateManager.service.getAccurateNavigationData(t,null===(e=this.currentPage)||void 0===e?void 0:e.number)}))).then((t=>{let e=t.filter((t=>null!=t&&""!==t.topicTitle)).map((t=>({tocId:t.tocId,title:t.topicTitle,page:t.page,prettyUrl:t.prettyUrl,prettyUrlDuplicated:t.prettyUrlDuplicated,breadcrumb:this.buildBreadcrumb(t.tocId)})));this.dispatchEvent(new ni(this.map,e))}))}buildBreadcrumb(t){var e,i,r,n;let o=[],s=null===(i=null===(e=this.stateManager.service)||void 0===e?void 0:e.getTocNodeNow(t))||void 0===i?void 0:i.parentTocId,a=null===(r=this.stateManager.service)||void 0===r?void 0:r.getTocNodeNow(s);for(;a;)o.unshift({tocId:a.tocId,title:a.title}),a=null===(n=this.stateManager.service)||void 0===n?void 0:n.getTocNodeNow(a.parentTocId);return o}async reload(){await this.stateManager.reload(),this.navigateToTarget()}navigateToTarget(){null!=this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):null!=this.page&&this.stateManager.navigateToPage(this.page)}registerComponent(t){t.stopPropagation();const e=t.composedPath()[0];this.register(e)}register(t){t.setReaderStateManager(this.stateManager)}handleLoadError(t){const e=t;404===e.status?this.dispatchEvent(new ai):401===e.status?this.dispatchEvent(new ui):this.dispatchEvent(new si(t))}}var hi;li.styles=ei,ii([r()],li.prototype,"baseUrl",void 0),ii([r()],li.prototype,"apiIntegrationIdentifier",void 0),ii([r()],li.prototype,"mapId",void 0),ii([r()],li.prototype,"tocId",void 0),ii([r()],li.prototype,"section",void 0),ii([r({type:Number,converter:{fromAttribute:ci()}})],li.prototype,"page",void 0),ii([r({type:Number,converter:{fromAttribute:ci(2)}})],li.prototype,"renderBeforeFirst",void 0),ii([r({type:Number,converter:{fromAttribute:ci(3)}})],li.prototype,"renderAfterLast",void 0),ii([o({})],li.prototype,"labels",void 0),ii([ze()],li.prototype,"map",void 0),ii([ze()],li.prototype,"toc",void 0),ii([ze()],li.prototype,"visibleTopics",void 0),ii([ze()],li.prototype,"currentPage",void 0),ii([ze()],li.prototype,"scrollTarget",void 0),(hi="ft-reader-context",t=>{window.customElements.get(hi)||window.customElements.define(hi,t)})(li),t.FtReaderContext=li,t.FtReaderContextCssVariables={},t.LoadErrorEvent=si,t.MapLoadedEvent=ri,t.NavigationDoneEvent=oi,t.NotFoundErrorEvent=ai,t.UnauthorizedErrorEvent=ui,t.VisibleTopicsChangeEvent=ni,t.styles=ei,Object.defineProperty(t,"U",{value:!0})}({});
89
+ `}get stateManager(){return null==this._stateManager&&(this._stateManager=ni.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this._stateManager.errorHandler=t=>this.handleLoadError(t),this.addStore(this.stateManager.store)),this._stateManager}connectedCallback(){super.connectedCallback(),this.stateManager.awaitService().then((t=>{const e=t.fontsStylesheet();if(!window.location.href.startsWith(this.baseUrl)&&!document.querySelector(`head link[href="${e}"]`)){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",e),document.head.append(t)}}))}updated(t){super.updated(t),t.has("baseUrl")&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.stateManager.setMapId(this.mapId),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):t.has("page")&&!this.tocId&&null!=this.page?this.stateManager.navigateToPage(this.page):t.has("mapId")&&this.mapId&&this.navigateToTarget(),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast),t.has("labels")&&this.stateManager.setLabels(this.labels)}contentAvailableCallback(t){var e;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new ui(this.map,this.toc)),t.has("scrollTarget")&&null==(null===(e=this.scrollTarget)||void 0===e?void 0:e.tocId)){const e=t.get("scrollTarget");null!=(null==e?void 0:e.tocId)&&this.navigationDebouncer.run((()=>{var t;return this.stateManager.service.getAccurateNavigationData(e.tocId,null===(t=this.currentPage)||void 0===t?void 0:t.number,e.section).then((t=>this.dispatchEvent(new ci(t))))}))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>{var e;return this.stateManager.service.getAccurateNavigationData(t,null===(e=this.currentPage)||void 0===e?void 0:e.number)}))).then((t=>{let e=t.filter((t=>null!=t&&""!==t.topicTitle)).map((t=>({tocId:t.tocId,title:t.topicTitle,page:t.page,prettyUrl:t.prettyUrl,prettyUrlDuplicated:t.prettyUrlDuplicated,breadcrumb:this.buildBreadcrumb(t.tocId)})));this.dispatchEvent(new ai(this.map,e))}))}buildBreadcrumb(t){var e,i,r,n;let o=[],s=null===(i=null===(e=this.stateManager.service)||void 0===e?void 0:e.getTocNodeNow(t))||void 0===i?void 0:i.parentTocId,u=null===(r=this.stateManager.service)||void 0===r?void 0:r.getTocNodeNow(s);for(;u;)o.unshift({tocId:u.tocId,title:u.title}),u=null===(n=this.stateManager.service)||void 0===n?void 0:n.getTocNodeNow(u.parentTocId);return o}async reload(){await this.stateManager.reload(),this.navigateToTarget()}navigateToTarget(){null!=this.tocId?this.stateManager.navigateToTopic(this.tocId,this.section,this.page):null!=this.page&&this.stateManager.navigateToPage(this.page)}registerComponent(t){t.stopPropagation();const e=t.composedPath()[0];this.register(e)}register(t){t.setReaderStateManager(this.stateManager)}handleLoadError(t){const e=t;404===e.status?this.dispatchEvent(new hi):401===e.status?this.dispatchEvent(new fi):this.dispatchEvent(new li(t))}}var pi;vi.styles=oi,si([o()],vi.prototype,"baseUrl",void 0),si([o()],vi.prototype,"apiIntegrationIdentifier",void 0),si([o()],vi.prototype,"mapId",void 0),si([o()],vi.prototype,"tocId",void 0),si([o()],vi.prototype,"section",void 0),si([o({type:Number,converter:{fromAttribute:di()}})],vi.prototype,"page",void 0),si([o({type:Number,converter:{fromAttribute:di(2)}})],vi.prototype,"renderBeforeFirst",void 0),si([o({type:Number,converter:{fromAttribute:di(3)}})],vi.prototype,"renderAfterLast",void 0),si([u({})],vi.prototype,"labels",void 0),si([Ve()],vi.prototype,"map",void 0),si([Ve()],vi.prototype,"toc",void 0),si([Ve()],vi.prototype,"visibleTopics",void 0),si([Ve()],vi.prototype,"currentPage",void 0),si([Ve()],vi.prototype,"scrollTarget",void 0),(pi="ft-reader-context",t=>{window.customElements.get(pi)||window.customElements.define(pi,t)})(vi),t.FtReaderContext=vi,t.FtReaderContextCssVariables={},t.LoadErrorEvent=li,t.MapLoadedEvent=ui,t.NavigationDoneEvent=ci,t.NotFoundErrorEvent=hi,t.UnauthorizedErrorEvent=fi,t.VisibleTopicsChangeEvent=ai,t.styles=oi,Object.defineProperty(t,"U",{value:!0})}({});
@@ -19,8 +19,15 @@ export function toFtReaderComponent(ReduxClass) {
19
19
  this.registerIntervalReader = 0;
20
20
  }
21
21
  setReaderStateManager(stateManager) {
22
+ this.clearStateManager();
22
23
  this.stateManager = stateManager;
23
- this.store = stateManager.store;
24
+ this.addStore(stateManager.store);
25
+ }
26
+ clearStateManager() {
27
+ if (this.stateManager) {
28
+ this.removeStore(this.stateManager.store);
29
+ this.stateManager = undefined;
30
+ }
24
31
  }
25
32
  get service() {
26
33
  var _a;
@@ -31,7 +38,7 @@ export function toFtReaderComponent(ReduxClass) {
31
38
  this.registerIntervalReader = window.setInterval(() => this.tryToRegisterToContext(), 50);
32
39
  }
33
40
  tryToRegisterToContext() {
34
- if (this.store != null) {
41
+ if (this.stateManager != null) {
35
42
  window.clearInterval(this.registerIntervalReader);
36
43
  }
37
44
  else {
@@ -40,8 +47,7 @@ export function toFtReaderComponent(ReduxClass) {
40
47
  }
41
48
  disconnectedCallback() {
42
49
  super.disconnectedCallback();
43
- this.store = undefined;
44
- this.stateManager = undefined;
50
+ this.clearStateManager();
45
51
  }
46
52
  }
47
53
  __decorate([
@@ -1,16 +1,16 @@
1
- import { Slice, Store } from "@reduxjs/toolkit";
2
1
  import { FtReaderLabels, FtReaderState } from "./model";
2
+ import { FtReduxStore } from "@fluid-topics/ft-wc-utils";
3
3
  import { FtReaderStateReducers } from "./redux";
4
4
  import { FtReaderService } from "./utils/FtReaderService";
5
5
  export declare class FtReaderStateManager {
6
- store: Store<FtReaderState>;
7
- private slice;
6
+ store: FtReduxStore<FtReaderState, FtReaderStateReducers>;
8
7
  static build(id: string): FtReaderStateManager;
9
8
  service?: FtReaderService;
10
9
  errorHandler?: (e: Error) => void;
11
- constructor(store: Store<FtReaderState>, slice: Slice<FtReaderState, FtReaderStateReducers, string>);
10
+ constructor(store: FtReduxStore<FtReaderState, FtReaderStateReducers>);
12
11
  setBaseUrl(baseUrl?: string): void;
13
12
  setApiIntegrationIdentifier(apiIntegrationIdentifier?: string): void;
13
+ private initService;
14
14
  setMapId(mapId?: string): void;
15
15
  setRenderBeforeFirst(value: number): void;
16
16
  setRenderAfterLast(value: number): void;
@@ -20,10 +20,8 @@ export declare class FtReaderStateManager {
20
20
  navigateToTopic(tocId: string, section?: string, pageNumber?: number): Promise<void>;
21
21
  navigateToPage(pageNumber: number): Promise<void>;
22
22
  scrollDone(): void;
23
- private setRequiredStateField;
24
23
  private reloadDebouncer;
25
24
  reload(): Promise<boolean>;
26
25
  private fetchData;
27
- private dispatch;
28
26
  }
29
27
  //# sourceMappingURL=FtReaderStateManager.d.ts.map
@@ -1,36 +1,50 @@
1
- import { Debouncer, delay, getStore } from "@fluid-topics/ft-wc-utils";
2
- import { createReaderSlice } from "./redux";
1
+ import { Debouncer, delay } from "@fluid-topics/ft-wc-utils";
2
+ import { createReaderStore } from "./redux";
3
3
  import { FtReaderService } from "./utils/FtReaderService";
4
4
  export class FtReaderStateManager {
5
- constructor(store, slice) {
5
+ constructor(store) {
6
6
  this.store = store;
7
- this.slice = slice;
8
7
  this.reloadDebouncer = new Debouncer(10);
9
8
  }
10
9
  static build(id) {
11
- const slice = createReaderSlice(id.trim() || "context");
12
- return new FtReaderStateManager(getStore(slice), slice);
10
+ return new FtReaderStateManager(createReaderStore(id.trim() || "context"));
13
11
  }
14
12
  setBaseUrl(baseUrl) {
15
- this.setRequiredStateField("baseUrl", "setBaseUrl", baseUrl);
13
+ this.store.actions.setBaseUrl(baseUrl);
14
+ this.initService();
16
15
  }
17
16
  setApiIntegrationIdentifier(apiIntegrationIdentifier) {
18
- this.setRequiredStateField("apiIntegrationIdentifier", "setApiIntegrationIdentifier", apiIntegrationIdentifier);
17
+ this.store.actions.setApiIntegrationIdentifier(apiIntegrationIdentifier);
18
+ this.initService();
19
+ }
20
+ initService() {
21
+ const state = this.store.getState();
22
+ if (state.baseUrl && state.apiIntegrationIdentifier) {
23
+ this.service = FtReaderService.build(state.baseUrl, state.apiIntegrationIdentifier, state.mapId, state.labels);
24
+ }
25
+ else {
26
+ this.service = undefined;
27
+ }
28
+ this.reload();
19
29
  }
20
30
  setMapId(mapId) {
21
- this.setRequiredStateField("mapId", "setMapId", mapId);
31
+ this.store.actions.setMapId(mapId);
32
+ if (this.service) {
33
+ this.service.mapId = mapId;
34
+ }
35
+ this.reload();
22
36
  }
23
37
  setRenderBeforeFirst(value) {
24
- this.dispatch(this.slice.actions.setRenderBeforeFirst(value));
38
+ this.store.actions.setRenderBeforeFirst(value);
25
39
  }
26
40
  setRenderAfterLast(value) {
27
- this.dispatch(this.slice.actions.setRenderAfterLast(value));
41
+ this.store.actions.setRenderAfterLast(value);
28
42
  }
29
43
  setVisibleTopics(tocIds) {
30
- this.dispatch(this.slice.actions.setVisibleTopics(tocIds));
44
+ this.store.actions.setVisibleTopics(tocIds);
31
45
  }
32
46
  setLabels(labels) {
33
- this.dispatch(this.slice.actions.setLabels(labels));
47
+ this.store.actions.setLabels(labels);
34
48
  if (this.service) {
35
49
  this.service.labels = labels;
36
50
  }
@@ -44,41 +58,34 @@ export class FtReaderStateManager {
44
58
  async navigateToTopic(tocId, section, pageNumber) {
45
59
  const service = await this.awaitService();
46
60
  let page = await (pageNumber != null ? service.getPage(pageNumber) : service.getPageByTocId(tocId));
47
- this.dispatch(this.slice.actions.setCurrentPage(page), this.slice.actions.setScrollTarget({ tocId, section }));
61
+ this.store.actions.setCurrentPage(page);
62
+ this.store.actions.setScrollTarget({ tocId, section });
48
63
  }
49
64
  async navigateToPage(pageNumber) {
50
65
  const service = await this.awaitService();
51
66
  let page = await service.getPage(pageNumber);
52
- this.dispatch(this.slice.actions.setCurrentPage(page));
67
+ this.store.actions.setCurrentPage(page);
53
68
  }
54
69
  scrollDone() {
55
- this.dispatch(this.slice.actions.setScrollTarget({}));
56
- }
57
- setRequiredStateField(field, setter, value) {
58
- if (this.store.getState()[field] !== value) {
59
- this.dispatch(this.slice.actions[setter](value));
60
- this.reload();
61
- }
70
+ this.store.actions.setScrollTarget({});
62
71
  }
63
72
  reload() {
64
- const state = this.store.getState();
65
- if (state.baseUrl && state.apiIntegrationIdentifier && state.mapId) {
66
- this.service = FtReaderService.build(state.baseUrl, state.apiIntegrationIdentifier, state.mapId);
67
- this.service.labels = state.labels;
68
- }
69
- else {
70
- this.service = undefined;
71
- }
72
- this.dispatch(this.slice.actions.setMap(undefined), this.slice.actions.setToc(undefined), this.slice.actions.setPagesToc(undefined), this.slice.actions.setCurrentPage(undefined));
73
+ var _a;
74
+ (_a = this.service) === null || _a === void 0 ? void 0 : _a.clear();
75
+ this.store.actions.setMap(undefined);
76
+ this.store.actions.setToc(undefined);
77
+ this.store.actions.setPagesToc(undefined);
78
+ this.store.actions.setCurrentPage(undefined);
73
79
  return this.reloadDebouncer.run(() => this.fetchData());
74
80
  }
75
81
  async fetchData() {
76
- var _a, _b, _c;
82
+ var _a, _b, _c, _d;
77
83
  try {
78
84
  await Promise.all([
79
- (_a = this.service) === null || _a === void 0 ? void 0 : _a.getMap().then(map => this.dispatch(this.slice.actions.setMap(map))),
80
- (_b = this.service) === null || _b === void 0 ? void 0 : _b.getToc().then(toc => this.dispatch(this.slice.actions.setToc(toc))),
81
- (_c = this.service) === null || _c === void 0 ? void 0 : _c.getPagesToc().then(pagesToc => this.dispatch(this.slice.actions.setPagesToc(pagesToc))),
85
+ (_a = this.service) === null || _a === void 0 ? void 0 : _a.getMap().then(map => this.store.actions.setMap(map)),
86
+ (_b = this.service) === null || _b === void 0 ? void 0 : _b.getToc().then(toc => this.store.actions.setToc(toc)),
87
+ (_c = this.service) === null || _c === void 0 ? void 0 : _c.getPagesToc().then(pagesToc => this.store.actions.setPagesToc(pagesToc)),
88
+ (_d = this.service) === null || _d === void 0 ? void 0 : _d.getPaginationConfiguration().then(conf => this.store.actions.setPaginationConfiguration(conf)),
82
89
  ]);
83
90
  }
84
91
  catch (e) {
@@ -87,10 +94,5 @@ export class FtReaderStateManager {
87
94
  }
88
95
  }
89
96
  }
90
- dispatch(...actions) {
91
- for (let action of actions) {
92
- this.store.dispatch(action);
93
- }
94
- }
95
97
  }
96
98
  //# sourceMappingURL=FtReaderStateManager.js.map
@@ -1,5 +1,5 @@
1
1
  import { Store } from "@reduxjs/toolkit";
2
- import { FtMap, FtRatingType, FtTocNode, FtTopic, FtTopicRating } from "@fluid-topics/public-api";
2
+ import { FtMap, FtRatingType, FtTocNode, FtTopic, FtTopicRating, FtPaginationConfiguration } from "@fluid-topics/public-api";
3
3
  import { ParametrizedLabels } from "@fluid-topics/ft-wc-utils";
4
4
  export declare type FtReaderStore = Store<FtReaderState>;
5
5
  export interface FtPagesTocNode {
@@ -37,6 +37,7 @@ export interface FtReaderState {
37
37
  map?: FtMap;
38
38
  toc?: Array<FtReaderTocNode>;
39
39
  pagesToc?: Array<FtPagesTocNode>;
40
+ paginationConfiguration?: FtPaginationConfiguration;
40
41
  currentPage?: FtReaderPage;
41
42
  scrollTarget?: FtReaderScrollTarget;
42
43
  visibleTopics: string[];
@@ -1,5 +1,6 @@
1
1
  import { PayloadAction } from "@reduxjs/toolkit";
2
2
  import { FtReaderState } from "./model";
3
+ import { FtReduxStore } from "@fluid-topics/ft-wc-utils";
3
4
  declare const readerStateReducers: {
4
5
  setBaseUrl: (state: FtReaderState, action: PayloadAction<FtReaderState["baseUrl"]>) => void;
5
6
  setApiIntegrationIdentifier: (state: FtReaderState, action: PayloadAction<FtReaderState["apiIntegrationIdentifier"]>) => void;
@@ -8,6 +9,7 @@ declare const readerStateReducers: {
8
9
  setMap: (state: FtReaderState, action: PayloadAction<FtReaderState["map"]>) => void;
9
10
  setToc: (state: FtReaderState, action: PayloadAction<FtReaderState["toc"]>) => void;
10
11
  setPagesToc: (state: FtReaderState, action: PayloadAction<FtReaderState["pagesToc"]>) => void;
12
+ setPaginationConfiguration: (state: FtReaderState, action: PayloadAction<FtReaderState["paginationConfiguration"]>) => void;
11
13
  setCurrentPage: (state: FtReaderState, action: PayloadAction<FtReaderState["currentPage"]>) => void;
12
14
  setScrollTarget: (state: FtReaderState, action: PayloadAction<FtReaderState["scrollTarget"]>) => void;
13
15
  setVisibleTopics: (state: FtReaderState, action: PayloadAction<FtReaderState["visibleTopics"]>) => void;
@@ -16,7 +18,7 @@ declare const readerStateReducers: {
16
18
  setLabels: (state: FtReaderState, action: PayloadAction<FtReaderState["labels"]>) => void;
17
19
  };
18
20
  export declare type FtReaderStateReducers = typeof readerStateReducers;
19
- export declare const createReaderSlice: (id: string) => import("@reduxjs/toolkit").Slice<FtReaderState, {
21
+ export declare const createReaderStore: (id: string) => FtReduxStore<FtReaderState, {
20
22
  setBaseUrl: (state: FtReaderState, action: PayloadAction<FtReaderState["baseUrl"]>) => void;
21
23
  setApiIntegrationIdentifier: (state: FtReaderState, action: PayloadAction<FtReaderState["apiIntegrationIdentifier"]>) => void;
22
24
  setMapId: (state: FtReaderState, action: PayloadAction<FtReaderState["mapId"]>) => void;
@@ -24,12 +26,13 @@ export declare const createReaderSlice: (id: string) => import("@reduxjs/toolkit
24
26
  setMap: (state: FtReaderState, action: PayloadAction<FtReaderState["map"]>) => void;
25
27
  setToc: (state: FtReaderState, action: PayloadAction<FtReaderState["toc"]>) => void;
26
28
  setPagesToc: (state: FtReaderState, action: PayloadAction<FtReaderState["pagesToc"]>) => void;
29
+ setPaginationConfiguration: (state: FtReaderState, action: PayloadAction<FtReaderState["paginationConfiguration"]>) => void;
27
30
  setCurrentPage: (state: FtReaderState, action: PayloadAction<FtReaderState["currentPage"]>) => void;
28
31
  setScrollTarget: (state: FtReaderState, action: PayloadAction<FtReaderState["scrollTarget"]>) => void;
29
32
  setVisibleTopics: (state: FtReaderState, action: PayloadAction<FtReaderState["visibleTopics"]>) => void;
30
33
  setRenderBeforeFirst: (state: FtReaderState, action: PayloadAction<FtReaderState["renderBeforeFirst"]>) => void;
31
34
  setRenderAfterLast: (state: FtReaderState, action: PayloadAction<FtReaderState["renderAfterLast"]>) => void;
32
35
  setLabels: (state: FtReaderState, action: PayloadAction<FtReaderState["labels"]>) => void;
33
- }, string>;
36
+ }, import("redux").AnyAction>;
34
37
  export {};
35
38
  //# sourceMappingURL=redux.d.ts.map
@@ -1,4 +1,4 @@
1
- import { createSlice } from "@reduxjs/toolkit";
1
+ import { FtReduxStore } from "@fluid-topics/ft-wc-utils";
2
2
  const readerStateReducers = {
3
3
  setBaseUrl: (state, action) => {
4
4
  state.baseUrl = action.payload;
@@ -21,6 +21,9 @@ const readerStateReducers = {
21
21
  setPagesToc: (state, action) => {
22
22
  state.pagesToc = action.payload;
23
23
  },
24
+ setPaginationConfiguration: (state, action) => {
25
+ state.paginationConfiguration = action.payload;
26
+ },
24
27
  setCurrentPage: (state, action) => {
25
28
  state.currentPage = action.payload;
26
29
  },
@@ -40,7 +43,7 @@ const readerStateReducers = {
40
43
  state.labels = action.payload;
41
44
  },
42
45
  };
43
- export const createReaderSlice = (id) => createSlice({
46
+ export const createReaderStore = (id) => FtReduxStore.get({
44
47
  name: "ft-reader-" + id,
45
48
  initialState: {
46
49
  baseUrl: undefined,
@@ -1,7 +1,7 @@
1
- import type { FluidTopicsApi, FtMap, FtPublicationRatingSummary, FtTopic } from "@fluid-topics/public-api";
2
- import { FtRatingType } from "@fluid-topics/public-api";
1
+ import type { FluidTopicsApi, FtMap, FtPaginationConfiguration, FtPublicationRatingSummary, FtRatingType, FtTopic } from "@fluid-topics/public-api";
2
+ import { CacheRegistry } from "@fluid-topics/ft-wc-utils";
3
3
  import { FtPagesTocNode, FtReaderLabels, FtReaderNavigationData, FtReaderPage, FtReaderTocNode, FtTopicRatingSummary } from "../model";
4
- import { FtReaderConverter } from "./FtReaderConverter";
4
+ import { EnrichedToc, FtReaderConverter } from "./FtReaderConverter";
5
5
  declare global {
6
6
  interface Window {
7
7
  fluidtopics?: {
@@ -12,41 +12,41 @@ declare global {
12
12
  export declare class FtReaderService {
13
13
  private converter;
14
14
  private api;
15
+ private cache;
15
16
  private baseUrl;
16
- private mapId;
17
- static build(baseUrl: string, apiIntegrationIdentifier: string, mapId: string): FtReaderService;
18
- constructor(converter: FtReaderConverter, api: FluidTopicsApi, baseUrl: string, mapId: string);
17
+ static build(baseUrl: string, apiIntegrationIdentifier: string, mapId?: string, labels?: FtReaderLabels): FtReaderService;
18
+ private _mapId;
19
+ get mapId(): string;
20
+ set mapId(value: string | undefined);
21
+ constructor(converter: FtReaderConverter, api: FluidTopicsApi, cache: CacheRegistry, baseUrl: string, mapId?: string, labels?: FtReaderLabels);
22
+ private initCache;
19
23
  clear(): void;
20
- private map?;
21
24
  getMap(): Promise<FtMap>;
22
- private enrichedToc?;
23
25
  private getEnrichedToc;
26
+ get enrichedToc(): EnrichedToc | undefined;
27
+ getPaginationConfiguration(): Promise<FtPaginationConfiguration>;
24
28
  getToc(): Promise<Array<FtReaderTocNode>>;
25
29
  getPagesToc(): Promise<Array<FtPagesTocNode>>;
26
30
  getTocNode(tocId: string): Promise<FtReaderTocNode>;
27
31
  getTocNodeNow(tocId: string): FtReaderTocNode | undefined;
28
32
  getPage(number: number): Promise<FtReaderPage>;
29
33
  getPageByTocId(tocId: string): Promise<FtReaderPage>;
30
- private topics;
31
34
  getTopicInfo(contentId: string): Promise<FtTopic>;
32
- private topicContents;
33
35
  getTopicContent(contentId: string): Promise<string>;
34
36
  getLink(tocId?: string, pageNumber?: number, section?: string): string;
35
37
  getNavigationData(tocId?: string, pageNumber?: number, section?: string): FtReaderNavigationData;
36
38
  getAccurateNavigationData(tocId?: string, pageNumber?: number, section?: string): Promise<FtReaderNavigationData>;
37
- private loadIfNeeded;
38
39
  set labels(labels: FtReaderLabels);
39
40
  private labelResolver;
40
41
  resolveLabel(key: keyof FtReaderLabels, ...args: any[]): string;
41
- private ratingSummary?;
42
42
  private getRatingSummary;
43
43
  getMapRating(): Promise<FtPublicationRatingSummary>;
44
44
  getTopicRating(tocId: string): Promise<FtTopicRatingSummary>;
45
- rateMap(type: FtRatingType, value: number): Promise<undefined>;
46
- unrateMap(): Promise<undefined>;
45
+ rateMap(type: FtRatingType, value: number): Promise<void>;
46
+ unrateMap(): Promise<void>;
47
47
  sendMapFeedback(message: string): Promise<void>;
48
- rateTopic(tocId: string, type: FtRatingType, value: number): Promise<undefined>;
49
- unrateTopic(tocId: string): Promise<undefined>;
48
+ rateTopic(tocId: string, type: FtRatingType, value: number): Promise<void>;
49
+ unrateTopic(tocId: string): Promise<void>;
50
50
  sendTopicFeedback(tocId: string, message: string): Promise<void>;
51
51
  fontsStylesheet(): string;
52
52
  themeStylesheet(): string;
@@ -1,39 +1,57 @@
1
- import { delay, ParametrizedLabelResolver } from "@fluid-topics/ft-wc-utils";
1
+ import { CacheRegistry, ParametrizedLabelResolver } from "@fluid-topics/ft-wc-utils";
2
2
  import { ftReaderDefaultLabels } from "../model";
3
3
  import { FtReaderConverter } from "./FtReaderConverter";
4
4
  export class FtReaderService {
5
- constructor(converter, api, baseUrl, mapId) {
5
+ constructor(converter, api, cache, baseUrl, mapId, labels) {
6
6
  this.converter = converter;
7
7
  this.api = api;
8
+ this.cache = cache;
8
9
  this.baseUrl = baseUrl;
9
- this.mapId = mapId;
10
- this.topics = {};
11
- this.topicContents = {};
12
10
  this.labelResolver = new ParametrizedLabelResolver(ftReaderDefaultLabels, {});
13
11
  if (!baseUrl.endsWith("/")) {
14
12
  this.baseUrl = baseUrl + "/";
15
13
  }
14
+ this.mapId = mapId;
15
+ this.labels = labels !== null && labels !== void 0 ? labels : {};
16
+ this.initCache();
16
17
  }
17
- static build(baseUrl, apiIntegrationIdentifier, mapId) {
18
+ static build(baseUrl, apiIntegrationIdentifier, mapId, labels) {
18
19
  if (window.fluidtopics == null) {
19
20
  console.error("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");
20
21
  throw new Error("Fluid Topics public API not found");
21
22
  }
22
- return new FtReaderService(new FtReaderConverter(), new window.fluidtopics.FluidTopicsApi(baseUrl, apiIntegrationIdentifier, true), baseUrl, mapId);
23
+ const api = new window.fluidtopics.FluidTopicsApi(baseUrl, apiIntegrationIdentifier, true);
24
+ return new FtReaderService(new FtReaderConverter(), api, new CacheRegistry(), baseUrl, mapId, labels);
25
+ }
26
+ get mapId() {
27
+ return this._mapId;
28
+ }
29
+ set mapId(value) {
30
+ if (value !== this._mapId) {
31
+ this.clear();
32
+ }
33
+ this._mapId = value;
34
+ }
35
+ initCache() {
36
+ this.cache.register("map", () => this.api.getMap(this.mapId));
37
+ this.cache.register("enrichedToc", () => this.api.getPages(this.mapId).then(toc => this.converter.convertPaginatedToc(toc)));
38
+ this.cache.register("ratingSummary", () => this.api.getMapRating(this.mapId));
23
39
  }
24
40
  clear() {
25
- this.map = undefined;
26
- this.enrichedToc = undefined;
27
- this.topics = {};
28
- this.topicContents = {};
29
- this.ratingSummary = undefined;
41
+ this.cache.clearAll();
30
42
  }
31
43
  getMap() {
32
- return this.loadIfNeeded(() => this.map, v => this.map = v, () => this.api.getMap(this.mapId));
44
+ return this.cache.get("map");
33
45
  }
34
46
  getEnrichedToc() {
35
- return this.loadIfNeeded(() => this.enrichedToc, v => this.enrichedToc = v, () => this.api.getPages(this.mapId)
36
- .then(toc => this.converter.convertPaginatedToc(toc)));
47
+ return this.cache.get("enrichedToc");
48
+ }
49
+ get enrichedToc() {
50
+ return this.cache.getNow("enrichedToc");
51
+ }
52
+ async getPaginationConfiguration() {
53
+ const enrichedToc = await this.getEnrichedToc();
54
+ return enrichedToc.paginationConfiguration;
37
55
  }
38
56
  async getToc() {
39
57
  const enrichedToc = await this.getEnrichedToc();
@@ -49,9 +67,6 @@ export class FtReaderService {
49
67
  }
50
68
  getTocNodeNow(tocId) {
51
69
  var _a;
52
- if (typeof this.enrichedToc === "boolean" || this.enrichedToc instanceof Error) {
53
- return undefined;
54
- }
55
70
  return (_a = this.enrichedToc) === null || _a === void 0 ? void 0 : _a.nodeByTocId[tocId];
56
71
  }
57
72
  async getPage(number) {
@@ -63,10 +78,10 @@ export class FtReaderService {
63
78
  return enrichedToc.pageByTocId[tocId] || enrichedToc.pages[0];
64
79
  }
65
80
  getTopicInfo(contentId) {
66
- return this.loadIfNeeded(() => this.topics[contentId], v => this.topics[contentId] = v, () => this.api.getTopic(this.mapId, contentId));
81
+ return this.cache.get("topic-" + contentId, () => this.api.getTopic(this.mapId, contentId));
67
82
  }
68
83
  getTopicContent(contentId) {
69
- return this.loadIfNeeded(() => this.topicContents[contentId], v => this.topicContents[contentId] = v, () => this.api.getTopicHTMLContent(this.mapId, contentId, "DESIGNED_READER"));
84
+ return this.cache.get("topic-content-" + contentId, () => this.api.getTopicHTMLContent(this.mapId, contentId, "DESIGNED_READER"));
70
85
  }
71
86
  getLink(tocId, pageNumber, section) {
72
87
  const navigationData = this.getNavigationData(tocId, pageNumber, section);
@@ -86,7 +101,7 @@ export class FtReaderService {
86
101
  getNavigationData(tocId, pageNumber, section) {
87
102
  var _a, _b;
88
103
  tocId = tocId || "root";
89
- const enrichedToc = typeof this.enrichedToc === "object" ? this.enrichedToc : undefined;
104
+ const enrichedToc = this.enrichedToc;
90
105
  const page = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.pageByTocId[tocId];
91
106
  const node = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.nodeByTocId[tocId];
92
107
  const prettyUrl = node === null || node === void 0 ? void 0 : node.prettyUrl;
@@ -104,20 +119,6 @@ export class FtReaderService {
104
119
  await this.getEnrichedToc();
105
120
  return this.getNavigationData(tocId, pageNumber, section);
106
121
  }
107
- async loadIfNeeded(get, set, load) {
108
- if (get() === undefined) {
109
- set(true);
110
- set(await load().catch(e => e));
111
- }
112
- while (get() === true) {
113
- await delay(10);
114
- }
115
- const value = get();
116
- if (value instanceof Error) {
117
- throw value;
118
- }
119
- return value;
120
- }
121
122
  set labels(labels) {
122
123
  this.labelResolver = new ParametrizedLabelResolver(ftReaderDefaultLabels, labels);
123
124
  }
@@ -125,7 +126,7 @@ export class FtReaderService {
125
126
  return this.labelResolver.resolve(key, args);
126
127
  }
127
128
  getRatingSummary() {
128
- return this.loadIfNeeded(() => this.ratingSummary, v => this.ratingSummary = v, () => this.api.getMapRating(this.mapId));
129
+ return this.cache.get("ratingSummary");
129
130
  }
130
131
  getMapRating() {
131
132
  return this.getRatingSummary().then(rm => rm.publication);
@@ -140,19 +141,19 @@ export class FtReaderService {
140
141
  });
141
142
  }
142
143
  rateMap(type, value) {
143
- return this.api.rateMap(this.mapId, type, value).then(() => this.ratingSummary = undefined);
144
+ return this.api.rateMap(this.mapId, type, value).then(() => this.cache.clear("ratingSummary"));
144
145
  }
145
146
  unrateMap() {
146
- return this.api.unrateMap(this.mapId).then(() => this.ratingSummary = undefined);
147
+ return this.api.unrateMap(this.mapId).then(() => this.cache.clear("ratingSummary"));
147
148
  }
148
149
  sendMapFeedback(message) {
149
150
  return this.api.sendMapFeedback(this.mapId, message);
150
151
  }
151
152
  rateTopic(tocId, type, value) {
152
- return this.api.rateTopic(this.mapId, tocId, type, value).then(() => this.ratingSummary = undefined);
153
+ return this.api.rateTopic(this.mapId, tocId, type, value).then(() => this.cache.clear("ratingSummary"));
153
154
  }
154
155
  unrateTopic(tocId) {
155
- return this.api.unrateTopic(this.mapId, tocId).then(() => this.ratingSummary = undefined);
156
+ return this.api.unrateTopic(this.mapId, tocId).then(() => this.cache.clear("ratingSummary"));
156
157
  }
157
158
  sendTopicFeedback(tocId, message) {
158
159
  return this.api.sendTopicFeedback(this.mapId, tocId, message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-reader-context",
3
- "version": "0.3.50",
3
+ "version": "0.3.52",
4
4
  "description": "Context block for integrated reader components",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,7 +19,7 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-wc-utils": "0.3.50",
22
+ "@fluid-topics/ft-wc-utils": "0.3.52",
23
23
  "@reduxjs/toolkit": "^1.6.2",
24
24
  "lit": "2.2.8"
25
25
  },
@@ -29,5 +29,5 @@
29
29
  "peerDependencies": {
30
30
  "@fluid-topics/public-api": "1.0.28"
31
31
  },
32
- "gitHead": "ed73266ceb5360df2eefd4cbb314c1b9b2e811dc"
32
+ "gitHead": "746cdd6b34c2fa25220ed735914fb1dff9c0fde7"
33
33
  }