@aquera/nile-elements 0.1.35-beta-1.2 → 0.1.35

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 (174) hide show
  1. package/README.md +10 -28
  2. package/demo/index.css +4 -7
  3. package/demo/index.html +36 -20
  4. package/demo/variables.css +0 -13
  5. package/demo/variables_v2.css +0 -13
  6. package/dist/{fixture-d5b55278.cjs.js → fixture-161dee0b.cjs.js} +3 -3
  7. package/dist/fixture-161dee0b.cjs.js.map +1 -0
  8. package/dist/{fixture-df8b52d7.esm.js → fixture-372df3b0.esm.js} +1 -1
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/internal/animate.cjs.js +1 -1
  12. package/dist/internal/animate.cjs.js.map +1 -1
  13. package/dist/internal/animate.esm.js +1 -1
  14. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  15. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  17. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  18. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  19. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  20. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  21. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  23. package/dist/nile-button/nile-button.test.esm.js +1 -1
  24. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  25. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  27. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  28. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  29. package/dist/nile-card/nile-card.test.esm.js +1 -1
  30. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  31. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  32. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  33. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  34. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  35. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  36. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  37. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  38. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  39. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  40. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  41. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  42. package/dist/nile-error-message/nile-error-message.cjs.js +1 -1
  43. package/dist/nile-error-message/nile-error-message.cjs.js.map +1 -1
  44. package/dist/nile-error-message/nile-error-message.css.cjs.js +1 -1
  45. package/dist/nile-error-message/nile-error-message.css.cjs.js.map +1 -1
  46. package/dist/nile-error-message/nile-error-message.css.esm.js +4 -6
  47. package/dist/nile-error-message/nile-error-message.esm.js +4 -4
  48. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  49. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  50. package/dist/nile-error-notification/nile-error-notification.css.cjs.js +1 -1
  51. package/dist/nile-error-notification/nile-error-notification.css.cjs.js.map +1 -1
  52. package/dist/nile-error-notification/nile-error-notification.css.esm.js +1 -1
  53. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  54. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  55. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  56. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  57. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  58. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  59. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  60. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  61. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  62. package/dist/nile-input/nile-input.test.esm.js +1 -1
  63. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  64. package/dist/nile-link/nile-link.test.esm.js +1 -1
  65. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  66. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  67. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  68. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  69. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  70. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  71. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js +1 -1
  72. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js.map +1 -1
  73. package/dist/nile-progress-bar/nile-progress-bar.css.esm.js +0 -1
  74. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  75. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  76. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  77. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  78. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  79. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  80. package/dist/nile-select/nile-select.cjs.js +1 -1
  81. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  82. package/dist/nile-select/nile-select.esm.js +1 -1
  83. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  84. package/dist/nile-select/nile-select.test.esm.js +1 -1
  85. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  86. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  87. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  88. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  89. package/dist/nile-table/nile-table.cjs.js.map +1 -1
  90. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  91. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  92. package/dist/nile-tooltip/index.cjs.js +1 -1
  93. package/dist/nile-tooltip/index.esm.js +1 -1
  94. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  95. package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
  96. package/dist/nile-tooltip/nile-tooltip.css.cjs.js +1 -1
  97. package/dist/nile-tooltip/nile-tooltip.css.cjs.js.map +1 -1
  98. package/dist/nile-tooltip/nile-tooltip.css.esm.js +45 -78
  99. package/dist/nile-tooltip/nile-tooltip.esm.js +28 -23
  100. package/dist/src/index.d.ts +0 -1
  101. package/dist/src/index.js +0 -1
  102. package/dist/src/index.js.map +1 -1
  103. package/dist/src/nile-error-message/nile-error-message.css.js +4 -6
  104. package/dist/src/nile-error-message/nile-error-message.css.js.map +1 -1
  105. package/dist/src/nile-error-message/nile-error-message.d.ts +0 -4
  106. package/dist/src/nile-error-message/nile-error-message.js +0 -20
  107. package/dist/src/nile-error-message/nile-error-message.js.map +1 -1
  108. package/dist/src/nile-error-notification/nile-error-notification.css.js +1 -1
  109. package/dist/src/nile-error-notification/nile-error-notification.css.js.map +1 -1
  110. package/dist/src/nile-progress-bar/nile-progress-bar.css.js +0 -1
  111. package/dist/src/nile-progress-bar/nile-progress-bar.css.js.map +1 -1
  112. package/dist/src/nile-select/nile-select.js +1 -1
  113. package/dist/src/nile-select/nile-select.js.map +1 -1
  114. package/dist/src/nile-table/nile-table.js.map +1 -1
  115. package/dist/src/nile-tooltip/nile-tooltip.css.js +43 -76
  116. package/dist/src/nile-tooltip/nile-tooltip.css.js.map +1 -1
  117. package/dist/src/nile-tooltip/nile-tooltip.d.ts +46 -24
  118. package/dist/src/nile-tooltip/nile-tooltip.js +232 -235
  119. package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
  120. package/dist/tsconfig.tsbuildinfo +1 -1
  121. package/package.json +2 -2
  122. package/src/index.ts +1 -2
  123. package/src/nile-error-message/nile-error-message.css.ts +4 -6
  124. package/src/nile-error-message/nile-error-message.ts +0 -18
  125. package/src/nile-error-notification/nile-error-notification.css.ts +1 -1
  126. package/src/nile-progress-bar/nile-progress-bar.css.ts +0 -1
  127. package/src/nile-select/nile-select.ts +1 -1
  128. package/src/nile-table/nile-table.ts +2 -2
  129. package/src/nile-tooltip/nile-tooltip.css.ts +44 -77
  130. package/src/nile-tooltip/nile-tooltip.ts +230 -268
  131. package/vscode-html-custom-data.json +95 -139
  132. package/dist/fixture-d5b55278.cjs.js.map +0 -1
  133. package/dist/nile-filter-chip/index.cjs.js +0 -2
  134. package/dist/nile-filter-chip/index.cjs.js.map +0 -1
  135. package/dist/nile-filter-chip/index.esm.js +0 -1
  136. package/dist/nile-filter-chip/nile-filter-chip.cjs.js +0 -2
  137. package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +0 -1
  138. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +0 -2
  139. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +0 -1
  140. package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +0 -98
  141. package/dist/nile-filter-chip/nile-filter-chip.esm.js +0 -34
  142. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
  143. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
  144. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
  145. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js +0 -2
  146. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js.map +0 -1
  147. package/dist/nile-tooltip/nile-tooltip-utils.esm.js +0 -1
  148. package/dist/nile-tooltip/nile-tooltip.test.cjs.js +0 -2
  149. package/dist/nile-tooltip/nile-tooltip.test.cjs.js.map +0 -1
  150. package/dist/nile-tooltip/nile-tooltip.test.esm.js +0 -47
  151. package/dist/src/nile-filter-chip/index.d.ts +0 -1
  152. package/dist/src/nile-filter-chip/index.js +0 -2
  153. package/dist/src/nile-filter-chip/index.js.map +0 -1
  154. package/dist/src/nile-filter-chip/nile-filter-chip.css.d.ts +0 -12
  155. package/dist/src/nile-filter-chip/nile-filter-chip.css.js +0 -110
  156. package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +0 -1
  157. package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +0 -35
  158. package/dist/src/nile-filter-chip/nile-filter-chip.js +0 -128
  159. package/dist/src/nile-filter-chip/nile-filter-chip.js.map +0 -1
  160. package/dist/src/nile-filter-chip/nile-filter-chip.test.d.ts +0 -1
  161. package/dist/src/nile-filter-chip/nile-filter-chip.test.js +0 -80
  162. package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +0 -1
  163. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +0 -18
  164. package/dist/src/nile-tooltip/nile-tooltip-utils.js +0 -216
  165. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +0 -1
  166. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +0 -1
  167. package/dist/src/nile-tooltip/nile-tooltip.test.js +0 -148
  168. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +0 -1
  169. package/src/nile-filter-chip/index.ts +0 -1
  170. package/src/nile-filter-chip/nile-filter-chip.css.ts +0 -115
  171. package/src/nile-filter-chip/nile-filter-chip.test.ts +0 -92
  172. package/src/nile-filter-chip/nile-filter-chip.ts +0 -125
  173. package/src/nile-tooltip/nile-tooltip-utils.ts +0 -271
  174. package/src/nile-tooltip/nile-tooltip.test.ts +0 -168
