better-lock 2.0.2-beta → 3.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.
Files changed (53) hide show
  1. package/.idea/prettier.xml +1 -0
  2. package/README.md +64 -45
  3. package/dist/better_lock.d.ts +7 -4
  4. package/dist/better_lock.js +17 -14
  5. package/dist/better_lock.js.map +1 -1
  6. package/dist/errors.d.ts +3 -1
  7. package/dist/errors.js +11 -12
  8. package/dist/errors.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/internals.js +2 -2
  12. package/dist/internals.js.map +1 -1
  13. package/dist/options.d.ts +5 -0
  14. package/dist/types.d.ts +1 -1
  15. package/docs/.nojekyll +1 -0
  16. package/docs/assets/highlight.css +92 -0
  17. package/docs/assets/main.js +54 -0
  18. package/docs/assets/search.js +1 -0
  19. package/docs/assets/style.css +1300 -0
  20. package/docs/assets/widgets.png +0 -0
  21. package/docs/assets/widgets@2x.png +0 -0
  22. package/docs/classes/BetterLockError.html +109 -0
  23. package/docs/classes/BetterLockExecutionTimeoutError.html +122 -0
  24. package/docs/classes/BetterLockInternalError.html +101 -0
  25. package/docs/classes/BetterLockInvalidArgumentError.html +112 -0
  26. package/docs/classes/BetterLockJobAbortedError.html +115 -0
  27. package/docs/classes/BetterLockQueueOverflowError.html +142 -0
  28. package/docs/classes/BetterLockWaitTimeoutError.html +122 -0
  29. package/docs/classes/_internal_.BetterLock.html +324 -0
  30. package/docs/classes/_internal_.KeyQueue.html +127 -0
  31. package/docs/classes/_internal_.LockJob.html +226 -0
  32. package/docs/index.html +281 -0
  33. package/docs/interfaces/BetterLockJobOptions.html +89 -0
  34. package/docs/interfaces/BetterLockOptions.html +153 -0
  35. package/docs/modules/_internal_.__home_panta_dev_pantas_better_lock_src_errors_.html +80 -0
  36. package/docs/modules/_internal_.html +68 -0
  37. package/docs/modules.html +96 -0
  38. package/docs/types/BetterLockErrorName.html +61 -0
  39. package/docs/types/BetterLockExecutor.html +63 -0
  40. package/docs/types/BetterLockKey.html +61 -0
  41. package/docs/types/BetterLockQueueEjectionStrategy.html +59 -0
  42. package/docs/types/_internal_.ICallback.html +59 -0
  43. package/docs/types/_internal_.ICallbackExecutor.html +73 -0
  44. package/docs/types/_internal_.IErrorExports.html +52 -0
  45. package/docs/types/_internal_.IPromiseExecutor.html +65 -0
  46. package/docs/variables/BetterLock.html +59 -0
  47. package/package.json +8 -5
  48. package/spec/better_lock.spec.ts +37 -1
  49. package/src/better_lock.ts +14 -9
  50. package/src/errors.ts +5 -2
  51. package/src/index.ts +2 -1
  52. package/src/options.ts +7 -0
  53. package/src/types.ts +2 -2
