@fluid-topics/ft-reader-context 0.3.8 → 0.3.11

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.
@@ -1,24 +1,34 @@
1
1
  import { PropertyValues } from "lit";
2
2
  import { FtLitElementRedux } from "@fluid-topics/ft-wc-utils";
3
+ import { FtReaderNavigationData, FtReaderTocNode } from "./store/model";
3
4
  import { FtMap } from "@fluid-topics/public-api";
4
- export declare class MapLoadedEvent extends CustomEvent<FtMap> {
5
- constructor(map: FtMap);
5
+ declare type MapLoadedEventDetail = {
6
+ map: FtMap;
7
+ toc: Array<FtReaderTocNode>;
8
+ };
9
+ export declare class MapLoadedEvent extends CustomEvent<MapLoadedEventDetail> {
10
+ constructor(map: FtMap, toc: Array<FtReaderTocNode>);
6
11
  }
7
12
  export interface FtReaderVisibleTopic {
8
13
  tocId: string;
9
14
  title: string;
15
+ page?: number;
16
+ prettyUrl?: string;
17
+ prettyUrlDuplicated: boolean;
10
18
  breadcrumb?: Array<{
11
19
  tocId: string;
12
20
  title: string;
13
21
  }>;
14
22
  }
15
23
  export interface VisibleTopicsChangeData {
16
- map: FtMap;
17
24
  visibleTopics: FtReaderVisibleTopic[];
18
25
  }
19
26
  export declare class VisibleTopicsChangeEvent extends CustomEvent<VisibleTopicsChangeData> {
20
27
  constructor(map: FtMap, visibleTopics: FtReaderVisibleTopic[]);
21
28
  }
29
+ export declare class NavigationDoneEvent extends CustomEvent<FtReaderNavigationData> {
30
+ constructor(data: FtReaderNavigationData);
31
+ }
22
32
  export declare class FtReaderContext extends FtLitElementRedux {
23
33
  static styles: import("lit").CSSResult;
24
34
  baseUrl?: string;
@@ -27,14 +37,21 @@ export declare class FtReaderContext extends FtLitElementRedux {
27
37
  tocId?: string;
28
38
  section?: string;
29
39
  page?: number;
40
+ renderBeforeFirst: number;
41
+ renderAfterLast: number;
30
42
  private map?;
31
43
  private toc?;
32
44
  private visibleTopics;
45
+ private currentPageNumber?;
46
+ private scrollTarget?;
33
47
  protected render(): import("lit-html").TemplateResult<1>;
34
48
  private _stateManager?;
35
49
  private get stateManager();
36
50
  protected updated(props: PropertyValues): void;
51
+ private navigationDebouncer;
37
52
  protected contentAvailableCallback(props: PropertyValues): void;
53
+ navigateToTarget(): void;
38
54
  private registerComponent;
39
55
  }
56
+ export {};
40
57
  //# sourceMappingURL=ft-reader-context.d.ts.map
@@ -6,23 +6,32 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { css, html } from "lit";
8
8
  import { property } from "lit/decorators.js";
9
- import { FtLitElementRedux, redux } from "@fluid-topics/ft-wc-utils";
9
+ import { Debouncer, FtLitElementRedux, redux } from "@fluid-topics/ft-wc-utils";
10
10
  import { FtReaderStateManager } from "./store/FtReaderStateManager";
11
11
  export class MapLoadedEvent extends CustomEvent {
12
- constructor(map) {
13
- super("ft-reader-map-loaded", { detail: map });
12
+ constructor(map, toc) {
13
+ super("ft-reader-map-loaded", { detail: { map, toc } });
14
14
  }
15
15
  }
16
16
  export class VisibleTopicsChangeEvent extends CustomEvent {
17
17
  constructor(map, visibleTopics) {
18
- super("ft-reader-visible-topics-change", { detail: { map, visibleTopics } });
18
+ super("ft-reader-visible-topics-change", { detail: { visibleTopics } });
19
19
  }
20
20
  }
21
+ export class NavigationDoneEvent extends CustomEvent {
22
+ constructor(data) {
23
+ super("ft-reader-navigation-done", { detail: data });
24
+ }
25
+ }
26
+ const fromNumberAttribute = (defaultValue) => (value) => +(value !== null && value !== void 0 ? value : "NaN") > 0 ? +value : defaultValue;
21
27
  export class FtReaderContext extends FtLitElementRedux {
22
28
  constructor() {
23
29
  super(...arguments);
24
30
  this.apiIntegrationIdentifier = "ft-reader";
31
+ this.renderBeforeFirst = 2;
32
+ this.renderAfterLast = 3;
25
33
  this.visibleTopics = [];
34
+ this.navigationDebouncer = new Debouncer(5);
26
35
  }
27
36
  render() {
28
37
  return html `
@@ -31,7 +40,7 @@ export class FtReaderContext extends FtLitElementRedux {
31
40
  }
32
41
  get stateManager() {
33
42
  if (this._stateManager == null) {
34
- this._stateManager = FtReaderStateManager.build(this.id || "" + Math.round(Math.random() * 10000));
43
+ this._stateManager = FtReaderStateManager.build(this.id || ("" + Math.round(Math.random() * 999000)).padStart(6, "0"));
35
44
  this.store = this.stateManager.store;
36
45
  }
37
46
  return this._stateManager;
@@ -54,24 +63,50 @@ export class FtReaderContext extends FtLitElementRedux {
54
63
  if ((props.has("tocId") || props.has("section") || props.has("page")) && this.tocId) {
55
64
  this.stateManager.navigateToTopic(this.tocId, this.section, this.page);
56
65
  }
66
+ if (props.has("renderBeforeFirst")) {
67
+ this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst);
68
+ }
69
+ if (props.has("renderAfterLast")) {
70
+ this.stateManager.setRenderAfterLast(this.renderAfterLast);
71
+ }
57
72
  }
58
73
  contentAvailableCallback(props) {
74
+ var _a;
59
75
  super.contentAvailableCallback(props);
60
76
  if ((props.has("map") || props.has("toc")) && this.map && this.toc) {
61
- this.dispatchEvent(new MapLoadedEvent(this.map));
77
+ this.dispatchEvent(new MapLoadedEvent(this.map, this.toc));
78
+ }
79
+ if (props.has("scrollTarget") && ((_a = this.scrollTarget) === null || _a === void 0 ? void 0 : _a.tocId) == null) {
80
+ const oldScrollTarget = props.get("scrollTarget");
81
+ if ((oldScrollTarget === null || oldScrollTarget === void 0 ? void 0 : oldScrollTarget.tocId) != null) {
82
+ this.navigationDebouncer.run(() => this.stateManager.service.getAccurateNavigationData(oldScrollTarget.tocId, this.currentPageNumber, oldScrollTarget.section)
83
+ .then(data => this.dispatchEvent(new NavigationDoneEvent(data))));
84
+ }
62
85
  }
63
86
  if (props.has("visibleTopics")) {
64
- Promise.all(this.visibleTopics.map(tocId => this.stateManager.service.getTocNode(tocId)))
65
- .then(tocNodes => {
66
- let visibleTopics = tocNodes.map(node => ({
67
- tocId: node.tocId,
68
- title: node.title
87
+ Promise.all(this.visibleTopics.map(tocId => this.stateManager.service.getAccurateNavigationData(tocId, this.currentPageNumber)))
88
+ .then(navigationData => {
89
+ let visibleTopics = navigationData.filter(data => data != null && data.topicTitle !== "")
90
+ .map(data => ({
91
+ tocId: data.tocId,
92
+ title: data.topicTitle,
93
+ page: data.page,
94
+ prettyUrl: data.prettyUrl,
95
+ prettyUrlDuplicated: data.prettyUrlDuplicated,
69
96
  // TODO : breadcrumb
70
97
  }));
71
98
  this.dispatchEvent(new VisibleTopicsChangeEvent(this.map, visibleTopics));
72
99
  });
73
100
  }
74
101
  }
102
+ navigateToTarget() {
103
+ if (this.tocId != null) {
104
+ this.stateManager.navigateToTopic(this.tocId, this.section, this.page);
105
+ }
106
+ else if (this.page != null) {
107
+ this.stateManager.navigateToPage(this.page);
108
+ }
109
+ }
75
110
  registerComponent(e) {
76
111
  e.stopPropagation();
77
112
  const component = e.composedPath()[0];
@@ -97,11 +132,14 @@ __decorate([
97
132
  property()
98
133
  ], FtReaderContext.prototype, "section", void 0);
99
134
  __decorate([
100
- property({
101
- type: Number,
102
- converter: { fromAttribute: (value) => value ? +value : undefined }
103
- })
135
+ property({ type: Number, converter: { fromAttribute: fromNumberAttribute() } })
104
136
  ], FtReaderContext.prototype, "page", void 0);
137
+ __decorate([
138
+ property({ type: Number, converter: { fromAttribute: fromNumberAttribute(2) } })
139
+ ], FtReaderContext.prototype, "renderBeforeFirst", void 0);
140
+ __decorate([
141
+ property({ type: Number, converter: { fromAttribute: fromNumberAttribute(3) } })
142
+ ], FtReaderContext.prototype, "renderAfterLast", void 0);
105
143
  __decorate([
106
144
  redux()
107
145
  ], FtReaderContext.prototype, "map", void 0);
@@ -111,4 +149,10 @@ __decorate([
111
149
  __decorate([
112
150
  redux()
113
151
  ], FtReaderContext.prototype, "visibleTopics", void 0);
152
+ __decorate([
153
+ redux((state) => { var _a; return (_a = state.currentPage) === null || _a === void 0 ? void 0 : _a.number; })
154
+ ], FtReaderContext.prototype, "currentPageNumber", void 0);
155
+ __decorate([
156
+ redux()
157
+ ], FtReaderContext.prototype, "scrollTarget", void 0);
114
158
  //# sourceMappingURL=ft-reader-context.js.map
@@ -1,4 +1,4 @@
1
- !function(t,n,r,e){function i(t){for(var n=arguments.length,r=Array(n>1?n-1:0),e=1;e<n;e++)r[e-1]=arguments[e];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[V]}function u(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var n=Object.getPrototypeOf(t);if(null===n)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===J}(t)||Array.isArray(t)||!!t[L]||!!t.constructor[L]||d(t)||v(t))}function c(t,n,r){void 0===r&&(r=!1),0===a(t)?(r?Object.keys:W)(t).forEach((function(e){r&&"symbol"==typeof e||n(e,t[e],t)})):t.forEach((function(r,e){return n(e,r,t)}))}function a(t){var n=t[V];return n?n.i>3?n.i-4:n.i:Array.isArray(t)?1:d(t)?2:v(t)?3:0}function s(t,n){return 2===a(t)?t.has(n):Object.prototype.hasOwnProperty.call(t,n)}function f(t,n,r){var e=a(t);2===e?t.set(n,r):3===e?(t.delete(n),t.add(r)):t[n]=r}function l(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}function d(t){return N&&t instanceof Map}function v(t){return G&&t instanceof Set}function h(t){return t.o||t.t}function p(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var n=X(t);delete n[V];for(var r=W(n),e=0;e<r.length;e++){var i=r[e],o=n[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(n[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),n)}function b(t,n){return void 0===n&&(n=!1),w(t)||o(t)||!u(t)||(a(t)>1&&(t.set=t.add=t.clear=t.delete=y),Object.freeze(t),n&&c(t,(function(t,n){return b(n,!0)}),!0)),t}function y(){i(2)}function w(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function m(t){var n=Y[t];return n||i(18,t),n}function g(){return $}function j(t,n){n&&(m("Patches"),t.u=[],t.s=[],t.v=n)}function I(t){O(t),t.p.forEach(T),t.p=null}function O(t){t===$&&($=t.l)}function P(t){return $={p:[],l:$,h:t,m:!0,_:0}}function T(t){var n=t[V];0===n.i||1===n.i?n.j():n.O=!0}function A(t,n){n._=n.p.length;var r=n.p[0],e=void 0!==t&&t!==r;return n.h.g||m("ES5").S(n,t,e),e?(r[V].P&&(I(n),i(4)),u(t)&&(t=S(n,t),n.l||M(n,t)),n.u&&m("Patches").M(r[V].t,t,n.u,n.s)):t=S(n,r,[]),I(n),n.u&&n.v(n.u,n.s),t!==q?t:void 0}function S(t,n,r){if(w(n))return n;var e=n[V];if(!e)return c(n,(function(i,o){return E(t,e,n,i,o,r)}),!0),n;if(e.A!==t)return n;if(!e.P)return M(t,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var i=4===e.i||5===e.i?e.o=p(e.k):e.o;c(3===e.i?new Set(i):i,(function(n,o){return E(t,e,i,n,o,r)})),M(t,i,!1),r&&t.u&&m("Patches").R(e,r,t.u,t.s)}return e.o}function E(t,n,r,e,i,c){if(o(i)){var a=S(t,i,c&&n&&3!==n.i&&!s(n.D,e)?c.concat(e):void 0);if(f(r,e,a),!o(a))return;t.m=!1}if(u(i)&&!w(i)){if(!t.h.F&&t._<1)return;S(t,i),n&&n.A.l||M(t,i)}}function M(t,n,r){void 0===r&&(r=!1),t.h.F&&t.m&&b(n,r)}function _(t,n){var r=t[V];return(r?h(r):t)[n]}function C(t,n){if(n in t)for(var r=Object.getPrototypeOf(t);r;){var e=Object.getOwnPropertyDescriptor(r,n);if(e)return e;r=Object.getPrototypeOf(r)}}function x(t){t.P||(t.P=!0,t.l&&x(t.l))}function R(t){t.o||(t.o=p(t.t))}function U(t,n,r){var e=d(n)?m("MapSet").N(n,r):v(n)?m("MapSet").T(n,r):t.g?function(t,n){var r=Array.isArray(t),e={i:r?1:0,A:n?n.A:g(),P:!1,I:!1,D:{},l:n,t,k:null,o:null,j:null,C:!1},i=e,o=z;r&&(i=[e],o=H);var u=Proxy.revocable(i,o),c=u.revoke,a=u.proxy;return e.k=a,e.j=c,a}(n,r):m("ES5").J(n,r);return(r?r.A:g()).p.push(e),e}function D(t){return o(t)||i(22,t),function t(n){if(!u(n))return n;var r,e=n[V],i=a(n);if(e){if(!e.P&&(e.i<4||!m("ES5").K(e)))return e.t;e.I=!0,r=k(n,i),e.I=!1}else r=k(n,i);return c(r,(function(n,i){e&&function(t,n){return 2===a(t)?t.get(n):t[n]}(e.t,n)===i||f(r,n,t(i))})),3===i?new Set(r):r}(t)}function k(t,n){switch(n){case 2:return new Map(t);case 3:return Array.from(t)}return p(t)}var B,$,F="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),N="undefined"!=typeof Map,G="undefined"!=typeof Set,K="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,q=F?Symbol.for("immer-nothing"):((B={})["immer-nothing"]=!0,B),L=F?Symbol.for("immer-draftable"):"__$immer_draftable",V=F?Symbol.for("immer-state"):"__$immer_state",J=""+Object.prototype.constructor,W="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,X=Object.getOwnPropertyDescriptors||function(t){var n={};return W(t).forEach((function(r){n[r]=Object.getOwnPropertyDescriptor(t,r)})),n},Y={},z={get:function(t,n){if(n===V)return t;var r=h(t);if(!s(r,n))return function(t,n,r){var e,i=C(n,r);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(t.k):void 0}(t,r,n);var e=r[n];return t.I||!u(e)?e:e===_(t.t,n)?(R(t),t.o[n]=U(t.A.h,e,t)):e},has:function(t,n){return n in h(t)},ownKeys:function(t){return Reflect.ownKeys(h(t))},set:function(t,n,r){var e=C(h(t),n);if(null==e?void 0:e.set)return e.set.call(t.k,r),!0;if(!t.P){var i=_(h(t),n),o=null==i?void 0:i[V];if(o&&o.t===r)return t.o[n]=r,t.D[n]=!1,!0;if(l(r,i)&&(void 0!==r||s(t.t,n)))return!0;R(t),x(t)}return t.o[n]===r&&"number"!=typeof r&&(void 0!==r||n in t.o)||(t.o[n]=r,t.D[n]=!0,!0)},deleteProperty:function(t,n){return void 0!==_(t.t,n)||n in t.t?(t.D[n]=!1,R(t),x(t)):delete t.D[n],t.o&&delete t.o[n],!0},getOwnPropertyDescriptor:function(t,n){var r=h(t),e=Reflect.getOwnPropertyDescriptor(r,n);return e?{writable:!0,configurable:1!==t.i||"length"!==n,enumerable:e.enumerable,value:r[n]}:e},defineProperty:function(){i(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){i(12)}},H={};c(z,(function(t,n){H[t]=function(){return arguments[0]=arguments[0][0],n.apply(this,arguments)}})),H.deleteProperty=function(t,n){return H.set.call(this,t,n,void 0)},H.set=function(t,n,r){return z.set.call(this,t[0],n,r,t[0])};var Q=function(){function t(t){var n=this;this.g=K,this.F=!0,this.produce=function(t,r,e){if("function"==typeof t&&"function"!=typeof r){var o=r;r=t;var c=n;return function(t){var n=this;void 0===t&&(t=o);for(var e=arguments.length,i=Array(e>1?e-1:0),u=1;u<e;u++)i[u-1]=arguments[u];return c.produce(t,(function(t){var e;return(e=r).call.apply(e,[n,t].concat(i))}))}}var a;if("function"!=typeof r&&i(6),void 0!==e&&"function"!=typeof e&&i(7),u(t)){var s=P(n),f=U(n,t,void 0),l=!0;try{a=r(f),l=!1}finally{l?I(s):O(s)}return"undefined"!=typeof Promise&&a instanceof Promise?a.then((function(t){return j(s,e),A(t,s)}),(function(t){throw I(s),t})):(j(s,e),A(a,s))}if(!t||"object"!=typeof t){if(void 0===(a=r(t))&&(a=t),a===q&&(a=void 0),n.F&&b(a,!0),e){var d=[],v=[];m("Patches").M(t,a,d,v),e(d,v)}return a}i(21,t)},this.produceWithPatches=function(t,r){if("function"==typeof t)return function(r){for(var e=arguments.length,i=Array(e>1?e-1:0),o=1;o<e;o++)i[o-1]=arguments[o];return n.produceWithPatches(r,(function(n){return t.apply(void 0,[n].concat(i))}))};var e,i,o=n.produce(t,r,(function(t,n){e=t,i=n}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,e,i]})):[o,e,i]},"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 n=t.prototype;return n.createDraft=function(t){u(t)||i(8),o(t)&&(t=D(t));var n=P(this),r=U(this,t,void 0);return r[V].C=!0,O(n),r},n.finishDraft=function(t,n){var r=(t&&t[V]).A;return j(r,n),A(void 0,r)},n.setAutoFreeze=function(t){this.F=t},n.setUseProxies=function(t){t&&!K&&i(20),this.g=t},n.applyPatches=function(t,n){var r;for(r=n.length-1;r>=0;r--){var e=n[r];if(0===e.path.length&&"replace"===e.op){t=e.value;break}}r>-1&&(n=n.slice(r+1));var i=m("Patches").$;return o(t)?i(t,n):this.produce(t,(function(t){return i(t,n)}))},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 nt,rt=tt,et=(nt=function(t,n){return nt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])},nt(t,n)},function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}nt(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}),it=function(t,n){for(var r=0,e=n.length,i=t.length;r<e;r++,i++)t[i]=n[r];return t},ot=Object.defineProperty,ut=Object.getOwnPropertySymbols,ct=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,st=function(t,n,r){return n in t?ot(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r},ft=function(t,n){for(var r in n||(n={}))ct.call(n,r)&&st(t,r,n[r]);if(ut)for(var e=0,i=ut(n);e<i.length;e++){r=i[e];at.call(n,r)&&st(t,r,n[r])}return t};function lt(t){return u(t)?rt(t,(function(){})):t}function dt(t,n){function r(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];if(n){var i=n.apply(void 0,r);if(!i)throw new Error("prepareAction did not return an object");return ft(ft({type:t,payload:i.payload},"meta"in i&&{meta:i.meta}),"error"in i&&{error:i.error})}return{type:t,payload:r[0]}}return r.toString=function(){return""+t},r.type=t,r.match=function(n){return n.type===t},r}function vt(t){var n,r={},e=[],i={addCase:function(t,n){var e="string"==typeof t?t:t.type;if(e in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[e]=n,i},addMatcher:function(t,n){return e.push({matcher:t,reducer:n}),i},addDefaultCase:function(t){return n=t,i}};return t(i),[r,e,n]}function ht(t){var n=t.name;if(!n)throw new Error("`name` is a required option for createSlice");var r,e="function"==typeof t.initialState?t.initialState:lt(t.initialState),i=t.reducers||{},c=Object.keys(i),a={},s={},f={};function l(){var n="function"==typeof t.extraReducers?vt(t.extraReducers):[t.extraReducers],r=n[0],i=void 0===r?{}:r,c=n[1],a=void 0===c?[]:c,f=n[2],l=void 0===f?void 0:f,d=ft(ft({},i),s);return function(t,n,r,e){void 0===r&&(r=[]);var i,c="function"==typeof n?vt(n):[n,r,e],a=c[0],s=c[1],f=c[2];if(function(t){return"function"==typeof t}(t))i=function(){return lt(t())};else{var l=lt(t);i=function(){return l}}function d(t,n){void 0===t&&(t=i());var r=it([a[n.type]],s.filter((function(t){return(0,t.matcher)(n)})).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 e;if(o(t))return void 0===(e=r(t,n))?t:e;if(u(t))return rt(t,(function(t){return r(t,n)}));if(void 0===(e=r(t,n))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return e}return t}),t)}return d.getInitialState=i,d}(e,d,a,l)}return c.forEach((function(t){var r,e,o=i[t],u=n+"/"+t;"reducer"in o?(r=o.reducer,e=o.prepare):r=o,a[t]=r,s[u]=r,f[t]=e?dt(u,e):dt(u)})),{name:n,reducer:function(t,n){return r||(r=l()),r(t,n)},actions:f,caseReducers:a,getInitialState:function(){return r||(r=l()),r.getInitialState()}}}!function(t){function n(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var i=t.apply(this,r)||this;return Object.setPrototypeOf(i,n.prototype),i}et(n,t),Object.defineProperty(n,Symbol.species,{get:function(){return n},enumerable:!1,configurable:!0}),n.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},n.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(n.bind.apply(n,it([void 0],t[0].concat(this)))):new(n.bind.apply(n,it([void 0],t.concat(this))))}}(Array);var pt="listenerMiddleware";dt(pt+"/add"),dt(pt+"/removeAll"),dt(pt+"/remove"),function(){function t(t,n){var r=i[t];return r?r.enumerable=n:i[t]=r={configurable:!0,enumerable:n,get:function(){var n=this[V];return z.get(n,t)},set:function(n){var r=this[V];z.set(r,t,n)}},r}function n(t){for(var n=t.length-1;n>=0;n--){var i=t[n][V];if(!i.P)switch(i.i){case 5:e(i)&&x(i);break;case 4:r(i)&&x(i)}}}function r(t){for(var n=t.t,r=t.k,e=W(r),i=e.length-1;i>=0;i--){var o=e[i];if(o!==V){var u=n[o];if(void 0===u&&!s(n,o))return!0;var c=r[o],a=c&&c[V];if(a?a.t!==u:!l(c,u))return!0}}var f=!!n[V];return e.length!==W(n).length+(f?0:1)}function e(t){var n=t.k;if(n.length!==t.t.length)return!0;var r=Object.getOwnPropertyDescriptor(n,n.length-1);if(r&&!r.get)return!0;for(var e=0;e<n.length;e++)if(!n.hasOwnProperty(e))return!0;return!1}var i={};!function(t,n){Y[t]||(Y[t]=n)}("ES5",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,""+i,t(i,!0));return e}var o=X(r);delete o[V];for(var u=W(o),c=0;c<u.length;c++){var a=u[c];o[a]=t(a,n||!!o[a].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:g(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,V,{value:o,writable:!0}),i},S:function(t,r,i){i?o(r)&&r[V].A===t&&n(t.p):(t.u&&function t(n){if(n&&"object"==typeof n){var r=n[V];if(r){var i=r.t,o=r.k,u=r.D,a=r.i;if(4===a)c(o,(function(n){n!==V&&(void 0!==i[n]||s(i,n)?u[n]||t(o[n]):(u[n]=!0,x(r)))})),c(i,(function(t){void 0!==o[t]||s(o,t)||(u[t]=!1,x(r))}));else if(5===a){if(e(r)&&(x(r),u.length=!0),o.length<i.length)for(var f=o.length;f<i.length;f++)u[f]=!1;else for(var l=i.length;l<o.length;l++)u[l]=!0;for(var d=Math.min(o.length,i.length),v=0;v<d;v++)o.hasOwnProperty(v)||(u[v]=!0),void 0===u[v]&&t(o[v])}}}}(t.p[0]),n(t.p))},K:function(t){return 4===t.i?r(t):e(t)}})}();const bt={setBaseUrl:(t,n)=>{t.baseUrl=n.payload},setApiIntegrationIdentifier:(t,n)=>{t.apiIntegrationIdentifier=n.payload},setMapId:(t,n)=>{t.mapId=n.payload},setTocId:(t,n)=>{t.tocId=n.payload},setMap:(t,n)=>{t.map=n.payload},setToc:(t,n)=>{t.toc=n.payload},setCurrentPage:(t,n)=>{t.currentPage=n.payload},setScrollTarget:(t,n)=>{t.scrollTarget=n.payload},setVisibleTopics:(t,n)=>{t.visibleTopics=n.payload}};class yt{convertNodes(t){var n,r,e,i;const o={},u=new Set,c=new Set,a=[],s=(t,n,r)=>t.map((t=>{var e;t.page&&a.push(t.tocId);let i=null===(e=t.prettyUrl)||void 0===e?void 0:e.replace(/^\//,"");const f={...t,prettyUrl:i,depth:n,parentTocId:r,children:s(t.children,n+1,t.tocId)};return i&&(u.has(i)&&c.add(i),u.add(i)),o[t.tocId]=f,f})),f=s(null!=t?t:[],1),l=this.buildPages(a,o);let d={};return 0===l.length?l.push({number:1,title:null!==(r=null===(n=f[0])||void 0===n?void 0:n.title)&&void 0!==r?r:"",rootTocId:null!==(i=null===(e=f[0])||void 0===e?void 0:e.tocId)&&void 0!==i?i:"root",toc:[],topics:this.tocIds(f),hiddenTopics:[]}):d=this.indexPages(l),{toc:f,nodeByTocId:o,duplicatedPrettyUrls:c,pages:l,pageByTocId:d}}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildPages(t,n){const r=t=>t.parentTocId?[...r(n[t.parentTocId]),t.parentTocId]:[];return t.map((t=>n[t])).map(((t,n)=>{var e,i,o,u,c;const a={number:n+1,title:t.title,rootTocId:t.tocId,toc:(null===(e=t.page)||void 0===e?void 0:e.onItsOwn)?[]:t.children,topics:[],hiddenTopics:[]},s=(t,n)=>(n?a.topics:a.hiddenTopics).push(t),f=null!==(o=null===(i=t.page)||void 0===i?void 0:i.parentsVisibility)&&void 0!==o?o:[];return r(t).forEach(((t,n)=>{s(t,f[n])})),s(t.tocId,null===(u=t.page)||void 0===u?void 0:u.visible),(null===(c=t.page)||void 0===c?void 0:c.onItsOwn)||a.topics.push(...this.tocIds(t.children)),a}))}indexPages(t){const n={};for(let r of t)for(let t of[...r.topics,...r.hiddenTopics])n[t]||(n[t]=r);return n}}class wt{constructor(t,n,r,e){this.converter=t,this.api=n,this.baseUrl=r,this.mapId=e,this.topics={},this.topicContents={},r.endsWith("/")||(this.baseUrl=r+"/")}static build(t,n,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 yt,new window.fluidtopics.FluidTopicsApi(t,n,!0),t,r)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={}}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.getTableOfContent(this.mapId).then((t=>this.converter.convertNodes(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}async getPage(t){const n=await this.getEnrichedToc();return n.pages[t-1]||n.pages[0]}async getPageByTocId(t){const n=await this.getEnrichedToc();return n.pageByTocId[t]||n.pages[0]}getTopicInfo(t){return this.loadIfNeeded((()=>this.topics[t]),(n=>this.topics[t]=n),(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.loadIfNeeded((()=>this.topicContents[t]),(n=>this.topicContents[t]=n),(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,n,r){var e;t=t||"root";let i=this.enrichedToc,o=null===(e=null==i?void 0:i.nodeByTocId[t])||void 0===e?void 0:e.prettyUrl,u=o||`r/${this.mapId}/${t}`,c=new URL(u,this.baseUrl),a=null==i?void 0:i.pageByTocId[t];return n&&a&&a.number!==n&&c.searchParams.set("page",`${n}`),o&&(null==i?void 0:i.duplicatedPrettyUrls.has(o))&&c.searchParams.set("tocId",t),r&&c.searchParams.set("section",r),c.href}async loadIfNeeded(t,r,e){for(void 0===t()&&(r(!0),r(await e().catch((t=>(console.error(t),!1)))));!0===t();)await n.delay(10);const i=t();if(!1===i)throw new Error("Could not load data");return i}}class mt{constructor(t,r){this.store=t,this.slice=r,this.reloadDebouncer=new n.Debouncer(10)}static build(t){const r=(t=>ht({name:"ft-reader-"+t,initialState:{baseUrl:"",apiIntegrationIdentifier:"ft-reader",visibleTopics:[]},reducers:bt}))(t.trim()||"context");return new mt(n.getStore(r),r)}setBaseUrl(t){this.setRequiredStateField("baseUrl","setBaseUrl",t)}setApiIntegrationIdentifier(t){this.setRequiredStateField("apiIntegrationIdentifier","setApiIntegrationIdentifier",t)}setMapId(t){this.setRequiredStateField("mapId","setMapId",t)}setVisibleTopics(t){this.dispatch(this.slice.actions.setVisibleTopics(t))}async navigateToTopic(t,r,e){for(;null===this.service;)await n.delay(5);let i=null!=e?await this.service.getPage(e):await this.service.getPageByTocId(t);console.log(e,i),this.dispatch(this.slice.actions.setCurrentPage(i),this.slice.actions.setScrollTarget({tocId:t,section:r}))}async navigateToPage(t){for(;null===this.service;)await n.delay(5);let r=await this.service.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(r))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,n,r){this.store.getState()[t]!==r&&(this.dispatch(this.slice.actions[n](r)),this.clearAll(),this.reload())}clearAll(){this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setCurrentPage(void 0))}reload(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?this.service=wt.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId):this.service=void 0,this.reloadDebouncer.run((async()=>{this.reloadMap(),this.reloadToc()}))}async reloadMap(){var t;const n=await(null===(t=this.service)||void 0===t?void 0:t.getMap());this.dispatch(this.slice.actions.setMap(n))}async reloadToc(){var t;const n=await(null===(t=this.service)||void 0===t?void 0:t.getToc());this.dispatch(this.slice.actions.setToc(n))}dispatch(...t){for(let n of t)this.store.dispatch(n)}}var gt=function(t,n,r,e){for(var i,o=arguments.length,u=o<3?n:null===e?e=Object.getOwnPropertyDescriptor(n,r):e,c=t.length-1;c>=0;c--)(i=t[c])&&(u=(o<3?i(u):o>3?i(n,r,u):i(n,r))||u);return o>3&&u&&Object.defineProperty(n,r,u),u};class jt extends CustomEvent{constructor(t){super("ft-reader-map-loaded",{detail:t})}}class It extends CustomEvent{constructor(t,n){super("ft-reader-visible-topics-change",{detail:{map:t,visibleTopics:n}})}}class Ot extends n.FtLitElementRedux{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.visibleTopics=[]}render(){return r.html`
1
+ !function(t,r,n,e){function i(t){for(var r=arguments.length,n=Array(r>1?r-1:0),e=1;e<r;e++)n[e-1]=arguments[e];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function o(t){return!!t&&!!t[V]}function u(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var r=Object.getPrototypeOf(t);if(null===r)return!0;var n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===J}(t)||Array.isArray(t)||!!t[q]||!!t.constructor[q]||d(t)||v(t))}function s(t,r,n){void 0===n&&(n=!1),0===a(t)?(n?Object.keys:W)(t).forEach((function(e){n&&"symbol"==typeof e||r(e,t[e],t)})):t.forEach((function(n,e){return r(e,n,t)}))}function a(t){var r=t[V];return r?r.i>3?r.i-4:r.i:Array.isArray(t)?1:d(t)?2:v(t)?3:0}function c(t,r){return 2===a(t)?t.has(r):Object.prototype.hasOwnProperty.call(t,r)}function f(t,r,n){var e=a(t);2===e?t.set(r,n):3===e?(t.delete(r),t.add(n)):t[r]=n}function l(t,r){return t===r?0!==t||1/t==1/r:t!=t&&r!=r}function d(t){return L&&t instanceof Map}function v(t){return $&&t instanceof Set}function h(t){return t.o||t.t}function p(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var r=X(t);delete r[V];for(var n=W(r),e=0;e<n.length;e++){var i=n[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),r)}function b(t,r){return void 0===r&&(r=!1),w(t)||o(t)||!u(t)||(a(t)>1&&(t.set=t.add=t.clear=t.delete=y),Object.freeze(t),r&&s(t,(function(t,r){return b(r,!0)}),!0)),t}function y(){i(2)}function w(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function m(t){var r=Y[t];return r||i(18,t),r}function g(){return F}function j(t,r){r&&(m("Patches"),t.u=[],t.s=[],t.v=r)}function I(t){O(t),t.p.forEach(A),t.p=null}function O(t){t===F&&(F=t.l)}function T(t){return F={p:[],l:F,h:t,m:!0,_:0}}function A(t){var r=t[V];0===r.i||1===r.i?r.j():r.O=!0}function P(t,r){r._=r.p.length;var n=r.p[0],e=void 0!==t&&t!==n;return r.h.g||m("ES5").S(r,t,e),e?(n[V].P&&(I(r),i(4)),u(t)&&(t=S(r,t),r.l||M(r,t)),r.u&&m("Patches").M(n[V].t,t,r.u,r.s)):t=S(r,n,[]),I(r),r.u&&r.v(r.u,r.s),t!==K?t:void 0}function S(t,r,n){if(w(r))return r;var e=r[V];if(!e)return s(r,(function(i,o){return E(t,e,r,i,o,n)}),!0),r;if(e.A!==t)return r;if(!e.P)return M(t,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var i=4===e.i||5===e.i?e.o=p(e.k):e.o;s(3===e.i?new Set(i):i,(function(r,o){return E(t,e,i,r,o,n)})),M(t,i,!1),n&&t.u&&m("Patches").R(e,n,t.u,t.s)}return e.o}function E(t,r,n,e,i,s){if(o(i)){var a=S(t,i,s&&r&&3!==r.i&&!c(r.D,e)?s.concat(e):void 0);if(f(n,e,a),!o(a))return;t.m=!1}if(u(i)&&!w(i)){if(!t.h.F&&t._<1)return;S(t,i),r&&r.A.l||M(t,i)}}function M(t,r,n){void 0===n&&(n=!1),t.h.F&&t.m&&b(r,n)}function R(t,r){var n=t[V];return(n?h(n):t)[r]}function C(t,r){if(r in t)for(var n=Object.getPrototypeOf(t);n;){var e=Object.getOwnPropertyDescriptor(n,r);if(e)return e;n=Object.getPrototypeOf(n)}}function U(t){t.P||(t.P=!0,t.l&&U(t.l))}function _(t){t.o||(t.o=p(t.t))}function N(t,r,n){var e=d(r)?m("MapSet").N(r,n):v(r)?m("MapSet").T(r,n):t.g?function(t,r){var n=Array.isArray(t),e={i:n?1:0,A:r?r.A:g(),P:!1,I:!1,D:{},l:r,t,k:null,o:null,j:null,C:!1},i=e,o=z;n&&(i=[e],o=H);var u=Proxy.revocable(i,o),s=u.revoke,a=u.proxy;return e.k=a,e.j=s,a}(r,n):m("ES5").J(r,n);return(n?n.A:g()).p.push(e),e}function x(t){return o(t)||i(22,t),function t(r){if(!u(r))return r;var n,e=r[V],i=a(r);if(e){if(!e.P&&(e.i<4||!m("ES5").K(e)))return e.t;e.I=!0,n=B(r,i),e.I=!1}else n=B(r,i);return s(n,(function(r,i){e&&function(t,r){return 2===a(t)?t.get(r):t[r]}(e.t,r)===i||f(n,r,t(i))})),3===i?new Set(n):n}(t)}function B(t,r){switch(r){case 2:return new Map(t);case 3:return Array.from(t)}return p(t)}var D,F,k="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=k?Symbol.for("immer-nothing"):((D={})["immer-nothing"]=!0,D),q=k?Symbol.for("immer-draftable"):"__$immer_draftable",V=k?Symbol.for("immer-state"):"__$immer_state",J=""+Object.prototype.constructor,W="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,X=Object.getOwnPropertyDescriptors||function(t){var r={};return W(t).forEach((function(n){r[n]=Object.getOwnPropertyDescriptor(t,n)})),r},Y={},z={get:function(t,r){if(r===V)return t;var n=h(t);if(!c(n,r))return function(t,r,n){var e,i=C(r,n);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(t.k):void 0}(t,n,r);var e=n[r];return t.I||!u(e)?e:e===R(t.t,r)?(_(t),t.o[r]=N(t.A.h,e,t)):e},has:function(t,r){return r in h(t)},ownKeys:function(t){return Reflect.ownKeys(h(t))},set:function(t,r,n){var e=C(h(t),r);if(null==e?void 0:e.set)return e.set.call(t.k,n),!0;if(!t.P){var i=R(h(t),r),o=null==i?void 0:i[V];if(o&&o.t===n)return t.o[r]=n,t.D[r]=!1,!0;if(l(n,i)&&(void 0!==n||c(t.t,r)))return!0;_(t),U(t)}return t.o[r]===n&&"number"!=typeof n&&(void 0!==n||r in t.o)||(t.o[r]=n,t.D[r]=!0,!0)},deleteProperty:function(t,r){return void 0!==R(t.t,r)||r in t.t?(t.D[r]=!1,_(t),U(t)):delete t.D[r],t.o&&delete t.o[r],!0},getOwnPropertyDescriptor:function(t,r){var n=h(t),e=Reflect.getOwnPropertyDescriptor(n,r);return e?{writable:!0,configurable:1!==t.i||"length"!==r,enumerable:e.enumerable,value:n[r]}:e},defineProperty:function(){i(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){i(12)}},H={};s(z,(function(t,r){H[t]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),H.deleteProperty=function(t,r){return H.set.call(this,t,r,void 0)},H.set=function(t,r,n){return z.set.call(this,t[0],r,n,t[0])};var Q=function(){function t(t){var r=this;this.g=G,this.F=!0,this.produce=function(t,n,e){if("function"==typeof t&&"function"!=typeof n){var o=n;n=t;var s=r;return function(t){var r=this;void 0===t&&(t=o);for(var e=arguments.length,i=Array(e>1?e-1:0),u=1;u<e;u++)i[u-1]=arguments[u];return s.produce(t,(function(t){var e;return(e=n).call.apply(e,[r,t].concat(i))}))}}var a;if("function"!=typeof n&&i(6),void 0!==e&&"function"!=typeof e&&i(7),u(t)){var c=T(r),f=N(r,t,void 0),l=!0;try{a=n(f),l=!1}finally{l?I(c):O(c)}return"undefined"!=typeof Promise&&a instanceof Promise?a.then((function(t){return j(c,e),P(t,c)}),(function(t){throw I(c),t})):(j(c,e),P(a,c))}if(!t||"object"!=typeof t){if(void 0===(a=n(t))&&(a=t),a===K&&(a=void 0),r.F&&b(a,!0),e){var d=[],v=[];m("Patches").M(t,a,d,v),e(d,v)}return a}i(21,t)},this.produceWithPatches=function(t,n){if("function"==typeof t)return function(n){for(var e=arguments.length,i=Array(e>1?e-1:0),o=1;o<e;o++)i[o-1]=arguments[o];return r.produceWithPatches(n,(function(r){return t.apply(void 0,[r].concat(i))}))};var e,i,o=r.produce(t,n,(function(t,r){e=t,i=r}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,e,i]})):[o,e,i]},"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 r=t.prototype;return r.createDraft=function(t){u(t)||i(8),o(t)&&(t=x(t));var r=T(this),n=N(this,t,void 0);return n[V].C=!0,O(r),n},r.finishDraft=function(t,r){var n=(t&&t[V]).A;return j(n,r),P(void 0,n)},r.setAutoFreeze=function(t){this.F=t},r.setUseProxies=function(t){t&&!G&&i(20),this.g=t},r.applyPatches=function(t,r){var n;for(n=r.length-1;n>=0;n--){var e=r[n];if(0===e.path.length&&"replace"===e.op){t=e.value;break}}n>-1&&(r=r.slice(n+1));var i=m("Patches").$;return o(t)?i(t,r):this.produce(t,(function(t){return i(t,r)}))},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 rt,nt=tt,et=(rt=function(t,r){return rt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])},rt(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}rt(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}),it=function(t,r){for(var n=0,e=r.length,i=t.length;n<e;n++,i++)t[i]=r[n];return t},ot=Object.defineProperty,ut=Object.getOwnPropertySymbols,st=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,ct=function(t,r,n){return r in t?ot(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n},ft=function(t,r){for(var n in r||(r={}))st.call(r,n)&&ct(t,n,r[n]);if(ut)for(var e=0,i=ut(r);e<i.length;e++){n=i[e];at.call(r,n)&&ct(t,n,r[n])}return t};function lt(t){return u(t)?nt(t,(function(){})):t}function dt(t,r){function n(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(r){var i=r.apply(void 0,n);if(!i)throw new Error("prepareAction did not return an object");return ft(ft({type:t,payload:i.payload},"meta"in i&&{meta:i.meta}),"error"in i&&{error:i.error})}return{type:t,payload:n[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function vt(t){var r,n={},e=[],i={addCase:function(t,r){var e="string"==typeof t?t:t.type;if(e in n)throw new Error("addCase cannot be called with two reducers for the same action type");return n[e]=r,i},addMatcher:function(t,r){return e.push({matcher:t,reducer:r}),i},addDefaultCase:function(t){return r=t,i}};return t(i),[n,e,r]}function ht(t){var r=t.name;if(!r)throw new Error("`name` is a required option for createSlice");var n,e="function"==typeof t.initialState?t.initialState:lt(t.initialState),i=t.reducers||{},s=Object.keys(i),a={},c={},f={};function l(){var r="function"==typeof t.extraReducers?vt(t.extraReducers):[t.extraReducers],n=r[0],i=void 0===n?{}:n,s=r[1],a=void 0===s?[]:s,f=r[2],l=void 0===f?void 0:f,d=ft(ft({},i),c);return function(t,r,n,e){void 0===n&&(n=[]);var i,s="function"==typeof r?vt(r):[r,n,e],a=s[0],c=s[1],f=s[2];if(function(t){return"function"==typeof t}(t))i=function(){return lt(t())};else{var l=lt(t);i=function(){return l}}function d(t,r){void 0===t&&(t=i());var n=it([a[r.type]],c.filter((function(t){return(0,t.matcher)(r)})).map((function(t){return t.reducer})));return 0===n.filter((function(t){return!!t})).length&&(n=[f]),n.reduce((function(t,n){if(n){var e;if(o(t))return void 0===(e=n(t,r))?t:e;if(u(t))return nt(t,(function(t){return n(t,r)}));if(void 0===(e=n(t,r))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return e}return t}),t)}return d.getInitialState=i,d}(e,d,a,l)}return s.forEach((function(t){var n,e,o=i[t],u=r+"/"+t;"reducer"in o?(n=o.reducer,e=o.prepare):n=o,a[t]=n,c[u]=n,f[t]=e?dt(u,e):dt(u)})),{name:r,reducer:function(t,r){return n||(n=l()),n(t,r)},actions:f,caseReducers:a,getInitialState:function(){return n||(n=l()),n.getInitialState()}}}!function(t){function r(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}et(r,t),Object.defineProperty(r,Symbol.species,{get:function(){return r},enumerable:!1,configurable:!0}),r.prototype.concat=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return t.prototype.concat.apply(this,r)},r.prototype.prepend=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return 1===t.length&&Array.isArray(t[0])?new(r.bind.apply(r,it([void 0],t[0].concat(this)))):new(r.bind.apply(r,it([void 0],t.concat(this))))}}(Array);var pt="listenerMiddleware";dt(pt+"/add"),dt(pt+"/removeAll"),dt(pt+"/remove"),function(){function t(t,r){var n=i[t];return n?n.enumerable=r:i[t]=n={configurable:!0,enumerable:r,get:function(){var r=this[V];return z.get(r,t)},set:function(r){var n=this[V];z.set(n,t,r)}},n}function r(t){for(var r=t.length-1;r>=0;r--){var i=t[r][V];if(!i.P)switch(i.i){case 5:e(i)&&U(i);break;case 4:n(i)&&U(i)}}}function n(t){for(var r=t.t,n=t.k,e=W(n),i=e.length-1;i>=0;i--){var o=e[i];if(o!==V){var u=r[o];if(void 0===u&&!c(r,o))return!0;var s=n[o],a=s&&s[V];if(a?a.t!==u:!l(s,u))return!0}}var f=!!r[V];return e.length!==W(r).length+(f?0:1)}function e(t){var r=t.k;if(r.length!==t.t.length)return!0;var n=Object.getOwnPropertyDescriptor(r,r.length-1);if(n&&!n.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}var i={};!function(t,r){Y[t]||(Y[t]=r)}("ES5",{J:function(r,n){var e=Array.isArray(r),i=function(r,n){if(r){for(var e=Array(n.length),i=0;i<n.length;i++)Object.defineProperty(e,""+i,t(i,!0));return e}var o=X(n);delete o[V];for(var u=W(o),s=0;s<u.length;s++){var a=u[s];o[a]=t(a,r||!!o[a].enumerable)}return Object.create(Object.getPrototypeOf(n),o)}(e,r),o={i:e?5:4,A:n?n.A:g(),P:!1,I:!1,D:{},l:n,t:r,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,V,{value:o,writable:!0}),i},S:function(t,n,i){i?o(n)&&n[V].A===t&&r(t.p):(t.u&&function t(r){if(r&&"object"==typeof r){var n=r[V];if(n){var i=n.t,o=n.k,u=n.D,a=n.i;if(4===a)s(o,(function(r){r!==V&&(void 0!==i[r]||c(i,r)?u[r]||t(o[r]):(u[r]=!0,U(n)))})),s(i,(function(t){void 0!==o[t]||c(o,t)||(u[t]=!1,U(n))}));else if(5===a){if(e(n)&&(U(n),u.length=!0),o.length<i.length)for(var f=o.length;f<i.length;f++)u[f]=!1;else for(var l=i.length;l<o.length;l++)u[l]=!0;for(var d=Math.min(o.length,i.length),v=0;v<d;v++)o.hasOwnProperty(v)||(u[v]=!0),void 0===u[v]&&t(o[v])}}}}(t.p[0]),r(t.p))},K:function(t){return 4===t.i?n(t):e(t)}})}();const bt={setBaseUrl:(t,r)=>{t.baseUrl=r.payload},setApiIntegrationIdentifier:(t,r)=>{t.apiIntegrationIdentifier=r.payload},setMapId:(t,r)=>{t.mapId=r.payload},setTocId:(t,r)=>{t.tocId=r.payload},setMap:(t,r)=>{t.map=r.payload},setToc:(t,r)=>{t.toc=r.payload},setCurrentPage:(t,r)=>{t.currentPage=r.payload},setScrollTarget:(t,r)=>{t.scrollTarget=r.payload},setVisibleTopics:(t,r)=>{t.visibleTopics=r.payload},setRenderBeforeFirst:(t,r)=>{t.renderBeforeFirst=r.payload},setRenderAfterLast:(t,r)=>{t.renderAfterLast=r.payload}};class yt{convertNodes(t){var r,n,e,i;const o={},u=new Set,s=new Set,a=[],c=(t,r,n)=>t.map((t=>{var e;t.page&&a.push(t.tocId);let i=null===(e=t.prettyUrl)||void 0===e?void 0:e.replace(/^\//,"");const f={...t,prettyUrl:i,depth:r,parentTocId:n,children:c(t.children,r+1,t.tocId)};return i&&(u.has(i)&&s.add(i),u.add(i)),o[t.tocId]=f,f})),f=c(null!=t?t:[],1),l=this.buildPages(a,o);let d={};return 0===l.length?l.push({number:1,title:null!==(n=null===(r=f[0])||void 0===r?void 0:r.title)&&void 0!==n?n:"",rootTocId:null!==(i=null===(e=f[0])||void 0===e?void 0:e.tocId)&&void 0!==i?i:"root",toc:[],topics:this.tocIds(f),hiddenTopics:[]}):d=this.indexPages(l),{toc:f,nodeByTocId:o,duplicatedPrettyUrls:s,pages:l,pageByTocId:d}}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildPages(t,r){return t.map((t=>r[t])).map(((t,n)=>{var e,i,o,u,s;const a={number:n+1,title:t.title,rootTocId:t.tocId,toc:(null===(e=t.page)||void 0===e?void 0:e.onItsOwn)?[]:t.children,topics:[],hiddenTopics:[]},c=(t,r)=>(r?a.topics:a.hiddenTopics).push(t),f=null!==(o=null===(i=t.page)||void 0===i?void 0:i.parentsVisibility)&&void 0!==o?o:[];return this.buildBreadcrumb(t,r).forEach(((t,r)=>{c(t,f[r])})),c(t.tocId,null===(u=t.page)||void 0===u?void 0:u.visible),(null===(s=t.page)||void 0===s?void 0:s.onItsOwn)||a.topics.push(...this.tocIds(t.children)),a}))}buildBreadcrumb(t,r){const n=[];for(;null==t?void 0:t.parentTocId;)n.unshift(t.parentTocId),t=r[t.parentTocId];return n}indexPages(t){const r={};for(let n of t)for(let t of[...n.topics,...n.hiddenTopics])r[t]||(r[t]=n);return r}}class wt{constructor(t,r,n,e){this.converter=t,this.api=r,this.baseUrl=n,this.mapId=e,this.topics={},this.topicContents={},n.endsWith("/")||(this.baseUrl=n+"/")}static build(t,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");return new wt(new yt,new window.fluidtopics.FluidTopicsApi(t,r,!0),t,n)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={}}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.getTableOfContent(this.mapId).then((t=>this.converter.convertNodes(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeOrThrow(t){if("boolean"==typeof this.enrichedToc)throw new Error((this.enrichedToc," still loading"));return this.enrichedToc.nodeByTocId[t]}async getPage(t){const r=await this.getEnrichedToc();return r.pages[t-1]||r.pages[0]}async getPageByTocId(t){const r=await this.getEnrichedToc();return r.pageByTocId[t]||r.pages[0]}getTopicInfo(t){return this.loadIfNeeded((()=>this.topics[t]),(r=>this.topics[t]=r),(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.loadIfNeeded((()=>this.topicContents[t]),(r=>this.topicContents[t]=r),(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,r,n){const e=this.getNavigationData(t,r,n),i="r/"+(e.prettyUrl?e.prettyUrl:`${e.mapId}/${e.tocId}`),o=new URL(i,this.baseUrl);return null!=e.page&&o.searchParams.set("page",`${e.page}`),e.prettyUrlDuplicated&&o.searchParams.set("tocId",e.tocId),null!=e.section&&o.searchParams.set("section",e.section),o.href}getNavigationData(t,r,n){var e,i;t=t||"root";const o="object"==typeof this.enrichedToc?this.enrichedToc:void 0,u=null==o?void 0:o.pageByTocId[t],s=null==o?void 0:o.nodeByTocId[t],a=null==s?void 0:s.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(e=null==s?void 0:s.title)&&void 0!==e?e:"",page:r&&u&&u.number!==r?r:void 0,prettyUrl:null!=a?a.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(i=null==o?void 0:o.duplicatedPrettyUrls.has(null!=a?a:""))&&void 0!==i&&i,section:n}}async getAccurateNavigationData(t,r,n){return await this.getEnrichedToc(),this.getNavigationData(t,r,n)}async loadIfNeeded(t,n,e){for(void 0===t()&&(n(!0),n(await e().catch((t=>(console.error(t),!1)))));!0===t();)await r.delay(10);const i=t();if(!1===i)throw new Error("Could not load data");return i}}class mt{constructor(t,n){this.store=t,this.slice=n,this.reloadDebouncer=new r.Debouncer(10)}static build(t){const n=(t=>ht({name:"ft-reader-"+t,initialState:{baseUrl:"",apiIntegrationIdentifier:"ft-reader",visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3},reducers:bt}))(t.trim()||"context");return new mt(r.getStore(n),n)}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))}async navigateToTopic(t,n,e){for(;null==this.service;)await r.delay(5);let i=null!=e?await this.service.getPage(e):await this.service.getPageByTocId(t);this.dispatch(this.slice.actions.setCurrentPage(i),this.slice.actions.setScrollTarget({tocId:t,section:n}))}async navigateToPage(t){for(;null==this.service;)await r.delay(5);let n=await this.service.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(n))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,r,n){this.store.getState()[t]!==n&&(this.dispatch(this.slice.actions[r](n)),this.clearAll(),this.reload())}clearAll(){this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setCurrentPage(void 0))}reload(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?this.service=wt.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId):this.service=void 0,this.reloadDebouncer.run((async()=>{this.reloadMap(),this.reloadToc()}))}async reloadMap(){var t;const r=await(null===(t=this.service)||void 0===t?void 0:t.getMap());this.dispatch(this.slice.actions.setMap(r))}async reloadToc(){var t;const r=await(null===(t=this.service)||void 0===t?void 0:t.getToc());this.dispatch(this.slice.actions.setToc(r))}dispatch(...t){for(let r of t)this.store.dispatch(r)}}var gt=function(t,r,n,e){for(var i,o=arguments.length,u=o<3?r:null===e?e=Object.getOwnPropertyDescriptor(r,n):e,s=t.length-1;s>=0;s--)(i=t[s])&&(u=(o<3?i(u):o>3?i(r,n,u):i(r,n))||u);return o>3&&u&&Object.defineProperty(r,n,u),u};class jt extends CustomEvent{constructor(t,r){super("ft-reader-map-loaded",{detail:{map:t,toc:r}})}}class It extends CustomEvent{constructor(t,r){super("ft-reader-visible-topics-change",{detail:{visibleTopics:r}})}}class Ot extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}const Tt=t=>r=>+(null!=r?r:"NaN")>0?+r:t;class At extends r.FtLitElementRedux{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.visibleTopics=[],this.navigationDebouncer=new r.Debouncer(5)}render(){return n.html`
2
2
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
3
- `}get stateManager(){return null==this._stateManager&&(this._stateManager=mt.build(this.id||""+Math.round(1e4*Math.random())),this.store=this.stateManager.store),this._stateManager}updated(t){super.updated(t),t.has("baseUrl")&&this.baseUrl&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.mapId&&(this.stateManager.setMapId(this.mapId),this.stateManager.navigateToTopic("root")),t.has("page")&&!this.tocId&&null!=this.page&&this.stateManager.navigateToPage(this.page),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId&&this.stateManager.navigateToTopic(this.tocId,this.section,this.page)}contentAvailableCallback(t){super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new jt(this.map)),t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>this.stateManager.service.getTocNode(t)))).then((t=>{let n=t.map((t=>({tocId:t.tocId,title:t.title})));this.dispatchEvent(new It(this.map,n))}))}registerComponent(t){t.stopPropagation();t.composedPath()[0].setReaderStateManager(this.stateManager)}}Ot.styles=r.css`
4
- `,gt([e.property()],Ot.prototype,"baseUrl",void 0),gt([e.property()],Ot.prototype,"apiIntegrationIdentifier",void 0),gt([e.property()],Ot.prototype,"mapId",void 0),gt([e.property()],Ot.prototype,"tocId",void 0),gt([e.property()],Ot.prototype,"section",void 0),gt([e.property({type:Number,converter:{fromAttribute:t=>t?+t:void 0}})],Ot.prototype,"page",void 0),gt([n.redux()],Ot.prototype,"map",void 0),gt([n.redux()],Ot.prototype,"toc",void 0),gt([n.redux()],Ot.prototype,"visibleTopics",void 0),n.customElement("ft-reader-context")(Ot),t.FtReaderContext=Ot,t.MapLoadedEvent=jt,t.VisibleTopicsChangeEvent=It,Object.defineProperty(t,"U",{value:!0})}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
3
+ `}get stateManager(){return null==this._stateManager&&(this._stateManager=mt.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this.store=this.stateManager.store),this._stateManager}updated(t){super.updated(t),t.has("baseUrl")&&this.baseUrl&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.mapId&&(this.stateManager.setMapId(this.mapId),this.stateManager.navigateToTopic("root")),t.has("page")&&!this.tocId&&null!=this.page&&this.stateManager.navigateToPage(this.page),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId&&this.stateManager.navigateToTopic(this.tocId,this.section,this.page),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast)}contentAvailableCallback(t){var r;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new jt(this.map,this.toc)),t.has("scrollTarget")&&null==(null===(r=this.scrollTarget)||void 0===r?void 0:r.tocId)){const r=t.get("scrollTarget");null!=(null==r?void 0:r.tocId)&&this.navigationDebouncer.run((()=>this.stateManager.service.getAccurateNavigationData(r.tocId,this.currentPageNumber,r.section).then((t=>this.dispatchEvent(new Ot(t))))))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>this.stateManager.service.getAccurateNavigationData(t,this.currentPageNumber)))).then((t=>{let r=t.filter((t=>null!=t&&""!==t.topicTitle)).map((t=>({tocId:t.tocId,title:t.topicTitle,page:t.page,prettyUrl:t.prettyUrl,prettyUrlDuplicated:t.prettyUrlDuplicated})));this.dispatchEvent(new It(this.map,r))}))}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();t.composedPath()[0].setReaderStateManager(this.stateManager)}}At.styles=n.css`
4
+ `,gt([e.property()],At.prototype,"baseUrl",void 0),gt([e.property()],At.prototype,"apiIntegrationIdentifier",void 0),gt([e.property()],At.prototype,"mapId",void 0),gt([e.property()],At.prototype,"tocId",void 0),gt([e.property()],At.prototype,"section",void 0),gt([e.property({type:Number,converter:{fromAttribute:Tt()}})],At.prototype,"page",void 0),gt([e.property({type:Number,converter:{fromAttribute:Tt(2)}})],At.prototype,"renderBeforeFirst",void 0),gt([e.property({type:Number,converter:{fromAttribute:Tt(3)}})],At.prototype,"renderAfterLast",void 0),gt([r.redux()],At.prototype,"map",void 0),gt([r.redux()],At.prototype,"toc",void 0),gt([r.redux()],At.prototype,"visibleTopics",void 0),gt([r.redux((t=>{var r;return null===(r=t.currentPage)||void 0===r?void 0:r.number}))],At.prototype,"currentPageNumber",void 0),gt([r.redux()],At.prototype,"scrollTarget",void 0),r.customElement("ft-reader-context")(At),t.FtReaderContext=At,t.MapLoadedEvent=jt,t.NavigationDoneEvent=Ot,t.VisibleTopicsChangeEvent=It,Object.defineProperty(t,"U",{value:!0})}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
@@ -14,7 +14,7 @@
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,n=window.customElements,r=new WeakMap,o=new WeakMap,s=new WeakMap,u=new WeakMap;let c;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,r){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(r))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const u=r.prototype.attributeChangedCallback,c=new Set(r.observedAttributes||[]);h(r,c,u);const a={elementClass:r,connectedCallback:r.prototype.connectedCallback,disconnectedCallback:r.prototype.disconnectedCallback,adoptedCallback:r.prototype.adoptedCallback,attributeChangedCallback:u,formAssociated:r.formAssociated,formAssociatedCallback:r.prototype.formAssociatedCallback,formDisabledCallback:r.prototype.formDisabledCallback,formResetCallback:r.prototype.formResetCallback,formStateRestoreCallback:r.prototype.formStateRestoreCallback,observedAttributes:c};this._definitionsByTag.set(t,a),this._definitionsByClass.set(r,a);let l=i.call(n,t);l||(l=f(t),e.call(n,t,l)),this===window.customElements&&(s.set(r,a),a.standInClass=l);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)o.delete(t),v(t,a,!0)}const p=this._whenDefinedPromises.get(t);return void 0!==p&&(p.resolve(r),this._whenDefinedPromises.delete(t)),r}upgrade(){b.push(this),n.upgrade.apply(n,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 n=this._awaitingUpgrade.get(e);n||this._awaitingUpgrade.set(e,n=new Set),i?n.add(t):n.delete(t)}},window.HTMLElement=function(){let e=c;if(e)return c=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),r.set(e,i),e},window.HTMLElement.prototype=t.prototype;const a=t=>t===document||t instanceof ShadowRoot,l=t=>{let e=t.getRootNode();if(!a(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),a(e)||(e=u.get(e)?.getRootNode()||document)}return e.customElements},f=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const n=l(i)||window.customElements,r=n._getDefinition(e);return r?v(i,r):o.set(i,n),i}connectedCallback(){const t=r.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=r.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){r.get(this)?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=r.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=r.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=r.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=r.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},h=(t,e,i)=>{if(0===e.size||void 0===i)return;const n=t.prototype.setAttribute;n&&(t.prototype.setAttribute=function(t,r){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);n.call(this,o,r),i.call(this,o,t,r)}else n.call(this,o,r)});const r=t.prototype.removeAttribute;r&&(t.prototype.removeAttribute=function(t){const n=t.toLowerCase();if(e.has(n)){const t=this.getAttribute(n);r.call(this,n),i.call(this,n,t,null)}else r.call(this,n)})},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),r.set(t,e),c=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 n=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=n.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 n=e.call(this,...i);return t.set(n,this),n},i.forEach((e=>{const i=window.ElementInternals.prototype,n=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==r.get(i).formAssociated)throw new DOMException(`Failed to execute ${n} on 'ElementInternals': The target element is not a form-associated custom element.`);n?.call(this,...e)}}));class n 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 n=t.getAttribute("name"),r=e.get(n)||[];this[+i]=t,r.push(t),e.set(n,r)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new n(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=r.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,n)=>{try{e.bind(window.customElements)(t,i,n)}catch(e){console.warn(t,i,n,e)}}}class e{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){this.callbacks=[t],this.debounce(e)}queue(t,e){this.callbacks.push(t),this.debounce(e)}cancel(){null!=this._debounce&&window.clearTimeout(this._debounce)}debounce(t){this.cancel(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout)}runCallbacks(){for(let t of this.callbacks)t();this.callbacks=[]}}
17
+ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,i=window.customElements.get,n=window.customElements,r=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,r){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(r))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const u=r.prototype.attributeChangedCallback,a=new Set(r.observedAttributes||[]);h(r,a,u);const c={elementClass:r,connectedCallback:r.prototype.connectedCallback,disconnectedCallback:r.prototype.disconnectedCallback,adoptedCallback:r.prototype.adoptedCallback,attributeChangedCallback:u,formAssociated:r.formAssociated,formAssociatedCallback:r.prototype.formAssociatedCallback,formDisabledCallback:r.prototype.formDisabledCallback,formResetCallback:r.prototype.formResetCallback,formStateRestoreCallback:r.prototype.formStateRestoreCallback,observedAttributes:a};this._definitionsByTag.set(t,c),this._definitionsByClass.set(r,c);let l=i.call(n,t);l||(l=f(t),e.call(n,t,l)),this===window.customElements&&(s.set(r,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(r),this._whenDefinedPromises.delete(t)),r}upgrade(){b.push(this),n.upgrade.apply(n,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 n=this._awaitingUpgrade.get(e);n||this._awaitingUpgrade.set(e,n=new Set),i?n.add(t):n.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),r.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},f=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const n=l(i)||window.customElements,r=n._getDefinition(e);return r?v(i,r):o.set(i,n),i}connectedCallback(){const t=r.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=r.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){r.get(this)?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=r.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=r.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=r.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=r.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},h=(t,e,i)=>{if(0===e.size||void 0===i)return;const n=t.prototype.setAttribute;n&&(t.prototype.setAttribute=function(t,r){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);n.call(this,o,r),i.call(this,o,t,r)}else n.call(this,o,r)});const r=t.prototype.removeAttribute;r&&(t.prototype.removeAttribute=function(t){const n=t.toLowerCase();if(e.has(n)){const t=this.getAttribute(n);r.call(this,n),i.call(this,n,t,null)}else r.call(this,n)})},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),r.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 n=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=n.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 n=e.call(this,...i);return t.set(n,this),n},i.forEach((e=>{const i=window.ElementInternals.prototype,n=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==r.get(i).formAssociated)throw new DOMException(`Failed to execute ${n} on 'ElementInternals': The target element is not a form-associated custom element.`);n?.call(this,...e)}}));class n 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 n=t.getAttribute("name"),r=e.get(n)||[];this[+i]=t,r.push(t),e.set(n,r)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new n(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=r.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,n)=>{try{e.bind(window.customElements)(t,i,n)}catch(e){console.warn(t,i,n,e)}}}class e{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){this.callbacks=[t],this.debounce(e)}queue(t,e){this.callbacks.push(t),this.debounce(e)}cancel(){null!=this._debounce&&window.clearTimeout(this._debounce)}debounce(t){this.cancel(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout)}runCallbacks(){for(let t of this.callbacks)t();this.callbacks=[]}}
18
18
  /**
19
19
  * @license
20
20
  * Copyright 2017 Google LLC
@@ -29,7 +29,7 @@ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.cust
29
29
  * @license
30
30
  * Copyright 2019 Google LLC
31
31
  * SPDX-License-Identifier: BSD-3-Clause
32
- */,u=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,c=Symbol(),a=new WeakMap;class l{constructor(t,e,i){if(this._$cssResult$=!0,i!==c)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(u&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=a.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&a.set(e,t))}return t}toString(){return this.cssText}}const f=t=>new l("string"==typeof t?t:t+"",void 0,c),h=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,n)=>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[n+1]),t[0]);return new l(i,t,c)},d=(t,e)=>{u?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),n=window.litNonce;void 0!==n&&i.setAttribute("nonce",n),i.textContent=e.cssText,t.appendChild(i)}))},v=u?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return f(e)})(t):t
32
+ */,u=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),c=new WeakMap;class l{constructor(t,e,i){if(this._$cssResult$=!0,i!==a)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(u&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=c.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&c.set(e,t))}return t}toString(){return this.cssText}}const f=t=>new l("string"==typeof t?t:t+"",void 0,a),h=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,n)=>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[n+1]),t[0]);return new l(i,t,a)},d=(t,e)=>{u?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),n=window.litNonce;void 0!==n&&i.setAttribute("nonce",n),i.textContent=e.cssText,t.appendChild(i)}))},v=u?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return f(e)})(t):t
33
33
  /**
34
34
  * @license
35
35
  * Copyright 2017 Google LLC
@@ -40,13 +40,13 @@ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.cust
40
40
  * Copyright 2017 Google LLC
41
41
  * SPDX-License-Identifier: BSD-3-Clause
42
42
  */
43
- var E;O.finalized=!0,O.elementProperties=new Map,O.elementStyles=[],O.shadowRootOptions={mode:"open"},null==y||y({ReactiveElement:O}),(null!==(p=globalThis.reactiveElementVersions)&&void 0!==p?p:globalThis.reactiveElementVersions=[]).push("1.3.4");const j=globalThis.trustedTypes,N=j?j.createPolicy("lit-html",{createHTML:t=>t}):void 0,S=`lit$${(Math.random()+"").slice(9)}$`,R="?"+S,C=`<${R}>`,M=document,A=(t="")=>M.createComment(t),U=t=>null===t||"object"!=typeof t&&"function"!=typeof t,T=Array.isArray,$=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,I=/-->/g,k=/>/g,F=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),P=/'/g,_=/"/g,L=/^(?:script|style|textarea|title)$/i,B=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),W=Symbol.for("lit-noChange"),K=Symbol.for("lit-nothing"),D=new WeakMap,H=M.createTreeWalker(M,129,null,!1);class z{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const s=t.length-1,u=this.parts,[c,a]=((t,e)=>{const i=t.length-1,n=[];let r,o=2===e?"<svg>":"",s=$;for(let e=0;e<i;e++){const i=t[e];let u,c,a=-1,l=0;for(;l<i.length&&(s.lastIndex=l,c=s.exec(i),null!==c);)l=s.lastIndex,s===$?"!--"===c[1]?s=I:void 0!==c[1]?s=k:void 0!==c[2]?(L.test(c[2])&&(r=RegExp("</"+c[2],"g")),s=F):void 0!==c[3]&&(s=F):s===F?">"===c[0]?(s=null!=r?r:$,a=-1):void 0===c[1]?a=-2:(a=s.lastIndex-c[2].length,u=c[1],s=void 0===c[3]?F:'"'===c[3]?_:P):s===_||s===P?s=F:s===I||s===k?s=$:(s=F,r=void 0);const f=s===F&&t[e+1].startsWith("/>")?" ":"";o+=s===$?i+C:a>=0?(n.push(u),i.slice(0,a)+"$lit$"+i.slice(a)+S+f):i+S+(-2===a?(n.push(void 0),e):f)}const u=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==N?N.createHTML(u):u,n]})(t,e);if(this.el=z.createElement(c,i),H.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=H.nextNode())&&u.length<s;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(S)){const i=a[o++];if(t.push(e),void 0!==i){const t=n.getAttribute(i.toLowerCase()+"$lit$").split(S),e=/([.?@])?(.*)/.exec(i);u.push({type:1,index:r,name:e[2],strings:t,ctor:"."===e[1]?X:"?"===e[1]?Y:"@"===e[1]?Q:q})}else u.push({type:6,index:r})}for(const e of t)n.removeAttribute(e)}if(L.test(n.tagName)){const t=n.textContent.split(S),e=t.length-1;if(e>0){n.textContent=j?j.emptyScript:"";for(let i=0;i<e;i++)n.append(t[i],A()),H.nextNode(),u.push({type:2,index:++r});n.append(t[e],A())}}}else if(8===n.nodeType)if(n.data===R)u.push({type:2,index:r});else{let t=-1;for(;-1!==(t=n.data.indexOf(S,t+1));)u.push({type:7,index:r}),t+=S.length-1}r++}}static createElement(t,e){const i=M.createElement("template");return i.innerHTML=t,i}}function J(t,e,i=t,n){var r,o,s,u;if(e===W)return e;let c=void 0!==n?null===(r=i._$Cl)||void 0===r?void 0:r[n]:i._$Cu;const a=U(e)?void 0:e._$litDirective$;return(null==c?void 0:c.constructor)!==a&&(null===(o=null==c?void 0:c._$AO)||void 0===o||o.call(c,!1),void 0===a?c=void 0:(c=new a(t),c._$AT(t,i,n)),void 0!==n?(null!==(s=(u=i)._$Cl)&&void 0!==s?s:u._$Cl=[])[n]=c:i._$Cu=c),void 0!==c&&(e=J(t,c._$AS(t,e.values),c,n)),e}class V{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:n}=this._$AD,r=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:M).importNode(i,!0);H.currentNode=r;let o=H.nextNode(),s=0,u=0,c=n[0];for(;void 0!==c;){if(s===c.index){let e;2===c.type?e=new Z(o,o.nextSibling,this,t):1===c.type?e=new c.ctor(o,c.name,c.strings,this,t):6===c.type&&(e=new tt(o,this,t)),this.v.push(e),c=n[++u]}s!==(null==c?void 0:c.index)&&(o=H.nextNode(),s++)}return r}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class Z{constructor(t,e,i,n){var r;this.type=2,this._$AH=K,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$C_=null===(r=null==n?void 0:n.isConnected)||void 0===r||r}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$C_}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=J(this,t,e),U(t)?t===K||null==t||""===t?(this._$AH!==K&&this._$AR(),this._$AH=K):t!==this._$AH&&t!==W&&this.T(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.k(t):(t=>T(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]))(t)?this.S(t):this.T(t)}j(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.j(t))}T(t){this._$AH!==K&&U(this._$AH)?this._$AA.nextSibling.data=t:this.k(M.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:n}=t,r="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=z.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===r)this._$AH.m(i);else{const t=new V(r,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=D.get(t.strings);return void 0===e&&D.set(t.strings,e=new z(t)),e}S(t){T(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const r of t)n===e.length?e.push(i=new Z(this.j(A()),this.j(A()),this,this.options)):i=e[n],i._$AI(r),n++;n<e.length&&(this._$AR(i&&i._$AB.nextSibling,n),e.length=n)}_$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._$C_=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class q{constructor(t,e,i,n,r){this.type=1,this._$AH=K,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=r,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=K}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=J(this,t,e,0),o=!U(t)||t!==this._$AH&&t!==W,o&&(this._$AH=t);else{const n=t;let s,u;for(t=r[0],s=0;s<r.length-1;s++)u=J(this,n[i+s],e,s),u===W&&(u=this._$AH[s]),o||(o=!U(u)||u!==this._$AH[s]),u===K?t=K:t!==K&&(t+=(null!=u?u:"")+r[s+1]),this._$AH[s]=u}o&&!n&&this.P(t)}P(t){t===K?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class X extends q{constructor(){super(...arguments),this.type=3}P(t){this.element[this.name]=t===K?void 0:t}}const G=j?j.emptyScript:"";class Y extends q{constructor(){super(...arguments),this.type=4}P(t){t&&t!==K?this.element.setAttribute(this.name,G):this.element.removeAttribute(this.name)}}class Q extends q{constructor(t,e,i,n,r){super(t,e,i,n,r),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=J(this,t,e,0))&&void 0!==i?i:K)===W)return;const n=this._$AH,r=t===K&&n!==K||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,o=t!==K&&(n===K||r);r&&this.element.removeEventListener(this.name,this,n),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 tt{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){J(this,t)}}const et=window.litHtmlPolyfillSupport;
43
+ var E;O.finalized=!0,O.elementProperties=new Map,O.elementStyles=[],O.shadowRootOptions={mode:"open"},null==y||y({ReactiveElement:O}),(null!==(p=globalThis.reactiveElementVersions)&&void 0!==p?p:globalThis.reactiveElementVersions=[]).push("1.3.4");const j=globalThis.trustedTypes,N=j?j.createPolicy("lit-html",{createHTML:t=>t}):void 0,R=`lit$${(Math.random()+"").slice(9)}$`,S="?"+R,C=`<${S}>`,M=document,A=(t="")=>M.createComment(t),T=t=>null===t||"object"!=typeof t&&"function"!=typeof t,U=Array.isArray,$=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,I=/-->/g,F=/>/g,k=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),P=/'/g,L=/"/g,_=/^(?:script|style|textarea|title)$/i,B=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),W=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),K=new WeakMap,H=M.createTreeWalker(M,129,null,!1);class z{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const s=t.length-1,u=this.parts,[a,c]=((t,e)=>{const i=t.length-1,n=[];let r,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=I:void 0!==a[1]?s=F:void 0!==a[2]?(_.test(a[2])&&(r=RegExp("</"+a[2],"g")),s=k):void 0!==a[3]&&(s=k):s===k?">"===a[0]?(s=null!=r?r:$,c=-1):void 0===a[1]?c=-2:(c=s.lastIndex-a[2].length,u=a[1],s=void 0===a[3]?k:'"'===a[3]?L:P):s===L||s===P?s=k:s===I||s===F?s=$:(s=k,r=void 0);const f=s===k&&t[e+1].startsWith("/>")?" ":"";o+=s===$?i+C:c>=0?(n.push(u),i.slice(0,c)+"$lit$"+i.slice(c)+R+f):i+R+(-2===c?(n.push(void 0),e):f)}const u=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==N?N.createHTML(u):u,n]})(t,e);if(this.el=z.createElement(a,i),H.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=H.nextNode())&&u.length<s;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(R)){const i=c[o++];if(t.push(e),void 0!==i){const t=n.getAttribute(i.toLowerCase()+"$lit$").split(R),e=/([.?@])?(.*)/.exec(i);u.push({type:1,index:r,name:e[2],strings:t,ctor:"."===e[1]?X:"?"===e[1]?Y:"@"===e[1]?Q:q})}else u.push({type:6,index:r})}for(const e of t)n.removeAttribute(e)}if(_.test(n.tagName)){const t=n.textContent.split(R),e=t.length-1;if(e>0){n.textContent=j?j.emptyScript:"";for(let i=0;i<e;i++)n.append(t[i],A()),H.nextNode(),u.push({type:2,index:++r});n.append(t[e],A())}}}else if(8===n.nodeType)if(n.data===S)u.push({type:2,index:r});else{let t=-1;for(;-1!==(t=n.data.indexOf(R,t+1));)u.push({type:7,index:r}),t+=R.length-1}r++}}static createElement(t,e){const i=M.createElement("template");return i.innerHTML=t,i}}function J(t,e,i=t,n){var r,o,s,u;if(e===W)return e;let a=void 0!==n?null===(r=i._$Cl)||void 0===r?void 0:r[n]:i._$Cu;const c=T(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,n)),void 0!==n?(null!==(s=(u=i)._$Cl)&&void 0!==s?s:u._$Cl=[])[n]=a:i._$Cu=a),void 0!==a&&(e=J(t,a._$AS(t,e.values),a,n)),e}class V{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:n}=this._$AD,r=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:M).importNode(i,!0);H.currentNode=r;let o=H.nextNode(),s=0,u=0,a=n[0];for(;void 0!==a;){if(s===a.index){let e;2===a.type?e=new Z(o,o.nextSibling,this,t):1===a.type?e=new a.ctor(o,a.name,a.strings,this,t):6===a.type&&(e=new tt(o,this,t)),this.v.push(e),a=n[++u]}s!==(null==a?void 0:a.index)&&(o=H.nextNode(),s++)}return r}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class Z{constructor(t,e,i,n){var r;this.type=2,this._$AH=D,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$C_=null===(r=null==n?void 0:n.isConnected)||void 0===r||r}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$C_}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=J(this,t,e),T(t)?t===D||null==t||""===t?(this._$AH!==D&&this._$AR(),this._$AH=D):t!==this._$AH&&t!==W&&this.T(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.k(t):(t=>U(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]))(t)?this.S(t):this.T(t)}j(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.j(t))}T(t){this._$AH!==D&&T(this._$AH)?this._$AA.nextSibling.data=t:this.k(M.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:n}=t,r="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=z.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===r)this._$AH.m(i);else{const t=new V(r,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=K.get(t.strings);return void 0===e&&K.set(t.strings,e=new z(t)),e}S(t){U(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const r of t)n===e.length?e.push(i=new Z(this.j(A()),this.j(A()),this,this.options)):i=e[n],i._$AI(r),n++;n<e.length&&(this._$AR(i&&i._$AB.nextSibling,n),e.length=n)}_$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._$C_=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class q{constructor(t,e,i,n,r){this.type=1,this._$AH=D,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=r,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=D}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=J(this,t,e,0),o=!T(t)||t!==this._$AH&&t!==W,o&&(this._$AH=t);else{const n=t;let s,u;for(t=r[0],s=0;s<r.length-1;s++)u=J(this,n[i+s],e,s),u===W&&(u=this._$AH[s]),o||(o=!T(u)||u!==this._$AH[s]),u===D?t=D:t!==D&&(t+=(null!=u?u:"")+r[s+1]),this._$AH[s]=u}o&&!n&&this.P(t)}P(t){t===D?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class X extends q{constructor(){super(...arguments),this.type=3}P(t){this.element[this.name]=t===D?void 0:t}}const G=j?j.emptyScript:"";class Y extends q{constructor(){super(...arguments),this.type=4}P(t){t&&t!==D?this.element.setAttribute(this.name,G):this.element.removeAttribute(this.name)}}class Q extends q{constructor(t,e,i,n,r){super(t,e,i,n,r),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=J(this,t,e,0))&&void 0!==i?i:D)===W)return;const n=this._$AH,r=t===D&&n!==D||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,o=t!==D&&(n===D||r);r&&this.element.removeEventListener(this.name,this,n),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 tt{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){J(this,t)}}const et=window.litHtmlPolyfillSupport;
44
44
  /**
45
45
  * @license
46
46
  * Copyright 2017 Google LLC
47
47
  * SPDX-License-Identifier: BSD-3-Clause
48
48
  */
49
- var it,nt;null==et||et(z,Z),(null!==(E=globalThis.litHtmlVersions)&&void 0!==E?E:globalThis.litHtmlVersions=[]).push("2.2.7");class rt extends O{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 n,r;const o=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let s=o._$litPart$;if(void 0===s){const t=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;o._$litPart$=s=new Z(e.insertBefore(A(),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 W}}rt.finalized=!0,rt._$litElement$=!0,null===(it=globalThis.litElementHydrateSupport)||void 0===it||it.call(globalThis,{LitElement:rt});const ot=globalThis.litElementPolyfillSupport;null==ot||ot({LitElement:rt}),(null!==(nt=globalThis.litElementVersions)&&void 0!==nt?nt:globalThis.litElementVersions=[]).push("3.2.2");class st{static create(t,e,i){let n=t=>f(null!=t?t:i),r=h`var(${f(t)}, ${n(i)})`;return r.name=t,r.category=e,r.defaultValue=i,r.defaultCssValue=n,r.get=e=>h`var(${f(t)}, ${n(e)})`,r.breadcrumb=()=>[],r.lastResortDefaultValue=()=>i,r}static extend(t,e,i){let n=t=>e.get(null!=t?t:i),r=h`var(${f(t)}, ${n(i)})`;return r.name=t,r.category=e.category,r.fallbackVariable=e,r.defaultValue=i,r.defaultCssValue=n,r.get=e=>h`var(${f(t)}, ${n(e)})`,r.breadcrumb=()=>[e.name,...e.breadcrumb()],r.lastResortDefaultValue=()=>i,r}static external(t,e){let i=e=>t.fallbackVariable?t.fallbackVariable.get(null!=e?e:t.defaultValue):f(null!=e?e:t.defaultValue),n=h`var(${f(t.name)}, ${i(t.defaultValue)})`;return n.name=t.name,n.category=t.category,n.fallbackVariable=t.fallbackVariable,n.defaultValue=t.defaultValue,n.context=e,n.defaultCssValue=i,n.get=e=>h`var(${f(t.name)}, ${i(e)})`,n.breadcrumb=()=>t.fallbackVariable?[t.fallbackVariable.name,...t.fallbackVariable.breadcrumb()]:[],n.lastResortDefaultValue=()=>{var e,i;return null!==(e=t.defaultValue)&&void 0!==e?e:null===(i=t.fallbackVariable)||void 0===i?void 0:i.lastResortDefaultValue()},n}}st.create("--ft-color-primary","COLOR","#2196F3"),st.create("--ft-color-primary-variant","COLOR","#1976D2"),st.create("--ft-color-secondary","COLOR","#FFCC80"),st.create("--ft-color-secondary-variant","COLOR","#F57C00"),st.create("--ft-color-surface","COLOR","#FFFFFF"),st.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-error","COLOR","#B00020"),st.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),st.create("--ft-color-opacity-high","NUMBER","1"),st.create("--ft-color-opacity-medium","NUMBER","0.74"),st.create("--ft-color-opacity-disabled","NUMBER","0.38"),st.create("--ft-color-on-primary","COLOR","#FFFFFF"),st.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),st.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),st.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),st.create("--ft-color-on-secondary","COLOR","#FFFFFF"),st.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),st.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),st.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),st.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),st.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),st.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),st.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),st.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),st.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),st.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),st.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),st.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),st.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),st.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),st.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),st.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),st.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),st.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),st.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),st.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),st.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),st.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),st.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),st.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),st.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),st.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.create("--ft-border-radius-S","SIZE","4px"),st.create("--ft-border-radius-M","SIZE","8px"),st.create("--ft-border-radius-L","SIZE","12px"),st.create("--ft-border-radius-XL","SIZE","16px"),st.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),st.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),st.create("--ft-transition-duration","UNKNOWN","250ms"),st.create("--ft-transition-timing-function","UNKNOWN","ease-in-out");var ut=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class ct extends(
49
+ var it,nt;null==et||et(z,Z),(null!==(E=globalThis.litHtmlVersions)&&void 0!==E?E:globalThis.litHtmlVersions=[]).push("2.2.7");class rt extends O{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 n,r;const o=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let s=o._$litPart$;if(void 0===s){const t=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;o._$litPart$=s=new Z(e.insertBefore(A(),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 W}}rt.finalized=!0,rt._$litElement$=!0,null===(it=globalThis.litElementHydrateSupport)||void 0===it||it.call(globalThis,{LitElement:rt});const ot=globalThis.litElementPolyfillSupport;null==ot||ot({LitElement:rt}),(null!==(nt=globalThis.litElementVersions)&&void 0!==nt?nt:globalThis.litElementVersions=[]).push("3.2.2");class st{static create(t,e,i){let n=t=>f(null!=t?t:i),r=h`var(${f(t)}, ${n(i)})`;return r.name=t,r.category=e,r.defaultValue=i,r.defaultCssValue=n,r.get=e=>h`var(${f(t)}, ${n(e)})`,r.breadcrumb=()=>[],r.lastResortDefaultValue=()=>i,r}static extend(t,e,i){let n=t=>e.get(null!=t?t:i),r=h`var(${f(t)}, ${n(i)})`;return r.name=t,r.category=e.category,r.fallbackVariable=e,r.defaultValue=i,r.defaultCssValue=n,r.get=e=>h`var(${f(t)}, ${n(e)})`,r.breadcrumb=()=>[e.name,...e.breadcrumb()],r.lastResortDefaultValue=()=>i,r}static external(t,e){let i=e=>t.fallbackVariable?t.fallbackVariable.get(null!=e?e:t.defaultValue):f(null!=e?e:t.defaultValue),n=h`var(${f(t.name)}, ${i(t.defaultValue)})`;return n.name=t.name,n.category=t.category,n.fallbackVariable=t.fallbackVariable,n.defaultValue=t.defaultValue,n.context=e,n.defaultCssValue=i,n.get=e=>h`var(${f(t.name)}, ${i(e)})`,n.breadcrumb=()=>t.fallbackVariable?[t.fallbackVariable.name,...t.fallbackVariable.breadcrumb()]:[],n.lastResortDefaultValue=()=>{var e,i;return null!==(e=t.defaultValue)&&void 0!==e?e:null===(i=t.fallbackVariable)||void 0===i?void 0:i.lastResortDefaultValue()},n}}st.create("--ft-color-primary","COLOR","#2196F3"),st.create("--ft-color-primary-variant","COLOR","#1976D2"),st.create("--ft-color-secondary","COLOR","#FFCC80"),st.create("--ft-color-secondary-variant","COLOR","#F57C00"),st.create("--ft-color-surface","COLOR","#FFFFFF"),st.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-error","COLOR","#B00020"),st.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),st.create("--ft-color-opacity-high","NUMBER","1"),st.create("--ft-color-opacity-medium","NUMBER","0.74"),st.create("--ft-color-opacity-disabled","NUMBER","0.38"),st.create("--ft-color-on-primary","COLOR","#FFFFFF"),st.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),st.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),st.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),st.create("--ft-color-on-secondary","COLOR","#FFFFFF"),st.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),st.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),st.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),st.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),st.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),st.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),st.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),st.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),st.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),st.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),st.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),st.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),st.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),st.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),st.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),st.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),st.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),st.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),st.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),st.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),st.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),st.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),st.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),st.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),st.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),st.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),st.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.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)"),st.create("--ft-border-radius-S","SIZE","4px"),st.create("--ft-border-radius-M","SIZE","8px"),st.create("--ft-border-radius-L","SIZE","12px"),st.create("--ft-border-radius-XL","SIZE","16px"),st.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),st.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),st.create("--ft-transition-duration","UNKNOWN","250ms"),st.create("--ft-transition-timing-function","UNKNOWN","ease-in-out");var ut=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class at extends(
50
50
  /**
51
51
  * @license
52
52
  * Copyright 2021 Google LLC
@@ -57,7 +57,7 @@ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{
57
57
  <style>${t}</style>
58
58
  `))}
