@operato/utils 2.0.0-alpha.8 → 2.0.0-beta.13

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 (40) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/demo/index.html +13 -2
  3. package/dist/src/decode-html.d.ts +1 -0
  4. package/dist/src/decode-html.js +6 -0
  5. package/dist/src/decode-html.js.map +1 -0
  6. package/dist/src/detect-overflow.d.ts +1 -0
  7. package/dist/src/detect-overflow.js +1 -0
  8. package/dist/src/detect-overflow.js.map +1 -1
  9. package/dist/src/has-overflow.d.ts +7 -0
  10. package/dist/src/has-overflow.js +19 -0
  11. package/dist/src/has-overflow.js.map +1 -0
  12. package/dist/src/index.d.ts +5 -1
  13. package/dist/src/index.js +6 -2
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/longpressable.d.ts +8 -0
  16. package/dist/src/longpressable.js +83 -0
  17. package/dist/src/longpressable.js.map +1 -0
  18. package/dist/src/{checker.js → number-parser.js} +1 -1
  19. package/dist/src/number-parser.js.map +1 -0
  20. package/dist/src/reactive-controllers/index.d.ts +1 -0
  21. package/dist/src/reactive-controllers/index.js +2 -0
  22. package/dist/src/reactive-controllers/index.js.map +1 -0
  23. package/dist/src/reactive-controllers/tooltip-mouse-controller.d.ts +10 -0
  24. package/dist/src/reactive-controllers/tooltip-mouse-controller.js +43 -0
  25. package/dist/src/reactive-controllers/tooltip-mouse-controller.js.map +1 -0
  26. package/dist/src/reactive-controllers/tooltip-reactive-controller.d.ts +40 -0
  27. package/dist/src/reactive-controllers/tooltip-reactive-controller.js +70 -0
  28. package/dist/src/reactive-controllers/tooltip-reactive-controller.js.map +1 -0
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +12 -12
  31. package/src/decode-html.ts +5 -0
  32. package/src/detect-overflow.ts +1 -0
  33. package/src/has-overflow.ts +22 -0
  34. package/src/index.ts +7 -2
  35. package/src/longpressable.ts +101 -0
  36. package/src/reactive-controllers/index.ts +1 -0
  37. package/src/reactive-controllers/tooltip-reactive-controller.ts +89 -0
  38. package/dist/src/checker.js.map +0 -1
  39. /package/dist/src/{checker.d.ts → number-parser.d.ts} +0 -0
  40. /package/src/{checker.ts → number-parser.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,100 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.0-beta.13](https://github.com/hatiolab/operato/compare/v2.0.0-beta.12...v2.0.0-beta.13) (2024-06-09)
7
+
8
+
9
+ ### :rocket: New Features
10
+
11
+ * tooltip-reactive-controller for mouse over/out ([73f069b](https://github.com/hatiolab/operato/commit/73f069b4e8c1472cc991010bbe7b3866035a05f0))
12
+
13
+
14
+
15
+ ## [2.0.0-beta.0](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.158...v2.0.0-beta.0) (2024-06-01)
16
+
17
+ **Note:** Version bump only for package @operato/utils
18
+
19
+
20
+
21
+
22
+
23
+ ## [2.0.0-alpha.154](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.153...v2.0.0-alpha.154) (2024-06-01)
24
+
25
+ **Note:** Version bump only for package @operato/utils
26
+
27
+
28
+
29
+
30
+
31
+ ## [2.0.0-alpha.145](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.144...v2.0.0-alpha.145) (2024-05-28)
32
+
33
+
34
+ ### :rocket: New Features
35
+
36
+ * add decode-html @operato/utils ([247e442](https://github.com/hatiolab/operato/commit/247e442331a4922cfce86d77be234d38ad085633))
37
+
38
+
39
+
40
+ ## [2.0.0-alpha.122](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.121...v2.0.0-alpha.122) (2024-05-06)
41
+
42
+
43
+ ### :bug: Bug Fix
44
+
45
+ * migrate longpressable from things-factory/utils to operato/utils ([299c35e](https://github.com/hatiolab/operato/commit/299c35eab7c0e1b8359e64dfbbde36eb312d4331))
46
+
47
+
48
+
49
+ ## [2.0.0-alpha.111](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.110...v2.0.0-alpha.111) (2024-05-02)
50
+
51
+ **Note:** Version bump only for package @operato/utils
52
+
53
+
54
+
55
+
56
+
57
+ ## [2.0.0-alpha.110](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.109...v2.0.0-alpha.110) (2024-05-02)
58
+
59
+ **Note:** Version bump only for package @operato/utils
60
+
61
+
62
+
63
+
64
+
65
+ ## [2.0.0-alpha.68](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.67...v2.0.0-alpha.68) (2024-04-13)
66
+
67
+
68
+ ### :bug: Bug Fix
69
+
70
+ * mwc=>md for context ([2bc13f2](https://github.com/hatiolab/operato/commit/2bc13f285f257782f73e5d7b5d1ddd197df85393))
71
+
72
+
73
+
74
+ ## [2.0.0-alpha.57](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.56...v2.0.0-alpha.57) (2024-04-07)
75
+
76
+ **Note:** Version bump only for package @operato/utils
77
+
78
+
79
+
80
+
81
+
82
+ ## [2.0.0-alpha.35](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.34...v2.0.0-alpha.35) (2024-03-13)
83
+
84
+
85
+ ### :bug: Bug Fix
86
+
87
+ * 리팩토링 grist editor 인라인에디터 ([a8922c4](https://github.com/hatiolab/operato/commit/a8922c40f960596ac58aea885fd7501267fd2d8b))
88
+
89
+
90
+
91
+ ## [2.0.0-alpha.28](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.27...v2.0.0-alpha.28) (2024-02-20)
92
+
93
+
94
+ ### :bug: Bug Fix
95
+
96
+ * upgrade devDependencies for webcomponents ([1489b8b](https://github.com/hatiolab/operato/commit/1489b8b790d9bcee779a070a630697f25c01728f))
97
+
98
+
99
+
6
100
  ## [2.0.0-alpha.8](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.7...v2.0.0-alpha.8) (2024-01-20)
7
101
 
8
102
 
package/demo/index.html CHANGED
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="en-GB">
3
3
  <head>
4
4
  <meta charset="utf-8" />
@@ -16,7 +16,18 @@
16
16
  }
17
17
  </style>
18
18
  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
19
- <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
19
+ <link
20
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
21
+ rel="stylesheet"
22
+ />
23
+ <link
24
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
25
+ rel="stylesheet"
26
+ />
27
+ <link
28
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
29
+ rel="stylesheet"
30
+ />
20
31
  </head>
21
32
  <body>
22
33
  <div id="demo"></div>
@@ -0,0 +1 @@
1
+ export declare function decodeHTML(html: string): string;
@@ -0,0 +1,6 @@
1
+ export function decodeHTML(html) {
2
+ var txt = document.createElement('textarea');
3
+ txt.innerHTML = html;
4
+ return txt.value;
5
+ }
6
+ //# sourceMappingURL=decode-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-html.js","sourceRoot":"","sources":["../../src/decode-html.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,GAAG,CAAC,KAAK,CAAC;AACnB,CAAC","sourcesContent":["export function decodeHTML(html: string) {\n var txt = document.createElement('textarea');\n txt.innerHTML = html;\n return txt.value;\n}\n"]}
@@ -3,5 +3,6 @@
3
3
  *
4
4
  * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
5
  * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ * @deprecated This function is no longer recommended for use and has been replaced by 'hasOverflow'.
6
7
  */
7
8
  export declare function detectOverflow(el: HTMLElement): boolean;
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
5
  * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ * @deprecated This function is no longer recommended for use and has been replaced by 'hasOverflow'.
6
7
  */
7
8
  export function detectOverflow(el) {
8
9
  var styleOverflow = el.style.overflow;
@@ -1 +1 @@
1
- {"version":3,"file":"detect-overflow.js","sourceRoot":"","sources":["../../src/detect-overflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAe;IAC5C,IAAI,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;IAErC,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,SAAS;QAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE/E,IAAI,UAAU,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAErF,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;IAEjC,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["/**\n * Detects if the content of an HTMLElement overflows its boundaries.\n *\n * @param {HTMLElement} el - The HTMLElement to check for overflow.\n * @returns {boolean} - `true` if overflow is detected, `false` otherwise.\n */\nexport function detectOverflow(el: HTMLElement) {\n var styleOverflow = el.style.overflow\n\n if (!styleOverflow || styleOverflow === 'visible') el.style.overflow = 'hidden'\n\n var overflowed = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight\n\n el.style.overflow = styleOverflow\n\n return overflowed\n}\n"]}
1
+ {"version":3,"file":"detect-overflow.js","sourceRoot":"","sources":["../../src/detect-overflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAAe;IAC5C,IAAI,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;IAErC,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,SAAS;QAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE/E,IAAI,UAAU,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAErF,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;IAEjC,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["/**\n * Detects if the content of an HTMLElement overflows its boundaries.\n *\n * @param {HTMLElement} el - The HTMLElement to check for overflow.\n * @returns {boolean} - `true` if overflow is detected, `false` otherwise.\n * @deprecated This function is no longer recommended for use and has been replaced by 'hasOverflow'.\n */\nexport function detectOverflow(el: HTMLElement) {\n var styleOverflow = el.style.overflow\n\n if (!styleOverflow || styleOverflow === 'visible') el.style.overflow = 'hidden'\n\n var overflowed = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight\n\n el.style.overflow = styleOverflow\n\n return overflowed\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Detects if the content of an HTMLElement overflows its boundaries.
3
+ *
4
+ * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
+ * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ */
7
+ export declare function hasOverflow(el: HTMLElement): boolean;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Detects if the content of an HTMLElement overflows its boundaries.
3
+ *
4
+ * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
+ * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ */
7
+ export function hasOverflow(el) {
8
+ const computedStyle = getComputedStyle(el);
9
+ const originalOverflow = computedStyle.overflow;
10
+ if (originalOverflow === 'visible') {
11
+ el.style.overflow = 'hidden';
12
+ }
13
+ const isOverflowing = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight;
14
+ if (originalOverflow === 'visible') {
15
+ el.style.overflow = '';
16
+ }
17
+ return isOverflowing;
18
+ }
19
+ //# sourceMappingURL=has-overflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-overflow.js","sourceRoot":"","sources":["../../src/has-overflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAe;IACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAC1C,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAA;IAE/C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAE1F,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;IACxB,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC","sourcesContent":["/**\n * Detects if the content of an HTMLElement overflows its boundaries.\n *\n * @param {HTMLElement} el - The HTMLElement to check for overflow.\n * @returns {boolean} - `true` if overflow is detected, `false` otherwise.\n */\nexport function hasOverflow(el: HTMLElement): boolean {\n const computedStyle = getComputedStyle(el)\n const originalOverflow = computedStyle.overflow\n\n if (originalOverflow === 'visible') {\n el.style.overflow = 'hidden'\n }\n\n const isOverflowing = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight\n\n if (originalOverflow === 'visible') {\n el.style.overflow = ''\n }\n\n return isOverflowing\n}\n"]}
@@ -9,6 +9,7 @@ export * from './parse-jwt.js';
9
9
  export * from './password-pattern.js';
10
10
  export * from './closest-element.js';
11
11
  export * from './detect-overflow.js';
12
+ export * from './has-overflow.js';
12
13
  export * from './timecapsule/index.js';
13
14
  export * from './clipboard.js';
14
15
  export * from './format.js';
@@ -17,4 +18,7 @@ export * from './is-unvalued.js';
17
18
  export * from './stringify-bignum.js';
18
19
  export * from './encode-form-params.js';
19
20
  export * from './cookie.js';
20
- export * from './checker.js';
21
+ export * from './number-parser.js';
22
+ export * from './longpressable.js';
23
+ export * from './decode-html.js';
24
+ export * from './reactive-controllers';
package/dist/src/index.js CHANGED
@@ -8,7 +8,8 @@ export * from './fullscreen.js';
8
8
  export * from './parse-jwt.js';
9
9
  export * from './password-pattern.js';
10
10
  export * from './closest-element.js';
11
- export * from './detect-overflow.js';
11
+ export * from './detect-overflow.js'; /* deprecated by 'has-overflow' */
12
+ export * from './has-overflow.js';
12
13
  export * from './timecapsule/index.js';
13
14
  export * from './clipboard.js';
14
15
  export * from './format.js';
@@ -17,5 +18,8 @@ export * from './is-unvalued.js';
17
18
  export * from './stringify-bignum.js';
18
19
  export * from './encode-form-params.js';
19
20
  export * from './cookie.js';
20
- export * from './checker.js';
21
+ export * from './number-parser.js';
22
+ export * from './longpressable.js';
23
+ export * from './decode-html.js';
24
+ export * from './reactive-controllers';
21
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA","sourcesContent":["export * from './sleep.js'\nexport * from './async-lock.js'\nexport * from './file-drop-helper.js'\nexport * from './context-path.js'\nexport * from './os.js'\nexport * from './swipe-listener.js'\nexport * from './fullscreen.js'\nexport * from './parse-jwt.js'\nexport * from './password-pattern.js'\nexport * from './closest-element.js'\nexport * from './detect-overflow.js'\nexport * from './timecapsule/index.js'\nexport * from './clipboard.js'\nexport * from './format.js'\nexport * from './adjust-list-param.js'\nexport * from './is-unvalued.js'\nexport * from './stringify-bignum.js'\nexport * from './encode-form-params.js'\nexport * from './cookie.js'\nexport * from './checker.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA,CAAC,kCAAkC;AACvE,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,wBAAwB,CAAA","sourcesContent":["export * from './sleep.js'\nexport * from './async-lock.js'\nexport * from './file-drop-helper.js'\nexport * from './context-path.js'\nexport * from './os.js'\nexport * from './swipe-listener.js'\nexport * from './fullscreen.js'\nexport * from './parse-jwt.js'\nexport * from './password-pattern.js'\nexport * from './closest-element.js'\nexport * from './detect-overflow.js' /* deprecated by 'has-overflow' */\nexport * from './has-overflow.js'\nexport * from './timecapsule/index.js'\nexport * from './clipboard.js'\nexport * from './format.js'\nexport * from './adjust-list-param.js'\nexport * from './is-unvalued.js'\nexport * from './stringify-bignum.js'\nexport * from './encode-form-params.js'\nexport * from './cookie.js'\nexport * from './number-parser.js'\nexport * from './longpressable.js'\nexport * from './decode-html.js'\n\nexport * from './reactive-controllers'\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+ /**
5
+ * method set target element to be able to respond longpress event
6
+ * @param {HTMLElement} element target element
7
+ */
8
+ export declare const longpressable: (element: HTMLElement) => void;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+ /* Inspired by https://github.com/john-doherty/long-press-event */
5
+ var timer = null;
6
+ // check if we're using a touch screen
7
+ //@ts-ignore
8
+ const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
9
+ // switch to touch events if using a touch screen
10
+ const mouseDown = isTouch ? 'touchstart' : 'mousedown';
11
+ const mouseOut = isTouch ? 'touchcancel' : 'mouseout';
12
+ const mouseUp = isTouch ? 'touchend' : 'mouseup';
13
+ const mouseMove = isTouch ? 'touchmove' : 'mousemove';
14
+ /*
15
+ * Fires the 'long-press' event on element
16
+ * @returns {void}
17
+ */
18
+ function fireLongPressEvent() {
19
+ clearLongPressTimer();
20
+ // fire the long-press event
21
+ var suppressClickEvent = this.dispatchEvent(new CustomEvent('long-press', { bubbles: true, cancelable: true }));
22
+ if (suppressClickEvent) {
23
+ // temporarily intercept and clear the next click
24
+ this.addEventListener(mouseUp, function clearMouseUp(e) {
25
+ this.removeEventListener(mouseUp, clearMouseUp, true);
26
+ cancelEvent(e);
27
+ }, true);
28
+ }
29
+ }
30
+ /*
31
+ * method responsible for starting the long press timer
32
+ * @param {event} e - event object
33
+ * @returns {void}
34
+ */
35
+ function startLongPressTimer(e) {
36
+ clearLongPressTimer(e);
37
+ var el = e.target;
38
+ // get delay from html attribute if it exists, otherwise default to 1500
39
+ var longPressDelayInMs = parseInt(el.getAttribute('data-long-press-delay') || '600', 10);
40
+ // start the timer
41
+ timer = setTimeout(fireLongPressEvent.bind(el), longPressDelayInMs);
42
+ }
43
+ /*
44
+ * method responsible for clearing a pending long press timer
45
+ * @param {event} e - event object
46
+ * @returns {void}
47
+ */
48
+ function clearLongPressTimer(e) {
49
+ clearTimeout(timer);
50
+ timer = null;
51
+ }
52
+ /*
53
+ * Cancels the current event
54
+ * @param {object} e - browser event object
55
+ * @returns {void}
56
+ */
57
+ function cancelEvent(e) {
58
+ e.stopImmediatePropagation();
59
+ e.preventDefault();
60
+ e.stopPropagation();
61
+ }
62
+ /**
63
+ * method set target element to be able to respond longpress event
64
+ * @param {HTMLElement} element target element
65
+ */
66
+ export const longpressable = (element) => {
67
+ // hook events that clear a pending long press event
68
+ element.addEventListener(mouseOut, clearLongPressTimer, true);
69
+ element.addEventListener(mouseUp, clearLongPressTimer, true);
70
+ element.addEventListener(mouseMove, clearLongPressTimer, true);
71
+ element.addEventListener('wheel', clearLongPressTimer, true);
72
+ element.addEventListener('scroll', clearLongPressTimer, true);
73
+ // hook events that can trigger a long press event
74
+ element.addEventListener(mouseDown, startLongPressTimer, true); // <- start
75
+ // cancel context for touch display
76
+ if (mouseDown.indexOf('touch') === 0) {
77
+ element.addEventListener('contextmenu', cancelEvent, true);
78
+ }
79
+ else {
80
+ element.addEventListener('contextmenu', clearLongPressTimer, true);
81
+ }
82
+ };
83
+ //# sourceMappingURL=longpressable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longpressable.js","sourceRoot":"","sources":["../../src/longpressable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kEAAkE;AAElE,IAAI,KAAK,GAAG,IAAW,CAAA;AAEvB,sCAAsC;AACtC,YAAY;AACZ,MAAM,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAA;AAE1G,iDAAiD;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;AACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAA;AACrD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;AAErD;;;GAGG;AACH,SAAS,kBAAkB;IACzB,mBAAmB,EAAE,CAAA;IAErB,4BAA4B;IAC5B,IAAI,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE/G,IAAI,kBAAkB,EAAE,CAAC;QACvB,iDAAiD;QACjD,IAAI,CAAC,gBAAgB,CACnB,OAAO,EACP,SAAS,YAAY,CAAC,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;YACrD,WAAW,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC,EACD,IAAI,CACL,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,CAAQ;IACnC,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAEtB,IAAI,EAAE,GAAG,CAAC,CAAC,MAAqB,CAAA;IAEhC,wEAAwE;IACxE,IAAI,kBAAkB,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA;IAExF,kBAAkB;IAClB,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAA;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACpC,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,KAAK,GAAG,IAAI,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,CAAQ;IAC3B,CAAC,CAAC,wBAAwB,EAAE,CAAA;IAC5B,CAAC,CAAC,cAAc,EAAE,CAAA;IAClB,CAAC,CAAC,eAAe,EAAE,CAAA;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAoB,EAAE,EAAE;IACpD,oDAAoD;IACpD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC7D,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC5D,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC5D,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAE7D,kDAAkD;IAClD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA,CAAC,WAAW;IAE1E,mCAAmC;IACnC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC;AACH,CAAC,CAAA","sourcesContent":["/**\n * @license Copyright © HatioLab Inc. All rights reserved.\n */\n\n/* Inspired by https://github.com/john-doherty/long-press-event */\n\nvar timer = null as any\n\n// check if we're using a touch screen\n//@ts-ignore\nconst isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0\n\n// switch to touch events if using a touch screen\nconst mouseDown = isTouch ? 'touchstart' : 'mousedown'\nconst mouseOut = isTouch ? 'touchcancel' : 'mouseout'\nconst mouseUp = isTouch ? 'touchend' : 'mouseup'\nconst mouseMove = isTouch ? 'touchmove' : 'mousemove'\n\n/*\n * Fires the 'long-press' event on element\n * @returns {void}\n */\nfunction fireLongPressEvent(this: HTMLElement) {\n clearLongPressTimer()\n\n // fire the long-press event\n var suppressClickEvent = this.dispatchEvent(new CustomEvent('long-press', { bubbles: true, cancelable: true }))\n\n if (suppressClickEvent) {\n // temporarily intercept and clear the next click\n this.addEventListener(\n mouseUp,\n function clearMouseUp(e) {\n this.removeEventListener(mouseUp, clearMouseUp, true)\n cancelEvent(e)\n },\n true\n )\n }\n}\n\n/*\n * method responsible for starting the long press timer\n * @param {event} e - event object\n * @returns {void}\n */\nfunction startLongPressTimer(e: Event) {\n clearLongPressTimer(e)\n\n var el = e.target as HTMLElement\n\n // get delay from html attribute if it exists, otherwise default to 1500\n var longPressDelayInMs = parseInt(el.getAttribute('data-long-press-delay') || '600', 10)\n\n // start the timer\n timer = setTimeout(fireLongPressEvent.bind(el), longPressDelayInMs)\n}\n\n/*\n * method responsible for clearing a pending long press timer\n * @param {event} e - event object\n * @returns {void}\n */\nfunction clearLongPressTimer(e?: Event) {\n clearTimeout(timer)\n timer = null\n}\n\n/*\n * Cancels the current event\n * @param {object} e - browser event object\n * @returns {void}\n */\nfunction cancelEvent(e: Event) {\n e.stopImmediatePropagation()\n e.preventDefault()\n e.stopPropagation()\n}\n\n/**\n * method set target element to be able to respond longpress event\n * @param {HTMLElement} element target element\n */\nexport const longpressable = (element: HTMLElement) => {\n // hook events that clear a pending long press event\n element.addEventListener(mouseOut, clearLongPressTimer, true)\n element.addEventListener(mouseUp, clearLongPressTimer, true)\n element.addEventListener(mouseMove, clearLongPressTimer, true)\n element.addEventListener('wheel', clearLongPressTimer, true)\n element.addEventListener('scroll', clearLongPressTimer, true)\n\n // hook events that can trigger a long press event\n element.addEventListener(mouseDown, startLongPressTimer, true) // <- start\n\n // cancel context for touch display\n if (mouseDown.indexOf('touch') === 0) {\n element.addEventListener('contextmenu', cancelEvent, true)\n } else {\n element.addEventListener('contextmenu', clearLongPressTimer, true)\n }\n}\n"]}
@@ -20,4 +20,4 @@ export function parseToNumberOrNull(value) {
20
20
  }
21
21
  return result;
22
22
  }
23
- //# sourceMappingURL=checker.js.map
23
+ //# sourceMappingURL=number-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-parser.js","sourceRoot":"","sources":["../../src/number-parser.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,IAAI,MAAM,GAAkB,IAAI,CAAA;IAEhC,6BAA6B;IAC7B,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,EAAE,CAAC;QACxG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["// 숫자라면 숫자값을, 아니면 null을 반환\n// 0 = true\n// '0' = true\n// 123 = true\n// \"123\" = true\n// -123 = true\n// \"-123\" = true\n// true = false\n// false = false\n// \"\" = false\n// null = false\n// undefined = false\n// {} = false\n// [] = false\nexport function parseToNumberOrNull(value: any): number | null {\n let result: number | null = null\n\n // 숫자나 스트링이면서 NaN이 아니면 숫자로 변환\n if ((typeof value === 'string' || typeof value === 'number') && value !== '' && !isNaN(value as number)) {\n result = Number(value)\n }\n\n return result\n}\n"]}
@@ -0,0 +1 @@
1
+ export * from './tooltip-reactive-controller.js';
@@ -0,0 +1,2 @@
1
+ export * from './tooltip-reactive-controller.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactive-controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA","sourcesContent":["export * from './tooltip-reactive-controller.js'\n"]}
@@ -0,0 +1,10 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ export declare class TooltipMouseController implements ReactiveController {
3
+ private host;
4
+ private attributeName;
5
+ constructor(host: ReactiveControllerHost & HTMLElement, attributeName?: string);
6
+ hostConnected(): void;
7
+ hostDisconnected(): void;
8
+ private handleMouseOver;
9
+ private handleMouseOut;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { hasOverflow } from '../has-overflow';
2
+ export class TooltipMouseController {
3
+ constructor(host, attributeName = 'data-reactive-tooltip') {
4
+ this.handleMouseOver = (e) => {
5
+ var _a;
6
+ const element = e.target;
7
+ if (element.hasAttribute(this.attributeName) && hasOverflow(element)) {
8
+ element.setAttribute('data-tooltip', ((_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '');
9
+ // Calculate tooltip position
10
+ const rect = element.getBoundingClientRect();
11
+ const top = rect.top + rect.height; // - window.scrollY
12
+ const left = rect.left + window.scrollX;
13
+ // Set CSS variables for position
14
+ element.style.setProperty('--tooltip-top', `${top}px`);
15
+ element.style.setProperty('--tooltip-left', `${left}px`);
16
+ }
17
+ };
18
+ this.handleMouseOut = (e) => {
19
+ const element = e.target;
20
+ if (element.hasAttribute('data-tooltip')) {
21
+ element.removeAttribute('data-tooltip');
22
+ element.style.removeProperty('--tooltip-top');
23
+ element.style.removeProperty('--tooltip-left');
24
+ }
25
+ };
26
+ this.host = host;
27
+ this.attributeName = attributeName;
28
+ host.addController(this);
29
+ }
30
+ hostConnected() {
31
+ var _a;
32
+ const target = (_a = this.host.shadowRoot) !== null && _a !== void 0 ? _a : this.host;
33
+ target.addEventListener('mouseover', this.handleMouseOver);
34
+ target.addEventListener('mouseout', this.handleMouseOut);
35
+ }
36
+ hostDisconnected() {
37
+ var _a;
38
+ const target = (_a = this.host.shadowRoot) !== null && _a !== void 0 ? _a : this.host;
39
+ target.removeEventListener('mouseover', this.handleMouseOver);
40
+ target.removeEventListener('mouseout', this.handleMouseOut);
41
+ }
42
+ }
43
+ //# sourceMappingURL=tooltip-mouse-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-mouse-controller.js","sourceRoot":"","sources":["../../../src/reactive-controllers/tooltip-mouse-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,OAAO,sBAAsB;IAIjC,YAAY,IAA0C,EAAE,gBAAwB,uBAAuB;QAkB/F,oBAAe,GAAG,CAAC,CAAQ,EAAE,EAAE;;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;YACvC,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,CAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAC,CAAA;gBAEvE,6BAA6B;gBAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA,CAAC,mBAAmB;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;gBAEvC,iCAAiC;gBACjC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,GAAG,IAAI,CAAC,CAAA;gBACtD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,IAAI,IAAI,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC,CAAA;QAEO,mBAAc,GAAG,CAAC,CAAQ,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;YACvC,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;gBACvC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;gBAC7C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;YAChD,CAAC;QACH,CAAC,CAAA;QAxCC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,aAAa;;QACX,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED,gBAAgB;;QACd,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAA;QAChD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7D,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7D,CAAC;CA0BF","sourcesContent":["import { ReactiveController, ReactiveControllerHost } from 'lit'\nimport { hasOverflow } from '../has-overflow'\n\nexport class TooltipMouseController implements ReactiveController {\n private host: ReactiveControllerHost & HTMLElement\n private attributeName: string\n\n constructor(host: ReactiveControllerHost & HTMLElement, attributeName: string = 'data-reactive-tooltip') {\n this.host = host\n this.attributeName = attributeName\n host.addController(this)\n }\n\n hostConnected() {\n const target = this.host.shadowRoot ?? this.host\n target.addEventListener('mouseover', this.handleMouseOver)\n target.addEventListener('mouseout', this.handleMouseOut)\n }\n\n hostDisconnected() {\n const target = this.host.shadowRoot ?? this.host\n target.removeEventListener('mouseover', this.handleMouseOver)\n target.removeEventListener('mouseout', this.handleMouseOut)\n }\n\n private handleMouseOver = (e: Event) => {\n const element = e.target as HTMLElement\n if (element.hasAttribute(this.attributeName) && hasOverflow(element)) {\n element.setAttribute('data-tooltip', element.textContent?.trim() || '')\n\n // Calculate tooltip position\n const rect = element.getBoundingClientRect()\n const top = rect.top + rect.height // - window.scrollY\n const left = rect.left + window.scrollX\n\n // Set CSS variables for position\n element.style.setProperty('--tooltip-top', `${top}px`)\n element.style.setProperty('--tooltip-left', `${left}px`)\n }\n }\n\n private handleMouseOut = (e: Event) => {\n const element = e.target as HTMLElement\n if (element.hasAttribute('data-tooltip')) {\n element.removeAttribute('data-tooltip')\n element.style.removeProperty('--tooltip-top')\n element.style.removeProperty('--tooltip-left')\n }\n }\n}\n"]}
@@ -0,0 +1,40 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ /**
3
+ * TooltipReactiveController is a controller that manages the display of tooltips
4
+ * for elements with a specified attribute. It works in conjunction with TooltipStyles
5
+ * to position and style the tooltips.
6
+ */
7
+ export declare class TooltipReactiveController implements ReactiveController {
8
+ private host;
9
+ private attributeName;
10
+ private content?;
11
+ /**
12
+ * @param host - The host element that this controller is associated with.
13
+ * @param options - An optional object containing the content of the tooltip and the attribute name that triggers the tooltip.
14
+ * - content: The tooltip content, either a string or a function that returns a string based on the element.
15
+ * - attributeName: The attribute name that triggers the tooltip. Defaults to 'data-reactive-tooltip'.
16
+ */
17
+ constructor(host: ReactiveControllerHost & HTMLElement, options?: {
18
+ content?: string | ((element: HTMLElement) => string);
19
+ attributeName?: string;
20
+ });
21
+ /**
22
+ * Called when the host is connected to the DOM. Adds event listeners for mouseover and mouseout events.
23
+ */
24
+ hostConnected(): void;
25
+ /**
26
+ * Called when the host is disconnected from the DOM. Removes event listeners for mouseover and mouseout events.
27
+ */
28
+ hostDisconnected(): void;
29
+ /**
30
+ * Handles the mouseover event. Checks if the target element has the specified attribute and if it has overflow.
31
+ * If both conditions are met, sets the tooltip content and calculates its position.
32
+ * @param e - The mouseover event.
33
+ */
34
+ private handleMouseOver;
35
+ /**
36
+ * Handles the mouseout event. Removes the tooltip content and position properties from the target element.
37
+ * @param e - The mouseout event.
38
+ */
39
+ private handleMouseOut;
40
+ }
@@ -0,0 +1,70 @@
1
+ import { hasOverflow } from '../has-overflow';
2
+ /**
3
+ * TooltipReactiveController is a controller that manages the display of tooltips
4
+ * for elements with a specified attribute. It works in conjunction with TooltipStyles
5
+ * to position and style the tooltips.
6
+ */
7
+ export class TooltipReactiveController {
8
+ /**
9
+ * @param host - The host element that this controller is associated with.
10
+ * @param options - An optional object containing the content of the tooltip and the attribute name that triggers the tooltip.
11
+ * - content: The tooltip content, either a string or a function that returns a string based on the element.
12
+ * - attributeName: The attribute name that triggers the tooltip. Defaults to 'data-reactive-tooltip'.
13
+ */
14
+ constructor(host, options) {
15
+ /**
16
+ * Handles the mouseover event. Checks if the target element has the specified attribute and if it has overflow.
17
+ * If both conditions are met, sets the tooltip content and calculates its position.
18
+ * @param e - The mouseover event.
19
+ */
20
+ this.handleMouseOver = (e) => {
21
+ var _a;
22
+ const element = e.target;
23
+ if (element.hasAttribute(this.attributeName) && hasOverflow(element)) {
24
+ element.setAttribute('data-tooltip', typeof this.content === 'function'
25
+ ? this.content.call(this, element)
26
+ : this.content || ((_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '');
27
+ const rect = element.getBoundingClientRect();
28
+ // Set CSS variables for position
29
+ element.style.setProperty('--tooltip-top', `${rect.top + rect.height}px`);
30
+ element.style.setProperty('--tooltip-left', `${rect.left}px`);
31
+ }
32
+ };
33
+ /**
34
+ * Handles the mouseout event. Removes the tooltip content and position properties from the target element.
35
+ * @param e - The mouseout event.
36
+ */
37
+ this.handleMouseOut = (e) => {
38
+ const element = e.target;
39
+ if (element.hasAttribute('data-tooltip')) {
40
+ element.removeAttribute('data-tooltip');
41
+ element.style.removeProperty('--tooltip-top');
42
+ element.style.removeProperty('--tooltip-left');
43
+ }
44
+ };
45
+ const { attributeName, content } = options || {};
46
+ this.host = host;
47
+ this.attributeName = attributeName || 'data-reactive-tooltip';
48
+ this.content = content;
49
+ host.addController(this);
50
+ }
51
+ /**
52
+ * Called when the host is connected to the DOM. Adds event listeners for mouseover and mouseout events.
53
+ */
54
+ hostConnected() {
55
+ var _a;
56
+ const target = (_a = this.host.shadowRoot) !== null && _a !== void 0 ? _a : this.host;
57
+ target.addEventListener('mouseover', this.handleMouseOver);
58
+ target.addEventListener('mouseout', this.handleMouseOut);
59
+ }
60
+ /**
61
+ * Called when the host is disconnected from the DOM. Removes event listeners for mouseover and mouseout events.
62
+ */
63
+ hostDisconnected() {
64
+ var _a;
65
+ const target = (_a = this.host.shadowRoot) !== null && _a !== void 0 ? _a : this.host;
66
+ target.removeEventListener('mouseover', this.handleMouseOver);
67
+ target.removeEventListener('mouseout', this.handleMouseOut);
68
+ }
69
+ }
70
+ //# sourceMappingURL=tooltip-reactive-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-reactive-controller.js","sourceRoot":"","sources":["../../../src/reactive-controllers/tooltip-reactive-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IAKpC;;;;;OAKG;IACH,YACE,IAA0C,EAC1C,OAGC;QA6BH;;;;WAIG;QACK,oBAAe,GAAG,CAAC,CAAQ,EAAE,EAAE;;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;YACvC,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,YAAY,CAClB,cAAc,EACd,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;oBAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBAClC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAI,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA,IAAI,EAAE,CACtD,CAAA;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;gBAE5C,iCAAiC;gBACjC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;gBACzE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC,CAAA;QAED;;;WAGG;QACK,mBAAc,GAAG,CAAC,CAAQ,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAA;YACvC,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;gBACvC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;gBAC7C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;YAChD,CAAC;QACH,CAAC,CAAA;QA7DC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEhD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,uBAAuB,CAAA;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;;QACX,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED;;OAEG;IACH,gBAAgB;;QACd,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,IAAI,CAAA;QAChD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7D,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7D,CAAC;CAqCF","sourcesContent":["import { ReactiveController, ReactiveControllerHost } from 'lit'\nimport { hasOverflow } from '../has-overflow'\n\n/**\n * TooltipReactiveController is a controller that manages the display of tooltips\n * for elements with a specified attribute. It works in conjunction with TooltipStyles\n * to position and style the tooltips.\n */\nexport class TooltipReactiveController implements ReactiveController {\n private host: ReactiveControllerHost & HTMLElement\n private attributeName!: string\n private content?: string | ((element: HTMLElement) => string)\n\n /**\n * @param host - The host element that this controller is associated with.\n * @param options - An optional object containing the content of the tooltip and the attribute name that triggers the tooltip.\n * - content: The tooltip content, either a string or a function that returns a string based on the element.\n * - attributeName: The attribute name that triggers the tooltip. Defaults to 'data-reactive-tooltip'.\n */\n constructor(\n host: ReactiveControllerHost & HTMLElement,\n options?: {\n content?: string | ((element: HTMLElement) => string)\n attributeName?: string\n }\n ) {\n const { attributeName, content } = options || {}\n\n this.host = host\n this.attributeName = attributeName || 'data-reactive-tooltip'\n this.content = content\n\n host.addController(this)\n }\n\n /**\n * Called when the host is connected to the DOM. Adds event listeners for mouseover and mouseout events.\n */\n hostConnected() {\n const target = this.host.shadowRoot ?? this.host\n target.addEventListener('mouseover', this.handleMouseOver)\n target.addEventListener('mouseout', this.handleMouseOut)\n }\n\n /**\n * Called when the host is disconnected from the DOM. Removes event listeners for mouseover and mouseout events.\n */\n hostDisconnected() {\n const target = this.host.shadowRoot ?? this.host\n target.removeEventListener('mouseover', this.handleMouseOver)\n target.removeEventListener('mouseout', this.handleMouseOut)\n }\n\n /**\n * Handles the mouseover event. Checks if the target element has the specified attribute and if it has overflow.\n * If both conditions are met, sets the tooltip content and calculates its position.\n * @param e - The mouseover event.\n */\n private handleMouseOver = (e: Event) => {\n const element = e.target as HTMLElement\n if (element.hasAttribute(this.attributeName) && hasOverflow(element)) {\n element.setAttribute(\n 'data-tooltip',\n typeof this.content === 'function'\n ? this.content.call(this, element)\n : this.content || element.textContent?.trim() || ''\n )\n\n const rect = element.getBoundingClientRect()\n\n // Set CSS variables for position\n element.style.setProperty('--tooltip-top', `${rect.top + rect.height}px`)\n element.style.setProperty('--tooltip-left', `${rect.left}px`)\n }\n }\n\n /**\n * Handles the mouseout event. Removes the tooltip content and position properties from the target element.\n * @param e - The mouseout event.\n */\n private handleMouseOut = (e: Event) => {\n const element = e.target as HTMLElement\n if (element.hasAttribute('data-tooltip')) {\n element.removeAttribute('data-tooltip')\n element.style.removeProperty('--tooltip-top')\n element.style.removeProperty('--tooltip-left')\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../src/adjust-list-param.ts","../src/async-lock.ts","../src/checker.ts","../src/clipboard.ts","../src/closest-element.ts","../src/context-path.ts","../src/cookie.ts","../src/detect-overflow.ts","../src/encode-form-params.ts","../src/file-drop-helper.ts","../src/format.ts","../src/fullscreen.ts","../src/sleep.ts","../src/os.ts","../src/swipe-listener.ts","../src/parse-jwt.ts","../src/password-pattern.ts","../src/logger.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lodash-es/debounce.d.ts","../src/timecapsule/snapshot-taker.ts","../src/timecapsule/timecapsule.ts","../src/timecapsule/index.ts","../src/is-unvalued.ts","../src/stringify-bignum.ts","../src/index.ts","../src/mixins/infinite-scrollable.ts","../src/mixins/index.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900",{"version":"973ff19d4b21d528741d19ef8ae1a6192806e7fbe18e2b414dae6a5eb4ce1c18","signature":"098ec42cd54c2b3354584c4fe8ad143040114891dde762741522b62788772f0d"},{"version":"3c004a51a1d43261e6411e7c6934185e3f2f66126c64c0817b5b9181870086e2","signature":"f5800813e5c0d6c27d73b76f2c99f39bdfd6229d03553a8a9ae485f6aeb94425"},{"version":"679a664272f576edc7a22e5d35e1a050634eac2f0a2564c704f380e653e4f4b7","signature":"13a5d8ec52111b64ed8fdcb47ab664b60085733c46c44aede33fd2926840ac31"},{"version":"c65636fa3cea14ad6a96f3c01bcc30d9f83c6e6095864b5e20190fef7d0e30eb","signature":"7fcb76be88d4a64f6318b5a24b57021d7463f24485a3d1a931bf664c7e437534"},{"version":"e16b98f53c89fc764db968b0ef9dce28a0f0d039439851eea30fab962ca2cdeb","signature":"7efea6f2270a14f1b0d5f472f2a6fcb0a97beb677299e10b073cc2abdabeef51"},{"version":"4c7799288b1bd167612ecedf9fe0f2563904ce78809c161536799a16b1b15901","signature":"6cf5098c7bf0c14358b656edd6103df1ae9f8c6a94abca9df8650c2b520d8096"},{"version":"644c5f408a19dac2fb6e89eae85ff930d51a88414da6e762e572f49eecb81ab4","signature":"dc2461db89dde29306a73a2926e2cf874e981ef034412f4d1e3d06d45bb3127e"},{"version":"fb5c88564856d19073cfc997a693b78cc811c7d9ccf5562b1b72b8edf96d637d","signature":"385679adcfaaa1b561983bd5ae140b4db1e360a534f9685ee87f5019540c9ce8"},{"version":"8e8f663fe7c4665c984072bb694c8bd5303afb5bc64ebc1edfb7637677dcc80d","signature":"cb2de9f1d7d286191834eeb331d23dc69eeb322745114ddad1695e4c575b5feb"},{"version":"69ef8de8a4e2551f1a0e21d82a04d233fb5d7d8a1f8db661a1a18e880b4e7545","signature":"4d5e201faa4bceca840b652dfc10795170c061f498e19429a06e056490aa69aa"},{"version":"4f3fc5607259633875df57067d72509cbceb362775f4985462e6b2244baac6c4","signature":"940995980343a2bfebf515240e5eec487f845002a089bee0d18656ebf61d59aa"},{"version":"b18b9acb5cff76a70fec4f1effd260b9f956bba6edb28c1e160979f0b9a51dd6","signature":"85e0f00b17c3ae8cd88438c754a2c43f4a9361e685b97a70e52e33afbf62488f"},{"version":"d9e51838c1aa2a91b7d2a495adb92ab70eb35c81fcd3b359c2509903958bf3f8","signature":"05cfea0488751015b0b85911b6cdcde7c6cebdd9b8cada1ec0b5c1736357a552"},{"version":"a1953ae5bbf52b027ed3044bf32024e21994345c8a05d0aaa3902e08c033c803","signature":"ee11b7061adce4a1c0370620949a57851215b152a5632d2faf1aedbc90ad0520"},{"version":"d1d0e3e5bd9e070e932c938bd580da6fce3b6a9e230b7156584f7b38ce3a9c4e","signature":"f8c86fcbfb0a1e69a0ed28d3249cc33c312fa23a39c17e15cbbcc539bdcdc303"},{"version":"f1f7164489347eacf6f1239bcae173a72047ee9be4ba8cd7f4f6af42e8155ce8","signature":"39d2d450df6efbf38585fd316f18922c8ac3fdfd4c3fc412d0bee34e2bc86378"},{"version":"995abaa0980d5f0e01b0c4723c203194a3ea4b289ea814afdcc6ec9df478488c","signature":"4dcdfe4c18557fc02d8cb22cb422cb98bfeba8158aaf18cc66f9d99293ebe2c8"},{"version":"2d95c27112bfd3344d29539192bbdd69996f276fb24e061932d8043f3a9ef26f","signature":"bc971f58cf8cef65c3e5a4d37539b96e1f8d19b5c662e9ab796b62c9a63cc0c0"},"b8442e9db28157344d1bc5d8a5a256f1692de213f0c0ddeb84359834015a008c","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","68a0d0c508e1b6d8d23a519a8a0a3303dc5baa4849ca049f21e5bad41945e3fc","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","a862dcb740371257e3dae1ab379b0859edcb5119484f8359a5e6fb405db9e12e",{"version":"c169e9579cc2e83f78561e54b8e76d8474f28f01606dfc622823a8bb6478a2eb","signature":"3df6a0e8bdb7199dff6cf75c0250316f06b87c982bb47460960a1c5a793f5ca6"},{"version":"fb6284b223f3580ff8a5bc75b24824f80ea7b2f32afcae4aee7c6bd73802179c","signature":"b3238dd00b7796eda3f507726e9882a55ff7043b249be8309abed22cfb7d7463"},{"version":"b3725f31a113200e0a0266278f33e64ba879874b0acf6837054f9acd34719588","signature":"f499d7fb533781939c7a5ab778ac6e6c8ffe65601b1a61a843c36ee0013f05b6"},{"version":"4d8db0ef58073a950c6a985b0d1313a358c888e491d5d9a4d5a0777d84351c9a","signature":"1e73d612f806d183d6c16c4135c16c1a14dd827c1a67097e72ab1841852bfcb9"},{"version":"8e485e375afaab51fdf32972879fa40758471dc93fc9c2484ad16542fd9a8fdb","signature":"30046b0787c577061d43e498b507da8a249fbc58bbe33a09a7bef777e1d5fb67"},{"version":"cdfd2f0a8745d769be651be12c4a5639c0dc9c5cad57d8305ac765ab840d34be","signature":"3d756f378335d282346d9c6d93a05f6f6c884ac93aaa67525c7d127ce9454c9d"},{"version":"f9520a64036c4378b6617c0e414d8f02f5ce3bcc2a7b0a929a319e7e3f9c6800","signature":"156f461ef172e70226132dc36df4b72f7e77ae88523aaad9f0440307a53bda36"},{"version":"14fd84e1f3037c24aa5e5c9b6c4250e9effeea0fae526277c8ac4890310273c6","signature":"2045cb057c6163f5d5bb4d12655bb1449383952bcd3b7a7a62b2848e420245c1"},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"e2eb1ce13a9c0fa7ab62c63909d81973ef4b707292667c64f1e25e6e53fa7afa","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","1b282e90846fada1e96dc1cf5111647d6ab5985c8d7b5c542642f1ea2739406d","bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","f1ace2d2f98429e007d017c7a445efad2aaebf8233135abdb2c88b8c0fef91ab","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","8013f6c4d1632da8f1c4d3d702ae559acccd0f1be05360c31755f272587199c9",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447",{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true}],"root":[[47,64],[79,86]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5,"useDefineForClassFields":false},"fileIdsList":[[77],[65,67,68,69,70,71,72,73,74,75,76,77],[65,66,68,69,70,71,72,73,74,75,76,77],[66,67,68,69,70,71,72,73,74,75,76,77],[65,66,67,69,70,71,72,73,74,75,76,77],[65,66,67,68,70,71,72,73,74,75,76,77],[65,66,67,68,69,71,72,73,74,75,76,77],[65,66,67,68,69,70,72,73,74,75,76,77],[65,66,67,68,69,70,71,73,74,75,76,77],[65,66,67,68,69,70,71,72,74,75,76,77],[65,66,67,68,69,70,71,72,73,75,76,77],[65,66,67,68,69,70,71,72,73,74,76,77],[65,66,67,68,69,70,71,72,73,74,75,77],[65,66,67,68,69,70,71,72,73,74,75,76],[87],[123],[124,129,157],[125,136,137,144,154,165],[125,126,136,144],[127,166],[128,129,137,145],[129,154,162],[130,132,136,144],[123,131],[132,133],[136],[134,136],[123,136],[136,137,138,154,165],[136,137,138,151,154,157],[121,124,170],[132,136,139,144,154,165],[136,137,139,140,144,154,162,165],[139,141,154,162,165],[87,88,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[136,142],[143,165,170],[132,136,144,154],[145],[146],[123,147],[148,164,170],[149],[150],[136,151,152],[151,153,166,168],[124,136,154,155,156,157],[124,154,156],[154,155],[157],[158],[123,154],[136,160,161],[160,161],[129,144,154,162],[163],[144,164],[124,139,150,165],[129,166],[154,167],[143,168],[169],[124,129,136,138,147,154,165,168,170],[154,171],[98,102,165],[98,154,165],[93],[95,98,162,165],[144,162],[173],[93,173],[95,98,144,165],[90,91,94,97,124,136,154,165],[90,96],[94,98,124,157,165,173],[124,173],[114,124,173],[92,93,173],[98],[92,93,94,95,96,97,98,99,100,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,120],[98,105,106],[96,98,106,107],[97],[90,93,98],[98,102,106,107],[102],[96,98,101,165],[90,95,96,98,102,105],[124,154],[93,98,114,124,170,173],[46],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,81,82,83],[46,85],[46,78],[46,79,80],[46,78,80],[46,64,79],[47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,81,82,83],[85],[79,80],[80],[79]],"referencedMap":[[78,1],[66,2],[67,3],[65,4],[68,5],[69,6],[70,7],[71,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[87,15],[88,15],[123,16],[124,17],[125,18],[126,19],[127,20],[128,21],[129,22],[130,23],[131,24],[132,25],[133,25],[135,26],[134,27],[136,28],[137,29],[138,30],[122,31],[139,32],[140,33],[141,34],[173,35],[142,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,42],[149,43],[150,44],[151,45],[152,45],[153,46],[154,47],[156,48],[155,49],[157,50],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[166,59],[167,60],[168,61],[169,62],[170,63],[171,64],[105,65],[112,66],[104,65],[119,67],[96,68],[95,69],[118,70],[113,71],[116,72],[98,73],[97,74],[93,75],[92,76],[115,77],[94,78],[99,79],[103,79],[121,80],[120,79],[107,81],[108,82],[110,83],[106,84],[109,85],[114,70],[101,86],[102,87],[111,88],[91,89],[117,90],[47,91],[48,91],[49,91],[50,91],[51,91],[52,91],[53,91],[54,91],[55,91],[56,91],[57,91],[58,91],[84,92],[82,91],[64,91],[86,93],[85,94],[60,91],[62,91],[63,91],[59,91],[83,91],[61,91],[81,95],[79,96],[80,97]],"exportedModulesMap":[[78,1],[66,2],[67,3],[65,4],[68,5],[69,6],[70,7],[71,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[87,15],[88,15],[123,16],[124,17],[125,18],[126,19],[127,20],[128,21],[129,22],[130,23],[131,24],[132,25],[133,25],[135,26],[134,27],[136,28],[137,29],[138,30],[122,31],[139,32],[140,33],[141,34],[173,35],[142,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,42],[149,43],[150,44],[151,45],[152,45],[153,46],[154,47],[156,48],[155,49],[157,50],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[166,59],[167,60],[168,61],[169,62],[170,63],[171,64],[105,65],[112,66],[104,65],[119,67],[96,68],[95,69],[118,70],[113,71],[116,72],[98,73],[97,74],[93,75],[92,76],[115,77],[94,78],[99,79],[103,79],[121,80],[120,79],[107,81],[108,82],[110,83],[106,84],[109,85],[114,70],[101,86],[102,87],[111,88],[91,89],[117,90],[84,98],[86,99],[85,1],[81,100],[79,101],[80,102]],"semanticDiagnosticsPerFile":[78,66,67,65,68,69,70,71,72,73,74,75,76,77,174,87,88,123,124,125,126,127,128,129,130,131,132,133,135,134,136,137,138,122,172,139,140,141,173,142,143,144,145,146,147,148,149,150,151,152,153,154,156,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,89,46,44,45,8,10,9,2,11,12,13,14,15,16,17,18,3,4,19,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,105,112,104,119,96,95,118,113,116,98,97,93,92,115,94,99,100,103,90,121,120,107,108,110,106,109,114,101,102,111,91,117,47,48,49,50,51,52,53,54,55,56,57,58,84,82,64,86,85,60,62,63,59,83,61,81,79,80]},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../src/adjust-list-param.ts","../src/async-lock.ts","../src/clipboard.ts","../src/closest-element.ts","../src/context-path.ts","../src/cookie.ts","../src/decode-html.ts","../src/detect-overflow.ts","../src/encode-form-params.ts","../src/file-drop-helper.ts","../src/format.ts","../src/fullscreen.ts","../src/has-overflow.ts","../src/sleep.ts","../src/os.ts","../src/swipe-listener.ts","../src/parse-jwt.ts","../src/password-pattern.ts","../src/logger.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lodash-es/debounce.d.ts","../src/timecapsule/snapshot-taker.ts","../src/timecapsule/timecapsule.ts","../src/timecapsule/index.ts","../src/is-unvalued.ts","../src/stringify-bignum.ts","../src/number-parser.ts","../src/longpressable.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit-html/is-server.d.ts","../../../node_modules/lit/index.d.ts","../src/reactive-controllers/tooltip-reactive-controller.ts","../src/reactive-controllers/index.ts","../src/index.ts","../src/mixins/infinite-scrollable.ts","../src/mixins/index.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"4a882ffbb4ed09d9b7734f784aebb1dfe488d63725c40759165c5d9c657ca029",{"version":"973ff19d4b21d528741d19ef8ae1a6192806e7fbe18e2b414dae6a5eb4ce1c18","signature":"098ec42cd54c2b3354584c4fe8ad143040114891dde762741522b62788772f0d"},{"version":"3c004a51a1d43261e6411e7c6934185e3f2f66126c64c0817b5b9181870086e2","signature":"f5800813e5c0d6c27d73b76f2c99f39bdfd6229d03553a8a9ae485f6aeb94425"},{"version":"c65636fa3cea14ad6a96f3c01bcc30d9f83c6e6095864b5e20190fef7d0e30eb","signature":"7fcb76be88d4a64f6318b5a24b57021d7463f24485a3d1a931bf664c7e437534"},{"version":"e16b98f53c89fc764db968b0ef9dce28a0f0d039439851eea30fab962ca2cdeb","signature":"7efea6f2270a14f1b0d5f472f2a6fcb0a97beb677299e10b073cc2abdabeef51"},{"version":"4c7799288b1bd167612ecedf9fe0f2563904ce78809c161536799a16b1b15901","signature":"6cf5098c7bf0c14358b656edd6103df1ae9f8c6a94abca9df8650c2b520d8096"},{"version":"644c5f408a19dac2fb6e89eae85ff930d51a88414da6e762e572f49eecb81ab4","signature":"dc2461db89dde29306a73a2926e2cf874e981ef034412f4d1e3d06d45bb3127e"},{"version":"9796074435e67376d48ec509ef8249ac69caeedfb942a2cc6daf9a86b4335396","signature":"4f69dd36aa514494e2665a9dd1ecbb94f705c37f13554aa6f0c4b55d47dcfec1"},{"version":"8f09cc9e905cb1d54d2d863de2bafbb1c0c4f20e979a07e4edc2a29361798de7","signature":"642bd83dc8b11abc31785975f869fea5ab2dd84246acd13c6ad7e769fea95150"},{"version":"8e8f663fe7c4665c984072bb694c8bd5303afb5bc64ebc1edfb7637677dcc80d","signature":"cb2de9f1d7d286191834eeb331d23dc69eeb322745114ddad1695e4c575b5feb"},{"version":"69ef8de8a4e2551f1a0e21d82a04d233fb5d7d8a1f8db661a1a18e880b4e7545","signature":"4d5e201faa4bceca840b652dfc10795170c061f498e19429a06e056490aa69aa"},{"version":"4f3fc5607259633875df57067d72509cbceb362775f4985462e6b2244baac6c4","signature":"940995980343a2bfebf515240e5eec487f845002a089bee0d18656ebf61d59aa"},{"version":"b18b9acb5cff76a70fec4f1effd260b9f956bba6edb28c1e160979f0b9a51dd6","signature":"85e0f00b17c3ae8cd88438c754a2c43f4a9361e685b97a70e52e33afbf62488f"},{"version":"6d3648445c8620b2330d9fb7c2caea528e3c4e079437959516b853c8cc360754","signature":"712dbb6cc6020b1dae2a2031b8a117717318652f73fd5042d508f7de416c47b7"},{"version":"d9e51838c1aa2a91b7d2a495adb92ab70eb35c81fcd3b359c2509903958bf3f8","signature":"05cfea0488751015b0b85911b6cdcde7c6cebdd9b8cada1ec0b5c1736357a552"},{"version":"a1953ae5bbf52b027ed3044bf32024e21994345c8a05d0aaa3902e08c033c803","signature":"ee11b7061adce4a1c0370620949a57851215b152a5632d2faf1aedbc90ad0520"},{"version":"d1d0e3e5bd9e070e932c938bd580da6fce3b6a9e230b7156584f7b38ce3a9c4e","signature":"f8c86fcbfb0a1e69a0ed28d3249cc33c312fa23a39c17e15cbbcc539bdcdc303"},{"version":"f1f7164489347eacf6f1239bcae173a72047ee9be4ba8cd7f4f6af42e8155ce8","signature":"39d2d450df6efbf38585fd316f18922c8ac3fdfd4c3fc412d0bee34e2bc86378"},{"version":"995abaa0980d5f0e01b0c4723c203194a3ea4b289ea814afdcc6ec9df478488c","signature":"4dcdfe4c18557fc02d8cb22cb422cb98bfeba8158aaf18cc66f9d99293ebe2c8"},{"version":"2d95c27112bfd3344d29539192bbdd69996f276fb24e061932d8043f3a9ef26f","signature":"bc971f58cf8cef65c3e5a4d37539b96e1f8d19b5c662e9ab796b62c9a63cc0c0"},"ff81bffa4ecfceae2e86b5920c3fcb250b66b1d6ed72944dffdf58123be2481b","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","3c221f8328720606c7fdc037039f4803e13b5ee5b758eee4a4ccc34fb872d824","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","a862dcb740371257e3dae1ab379b0859edcb5119484f8359a5e6fb405db9e12e",{"version":"c169e9579cc2e83f78561e54b8e76d8474f28f01606dfc622823a8bb6478a2eb","signature":"3df6a0e8bdb7199dff6cf75c0250316f06b87c982bb47460960a1c5a793f5ca6"},{"version":"fb6284b223f3580ff8a5bc75b24824f80ea7b2f32afcae4aee7c6bd73802179c","signature":"b3238dd00b7796eda3f507726e9882a55ff7043b249be8309abed22cfb7d7463"},{"version":"b3725f31a113200e0a0266278f33e64ba879874b0acf6837054f9acd34719588","signature":"f499d7fb533781939c7a5ab778ac6e6c8ffe65601b1a61a843c36ee0013f05b6"},{"version":"4d8db0ef58073a950c6a985b0d1313a358c888e491d5d9a4d5a0777d84351c9a","signature":"1e73d612f806d183d6c16c4135c16c1a14dd827c1a67097e72ab1841852bfcb9"},{"version":"8e485e375afaab51fdf32972879fa40758471dc93fc9c2484ad16542fd9a8fdb","signature":"30046b0787c577061d43e498b507da8a249fbc58bbe33a09a7bef777e1d5fb67"},{"version":"679a664272f576edc7a22e5d35e1a050634eac2f0a2564c704f380e653e4f4b7","signature":"13a5d8ec52111b64ed8fdcb47ab664b60085733c46c44aede33fd2926840ac31"},{"version":"9544dfae3085b4d978f768b14b591c75a2d811d28ea006075bfb1428ff9da82e","signature":"1cf02270a889fcc3fa5863734fcdbea410d3b4dd71e4678a894a48028f836f6e"},"e056bb30bf82271634daeee81f772f4a7960085f01f6d4d09c8da1ebe5f6a623","5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576",{"version":"86492a546c3308feaf1dde967afd325c321483b5e96f5fa9e9b6e691dc23fa9e","affectsGlobalScope":true},"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"d4b4f6148a6444ec92db4ac4c7dd7050ffc32b21a10276a59498e04740e8fd8d","2524f58c8d67af441b487c0ce0e0dd9c18bf3d06c05f621874dcda9780d8e22c","c7dd759e5948a94b42422ba7cf70eb8455416def9447614a3bdc1a99b81fc8bb","1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be",{"version":"f408caa23323423542f1a751f0c66a2c3bd32d39f0f6c2015e1a7789a522cdbd","signature":"9e5ae84aa6fb0c1ad6771d51994210f9cc0fc60d43c9afbd4cde4e10e719b97b"},{"version":"8961b63c842af1026b9e1e6f67cba3cae570b0011168719c538d950f202b3689","signature":"51f3be4aa09529ea1ad83a3d66830075a49e3e630df25d9892ef5708bb00de55"},{"version":"c675bb21cfe468c2c5954085a1b94afe505064abeadeb692a8b93944b518f231","signature":"1bdef5c3270439174be1f8668f4e2d9b0e61be67f10e5dc770b4b7562caf04bb"},{"version":"f9520a64036c4378b6617c0e414d8f02f5ce3bcc2a7b0a929a319e7e3f9c6800","signature":"156f461ef172e70226132dc36df4b72f7e77ae88523aaad9f0440307a53bda36"},{"version":"14fd84e1f3037c24aa5e5c9b6c4250e9effeea0fae526277c8ac4890310273c6","signature":"2045cb057c6163f5d5bb4d12655bb1449383952bcd3b7a7a62b2848e420245c1"},"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true},"b67f9c5d42e7770ddf8b6d1747b531275c44617e8071d2602a2cffd2932ad95e","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"c48c503c6b3f63baf18257e9a87559b5602a4e960107c762586d2a6a62b64a18","affectsGlobalScope":true},"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","3bb6e21a9f30417c0a059e240b3f8f70c8af9c4cb6f2fd1bc2db594c647e285f","7483ef24249f6a3e24eb3d8136ec7fe0633cd6f8ffe752e2a8d99412aff35bb7","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"1bb9aab2311a9d596a45dba7c378b4e23846738d9bae54d60863dd3676b1edbc","affectsGlobalScope":true},"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"abe61b580e030f1ca3ee548c8fd7b40fc686a97a056d5d1481f34c39c637345f","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"ac14eb65c59722f0333e776a73e6a02cea23b5aa857a749ea176daf4e960e872","affectsGlobalScope":true},"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc",{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true}],"root":[[48,66],[81,87],[98,102]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5,"useDefineForClassFields":false},"fileIdsList":[[88,89],[79],[67,69,70,71,72,73,74,75,76,77,78,79],[67,68,70,71,72,73,74,75,76,77,78,79],[68,69,70,71,72,73,74,75,76,77,78,79],[67,68,69,71,72,73,74,75,76,77,78,79],[67,68,69,70,72,73,74,75,76,77,78,79],[67,68,69,70,71,73,74,75,76,77,78,79],[67,68,69,70,71,72,74,75,76,77,78,79],[67,68,69,70,71,72,73,75,76,77,78,79],[67,68,69,70,71,72,73,74,76,77,78,79],[67,68,69,70,71,72,73,74,75,77,78,79],[67,68,69,70,71,72,73,74,75,76,78,79],[67,68,69,70,71,72,73,74,75,76,77,79],[67,68,69,70,71,72,73,74,75,76,77,78],[103],[139],[140,145,174],[141,146,152,153,160,171,182],[141,142,152,160],[143,183],[144,145,153,161],[145,171,179],[146,148,152,160],[139,147],[148,149],[152],[150,152],[139,152],[152,153,154,171,182],[152,153,154,167,171,174],[137,140,187],[148,152,155,160,171,182],[152,153,155,156,160,171,179,182],[155,157,171,179,182],[103,104,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189],[152,158],[159,182,187],[148,152,160,171],[161],[162],[139,163],[160,161,164,181,187],[165],[166],[152,167,168],[167,169,183,185],[140,152,171,172,173,174],[140,171,173],[171,172],[174],[175],[139,171],[152,177,178],[177,178],[145,160,171,179],[180],[160,181],[140,155,166,182],[145,183],[171,184],[159,185],[186],[140,145,152,154,163,171,182,185,187],[171,188],[91],[90,94],[94],[92,93],[90,94,95,96],[114,118,182],[114,171,182],[109],[111,114,179,182],[160,179],[190],[109,190],[111,114,160,182],[106,107,110,113,140,152,171,182],[106,112],[110,114,140,174,182,190],[140,190],[130,140,190],[108,109,190],[114],[108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136],[114,121,122],[112,114,122,123],[113],[106,109,114],[114,118,122,123],[118],[112,114,117,182],[106,111,112,114,118,121],[140,171],[109,114,130,140,187,190],[47],[47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,83,84,85,86,87,99],[47,101],[47,80],[47,98],[47,60,97],[47,81,82],[47,80,82],[47,66,81],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,83,84,85,86,87,99],[101],[98],[97],[81,82],[82],[81]],"referencedMap":[[90,1],[80,2],[68,3],[69,4],[67,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,15],[103,16],[104,16],[139,17],[140,18],[141,19],[142,20],[143,21],[144,22],[145,23],[146,24],[147,25],[148,26],[149,26],[151,27],[150,28],[152,29],[153,30],[154,31],[138,32],[155,33],[156,34],[157,35],[190,36],[158,37],[159,38],[160,39],[161,40],[162,41],[163,42],[164,43],[165,44],[166,45],[167,46],[168,46],[169,47],[171,48],[173,49],[172,50],[174,51],[175,52],[176,53],[177,54],[178,55],[179,56],[180,57],[181,58],[182,59],[183,60],[184,61],[185,62],[186,63],[187,64],[188,65],[92,66],[95,67],[93,68],[94,69],[97,70],[121,71],[128,72],[120,71],[135,73],[112,74],[111,75],[134,76],[129,77],[132,78],[114,79],[113,80],[109,81],[108,82],[131,83],[110,84],[115,85],[119,85],[137,86],[136,85],[123,87],[124,88],[126,89],[122,90],[125,91],[130,76],[117,92],[118,93],[127,94],[107,95],[133,96],[48,97],[49,97],[50,97],[51,97],[52,97],[53,97],[54,97],[55,97],[56,97],[57,97],[58,97],[59,97],[60,97],[100,98],[84,97],[66,97],[87,97],[102,99],[101,100],[86,97],[62,97],[64,97],[65,97],[99,101],[98,102],[61,97],[85,97],[63,97],[83,103],[81,104],[82,105]],"exportedModulesMap":[[90,1],[80,2],[68,3],[69,4],[67,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,15],[103,16],[104,16],[139,17],[140,18],[141,19],[142,20],[143,21],[144,22],[145,23],[146,24],[147,25],[148,26],[149,26],[151,27],[150,28],[152,29],[153,30],[154,31],[138,32],[155,33],[156,34],[157,35],[190,36],[158,37],[159,38],[160,39],[161,40],[162,41],[163,42],[164,43],[165,44],[166,45],[167,46],[168,46],[169,47],[171,48],[173,49],[172,50],[174,51],[175,52],[176,53],[177,54],[178,55],[179,56],[180,57],[181,58],[182,59],[183,60],[184,61],[185,62],[186,63],[187,64],[188,65],[92,66],[95,67],[93,68],[94,69],[97,70],[121,71],[128,72],[120,71],[135,73],[112,74],[111,75],[134,76],[129,77],[132,78],[114,79],[113,80],[109,81],[108,82],[131,83],[110,84],[115,85],[119,85],[137,86],[136,85],[123,87],[124,88],[126,89],[122,90],[125,91],[130,76],[117,92],[118,93],[127,94],[107,95],[133,96],[100,106],[102,107],[101,2],[99,108],[98,109],[83,110],[81,111],[82,112]],"semanticDiagnosticsPerFile":[88,89,90,80,68,69,67,70,71,72,73,74,75,76,77,78,79,191,103,104,139,140,141,142,143,144,145,146,147,148,149,151,150,152,153,154,138,189,155,156,157,190,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,92,91,105,95,93,96,94,97,47,45,46,8,10,9,2,11,12,13,14,15,16,17,18,3,19,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,44,121,128,120,135,112,111,134,129,132,114,113,109,108,131,110,115,116,119,106,137,136,123,124,126,122,125,130,117,118,127,107,133,48,49,50,51,52,53,54,55,56,57,58,59,60,100,84,66,87,102,101,86,62,64,65,99,98,61,85,63,83,81,82]},"version":"5.4.5"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/utils",
3
3
  "description": "Webcomponent utils following open-wc recommendations",
4
4
  "author": "heartyoh",
5
- "version": "2.0.0-alpha.8",
5
+ "version": "2.0.0-beta.13",
6
6
  "main": "dist/src/index.js",
7
7
  "module": "dist/src/index.js",
8
8
  "exports": {
@@ -83,21 +83,21 @@
83
83
  "storybook:build": "tsc && npm run analyze -- --exclude dist && build-storybook"
84
84
  },
85
85
  "devDependencies": {
86
- "@custom-elements-manifest/analyzer": "^0.8.1",
86
+ "@custom-elements-manifest/analyzer": "^0.9.2",
87
87
  "@hatiolab/prettier-config": "^1.0.0",
88
- "@open-wc/eslint-config": "^10.0.0",
88
+ "@open-wc/eslint-config": "^12.0.3",
89
89
  "@open-wc/testing": "^3.1.6",
90
- "@typescript-eslint/eslint-plugin": "^5.59.1",
91
- "@typescript-eslint/parser": "^5.59.1",
90
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
91
+ "@typescript-eslint/parser": "^7.0.1",
92
92
  "@web/dev-server": "^0.3.0",
93
- "@web/dev-server-storybook": "^0.7.4",
94
- "@web/test-runner": "^0.17.0",
93
+ "@web/dev-server-storybook": "^2.0.1",
94
+ "@web/test-runner": "^0.18.0",
95
95
  "concurrently": "^8.0.1",
96
96
  "eslint": "^8.39.0",
97
- "eslint-config-prettier": "^8.3.0",
98
- "husky": "^8.0.1",
99
- "lint-staged": "^13.2.2",
100
- "prettier": "^2.4.1",
97
+ "eslint-config-prettier": "^9.1.0",
98
+ "husky": "^9.0.11",
99
+ "lint-staged": "^15.2.2",
100
+ "prettier": "^3.2.5",
101
101
  "tslib": "^2.3.1",
102
102
  "typescript": "^5.0.4"
103
103
  },
@@ -117,5 +117,5 @@
117
117
  "dependencies": {
118
118
  "lodash-es": "^4.17.21"
119
119
  },
120
- "gitHead": "9b76564615d73b9da50d13d30d43cdaa0d4a6fa6"
120
+ "gitHead": "719dcda3f81008118bc3593658f3e68570dd8866"
121
121
  }
@@ -0,0 +1,5 @@
1
+ export function decodeHTML(html: string) {
2
+ var txt = document.createElement('textarea');
3
+ txt.innerHTML = html;
4
+ return txt.value;
5
+ }
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
5
  * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ * @deprecated This function is no longer recommended for use and has been replaced by 'hasOverflow'.
6
7
  */
7
8
  export function detectOverflow(el: HTMLElement) {
8
9
  var styleOverflow = el.style.overflow
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Detects if the content of an HTMLElement overflows its boundaries.
3
+ *
4
+ * @param {HTMLElement} el - The HTMLElement to check for overflow.
5
+ * @returns {boolean} - `true` if overflow is detected, `false` otherwise.
6
+ */
7
+ export function hasOverflow(el: HTMLElement): boolean {
8
+ const computedStyle = getComputedStyle(el)
9
+ const originalOverflow = computedStyle.overflow
10
+
11
+ if (originalOverflow === 'visible') {
12
+ el.style.overflow = 'hidden'
13
+ }
14
+
15
+ const isOverflowing = el.clientWidth < el.scrollWidth || el.clientHeight < el.scrollHeight
16
+
17
+ if (originalOverflow === 'visible') {
18
+ el.style.overflow = ''
19
+ }
20
+
21
+ return isOverflowing
22
+ }
package/src/index.ts CHANGED
@@ -8,7 +8,8 @@ export * from './fullscreen.js'
8
8
  export * from './parse-jwt.js'
9
9
  export * from './password-pattern.js'
10
10
  export * from './closest-element.js'
11
- export * from './detect-overflow.js'
11
+ export * from './detect-overflow.js' /* deprecated by 'has-overflow' */
12
+ export * from './has-overflow.js'
12
13
  export * from './timecapsule/index.js'
13
14
  export * from './clipboard.js'
14
15
  export * from './format.js'
@@ -17,4 +18,8 @@ export * from './is-unvalued.js'
17
18
  export * from './stringify-bignum.js'
18
19
  export * from './encode-form-params.js'
19
20
  export * from './cookie.js'
20
- export * from './checker.js'
21
+ export * from './number-parser.js'
22
+ export * from './longpressable.js'
23
+ export * from './decode-html.js'
24
+
25
+ export * from './reactive-controllers'
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+
5
+ /* Inspired by https://github.com/john-doherty/long-press-event */
6
+
7
+ var timer = null as any
8
+
9
+ // check if we're using a touch screen
10
+ //@ts-ignore
11
+ const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0
12
+
13
+ // switch to touch events if using a touch screen
14
+ const mouseDown = isTouch ? 'touchstart' : 'mousedown'
15
+ const mouseOut = isTouch ? 'touchcancel' : 'mouseout'
16
+ const mouseUp = isTouch ? 'touchend' : 'mouseup'
17
+ const mouseMove = isTouch ? 'touchmove' : 'mousemove'
18
+
19
+ /*
20
+ * Fires the 'long-press' event on element
21
+ * @returns {void}
22
+ */
23
+ function fireLongPressEvent(this: HTMLElement) {
24
+ clearLongPressTimer()
25
+
26
+ // fire the long-press event
27
+ var suppressClickEvent = this.dispatchEvent(new CustomEvent('long-press', { bubbles: true, cancelable: true }))
28
+
29
+ if (suppressClickEvent) {
30
+ // temporarily intercept and clear the next click
31
+ this.addEventListener(
32
+ mouseUp,
33
+ function clearMouseUp(e) {
34
+ this.removeEventListener(mouseUp, clearMouseUp, true)
35
+ cancelEvent(e)
36
+ },
37
+ true
38
+ )
39
+ }
40
+ }
41
+
42
+ /*
43
+ * method responsible for starting the long press timer
44
+ * @param {event} e - event object
45
+ * @returns {void}
46
+ */
47
+ function startLongPressTimer(e: Event) {
48
+ clearLongPressTimer(e)
49
+
50
+ var el = e.target as HTMLElement
51
+
52
+ // get delay from html attribute if it exists, otherwise default to 1500
53
+ var longPressDelayInMs = parseInt(el.getAttribute('data-long-press-delay') || '600', 10)
54
+
55
+ // start the timer
56
+ timer = setTimeout(fireLongPressEvent.bind(el), longPressDelayInMs)
57
+ }
58
+
59
+ /*
60
+ * method responsible for clearing a pending long press timer
61
+ * @param {event} e - event object
62
+ * @returns {void}
63
+ */
64
+ function clearLongPressTimer(e?: Event) {
65
+ clearTimeout(timer)
66
+ timer = null
67
+ }
68
+
69
+ /*
70
+ * Cancels the current event
71
+ * @param {object} e - browser event object
72
+ * @returns {void}
73
+ */
74
+ function cancelEvent(e: Event) {
75
+ e.stopImmediatePropagation()
76
+ e.preventDefault()
77
+ e.stopPropagation()
78
+ }
79
+
80
+ /**
81
+ * method set target element to be able to respond longpress event
82
+ * @param {HTMLElement} element target element
83
+ */
84
+ export const longpressable = (element: HTMLElement) => {
85
+ // hook events that clear a pending long press event
86
+ element.addEventListener(mouseOut, clearLongPressTimer, true)
87
+ element.addEventListener(mouseUp, clearLongPressTimer, true)
88
+ element.addEventListener(mouseMove, clearLongPressTimer, true)
89
+ element.addEventListener('wheel', clearLongPressTimer, true)
90
+ element.addEventListener('scroll', clearLongPressTimer, true)
91
+
92
+ // hook events that can trigger a long press event
93
+ element.addEventListener(mouseDown, startLongPressTimer, true) // <- start
94
+
95
+ // cancel context for touch display
96
+ if (mouseDown.indexOf('touch') === 0) {
97
+ element.addEventListener('contextmenu', cancelEvent, true)
98
+ } else {
99
+ element.addEventListener('contextmenu', clearLongPressTimer, true)
100
+ }
101
+ }
@@ -0,0 +1 @@
1
+ export * from './tooltip-reactive-controller.js'
@@ -0,0 +1,89 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit'
2
+ import { hasOverflow } from '../has-overflow'
3
+
4
+ /**
5
+ * TooltipReactiveController is a controller that manages the display of tooltips
6
+ * for elements with a specified attribute. It works in conjunction with TooltipStyles
7
+ * to position and style the tooltips.
8
+ */
9
+ export class TooltipReactiveController implements ReactiveController {
10
+ private host: ReactiveControllerHost & HTMLElement
11
+ private attributeName!: string
12
+ private content?: string | ((element: HTMLElement) => string)
13
+
14
+ /**
15
+ * @param host - The host element that this controller is associated with.
16
+ * @param options - An optional object containing the content of the tooltip and the attribute name that triggers the tooltip.
17
+ * - content: The tooltip content, either a string or a function that returns a string based on the element.
18
+ * - attributeName: The attribute name that triggers the tooltip. Defaults to 'data-reactive-tooltip'.
19
+ */
20
+ constructor(
21
+ host: ReactiveControllerHost & HTMLElement,
22
+ options?: {
23
+ content?: string | ((element: HTMLElement) => string)
24
+ attributeName?: string
25
+ }
26
+ ) {
27
+ const { attributeName, content } = options || {}
28
+
29
+ this.host = host
30
+ this.attributeName = attributeName || 'data-reactive-tooltip'
31
+ this.content = content
32
+
33
+ host.addController(this)
34
+ }
35
+
36
+ /**
37
+ * Called when the host is connected to the DOM. Adds event listeners for mouseover and mouseout events.
38
+ */
39
+ hostConnected() {
40
+ const target = this.host.shadowRoot ?? this.host
41
+ target.addEventListener('mouseover', this.handleMouseOver)
42
+ target.addEventListener('mouseout', this.handleMouseOut)
43
+ }
44
+
45
+ /**
46
+ * Called when the host is disconnected from the DOM. Removes event listeners for mouseover and mouseout events.
47
+ */
48
+ hostDisconnected() {
49
+ const target = this.host.shadowRoot ?? this.host
50
+ target.removeEventListener('mouseover', this.handleMouseOver)
51
+ target.removeEventListener('mouseout', this.handleMouseOut)
52
+ }
53
+
54
+ /**
55
+ * Handles the mouseover event. Checks if the target element has the specified attribute and if it has overflow.
56
+ * If both conditions are met, sets the tooltip content and calculates its position.
57
+ * @param e - The mouseover event.
58
+ */
59
+ private handleMouseOver = (e: Event) => {
60
+ const element = e.target as HTMLElement
61
+ if (element.hasAttribute(this.attributeName) && hasOverflow(element)) {
62
+ element.setAttribute(
63
+ 'data-tooltip',
64
+ typeof this.content === 'function'
65
+ ? this.content.call(this, element)
66
+ : this.content || element.textContent?.trim() || ''
67
+ )
68
+
69
+ const rect = element.getBoundingClientRect()
70
+
71
+ // Set CSS variables for position
72
+ element.style.setProperty('--tooltip-top', `${rect.top + rect.height}px`)
73
+ element.style.setProperty('--tooltip-left', `${rect.left}px`)
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Handles the mouseout event. Removes the tooltip content and position properties from the target element.
79
+ * @param e - The mouseout event.
80
+ */
81
+ private handleMouseOut = (e: Event) => {
82
+ const element = e.target as HTMLElement
83
+ if (element.hasAttribute('data-tooltip')) {
84
+ element.removeAttribute('data-tooltip')
85
+ element.style.removeProperty('--tooltip-top')
86
+ element.style.removeProperty('--tooltip-left')
87
+ }
88
+ }
89
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/checker.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,IAAI,MAAM,GAAkB,IAAI,CAAA;IAEhC,6BAA6B;IAC7B,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,EAAE,CAAC;QACxG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["// 숫자라면 숫자값을, 아니면 null을 반환\n// 0 = true\n// '0' = true\n// 123 = true\n// \"123\" = true\n// -123 = true\n// \"-123\" = true\n// true = false\n// false = false\n// \"\" = false\n// null = false\n// undefined = false\n// {} = false\n// [] = false\nexport function parseToNumberOrNull(value: any): number | null {\n let result: number | null = null\n\n // 숫자나 스트링이면서 NaN이 아니면 숫자로 변환\n if ((typeof value === 'string' || typeof value === 'number') && value !== '' && !isNaN(value as number)) {\n result = Number(value)\n }\n\n return result\n}\n"]}
File without changes
File without changes