@wolsok/thanos 3.0.1 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,107 +1,109 @@
1
- # @wolsok/thanos
2
-
3
- An angular directive that vaporizes your DOM Elements like Thanos. This library is generated with [Nx](https://nx.dev).
4
-
5
- #### Live Demo:
6
- Click the technology cards on https://angularexamples.wolsok.de
7
-
8
- ## Usage
9
-
10
- #### Dependencies:
11
-
12
- To install run
13
-
14
- ```
15
- npm install @wolsok/thanos --save
16
- ```
17
- #### Prepare your angular app:
18
-
19
- Add `WsThanosDirective` to your module/standalone component.
20
-
21
- ```typescript
22
- @NgModule_or_@Component({
23
- ...,
24
- imports: [
25
- ...
26
- WsThanosDirective
27
- ],
28
- providers: [
29
- // override the default options
30
- provideWsThanosOptions({
31
- animationLength: 2000,
32
- particleAcceleration: 50,
33
- maxParticleCount: 10000
34
- }),
35
- ]
36
- })
37
- ```
38
-
39
- You can also add WsThanosDirective to your shared module exports.
40
-
41
- ```typescript
42
- @NgModule({
43
- imports: [WsThanosDirective],
44
- exports: [
45
- WsThanosDirective
46
- ]
47
- })
48
- export class SharedModule {
49
- }
50
- ```
51
-
52
- #### `WsThanosOptions` to configure ws-thanos:
53
- | field | type | default | description |
54
- | -------------------- | :----: | ------: | ---------------------------------: |
55
- | animationLength | number | 5000 | the animation length in ms |
56
- | maxParticleCount | number | 400000 | max amount of particles |
57
- | particleAcceleration | number | 30 | speed of the particle acceleration |
58
-
59
- ### `WsThanosDirective` usage
60
-
61
- Use the directive `wsThanos` on your element and reference it using `@ViewChild(WsThanosDirective)` in your component or
62
- directly in html via template ref:
63
-
64
- ```
65
- <div wsThanos
66
- #thanos="thanos"
67
- (wsThanosComplete)=onComplete()>
68
- This div will be vaporized on click
69
- </div>
70
- <button (click)="thanos.vaporize(removeElement)">
71
- ```
72
-
73
- ### `WsThanosService` usage
74
-
75
- Inject the 'WsThanosService' into your class. Call 'vaporize()' and subscribe to it.
76
-
77
- ## Collaboration
78
-
79
- Send issues or PRs to https://github.com/wolsok/wol-sok-mono
80
-
81
- Run `nx test ws-thanos` to execute unit tests.
82
-
83
- ## Migration
84
- From `1.0.1` to `2.0.0`
85
- * Replace `WsThanosModule` in imports and exports with `WsThanosDirective`
86
- * Replace `WsThanosModule.forRoot(options)`:
87
- Before:
88
- ```typescript
89
- @NgModule({
90
- imports: [WsThanosModule.forRoot(options)]
91
- })
92
- ```
93
- After:
94
- ```typescript
95
- @NgModule({
96
- imports: [WsThanosDirective],
97
- providers: [
98
- provideWsThanosOptions(options)
99
- ]
100
- })
101
- ```
102
-
103
- From: `sc-thanos` to `@wolsok/thanos`
104
- * Remove old version `npm uninstall sc-thanos`
105
- * Install `npm install @wolsok/thanos --save`
106
- * The earlier name of this component was `scThanos`. Just switch to `wsThanos`
107
-
1
+ # @wolsok/thanos
2
+
3
+ An angular directive that vaporizes your DOM Elements like Thanos snaps his fingers. This library is generated with [Nx](https://nx.dev).
4
+
5
+ #### Live Demo:
6
+
7
+ Click the technology cards on https://angularexamples.wolsok.de/home?thanosDemo=true
8
+
9
+ ## Usage
10
+
11
+ #### Dependencies:
12
+
13
+ To install run
14
+
15
+ ```
16
+ npm install @wolsok/thanos --save
17
+ ```
18
+
19
+ #### Prepare your angular app:
20
+
21
+ Add `WsThanosDirective` to your module/standalone component.
22
+
23
+ ```typescript
24
+ @NgModule_or_@Component({
25
+ ...,
26
+ imports: [
27
+ ...
28
+ WsThanosDirective
29
+ ],
30
+ providers: [
31
+ // override the default options
32
+ provideWsThanosOptions({
33
+ animationLength: 2000,
34
+ particleAcceleration: 50,
35
+ maxParticleCount: 10000
36
+ }),
37
+ ]
38
+ })
39
+ ```
40
+
41
+ You can also add WsThanosDirective to your shared module exports.
42
+
43
+ ```typescript
44
+ @NgModule({
45
+ imports: [WsThanosDirective],
46
+ exports: [WsThanosDirective],
47
+ })
48
+ export class SharedModule {}
49
+ ```
50
+
51
+ #### `WsThanosOptions` to configure ws-thanos:
52
+
53
+ | field | type | default | description |
54
+ | -------------------- | :----: | ------: | ---------------------------------: |
55
+ | animationLength | number | 5000 | the animation length in ms |
56
+ | maxParticleCount | number | 400000 | max amount of particles |
57
+ | particleAcceleration | number | 30 | speed of the particle acceleration |
58
+
59
+ ### `WsThanosDirective` usage
60
+
61
+ Use the directive `wsThanos` on your element and reference it using `@ViewChild(WsThanosDirective)` in your component or
62
+ directly in html via template ref:
63
+
64
+ ```
65
+ <div wsThanos
66
+ #thanos="thanos"
67
+ (wsThanosComplete)=onComplete()>
68
+ This div will be vaporized on click
69
+ </div>
70
+ <button (click)="thanos.vaporize(removeElement)">
71
+ ```
72
+
73
+ ### `WsThanosService` usage
74
+
75
+ Inject the 'WsThanosService' into your class. Call 'vaporize()' and subscribe to it.
76
+
77
+ ## Collaboration
78
+
79
+ Send issues or PRs to https://github.com/wolsok/wol-sok-mono
80
+
81
+ Run `nx test ws-thanos` to execute unit tests.
82
+
83
+ ## Migration
84
+
85
+ From `1.0.1` to `2.0.0`
86
+
87
+ - Replace `WsThanosModule` in imports and exports with `WsThanosDirective`
88
+ - Replace `WsThanosModule.forRoot(options)`:
89
+ Before:
90
+ ```typescript
91
+ @NgModule({
92
+ imports: [WsThanosModule.forRoot(options)]
93
+ })
94
+ ```
95
+ After:
96
+ ```typescript
97
+ @NgModule({
98
+ imports: [WsThanosDirective],
99
+ providers: [
100
+ provideWsThanosOptions(options)
101
+ ]
102
+ })
103
+ ```
104
+
105
+ From: `sc-thanos` to `@wolsok/thanos`
106
+
107
+ - Remove old version `npm uninstall sc-thanos`
108
+ - Install `npm install @wolsok/thanos --save`
109
+ - The earlier name of this component was `scThanos`. Just switch to `wsThanos`
@@ -1,10 +1,10 @@
1
- /*
2
- * Public API Surface of ws-thanos
3
- */
4
- export * from './lib/ws-thanos.service';
5
- export * from './lib/ws-thanos.directive';
6
- export * from './lib/ws-thanos-options.token';
7
- export * from './lib/ws-thanos.options';
8
- export * from './lib/create-ws-thanos-options';
9
- export * from './lib/simplex-noise';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3B1YmxpYy93cy10aGFub3Mvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygd3MtdGhhbm9zXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93cy10aGFub3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dzLXRoYW5vcy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93cy10aGFub3Mtb3B0aW9ucy50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dzLXRoYW5vcy5vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY3JlYXRlLXdzLXRoYW5vcy1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2ltcGxleC1ub2lzZSc7XHJcbiJdfQ==
1
+ /*
2
+ * Public API Surface of ws-thanos
3
+ */
4
+ export * from './lib/ws-thanos.service';
5
+ export * from './lib/ws-thanos.directive';
6
+ export * from './lib/ws-thanos-options.token';
7
+ export * from './lib/ws-thanos.options';
8
+ export * from './lib/create-ws-thanos-options';
9
+ export * from './lib/simplex-noise';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3B1YmxpYy93cy10aGFub3Mvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHdzLXRoYW5vc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi93cy10aGFub3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93cy10aGFub3MuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dzLXRoYW5vcy1vcHRpb25zLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dzLXRoYW5vcy5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NyZWF0ZS13cy10aGFub3Mtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaW1wbGV4LW5vaXNlJztcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export function createWsThanosOptions(options) {
2
+ return {
3
+ animationLength: 5000,
4
+ maxParticleCount: 400000,
5
+ particleAcceleration: 30,
6
+ ...options,
7
+ };
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdzLXRoYW5vcy1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wdWJsaWMvd3MtdGhhbm9zL3NyYy9saWIvY3JlYXRlLXdzLXRoYW5vcy1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFrQztJQUN0RSxPQUFPO1FBQ0wsZUFBZSxFQUFFLElBQUk7UUFDckIsZ0JBQWdCLEVBQUUsTUFBTTtRQUN4QixvQkFBb0IsRUFBRSxFQUFFO1FBQ3hCLEdBQUcsT0FBTztLQUNYLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3NUaGFub3NPcHRpb25zIH0gZnJvbSAnLi93cy10aGFub3Mub3B0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXc1RoYW5vc09wdGlvbnMob3B0aW9ucz86IFBhcnRpYWw8V3NUaGFub3NPcHRpb25zPik6IFdzVGhhbm9zT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgYW5pbWF0aW9uTGVuZ3RoOiA1MDAwLFxuICAgIG1heFBhcnRpY2xlQ291bnQ6IDQwMDAwMCxcbiAgICBwYXJ0aWNsZUFjY2VsZXJhdGlvbjogMzAsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxleC1ub2lzZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wdWJsaWMvd3MtdGhhbm9zL3NyYy9saWIvc2ltcGxleC1ub2lzZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNpbXBsZXhOb2lzZU9wdGlvbnMge1xuICBhbXBsaXR1ZGU6IG51bWJlcjsgLy8gVGhlIGJhc2UgYW1wbGl0dWRlIChkZWZhdWx0OiAxLjApXG4gIGZyZXF1ZW5jeTogbnVtYmVyOyAvLyBUaGUgYmFzZSBmcmVxdWVuY3kgKGRlZmF1bHQ6IDEuMClcbiAgbWF4OiBudW1iZXI7IC8vIFRoZSBtYXhpbXVtIHNjYWxlZCB2YWx1ZSB0byByZXR1cm4gKGVmZmVjdGl2ZSBkZWZhdWx0OiAxLjApXG4gIG1pbjogbnVtYmVyOyAvLyBUaGUgbWluaW11bSBzY2FsZWQgdmFsdWUgdG8gcmV0dXJuIChlZmZlY3RpdmUgZGVmYXVsdDogLTEuMClcbiAgb2N0YXZlczogbnVtYmVyOyAvLyBJbnRlZ2VyOyB0aGUgbnVtYmVyIG9mIG9jdGF2ZXMgdG8gc3VtIGZvciBub2lzZSBnZW5lcmF0aW9uIChkZWZhdWx0OiAxKVxuICBwZXJzaXN0ZW5jZTogbnVtYmVyOyAvLyBUaGUgcGVyc2lzdGVuY2Ugb2YgYW1wbGl0dWRlIHBlciBvY3RhdmUgKGRlZmF1bHQ6IDAuNSlcbiAgcmFuZG9tOiAoKSA9PiBudW1iZXI7IC8vIEEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgcmFuZG9tIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEgKGRlZmF1bHQ6IE1hdGgucmFuZG9tKVxufVxuIl19
@@ -0,0 +1,194 @@
1
+ class SimplexNoise {
2
+ constructor(options) {
3
+ const { min, max, random, amplitude, frequency, octaves, persistence } = createOptionsWithDefaults(options);
4
+ this.random = random;
5
+ this.amplitude = amplitude;
6
+ this.frequency = frequency;
7
+ this.octaves = octaves;
8
+ this.persistence = persistence;
9
+ this.scale = min === -1 && max === 1 ? (value) => value : (value) => min + ((value + 1) / 2) * (max - min);
10
+ const p = new Uint8Array(256);
11
+ for (let i = 0; i < 256; i++) {
12
+ p[i] = i;
13
+ }
14
+ let n;
15
+ let q;
16
+ for (let i = 255; i > 0; i--) {
17
+ n = Math.floor((i + 1) * this.random());
18
+ q = p[i];
19
+ p[i] = p[n];
20
+ p[n] = q;
21
+ }
22
+ this.perm = new Uint8Array(512);
23
+ this.permMod12 = new Uint8Array(512);
24
+ for (let i = 0; i < 512; i++) {
25
+ this.perm[i] = p[i & 255];
26
+ this.permMod12[i] = this.perm[i] % 12;
27
+ }
28
+ }
29
+ static G3 = 1.0 / 6.0;
30
+ static GRAD3D = [
31
+ [1, 1, 0],
32
+ [-1, 1, 0],
33
+ [1, -1, 0],
34
+ [-1, -1, 0],
35
+ [1, 0, 1],
36
+ [-1, 0, 1],
37
+ [1, 0, -1],
38
+ [-1, 0, -1],
39
+ [0, 1, 1],
40
+ [0, -1, -1],
41
+ [0, 1, -1],
42
+ [0, -1, -1],
43
+ ];
44
+ amplitude;
45
+ frequency;
46
+ octaves;
47
+ perm;
48
+ permMod12;
49
+ persistence;
50
+ random;
51
+ scale;
52
+ memScale3D = {};
53
+ dot(gs, coords) {
54
+ return gs.slice(0, Math.min(gs.length, coords.length)).reduce((total, g, i) => total + g * coords[i], 0);
55
+ }
56
+ raw3D(x, y, z) {
57
+ // Skew the input space to determine which simplex cell we're in
58
+ const s = (x + y + z) / 3.0; // Very nice and simple skew factor for 3D
59
+ const i = Math.floor(x + s);
60
+ const j = Math.floor(y + s);
61
+ const k = Math.floor(z + s);
62
+ const t = (i + j + k) * SimplexNoise.G3;
63
+ const X0 = i - t; // Unskew the cell origin back to (x,y,z) space
64
+ const Y0 = j - t;
65
+ const Z0 = k - t;
66
+ const x0 = x - X0; // The x,y,z distances from the cell origin
67
+ const y0 = y - Y0;
68
+ const z0 = z - Z0;
69
+ // Determine which simplex we are in
70
+ let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords
71
+ let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords
72
+ if (x0 >= y0) {
73
+ if (y0 >= z0) {
74
+ i1 = i2 = j2 = 1;
75
+ j1 = k1 = k2 = 0;
76
+ }
77
+ else if (x0 >= z0) {
78
+ i1 = i2 = k2 = 1;
79
+ j1 = k1 = j2 = 0;
80
+ }
81
+ else {
82
+ k1 = i2 = k2 = 1;
83
+ i1 = j1 = j2 = 0;
84
+ }
85
+ }
86
+ else {
87
+ if (y0 < z0) {
88
+ k1 = j2 = k2 = 1;
89
+ i1 = j1 = i2 = 0;
90
+ }
91
+ else if (x0 < z0) {
92
+ j1 = j2 = k2 = 1;
93
+ i1 = k1 = i2 = 0;
94
+ }
95
+ else {
96
+ j1 = i2 = j2 = 1;
97
+ i1 = k1 = k2 = 0;
98
+ }
99
+ }
100
+ const x1 = x0 - i1 + SimplexNoise.G3; // Offsets for second corner in (x,y,z) coords
101
+ const y1 = y0 - j1 + SimplexNoise.G3;
102
+ const z1 = z0 - k1 + SimplexNoise.G3;
103
+ const x2 = x0 - i2 + 2.0 * SimplexNoise.G3; // Offsets for third corner in (x,y,z) coords
104
+ const y2 = y0 - j2 + 2.0 * SimplexNoise.G3;
105
+ const z2 = z0 - k2 + 2.0 * SimplexNoise.G3;
106
+ const x3 = x0 - 1.0 + 3.0 * SimplexNoise.G3; // Offsets for last corner in (x,y,z) coords
107
+ const y3 = y0 - 1.0 + 3.0 * SimplexNoise.G3;
108
+ const z3 = z0 - 1.0 + 3.0 * SimplexNoise.G3;
109
+ // Work out the hashed gradient indices of the four simplex corners
110
+ const ii = i & 255;
111
+ const jj = j & 255;
112
+ const kk = k & 255;
113
+ const gi0 = this.permMod12[ii + this.perm[jj + this.perm[kk]]];
114
+ const gi1 = this.permMod12[ii + i1 + this.perm[jj + j1 + this.perm[kk + k1]]];
115
+ const gi2 = this.permMod12[ii + i2 + this.perm[jj + j2 + this.perm[kk + k2]]];
116
+ const gi3 = this.permMod12[ii + 1 + this.perm[jj + 1 + this.perm[kk + 1]]];
117
+ // Calculate the contribution from the four corners
118
+ const t0 = 0.5 - x0 * x0 - y0 * y0 - z0 * z0;
119
+ const n0 = t0 < 0 ? 0.0 : Math.pow(t0, 4) * this.dot(SimplexNoise.GRAD3D[gi0], [x0, y0, z0]);
120
+ const t1 = 0.5 - x1 * x1 - y1 * y1 - z1 * z1;
121
+ const n1 = t1 < 0 ? 0.0 : Math.pow(t1, 4) * this.dot(SimplexNoise.GRAD3D[gi1], [x1, y1, z1]);
122
+ const t2 = 0.5 - x2 * x2 - y2 * y2 - z2 * z2;
123
+ const n2 = t2 < 0 ? 0.0 : Math.pow(t2, 4) * this.dot(SimplexNoise.GRAD3D[gi2], [x2, y2, z2]);
124
+ const t3 = 0.5 - x3 * x3 - y3 * y3 - z3 * z3;
125
+ const n3 = t3 < 0 ? 0.0 : Math.pow(t3, 4) * this.dot(SimplexNoise.GRAD3D[gi3], [x3, y3, z3]);
126
+ // Add contributions from each corner to get the final noise value.
127
+ // The result is scaled to stay just inside [-1,1]
128
+ return 94.68493150681972 * (n0 + n1 + n2 + n3);
129
+ }
130
+ scaled3D(x, y, z, resolution) {
131
+ const memIndex = `${Math.round(x * resolution)}${Math.round(y * resolution)}${Math.round(z * resolution)}`;
132
+ const memElem = this.memScale3D[memIndex];
133
+ if (memElem != null) {
134
+ return memElem;
135
+ }
136
+ let amplitude = this.amplitude;
137
+ let frequency = this.frequency;
138
+ let maxAmplitude = 0;
139
+ let noise = 0;
140
+ for (let i = 0; i < this.octaves; i++) {
141
+ noise += this.raw3D(x * frequency, y * frequency, z * frequency) * amplitude;
142
+ maxAmplitude += amplitude;
143
+ amplitude *= this.persistence;
144
+ frequency *= 2;
145
+ }
146
+ const result = this.scale(noise / maxAmplitude);
147
+ this.memScale3D[memIndex] = result;
148
+ return result;
149
+ }
150
+ }
151
+ export { SimplexNoise };
152
+ function createOptionsWithDefaults(options) {
153
+ if (options != null) {
154
+ if (options['amplitude'] && typeof options.amplitude !== 'number') {
155
+ throw new Error('options.amplitude must be a number');
156
+ }
157
+ if (options['frequency'] && typeof options.frequency !== 'number') {
158
+ throw new Error('options.frequency must be a number');
159
+ }
160
+ if (options['octaves'] &&
161
+ (typeof options.octaves !== 'number' ||
162
+ !isFinite(options.octaves) ||
163
+ Math.floor(options.octaves) !== options.octaves)) {
164
+ throw new Error('options.octaves must be an integer');
165
+ }
166
+ if (options['persistence'] && typeof options.persistence !== 'number') {
167
+ throw new Error('options.persistence must be a number');
168
+ }
169
+ if (options['random'] && typeof options.random !== 'function') {
170
+ throw new Error('options.random must be a function');
171
+ }
172
+ if (options['min'] && typeof options.min !== 'number') {
173
+ throw new Error('options.min must be a number');
174
+ }
175
+ if (options['max'] && typeof options.max !== 'number') {
176
+ throw new Error('options.max must be a number');
177
+ }
178
+ }
179
+ const optionsResult = {
180
+ amplitude: 1.0,
181
+ frequency: 1.0,
182
+ max: 1.0,
183
+ min: -1.0,
184
+ octaves: 1,
185
+ persistence: 0.5,
186
+ random: Math.random,
187
+ ...options,
188
+ };
189
+ if (optionsResult.min > optionsResult.max) {
190
+ throw new Error('min must be smaller max');
191
+ }
192
+ return optionsResult;
193
+ }
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxleC1ub2lzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcHVibGljL3dzLXRoYW5vcy9zcmMvbGliL3NpbXBsZXgtbm9pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBYSxZQUFZO0lBQ3ZCLFlBQVksT0FBc0M7UUFDaEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUUzRyxNQUFNLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDVjtRQUVELElBQUksQ0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFTLENBQUM7UUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBRXRCLE1BQU0sQ0FBQyxNQUFNLEdBQUc7UUFDZCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxD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LENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0UsbURBQW1EO1FBQ25ELE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RixNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDN0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0YsTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUs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QUc7UUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNWLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtRQUNuQixHQUFHLE9BQU87S0FDWCxDQUFDO0lBQ0YsSUFBSSxhQUFhLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUU7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQzVDO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2ltcGxleE5vaXNlT3B0aW9ucyB9IGZyb20gJy4vc2ltcGxleC1ub2lzZS1vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIFNpbXBsZXhOb2lzZSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBQYXJ0aWFsPFNpbXBsZXhOb2lzZU9wdGlvbnM+KSB7XG4gICAgY29uc3QgeyBtaW4sIG1heCwgcmFuZG9tLCBhbXBsaXR1ZGUsIGZyZXF1ZW5jeSwgb2N0YXZlcywgcGVyc2lzdGVuY2UgfSA9IGNyZWF0ZU9wdGlvbnNXaXRoRGVmYXVsdHMob3B0aW9ucyk7XG5cbiAgICB0aGlzLnJhbmRvbSA9IHJhbmRvbTtcbiAgICB0aGlzLmFtcGxpdHVkZSA9IGFtcGxpdHVkZTtcbiAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTtcbiAgICB0aGlzLm9jdGF2ZXMgPSBvY3RhdmVzO1xuICAgIHRoaXMucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZTtcblxuICAgIHRoaXMuc2NhbGUgPSBtaW4gPT09IC0xICYmIG1heCA9PT0gMSA/ICh2YWx1ZSkgPT4gdmFsdWUgOiAodmFsdWUpID0+IG1pbiArICgodmFsdWUgKyAxKSAvIDIpICogKG1heCAtIG1pbik7XG5cbiAgICBjb25zdCBwID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI1NjsgaSsrKSB7XG4gICAgICBwW2ldID0gaTtcbiAgICB9XG5cbiAgICBsZXQgbjogbnVtYmVyO1xuICAgIGxldCBxOiBudW1iZXI7XG4gICAgZm9yIChsZXQgaSA9IDI1NTsgaSA+IDA7IGktLSkge1xuICAgICAgbiA9IE1hdGguZmxvb3IoKGkgKyAxKSAqIHRoaXMucmFuZG9tKCkpO1xuICAgICAgcSA9IHBbaV07XG4gICAgICBwW2ldID0gcFtuXTtcbiAgICAgIHBbbl0gPSBxO1xuICAgIH1cblxuICAgIHRoaXMucGVybSA9IG5ldyBVaW50OEFycmF5KDUxMik7XG4gICAgdGhpcy5wZXJtTW9kMTIgPSBuZXcgVWludDhBcnJheSg1MTIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTEyOyBpKyspIHtcbiAgICAgIHRoaXMucGVybVtpXSA9IHBbaSAmIDI1NV07XG4gICAgICB0aGlzLnBlcm1Nb2QxMltpXSA9IHRoaXMucGVybVtpXSAlIDEyO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBHMyA9IDEuMCAvIDYuMDtcblxuICBzdGF0aWMgR1JBRDNEID0gW1xuICAgIFsxLCAxLCAwXSxcbiAgICBbLTEsIDEsIDBdLFxuICAgIFsxLCAtMSwgMF0sXG4gICAgWy0xLCAtMSwgMF0sXG4gICAgWzEsIDAsIDFdLFxuICAgIFstMSwgMCwgMV0sXG4gICAgWzEsIDAsIC0xXSxcbiAgICBbLTEsIDAsIC0xXSxcbiAgICBbMCwgMSwgMV0sXG4gICAgWzAsIC0xLCAtMV0sXG4gICAgWzAsIDEsIC0xXSxcbiAgICBbMCwgLTEsIC0xXSxcbiAgXTtcblxuICByZWFkb25seSBhbXBsaXR1ZGU6IG51bWJlcjtcbiAgcmVhZG9ubHkgZnJlcXVlbmN5OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9jdGF2ZXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgcGVybTogVWludDhBcnJheTtcbiAgcmVhZG9ubHkgcGVybU1vZDEyOiBVaW50OEFycmF5O1xuICByZWFkb25seSBwZXJzaXN0ZW5jZTogbnVtYmVyO1xuICByZWFkb25seSByYW5kb206ICgpID0+IG51bWJlcjtcbiAgcmVhZG9ubHkgc2NhbGU6ICh2YWx1ZTogbnVtYmVyKSA9PiBudW1iZXI7XG4gIHByaXZhdGUgbWVtU2NhbGUzRDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4gIGRvdChnczogbnVtYmVyW10sIGNvb3JkczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIHJldHVybiBncy5zbGljZSgwLCBNYXRoLm1pbihncy5sZW5ndGgsIGNvb3Jkcy5sZW5ndGgpKS5yZWR1Y2UoKHRvdGFsLCBnLCBpKSA9PiB0b3RhbCArIGcgKiBjb29yZHNbaV0sIDApO1xuICB9XG5cbiAgcmF3M0QoeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gU2tldyB0aGUgaW5wdXQgc3BhY2UgdG8gZGV0ZXJtaW5lIHdoaWNoIHNpbXBsZXggY2VsbCB3ZSdyZSBpblxuICAgIGNvbnN0IHMgPSAoeCArIHkgKyB6KSAvIDMuMDsgLy8gVmVyeSBuaWNlIGFuZCBzaW1wbGUgc2tldyBmYWN0b3IgZm9yIDNEXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoeCArIHMpO1xuICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKHkgKyBzKTtcbiAgICBjb25zdCBrID0gTWF0aC5mbG9vcih6ICsgcyk7XG4gICAgY29uc3QgdCA9IChpICsgaiArIGspICogU2ltcGxleE5vaXNlLkczO1xuICAgIGNvbnN0IFgwID0gaSAtIHQ7IC8vIFVuc2tldyB0aGUgY2VsbCBvcmlnaW4gYmFjayB0byAoeCx5LHopIHNwYWNlXG4gICAgY29uc3QgWTAgPSBqIC0gdDtcbiAgICBjb25zdCBaMCA9IGsgLSB0O1xuICAgIGNvbnN0IHgwID0geCAtIFgwOyAvLyBUaGUgeCx5LHogZGlzdGFuY2VzIGZyb20gdGhlIGNlbGwgb3JpZ2luXG4gICAgY29uc3QgeTAgPSB5IC0gWTA7XG4gICAgY29uc3QgejAgPSB6IC0gWjA7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hpY2ggc2ltcGxleCB3ZSBhcmUgaW5cbiAgICBsZXQgaTE6IG51bWJlciwgajE6IG51bWJlciwgazE6IG51bWJlcjsgLy8gT2Zmc2V0cyBmb3Igc2Vjb25kIGNvcm5lciBvZiBzaW1wbGV4IGluIChpLGosaykgY29vcmRzXG4gICAgbGV0IGkyOiBudW1iZXIsIGoyOiBudW1iZXIsIGsyOiBudW1iZXI7IC8vIE9mZnNldHMgZm9yIHRoaXJkIGNvcm5lciBvZiBzaW1wbGV4IGluIChpLGosaykgY29vcmRzXG4gICAgaWYgKHgwID49IHkwKSB7XG4gICAgICBpZiAoeTAgPj0gejApIHtcbiAgICAgICAgaTEgPSBpMiA9IGoyID0gMTtcbiAgICAgICAgajEgPSBrMSA9IGsyID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoeDAgPj0gejApIHtcbiAgICAgICAgaTEgPSBpMiA9IGsyID0gMTtcbiAgICAgICAgajEgPSBrMSA9IGoyID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGsxID0gaTIgPSBrMiA9IDE7XG4gICAgICAgIGkxID0gajEgPSBqMiA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh5MCA8IHowKSB7XG4gICAgICAgIGsxID0gajIgPSBrMiA9IDE7XG4gICAgICAgIGkxID0gajEgPSBpMiA9IDA7XG4gICAgICB9IGVsc2UgaWYgKHgwIDwgejApIHtcbiAgICAgICAgajEgPSBqMiA9IGsyID0gMTtcbiAgICAgICAgaTEgPSBrMSA9IGkyID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGoxID0gaTIgPSBqMiA9IDE7XG4gICAgICAgIGkxID0gazEgPSBrMiA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeDEgPSB4MCAtIGkxICsgU2ltcGxleE5vaXNlLkczOyAvLyBPZmZzZXRzIGZvciBzZWNvbmQgY29ybmVyIGluICh4LHkseikgY29vcmRzXG4gICAgY29uc3QgeTEgPSB5MCAtIGoxICsgU2ltcGxleE5vaXNlLkczO1xuICAgIGNvbnN0IHoxID0gejAgLSBrMSArIFNpbXBsZXhOb2lzZS5HMztcbiAgICBjb25zdCB4MiA9IHgwIC0gaTIgKyAyLjAgKiBTaW1wbGV4Tm9pc2UuRzM7IC8vIE9mZnNldHMgZm9yIHRoaXJkIGNvcm5lciBpbiAoeCx5LHopIGNvb3Jkc1xuICAgIGNvbnN0IHkyID0geTAgLSBqMiArIDIuMCAqIFNpbXBsZXhOb2lzZS5HMztcbiAgICBjb25zdCB6MiA9IHowIC0gazIgKyAyLjAgKiBTaW1wbGV4Tm9pc2UuRzM7XG4gICAgY29uc3QgeDMgPSB4MCAtIDEuMCArIDMuMCAqIFNpbXBsZXhOb2lzZS5HMzsgLy8gT2Zmc2V0cyBmb3IgbGFzdCBjb3JuZXIgaW4gKHgseSx6KSBjb29yZHNcbiAgICBjb25zdCB5MyA9IHkwIC0gMS4wICsgMy4wICogU2ltcGxleE5vaXNlLkczO1xuICAgIGNvbnN0IHozID0gejAgLSAxLjAgKyAzLjAgKiBTaW1wbGV4Tm9pc2UuRzM7XG5cbiAgICAvLyBXb3JrIG91dCB0aGUgaGFzaGVkIGdyYWRpZW50IGluZGljZXMgb2YgdGhlIGZvdXIgc2ltcGxleCBjb3JuZXJzXG4gICAgY29uc3QgaWkgPSBpICYgMjU1O1xuICAgIGNvbnN0IGpqID0gaiAmIDI1NTtcbiAgICBjb25zdCBrayA9IGsgJiAyNTU7XG4gICAgY29uc3QgZ2kwID0gdGhpcy5wZXJtTW9kMTJbaWkgKyB0aGlzLnBlcm1bamogKyB0aGlzLnBlcm1ba2tdXV07XG4gICAgY29uc3QgZ2kxID0gdGhpcy5wZXJtTW9kMTJbaWkgKyBpMSArIHRoaXMucGVybVtqaiArIGoxICsgdGhpcy5wZXJtW2trICsgazFdXV07XG4gICAgY29uc3QgZ2kyID0gdGhpcy5wZXJtTW9kMTJbaWkgKyBpMiArIHRoaXMucGVybVtqaiArIGoyICsgdGhpcy5wZXJtW2trICsgazJdXV07XG4gICAgY29uc3QgZ2kzID0gdGhpcy5wZXJtTW9kMTJbaWkgKyAxICsgdGhpcy5wZXJtW2pqICsgMSArIHRoaXMucGVybVtrayArIDFdXV07XG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIGNvbnRyaWJ1dGlvbiBmcm9tIHRoZSBmb3VyIGNvcm5lcnNcbiAgICBjb25zdCB0MCA9IDAuNSAtIHgwICogeDAgLSB5MCAqIHkwIC0gejAgKiB6MDtcbiAgICBjb25zdCBuMCA9IHQwIDwgMCA/IDAuMCA6IE1hdGgucG93KHQwLCA0KSAqIHRoaXMuZG90KFNpbXBsZXhOb2lzZS5HUkFEM0RbZ2kwXSwgW3gwLCB5MCwgejBdKTtcbiAgICBjb25zdCB0MSA9IDAuNSAtIHgxICogeDEgLSB5MSAqIHkxIC0gejEgKiB6MTtcbiAgICBjb25zdCBuMSA9IHQxIDwgMCA/IDAuMCA6IE1hdGgucG93KHQxLCA0KSAqIHRoaXMuZG90KFNpbXBsZXhOb2lzZS5HUkFEM0RbZ2kxXSwgW3gxLCB5MSwgejFdKTtcbiAgICBjb25zdCB0MiA9IDAuNSAtIHgyICogeDIgLSB5MiAqIHkyIC0gejIgKiB6MjtcbiAgICBjb25zdCBuMiA9IHQyIDwgMCA/IDAuMCA6IE1hdGgucG93KHQyLCA0KSAqIHRoaXMuZG90KFNpbXBsZXhOb2lzZS5HUkFEM0RbZ2kyXSwgW3gyLCB5MiwgejJdKTtcbiAgICBjb25zdCB0MyA9IDAuNSAtIHgzICogeDMgLSB5MyAqIHkzIC0gejMgKiB6MztcbiAgICBjb25zdCBuMyA9IHQzIDwgMCA/IDAuMCA6IE1hdGgucG93KHQzLCA0KSAqIHRoaXMuZG90KFNpbXBsZXhOb2lzZS5HUkFEM0RbZ2kzXSwgW3gzLCB5MywgejNdKTtcblxuICAgIC8vIEFkZCBjb250cmlidXRpb25zIGZyb20gZWFjaCBjb3JuZXIgdG8gZ2V0IHRoZSBmaW5hbCBub2lzZSB2YWx1ZS5cbiAgICAvLyBUaGUgcmVzdWx0IGlzIHNjYWxlZCB0byBzdGF5IGp1c3QgaW5zaWRlIFstMSwxXVxuICAgIHJldHVybiA5NC42ODQ5MzE1MDY4MTk3MiAqIChuMCArIG4xICsgbjIgKyBuMyk7XG4gIH1cblxuICBzY2FsZWQzRCh4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyLCByZXNvbHV0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG1lbUluZGV4ID0gYCR7TWF0aC5yb3VuZCh4ICogcmVzb2x1dGlvbil9JHtNYXRoLnJvdW5kKHkgKiByZXNvbHV0aW9uKX0ke01hdGgucm91bmQoeiAqIHJlc29sdXRpb24pfWA7XG4gICAgY29uc3QgbWVtRWxlbSA9IHRoaXMubWVtU2NhbGUzRFttZW1JbmRleF07XG4gICAgaWYgKG1lbUVsZW0gIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1lbUVsZW07XG4gICAgfVxuXG4gICAgbGV0IGFtcGxpdHVkZSA9IHRoaXMuYW1wbGl0dWRlO1xuICAgIGxldCBmcmVxdWVuY3kgPSB0aGlzLmZyZXF1ZW5jeTtcbiAgICBsZXQgbWF4QW1wbGl0dWRlID0gMDtcbiAgICBsZXQgbm9pc2UgPSAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9jdGF2ZXM7IGkrKykge1xuICAgICAgbm9pc2UgKz0gdGhpcy5yYXczRCh4ICogZnJlcXVlbmN5LCB5ICogZnJlcXVlbmN5LCB6ICogZnJlcXVlbmN5KSAqIGFtcGxpdHVkZTtcbiAgICAgIG1heEFtcGxpdHVkZSArPSBhbXBsaXR1ZGU7XG4gICAgICBhbXBsaXR1ZGUgKj0gdGhpcy5wZXJzaXN0ZW5jZTtcbiAgICAgIGZyZXF1ZW5jeSAqPSAyO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNjYWxlKG5vaXNlIC8gbWF4QW1wbGl0dWRlKTtcbiAgICB0aGlzLm1lbVNjYWxlM0RbbWVtSW5kZXhdID0gcmVzdWx0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlT3B0aW9uc1dpdGhEZWZhdWx0cyhvcHRpb25zPzogUGFydGlhbDxTaW1wbGV4Tm9pc2VPcHRpb25zPikge1xuICBpZiAob3B0aW9ucyAhPSBudWxsKSB7XG4gICAgaWYgKG9wdGlvbnNbJ2FtcGxpdHVkZSddICYmIHR5cGVvZiBvcHRpb25zLmFtcGxpdHVkZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5hbXBsaXR1ZGUgbXVzdCBiZSBhIG51bWJlcicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zWydmcmVxdWVuY3knXSAmJiB0eXBlb2Ygb3B0aW9ucy5mcmVxdWVuY3kgIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMuZnJlcXVlbmN5IG11c3QgYmUgYSBudW1iZXInKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zWydvY3RhdmVzJ10gJiZcbiAgICAgICh0eXBlb2Ygb3B0aW9ucy5vY3RhdmVzICE9PSAnbnVtYmVyJyB8fFxuICAgICAgICAhaXNGaW5pdGUob3B0aW9ucy5vY3RhdmVzKSB8fFxuICAgICAgICBNYXRoLmZsb29yKG9wdGlvbnMub2N0YXZlcykgIT09IG9wdGlvbnMub2N0YXZlcylcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5vY3RhdmVzIG11c3QgYmUgYW4gaW50ZWdlcicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zWydwZXJzaXN0ZW5jZSddICYmIHR5cGVvZiBvcHRpb25zLnBlcnNpc3RlbmNlICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcHRpb25zLnBlcnNpc3RlbmNlIG11c3QgYmUgYSBudW1iZXInKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9uc1sncmFuZG9tJ10gJiYgdHlwZW9mIG9wdGlvbnMucmFuZG9tICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMucmFuZG9tIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zWydtaW4nXSAmJiB0eXBlb2Ygb3B0aW9ucy5taW4gIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdGlvbnMubWluIG11c3QgYmUgYSBudW1iZXInKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9uc1snbWF4J10gJiYgdHlwZW9mIG9wdGlvbnMubWF4ICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcHRpb25zLm1heCBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3B0aW9uc1Jlc3VsdCA9IHtcbiAgICBhbXBsaXR1ZGU6IDEuMCxcbiAgICBmcmVxdWVuY3k6IDEuMCxcbiAgICBtYXg6IDEuMCxcbiAgICBtaW46IC0xLjAsXG4gICAgb2N0YXZlczogMSxcbiAgICBwZXJzaXN0ZW5jZTogMC41LFxuICAgIHJhbmRvbTogTWF0aC5yYW5kb20sXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcbiAgaWYgKG9wdGlvbnNSZXN1bHQubWluID4gb3B0aW9uc1Jlc3VsdC5tYXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbiBtdXN0IGJlIHNtYWxsZXIgbWF4Jyk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNSZXN1bHQ7XG59XG4iXX0=
@@ -1,13 +1,13 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { createWsThanosOptions } from './create-ws-thanos-options';
3
- export const WS_THANOS_OPTIONS_TOKEN = new InjectionToken('thanosOptions', {
4
- providedIn: 'root',
5
- factory: () => createWsThanosOptions(),
6
- });
7
- export function provideWsThanosOptions(options) {
8
- return {
9
- provide: WS_THANOS_OPTIONS_TOKEN,
10
- useValue: createWsThanosOptions(options),
11
- };
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtdGhhbm9zLW9wdGlvbnMudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3B1YmxpYy93cy10aGFub3Mvc3JjL2xpYi93cy10aGFub3Mtb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUN2RCxlQUFlLEVBQ2Y7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUU7Q0FDdkMsQ0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxPQUFrQztJQUVsQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVXc1RoYW5vc09wdGlvbnMgfSBmcm9tICcuL2NyZWF0ZS13cy10aGFub3Mtb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IFdzVGhhbm9zT3B0aW9ucyB9IGZyb20gJy4vd3MtdGhhbm9zLm9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgV1NfVEhBTk9TX09QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48V3NUaGFub3NPcHRpb25zPihcbiAgJ3RoYW5vc09wdGlvbnMnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IGNyZWF0ZVdzVGhhbm9zT3B0aW9ucygpLFxuICB9XG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdzVGhhbm9zT3B0aW9ucyhcbiAgb3B0aW9ucz86IFBhcnRpYWw8V3NUaGFub3NPcHRpb25zPlxuKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFdTX1RIQU5PU19PUFRJT05TX1RPS0VOLFxuICAgIHVzZVZhbHVlOiBjcmVhdGVXc1RoYW5vc09wdGlvbnMob3B0aW9ucyksXG4gIH07XG59XG4iXX0=
1
+ import { InjectionToken } from '@angular/core';
2
+ import { createWsThanosOptions } from './create-ws-thanos-options';
3
+ export const WS_THANOS_OPTIONS_TOKEN = new InjectionToken('thanosOptions', {
4
+ providedIn: 'root',
5
+ factory: () => createWsThanosOptions(),
6
+ });
7
+ export function provideWsThanosOptions(options) {
8
+ return {
9
+ provide: WS_THANOS_OPTIONS_TOKEN,
10
+ useValue: createWsThanosOptions(options),
11
+ };
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtdGhhbm9zLW9wdGlvbnMudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3B1YmxpYy93cy10aGFub3Mvc3JjL2xpYi93cy10aGFub3Mtb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFrQixlQUFlLEVBQUU7SUFDMUYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFO0NBQ3ZDLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFrQztJQUN2RSxPQUFPO1FBQ0wsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVXc1RoYW5vc09wdGlvbnMgfSBmcm9tICcuL2NyZWF0ZS13cy10aGFub3Mtb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IFdzVGhhbm9zT3B0aW9ucyB9IGZyb20gJy4vd3MtdGhhbm9zLm9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgV1NfVEhBTk9TX09QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48V3NUaGFub3NPcHRpb25zPigndGhhbm9zT3B0aW9ucycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBjcmVhdGVXc1RoYW5vc09wdGlvbnMoKSxcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdzVGhhbm9zT3B0aW9ucyhvcHRpb25zPzogUGFydGlhbDxXc1RoYW5vc09wdGlvbnM+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFdTX1RIQU5PU19PUFRJT05TX1RPS0VOLFxuICAgIHVzZVZhbHVlOiBjcmVhdGVXc1RoYW5vc09wdGlvbnMob3B0aW9ucyksXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,62 @@
1
+ import { Directive, ElementRef, EventEmitter, Inject, NgZone, Output } from '@angular/core';
2
+ import { WS_THANOS_OPTIONS_TOKEN } from './ws-thanos-options.token';
3
+ import { WsThanosService } from './ws-thanos.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./ws-thanos.service";
6
+ class WsThanosDirective {
7
+ vaporizeDomElem;
8
+ thanosService;
9
+ thanosOptions;
10
+ ngZone;
11
+ subscription;
12
+ wsThanosComplete = new EventEmitter();
13
+ constructor(vaporizeDomElem, thanosService, thanosOptions, ngZone) {
14
+ this.vaporizeDomElem = vaporizeDomElem;
15
+ this.thanosService = thanosService;
16
+ this.thanosOptions = thanosOptions;
17
+ this.ngZone = ngZone;
18
+ }
19
+ vaporize(removeElem = true) {
20
+ const elem = this.vaporizeDomElem.nativeElement;
21
+ this.subscription = this.thanosService.vaporize(elem).subscribe({
22
+ complete: () => {
23
+ this.ngZone.run(() => {
24
+ if (removeElem) {
25
+ elem.remove();
26
+ }
27
+ else {
28
+ // make visible again
29
+ elem.style.transition = 'opacity 700ms';
30
+ elem.style.opacity = '1';
31
+ }
32
+ this.wsThanosComplete.emit();
33
+ });
34
+ },
35
+ error: (error) => {
36
+ console.error('error emitted by vaporize', error);
37
+ this.wsThanosComplete.emit();
38
+ },
39
+ });
40
+ return this.wsThanosComplete.asObservable();
41
+ }
42
+ ngOnDestroy() {
43
+ this.subscription?.unsubscribe();
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WsThanosDirective, deps: [{ token: i0.ElementRef }, { token: i1.WsThanosService }, { token: WS_THANOS_OPTIONS_TOKEN }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
46
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: WsThanosDirective, isStandalone: true, selector: "[wsThanos], ws-thanos", outputs: { wsThanosComplete: "wsThanosComplete" }, exportAs: ["thanos"], ngImport: i0 });
47
+ }
48
+ export { WsThanosDirective };
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WsThanosDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ standalone: true,
53
+ selector: '[wsThanos], ws-thanos',
54
+ exportAs: 'thanos',
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.WsThanosService }, { type: undefined, decorators: [{
57
+ type: Inject,
58
+ args: [WS_THANOS_OPTIONS_TOKEN]
59
+ }] }, { type: i0.NgZone }]; }, propDecorators: { wsThanosComplete: [{
60
+ type: Output
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtdGhhbm9zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcHVibGljL3dzLXRoYW5vcy9zcmMvbGliL3dzLXRoYW5vcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXRELE1BS2EsaUJBQWlCO0lBT1Q7SUFDQTtJQUVBO0lBQ0E7SUFWWCxZQUFZLENBQWdCO0lBRzVCLGdCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXhFLFlBQ21CLGVBQXdDLEVBQ3hDLGFBQThCLEVBRTlCLGFBQThCLEVBQzlCLE1BQWM7UUFKZCxvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBRTlCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQzlCLENBQUM7SUFFRyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUk7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ25CLElBQUksVUFBVSxFQUFFO3dCQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZjt5QkFBTTt3QkFDTCxxQkFBcUI7d0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3FCQUMxQjtvQkFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7dUdBeENVLGlCQUFpQiwyRUFTbEIsdUJBQXVCOzJGQVR0QixpQkFBaUI7O1NBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsUUFBUTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsdUJBQXVCO2lFQUx6QixnQkFBZ0I7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdTX1RIQU5PU19PUFRJT05TX1RPS0VOIH0gZnJvbSAnLi93cy10aGFub3Mtb3B0aW9ucy50b2tlbic7XG5pbXBvcnQgdHlwZSB7IFdzVGhhbm9zT3B0aW9ucyB9IGZyb20gJy4vd3MtdGhhbm9zLm9wdGlvbnMnO1xuaW1wb3J0IHsgV3NUaGFub3NTZXJ2aWNlIH0gZnJvbSAnLi93cy10aGFub3Muc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t3c1RoYW5vc10sIHdzLXRoYW5vcycsXG4gIGV4cG9ydEFzOiAndGhhbm9zJyxcbn0pXG5leHBvcnQgY2xhc3MgV3NUaGFub3NEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSB3c1RoYW5vc0NvbXBsZXRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2YXBvcml6ZURvbUVsZW06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhhbm9zU2VydmljZTogV3NUaGFub3NTZXJ2aWNlLFxuICAgIEBJbmplY3QoV1NfVEhBTk9TX09QVElPTlNfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGFub3NPcHRpb25zOiBXc1RoYW5vc09wdGlvbnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgcHVibGljIHZhcG9yaXplKHJlbW92ZUVsZW0gPSB0cnVlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZWxlbSA9IHRoaXMudmFwb3JpemVEb21FbGVtLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRoYW5vc1NlcnZpY2UudmFwb3JpemUoZWxlbSkuc3Vic2NyaWJlKHtcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHJlbW92ZUVsZW0pIHtcbiAgICAgICAgICAgIGVsZW0ucmVtb3ZlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdmlzaWJsZSBhZ2FpblxuICAgICAgICAgICAgZWxlbS5zdHlsZS50cmFuc2l0aW9uID0gJ29wYWNpdHkgNzAwbXMnO1xuICAgICAgICAgICAgZWxlbS5zdHlsZS5vcGFjaXR5ID0gJzEnO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLndzVGhhbm9zQ29tcGxldGUuZW1pdCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIGVtaXR0ZWQgYnkgdmFwb3JpemUnLCBlcnJvcik7XG4gICAgICAgIHRoaXMud3NUaGFub3NDb21wbGV0ZS5lbWl0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMud3NUaGFub3NDb21wbGV0ZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtdGhhbm9zLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3B1YmxpYy93cy10aGFub3Mvc3JjL2xpYi93cy10aGFub3Mub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXc1RoYW5vc09wdGlvbnMge1xuICBhbmltYXRpb25MZW5ndGg6IG51bWJlcjtcbiAgbWF4UGFydGljbGVDb3VudDogbnVtYmVyO1xuICBwYXJ0aWNsZUFjY2VsZXJhdGlvbjogbnVtYmVyO1xufVxuIl19