@disy/cadenza.js 2.2.4 → 2.3.1

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +16 -5
  2. package/README.md +1 -322
  3. package/apidoc/assets/highlight.css +0 -7
  4. package/apidoc/assets/main.js +2 -2
  5. package/apidoc/assets/navigation.js +1 -1
  6. package/apidoc/assets/search.js +1 -1
  7. package/apidoc/assets/style.css +46 -15
  8. package/apidoc/classes/AbortError.html +3 -3
  9. package/apidoc/classes/CadenzaClient.html +65 -86
  10. package/apidoc/classes/CadenzaError.html +8 -6
  11. package/apidoc/functions/cadenza.html +4 -4
  12. package/apidoc/index.html +152 -9
  13. package/apidoc/interfaces/CadenzaEvent.html +6 -6
  14. package/apidoc/interfaces/ExternalLinkKey.html +6 -3
  15. package/apidoc/interfaces/Geometry.html +2 -2
  16. package/apidoc/interfaces/PageSource.html +2 -2
  17. package/apidoc/modules.html +14 -2
  18. package/apidoc/types/CadenzaChangeSelectionEvent.html +2 -0
  19. package/apidoc/types/CadenzaDrillThroughEvent.html +7 -0
  20. package/apidoc/types/CadenzaEditGeometryCancelEvent.html +2 -0
  21. package/apidoc/types/CadenzaEditGeometryOkEvent.html +2 -0
  22. package/apidoc/types/CadenzaEditGeometryUpdateEvent.html +2 -0
  23. package/apidoc/types/CadenzaErrorEvent.html +2 -2
  24. package/apidoc/types/CadenzaEventByType.html +1 -0
  25. package/apidoc/types/CadenzaEventType.html +2 -0
  26. package/apidoc/types/CadenzaObjectInfoEvent.html +2 -0
  27. package/apidoc/types/CadenzaSelectObjectsCancelEvent.html +2 -0
  28. package/apidoc/types/CadenzaSelectObjectsOkEvent.html +2 -0
  29. package/apidoc/types/DataType.html +3 -2
  30. package/apidoc/types/EmbeddingTargetId.html +9 -2
  31. package/apidoc/types/Extent.html +1 -1
  32. package/apidoc/types/FilterVariables.html +5 -2
  33. package/apidoc/types/GeometryType.html +1 -1
  34. package/apidoc/types/GlobalId.html +2 -2
  35. package/apidoc/types/OpaqueString.html +6 -0
  36. package/apidoc/types/OperationMode.html +1 -1
  37. package/apidoc/types/TablePart.html +1 -1
  38. package/apidoc/types/UiFeature.html +3 -3
  39. package/apidoc/types/WorkbookLayerPath.html +3 -0
  40. package/cadenza.d.ts +274 -50
  41. package/cadenza.js +339 -69
  42. package/package.json +6 -6
  43. package/sandbox.html +197 -31
package/CHANGELOG.md CHANGED
@@ -1,5 +1,4 @@
1
1
  # Changelog
2
-
3
2
  All notable changes to this project will be documented in this file.
4
3
 
5
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@@ -7,18 +6,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
6
 
8
7
  ## Unreleased
9
8
 
10
- ## 2.2.4 - 2024-02-28
9
+ ## 2.3.1 - 2024-02-28
11
10
  ### Fixed
12
11
  - Race condition when showing multiple embedding targets at the same time
13
12
 
14
- ## 2.2.3 - 2024-02-20
13
+ ## 2.3.0 - 2024-02-22
14
+ ### Added
15
+ - `CadenzaClient#selectObjects`
16
+ - `CadenzaChangeSelectionEvent`
17
+ - `CadenzaObjectInfoEvent`
18
+ - Documentation for the "JSON Representation of Cadenza Object Data"
19
+ - Sandbox footer with link to docs and devtools hint
20
+ - Assertion for iframe being visible when calling one of the `CadenzaClient#show*` methods.
21
+
15
22
  ### Changed
16
- - Assert iframe being visible when calling one of the `CadenzaClient#show*` methods.
23
+ - Improved the documentation and types of events.
24
+ - Improved the documentation of the `EmbeddingTargetId` and `ExternalLinkKey` types.
25
+ - Improved logging
17
26
 
18
- ## 2.2.2 - 2024-02-13
19
27
  ### Removed
20
28
  - Supposedly unused types: `WorkbookKey`, `WorksheetKey`, `WorkbookViewKey`