@@ -1,110 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2023
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { css } from 'lit';
8
- /**
9
- * FilterChip CSS
10
- */
11
- export const styles = css `
12
-
13
-
14
- .filter-chips {
15
- display: flex;
16
- align-items: center;
17
- }
18
-
19
-
20
- .chip {
21
- display: inline-flex;
22
- align-items: center;
23
- padding: 4px 8px;
24
- border: 1px solid var(--nile-filter-chip-chip-border-color-stroke);
25
- border-radius: 4px;
26
- font-size: 14px;
27
- background-color: var(--nile-filter-chip-background-default);
28
- color: var(--nile-filter-chip-text-default);
29
- transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
30
- cursor: pointer;
31
- gap: 6px;
32
- margin-right: 6px;
33
- }
34
-
35
- .chip:hover {
36
- background-color: var(--nile-filter-chip-hover-background);
37
- }
38
-
39
- .chip:active {
40
- background-color: var(--nile-filter-chip-active-background);
41
- border-color: var(--nile-filter-chip-active-border-color-stroke);
42
- }
43
-
44
- .icon {
45
- color: var(--nile-filter-chip-icon-color-default);
46
- display: flex;
47
- align-items: center;
48
- justify-content: center;
49
- vertical-align: middle;
50
- position: relative;
51
- top: 12px;
52
- }
53
-
54
- .label {
55
- font-weight: 500;
56
- color: var(--nile-filter-chip-label-color-default);
57
- }
58
-
59
- nile-badge::part(base) {
60
- width: auto;
61
- height: 14px;
62
- border-radius: 100px;
63
- padding: 6px;
64
- gap: 10px;
65
- font-size: 8px;
66
- display: inline-flex;
67
- align-items: center;
68
- justify-content: center;
69
- line-height: 1;
70
- }
71
-
72
- .chip-container {
73
- display: flex;
74
- justify-content: space-between;
75
- align-items: center;
76
- width: 100%;
77
- }
78
-
79
- .clear-all-container {
80
- margin-left: 18px;
81
- white-space: nowrap;
82
- cursor: pointer;
83
- }
84
-
85
-
86
- .value {
87
- color: var(--nile-filter-chip-values-color-default);
88
- overflow: hidden;
89
- text-overflow: ellipsis;
90
- white-space: nowrap;
91
- max-width: 140px;
92
- }
93
-
94
- .close-icon {
95
- color: var(--nile-filter-chip-close-icon-color-default);
96
- cursor: pointer;
97
- display: flex;
98
- align-items: center;
99
- padding: 2px;
100
- border-radius: 50%;
101
- transition: background-color 0.2s;
102
- }
103
-
104
- .close-icon:hover {
105
- background-color: var(--nile-filter-chip-close-icon-hover-background);
106
- color: var(--nile-filter-chip-close-icon-hover-color);
107
- }
108
- `;
109
- export default [styles];
110
- //# sourceMappingURL=nile-filter-chip.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nile-filter-chip.css.js","sourceRoot":"","sources":["../../../src/nile-filter-chip/nile-filter-chip.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * FilterChip CSS\n */\n\nexport const styles = css`\n\n\n .filter-chips {\n display: flex;\n align-items: center;\n }\n\n\n .chip {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n border: 1px solid var(--nile-filter-chip-chip-border-color-stroke);\n border-radius: 4px;\n font-size: 14px;\n background-color: var(--nile-filter-chip-background-default);\n color: var(--nile-filter-chip-text-default);\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n cursor: pointer;\n gap: 6px;\n margin-right: 6px;\n }\n\n .chip:hover {\n background-color: var(--nile-filter-chip-hover-background);\n }\n\n .chip:active {\n background-color: var(--nile-filter-chip-active-background);\n border-color: var(--nile-filter-chip-active-border-color-stroke);\n }\n\n .icon {\n color: var(--nile-filter-chip-icon-color-default);\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n position: relative;\n top: 12px;\n }\n\n .label {\n font-weight: 500;\n color: var(--nile-filter-chip-label-color-default);\n }\n\n nile-badge::part(base) {\n width: auto;\n height: 14px;\n border-radius: 100px;\n padding: 6px;\n gap: 10px;\n font-size: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n\n .chip-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n\n .clear-all-container {\n margin-left: 18px;\n white-space: nowrap;\n cursor: pointer;\n }\n\n\n .value {\n color: var(--nile-filter-chip-values-color-default);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 140px;\n }\n\n .close-icon {\n color: var(--nile-filter-chip-close-icon-color-default);\n cursor: pointer;\n display: flex;\n align-items: center;\n padding: 2px;\n border-radius: 50%;\n transition: background-color 0.2s;\n }\n\n .close-icon:hover {\n background-color: var(--nile-filter-chip-close-icon-hover-background);\n color: var(--nile-filter-chip-close-icon-hover-color);\n }\n`;\n\nexport default [styles];\n\n "]}
@@ -1,35 +0,0 @@
1
- import { CSSResultArray, TemplateResult } from 'lit';
2
- import NileElement from '../internal/nile-element';
3
- /**
4
- * Nile filter-chip component.
5
- *
6
- * @tag nile-filter-chip
7
- */
8
- export declare class NileFilterChip extends NileElement {
9
- label: string;
10
- text: string;
11
- extraCount: number;
12
- editable: boolean;
13
- closable: boolean;
14
- icon: string;
15
- removeIcon: string;
16
- private static activeChips;
17
- static get styles(): CSSResultArray;
18
- connectedCallback(): void;
19
- disconnectedCallback(): void;
20
- private registerChip;
21
- private unregisterChip;
22
- private handleClose;
23
- private handleClick;
24
- private getLabelSlot;
25
- private getValueSlot;
26
- private getExtraCountSlot;
27
- private getCloseIconSlot;
28
- render(): TemplateResult;
29
- }
30
- export default NileFilterChip;
31
- declare global {
32
- interface HTMLElementTagNameMap {
33
- 'nile-filter-chip': NileFilterChip;
34
- }
35
- }
@@ -1,128 +0,0 @@
1
- var NileFilterChip_1;
2
- import { __decorate } from "tslib";
3
- import { html } from 'lit';
4
- import { customElement, property } from 'lit/decorators.js';
5
- import NileElement from '../internal/nile-element';
6
- import { styles } from './nile-filter-chip.css';
7
- /**
8
- * Nile filter-chip component.
9
- *
10
- * @tag nile-filter-chip
11
- */
12
- let NileFilterChip = NileFilterChip_1 = class NileFilterChip extends NileElement {
13
- constructor() {
14
- super(...arguments);
15
- this.label = '';
16
- this.text = '';
17
- this.extraCount = 0;
18
- this.editable = false;
19
- this.closable = false;
20
- this.icon = '';
21
- this.removeIcon = '';
22
- }
23
- static get styles() {
24
- return [styles];
25
- }
26
- connectedCallback() {
27
- super.connectedCallback();
28
- this.registerChip();
29
- }
30
- disconnectedCallback() {
31
- super.disconnectedCallback();
32
- this.unregisterChip();
33
- }
34
- registerChip() {
35
- NileFilterChip_1.activeChips.push(this);
36
- }
37
- unregisterChip() {
38
- NileFilterChip_1.activeChips = NileFilterChip_1.activeChips.filter((chip) => chip !== this);
39
- }
40
- handleClose(event) {
41
- event.stopPropagation();
42
- this.dispatchEvent(new CustomEvent('nile-close', { detail: { text: this.text, extraCount: this.extraCount } }));
43
- this.remove();
44
- }
45
- handleClick() {
46
- this.dispatchEvent(new CustomEvent('nile-click', { detail: { text: this.text, extraCount: this.extraCount } }));
47
- }
48
- getLabelSlot() {
49
- return html `
50
- <slot name="label">
51
- <span class="label">${this.label}:</span>
52
- </slot>
53
- `;
54
- }
55
- getValueSlot() {
56
- return html `
57
- <slot name="value">
58
- <span class="value">${this.text}</span>
59
- </slot>
60
- `;
61
- }
62
- getExtraCountSlot() {
63
- return html `
64
- <slot name="suffix">
65
- ${this.extraCount
66
- ? html `
67
- <nile-badge variant="primary" pilltype="pill-color">
68
- +${this.extraCount}
69
- </nile-badge>
70
- `
71
- : html ``}
72
- </slot>
73
- `;
74
- }
75
- getCloseIconSlot() {
76
- return html `
77
- ${this.closable
78
- ? html `
79
- <span class="close-icon" @click="${this.handleClose}">
80
- <nile-icon name="${this.removeIcon || 'close'}" size="12"></nile-icon>
81
- </span>
82
- `
83
- : html ``}
84
- `;
85
- }
86
- render() {
87
- return html `
88
- <div class="chip" @click="${this.handleClick}">
89
- <slot name="icon">
90
- ${this.icon ? html `<span class="icon">${this.icon}</span>` : html ``}
91
- </slot>
92
- ${this.getLabelSlot()}
93
- <slot name="content"></slot>
94
- ${this.getValueSlot()}
95
- ${this.getExtraCountSlot()}
96
- ${this.getCloseIconSlot()}
97
- </div>
98
- `;
99
- }
100
- };
101
- NileFilterChip.activeChips = [];
102
- __decorate([
103
- property({ type: String })
104
- ], NileFilterChip.prototype, "label", void 0);
105
- __decorate([
106
- property({ type: String })
107
- ], NileFilterChip.prototype, "text", void 0);
108
- __decorate([
109
- property({ type: Number })
110
- ], NileFilterChip.prototype, "extraCount", void 0);
111
- __decorate([
112
- property({ type: Boolean })
113
- ], NileFilterChip.prototype, "editable", void 0);
114
- __decorate([
115
- property({ type: Boolean })
116
- ], NileFilterChip.prototype, "closable", void 0);
117
- __decorate([
118
- property({ type: String })
119
- ], NileFilterChip.prototype, "icon", void 0);
120
- __decorate([
121
- property({ type: String })
122
- ], NileFilterChip.prototype, "removeIcon", void 0);
123
- NileFilterChip = NileFilterChip_1 = __decorate([
124
- customElement('nile-filter-chip')
125
- ], NileFilterChip);
126
- export { NileFilterChip };
127
- export default NileFilterChip;
128
- //# sourceMappingURL=nile-filter-chip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nile-filter-chip.js","sourceRoot":"","sources":["../../../src/nile-filter-chip/nile-filter-chip.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport NileElement from '../internal/nile-element';\nimport { styles } from './nile-filter-chip.css';\n\n/**\n * Nile filter-chip component.\n *\n * @tag nile-filter-chip\n */\n@customElement('nile-filter-chip')\nexport class NileFilterChip extends NileElement {\n @property({ type: String }) label = '';\n @property({ type: String }) text = '';\n @property({ type: Number }) extraCount: number = 0;\n @property({ type: Boolean }) editable = false;\n @property({ type: Boolean }) closable = false;\n @property({ type: String }) icon = '';\n @property({ type: String }) removeIcon = '';\n\n private static activeChips: NileFilterChip[] = [];\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.registerChip();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.unregisterChip();\n }\n\n private registerChip() {\n NileFilterChip.activeChips.push(this);\n }\n\n private unregisterChip() {\n NileFilterChip.activeChips = NileFilterChip.activeChips.filter(\n (chip) => chip !== this\n );\n }\n\n private handleClose(event: Event) {\n event.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('nile-close', { detail: { text: this.text, extraCount: this.extraCount } })\n );\n this.remove();\n }\n\n private handleClick() {\n this.dispatchEvent(\n new CustomEvent('nile-click', { detail: { text: this.text, extraCount: this.extraCount } })\n );\n }\n\n private getLabelSlot(): TemplateResult {\n return html`\n <slot name=\"label\">\n <span class=\"label\">${this.label}:</span>\n </slot>\n `;\n }\n\n private getValueSlot(): TemplateResult {\n return html`\n <slot name=\"value\">\n <span class=\"value\">${this.text}</span>\n </slot>\n `;\n }\n\n private getExtraCountSlot(): TemplateResult {\n return html`\n <slot name=\"suffix\">\n ${this.extraCount\n ? html`\n <nile-badge variant=\"primary\" pilltype=\"pill-color\">\n +${this.extraCount}\n </nile-badge>\n `\n : html``}\n </slot>\n `;\n }\n\n private getCloseIconSlot(): TemplateResult {\n return html`\n ${this.closable\n ? html`\n <span class=\"close-icon\" @click=\"${this.handleClose}\">\n <nile-icon name=\"${this.removeIcon || 'close'}\" size=\"12\"></nile-icon>\n </span>\n `\n : html``}\n `;\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"chip\" @click=\"${this.handleClick}\">\n <slot name=\"icon\">\n ${this.icon ? html`<span class=\"icon\">${this.icon}</span>` : html``}\n </slot>\n ${this.getLabelSlot()}\n <slot name=\"content\"></slot>\n ${this.getValueSlot()}\n ${this.getExtraCountSlot()}\n ${this.getCloseIconSlot()}\n </div>\n `;\n }\n}\n\nexport default NileFilterChip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-filter-chip': NileFilterChip;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- import './nile-filter-chip';
@@ -1,80 +0,0 @@
1
- import { fixture, expect, html, oneEvent } from '@open-wc/testing';
2
- import './nile-filter-chip';
3
- import { NileFilterChip } from './nile-filter-chip';
4
- describe('<nile-filter-chip>', () => {
5
- afterEach(() => {
6
- NileFilterChip.activeChips = [];
7
- });
8
- it('registers and unregisters itself in activeChips', async () => {
9
- const el = await fixture(html `
10
- <nile-filter-chip label="L" text="T"></nile-filter-chip>
11
- `);
12
- expect(NileFilterChip.activeChips).to.include(el);
13
- el.remove();
14
- await el.updateComplete;
15
- expect(NileFilterChip.activeChips).to.not.include(el);
16
- });
17
- it('renders fallback label and text', async () => {
18
- const el = await fixture(html `
19
- <nile-filter-chip label="MyLabel" text="MyText"></nile-filter-chip>
20
- `);
21
- const label = el.shadowRoot.querySelector('.label');
22
- const value = el.shadowRoot.querySelector('.value');
23
- expect(label.textContent).to.equal('MyLabel:');
24
- expect(value.textContent.trim()).to.equal('MyText');
25
- });
26
- it('renders slotted label and value over fallback', async () => {
27
- const el = await fixture(html `
28
- <nile-filter-chip>
29
- <span slot="label">SLOT-LBL</span>
30
- <span slot="value">SLOT-VAL</span>
31
- </nile-filter-chip>
32
- `);
33
- const slottedLabel = el.querySelector('[slot="label"]');
34
- const slottedValue = el.querySelector('[slot="value"]');
35
- expect(slottedLabel.textContent).to.equal('SLOT-LBL');
36
- expect(slottedValue.textContent).to.equal('SLOT-VAL');
37
- });
38
- it('renders an icon when the `icon` property is set', async () => {
39
- const el = await fixture(html `
40
- <nile-filter-chip icon="★" label="L" text="T"></nile-filter-chip>
41
- `);
42
- const iconSpan = el.shadowRoot.querySelector('.icon');
43
- expect(iconSpan).to.exist;
44
- expect(iconSpan.textContent).to.equal('★');
45
- });
46
- it('does not render a badge when extraCount is zero', async () => {
47
- const el = await fixture(html `
48
- <nile-filter-chip extraCount="0" label="L" text="T"></nile-filter-chip>
49
- `);
50
- expect(el.shadowRoot.querySelector('nile-badge')).to.be.null;
51
- });
52
- it('renders a +badge when extraCount > 0', async () => {
53
- const el = await fixture(html `
54
- <nile-filter-chip extraCount="5" label="L" text="T"></nile-filter-chip>
55
- `);
56
- const badge = el.shadowRoot.querySelector('nile-badge');
57
- expect(badge).to.exist;
58
- expect(badge.textContent).to.contain('+5');
59
- });
60
- it('dispatches `nile-click` on chip click', async () => {
61
- const el = await fixture(html `
62
- <nile-filter-chip label="L" text="T"></nile-filter-chip>
63
- `);
64
- const chip = el.shadowRoot.querySelector('.chip');
65
- setTimeout(() => chip.click());
66
- const ev = await oneEvent(el, 'nile-click');
67
- expect(ev.detail).to.deep.equal({ text: 'T', extraCount: 0 });
68
- });
69
- it('dispatches `nile-close` on close icon click and removes itself', async () => {
70
- const el = await fixture(html `
71
- <nile-filter-chip closable extraCount="2" text="TT"></nile-filter-chip>
72
- `);
73
- const closeIcon = el.shadowRoot.querySelector('.close-icon');
74
- setTimeout(() => closeIcon.click());
75
- const ev = await oneEvent(el, 'nile-close');
76
- expect(ev.detail).to.deep.equal({ text: 'TT', extraCount: 2 });
77
- expect(document.body.contains(el)).to.be.false;
78
- });
79
- });
80
- //# sourceMappingURL=nile-filter-chip.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nile-filter-chip.test.js","sourceRoot":"","sources":["../../../src/nile-filter-chip/nile-filter-chip.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE;QACZ,cAAsB,CAAC,WAAW,GAAG,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,CAAE,cAAsB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,EAAE,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAE,cAAsB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAiB,CAAC;QACrE,MAAM,KAAK,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAiB,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;;;;KAK5C,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAiB,CAAC;QACxE,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAiB,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAiB,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,YAAY,CAAiB,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAIH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAiB,CAAC;QACnE,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;KAE5C,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,aAAa,CAAiB,CAAC;QAC9E,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjD,CAAC,CAAC,CAAC;AAGL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture, expect, html, oneEvent } from '@open-wc/testing';\nimport './nile-filter-chip';\nimport { NileFilterChip } from './nile-filter-chip';\n\ndescribe('<nile-filter-chip>', () => {\n afterEach(() => {\n (NileFilterChip as any).activeChips = [];\n });\n\n it('registers and unregisters itself in activeChips', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip label=\"L\" text=\"T\"></nile-filter-chip>\n `);\n expect((NileFilterChip as any).activeChips).to.include(el);\n el.remove();\n await el.updateComplete;\n expect((NileFilterChip as any).activeChips).to.not.include(el);\n });\n\n it('renders fallback label and text', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip label=\"MyLabel\" text=\"MyText\"></nile-filter-chip>\n `);\n const label = el.shadowRoot!.querySelector('.label')! as HTMLElement;\n const value = el.shadowRoot!.querySelector('.value')! as HTMLElement;\n expect(label.textContent).to.equal('MyLabel:');\n expect(value.textContent!.trim()).to.equal('MyText');\n });\n\n it('renders slotted label and value over fallback', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip>\n <span slot=\"label\">SLOT-LBL</span>\n <span slot=\"value\">SLOT-VAL</span>\n </nile-filter-chip>\n `);\n const slottedLabel = el.querySelector('[slot=\"label\"]')! as HTMLElement;\n const slottedValue = el.querySelector('[slot=\"value\"]')! as HTMLElement;\n expect(slottedLabel.textContent).to.equal('SLOT-LBL');\n expect(slottedValue.textContent).to.equal('SLOT-VAL');\n });\n\n it('renders an icon when the `icon` property is set', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip icon=\"★\" label=\"L\" text=\"T\"></nile-filter-chip>\n `);\n const iconSpan = el.shadowRoot!.querySelector('.icon')! as HTMLElement;\n expect(iconSpan).to.exist;\n expect(iconSpan.textContent).to.equal('★');\n });\n\n it('does not render a badge when extraCount is zero', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip extraCount=\"0\" label=\"L\" text=\"T\"></nile-filter-chip>\n `);\n expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null;\n });\n\n it('renders a +badge when extraCount > 0', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip extraCount=\"5\" label=\"L\" text=\"T\"></nile-filter-chip>\n `);\n const badge = el.shadowRoot!.querySelector('nile-badge')! as HTMLElement;\n expect(badge).to.exist;\n expect(badge.textContent).to.contain('+5');\n });\n\n\n\n it('dispatches `nile-click` on chip click', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip label=\"L\" text=\"T\"></nile-filter-chip>\n `);\n const chip = el.shadowRoot!.querySelector('.chip')! as HTMLElement;\n setTimeout(() => chip.click());\n const ev = await oneEvent(el, 'nile-click');\n expect(ev.detail).to.deep.equal({ text: 'T', extraCount: 0 });\n });\n\n it('dispatches `nile-close` on close icon click and removes itself', async () => {\n const el = await fixture<NileFilterChip>(html`\n <nile-filter-chip closable extraCount=\"2\" text=\"TT\"></nile-filter-chip>\n `);\n const closeIcon = el.shadowRoot!.querySelector('.close-icon')! as HTMLElement;\n setTimeout(() => closeIcon.click());\n const ev = await oneEvent(el, 'nile-close');\n expect(ev.detail).to.deep.equal({ text: 'TT', extraCount: 2 });\n expect(document.body.contains(el)).to.be.false;\n });\n\n \n});\n"]}
@@ -1,18 +0,0 @@
1
- export declare function isInViewport(element: HTMLElement): boolean;
2
- export declare function getValidTooltipPosition(triggerRect: DOMRect, tooltipRect: DOMRect, originalPlacement: string, distance: number, skidding: number, caretSize: number, viewportWidth: number, viewportHeight: number): {
3
- top: number;
4
- left: number;
5
- placement: string;
6
- };
7
- export interface CaretPositionInput {
8
- placement: string;
9
- tooltipRect: DOMRect;
10
- triggerRect: DOMRect;
11
- caretSize: number;
12
- left: number;
13
- top: number;
14
- }
15
- export declare function getCaretPosition({ placement, tooltipRect, triggerRect, caretSize, left, top }: CaretPositionInput): {
16
- caretLeft: number;
17
- caretTop: number;
18
- };
@@ -1,216 +0,0 @@
1
- export function isInViewport(element) {
2
- const rect = element.getBoundingClientRect();
3
- return (rect.top >= 0 &&
4
- rect.left >= 0 &&
5
- rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
6
- rect.right <= (window.innerWidth || document.documentElement.clientWidth));
7
- }
8
- export function getValidTooltipPosition(triggerRect, tooltipRect, originalPlacement, distance, skidding, caretSize, viewportWidth, viewportHeight) {
9
- const triggerCenterX = triggerRect.left + triggerRect.width / 2;
10
- const getCandidatePosition = (placement) => {
11
- let top = 0;
12
- let left = 0;
13
- switch (placement) {
14
- case 'top':
15
- top = triggerRect.top - tooltipRect.height - distance;
16
- left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2 + skidding;
17
- break;
18
- case 'top-start': {
19
- top = triggerRect.top - tooltipRect.height - distance;
20
- const centeredLeft = triggerRect.left + (triggerRect.width / 2) - (tooltipRect.width / 2) + skidding;
21
- left = Math.max(triggerRect.left + skidding, centeredLeft);
22
- break;
23
- }
24
- case 'top-end': {
25
- top = triggerRect.top - tooltipRect.height - distance;
26
- const centeredLeft = triggerRect.left + (triggerRect.width / 2) - (tooltipRect.width / 2) + skidding;
27
- const maxLeft = triggerRect.right - tooltipRect.width + skidding;
28
- left = Math.min(centeredLeft, maxLeft);
29
- break;
30
- }
31
- case 'bottom':
32
- top = triggerRect.bottom + distance;
33
- left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2 + skidding;
34
- break;
35
- case 'bottom-start': {
36
- top = triggerRect.bottom + distance;
37
- const centeredLeft = triggerRect.left + (triggerRect.width / 2) - (tooltipRect.width / 2) + skidding;
38
- left = Math.max(triggerRect.left + skidding, centeredLeft);
39
- break;
40
- }
41
- case 'bottom-end': {
42
- top = triggerRect.bottom + distance;
43
- const centeredLeft = triggerRect.left + (triggerRect.width / 2) - (tooltipRect.width / 2) + skidding;
44
- const maxLeft = triggerRect.right - tooltipRect.width + skidding;
45
- left = Math.min(centeredLeft, maxLeft);
46
- break;
47
- }
48
- case 'left':
49
- top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2 + skidding;
50
- left = triggerRect.left - tooltipRect.width - distance;
51
- break;
52
- case 'left-start': {
53
- const triggerCenterY = triggerRect.top + triggerRect.height / 2;
54
- top = triggerCenterY - tooltipRect.height / 2;
55
- left = triggerRect.left - tooltipRect.width - distance;
56
- if (top < triggerRect.top) {
57
- top = triggerRect.top;
58
- }
59
- break;
60
- }
61
- case 'left-end': {
62
- const triggerCenterY = triggerRect.top + triggerRect.height / 2;
63
- top = triggerCenterY - tooltipRect.height / 2;
64
- left = triggerRect.left - tooltipRect.width - distance;
65
- if (top + tooltipRect.height > triggerRect.bottom) {
66
- top = triggerRect.bottom - tooltipRect.height;
67
- }
68
- break;
69
- }
70
- case 'right':
71
- top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2 + skidding;
72
- left = triggerRect.right + distance;
73
- break;
74
- case 'right-start': {
75
- const triggerCenterY = triggerRect.top + triggerRect.height / 2;
76
- top = triggerCenterY - tooltipRect.height / 2;
77
- left = triggerRect.right + distance;
78
- if (top < triggerRect.top) {
79
- top = triggerRect.top;
80
- }
81
- break;
82
- }
83
- case 'right-end': {
84
- const triggerCenterY = triggerRect.top + triggerRect.height / 2;
85
- top = triggerCenterY - tooltipRect.height / 2;
86
- left = triggerRect.right + distance;
87
- if (top + tooltipRect.height > triggerRect.bottom) {
88
- top = triggerRect.bottom - tooltipRect.height;
89
- }
90
- break;
91
- }
92
- default:
93
- top = triggerRect.top - tooltipRect.height - distance;
94
- left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2 + skidding;
95
- }
96
- return { top, left };
97
- };
98
- const candidateFits = (top, left) => top >= 0 &&
99
- left >= 0 &&
100
- top + tooltipRect.height <= viewportHeight &&
101
- left + tooltipRect.width <= viewportWidth;
102
- let placement = originalPlacement;
103
- let candidate = getCandidatePosition(placement);
104
- if (!candidateFits(candidate.top, candidate.left)) {
105
- if (['top', 'top-start', 'top-end'].includes(originalPlacement)) {
106
- placement = 'bottom';
107
- }
108
- else if (['bottom', 'bottom-start', 'bottom-end'].includes(originalPlacement)) {
109
- placement = 'top';
110
- }
111
- else if (['right', 'right-start', 'right-end'].includes(originalPlacement)) {
112
- placement = 'left';
113
- }
114
- else if (['left', 'left-start', 'left-end'].includes(originalPlacement)) {
115
- placement = 'right';
116
- }
117
- candidate = getCandidatePosition(placement);
118
- const leftCandidate = getCandidatePosition('left');
119
- const bottomCandidate = getCandidatePosition('bottom');
120
- const topCandidate = getCandidatePosition('top');
121
- if (!candidateFits(leftCandidate.top, leftCandidate.left) &&
122
- !candidateFits(bottomCandidate.top, bottomCandidate.left) &&
123
- !candidateFits(topCandidate.top, topCandidate.left)) {
124
- placement = 'right';
125
- candidate = getCandidatePosition(placement);
126
- }
127
- else {
128
- const rightCandidate = getCandidatePosition('right');
129
- if (!candidateFits(rightCandidate.top, rightCandidate.left) &&
130
- !candidateFits(bottomCandidate.top, bottomCandidate.left) &&
131
- !candidateFits(topCandidate.top, topCandidate.left)) {
132
- placement = 'left';
133
- candidate = getCandidatePosition(placement);
134
- }
135
- }
136
- }
137
- if (candidate.left < 0) {
138
- candidate.left = 5;
139
- }
140
- else if (candidate.left + tooltipRect.width > viewportWidth) {
141
- candidate.left = viewportWidth - tooltipRect.width - 5;
142
- }
143
- if (candidate.top < 0) {
144
- candidate.top = 5;
145
- }
146
- else if (candidate.top + tooltipRect.height > viewportHeight) {
147
- candidate.top = viewportHeight - tooltipRect.height - 5;
148
- }
149
- return { ...candidate, placement };
150
- }
151
- export function getCaretPosition({ placement, tooltipRect, triggerRect, caretSize, left, top }) {
152
- const triggerCenterX = triggerRect.left + triggerRect.width / 2;
153
- const triggerCenterY = triggerRect.top + triggerRect.height / 2;
154
- const [primaryPlacement, secondaryPlacement] = placement.split('-');
155
- let caretLeft = 0;
156
- let caretTop = 0;
157
- switch (primaryPlacement) {
158
- case 'top':
159
- caretTop = tooltipRect.height - caretSize;
160
- caretLeft = triggerCenterX - left - caretSize;
161
- if (placement === 'top-end') {
162
- caretLeft = triggerCenterX - left - caretSize;
163
- }
164
- else if (secondaryPlacement === 'start') {
165
- caretLeft = triggerCenterX - left - caretSize;
166
- }
167
- else if (secondaryPlacement === 'end') {
168
- caretLeft = tooltipRect.width - 2 * caretSize + 8;
169
- }
170
- caretLeft = Math.max(caretSize, Math.min(caretLeft, tooltipRect.width - 2 * caretSize));
171
- break;
172
- case 'bottom':
173
- caretTop = -caretSize;
174
- caretLeft = triggerCenterX - left - caretSize;
175
- break;
176
- case 'left':
177
- caretLeft = tooltipRect.width - caretSize;
178
- if (secondaryPlacement === 'start') {
179
- const computedCaretTop = triggerCenterY - top - caretSize;
180
- const minCaretTop = triggerRect.top - top;
181
- caretTop = Math.max(computedCaretTop, minCaretTop);
182
- }
183
- else if (secondaryPlacement === 'end') {
184
- const computedCaretTop = triggerCenterY - top - caretSize;
185
- const maxCaretTop = triggerRect.bottom - top - 2 * caretSize;
186
- caretTop = Math.min(computedCaretTop, maxCaretTop);
187
- }
188
- else {
189
- caretTop = triggerCenterY - top - caretSize;
190
- }
191
- caretTop = Math.max(caretSize, Math.min(caretTop, tooltipRect.height - 2 * caretSize));
192
- break;
193
- case 'right':
194
- caretLeft = -caretSize;
195
- if (secondaryPlacement === 'start') {
196
- const computedCaretTop = triggerCenterY - top - caretSize;
197
- const minCaretTop = triggerRect.top - top;
198
- caretTop = Math.max(computedCaretTop, minCaretTop);
199
- }
200
- else if (secondaryPlacement === 'end') {
201
- const computedCaretTop = triggerCenterY - top - caretSize;
202
- const maxCaretTop = triggerRect.bottom - top - 2 * caretSize;
203
- caretTop = Math.min(computedCaretTop, maxCaretTop);
204
- }
205
- else {
206
- caretTop = triggerCenterY - top - caretSize;
207
- }
208
- caretTop = Math.max(caretSize, Math.min(caretTop, tooltipRect.height - 2 * caretSize));
209
- break;
210
- default:
211
- caretLeft = tooltipRect.width / 2 - caretSize;
212
- caretTop = tooltipRect.height / 2 - caretSize;
213
- }
214
- return { caretLeft, caretTop };
215
- }
216
- //# sourceMappingURL=nile-tooltip-utils.js.map