@@ -0,0 +1,1300 @@
1
+ :root {
2
+ /* Light */
3
+ --light-color-background: #f2f4f8;
4
+ --light-color-background-secondary: #eff0f1;
5
+ --light-color-icon-background: var(--light-color-background);
6
+ --light-color-accent: #c5c7c9;
7
+ --light-color-text: #222;
8
+ --light-color-text-aside: #707070;
9
+ --light-color-link: #4da6ff;
10
+ --light-color-ts: #db1373;
11
+ --light-color-ts-interface: #139d2c;
12
+ --light-color-ts-enum: #9c891a;
13
+ --light-color-ts-class: #2484e5;
14
+ --light-color-ts-function: #572be7;
15
+ --light-color-ts-namespace: #b111c9;
16
+ --light-color-ts-private: #707070;
17
+ --light-color-ts-variable: #4d68ff;
18
+ --light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
19
+ --light-color-scheme: light;
20
+
21
+ /* Dark */
22
+ --dark-color-background: #2b2e33;
23
+ --dark-color-background-secondary: #1e2024;
24
+ --dark-color-icon-background: var(--dark-color-background-secondary);
25
+ --dark-color-accent: #9096a2;
26
+ --dark-color-text: #f5f5f5;
27
+ --dark-color-text-aside: #dddddd;
28
+ --dark-color-link: #00aff4;
29
+ --dark-color-ts: #ff6492;
30
+ --dark-color-ts-interface: #6cff87;
31
+ --dark-color-ts-enum: #f4d93e;
32
+ --dark-color-ts-class: #61b0ff;
33
+ --dark-color-ts-function: #9772ff;
34
+ --dark-color-ts-namespace: #e14dff;
35
+ --dark-color-ts-private: #e2e2e2;
36
+ --dark-color-ts-variable: #4d68ff;
37
+ --dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
38
+ --dark-color-scheme: dark;
39
+ }
40
+
41
+ @media (prefers-color-scheme: light) {
42
+ :root {
43
+ --color-background: var(--light-color-background);
44
+ --color-background-secondary: var(--light-color-background-secondary);
45
+ --color-icon-background: var(--light-color-icon-background);
46
+ --color-accent: var(--light-color-accent);
47
+ --color-text: var(--light-color-text);
48
+ --color-text-aside: var(--light-color-text-aside);
49
+ --color-link: var(--light-color-link);
50
+ --color-ts: var(--light-color-ts);
51
+ --color-ts-interface: var(--light-color-ts-interface);
52
+ --color-ts-enum: var(--light-color-ts-enum);
53
+ --color-ts-class: var(--light-color-ts-class);
54
+ --color-ts-function: var(--light-color-ts-function);
55
+ --color-ts-namespace: var(--light-color-ts-namespace);
56
+ --color-ts-private: var(--light-color-ts-private);
57
+ --color-ts-variable: var(--light-color-ts-variable);
58
+ --external-icon: var(--light-external-icon);
59
+ --color-scheme: var(--light-color-scheme);
60
+ }
61
+ }
62
+
63
+ @media (prefers-color-scheme: dark) {
64
+ :root {
65
+ --color-background: var(--dark-color-background);
66
+ --color-background-secondary: var(--dark-color-background-secondary);
67
+ --color-icon-background: var(--dark-color-icon-background);
68
+ --color-accent: var(--dark-color-accent);
69
+ --color-text: var(--dark-color-text);
70
+ --color-text-aside: var(--dark-color-text-aside);
71
+ --color-link: var(--dark-color-link);
72
+ --color-ts: var(--dark-color-ts);
73
+ --color-ts-interface: var(--dark-color-ts-interface);
74
+ --color-ts-enum: var(--dark-color-ts-enum);
75
+ --color-ts-class: var(--dark-color-ts-class);
76
+ --color-ts-function: var(--dark-color-ts-function);
77
+ --color-ts-namespace: var(--dark-color-ts-namespace);
78
+ --color-ts-private: var(--dark-color-ts-private);
79
+ --color-ts-variable: var(--dark-color-ts-variable);
80
+ --external-icon: var(--dark-external-icon);
81
+ --color-scheme: var(--dark-color-scheme);
82
+ }
83
+ }
84
+
85
+ html {
86
+ color-scheme: var(--color-scheme);
87
+ }
88
+
89
+ body {
90
+ margin: 0;
91
+ }
92
+
93
+ :root[data-theme="light"] {
94
+ --color-background: var(--light-color-background);
95
+ --color-background-secondary: var(--light-color-background-secondary);
96
+ --color-icon-background: var(--light-color-icon-background);
97
+ --color-accent: var(--light-color-accent);
98
+ --color-text: var(--light-color-text);
99
+ --color-text-aside: var(--light-color-text-aside);
100
+ --color-link: var(--light-color-link);
101
+ --color-ts: var(--light-color-ts);
102
+ --color-ts-interface: var(--light-color-ts-interface);
103
+ --color-ts-enum: var(--light-color-ts-enum);
104
+ --color-ts-class: var(--light-color-ts-class);
105
+ --color-ts-function: var(--light-color-ts-function);
106
+ --color-ts-namespace: var(--light-color-ts-namespace);
107
+ --color-ts-private: var(--light-color-ts-private);
108
+ --color-ts-variable: var(--light-color-ts-variable);
109
+ --external-icon: var(--light-external-icon);
110
+ --color-scheme: var(--light-color-scheme);
111
+ }
112
+
113
+ :root[data-theme="dark"] {
114
+ --color-background: var(--dark-color-background);
115
+ --color-background-secondary: var(--dark-color-background-secondary);
116
+ --color-icon-background: var(--dark-color-icon-background);
117
+ --color-accent: var(--dark-color-accent);
118
+ --color-text: var(--dark-color-text);
119
+ --color-text-aside: var(--dark-color-text-aside);
120
+ --color-link: var(--dark-color-link);
121
+ --color-ts: var(--dark-color-ts);
122
+ --color-ts-interface: var(--dark-color-ts-interface);
123
+ --color-ts-enum: var(--dark-color-ts-enum);
124
+ --color-ts-class: var(--dark-color-ts-class);
125
+ --color-ts-function: var(--dark-color-ts-function);
126
+ --color-ts-namespace: var(--dark-color-ts-namespace);
127
+ --color-ts-private: var(--dark-color-ts-private);
128
+ --color-ts-variable: var(--dark-color-ts-variable);
129
+ --external-icon: var(--dark-external-icon);
130
+ --color-scheme: var(--dark-color-scheme);
131
+ }
132
+
133
+ h1,
134
+ h2,
135
+ h3,
136
+ h4,
137
+ h5,
138
+ h6 {
139
+ line-height: 1.2;
140
+ }
141
+
142
+ h1 {
143
+ font-size: 1.875rem;
144
+ margin: 0.67rem 0;
145
+ }
146
+
147
+ h2 {
148
+ font-size: 1.5rem;
149
+ margin: 0.83rem 0;
150
+ }
151
+
152
+ h3 {
153
+ font-size: 1.25rem;
154
+ margin: 1rem 0;
155
+ }
156
+
157
+ h4 {
158
+ font-size: 1.05rem;
159
+ margin: 1.33rem 0;
160
+ }
161
+
162
+ h5 {
163
+ font-size: 1rem;
164
+ margin: 1.5rem 0;
165
+ }
166
+
167
+ h6 {
168
+ font-size: 0.875rem;
169
+ margin: 2.33rem 0;
170
+ }
171
+
172
+ .uppercase {
173
+ text-transform: uppercase;
174
+ }
175
+
176
+ pre {
177
+ white-space: pre;
178
+ white-space: pre-wrap;
179
+ word-wrap: break-word;
180
+ }
181
+
182
+ dl,
183
+ menu,
184
+ ol,
185
+ ul {
186
+ margin: 1em 0;
187
+ }
188
+
189
+ dd {
190
+ margin: 0 0 0 40px;
191
+ }
192
+
193
+ .container {
194
+ max-width: 1600px;
195
+ padding: 0 2rem;
196
+ }
197
+
198
+ @media (min-width: 640px) {
199
+ .container {
200
+ padding: 0 4rem;
201
+ }
202
+ }
203
+ @media (min-width: 1200px) {
204
+ .container {
205
+ padding: 0 8rem;
206
+ }
207
+ }
208
+ @media (min-width: 1600px) {
209
+ .container {
210
+ padding: 0 12rem;
211
+ }
212
+ }
213
+
214
+ /* Footer */
215
+ .tsd-generator {
216
+ border-top: 1px solid var(--color-accent);
217
+ padding-top: 1rem;
218
+ padding-bottom: 1rem;
219
+ max-height: 3.5rem;
220
+ }
221
+
222
+ .tsd-generator > p {
223
+ margin-top: 0;
224
+ margin-bottom: 0;
225
+ padding: 0 1rem;
226
+ }
227
+
228
+ .container-main {
229
+ display: flex;
230
+ justify-content: space-between;
231
+ position: relative;
232
+ margin: 0 auto;
233
+ }
234
+
235
+ .col-4,
236
+ .col-8 {
237
+ box-sizing: border-box;
238
+ float: left;
239
+ padding: 2rem 1rem;
240
+ }
241
+
242
+ .col-4 {
243
+ flex: 0 0 25%;
244
+ }
245
+ .col-8 {
246
+ flex: 1 0;
247
+ flex-wrap: wrap;
248
+ padding-left: 0;
249
+ }
250
+
251
+ ul.tsd-descriptions > li > :first-child,
252
+ .tsd-panel > :first-child,
253
+ .col-8 > :first-child,
254
+ .col-4 > :first-child,
255
+ ul.tsd-descriptions > li > :first-child > :first-child,
256
+ .tsd-panel > :first-child > :first-child,
257
+ .col-8 > :first-child > :first-child,
258
+ .col-4 > :first-child > :first-child,
259
+ ul.tsd-descriptions > li > :first-child > :first-child > :first-child,
260
+ .tsd-panel > :first-child > :first-child > :first-child,
261
+ .col-8 > :first-child > :first-child > :first-child,
262
+ .col-4 > :first-child > :first-child > :first-child {
263
+ margin-top: 0;
264
+ }
265
+ ul.tsd-descriptions > li > :last-child,
266
+ .tsd-panel > :last-child,
267
+ .col-8 > :last-child,
268
+ .col-4 > :last-child,
269
+ ul.tsd-descriptions > li > :last-child > :last-child,
270
+ .tsd-panel > :last-child > :last-child,
271
+ .col-8 > :last-child > :last-child,
272
+ .col-4 > :last-child > :last-child,
273
+ ul.tsd-descriptions > li > :last-child > :last-child > :last-child,
274
+ .tsd-panel > :last-child > :last-child > :last-child,
275
+ .col-8 > :last-child > :last-child > :last-child,
276
+ .col-4 > :last-child > :last-child > :last-child {
277
+ margin-bottom: 0;
278
+ }
279
+
280
+ @keyframes fade-in {
281
+ from {
282
+ opacity: 0;
283
+ }
284
+ to {
285
+ opacity: 1;
286
+ }
287
+ }
288
+ @keyframes fade-out {
289
+ from {
290
+ opacity: 1;
291
+ visibility: visible;
292
+ }
293
+ to {
294
+ opacity: 0;
295
+ }
296
+ }
297
+ @keyframes fade-in-delayed {
298
+ 0% {
299
+ opacity: 0;
300
+ }
301
+ 33% {
302
+ opacity: 0;
303
+ }
304
+ 100% {
305
+ opacity: 1;
306
+ }
307
+ }
308
+ @keyframes fade-out-delayed {
309
+ 0% {
310
+ opacity: 1;
311
+ visibility: visible;
312
+ }
313
+ 66% {
314
+ opacity: 0;
315
+ }
316
+ 100% {
317
+ opacity: 0;
318
+ }
319
+ }
320
+ @keyframes shift-to-left {
321
+ from {
322
+ transform: translate(0, 0);
323
+ }
324
+ to {
325
+ transform: translate(-25%, 0);
326
+ }
327
+ }
328
+ @keyframes unshift-to-left {
329
+ from {
330
+ transform: translate(-25%, 0);
331
+ }
332
+ to {
333
+ transform: translate(0, 0);
334
+ }
335
+ }
336
+ @keyframes pop-in-from-right {
337
+ from {
338
+ transform: translate(100%, 0);
339
+ }
340
+ to {
341
+ transform: translate(0, 0);
342
+ }
343
+ }
344
+ @keyframes pop-out-to-right {
345
+ from {
346
+ transform: translate(0, 0);
347
+ visibility: visible;
348
+ }
349
+ to {
350
+ transform: translate(100%, 0);
351
+ }
352
+ }
353
+ body {
354
+ background: var(--color-background);
355
+ font-family: "Segoe UI", sans-serif;
356
+ font-size: 16px;
357
+ color: var(--color-text);
358
+ }
359
+
360
+ a {
361
+ color: var(--color-link);
362
+ text-decoration: none;
363
+ }
364
+ a:hover {
365
+ text-decoration: underline;
366
+ }
367
+ a.external[target="_blank"] {
368
+ background-image: var(--external-icon);
369
+ background-position: top 3px right;
370
+ background-repeat: no-repeat;
371
+ padding-right: 13px;
372
+ }
373
+
374
+ code,
375
+ pre {
376
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
377
+ padding: 0.2em;
378
+ margin: 0;
379
+ font-size: 0.875rem;
380
+ border-radius: 0.8em;
381
+ }
382
+
383
+ pre {
384
+ padding: 10px;
385
+ border: 0.1em solid var(--color-accent);
386
+ }
387
+ pre code {
388
+ padding: 0;
389
+ font-size: 100%;
390
+ }
391
+
392
+ blockquote {
393
+ margin: 1em 0;
394
+ padding-left: 1em;
395
+ border-left: 4px solid gray;
396
+ }
397
+
398
+ .tsd-typography {
399
+ line-height: 1.333em;
400
+ }
401
+ .tsd-typography ul {
402
+ list-style: square;
403
+ padding: 0 0 0 20px;
404
+ margin: 0;
405
+ }
406
+ .tsd-typography h4,
407
+ .tsd-typography .tsd-index-panel h3,
408
+ .tsd-index-panel .tsd-typography h3,
409
+ .tsd-typography h5,
410
+ .tsd-typography h6 {
411
+ font-size: 1em;
412
+ margin: 0;
413
+ }
414
+ .tsd-typography h5,
415
+ .tsd-typography h6 {
416
+ font-weight: normal;
417
+ }
418
+ .tsd-typography p,
419
+ .tsd-typography ul,
420
+ .tsd-typography ol {
421
+ margin: 1em 0;
422
+ }
423
+
424
+ @media (max-width: 1024px) {
425
+ html .col-content {
426
+ float: none;
427
+ max-width: 100%;
428
+ width: 100%;
429
+ padding-top: 3rem;
430
+ }
431
+ html .col-menu {
432
+ position: fixed !important;
433
+ overflow-y: auto;
434
+ -webkit-overflow-scrolling: touch;
435
+ z-index: 1024;
436
+ top: 0 !important;
437
+ bottom: 0 !important;
438
+ left: auto !important;
439
+ right: 0 !important;
440
+ padding: 1.5rem 1.5rem 0 0;
441
+ max-width: 25rem;
442
+ visibility: hidden;
443
+ background-color: var(--color-background);
444
+ transform: translate(100%, 0);
445
+ }
446
+ html .col-menu > *:last-child {
447
+ padding-bottom: 20px;
448
+ }
449
+ html .overlay {
450
+ content: "";
451
+ display: block;
452
+ position: fixed;
453
+ z-index: 1023;
454
+ top: 0;
455
+ left: 0;
456
+ right: 0;
457
+ bottom: 0;
458
+ background-color: rgba(0, 0, 0, 0.75);
459
+ visibility: hidden;
460
+ }
461
+
462
+ .to-has-menu .overlay {
463
+ animation: fade-in 0.4s;
464
+ }
465
+
466
+ .to-has-menu :is(header, footer, .col-content) {
467
+ animation: shift-to-left 0.4s;
468
+ }
469
+
470
+ .to-has-menu .col-menu {
471
+ animation: pop-in-from-right 0.4s;
472
+ }
473
+
474
+ .from-has-menu .overlay {
475
+ animation: fade-out 0.4s;
476
+ }
477
+
478
+ .from-has-menu :is(header, footer, .col-content) {
479
+ animation: unshift-to-left 0.4s;
480
+ }
481
+
482
+ .from-has-menu .col-menu {
483
+ animation: pop-out-to-right 0.4s;
484
+ }
485
+
486
+ .has-menu body {
487
+ overflow: hidden;
488
+ }
489
+ .has-menu .overlay {
490
+ visibility: visible;
491
+ }
492
+ .has-menu :is(header, footer, .col-content) {
493
+ transform: translate(-25%, 0);
494
+ }
495
+ .has-menu .col-menu {
496
+ visibility: visible;
497
+ transform: translate(0, 0);
498
+ display: grid;
499
+ align-items: center;
500
+ grid-template-rows: auto 1fr;
501
+ grid-gap: 1.5rem;
502
+ max-height: 100vh;
503
+ padding: 1rem 2rem;
504
+ }
505
+ .has-menu .tsd-navigation {
506
+ max-height: 100%;
507
+ }
508
+ }
509
+
510
+ .tsd-breadcrumb {
511
+ margin: 0;
512
+ padding: 0;
513
+ color: var(--color-text-aside);
514
+ }
515
+ .tsd-breadcrumb a {
516
+ color: var(--color-text-aside);
517
+ text-decoration: none;
518
+ }
519
+ .tsd-breadcrumb a:hover {
520
+ text-decoration: underline;
521
+ }
522
+ .tsd-breadcrumb li {
523
+ display: inline;
524
+ }
525
+ .tsd-breadcrumb li:after {
526
+ content: " / ";
527
+ }
528
+
529
+ .tsd-comment-tags {
530
+ display: flex;
531
+ flex-direction: column;
532
+ }
533
+ dl.tsd-comment-tag-group {
534
+ display: flex;
535
+ align-items: center;
536
+ overflow: hidden;
537
+ margin: 0.5em 0;
538
+ }
539
+ dl.tsd-comment-tag-group dt {
540
+ display: flex;
541
+ margin-right: 0.5em;
542
+ font-size: 0.875em;
543
+ font-weight: normal;
544
+ }
545
+ dl.tsd-comment-tag-group dd {
546
+ margin: 0;
547
+ }
548
+ code.tsd-tag {
549
+ padding: 0.25em 0.4em;
550
+ border: 0.1em solid var(--color-accent);
551
+ margin-right: 0.25em;
552
+ font-size: 70%;
553
+ }
554
+ h1 code.tsd-tag:first-of-type {
555
+ margin-left: 0.25em;
556
+ }
557
+
558
+ dl.tsd-comment-tag-group dd:before,
559
+ dl.tsd-comment-tag-group dd:after {
560
+ content: " ";
561
+ }
562
+ dl.tsd-comment-tag-group dd pre,
563
+ dl.tsd-comment-tag-group dd:after {
564
+ clear: both;
565
+ }
566
+ dl.tsd-comment-tag-group p {
567
+ margin: 0;
568
+ }
569
+
570
+ .tsd-panel.tsd-comment .lead {
571
+ font-size: 1.1em;
572
+ line-height: 1.333em;
573
+ margin-bottom: 2em;
574
+ }
575
+ .tsd-panel.tsd-comment .lead:last-child {
576
+ margin-bottom: 0;
577
+ }
578
+
579
+ .tsd-filter-visibility h4 {
580
+ font-size: 1rem;
581
+ padding-top: 0.75rem;
582
+ padding-bottom: 0.5rem;
583
+ margin: 0;
584
+ }
585
+ .tsd-filter-item:not(:last-child) {
586
+ margin-bottom: 0.5rem;
587
+ }
588
+ .tsd-filter-input {
589
+ display: flex;
590
+ width: fit-content;
591
+ width: -moz-fit-content;
592
+ align-items: center;
593
+ user-select: none;
594
+ -webkit-user-select: none;
595
+ -moz-user-select: none;
596
+ -ms-user-select: none;
597
+ cursor: pointer;
598
+ }
599
+ .tsd-filter-input input[type="checkbox"] {
600
+ cursor: pointer;
601
+ position: absolute;
602
+ width: 1.5em;
603
+ height: 1.5em;
604
+ opacity: 0;
605
+ }
606
+ .tsd-filter-input input[type="checkbox"]:disabled {
607
+ pointer-events: none;
608
+ }
609
+ .tsd-filter-input svg {
610
+ cursor: pointer;
611
+ width: 1.5em;
612
+ height: 1.5em;
613
+ margin-right: 0.5em;
614
+ border-radius: 0.33em;
615
+ /* Leaving this at full opacity breaks event listeners on Firefox.
616
+ Don't remove unless you know what you're doing. */
617
+ opacity: 0.99;
618
+ }
619
+ .tsd-filter-input input[type="checkbox"]:focus + svg {
620
+ transform: scale(0.95);
621
+ }
622
+ .tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg {
623
+ transform: scale(1);
624
+ }
625
+ .tsd-checkbox-background {
626
+ fill: var(--color-accent);
627
+ }
628
+ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
629
+ stroke: var(--color-text);
630
+ }
631
+ .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background {
632
+ fill: var(--color-background);
633
+ stroke: var(--color-accent);
634
+ stroke-width: 0.25rem;
635
+ }
636
+ .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark {
637
+ stroke: var(--color-accent);
638
+ }
639
+
640
+ .tsd-theme-toggle {
641
+ padding-top: 0.75rem;
642
+ }
643
+ .tsd-theme-toggle > h4 {
644
+ display: inline;
645
+ vertical-align: middle;
646
+ margin-right: 0.75rem;
647
+ }
648
+
649
+ .tsd-hierarchy {
650
+ list-style: square;
651
+ margin: 0;
652
+ }
653
+ .tsd-hierarchy .target {
654
+ font-weight: bold;
655
+ }
656
+
657
+ .tsd-panel-group.tsd-index-group {
658
+ margin-bottom: 0;
659
+ }
660
+ .tsd-index-panel .tsd-index-list {
661
+ list-style: none;
662
+ line-height: 1.333em;
663
+ margin: 0;
664
+ padding: 0.25rem 0 0 0;
665
+ overflow: hidden;
666
+ display: grid;
667
+ grid-template-columns: repeat(3, 1fr);
668
+ column-gap: 1rem;
669
+ grid-template-rows: auto;
670
+ }
671
+ @media (max-width: 1024px) {
672
+ .tsd-index-panel .tsd-index-list {
673
+ grid-template-columns: repeat(2, 1fr);
674
+ }
675
+ }
676
+ @media (max-width: 768px) {
677
+ .tsd-index-panel .tsd-index-list {
678
+ grid-template-columns: repeat(1, 1fr);
679
+ }
680
+ }
681
+ .tsd-index-panel .tsd-index-list li {
682
+ -webkit-page-break-inside: avoid;
683
+ -moz-page-break-inside: avoid;
684
+ -ms-page-break-inside: avoid;
685
+ -o-page-break-inside: avoid;
686
+ page-break-inside: avoid;
687
+ }
688
+ .tsd-index-panel a,
689
+ .tsd-index-panel a.tsd-parent-kind-module {
690
+ color: var(--color-ts);
691
+ }
692
+ .tsd-index-panel a.tsd-parent-kind-interface {
693
+ color: var(--color-ts-interface);
694
+ }
695
+ .tsd-index-panel a.tsd-parent-kind-enum {
696
+ color: var(--color-ts-enum);
697
+ }
698
+ .tsd-index-panel a.tsd-parent-kind-class {
699
+ color: var(--color-ts-class);
700
+ }
701
+ .tsd-index-panel a.tsd-kind-module {
702
+ color: var(--color-ts-namespace);
703
+ }
704
+ .tsd-index-panel a.tsd-kind-interface {
705
+ color: var(--color-ts-interface);
706
+ }
707
+ .tsd-index-panel a.tsd-kind-enum {
708
+ color: var(--color-ts-enum);
709
+ }
710
+ .tsd-index-panel a.tsd-kind-class {
711
+ color: var(--color-ts-class);
712
+ }
713
+ .tsd-index-panel a.tsd-kind-function {
714
+ color: var(--color-ts-function);
715
+ }
716
+ .tsd-index-panel a.tsd-kind-namespace {
717
+ color: var(--color-ts-namespace);
718
+ }
719
+ .tsd-index-panel a.tsd-kind-variable {
720
+ color: var(--color-ts-variable);
721
+ }
722
+ .tsd-index-panel a.tsd-is-private {
723
+ color: var(--color-ts-private);
724
+ }
725
+
726
+ .tsd-flag {
727
+ display: inline-block;
728
+ padding: 0.25em 0.4em;
729
+ border-radius: 4px;
730
+ color: var(--color-comment-tag-text);
731
+ background-color: var(--color-comment-tag);
732
+ text-indent: 0;
733
+ font-size: 75%;
734
+ line-height: 1;
735
+ font-weight: normal;
736
+ }
737
+
738
+ .tsd-anchor {
739
+ position: absolute;
740
+ top: -100px;
741
+ }
742
+
743
+ .tsd-member {
744
+ position: relative;
745
+ }
746
+ .tsd-member .tsd-anchor + h3 {
747
+ display: flex;
748
+ align-items: center;
749
+ margin-top: 0;
750
+ margin-bottom: 0;
751
+ border-bottom: none;
752
+ }
753
+ .tsd-member [data-tsd-kind] {
754
+ color: var(--color-ts);
755
+ }
756
+ .tsd-member [data-tsd-kind="Interface"] {
757
+ color: var(--color-ts-interface);
758
+ }
759
+ .tsd-member [data-tsd-kind="Enum"] {
760
+ color: var(--color-ts-enum);
761
+ }
762
+ .tsd-member [data-tsd-kind="Class"] {
763
+ color: var(--color-ts-class);
764
+ }
765
+ .tsd-member [data-tsd-kind="Private"] {
766
+ color: var(--color-ts-private);
767
+ }
768
+
769
+ .tsd-navigation a {
770
+ display: block;
771
+ margin: 0.4rem 0;
772
+ border-left: 2px solid transparent;
773
+ color: var(--color-text);
774
+ text-decoration: none;
775
+ transition: border-left-color 0.1s;
776
+ }
777
+ .tsd-navigation a:hover {
778
+ text-decoration: underline;
779
+ }
780
+ .tsd-navigation ul {
781
+ margin: 0;
782
+ padding: 0;
783
+ list-style: none;
784
+ }
785
+ .tsd-navigation li {
786
+ padding: 0;
787
+ }
788
+
789
+ .tsd-navigation.primary .tsd-accordion-details > ul {
790
+ margin-top: 0.75rem;
791
+ }
792
+ .tsd-navigation.primary a {
793
+ padding: 0.75rem 0.5rem;
794
+ margin: 0;
795
+ }
796
+ .tsd-navigation.primary ul li a {
797
+ margin-left: 0.5rem;
798
+ }
799
+ .tsd-navigation.primary ul li li a {
800
+ margin-left: 1.5rem;
801
+ }
802
+ .tsd-navigation.primary ul li li li a {
803
+ margin-left: 2.5rem;
804
+ }
805
+ .tsd-navigation.primary ul li li li li a {
806
+ margin-left: 3.5rem;
807
+ }
808
+ .tsd-navigation.primary ul li li li li li a {
809
+ margin-left: 4.5rem;
810
+ }
811
+ .tsd-navigation.primary ul li li li li li li a {
812
+ margin-left: 5.5rem;
813
+ }
814
+ .tsd-navigation.primary li.current > a {
815
+ border-left: 0.15rem var(--color-text) solid;
816
+ }
817
+ .tsd-navigation.primary li.selected > a {
818
+ font-weight: bold;
819
+ border-left: 0.2rem var(--color-text) solid;
820
+ }
821
+ .tsd-navigation.primary ul li a:hover {
822
+ border-left: 0.2rem var(--color-text-aside) solid;
823
+ }
824
+ .tsd-navigation.primary li.globals + li > span,
825
+ .tsd-navigation.primary li.globals + li > a {
826
+ padding-top: 20px;
827
+ }
828
+
829
+ .tsd-navigation.secondary.tsd-navigation--toolbar-hide {
830
+ max-height: calc(100vh - 1rem);
831
+ top: 0.5rem;
832
+ }
833
+ .tsd-navigation.secondary > ul {
834
+ display: inline;
835
+ padding-right: 0.5rem;
836
+ transition: opacity 0.2s;
837
+ }
838
+ .tsd-navigation.secondary ul li a {
839
+ padding-left: 0;
840
+ }
841
+ .tsd-navigation.secondary ul li li a {
842
+ padding-left: 1.1rem;
843
+ }
844
+ .tsd-navigation.secondary ul li li li a {
845
+ padding-left: 2.2rem;
846
+ }
847
+ .tsd-navigation.secondary ul li li li li a {
848
+ padding-left: 3.3rem;
849
+ }
850
+ .tsd-navigation.secondary ul li li li li li a {
851
+ padding-left: 4.4rem;
852
+ }
853
+ .tsd-navigation.secondary ul li li li li li li a {
854
+ padding-left: 5.5rem;
855
+ }
856
+
857
+ a.tsd-index-link {
858
+ margin: 0.25rem 0;
859
+ font-size: 1rem;
860
+ line-height: 1.25rem;
861
+ display: inline-flex;
862
+ align-items: center;
863
+ }
864
+ .tsd-accordion-summary > h1,
865
+ .tsd-accordion-summary > h2,
866
+ .tsd-accordion-summary > h3,
867
+ .tsd-accordion-summary > h4,
868
+ .tsd-accordion-summary > h5 {
869
+ display: inline-flex;
870
+ align-items: center;
871
+ vertical-align: middle;
872
+ margin-bottom: 0;
873
+ user-select: none;
874
+ -moz-user-select: none;
875
+ -webkit-user-select: none;
876
+ -ms-user-select: none;
877
+ }
878
+ .tsd-accordion-summary {
879
+ display: block;
880
+ cursor: pointer;
881
+ }
882
+ .tsd-accordion-summary > * {
883
+ margin-top: 0;
884
+ margin-bottom: 0;
885
+ padding-top: 0;
886
+ padding-bottom: 0;
887
+ }
888
+ .tsd-accordion-summary::-webkit-details-marker {
889
+ display: none;
890
+ }
891
+ .tsd-index-accordion .tsd-accordion-summary svg {
892
+ margin-right: 0.25rem;
893
+ }
894
+ .tsd-index-content > :not(:first-child) {
895
+ margin-top: 0.75rem;
896
+ }
897
+ .tsd-index-heading {
898
+ margin-top: 1.5rem;
899
+ margin-bottom: 0.75rem;
900
+ }
901
+
902
+ .tsd-kind-icon {
903
+ margin-right: 0.5rem;
904
+ width: 1.25rem;
905
+ height: 1.25rem;
906
+ min-width: 1.25rem;
907
+ min-height: 1.25rem;
908
+ }
909
+ .tsd-kind-icon path {
910
+ transform-origin: center;
911
+ transform: scale(1.1);
912
+ }
913
+ .tsd-signature > .tsd-kind-icon {
914
+ margin-right: 0.8rem;
915
+ }
916
+
917
+ @media (min-width: 1024px) {
918
+ .col-content {
919
+ margin: 2rem auto;
920
+ }
921
+
922
+ .menu-sticky-wrap {
923
+ position: sticky;
924
+ height: calc(100vh - 2rem);
925
+ top: 4rem;
926
+ right: 0;
927
+ padding: 0 1.5rem;
928
+ padding-top: 1rem;
929
+ margin-top: 3rem;
930
+ transition: 0.3s ease-in-out;
931
+ transition-property: top, padding-top, padding, height;
932
+ overflow-y: auto;
933
+ }
934
+ .col-menu {
935
+ border-left: 1px solid var(--color-accent);
936
+ }
937
+ .col-menu--hide {
938
+ top: 1rem;
939
+ }
940
+ .col-menu .tsd-navigation:not(:last-child) {
941
+ padding-bottom: 1.75rem;
942
+ }
943
+ }
944
+
945
+ .tsd-panel {
946
+ margin-bottom: 2.5rem;
947
+ }
948
+ .tsd-panel.tsd-member {
949
+ margin-bottom: 4rem;
950
+ }
951
+ .tsd-panel:empty {
952
+ display: none;
953
+ }
954
+ .tsd-panel > h1,
955
+ .tsd-panel > h2,
956
+ .tsd-panel > h3 {
957
+ margin: 1.5rem -1.5rem 0.75rem -1.5rem;
958
+ padding: 0 1.5rem 0.75rem 1.5rem;
959
+ }
960
+ .tsd-panel > h1.tsd-before-signature,
961
+ .tsd-panel > h2.tsd-before-signature,
962
+ .tsd-panel > h3.tsd-before-signature {
963
+ margin-bottom: 0;
964
+ border-bottom: none;
965
+ }
966
+
967
+ .tsd-panel-group {
968
+ margin: 4rem 0;
969
+ }
970
+ .tsd-panel-group.tsd-index-group {
971
+ margin: 2rem 0;
972
+ }
973
+ .tsd-panel-group.tsd-index-group details {
974
+ margin: 4rem 0;
975
+ }
976
+
977
+ #tsd-search {
978
+ transition: background-color 0.2s;
979
+ }
980
+ #tsd-search .title {
981
+ position: relative;
982
+ z-index: 2;
983
+ }
984
+ #tsd-search .field {
985
+ position: absolute;
986
+ left: 0;
987
+ top: 0;
988
+ right: 2.5rem;
989
+ height: 100%;
990
+ }
991
+ #tsd-search .field input {
992
+ box-sizing: border-box;
993
+ position: relative;
994
+ top: -50px;
995
+ z-index: 1;
996
+ width: 100%;
997
+ padding: 0 10px;
998
+ opacity: 0;
999
+ outline: 0;
1000
+ border: 0;
1001
+ background: transparent;
1002
+ color: var(--color-text);
1003
+ }
1004
+ #tsd-search .field label {
1005
+ position: absolute;
1006
+ overflow: hidden;
1007
+ right: -40px;
1008
+ }
1009
+ #tsd-search .field input,
1010
+ #tsd-search .title {
1011
+ transition: opacity 0.2s;
1012
+ }
1013
+ #tsd-search .results {
1014
+ position: absolute;
1015
+ visibility: hidden;
1016
+ top: 40px;
1017
+ width: 100%;
1018
+ margin: 0;
1019
+ padding: 0;
1020
+ list-style: none;
1021
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
1022
+ }
1023
+ #tsd-search .results li {
1024
+ padding: 0 10px;
1025
+ background-color: var(--color-background);
1026
+ }
1027
+ #tsd-search .results li:nth-child(even) {
1028
+ background-color: var(--color-background-secondary);
1029
+ }
1030
+ #tsd-search .results li.state {
1031
+ display: none;
1032
+ }
1033
+ #tsd-search .results li.current,
1034
+ #tsd-search .results li:hover {
1035
+ background-color: var(--color-accent);
1036
+ }
1037
+ #tsd-search .results a {
1038
+ display: block;
1039
+ }
1040
+ #tsd-search .results a:before {
1041
+ top: 10px;
1042
+ }
1043
+ #tsd-search .results span.parent {
1044
+ color: var(--color-text-aside);
1045
+ font-weight: normal;
1046
+ }
1047
+ #tsd-search.has-focus {
1048
+ background-color: var(--color-accent);
1049
+ }
1050
+ #tsd-search.has-focus .field input {
1051
+ top: 0;
1052
+ opacity: 1;
1053
+ }
1054
+ #tsd-search.has-focus .title {
1055
+ z-index: 0;
1056
+ opacity: 0;
1057
+ }
1058
+ #tsd-search.has-focus .results {
1059
+ visibility: visible;
1060
+ }
1061
+ #tsd-search.loading .results li.state.loading {
1062
+ display: block;
1063
+ }
1064
+ #tsd-search.failure .results li.state.failure {
1065
+ display: block;
1066
+ }
1067
+
1068
+ .tsd-signature {
1069
+ margin: 0 0 1rem 0;
1070
+ padding: 1rem 0.5rem;
1071
+ border: 1px solid var(--color-accent);
1072
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
1073
+ font-size: 14px;
1074
+ overflow-x: auto;
1075
+ }
1076
+ .tsd-panel > .tsd-signature {
1077
+ border-width: 1px 0;
1078
+ }
1079
+
1080
+ .tsd-signature-symbol {
1081
+ color: var(--color-text-aside);
1082
+ font-weight: normal;
1083
+ }
1084
+
1085
+ .tsd-signature-type {
1086
+ font-style: italic;
1087
+ font-weight: normal;
1088
+ }
1089
+
1090
+ .tsd-signatures {
1091
+ padding: 0;
1092
+ margin: 0 0 1em 0;
1093
+ border: 1px solid var(--color-accent);
1094
+ }
1095
+ .tsd-signatures .tsd-signature {
1096
+ margin: 0;
1097
+ border-width: 1px 0 0 0;
1098
+ transition: background-color 0.1s;
1099
+ }
1100
+ .tsd-signatures .tsd-signature:first-child {
1101
+ border-top-width: 0;
1102
+ }
1103
+ .tsd-signatures .tsd-signature.current {
1104
+ background-color: var(--color-background-secondary);
1105
+ }
1106
+ .tsd-signatures.active > .tsd-signature {
1107
+ cursor: pointer;
1108
+ }
1109
+ .tsd-panel > .tsd-signatures {
1110
+ border-width: 1px 0;
1111
+ }
1112
+ .tsd-panel > a.anchor + .tsd-signatures {
1113
+ border-top-width: 0;
1114
+ margin-top: -20px;
1115
+ }
1116
+
1117
+ ul.tsd-descriptions {
1118
+ position: relative;
1119
+ overflow: hidden;
1120
+ padding: 0;
1121
+ list-style: none;
1122
+ }
1123
+ ul.tsd-descriptions.active > .tsd-description {
1124
+ display: none;
1125
+ }
1126
+ ul.tsd-descriptions.active > .tsd-description.current {
1127
+ display: block;
1128
+ }
1129
+ ul.tsd-descriptions.active > .tsd-description.fade-in {
1130
+ animation: fade-in-delayed 0.3s;
1131
+ }
1132
+ ul.tsd-descriptions.active > .tsd-description.fade-out {
1133
+ animation: fade-out-delayed 0.3s;
1134
+ position: absolute;
1135
+ display: block;
1136
+ top: 0;
1137
+ left: 0;
1138
+ right: 0;
1139
+ opacity: 0;
1140
+ visibility: hidden;
1141
+ }
1142
+ ul.tsd-descriptions h4,
1143
+ ul.tsd-descriptions .tsd-index-panel h3,
1144
+ .tsd-index-panel ul.tsd-descriptions h3 {
1145
+ font-size: 16px;
1146
+ margin: 1em 0 0.5em 0;
1147
+ }
1148
+
1149
+ ul.tsd-parameter-list,
1150
+ ul.tsd-type-parameter-list {
1151
+ list-style: square;
1152
+ margin: 0;
1153
+ padding-left: 20px;
1154
+ }
1155
+ ul.tsd-parameter-list > li.tsd-parameter-signature,
1156
+ ul.tsd-type-parameter-list > li.tsd-parameter-signature {
1157
+ list-style: none;
1158
+ margin-left: -20px;
1159
+ }
1160
+ ul.tsd-parameter-list h5,
1161
+ ul.tsd-type-parameter-list h5 {
1162
+ font-size: 16px;
1163
+ margin: 1em 0 0.5em 0;
1164
+ }
1165
+ .tsd-sources {
1166
+ margin-top: 1rem;
1167
+ font-size: 0.875em;
1168
+ }
1169
+ .tsd-sources a {
1170
+ color: var(--color-text-aside);
1171
+ text-decoration: underline;
1172
+ }
1173
+ .tsd-sources ul {
1174
+ list-style: none;
1175
+ padding: 0;
1176
+ }
1177
+
1178
+ .tsd-page-toolbar {
1179
+ position: fixed;
1180
+ z-index: 1;
1181
+ top: 0;
1182
+ left: 0;
1183
+ width: 100%;
1184
+ color: var(--color-text);
1185
+ background: var(--color-background-secondary);
1186
+ border-bottom: 1px var(--color-accent) solid;
1187
+ transition: transform 0.3s ease-in-out;
1188
+ }
1189
+ .tsd-page-toolbar a {
1190
+ color: var(--color-text);
1191
+ text-decoration: none;
1192
+ }
1193
+ .tsd-page-toolbar a.title {
1194
+ font-weight: bold;
1195
+ }
1196
+ .tsd-page-toolbar a.title:hover {
1197
+ text-decoration: underline;
1198
+ }
1199
+ .tsd-page-toolbar .tsd-toolbar-contents {
1200
+ display: flex;
1201
+ justify-content: space-between;
1202
+ height: 2.5rem;
1203
+ }
1204
+ .tsd-page-toolbar .table-cell {
1205
+ position: relative;
1206
+ white-space: nowrap;
1207
+ line-height: 40px;
1208
+ }
1209
+ .tsd-page-toolbar .table-cell:first-child {
1210
+ width: 100%;
1211
+ }
1212
+
1213
+ .tsd-page-toolbar--hide {
1214
+ transform: translateY(-100%);
1215
+ }
1216
+
1217
+ .tsd-widget {
1218
+ display: inline-block;
1219
+ overflow: hidden;
1220
+ opacity: 0.8;
1221
+ height: 40px;
1222
+ transition: opacity 0.1s, background-color 0.2s;
1223
+ vertical-align: bottom;
1224
+ cursor: pointer;
1225
+ }
1226
+ .tsd-widget:hover {
1227
+ opacity: 0.9;
1228
+ }
1229
+ .tsd-widget.active {
1230
+ opacity: 1;
1231
+ background-color: var(--color-accent);
1232
+ }
1233
+ .tsd-widget.no-caption {
1234
+ width: 40px;
1235
+ }
1236
+ .tsd-widget.no-caption:before {
1237
+ margin: 0;
1238
+ }
1239
+
1240
+ .tsd-widget.options,
1241
+ .tsd-widget.menu {
1242
+ display: none;
1243
+ }
1244
+ @media (max-width: 1024px) {
1245
+ .tsd-widget.options,
1246
+ .tsd-widget.menu {
1247
+ display: inline-block;
1248
+ }
1249
+ }
1250
+ input[type="checkbox"] + .tsd-widget:before {
1251
+ background-position: -120px 0;
1252
+ }
1253
+ input[type="checkbox"]:checked + .tsd-widget:before {
1254
+ background-position: -160px 0;
1255
+ }
1256
+
1257
+ img {
1258
+ max-width: 100%;
1259
+ }
1260
+
1261
+ .tsd-anchor-icon {
1262
+ display: inline-flex;
1263
+ align-items: center;
1264
+ margin-left: 0.5rem;
1265
+ vertical-align: middle;
1266
+ color: var(--color-text);
1267
+ }
1268
+
1269
+ .tsd-anchor-icon svg {
1270
+ width: 1em;
1271
+ height: 1em;
1272
+ visibility: hidden;
1273
+ }
1274
+
1275
+ .tsd-anchor-link:hover > .tsd-anchor-icon svg {
1276
+ visibility: visible;
1277
+ }
1278
+
1279
+ .deprecated {
1280
+ text-decoration: line-through;
1281
+ }
1282
+
1283
+ * {
1284
+ scrollbar-width: thin;
1285
+ scrollbar-color: var(--color-accent) var(--color-icon-background);
1286
+ }
1287
+
1288
+ *::-webkit-scrollbar {
1289
+ width: 0.75rem;
1290
+ }
1291
+
1292
+ *::-webkit-scrollbar-track {
1293
+ background: var(--color-icon-background);
1294
+ }
1295
+
1296
+ *::-webkit-scrollbar-thumb {
1297
+ background-color: var(--color-accent);
1298
+ border-radius: 999rem;
1299
+ border: 0.25rem solid var(--color-icon-background);
1300
+ }