21
29
 
30
+ ### Fixed
31
+ - The `FilterVariables` type was missing `string[]`.
32
+
22
33
  ## 2.2.1 - 2023-12-12
23
34
  ### Fixed
24
35
  - In the sandbox, the `fileName` input was not used.
package/README.md CHANGED
@@ -1,324 +1,3 @@
1
1
  Cadenza JS is a JavaScript library to use the [disy Cadenza](https://www.disy.net/en/products/disy-cadenza/) APIs conveniently without having to deal with technical details like parameter encoding or the `postMessage()` Web API.
2
2
 
3
- * [Installation](#installation)
4
- * [Usage Examples](#usage-examples)
5
- * [The development sandbox](#the-development-sandbox)
6
-
7
- ## Installation
8
-
9
- Cadenza JS is included in the Cadenza distribution in the corresponding version.
10
-
11
- Alternatively you can install the most recent version using npm:
12
-
13
- ```bash
14
- npm install @disy/cadenza.js
15
- ```
16
-
17
- ## Usage Examples
18
-
19
- This section features usage examples for Cadenza JS. For detailed usage information, see the "API:" links.
20
-
21
- ### General Usage
22
-
23
- <small>API: [cadenza()](./functions/cadenza.html)</small>
24
-
25
- There are two ways to use Cadenza JS: As a module and globally.
26
-
27
- #### As a module
28
-
29
- Create an instance of the Cadenza client by calling `cadenza()` with the base URL of your Cadenza instance. Pass an iframe in the options if you want to show Cadenza in an iframe.
30
-
31
- ```html
32
- <iframe id="cadenza-iframe"></iframe>
33
- ```
34
-
35
- ```javascript
36
- import { cadenza } from '@disy/cadenza.js';
37
-
38
- const cadenzaClient = cadenza('{baseUrl}', {
39
- iframe: 'cadenza-iframe',
40
- });
41
- ```
42
-
43
- _Tip:_ If you develop your application in TypeScript - Cadenza JS is typed using JSDoc and also comes with a `cadenza.d.ts` type definition file.
44
-
45
- #### Globally
46
-
47
- ```html
48
- <script type="module" src="./cadenza.js">
49
- ```
50
-
51
- ```javascript
52
- const cadenzaClient = window.cadenza('{baseUrl}', ...);
53
- ```
54
-
55
- The `type="module"` has the effect that script execution is [deferred](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#defer). You might need to wait for the `DOMContentLoaded` event in order to use Cadenza JS.
56
-
57
- ```javascript
58
- window.addEventListener('DOMContentLoaded', () => {
59
- const cadenzaClient = window.cadenza(...);
60
- ...
61
- });
62
- ```
63
-
64
- If for some reason you don't like the global `cadenza` field, you can remove it like so:
65
-
66
- ```javascript
67
- const cadenza = window.cadenza.noConflict();
68
- ```
69
-
70
- ### Show an Embedding Target in an Iframe
71
-
72
- <small>API: [CadenzaClient#show](./classes/CadenzaClient.html#show)</small>
73
-
74
- Show an embedding target in an iframe and hide Cadenza's main header and footer as well as the workbook toolbar. Additionally, enable simplified operation mode, disable the designer and set the filter variable "var1" to "foo".
75
-
76
- ```javascript
77
- cadenzaClient.show('{embeddingTargetId}', {
78
- hideMainHeaderAndFooter: true,
79
- hideWorkbookToolBar: true,
80
- operationMode: 'simplified',
81
- disabledUiFeatures: ['workbook-design'],
82
- filter: {
83
- var1: 'foo'
84
- }
85
- });
86
- ```
87
-
88
- - If the embedding target cannot be resolved, a 404 page is shown to the user.
89
- - Cadenza JS does not handle user authentication: If the user is not already logged in, the normal authentication flow of Cadenza will run. By default, the login page would be shown to the user.
90
-
91
- #### Show the Generated PDF of a "JasperReports report" View Directly
92
-
93
- Views of type "JasperReports report" can be shown in an iframe like any other view. Additionally, there is an option to show only the generated PDF without any Cadenza footers or headers. This is done by setting the "dataType" option to "pdf".
94
-
95
- ```javascript
96
- cadenzaClient.show('{embeddingTargetId}', {
97
- dataType: 'pdf'
98
- });
99
- ```
100
-
101
- ### Abort (Iframe) Loading
102
-
103
- Cadenza JS uses the [AbortController Web API](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) for aborting requests. This is supported by most of the public methods.
104
-
105
- ```javascript
106
- const abortController = new AbortController();
107
- try {
108
- await cadenzaClient.show('{embeddingTargetId}', { signal: abortController.signal });
109
- } catch (error) {
110
- if (error.name === 'AbortError') {
111
- console.log('Iframe loading was aborted');
112
- }
113
- }
114
-
115
- cancelButton.onclick = () => abortController.abort();
116
- ```
117
-
118
- _Tip:_ You can use the same `AbortController` to abort multiple requests, e.g. when embedding Cadenza in multiple iframes.
119
-
120
- ### Show a Workbook Map View
121
-
122
- <small>API: [CadenzaClient#showMap](./classes/CadenzaClient.html#showMap)</small>
123
-
124
- Show the embedding target of a workbook map view in an iframe and ...
125
-
126
- - Set the initial map extent.
127
- - Show the given GeoJSON geometry on the map.
128
-
129
- The coordinates of extent and geometry are in the map's SRS.
130
-
131
- ```javascript
132
- cadenzaClient.showMap('{embeddingTargetId}', {
133
- useMapSrs: true,
134
- mapExtent: [
135
- -572_513.341856, 5_211_017.966314, 916_327.095083, 6_636_950.728974,
136
- ],
137
- geometry: {
138
- type: 'Point',
139
- coordinates: [328_627.563458, 5_921_296.662223],
140
- },
141
- });
142
- ```
143
-
144
- #### Initialize the Map Extent by Setting the Location Finder
145
-
146
- ```javascript
147
- cadenzaClient.showMap('{embeddingTargetId}', {
148
- locationFinder: 'Karlsruhe',
149
- });
150
- ```
151
-
152
- ### Edit an Existing Geometry
153
-
154
- <small>API: [CadenzaClient#editGeometry](./classes/CadenzaClient.html#editGeometry), [CadenzaClient#on](./classes/CadenzaClient.html#on)</small>
155
-
156
- Edit a GeoJSON geometry with a workbook map view in the background. The geometry coordinates are in the map's SRS.
157
-
158
- ```javascript
159
- const geometry = {
160
- type: 'Point',
161
- coordinates: [328_627.563458, 5_921_296.662223],
162
- };
163
- cadenzaClient.editGeometry('{embeddingTargetId}', geometry, {
164
- useMapSrs: true,
165
- });
166
-
167
- cadenzaClient.on('editGeometry:update', (event) => {
168
- console.log('Geometry was updated', event.detail.geometry);
169
- });
170
- cadenzaClient.on('editGeometry:ok', (event) => {
171
- console.log('Geometry editing was completed', event.detail.geometry);
172
- });
173
- cadenzaClient.on('editGeometry:cancel', (event) => {
174
- console.log('Geometry editing was cancelled');
175
- });
176
- ```
177
-
178
- ### Subscribe to an Event With Types
179
-
180
- If you develop your application in TypeScript, you need to define the type of the `event.detail` in order to access its properties:
181
-
182
- ```typescript
183
- cadenzaClient.on(
184
- 'editGeometry:ok',
185
- (event: CadenzaEvent<{ geometry: Geometry }>) => {
186
- console.log('Geometry editing was completed', event.detail.geometry);
187
- },
188
- );
189
- ```
190
-
191
- ### Unsubscribe From an Event
192
-
193
- The `on()` method returns an unsubscribe function.
194
-
195
- ```javascript
196
- const unsubscribe = cadenzaClient.on('editGeometry:ok', (event) => ...);
197
- ...
198
- unsubscribe();
199
- ```
200
-
201
- ### Create a New Geometry
202
-
203
- <small>API: [CadenzaClient#createGeometry](./classes/CadenzaClient.html#createGeometry)</small>
204
-
205
- Edit a GeoJSON point geometry with a workbook map view in the background. The geometry coordinates are in the map's SRS.
206
-
207
- ```javascript
208
- cadenzaClient.createGeometry('{embeddingTargetId}', 'Point', {
209
- useMapSrs: true,
210
- });
211
-
212
- cadenzaClient.on('editGeometry:ok', (event) => {
213
- console.log('Geometry editing was completed', event.detail.geometry);
214
- });
215
- ```
216
-
217
- _Note:_ Under the hood, creating a geometry is similar to editing a geometry.
218
- That's why the events use the `editGeometry` prefix.
219
-
220
- ### Highlight an Item in the Navigator
221
-
222
- <small>API: [CadenzaClient#show](./classes/CadenzaClient.html#show)</small>
223
-
224
- Show an embedding target in an iframe and highlight an item in the navigator. Additionally, expand the navigator tree.
225
-
226
- ```javascript
227
- cadenzaClient.show('{embeddingTargetId}', {expandNavigator: true, highlightGlobalId: 'ROOT.MyFolder'});
228
- ```
229
-
230
- #### Highlight an Item in the Navigator on the Welcome Page
231
-
232
- <small>API: [CadenzaClient#show](./classes/CadenzaClient.html#show)</small>
233
-
234
- Show Cadenza's welcome page in an iframe and highlight an item in the navigator.
235
-
236
- ```javascript
237
- cadenzaClient.show({page: 'welcome'}, {highlightGlobalId: 'ROOT.MyFolder'});
238
- ```
239
-
240
- #### Expand the Navigator
241
-
242
- <small>API: [CadenzaClient#expandNavigator](./classes/CadenzaClient.html#expandNavigator)</small>
243
-
244
- Expand the navigator.
245
-
246
- ```javascript
247
- cadenzaClient.expandNavigator();
248
- ```
249
-
250
- ### Fetch Data From a Workbook View
251
-
252
- <small>API: [CadenzaClient#fetchData](./classes/CadenzaClient.html#fetchData)</small>
253
-
254
- Fetch data from a workbook view in CSV format.
255
-
256
- ```javascript
257
- const response = await cadenzaClient.fetchData('{embeddingTargetId}', 'csv');
258
-
259
- const text = await response.text();
260
- ...
261
- ```
262
-
263
- #### Control the Contents of the Fetched Table Data
264
-
265
- Fetch data from a workbook view in JSON format and include only the data values and the aggregation totals. (Do not include the column names.)
266
-
267
- ```javascript
268
- const response = await cadenzaClient.fetchData('{embeddingTargetId}', 'json', {
269
- parts: ['values', 'totals']
270
- });
271
-
272
- const tableData = await response.json();
273
- ...
274
- ```
275
-
276
- ### Download Data From a Workbook View
277
-
278
- <small>API: [CadenzaClient#downloadData](./classes/CadenzaClient.html#downloadData)</small>
279
-
280
- Download data from a workbook view in Excel format. This triggers the browser's download dialog.
281
-
282
- ```javascript
283
- const button = document.createElement('button');
284
- button.textContent = 'Download Excel';
285
- button.onclick = () => cadenzaClient.downloadData('{embeddingTargetId}', 'excel');
286
- ```
287
-
288
- ## The Development Sandbox
289
-
290
- The development sandbox is a simple custom application (in fact a single `.html` file) for playing with Cadenza JS.
291
-
292
- To run it ...
293
-
294
- * You need a Cadenza installation running on http://localhost:8080/cadenza. (See [Customize the Cadenza URL](#customize-the-cadenza-url) below)
295
- * In `node_modules/@disy/cadenza.js` run `npm run sandbox` to start the sandbox.
296
-
297
- The command starts a proxy server that serves the `sandbox.html` and `cadenza.js` files and proxies all other requests to the Cadenza server. Since that way the sandbox and Cadenza run on the same origin, embedding and `postMessage` communication just work.
298
-
299
- Alternatively ...
300
-
301
- * Set the system variable `"net.disy.cadenza.sandbox"` in Cadenza to enable the sandbox.
302
- * Now, `sandbox.html` is served on http://localhost:8080/cadenza/sandbox (replace with custom Cadenza url `/sandbox` as needed).
303
-
304
- `cadenza.js` is automatically served when Cadenza starts.
305
-
306
- ### The Sandbox UI
307
-
308
- `npm run sandbox` also opens the sandbox in a new browser window. Select the Cadenza JS method you want to play with in the select box at the top. For each method there are controls to define the parameters. Hit "Go!" to call the method.
309
-
310
- The sandbox uses Cadenza JS with the "debug" option enabled, so you can see what is going on internally in the browser's devtools console. In the "Network" tab of the devtools you can see the requests to the Cadenza server.
311
-
312
- ### Customize the Cadenza URL
313
-
314
- By default, the sandbox expects Cadenza to run on http://localhost:8080/cadenza. There are two ways to customize the Cadenza URL:
315
-
316
- * Pass an argument:
317
- ```bash
318
- npm run sandbox -- --cadenza-url http://localhost:8000/my-cadenza
319
- ```
320
- * Set an environment variable:
321
- ```bash
322
- export CADENZA_URL=http://localhost:8000/my-cadenza
323
- npm run sandbox
324
- ```
3
+ Find the docs at https://disyinformationssysteme.github.io/cadenza.js/
@@ -25,8 +25,6 @@
25
25
  --dark-hl-11: #D4D4D4;
26
26
  --light-hl-12: #098658;
27
27
  --dark-hl-12: #B5CEA8;
28
- --light-hl-13: #267F99;
29
- --dark-hl-13: #4EC9B0;
30
28
  --light-code-background: #FFFFFF;
31
29
  --dark-code-background: #1E1E1E;
32
30
  }
@@ -45,7 +43,6 @@
45
43
  --hl-10: var(--light-hl-10);
46
44
  --hl-11: var(--light-hl-11);
47
45
  --hl-12: var(--light-hl-12);
48
- --hl-13: var(--light-hl-13);
49
46
  --code-background: var(--light-code-background);
50
47
  } }
51
48
 
@@ -63,7 +60,6 @@
63
60
  --hl-10: var(--dark-hl-10);
64
61
  --hl-11: var(--dark-hl-11);
65
62
  --hl-12: var(--dark-hl-12);
66
- --hl-13: var(--dark-hl-13);
67
63
  --code-background: var(--dark-code-background);
68
64
  } }
69
65
 
@@ -81,7 +77,6 @@
81
77
  --hl-10: var(--light-hl-10);
82
78
  --hl-11: var(--light-hl-11);
83
79
  --hl-12: var(--light-hl-12);
84
- --hl-13: var(--light-hl-13);
85
80
  --code-background: var(--light-code-background);
86
81
  }
87
82
 
@@ -99,7 +94,6 @@
99
94
  --hl-10: var(--dark-hl-10);
100
95
  --hl-11: var(--dark-hl-11);
101
96
  --hl-12: var(--dark-hl-12);
102
- --hl-13: var(--dark-hl-13);
103
97
  --code-background: var(--dark-code-background);
104
98
  }
105
99
 
@@ -116,5 +110,4 @@
116
110
  .hl-10 { color: var(--hl-10); }
117
111
  .hl-11 { color: var(--hl-11); }
118
112
  .hl-12 { color: var(--hl-12); }
119
- .hl-13 { color: var(--hl-13); }
120
113
  pre, code { background: var(--code-background); }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  "use strict";(()=>{var Pe=Object.create;var ne=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Ie(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Pe(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(v){return new t.Token(t.utils.asString(v).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
3
3
  `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,u=0,d=0;u<s&&d<o;)a=r[u],l=i[d],a<l?u+=2:a>l?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,v=new RegExp(a),f=new RegExp(u),b=new RegExp(l),g=new RegExp(d),L=/^(.+?)(ss|i)es$/,p=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),H=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,N=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,q=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=function(c){var y,I,T,h,x,O,M;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),h=L,x=p,h.test(c)?c=c.replace(h,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),h=m,x=S,h.test(c)){var E=h.exec(c);h=v,h.test(E[1])&&(h=w,c=c.replace(h,""))}else if(x.test(c)){var E=x.exec(c);y=E[1],x=g,x.test(y)&&(c=y,x=k,O=_,M=H,x.test(c)?c=c+"e":O.test(c)?(h=w,c=c.replace(h,"")):M.test(c)&&(c=c+"e"))}if(h=A,h.test(c)){var E=h.exec(c);y=E[1],c=y+"i"}if(h=j,h.test(c)){var E=h.exec(c);y=E[1],I=E[2],h=v,h.test(y)&&(c=y+e[I])}if(h=$,h.test(c)){var E=h.exec(c);y=E[1],I=E[2],h=v,h.test(y)&&(c=y+n[I])}if(h=N,x=q,h.test(c)){var E=h.exec(c);y=E[1],h=f,h.test(y)&&(c=y)}else if(x.test(c)){var E=x.exec(c);y=E[1]+E[2],x=f,x.test(y)&&(c=y)}if(h=P,h.test(c)){var E=h.exec(c);y=E[1],h=f,x=b,O=W,(h.test(y)||x.test(y)&&!O.test(y))&&(c=y)}return h=z,x=f,h.test(c)&&x.test(c)&&(h=w,c=c.replace(h,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(R){return R.update(V)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),v=s.str.charAt(1),f;v in s.node.edges?f=s.node.edges[v]:(f=new t.TokenSet,s.node.edges[v]=f),s.str.length==1&&(f.final=!0),i.push({node:f,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,u=0;u<o;u++)for(var d=s[u],v=0;v<l;v++){var f=a[v];if(f==d||d=="*"){var b=r.node.edges[f],g=r.qNode.edges[d],L=b.final&&g.final,p=void 0;f in r.output.edges?(p=r.output.edges[f],p.final=p.final||L):(p=new t.TokenSet,p.final=L,r.output.edges[f]=p),i.push({qNode:g,output:p,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var u=n.clauses[l],d=null,v=t.Set.empty;u.usePipeline?d=this.pipeline.runString(u.term,{fields:u.fields}):d=[u.term];for(var f=0;f<d.length;f++){var b=d[f];u.term=b;var g=t.TokenSet.fromClause(u),L=this.tokenSet.intersect(g).toArray();if(L.length===0&&u.presence===t.Query.presence.REQUIRED){for(var p=0;p<u.fields.length;p++){var m=u.fields[p];o[m]=t.Set.empty}break}for(var S=0;S<L.length;S++)for(var w=L[S],k=this.invertedIndex[w],_=k._index,p=0;p<u.fields.length;p++){var m=u.fields[p],H=k[m],A=Object.keys(H),j=w+"/"+m,$=new t.Set(A);if(u.presence==t.Query.presence.REQUIRED&&(v=v.union($),o[m]===void 0&&(o[m]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[m]===void 0&&(a[m]=t.Set.empty),a[m]=a[m].union($);continue}if(i[m].upsert(_,u.boost,function(Qe,Ce){return Qe+Ce}),!s[j]){for(var N=0;N<A.length;N++){var q=A[N],P=new t.FieldRef(q,m),z=H[q],W;(W=r[P])===void 0?r[P]=new t.MatchData(w,m,z):W.add(w,m,z)}s[j]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var p=0;p<u.fields.length;p++){var m=u.fields[p];o[m]=o[m].intersect(v)}}for(var V=t.Set.complete,R=t.Set.empty,l=0;l<this.fields.length;l++){var m=this.fields[l];o[m]&&(V=V.intersect(o[m])),a[m]&&(R=R.union(a[m]))}var c=Object.keys(r),y=[],I=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var P=c[l],T=t.FieldRef.fromString(P);r[P]=new t.MatchData}}for(var l=0;l<c.length;l++){var T=t.FieldRef.fromString(c[l]),h=T.docRef;if(V.contains(h)&&!R.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),M;if((M=I[h])!==void 0)M.score+=O,M.matchData.combine(r[T]);else{var E={ref:h,score:O,matchData:r[T]};I[h]=E,y.push(E)}}}return y.sort(function(Te,ke){return ke.score-Te.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var d=i[u],v=d[0],f=d[1];r[v]=new t.Vector(f)}for(var u=0;u<o.length;u++){var d=o[u],b=d[0],g=d[1];a.insert(b),s[b]=g}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(u),v=new t.FieldRef(r,o),f=Object.create(null);this.fieldTermFrequencies[v]=f,this.fieldLengths[v]=0,this.fieldLengths[v]+=d.length;for(var b=0;b<d.length;b++){var g=d[b];if(f[g]==null&&(f[g]=0),f[g]+=1,this.invertedIndex[g]==null){var L=Object.create(null);L._index=this.termIndex,this.termIndex+=1;for(var p=0;p<i.length;p++)L[i[p]]=Object.create(null);this.invertedIndex[g]=L}this.invertedIndex[g][o][r]==null&&(this.invertedIndex[g][o][r]=Object.create(null));for(var m=0;m<this.metadataWhitelist.length;m++){var S=this.metadataWhitelist[m],w=g.metadata[S];this.invertedIndex[g][o][r][S]==null&&(this.invertedIndex[g][o][r][S]=[]),this.invertedIndex[g][o][r][S].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];r[u]=r[u]/i[u]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,d=this.fieldTermFrequencies[o],v=Object.keys(d),f=v.length,b=this._fields[a].boost||1,g=this._documents[o.docRef].boost||1,L=0;L<f;L++){var p=v[L],m=d[p],S=this.invertedIndex[p]._index,w,k,_;i[p]===void 0?(w=t.idf(this.invertedIndex[p],this.documentCount),i[p]=w):w=i[p],k=w*((this._k1+1)*m)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+m),k*=b,k*=g,_=Math.round(k*1e3)/1e3,u.insert(S,_)}e[o]=u}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var d=l[u];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ne(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],u=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(u*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=u}if(s.length===0){let o=document.createElement("li");o.classList.add("no-results");let a=document.createElement("span");a.textContent="No results found",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],u=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${l.kind}"></use></svg>`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class="parent">
4
- ${ce(l.parent,i)}.</span>${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`<b>${K(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var Be={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function K(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",B="mouseup",J={x:0,y:0},fe=!1,ee=!1,He=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(He=!0,F="touchstart",pe="touchmove",B="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){D||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!D&&this.active&&n.target.closest(".col-sidebar")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
5
- `}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var Z=class extends C{constructor(n){super(n);this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let r=Q.getItem(this.key);this.el.open=r?r==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let i=this.summary.querySelector("a");i&&i.addEventListener("click",()=>{location.assign(i.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})();
4
+ ${ce(l.parent,i)}.</span>${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`<b>${K(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var Be={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function K(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",B="mouseup",J={x:0,y:0},fe=!1,ee=!1,He=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(He=!0,F="touchstart",pe="touchmove",B="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
5
+ `,this.handleValueChange()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(e=>{e.style.display="block";let n=Array.from(e.querySelectorAll(".tsd-index-link")).every(r=>r.offsetParent==null);e.style.display=n?"none":"block"})}};var Z=class extends C{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})();
6
6
  /*! Bundled license information:
7
7
 
8
8
  lunr/lunr.js:
@@ -1 +1 @@
1
- window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA42SQU/CQBCF/0vPRIQIKjeDxRg1kli9GA/TdigbtrvNdkpAw3+3BNtud2uX67x5X9683c8fj3BH3sy7C6UiXympvIGXAa3LWcQhzzEfNtrFmlJeLmyYiL3ZaHxzGNSEOcQovmHOGQqyIS35DM4/WXT1HMq2FYYJQrWCSANtrTjjyVQD+bvSIoA/M7F5wn0ny9jpwz2gTJFUN6cS+wBLSPBNFirCTkQj90H0Fo2KaJ8ZNXdVdHl7PZqMNeI9EASl1QRVc5ffT0OMYyaSAFSC9BibIGvBSSwfxT7sNHV5F4yXjX6AYhByzE2IIbto1bN29aNrTg6XIXC7mmru8r9mqICYFC8ytoK0RBcpON69BGXVWwsuwjtbIFChrBy14CJEpy/a+FeFiI4H5MM/qU2YXh2+fgFngU2w8AQAAA=="
1
+ window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA52VW1PCMBCF/0ufHRFGvL0pF8dRB2ZEfXB82LYLjQ0JblNGdPzvpkKhJKUpvOac/U6yub39eAq/lHflXfuSVI9IknfkzUBFeizgkCSYNDbacaSmXBtiJkLvqtm6+D1aEzoQoviGDmcolA3ZkmtwdsylqNahzLcmw4RCGkNQAM2t6bTaZwVQ70uXCOAPTMT3uChlGZ4q3C3KKSoq5+RiFWAIE3ySKQVYitjIVZB8MyIQ2o4cA8WkMJqlFrPCvpVYjYSTy/Nmu2WndIlxPopIppOoKsLy1eT3QqbyznVABMirUna4D8gaxHVzVs4DMp5nISism1Nw183K7lElfm2oS8y8N4uRhuxCbhz7MF3EPXgD/0Mf4zsxllVLN1w12csrsqxN3Mdxl/2QtOoDWWZ1pXRBQVnf83FXfW/qYxgyMRkBTVDdhSbIMjiJ+qm1l7gcddX2Gdfv5AsQA59jYkIM2UXLL11Zf4qak8OlD9xuTT7uqh/M4DPFJ0W6iyajqLk5SJC97Y8ytBa0JbpIo6x/QyBrm9aCi/DM+ggqJWsea8FFeJUU+1LGD7BAGmYIg2QZXMRgeY02nHEq/v/CpLGStglnp7/vf1k2QSBgCQAA"
@@ -1 +1 @@
1
- window.searchData = "data:application/octet-stream;base64,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";
1
+ window.searchData = "data:application/octet-stream;base64,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";