59
59
  ${this.getTemplate()}
60
- `}updated(t){super.updated(t),setTimeout((()=>{var e;this.contentAvailableCallback(t),(null===(e=this.exportpartsPrefix)||void 0===e?void 0:e.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}),0)}setExportpartsAttribute(t){var e,i,n,r,o,s;const u=t=>null!=t&&t.trim().length>0,c=t.filter(u).map((t=>t.trim()));if(0===c.length)return void this.removeAttribute("exportparts");const a=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!==(r=null===(n=t.getAttribute("part"))||void 0===n?void 0:n.split(" "))&&void 0!==r?r:[],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=>a.add(t)))}if(0===a.size)return void this.removeAttribute("exportparts");const l=[...a.values()].flatMap((t=>c.map((e=>`${t}:${e}--${t}`))));this.setAttribute("exportparts",[...this.part,...l].join(", "))}contentAvailableCallback(t){}}function at(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];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 lt(t){return!!t&&!!t[Xt]}function ft(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)===Gt}(t)||Array.isArray(t)||!!t[qt]||!!t.constructor[qt]||wt(t)||yt(t))}function ht(t,e,i){void 0===i&&(i=!1),0===dt(t)?(i?Object.keys:Yt)(t).forEach((function(n){i&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach((function(i,n){return e(n,i,t)}))}function dt(t){var e=t[Xt];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:wt(t)?2:yt(t)?3:0}function vt(t,e){return 2===dt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function pt(t,e,i){var n=dt(t);2===n?t.set(e,i):3===n?(t.delete(e),t.add(i)):t[e]=i}function bt(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function wt(t){return zt&&t instanceof Map}function yt(t){return Jt&&t instanceof Set}function mt(t){return t.o||t.t}function gt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=Qt(t);delete e[Xt];for(var i=Yt(e),n=0;n<i.length;n++){var r=i[n],o=e[r];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[r]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[r]})}return Object.create(Object.getPrototypeOf(t),e)}function xt(t,e){return void 0===e&&(e=!1),Et(t)||lt(t)||!ft(t)||(dt(t)>1&&(t.set=t.add=t.clear=t.delete=Ot),Object.freeze(t),e&&ht(t,(function(t,e){return xt(e,!0)}),!0)),t}function Ot(){at(2)}function Et(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function jt(t){var e=te[t];return e||at(18,t),e}function Nt(){return Dt}function St(t,e){e&&(jt("Patches"),t.u=[],t.s=[],t.v=e)}function Rt(t){Ct(t),t.p.forEach(At),t.p=null}function Ct(t){t===Dt&&(Dt=t.l)}function Mt(t){return Dt={p:[],l:Dt,h:t,m:!0,_:0}}function At(t){var e=t[Xt];0===e.i||1===e.i?e.j():e.O=!0}function Ut(t,e){e._=e.p.length;var i=e.p[0],n=void 0!==t&&t!==i;return e.h.g||jt("ES5").S(e,t,n),n?(i[Xt].P&&(Rt(e),at(4)),ft(t)&&(t=Tt(e,t),e.l||It(e,t)),e.u&&jt("Patches").M(i[Xt].t,t,e.u,e.s)):t=Tt(e,i,[]),Rt(e),e.u&&e.v(e.u,e.s),t!==Zt?t:void 0}function Tt(t,e,i){if(Et(e))return e;var n=e[Xt];if(!n)return ht(e,(function(r,o){return $t(t,n,e,r,o,i)}),!0),e;if(n.A!==t)return e;if(!n.P)return It(t,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var r=4===n.i||5===n.i?n.o=gt(n.k):n.o;ht(3===n.i?new Set(r):r,(function(e,o){return $t(t,n,r,e,o,i)})),It(t,r,!1),i&&t.u&&jt("Patches").R(n,i,t.u,t.s)}return n.o}function $t(t,e,i,n,r,o){if(lt(r)){var s=Tt(t,r,o&&e&&3!==e.i&&!vt(e.D,n)?o.concat(n):void 0);if(pt(i,n,s),!lt(s))return;t.m=!1}if(ft(r)&&!Et(r)){if(!t.h.F&&t._<1)return;Tt(t,r),e&&e.A.l||It(t,r)}}function It(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&xt(e,i)}function kt(t,e){var i=t[Xt];return(i?mt(i):t)[e]}function Ft(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var n=Object.getOwnPropertyDescriptor(i,e);if(n)return n;i=Object.getPrototypeOf(i)}}function Pt(t){t.P||(t.P=!0,t.l&&Pt(t.l))}function _t(t){t.o||(t.o=gt(t.t))}function Lt(t,e,i){var n=wt(e)?jt("MapSet").N(e,i):yt(e)?jt("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),n={i:i?1:0,A:e?e.A:Nt(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},r=n,o=ee;i&&(r=[n],o=ie);var s=Proxy.revocable(r,o),u=s.revoke,c=s.proxy;return n.k=c,n.j=u,c}(e,i):jt("ES5").J(e,i);return(i?i.A:Nt()).p.push(n),n}function Bt(t){return lt(t)||at(22,t),function t(e){if(!ft(e))return e;var i,n=e[Xt],r=dt(e);if(n){if(!n.P&&(n.i<4||!jt("ES5").K(n)))return n.t;n.I=!0,i=Wt(e,r),n.I=!1}else i=Wt(e,r);return ht(i,(function(e,r){n&&function(t,e){return 2===dt(t)?t.get(e):t[e]}(n.t,e)===r||pt(i,e,t(r))})),3===r?new Set(i):i}(t)}function Wt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return gt(t)}ut([n()],ct.prototype,"exportpartsPrefix",void 0),ut([function(t,e){const i=()=>JSON.parse(JSON.stringify(t));return n({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:{}})}([])],ct.prototype,"exportpartsPrefixes",void 0),h`
60
+ `}updated(t){super.updated(t),setTimeout((()=>{var e;this.contentAvailableCallback(t),(null===(e=this.exportpartsPrefix)||void 0===e?void 0:e.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}),0)}setExportpartsAttribute(t){var e,i,n,r,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!==(r=null===(n=t.getAttribute("part"))||void 0===n?void 0:n.split(" "))&&void 0!==r?r:[],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(", "))}contentAvailableCallback(t){}}function ct(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];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 lt(t){return!!t&&!!t[Xt]}function ft(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)===Gt}(t)||Array.isArray(t)||!!t[qt]||!!t.constructor[qt]||wt(t)||yt(t))}function ht(t,e,i){void 0===i&&(i=!1),0===dt(t)?(i?Object.keys:Yt)(t).forEach((function(n){i&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach((function(i,n){return e(n,i,t)}))}function dt(t){var e=t[Xt];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:wt(t)?2:yt(t)?3:0}function vt(t,e){return 2===dt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function pt(t,e,i){var n=dt(t);2===n?t.set(e,i):3===n?(t.delete(e),t.add(i)):t[e]=i}function bt(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function wt(t){return zt&&t instanceof Map}function yt(t){return Jt&&t instanceof Set}function mt(t){return t.o||t.t}function gt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=Qt(t);delete e[Xt];for(var i=Yt(e),n=0;n<i.length;n++){var r=i[n],o=e[r];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[r]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[r]})}return Object.create(Object.getPrototypeOf(t),e)}function xt(t,e){return void 0===e&&(e=!1),Et(t)||lt(t)||!ft(t)||(dt(t)>1&&(t.set=t.add=t.clear=t.delete=Ot),Object.freeze(t),e&&ht(t,(function(t,e){return xt(e,!0)}),!0)),t}function Ot(){ct(2)}function Et(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function jt(t){var e=te[t];return e||ct(18,t),e}function Nt(){return Kt}function Rt(t,e){e&&(jt("Patches"),t.u=[],t.s=[],t.v=e)}function St(t){Ct(t),t.p.forEach(At),t.p=null}function Ct(t){t===Kt&&(Kt=t.l)}function Mt(t){return Kt={p:[],l:Kt,h:t,m:!0,_:0}}function At(t){var e=t[Xt];0===e.i||1===e.i?e.j():e.O=!0}function Tt(t,e){e._=e.p.length;var i=e.p[0],n=void 0!==t&&t!==i;return e.h.g||jt("ES5").S(e,t,n),n?(i[Xt].P&&(St(e),ct(4)),ft(t)&&(t=Ut(e,t),e.l||It(e,t)),e.u&&jt("Patches").M(i[Xt].t,t,e.u,e.s)):t=Ut(e,i,[]),St(e),e.u&&e.v(e.u,e.s),t!==Zt?t:void 0}function Ut(t,e,i){if(Et(e))return e;var n=e[Xt];if(!n)return ht(e,(function(r,o){return $t(t,n,e,r,o,i)}),!0),e;if(n.A!==t)return e;if(!n.P)return It(t,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var r=4===n.i||5===n.i?n.o=gt(n.k):n.o;ht(3===n.i?new Set(r):r,(function(e,o){return $t(t,n,r,e,o,i)})),It(t,r,!1),i&&t.u&&jt("Patches").R(n,i,t.u,t.s)}return n.o}function $t(t,e,i,n,r,o){if(lt(r)){var s=Ut(t,r,o&&e&&3!==e.i&&!vt(e.D,n)?o.concat(n):void 0);if(pt(i,n,s),!lt(s))return;t.m=!1}if(ft(r)&&!Et(r)){if(!t.h.F&&t._<1)return;Ut(t,r),e&&e.A.l||It(t,r)}}function It(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&xt(e,i)}function Ft(t,e){var i=t[Xt];return(i?mt(i):t)[e]}function kt(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var n=Object.getOwnPropertyDescriptor(i,e);if(n)return n;i=Object.getPrototypeOf(i)}}function Pt(t){t.P||(t.P=!0,t.l&&Pt(t.l))}function Lt(t){t.o||(t.o=gt(t.t))}function _t(t,e,i){var n=wt(e)?jt("MapSet").N(e,i):yt(e)?jt("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),n={i:i?1:0,A:e?e.A:Nt(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},r=n,o=ee;i&&(r=[n],o=ie);var s=Proxy.revocable(r,o),u=s.revoke,a=s.proxy;return n.k=a,n.j=u,a}(e,i):jt("ES5").J(e,i);return(i?i.A:Nt()).p.push(n),n}function Bt(t){return lt(t)||ct(22,t),function t(e){if(!ft(e))return e;var i,n=e[Xt],r=dt(e);if(n){if(!n.P&&(n.i<4||!jt("ES5").K(n)))return n.t;n.I=!0,i=Wt(e,r),n.I=!1}else i=Wt(e,r);return ht(i,(function(e,r){n&&function(t,e){return 2===dt(t)?t.get(e):t[e]}(n.t,e)===r||pt(i,e,t(r))})),3===r?new Set(i):i}(t)}function Wt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return gt(t)}ut([n()],at.prototype,"exportpartsPrefix",void 0),ut([function(t,e){const i=()=>JSON.parse(JSON.stringify(t));return n({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:{}})}([])],at.prototype,"exportpartsPrefixes",void 0),h`
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
- `;var Kt,Dt,Ht="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),zt="undefined"!=typeof Map,Jt="undefined"!=typeof Set,Vt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,Zt=Ht?Symbol.for("immer-nothing"):((Kt={})["immer-nothing"]=!0,Kt),qt=Ht?Symbol.for("immer-draftable"):"__$immer_draftable",Xt=Ht?Symbol.for("immer-state"):"__$immer_state",Gt=""+Object.prototype.constructor,Yt="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,Qt=Object.getOwnPropertyDescriptors||function(t){var e={};return Yt(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},te={},ee={get:function(t,e){if(e===Xt)return t;var i=mt(t);if(!vt(i,e))return function(t,e,i){var n,r=Ft(e,i);return r?"value"in r?r.value:null===(n=r.get)||void 0===n?void 0:n.call(t.k):void 0}(t,i,e);var n=i[e];return t.I||!ft(n)?n:n===kt(t.t,e)?(_t(t),t.o[e]=Lt(t.A.h,n,t)):n},has:function(t,e){return e in mt(t)},ownKeys:function(t){return Reflect.ownKeys(mt(t))},set:function(t,e,i){var n=Ft(mt(t),e);if(null==n?void 0:n.set)return n.set.call(t.k,i),!0;if(!t.P){var r=kt(mt(t),e),o=null==r?void 0:r[Xt];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(bt(i,r)&&(void 0!==i||vt(t.t,e)))return!0;_t(t),Pt(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!==kt(t.t,e)||e in t.t?(t.D[e]=!1,_t(t),Pt(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=mt(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty:function(){at(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){at(12)}},ie={};ht(ee,(function(t,e){ie[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),ie.deleteProperty=function(t,e){return ie.set.call(this,t,e,void 0)},ie.set=function(t,e,i){return ee.set.call(this,t[0],e,i,t[0])};var ne=function(){function t(t){var e=this;this.g=Vt,this.F=!0,this.produce=function(t,i,n){if("function"==typeof t&&"function"!=typeof i){var r=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=r);for(var n=arguments.length,s=Array(n>1?n-1:0),u=1;u<n;u++)s[u-1]=arguments[u];return o.produce(t,(function(t){var n;return(n=i).call.apply(n,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&at(6),void 0!==n&&"function"!=typeof n&&at(7),ft(t)){var u=Mt(e),c=Lt(e,t,void 0),a=!0;try{s=i(c),a=!1}finally{a?Rt(u):Ct(u)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return St(u,n),Ut(t,u)}),(function(t){throw Rt(u),t})):(St(u,n),Ut(s,u))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===Zt&&(s=void 0),e.F&&xt(s,!0),n){var l=[],f=[];jt("Patches").M(t,s,l,f),n(l,f)}return s}at(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(r))}))};var n,r,o=e.produce(t,i,(function(t,e){n=t,r=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,n,r]})):[o,n,r]},"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){ft(t)||at(8),lt(t)&&(t=Bt(t));var e=Mt(this),i=Lt(this,t,void 0);return i[Xt].C=!0,Ct(e),i},e.finishDraft=function(t,e){var i=(t&&t[Xt]).A;return St(i,e),Ut(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!Vt&&at(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));var r=jt("Patches").$;return lt(t)?r(t,e):this.produce(t,(function(t){return r(t,e)}))},t}(),re=new ne,oe=re.produce;re.produceWithPatches.bind(re),re.setAutoFreeze.bind(re),re.setUseProxies.bind(re),re.applyPatches.bind(re),re.createDraft.bind(re),re.finishDraft.bind(re);var se=oe;function ue(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function ce(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function ae(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ce(Object(i),!0).forEach((function(e){ue(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ce(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function le(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 fe="function"==typeof Symbol&&Symbol.observable||"@@observable",he=function(){return Math.random().toString(36).substring(7).split("").join(".")},de={INIT:"@@redux/INIT"+he(),REPLACE:"@@redux/REPLACE"+he(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+he()}};function ve(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 pe(t,e,i){var n;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(le(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(le(1));return i(pe)(t,e)}if("function"!=typeof t)throw new Error(le(2));var r=t,o=e,s=[],u=s,c=!1;function a(){u===s&&(u=s.slice())}function l(){if(c)throw new Error(le(3));return o}function f(t){if("function"!=typeof t)throw new Error(le(4));if(c)throw new Error(le(5));var e=!0;return a(),u.push(t),function(){if(e){if(c)throw new Error(le(6));e=!1,a();var i=u.indexOf(t);u.splice(i,1),s=null}}}function h(t){if(!ve(t))throw new Error(le(7));if(void 0===t.type)throw new Error(le(8));if(c)throw new Error(le(9));try{c=!0,o=r(o,t)}finally{c=!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(le(10));r=t,h({type:de.REPLACE})}function v(){var t,e=f;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(le(11));function i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[fe]=function(){return this},t}return h({type:de.INIT}),(n={dispatch:h,subscribe:f,getState:l,replaceReducer:d})[fe]=v,n}function be(t){for(var e=Object.keys(t),i={},n=0;n<e.length;n++){var r=e[n];"function"==typeof t[r]&&(i[r]=t[r])}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:de.INIT}))throw new Error(le(12));if(void 0===i(void 0,{type:de.PROBE_UNKNOWN_ACTION()}))throw new Error(le(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var n=!1,r={},u=0;u<s.length;u++){var c=s[u],a=i[c],l=t[c],f=a(l,e);if(void 0===f)throw e&&e.type,new Error(le(14));r[c]=f,n=n||f!==l}return(n=n||s.length!==Object.keys(t).length)?r:t}}function we(){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 ye(){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),n=function(){throw new Error(le(15))},r={getState:i.getState,dispatch:function(){return n.apply(void 0,arguments)}},o=e.map((function(t){return t(r)}));return n=we.apply(void 0,o)(i.dispatch),ae(ae({},i),{},{dispatch:n})}}}function me(t){return function(e){var i=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(i,n,t):e(r)}}}}var ge=me();ge.withExtraArgument=me;var xe,Oe=ge,Ee=(xe=function(t,e){return xe=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])},xe(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}xe(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),je=function(t,e){for(var i=0,n=e.length,r=t.length;i<n;i++,r++)t[r]=e[i];return t},Ne=Object.defineProperty,Se=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,Me=function(t,e,i){return e in t?Ne(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},Ae=function(t,e){for(var i in e||(e={}))Re.call(e,i)&&Me(t,i,e[i]);if(Se)for(var n=0,r=Se(e);n<r.length;n++){i=r[n];Ce.call(e,i)&&Me(t,i,e[i])}return t},Ue="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?we:we.apply(null,arguments)};var Te=function(t){function e(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var r=t.apply(this,i)||this;return Object.setPrototypeOf(r,e.prototype),r}return Ee(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,je([void 0],t[0].concat(this)))):new(e.bind.apply(e,je([void 0],t.concat(this))))},e}(Array);function $e(t){return ft(t)?se(t,(function(){})):t}function Ie(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var n=new Te;i&&(!function(t){return"boolean"==typeof t}(i)?n.push(Oe.withExtraArgument(i.extraArgument)):n.push(Oe));return n}(t)}}function ke(t){var e,i=Ie(),n=t||{},r=n.reducer,o=void 0===r?void 0:r,s=n.middleware,u=void 0===s?i():s,c=n.devTools,a=void 0===c||c,l=n.preloadedState,f=void 0===l?void 0:l,h=n.enhancers,d=void 0===h?void 0:h;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=be(o)}var v=u;"function"==typeof v&&(v=v(i));var p=ye.apply(void 0,v),b=we;a&&(b=Ue(Ae({trace:!1},"object"==typeof a&&a)));var w=[p];return Array.isArray(d)?w=je([p],d):"function"==typeof d&&(w=d(w)),pe(e,f,b.apply(void 0,w))}function Fe(t,e){function i(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(e){var r=e.apply(void 0,i);if(!r)throw new Error("prepareAction did not return an object");return Ae(Ae({type:t,payload:r.payload},"meta"in r&&{meta:r.meta}),"error"in r&&{error:r.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 Pe(t){var e,i={},n=[],r={addCase:function(t,e){var n="string"==typeof t?t:t.type;if(n in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[n]=e,r},addMatcher:function(t,e){return n.push({matcher:t,reducer:e}),r},addDefaultCase:function(t){return e=t,r}};return t(r),[i,n,e]}function _e(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,n="function"==typeof t.initialState?t.initialState:$e(t.initialState),r=t.reducers||{},o=Object.keys(r),s={},u={},c={};function a(){var e="function"==typeof t.extraReducers?Pe(t.extraReducers):[t.extraReducers],i=e[0],r=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,c=e[2],a=void 0===c?void 0:c,l=Ae(Ae({},r),u);return function(t,e,i,n){void 0===i&&(i=[]);var r,o="function"==typeof e?Pe(e):[e,i,n],s=o[0],u=o[1],c=o[2];if(function(t){return"function"==typeof t}(t))r=function(){return $e(t())};else{var a=$e(t);r=function(){return a}}function l(t,e){void 0===t&&(t=r());var i=je([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=[c]),i.reduce((function(t,i){if(i){var n;if(lt(t))return void 0===(n=i(t,e))?t:n;if(ft(t))return se(t,(function(t){return i(t,e)}));if(void 0===(n=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return t}),t)}return l.getInitialState=r,l}(n,l,s,a)}return o.forEach((function(t){var i,n,o=r[t],a=e+"/"+t;"reducer"in o?(i=o.reducer,n=o.prepare):i=o,s[t]=i,u[a]=i,c[t]=n?Fe(a,n):Fe(a)})),{name:e,reducer:function(t,e){return i||(i=a()),i(t,e)},actions:c,caseReducers:s,getInitialState:function(){return i||(i=a()),i.getInitialState()}}}var Le="listenerMiddleware";Fe(Le+"/add"),Fe(Le+"/removeAll"),Fe(Le+"/remove"),function(){function t(t,e){var i=r[t];return i?i.enumerable=e:r[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[Xt];return ee.get(e,t)},set:function(e){var i=this[Xt];ee.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var r=t[e][Xt];if(!r.P)switch(r.i){case 5:n(r)&&Pt(r);break;case 4:i(r)&&Pt(r)}}}function i(t){for(var e=t.t,i=t.k,n=Yt(i),r=n.length-1;r>=0;r--){var o=n[r];if(o!==Xt){var s=e[o];if(void 0===s&&!vt(e,o))return!0;var u=i[o],c=u&&u[Xt];if(c?c.t!==s:!bt(u,s))return!0}}var a=!!e[Xt];return n.length!==Yt(e).length+(a?0:1)}function n(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 n=0;n<e.length;n++)if(!e.hasOwnProperty(n))return!0;return!1}var r={};!function(t,e){te[t]||(te[t]=e)}("ES5",{J:function(e,i){var n=Array.isArray(e),r=function(e,i){if(e){for(var n=Array(i.length),r=0;r<i.length;r++)Object.defineProperty(n,""+r,t(r,!0));return n}var o=Qt(i);delete o[Xt];for(var s=Yt(o),u=0;u<s.length;u++){var c=s[u];o[c]=t(c,e||!!o[c].enumerable)}return Object.create(Object.getPrototypeOf(i),o)}(n,e),o={i:n?5:4,A:i?i.A:Nt(),P:!1,I:!1,D:{},l:i,t:e,k:r,o:null,O:!1,C:!1};return Object.defineProperty(r,Xt,{value:o,writable:!0}),r},S:function(t,i,r){r?lt(i)&&i[Xt].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[Xt];if(i){var r=i.t,o=i.k,s=i.D,u=i.i;if(4===u)ht(o,(function(e){e!==Xt&&(void 0!==r[e]||vt(r,e)?s[e]||t(o[e]):(s[e]=!0,Pt(i)))})),ht(r,(function(t){void 0!==o[t]||vt(o,t)||(s[t]=!1,Pt(i))}));else if(5===u){if(n(i)&&(Pt(i),s.length=!0),o.length<r.length)for(var c=o.length;c<r.length;c++)s[c]=!1;else for(var a=r.length;a<o.length;a++)s[a]=!0;for(var l=Math.min(o.length,r.length),f=0;f<l;f++)o.hasOwnProperty(f)||(s[f]=!0),void 0===s[f]&&t(o[f])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?i(t):n(t)}})}();const Be=(t,e)=>(i,n)=>{i.constructor.createProperty(n,{attribute:!1,hasChanged:null!=e?e:o});const r=i;r.reduxProperties=r.reduxProperties||new Map,r.reduxProperties.set(n,null!=t?t:t=>t[n])};class We extends ct{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 Ke,De;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(De=null===(Ke=window.safari)||void 0===Ke?void 0:Ke.pushNotification)||void 0===De||De.toString());const He={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},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload}};class ze{convertNodes(t){var e,i,n,r;const o={},s=new Set,u=new Set,c=[],a=(t,e,i)=>t.map((t=>{var n;t.page&&c.push(t.tocId);let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const l={...t,prettyUrl:r,depth:e,parentTocId:i,children:a(t.children,e+1,t.tocId)};return r&&(s.has(r)&&u.add(r),s.add(r)),o[t.tocId]=l,l})),l=a(null!=t?t:[],1),f=this.buildPages(c,o);let h={};return 0===f.length?f.push({number:1,title:null!==(i=null===(e=l[0])||void 0===e?void 0:e.title)&&void 0!==i?i:"",rootTocId:null!==(r=null===(n=l[0])||void 0===n?void 0:n.tocId)&&void 0!==r?r:"root",toc:[],topics:this.tocIds(l),hiddenTopics:[]}):h=this.indexPages(f),{toc:l,nodeByTocId:o,duplicatedPrettyUrls:u,pages:f,pageByTocId:h}}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildPages(t,e){const i=t=>t.parentTocId?[...i(e[t.parentTocId]),t.parentTocId]:[];return t.map((t=>e[t])).map(((t,e)=>{var n,r,o,s,u;const c={number:e+1,title:t.title,rootTocId:t.tocId,toc:(null===(n=t.page)||void 0===n?void 0:n.onItsOwn)?[]:t.children,topics:[],hiddenTopics:[]},a=(t,e)=>(e?c.topics:c.hiddenTopics).push(t),l=null!==(o=null===(r=t.page)||void 0===r?void 0:r.parentsVisibility)&&void 0!==o?o:[];return i(t).forEach(((t,e)=>{a(t,l[e])})),a(t.tocId,null===(s=t.page)||void 0===s?void 0:s.visible),(null===(u=t.page)||void 0===u?void 0:u.onItsOwn)||c.topics.push(...this.tocIds(t.children)),c}))}indexPages(t){const e={};for(let i of t)for(let t of[...i.topics,...i.hiddenTopics])e[t]||(e[t]=i);return e}}class Je{constructor(t,e,i,n){this.converter=t,this.api=e,this.baseUrl=i,this.mapId=n,this.topics={},this.topicContents={},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 Je(new ze,new window.fluidtopics.FluidTopicsApi(t,e,!0),t,i)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={}}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.getTableOfContent(this.mapId).then((t=>this.converter.convertNodes(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getTocNode(t){return(await this.getEnrichedToc()).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){var n;t=t||"root";let r=this.enrichedToc,o=null===(n=null==r?void 0:r.nodeByTocId[t])||void 0===n?void 0:n.prettyUrl,s=o||`r/${this.mapId}/${t}`,u=new URL(s,this.baseUrl),c=null==r?void 0:r.pageByTocId[t];return e&&c&&c.number!==e&&u.searchParams.set("page",`${e}`),o&&(null==r?void 0:r.duplicatedPrettyUrls.has(o))&&u.searchParams.set("tocId",t),i&&u.searchParams.set("section",i),u.href}async loadIfNeeded(t,e,i){for(void 0===t()&&(e(!0),e(await i().catch((t=>(console.error(t),!1)))));!0===t();)await s(10);const n=t();if(!1===n)throw new Error("Could not load data");return n}}class Ve{constructor(t,i){this.store=t,this.slice=i,this.reloadDebouncer=new e(10)}static build(t){const e=(t=>_e({name:"ft-reader-"+t,initialState:{baseUrl:"",apiIntegrationIdentifier:"ft-reader",visibleTopics:[]},reducers:He}))(t.trim()||"context");return new Ve(function(t,e,i){window.ftReduxStores||(window.ftReduxStores={});const n=e||t.name;return window.ftReduxStores[n]||(window.ftReduxStores[n]=ke({reducer:t.reducer})),window.ftReduxStores[n]}(e),e)}setBaseUrl(t){this.setRequiredStateField("baseUrl","setBaseUrl",t)}setApiIntegrationIdentifier(t){this.setRequiredStateField("apiIntegrationIdentifier","setApiIntegrationIdentifier",t)}setMapId(t){this.setRequiredStateField("mapId","setMapId",t)}setVisibleTopics(t){this.dispatch(this.slice.actions.setVisibleTopics(t))}async navigateToTopic(t,e,i){for(;null===this.service;)await s(5);let n=null!=i?await this.service.getPage(i):await this.service.getPageByTocId(t);console.log(i,n),this.dispatch(this.slice.actions.setCurrentPage(n),this.slice.actions.setScrollTarget({tocId:t,section:e}))}async navigateToPage(t){for(;null===this.service;)await s(5);let e=await this.service.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(e))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,e,i){this.store.getState()[t]!==i&&(this.dispatch(this.slice.actions[e](i)),this.clearAll(),this.reload())}clearAll(){this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setCurrentPage(void 0))}reload(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?this.service=Je.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId):this.service=void 0,this.reloadDebouncer.run((async()=>{this.reloadMap(),this.reloadToc()}))}async reloadMap(){var t;const e=await(null===(t=this.service)||void 0===t?void 0:t.getMap());this.dispatch(this.slice.actions.setMap(e))}async reloadToc(){var t;const e=await(null===(t=this.service)||void 0===t?void 0:t.getToc());this.dispatch(this.slice.actions.setToc(e))}dispatch(...t){for(let e of t)this.store.dispatch(e)}}var Ze,qe=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class Xe extends CustomEvent{constructor(t){super("ft-reader-map-loaded",{detail:t})}}class Ge extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{map:t,visibleTopics:e}})}}class Ye extends We{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.visibleTopics=[]}render(){return B`
69
+ `;var Dt,Kt,Ht="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),zt="undefined"!=typeof Map,Jt="undefined"!=typeof Set,Vt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,Zt=Ht?Symbol.for("immer-nothing"):((Dt={})["immer-nothing"]=!0,Dt),qt=Ht?Symbol.for("immer-draftable"):"__$immer_draftable",Xt=Ht?Symbol.for("immer-state"):"__$immer_state",Gt=""+Object.prototype.constructor,Yt="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,Qt=Object.getOwnPropertyDescriptors||function(t){var e={};return Yt(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},te={},ee={get:function(t,e){if(e===Xt)return t;var i=mt(t);if(!vt(i,e))return function(t,e,i){var n,r=kt(e,i);return r?"value"in r?r.value:null===(n=r.get)||void 0===n?void 0:n.call(t.k):void 0}(t,i,e);var n=i[e];return t.I||!ft(n)?n:n===Ft(t.t,e)?(Lt(t),t.o[e]=_t(t.A.h,n,t)):n},has:function(t,e){return e in mt(t)},ownKeys:function(t){return Reflect.ownKeys(mt(t))},set:function(t,e,i){var n=kt(mt(t),e);if(null==n?void 0:n.set)return n.set.call(t.k,i),!0;if(!t.P){var r=Ft(mt(t),e),o=null==r?void 0:r[Xt];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(bt(i,r)&&(void 0!==i||vt(t.t,e)))return!0;Lt(t),Pt(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!==Ft(t.t,e)||e in t.t?(t.D[e]=!1,Lt(t),Pt(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=mt(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty:function(){ct(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ct(12)}},ie={};ht(ee,(function(t,e){ie[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),ie.deleteProperty=function(t,e){return ie.set.call(this,t,e,void 0)},ie.set=function(t,e,i){return ee.set.call(this,t[0],e,i,t[0])};var ne=function(){function t(t){var e=this;this.g=Vt,this.F=!0,this.produce=function(t,i,n){if("function"==typeof t&&"function"!=typeof i){var r=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=r);for(var n=arguments.length,s=Array(n>1?n-1:0),u=1;u<n;u++)s[u-1]=arguments[u];return o.produce(t,(function(t){var n;return(n=i).call.apply(n,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&ct(6),void 0!==n&&"function"!=typeof n&&ct(7),ft(t)){var u=Mt(e),a=_t(e,t,void 0),c=!0;try{s=i(a),c=!1}finally{c?St(u):Ct(u)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return Rt(u,n),Tt(t,u)}),(function(t){throw St(u),t})):(Rt(u,n),Tt(s,u))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===Zt&&(s=void 0),e.F&&xt(s,!0),n){var l=[],f=[];jt("Patches").M(t,s,l,f),n(l,f)}return s}ct(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(r))}))};var n,r,o=e.produce(t,i,(function(t,e){n=t,r=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,n,r]})):[o,n,r]},"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){ft(t)||ct(8),lt(t)&&(t=Bt(t));var e=Mt(this),i=_t(this,t,void 0);return i[Xt].C=!0,Ct(e),i},e.finishDraft=function(t,e){var i=(t&&t[Xt]).A;return Rt(i,e),Tt(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!Vt&&ct(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));var r=jt("Patches").$;return lt(t)?r(t,e):this.produce(t,(function(t){return r(t,e)}))},t}(),re=new ne,oe=re.produce;re.produceWithPatches.bind(re),re.setAutoFreeze.bind(re),re.setUseProxies.bind(re),re.applyPatches.bind(re),re.createDraft.bind(re),re.finishDraft.bind(re);var se=oe;function ue(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function ae(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function ce(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ae(Object(i),!0).forEach((function(e){ue(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ae(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function le(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 fe="function"==typeof Symbol&&Symbol.observable||"@@observable",he=function(){return Math.random().toString(36).substring(7).split("").join(".")},de={INIT:"@@redux/INIT"+he(),REPLACE:"@@redux/REPLACE"+he(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+he()}};function ve(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 pe(t,e,i){var n;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(le(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(le(1));return i(pe)(t,e)}if("function"!=typeof t)throw new Error(le(2));var r=t,o=e,s=[],u=s,a=!1;function c(){u===s&&(u=s.slice())}function l(){if(a)throw new Error(le(3));return o}function f(t){if("function"!=typeof t)throw new Error(le(4));if(a)throw new Error(le(5));var e=!0;return c(),u.push(t),function(){if(e){if(a)throw new Error(le(6));e=!1,c();var i=u.indexOf(t);u.splice(i,1),s=null}}}function h(t){if(!ve(t))throw new Error(le(7));if(void 0===t.type)throw new Error(le(8));if(a)throw new Error(le(9));try{a=!0,o=r(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(le(10));r=t,h({type:de.REPLACE})}function v(){var t,e=f;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(le(11));function i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[fe]=function(){return this},t}return h({type:de.INIT}),(n={dispatch:h,subscribe:f,getState:l,replaceReducer:d})[fe]=v,n}function be(t){for(var e=Object.keys(t),i={},n=0;n<e.length;n++){var r=e[n];"function"==typeof t[r]&&(i[r]=t[r])}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:de.INIT}))throw new Error(le(12));if(void 0===i(void 0,{type:de.PROBE_UNKNOWN_ACTION()}))throw new Error(le(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var n=!1,r={},u=0;u<s.length;u++){var a=s[u],c=i[a],l=t[a],f=c(l,e);if(void 0===f)throw e&&e.type,new Error(le(14));r[a]=f,n=n||f!==l}return(n=n||s.length!==Object.keys(t).length)?r:t}}function we(){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 ye(){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),n=function(){throw new Error(le(15))},r={getState:i.getState,dispatch:function(){return n.apply(void 0,arguments)}},o=e.map((function(t){return t(r)}));return n=we.apply(void 0,o)(i.dispatch),ce(ce({},i),{},{dispatch:n})}}}function me(t){return function(e){var i=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(i,n,t):e(r)}}}}var ge=me();ge.withExtraArgument=me;var xe,Oe=ge,Ee=(xe=function(t,e){return xe=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])},xe(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}xe(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),je=function(t,e){for(var i=0,n=e.length,r=t.length;i<n;i++,r++)t[r]=e[i];return t},Ne=Object.defineProperty,Re=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,Me=function(t,e,i){return e in t?Ne(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},Ae=function(t,e){for(var i in e||(e={}))Se.call(e,i)&&Me(t,i,e[i]);if(Re)for(var n=0,r=Re(e);n<r.length;n++){i=r[n];Ce.call(e,i)&&Me(t,i,e[i])}return t},Te="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?we:we.apply(null,arguments)};var Ue=function(t){function e(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var r=t.apply(this,i)||this;return Object.setPrototypeOf(r,e.prototype),r}return Ee(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,je([void 0],t[0].concat(this)))):new(e.bind.apply(e,je([void 0],t.concat(this))))},e}(Array);function $e(t){return ft(t)?se(t,(function(){})):t}function Ie(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var n=new Ue;i&&(!function(t){return"boolean"==typeof t}(i)?n.push(Oe.withExtraArgument(i.extraArgument)):n.push(Oe));return n}(t)}}function Fe(t){var e,i=Ie(),n=t||{},r=n.reducer,o=void 0===r?void 0:r,s=n.middleware,u=void 0===s?i():s,a=n.devTools,c=void 0===a||a,l=n.preloadedState,f=void 0===l?void 0:l,h=n.enhancers,d=void 0===h?void 0:h;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=be(o)}var v=u;"function"==typeof v&&(v=v(i));var p=ye.apply(void 0,v),b=we;c&&(b=Te(Ae({trace:!1},"object"==typeof c&&c)));var w=[p];return Array.isArray(d)?w=je([p],d):"function"==typeof d&&(w=d(w)),pe(e,f,b.apply(void 0,w))}function ke(t,e){function i(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(e){var r=e.apply(void 0,i);if(!r)throw new Error("prepareAction did not return an object");return Ae(Ae({type:t,payload:r.payload},"meta"in r&&{meta:r.meta}),"error"in r&&{error:r.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 Pe(t){var e,i={},n=[],r={addCase:function(t,e){var n="string"==typeof t?t:t.type;if(n in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[n]=e,r},addMatcher:function(t,e){return n.push({matcher:t,reducer:e}),r},addDefaultCase:function(t){return e=t,r}};return t(r),[i,n,e]}function Le(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,n="function"==typeof t.initialState?t.initialState:$e(t.initialState),r=t.reducers||{},o=Object.keys(r),s={},u={},a={};function c(){var e="function"==typeof t.extraReducers?Pe(t.extraReducers):[t.extraReducers],i=e[0],r=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,a=e[2],c=void 0===a?void 0:a,l=Ae(Ae({},r),u);return function(t,e,i,n){void 0===i&&(i=[]);var r,o="function"==typeof e?Pe(e):[e,i,n],s=o[0],u=o[1],a=o[2];if(function(t){return"function"==typeof t}(t))r=function(){return $e(t())};else{var c=$e(t);r=function(){return c}}function l(t,e){void 0===t&&(t=r());var i=je([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 n;if(lt(t))return void 0===(n=i(t,e))?t:n;if(ft(t))return se(t,(function(t){return i(t,e)}));if(void 0===(n=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return t}),t)}return l.getInitialState=r,l}(n,l,s,c)}return o.forEach((function(t){var i,n,o=r[t],c=e+"/"+t;"reducer"in o?(i=o.reducer,n=o.prepare):i=o,s[t]=i,u[c]=i,a[t]=n?ke(c,n):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 _e="listenerMiddleware";ke(_e+"/add"),ke(_e+"/removeAll"),ke(_e+"/remove"),function(){function t(t,e){var i=r[t];return i?i.enumerable=e:r[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[Xt];return ee.get(e,t)},set:function(e){var i=this[Xt];ee.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var r=t[e][Xt];if(!r.P)switch(r.i){case 5:n(r)&&Pt(r);break;case 4:i(r)&&Pt(r)}}}function i(t){for(var e=t.t,i=t.k,n=Yt(i),r=n.length-1;r>=0;r--){var o=n[r];if(o!==Xt){var s=e[o];if(void 0===s&&!vt(e,o))return!0;var u=i[o],a=u&&u[Xt];if(a?a.t!==s:!bt(u,s))return!0}}var c=!!e[Xt];return n.length!==Yt(e).length+(c?0:1)}function n(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 n=0;n<e.length;n++)if(!e.hasOwnProperty(n))return!0;return!1}var r={};!function(t,e){te[t]||(te[t]=e)}("ES5",{J:function(e,i){var n=Array.isArray(e),r=function(e,i){if(e){for(var n=Array(i.length),r=0;r<i.length;r++)Object.defineProperty(n,""+r,t(r,!0));return n}var o=Qt(i);delete o[Xt];for(var s=Yt(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)}(n,e),o={i:n?5:4,A:i?i.A:Nt(),P:!1,I:!1,D:{},l:i,t:e,k:r,o:null,O:!1,C:!1};return Object.defineProperty(r,Xt,{value:o,writable:!0}),r},S:function(t,i,r){r?lt(i)&&i[Xt].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[Xt];if(i){var r=i.t,o=i.k,s=i.D,u=i.i;if(4===u)ht(o,(function(e){e!==Xt&&(void 0!==r[e]||vt(r,e)?s[e]||t(o[e]):(s[e]=!0,Pt(i)))})),ht(r,(function(t){void 0!==o[t]||vt(o,t)||(s[t]=!1,Pt(i))}));else if(5===u){if(n(i)&&(Pt(i),s.length=!0),o.length<r.length)for(var a=o.length;a<r.length;a++)s[a]=!1;else for(var c=r.length;c<o.length;c++)s[c]=!0;for(var l=Math.min(o.length,r.length),f=0;f<l;f++)o.hasOwnProperty(f)||(s[f]=!0),void 0===s[f]&&t(o[f])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?i(t):n(t)}})}();const Be=(t,e)=>(i,n)=>{i.constructor.createProperty(n,{attribute:!1,hasChanged:null!=e?e:(t,e)=>!o(t,e)});const r=i;r.reduxProperties=r.reduxProperties||new Map,r.reduxProperties.set(n,null!=t?t:t=>t[n])};class We extends at{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 De,Ke;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(Ke=null===(De=window.safari)||void 0===De?void 0:De.pushNotification)||void 0===Ke||Ke.toString());const He={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},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}};class ze{convertNodes(t){var e,i,n,r;const o={},s=new Set,u=new Set,a=[],c=(t,e,i)=>t.map((t=>{var n;t.page&&a.push(t.tocId);let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const l={...t,prettyUrl:r,depth:e,parentTocId:i,children:c(t.children,e+1,t.tocId)};return r&&(s.has(r)&&u.add(r),s.add(r)),o[t.tocId]=l,l})),l=c(null!=t?t:[],1),f=this.buildPages(a,o);let h={};return 0===f.length?f.push({number:1,title:null!==(i=null===(e=l[0])||void 0===e?void 0:e.title)&&void 0!==i?i:"",rootTocId:null!==(r=null===(n=l[0])||void 0===n?void 0:n.tocId)&&void 0!==r?r:"root",toc:[],topics:this.tocIds(l),hiddenTopics:[]}):h=this.indexPages(f),{toc:l,nodeByTocId:o,duplicatedPrettyUrls:u,pages:f,pageByTocId:h}}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildPages(t,e){return t.map((t=>e[t])).map(((t,i)=>{var n,r,o,s,u;const a={number:i+1,title:t.title,rootTocId:t.tocId,toc:(null===(n=t.page)||void 0===n?void 0:n.onItsOwn)?[]:t.children,topics:[],hiddenTopics:[]},c=(t,e)=>(e?a.topics:a.hiddenTopics).push(t),l=null!==(o=null===(r=t.page)||void 0===r?void 0:r.parentsVisibility)&&void 0!==o?o:[];return this.buildBreadcrumb(t,e).forEach(((t,e)=>{c(t,l[e])})),c(t.tocId,null===(s=t.page)||void 0===s?void 0:s.visible),(null===(u=t.page)||void 0===u?void 0:u.onItsOwn)||a.topics.push(...this.tocIds(t.children)),a}))}buildBreadcrumb(t,e){const i=[];for(;null==t?void 0:t.parentTocId;)i.unshift(t.parentTocId),t=e[t.parentTocId];return i}indexPages(t){const e={};for(let i of t)for(let t of[...i.topics,...i.hiddenTopics])e[t]||(e[t]=i);return e}}class Je{constructor(t,e,i,n){this.converter=t,this.api=e,this.baseUrl=i,this.mapId=n,this.topics={},this.topicContents={},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 Je(new ze,new window.fluidtopics.FluidTopicsApi(t,e,!0),t,i)}clear(){this.map=void 0,this.enrichedToc=void 0,this.topics={},this.topicContents={}}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.getTableOfContent(this.mapId).then((t=>this.converter.convertNodes(t)))))}async getToc(){return(await this.getEnrichedToc()).toc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeOrThrow(t){if("boolean"==typeof this.enrichedToc)throw new Error((this.enrichedToc," still loading"));return this.enrichedToc.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 n=this.getNavigationData(t,e,i),r="r/"+(n.prettyUrl?n.prettyUrl:`${n.mapId}/${n.tocId}`),o=new URL(r,this.baseUrl);return null!=n.page&&o.searchParams.set("page",`${n.page}`),n.prettyUrlDuplicated&&o.searchParams.set("tocId",n.tocId),null!=n.section&&o.searchParams.set("section",n.section),o.href}getNavigationData(t,e,i){var n,r;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!==(n=null==u?void 0:u.title)&&void 0!==n?n:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=a?a.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(r=null==o?void 0:o.duplicatedPrettyUrls.has(null!=a?a:""))&&void 0!==r&&r,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=>(console.error(t),!1)))));!0===t();)await s(10);const n=t();if(!1===n)throw new Error("Could not load data");return n}}class Ve{constructor(t,i){this.store=t,this.slice=i,this.reloadDebouncer=new e(10)}static build(t){const e=(t=>Le({name:"ft-reader-"+t,initialState:{baseUrl:"",apiIntegrationIdentifier:"ft-reader",visibleTopics:[],renderBeforeFirst:2,renderAfterLast:3},reducers:He}))(t.trim()||"context");return new Ve(function(t,e,i){window.ftReduxStores||(window.ftReduxStores={});const n=e||t.name;return window.ftReduxStores[n]||(window.ftReduxStores[n]=Fe({reducer:t.reducer})),window.ftReduxStores[n]}(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))}async navigateToTopic(t,e,i){for(;null==this.service;)await s(5);let n=null!=i?await this.service.getPage(i):await this.service.getPageByTocId(t);this.dispatch(this.slice.actions.setCurrentPage(n),this.slice.actions.setScrollTarget({tocId:t,section:e}))}async navigateToPage(t){for(;null==this.service;)await s(5);let e=await this.service.getPage(t);this.dispatch(this.slice.actions.setCurrentPage(e))}scrollDone(){this.dispatch(this.slice.actions.setScrollTarget({}))}setRequiredStateField(t,e,i){this.store.getState()[t]!==i&&(this.dispatch(this.slice.actions[e](i)),this.clearAll(),this.reload())}clearAll(){this.dispatch(this.slice.actions.setMap(void 0),this.slice.actions.setToc(void 0),this.slice.actions.setCurrentPage(void 0))}reload(){const t=this.store.getState();t.baseUrl&&t.apiIntegrationIdentifier&&t.mapId?this.service=Je.build(t.baseUrl,t.apiIntegrationIdentifier,t.mapId):this.service=void 0,this.reloadDebouncer.run((async()=>{this.reloadMap(),this.reloadToc()}))}async reloadMap(){var t;const e=await(null===(t=this.service)||void 0===t?void 0:t.getMap());this.dispatch(this.slice.actions.setMap(e))}async reloadToc(){var t;const e=await(null===(t=this.service)||void 0===t?void 0:t.getToc());this.dispatch(this.slice.actions.setToc(e))}dispatch(...t){for(let e of t)this.store.dispatch(e)}}var Ze=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class qe extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class Xe extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class Ge extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}const Ye=t=>e=>+(null!=e?e:"NaN")>0?+e:t;class Qe extends We{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-reader",this.renderBeforeFirst=2,this.renderAfterLast=3,this.visibleTopics=[],this.navigationDebouncer=new e(5)}render(){return B`
70
70
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
71
- `}get stateManager(){return null==this._stateManager&&(this._stateManager=Ve.build(this.id||""+Math.round(1e4*Math.random())),this.store=this.stateManager.store),this._stateManager}updated(t){super.updated(t),t.has("baseUrl")&&this.baseUrl&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.mapId&&(this.stateManager.setMapId(this.mapId),this.stateManager.navigateToTopic("root")),t.has("page")&&!this.tocId&&null!=this.page&&this.stateManager.navigateToPage(this.page),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId&&this.stateManager.navigateToTopic(this.tocId,this.section,this.page)}contentAvailableCallback(t){super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new Xe(this.map)),t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>this.stateManager.service.getTocNode(t)))).then((t=>{let e=t.map((t=>({tocId:t.tocId,title:t.title})));this.dispatchEvent(new Ge(this.map,e))}))}registerComponent(t){t.stopPropagation();t.composedPath()[0].setReaderStateManager(this.stateManager)}}Ye.styles=h`
72
- `,qe([n()],Ye.prototype,"baseUrl",void 0),qe([n()],Ye.prototype,"apiIntegrationIdentifier",void 0),qe([n()],Ye.prototype,"mapId",void 0),qe([n()],Ye.prototype,"tocId",void 0),qe([n()],Ye.prototype,"section",void 0),qe([n({type:Number,converter:{fromAttribute:t=>t?+t:void 0}})],Ye.prototype,"page",void 0),qe([Be()],Ye.prototype,"map",void 0),qe([Be()],Ye.prototype,"toc",void 0),qe([Be()],Ye.prototype,"visibleTopics",void 0),(Ze="ft-reader-context",t=>{window.customElements.get(Ze)||window.customElements.define(Ze,t)})(Ye),t.FtReaderContext=Ye,t.MapLoadedEvent=Xe,t.VisibleTopicsChangeEvent=Ge,Object.defineProperty(t,"U",{value:!0})}({});
71
+ `}get stateManager(){return null==this._stateManager&&(this._stateManager=Ve.build(this.id||(""+Math.round(999e3*Math.random())).padStart(6,"0")),this.store=this.stateManager.store),this._stateManager}updated(t){super.updated(t),t.has("baseUrl")&&this.baseUrl&&this.stateManager.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&this.stateManager.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("mapId")&&this.mapId&&(this.stateManager.setMapId(this.mapId),this.stateManager.navigateToTopic("root")),t.has("page")&&!this.tocId&&null!=this.page&&this.stateManager.navigateToPage(this.page),(t.has("tocId")||t.has("section")||t.has("page"))&&this.tocId&&this.stateManager.navigateToTopic(this.tocId,this.section,this.page),t.has("renderBeforeFirst")&&this.stateManager.setRenderBeforeFirst(this.renderBeforeFirst),t.has("renderAfterLast")&&this.stateManager.setRenderAfterLast(this.renderAfterLast)}contentAvailableCallback(t){var e;if(super.contentAvailableCallback(t),(t.has("map")||t.has("toc"))&&this.map&&this.toc&&this.dispatchEvent(new qe(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((()=>this.stateManager.service.getAccurateNavigationData(e.tocId,this.currentPageNumber,e.section).then((t=>this.dispatchEvent(new Ge(t))))))}t.has("visibleTopics")&&Promise.all(this.visibleTopics.map((t=>this.stateManager.service.getAccurateNavigationData(t,this.currentPageNumber)))).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})));this.dispatchEvent(new Xe(this.map,e))}))}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();t.composedPath()[0].setReaderStateManager(this.stateManager)}}var ti;Qe.styles=h`
72
+ `,Ze([n()],Qe.prototype,"baseUrl",void 0),Ze([n()],Qe.prototype,"apiIntegrationIdentifier",void 0),Ze([n()],Qe.prototype,"mapId",void 0),Ze([n()],Qe.prototype,"tocId",void 0),Ze([n()],Qe.prototype,"section",void 0),Ze([n({type:Number,converter:{fromAttribute:Ye()}})],Qe.prototype,"page",void 0),Ze([n({type:Number,converter:{fromAttribute:Ye(2)}})],Qe.prototype,"renderBeforeFirst",void 0),Ze([n({type:Number,converter:{fromAttribute:Ye(3)}})],Qe.prototype,"renderAfterLast",void 0),Ze([Be()],Qe.prototype,"map",void 0),Ze([Be()],Qe.prototype,"toc",void 0),Ze([Be()],Qe.prototype,"visibleTopics",void 0),Ze([Be((t=>{var e;return null===(e=t.currentPage)||void 0===e?void 0:e.number}))],Qe.prototype,"currentPageNumber",void 0),Ze([Be()],Qe.prototype,"scrollTarget",void 0),(ti="ft-reader-context",t=>{window.customElements.get(ti)||window.customElements.define(ti,t)})(Qe),t.FtReaderContext=Qe,t.MapLoadedEvent=qe,t.NavigationDoneEvent=Ge,t.VisibleTopicsChangeEvent=Xe,Object.defineProperty(t,"U",{value:!0})}({});
@@ -11,6 +11,8 @@ export declare class FtReaderStateManager {
11
11
  setBaseUrl(baseUrl: string): void;
12
12
  setApiIntegrationIdentifier(apiIntegrationIdentifier: string): void;
13
13
  setMapId(mapId: string): void;
14
+ setRenderBeforeFirst(value: number): void;
15
+ setRenderAfterLast(value: number): void;
14
16
  setVisibleTopics(tocIds: string[]): void;
15
17
  navigateToTopic(tocId: string, section?: string, pageNumber?: number): Promise<void>;
16
18
  navigateToPage(pageNumber: number): Promise<void>;
@@ -20,19 +20,24 @@ export class FtReaderStateManager {
20
20
  setMapId(mapId) {
21
21
  this.setRequiredStateField("mapId", "setMapId", mapId);
22
22
  }
23
+ setRenderBeforeFirst(value) {
24
+ this.dispatch(this.slice.actions.setRenderBeforeFirst(value));
25
+ }
26
+ setRenderAfterLast(value) {
27
+ this.dispatch(this.slice.actions.setRenderAfterLast(value));
28
+ }
23
29
  setVisibleTopics(tocIds) {
24
30
  this.dispatch(this.slice.actions.setVisibleTopics(tocIds));
25
31
  }
26
32
  async navigateToTopic(tocId, section, pageNumber) {
27
- while (this.service === null) {
33
+ while (this.service == null) {
28
34
  await delay(5);
29
35
  }
30
36
  let page = pageNumber != null ? await this.service.getPage(pageNumber) : await this.service.getPageByTocId(tocId);
31
- console.log(pageNumber, page);
32
37
  this.dispatch(this.slice.actions.setCurrentPage(page), this.slice.actions.setScrollTarget({ tocId, section }));
33
38
  }
34
39
  async navigateToPage(pageNumber) {
35
- while (this.service === null) {
40
+ while (this.service == null) {
36
41
  await delay(5);
37
42
  }
38
43
  let page = await this.service.getPage(pageNumber);
@@ -31,5 +31,16 @@ export interface FtReaderState {
31
31
  currentPage?: FtReaderPage;
32
32
  scrollTarget?: FtReaderScrollTarget;
33
33
  visibleTopics: string[];
34
+ renderBeforeFirst: number;
35
+ renderAfterLast: number;
36
+ }
37
+ export interface FtReaderNavigationData {
38
+ mapId: string;
39
+ tocId: string;
40
+ topicTitle: string;
41
+ section?: string;
42
+ page?: number;
43
+ prettyUrl?: string;
44
+ prettyUrlDuplicated: boolean;
34
45
  }
35
46
  //# sourceMappingURL=model.d.ts.map
@@ -10,6 +10,8 @@ declare const readerStateReducers: {
10
10
  setCurrentPage: (state: FtReaderState, action: PayloadAction<FtReaderState["currentPage"]>) => void;
11
11
  setScrollTarget: (state: FtReaderState, action: PayloadAction<FtReaderState["scrollTarget"]>) => void;
12
12
  setVisibleTopics: (state: FtReaderState, action: PayloadAction<FtReaderState["visibleTopics"]>) => void;
13
+ setRenderBeforeFirst: (state: FtReaderState, action: PayloadAction<FtReaderState["renderBeforeFirst"]>) => void;
14
+ setRenderAfterLast: (state: FtReaderState, action: PayloadAction<FtReaderState["renderAfterLast"]>) => void;
13
15
  };
14
16
  export declare type FtReaderStateReducers = typeof readerStateReducers;
15
17
  export declare const createReaderSlice: (id: string) => import("@reduxjs/toolkit").Slice<FtReaderState, {
@@ -22,6 +24,8 @@ export declare const createReaderSlice: (id: string) => import("@reduxjs/toolkit
22
24
  setCurrentPage: (state: FtReaderState, action: PayloadAction<FtReaderState["currentPage"]>) => void;
23
25
  setScrollTarget: (state: FtReaderState, action: PayloadAction<FtReaderState["scrollTarget"]>) => void;
24
26
  setVisibleTopics: (state: FtReaderState, action: PayloadAction<FtReaderState["visibleTopics"]>) => void;
27
+ setRenderBeforeFirst: (state: FtReaderState, action: PayloadAction<FtReaderState["renderBeforeFirst"]>) => void;
28
+ setRenderAfterLast: (state: FtReaderState, action: PayloadAction<FtReaderState["renderAfterLast"]>) => void;
25
29
  }, string>;
26
30
  export {};
27
31
  //# sourceMappingURL=redux.d.ts.map
@@ -27,13 +27,21 @@ const readerStateReducers = {
27
27
  setVisibleTopics: (state, action) => {
28
28
  state.visibleTopics = action.payload;
29
29
  },
30
+ setRenderBeforeFirst: (state, action) => {
31
+ state.renderBeforeFirst = action.payload;
32
+ },
33
+ setRenderAfterLast: (state, action) => {
34
+ state.renderAfterLast = action.payload;
35
+ },
30
36
  };
31
37
  export const createReaderSlice = (id) => createSlice({
32
38
  name: "ft-reader-" + id,
33
39
  initialState: {
34
40
  baseUrl: "",
35
41
  apiIntegrationIdentifier: "ft-reader",
36
- visibleTopics: []
42
+ visibleTopics: [],
43
+ renderBeforeFirst: 2,
44
+ renderAfterLast: 3
37
45
  },
38
46
  reducers: readerStateReducers
39
47
  });
@@ -11,6 +11,7 @@ export declare class FtReaderConverter {
11
11
  convertNodes(nodes?: Array<FtTocNode>): EnrichedToc;
12
12
  private tocIds;
13
13
  private buildPages;
14
+ private buildBreadcrumb;
14
15
  private indexPages;
15
16
  }
16
17
  //# sourceMappingURL=FtReaderConverter.d.ts.map
@@ -49,7 +49,6 @@ export class FtReaderConverter {
49
49
  return nodes.flatMap(node => [node.tocId, ...this.tocIds(node.children)]);
50
50
  }
51
51
  buildPages(pagesToBuild, nodeByTocId) {
52
- const buildBreadcrumb = (n) => n.parentTocId ? [...buildBreadcrumb(nodeByTocId[n.parentTocId]), n.parentTocId] : [];
53
52
  return pagesToBuild.map(tocId => nodeByTocId[tocId])
54
53
  .map((node, index) => {
55
54
  var _a, _b, _c, _d, _e;
@@ -63,7 +62,7 @@ export class FtReaderConverter {
63
62
  };
64
63
  const add = (tocId, visible) => (visible ? page.topics : page.hiddenTopics).push(tocId);
65
64
  const parentsVisibility = (_c = (_b = node.page) === null || _b === void 0 ? void 0 : _b.parentsVisibility) !== null && _c !== void 0 ? _c : [];
66
- buildBreadcrumb(node).forEach((tocId, index) => {
65
+ this.buildBreadcrumb(node, nodeByTocId).forEach((tocId, index) => {
67
66
  add(tocId, parentsVisibility[index]);
68
67
  });
69
68
  add(node.tocId, (_d = node.page) === null || _d === void 0 ? void 0 : _d.visible);
@@ -73,6 +72,14 @@ export class FtReaderConverter {
73
72
  return page;
74
73
  });
75
74
  }
75
+ buildBreadcrumb(node, nodeByTocId) {
76
+ const breadcrumb = [];
77
+ while (node === null || node === void 0 ? void 0 : node.parentTocId) {
78
+ breadcrumb.unshift(node.parentTocId);
79
+ node = nodeByTocId[node.parentTocId];
80
+ }
81
+ return breadcrumb;
82
+ }
76
83
  indexPages(pages) {
77
84
  const pageByTocId = {};
78
85
  for (let page of pages) {
@@ -1,5 +1,5 @@
1
1
  import type { FluidTopicsApi, FtMap, FtTopic } from "@fluid-topics/public-api";
2
- import { FtReaderPage, FtReaderTocNode } from "../model";
2
+ import { FtReaderNavigationData, FtReaderPage, FtReaderTocNode } from "../model";
3
3
  import { FtReaderConverter } from "./FtReaderConverter";
4
4
  declare global {
5
5
  interface Window {
@@ -22,6 +22,7 @@ export declare class FtReaderService {
22
22
  private getEnrichedToc;
23
23
  getToc(): Promise<Array<FtReaderTocNode>>;
24
24
  getTocNode(tocId: string): Promise<FtReaderTocNode>;
25
+ getTocNodeOrThrow(tocId: string): FtReaderTocNode;
25
26
  getPage(number: number): Promise<FtReaderPage>;
26
27
  getPageByTocId(tocId: string): Promise<FtReaderPage>;
27
28
  private topics;
@@ -29,6 +30,8 @@ export declare class FtReaderService {
29
30
  private topicContents;
30
31
  getTopicContent(contentId: string): Promise<string>;
31
32
  getLink(tocId?: string, pageNumber?: number, section?: string): string;
33
+ getNavigationData(tocId?: string, pageNumber?: number, section?: string): FtReaderNavigationData;
34
+ getAccurateNavigationData(tocId?: string, pageNumber?: number, section?: string): Promise<FtReaderNavigationData>;
32
35
  private loadIfNeeded;
33
36
  }
34
37
  //# sourceMappingURL=FtReaderService.d.ts.map
@@ -40,6 +40,12 @@ export class FtReaderService {
40
40
  const enrichedToc = await this.getEnrichedToc();
41
41
  return enrichedToc.nodeByTocId[tocId];
42
42
  }
43
+ getTocNodeOrThrow(tocId) {
44
+ if (typeof this.enrichedToc === "boolean") {
45
+ throw new Error("Toc node" + this.enrichedToc ? " still loading" : " loading failed");
46
+ }
47
+ return this.enrichedToc.nodeByTocId[tocId];
48
+ }
43
49
  async getPage(number) {
44
50
  const enrichedToc = await this.getEnrichedToc();
45
51
  return enrichedToc.pages[number - 1] || enrichedToc.pages[0];
@@ -55,24 +61,41 @@ export class FtReaderService {
55
61
  return this.loadIfNeeded(() => this.topicContents[contentId], v => this.topicContents[contentId] = v, () => this.api.getTopicHTMLContent(this.mapId, contentId, "DESIGNED_READER"));
56
62
  }
57
63
  getLink(tocId, pageNumber, section) {
58
- var _a;
59
- tocId = tocId || "root";
60
- let enrichedToc = this.enrichedToc;
61
- let prettyUrl = (_a = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.nodeByTocId[tocId]) === null || _a === void 0 ? void 0 : _a.prettyUrl;
62
- let path = prettyUrl ? prettyUrl : `r/${this.mapId}/${tocId}`;
63
- let url = new URL(path, this.baseUrl);
64
- let page = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.pageByTocId[tocId];
65
- if (pageNumber && page && page.number !== pageNumber) {
66
- url.searchParams.set("page", `${pageNumber}`);
64
+ const navigationData = this.getNavigationData(tocId, pageNumber, section);
65
+ const path = "r/" + (navigationData.prettyUrl ? navigationData.prettyUrl : `${navigationData.mapId}/${navigationData.tocId}`);
66
+ const url = new URL(path, this.baseUrl);
67
+ if (navigationData.page != null) {
68
+ url.searchParams.set("page", `${navigationData.page}`);
67
69
  }
68
- if (prettyUrl && (enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.duplicatedPrettyUrls.has(prettyUrl))) {
69
- url.searchParams.set("tocId", tocId);
70
+ if (navigationData.prettyUrlDuplicated) {
71
+ url.searchParams.set("tocId", navigationData.tocId);
70
72
  }
71
- if (section) {
72
- url.searchParams.set("section", section);
73
+ if (navigationData.section != null) {
74
+ url.searchParams.set("section", navigationData.section);
73
75
  }
74
76
  return url.href;
75
77
  }
78
+ getNavigationData(tocId, pageNumber, section) {
79
+ var _a, _b;
80
+ tocId = tocId || "root";
81
+ const enrichedToc = typeof this.enrichedToc === "object" ? this.enrichedToc : undefined;
82
+ const page = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.pageByTocId[tocId];
83
+ const node = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.nodeByTocId[tocId];
84
+ const prettyUrl = node === null || node === void 0 ? void 0 : node.prettyUrl;
85
+ return {
86
+ mapId: this.mapId,
87
+ tocId,
88
+ topicTitle: (_a = node === null || node === void 0 ? void 0 : node.title) !== null && _a !== void 0 ? _a : "",
89
+ page: pageNumber && page && page.number !== pageNumber ? pageNumber : undefined,
90
+ prettyUrl: prettyUrl != null ? prettyUrl.replace(/^r\//, "") : undefined,
91
+ prettyUrlDuplicated: (_b = enrichedToc === null || enrichedToc === void 0 ? void 0 : enrichedToc.duplicatedPrettyUrls.has(prettyUrl !== null && prettyUrl !== void 0 ? prettyUrl : "")) !== null && _b !== void 0 ? _b : false,
92
+ section: section
93
+ };
94
+ }
95
+ async getAccurateNavigationData(tocId, pageNumber, section) {
96
+ await this.getEnrichedToc();
97
+ return this.getNavigationData(tocId, pageNumber, section);
98
+ }
76
99
  async loadIfNeeded(get, set, load) {
77
100
  if (get() === undefined) {
78
101
  set(true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-reader-context",
3
- "version": "0.3.8",
3
+ "version": "0.3.11",
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.8",
22
+ "@fluid-topics/ft-wc-utils": "0.3.11",
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.22"
31
31
  },
32
- "gitHead": "1f42b53be98492f7b9c614f005535bdacc0229a1"
32
+ "gitHead": "35c790329a8e7f9902aad2ea8d41386e5c0b36c9"
33
33
  }