@aquera/nile-elements 0.1.36-beta-1.4 → 0.1.37

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 (179) hide show
  1. package/README.md +4 -0
  2. package/demo/index.html +9 -11
  3. package/demo/variables.css +13 -0
  4. package/dist/{fixture-d7bf42eb.cjs.js → fixture-161dee0b.cjs.js} +2 -2
  5. package/dist/{fixture-d7bf42eb.cjs.js.map → fixture-161dee0b.cjs.js.map} +1 -1
  6. package/dist/{fixture-178ed8d2.esm.js → fixture-372df3b0.esm.js} +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.esm.js +1 -1
  9. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  10. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  11. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  12. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  13. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  14. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  15. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  16. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  17. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  18. package/dist/nile-button/nile-button.test.esm.js +1 -1
  19. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  20. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  21. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  22. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  23. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  24. package/dist/nile-card/nile-card.test.esm.js +1 -1
  25. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  26. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  27. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  28. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  29. package/dist/nile-chip/nile-chip.esm.js +17 -8
  30. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  31. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  34. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  35. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  36. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  37. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  38. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  39. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  40. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  41. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  42. package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
  43. package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
  44. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
  45. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
  46. package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +40 -17
  47. package/dist/nile-filter-chip/nile-filter-chip.esm.js +24 -15
  48. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  49. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +1 -1
  50. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +16 -16
  51. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  52. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  53. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  54. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  55. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  56. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  57. package/dist/nile-icon/icons/svg/accessreview.cjs.js +1 -1
  58. package/dist/nile-icon/icons/svg/accessreview.cjs.js.map +1 -1
  59. package/dist/nile-icon/icons/svg/accessreview.esm.js +1 -1
  60. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  61. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  62. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  63. package/dist/nile-input/nile-input.test.esm.js +1 -1
  64. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  65. package/dist/nile-link/nile-link.test.esm.js +1 -1
  66. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  67. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  68. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  69. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  70. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  71. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  72. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  73. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  74. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  75. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  76. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  77. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  78. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  79. package/dist/nile-select/nile-select.test.esm.js +1 -1
  80. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  81. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  82. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  83. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  84. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  85. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  86. package/dist/src/index.d.ts +1 -0
  87. package/dist/src/index.js +1 -0
  88. package/dist/src/index.js.map +1 -1
  89. package/dist/src/nile-chip/nile-chip.js +9 -0
  90. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  91. package/dist/src/nile-filter-chip/nile-filter-chip.css.js +40 -17
  92. package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
  93. package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +4 -3
  94. package/dist/src/nile-filter-chip/nile-filter-chip.js +25 -12
  95. package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
  96. package/dist/src/nile-filter-chip/nile-filter-chip.test.js +12 -12
  97. package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
  98. package/dist/src/nile-icon/icons/svg/accessreview.d.ts +1 -1
  99. package/dist/src/nile-icon/icons/svg/accessreview.js +1 -1
  100. package/dist/src/nile-icon/icons/svg/accessreview.js.map +1 -1
  101. package/dist/tsconfig.tsbuildinfo +1 -1
  102. package/package.json +1 -1
  103. package/src/index.ts +2 -1
  104. package/src/nile-chip/nile-chip.ts +9 -0
  105. package/src/nile-filter-chip/index.ts +1 -0
  106. package/src/nile-filter-chip/nile-filter-chip.css.ts +138 -0
  107. package/src/nile-filter-chip/nile-filter-chip.test.ts +92 -0
  108. package/src/nile-filter-chip/nile-filter-chip.ts +136 -0
  109. package/src/nile-icon/icons/svg/accessreview.ts +1 -1
  110. package/vscode-html-custom-data.json +49 -0
  111. package/dist/fixture-bb486165.cjs.js +0 -395
  112. package/dist/fixture-bb486165.cjs.js.map +0 -1
  113. package/dist/fixture-c4e75e04.esm.js +0 -569
  114. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js +0 -2
  115. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js.map +0 -1
  116. package/dist/nile-tooltip/nile-tooltip-utils.esm.js +0 -1
  117. package/dist/nile-tooltip/nile-tooltip.test.cjs.js +0 -2
  118. package/dist/nile-tooltip/nile-tooltip.test.cjs.js.map +0 -1
  119. package/dist/nile-tooltip/nile-tooltip.test.esm.js +0 -47
  120. package/dist/src/nile-new-error/index.d.ts +0 -1
  121. package/dist/src/nile-new-error/index.js +0 -2
  122. package/dist/src/nile-new-error/index.js.map +0 -1
  123. package/dist/src/nile-new-error/nile-new-error.css.d.ts +0 -12
  124. package/dist/src/nile-new-error/nile-new-error.css.js +0 -38
  125. package/dist/src/nile-new-error/nile-new-error.css.js.map +0 -1
  126. package/dist/src/nile-new-error/nile-new-error.d.ts +0 -36
  127. package/dist/src/nile-new-error/nile-new-error.js +0 -74
  128. package/dist/src/nile-new-error/nile-new-error.js.map +0 -1
  129. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +0 -18
  130. package/dist/src/nile-tooltip/nile-tooltip-utils.js +0 -216
  131. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +0 -1
  132. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +0 -1
  133. package/dist/src/nile-tooltip/nile-tooltip.test.js +0 -148
  134. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +0 -1
  135. package/dist/src/nile-virtual-list/index.d.ts +0 -1
  136. package/dist/src/nile-virtual-list/index.js +0 -2
  137. package/dist/src/nile-virtual-list/index.js.map +0 -1
  138. package/dist/src/nile-virtual-list/nile-virtual-list.css.d.ts +0 -12
  139. package/dist/src/nile-virtual-list/nile-virtual-list.css.js +0 -25
  140. package/dist/src/nile-virtual-list/nile-virtual-list.css.js.map +0 -1
  141. package/dist/src/nile-virtual-list/nile-virtual-list.d.ts +0 -28
  142. package/dist/src/nile-virtual-list/nile-virtual-list.js +0 -69
  143. package/dist/src/nile-virtual-list/nile-virtual-list.js.map +0 -1
  144. package/dist/src/nile-virtual-scroll/index.d.ts +0 -1
  145. package/dist/src/nile-virtual-scroll/index.js +0 -2
  146. package/dist/src/nile-virtual-scroll/index.js.map +0 -1
  147. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.css.d.ts +0 -12
  148. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.css.js +0 -17
  149. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.css.js.map +0 -1
  150. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.d.ts +0 -54
  151. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.js +0 -196
  152. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.js.map +0 -1
  153. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.utils.d.ts +0 -23
  154. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.utils.js +0 -48
  155. package/dist/src/nile-virtual-scroll/nile-virtual-scroll.utils.js.map +0 -1
  156. package/dist/src/nile-virtual-select/event-handlers.d.ts +0 -19
  157. package/dist/src/nile-virtual-select/event-handlers.js +0 -153
  158. package/dist/src/nile-virtual-select/event-handlers.js.map +0 -1
  159. package/dist/src/nile-virtual-select/index.d.ts +0 -1
  160. package/dist/src/nile-virtual-select/index.js +0 -2
  161. package/dist/src/nile-virtual-select/index.js.map +0 -1
  162. package/dist/src/nile-virtual-select/models.d.ts +0 -33
  163. package/dist/src/nile-virtual-select/models.js +0 -5
  164. package/dist/src/nile-virtual-select/models.js.map +0 -1
  165. package/dist/src/nile-virtual-select/nile-virtual-select.css.d.ts +0 -12
  166. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +0 -463
  167. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +0 -1
  168. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +0 -239
  169. package/dist/src/nile-virtual-select/nile-virtual-select.js +0 -1287
  170. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +0 -1
  171. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +0 -0
  172. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +0 -2
  173. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +0 -1
  174. package/dist/src/nile-virtual-select/nile-virtual-select.utils.d.ts +0 -0
  175. package/dist/src/nile-virtual-select/nile-virtual-select.utils.js +0 -2
  176. package/dist/src/nile-virtual-select/nile-virtual-select.utils.js.map +0 -1
  177. package/dist/src/nile-virtual-select/option-utils.d.ts +0 -15
  178. package/dist/src/nile-virtual-select/option-utils.js +0 -59
  179. package/dist/src/nile-virtual-select/option-utils.js.map +0 -1
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.36-beta-1.4",
6
+ "version": "0.1.37",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
package/src/index.ts CHANGED
@@ -75,4 +75,5 @@ export { NileTitle } from './nile-title';
75
75
  export { NileSectionMessage } from './nile-section-message';
76
76
  export { NileToolbar } from './nile-toolbar';
77
77
  export { NileInlineEdit } from './nile-inline-edit';
78
- export { NileTable } from './nile-table';
78
+ export { NileTable } from './nile-table';
79
+ export { NileFilterChip } from './nile-filter-chip'
@@ -207,6 +207,15 @@ export class NileChip extends NileElement {
207
207
  @nile-complete=${this.handleSelect}
208
208
  ></nile-auto-complete>
209
209
  </div>
210
+ <slot
211
+ name="help-text"
212
+ part="form-control-help-text"
213
+ id="help-text"
214
+ class="form-control__help-text"
215
+ aria-hidden=${hasHelpText ? 'false' : 'true'}
216
+ >
217
+ ${this.helpText}
218
+ </slot>
210
219
  </div>
211
220
  ${
212
221
  hasHelpText
@@ -0,0 +1 @@
1
+ export { NileFilterChip } from './nile-filter-chip';
@@ -0,0 +1,138 @@
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
+
8
+ import {css} from 'lit';
9
+
10
+ /**
11
+ * FilterChip CSS
12
+ */
13
+
14
+ export const styles = css`
15
+
16
+
17
+ .filter-chips {
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+
22
+
23
+ .chip {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ height: 30px;
27
+ padding: 8px;
28
+ border: 1px solid var(--nile-filter-chip-chip-border-color-stroke);
29
+ border-radius: 4px;
30
+ font-size: 14px;
31
+ background-color: var(--nile-filter-chip-background-default);
32
+ color: var(--nile-filter-chip-text-default);
33
+ transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
34
+ cursor: pointer;
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ .chip:hover {
39
+ background-color: var(--nile-filter-chip-hover-background);
40
+ }
41
+ .chip:active {
42
+ background-color: var(--nile-filter-chip-active-background);
43
+ border-color: var(--nile-filter-chip-active-border-color-stroke);
44
+ }
45
+ :host([active]) .chip {
46
+ background-color: var(--nile-filter-chip-active-background);
47
+ border-color: var(--nile-filter-chip-active-border-color-stroke);
48
+ }
49
+
50
+
51
+ .icon {
52
+ color: var(--nile-filter-chip-icon-color-default);
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ vertical-align: middle;
57
+ position: relative;
58
+ top: 12px;
59
+ }
60
+
61
+ .label {
62
+ font-weight: 500;
63
+ color: var(--nile-filter-chip-label-color-default);
64
+ }
65
+
66
+ nile-badge::part(base) {
67
+ width: auto;
68
+ height: 14px;
69
+ border-radius: 100px;
70
+ padding: 6px;
71
+ gap: 10px;
72
+ font-size: 8px;
73
+ display: inline-flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ line-height: 1;
77
+ }
78
+
79
+ .chip-container {
80
+ display: flex;
81
+ justify-content: space-between;
82
+ align-items: center;
83
+ width: 100%;
84
+ }
85
+
86
+ .clear-all-container {
87
+ margin-left: 18px;
88
+ white-space: nowrap;
89
+ cursor: pointer;
90
+ }
91
+
92
+
93
+ .value {
94
+ color: var(--nile-filter-chip-values-color-default);
95
+ display: inline-block;
96
+ overflow: hidden;
97
+ text-overflow: ellipsis;
98
+ white-space: nowrap;
99
+ max-width: 140px;
100
+ vertical-align: bottom;
101
+ }
102
+
103
+
104
+ .close-icon {
105
+ color: var(--nile-filter-chip-close-icon-color-default);
106
+ cursor: pointer;
107
+ display: flex;
108
+ align-items: center;
109
+ border-radius: 50%;
110
+ transition: background-color 0.2s;
111
+ }
112
+
113
+ .close-icon:hover {
114
+ background-color: var(--nile-filter-chip-close-icon-hover-background);
115
+ color: var(--nile-filter-chip-close-icon-hover-color);
116
+ }
117
+
118
+ .label-wrapper {
119
+ margin-right: 4px;
120
+ }
121
+
122
+ ::slotted([slot="icon"]) {
123
+ margin-right: 6px;
124
+ }
125
+
126
+ .value-wrapper {
127
+ margin-right: 4px;
128
+ }
129
+
130
+ .badge-wrapper {
131
+ margin-right: 12px;
132
+ }
133
+
134
+ `;
135
+
136
+ export default [styles];
137
+
138
+
@@ -0,0 +1,92 @@
1
+ import { fixture, expect, html, oneEvent } from '@open-wc/testing';
2
+ import './nile-filter-chip';
3
+ import { NileFilterChip } from './nile-filter-chip';
4
+
5
+ describe('<nile-filter-chip>', () => {
6
+ afterEach(() => {
7
+ (NileFilterChip as any).activeChips = [];
8
+ });
9
+
10
+ it('registers and unregisters itself in activeChips', async () => {
11
+ const el = await fixture<NileFilterChip>(html`
12
+ <nile-filter-chip label="L" value="T"></nile-filter-chip>
13
+ `);
14
+ expect((NileFilterChip as any).activeChips).to.include(el);
15
+ el.remove();
16
+ await el.updateComplete;
17
+ expect((NileFilterChip as any).activeChips).to.not.include(el);
18
+ });
19
+
20
+ it('renders fallback label and value', async () => {
21
+ const el = await fixture<NileFilterChip>(html`
22
+ <nile-filter-chip label="MyLabel" value="MyText"></nile-filter-chip>
23
+ `);
24
+ const label = el.shadowRoot!.querySelector('.label')! as HTMLElement;
25
+ const value = el.shadowRoot!.querySelector('.value')! as HTMLElement;
26
+ expect(label.textContent).to.equal('MyLabel:');
27
+ expect(value.textContent!.trim()).to.equal('MyText');
28
+ });
29
+
30
+ it('renders slotted label and value over fallback', async () => {
31
+ const el = await fixture<NileFilterChip>(html`
32
+ <nile-filter-chip>
33
+ <span slot="label">SLOT-LBL</span>
34
+ <span slot="value">SLOT-VAL</span>
35
+ </nile-filter-chip>
36
+ `);
37
+ const slottedLabel = el.querySelector('[slot="label"]')! as HTMLElement;
38
+ const slottedValue = el.querySelector('[slot="value"]')! as HTMLElement;
39
+ expect(slottedLabel.textContent).to.equal('SLOT-LBL');
40
+ expect(slottedValue.textContent).to.equal('SLOT-VAL');
41
+ });
42
+
43
+ it('renders an icon when the `icon` property is set', async () => {
44
+ const el = await fixture<NileFilterChip>(html`
45
+ <nile-filter-chip icon="★" label="L" value="T"></nile-filter-chip>
46
+ `);
47
+ const iconSpan = el.shadowRoot!.querySelector('.icon')! as HTMLElement;
48
+ expect(iconSpan).to.exist;
49
+ expect(iconSpan.textContent).to.equal('★');
50
+ });
51
+
52
+ it('does not render a badge when viewMoreCount is zero', async () => {
53
+ const el = await fixture<NileFilterChip>(html`
54
+ <nile-filter-chip viewMoreCount="0" label="L" value="T"></nile-filter-chip>
55
+ `);
56
+ expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null;
57
+ });
58
+
59
+ it('renders a +badge when viewMoreCount > 0', async () => {
60
+ const el = await fixture<NileFilterChip>(html`
61
+ <nile-filter-chip viewMoreCount="5" label="L" value="T"></nile-filter-chip>
62
+ `);
63
+ const badge = el.shadowRoot!.querySelector('nile-badge')! as HTMLElement;
64
+ expect(badge).to.exist;
65
+ expect(badge.textContent).to.contain('+5');
66
+ });
67
+
68
+
69
+
70
+ it('dispatches `nile-click` on chip click', async () => {
71
+ const el = await fixture<NileFilterChip>(html`
72
+ <nile-filter-chip label="L" value="T"></nile-filter-chip>
73
+ `);
74
+ const chip = el.shadowRoot!.querySelector('.chip')! as HTMLElement;
75
+ setTimeout(() => chip.click());
76
+ const ev = await oneEvent(el, 'nile-click');
77
+ expect(ev.detail).to.deep.equal({ value: 'T', viewMoreCount: 0 });
78
+ });
79
+
80
+ it('dispatches `nile-close` on close icon click and removes itself', async () => {
81
+ const el = await fixture<NileFilterChip>(html`
82
+ <nile-filter-chip closable viewMoreCount="2" value="TT"></nile-filter-chip>
83
+ `);
84
+ const closeIcon = el.shadowRoot!.querySelector('.close-icon')! as HTMLElement;
85
+ setTimeout(() => closeIcon.click());
86
+ const ev = await oneEvent(el, 'nile-close');
87
+ expect(ev.detail).to.deep.equal({ value: 'TT', viewMoreCount: 2 });
88
+ expect(document.body.contains(el)).to.be.false;
89
+ });
90
+
91
+
92
+ });
@@ -0,0 +1,136 @@
1
+ import { LitElement, html, css, CSSResultArray, TemplateResult } from 'lit';
2
+ import { customElement, property } from 'lit/decorators.js';
3
+ import NileElement from '../internal/nile-element';
4
+ import { styles } from './nile-filter-chip.css';
5
+
6
+ /**
7
+ * Nile filter-chip component.
8
+ *
9
+ * @tag nile-filter-chip
10
+ */
11
+ @customElement('nile-filter-chip')
12
+ export class NileFilterChip extends NileElement {
13
+ @property({ type: String }) label = '';
14
+ @property({ type: String }) value = '';
15
+ @property({ type: Number }) viewMoreCount: number = 0;
16
+ @property({ type: Boolean }) editable = false;
17
+ @property({ type: Boolean }) closable = false;
18
+ @property({ type: String }) icon = '';
19
+ @property({ type: String }) removeIcon = '';
20
+ @property({ type: Boolean, reflect: true }) active = false;
21
+
22
+
23
+ private static activeChips: NileFilterChip[] = [];
24
+
25
+ public static get styles(): CSSResultArray {
26
+ return [styles];
27
+ }
28
+
29
+ connectedCallback() {
30
+ super.connectedCallback();
31
+ this.registerChip();
32
+ }
33
+
34
+ disconnectedCallback() {
35
+ super.disconnectedCallback();
36
+ this.unregisterChip();
37
+ }
38
+
39
+ private registerChip() {
40
+ NileFilterChip.activeChips.push(this);
41
+ }
42
+
43
+ private unregisterChip() {
44
+ NileFilterChip.activeChips = NileFilterChip.activeChips.filter(
45
+ (chip) => chip !== this
46
+ );
47
+ }
48
+
49
+ private handleClose(event: Event) {
50
+ event.stopPropagation();
51
+ this.dispatchEvent(
52
+ new CustomEvent('nile-close', { detail: { value: this.value, viewMoreCount: this.viewMoreCount } })
53
+ );
54
+ this.remove();
55
+ }
56
+
57
+ private handleClick() {
58
+ this.dispatchEvent(
59
+ new CustomEvent('nile-click', { detail: { value: this.value, viewMoreCount: this.viewMoreCount } })
60
+ );
61
+ }
62
+
63
+ private getLabelSlot(): TemplateResult {
64
+ return html`
65
+ <span class="label-wrapper">
66
+ <slot name="label">
67
+ <span class="label" part="label">${this.label}:</span>
68
+ </slot>
69
+ </span>
70
+
71
+ `;
72
+ }
73
+
74
+ private getValueSlot(): TemplateResult {
75
+ return html`
76
+ <span class="value-wrapper">
77
+ <slot name="value">
78
+ <span class="value" part="value">${this.value}</span>
79
+ </slot>
80
+ </span>
81
+
82
+ `;
83
+ }
84
+
85
+ private getviewMoreCountSlot(): TemplateResult {
86
+ return html`
87
+ <slot name="suffix">
88
+ ${this.viewMoreCount
89
+ ? html`
90
+ <span class="badge-wrapper">
91
+ <nile-badge variant="primary" pilltype="pill-color">
92
+ +${this.viewMoreCount}
93
+ </nile-badge>
94
+ </span>
95
+
96
+ `
97
+ : html``}
98
+ </slot>
99
+ `;
100
+ }
101
+
102
+ private getCloseIconSlot(): TemplateResult {
103
+ return html`
104
+ ${this.closable
105
+ ? html`
106
+ <span class="close-icon" @click="${this.handleClose}">
107
+ <nile-icon name="${this.removeIcon || 'close'}" size="12"></nile-icon>
108
+ </span>
109
+ `
110
+ : html``}
111
+ `;
112
+ }
113
+
114
+ public render(): TemplateResult {
115
+ return html`
116
+ <div class="chip" @click="${this.handleClick}">
117
+ <slot name="icon">
118
+ ${this.icon ? html`<span class="icon">${this.icon}</span>` : html``}
119
+ </slot>
120
+ ${this.getLabelSlot()}
121
+ <slot name="content"></slot>
122
+ ${this.getValueSlot()}
123
+ ${this.getviewMoreCountSlot()}
124
+ ${this.getCloseIconSlot()}
125
+ </div>
126
+ `;
127
+ }
128
+ }
129
+
130
+ export default NileFilterChip;
131
+
132
+ declare global {
133
+ interface HTMLElementTagNameMap {
134
+ 'nile-filter-chip': NileFilterChip;
135
+ }
136
+ }
@@ -2,4 +2,4 @@
2
2
  * Do not edit directly
3
3
  */
4
4
 
5
- export default "PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIuMiAxMC4ySDEzVjEuNzk5OTlIM1YyLjU5OTk5SDEyLjJWMTAuMloiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTUuNCA2Ljk5OTk5QzUuNCA3LjQ0MTgyIDUuMDQxODMgNy43OTk5OSA0LjYgNy43OTk5OUM0LjE1ODE3IDcuNzk5OTkgMy44IDcuNDQxODIgMy44IDYuOTk5OTlDMy44IDYuNTU4MTYgNC4xNTgxNyA2LjE5OTk5IDQuNiA2LjE5OTk5QzUuMDQxODMgNi4xOTk5OSA1LjQgNi41NTgxNiA1LjQgNi45OTk5OVoiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTUuNzMxMzcgOS4wNjg2MkM1LjQzMTMxIDguNzY4NTYgNS4wMjQzNSA4LjU5OTk5IDQuNiA4LjU5OTk5QzQuMTc1NjUgOC41OTk5OSAzLjc2ODY5IDguNzY4NTYgMy40Njg2MyA5LjA2ODYyQzMuMTY4NTcgOS4zNjg2NyAzIDkuNzc1NjQgMyAxMC4ySDYuMkM2LjIgOS43NzU2NCA2LjAzMTQzIDkuMzY4NjcgNS43MzEzNyA5LjA2ODYyWiIgZmlsbD0iYmxhY2siLz48cGF0aCBkPSJNOS44IDYuOTk5OTlIN1Y3Ljc5OTk5SDkuOFY2Ljk5OTk5WiIgZmlsbD0iYmxhY2siLz48cGF0aCBkPSJNNy41MDQwMiA5LjM5OTk5SDkuODA4MDJWMTAuMkg3LjUwNDAyVjkuMzk5OTlaIiBmaWxsPSJibGFjayIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNCAxMi4ySDFWMy4zOTk5OUgxMS40VjEyLjJaTTEuOCAxMS40SDEwLjZWNC4xOTk5OUgxLjhWMTEuNFoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
5
+ export default "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PGNpcmNsZSBjeD0iNSIgY3k9IjgiIHI9IjEiLz48cGF0aCBkPSJNNSwxMGEyLDIsMCwwLDEsMiwySDNBMiwyLDAsMCwxLDUsMTBaIi8+PHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjMuNSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iOC42IiB5PSIxMSIgd2lkdGg9IjIuOSIgaGVpZ2h0PSIxIi8+PHBhdGggZD0iTTEzLjUsMTQuNUguNVYzLjVoMTNabS0xMi0xaDExdi05SDEuNVoiLz48cG9seWdvbiBwb2ludHM9IjE1LjUgMTIgMTQuNSAxMiAxNC41IDIuNSAzIDIuNSAzIDEuNSAxNS41IDEuNSAxNS41IDEyIi8+PC9zdmc+";
@@ -1393,6 +1393,55 @@
1393
1393
  }
1394
1394
  ]
1395
1395
  },
1396
+ {
1397
+ "name": "nile-filter-chip",
1398
+ "description": "Nile filter-chip component.\n\nEvents:\n\n * `nile-close` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - \n\n * `nile-click` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - \n\nAttributes:\n\n * `label` {`string`} - \n\n * `value` {`string`} - \n\n * `viewMoreCount` {`number`} - \n\n * `editable` {`boolean`} - \n\n * `closable` {`boolean`} - \n\n * `icon` {`string`} - \n\n * `removeIcon` {`string`} - \n\n * `active` {`boolean`} - \n\nProperties:\n\n * `label` {`string`} - \n\n * `value` {`string`} - \n\n * `viewMoreCount` {`number`} - \n\n * `editable` {`boolean`} - \n\n * `closable` {`boolean`} - \n\n * `icon` {`string`} - \n\n * `removeIcon` {`string`} - \n\n * `active` {`boolean`} - \n\n * `activeChips` {`NileFilterChip[]`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
1399
+ "attributes": [
1400
+ {
1401
+ "name": "label",
1402
+ "description": "`label` {`string`} - \n\nProperty: label\n\nDefault: "
1403
+ },
1404
+ {
1405
+ "name": "value",
1406
+ "description": "`value` {`string`} - \n\nProperty: value\n\nDefault: "
1407
+ },
1408
+ {
1409
+ "name": "viewMoreCount",
1410
+ "description": "`viewMoreCount` {`number`} - \n\nProperty: viewMoreCount\n\nDefault: 0"
1411
+ },
1412
+ {
1413
+ "name": "editable",
1414
+ "description": "`editable` {`boolean`} - \n\nProperty: editable\n\nDefault: false",
1415
+ "valueSet": "v"
1416
+ },
1417
+ {
1418
+ "name": "closable",
1419
+ "description": "`closable` {`boolean`} - \n\nProperty: closable\n\nDefault: false",
1420
+ "valueSet": "v"
1421
+ },
1422
+ {
1423
+ "name": "icon",
1424
+ "description": "`icon` {`string`} - \n\nProperty: icon\n\nDefault: "
1425
+ },
1426
+ {
1427
+ "name": "removeIcon",
1428
+ "description": "`removeIcon` {`string`} - \n\nProperty: removeIcon\n\nDefault: "
1429
+ },
1430
+ {
1431
+ "name": "active",
1432
+ "description": "`active` {`boolean`} - \n\nProperty: active\n\nDefault: false",
1433
+ "valueSet": "v"
1434
+ },
1435
+ {
1436
+ "name": "onnile-close",
1437
+ "description": "`nile-close` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - "
1438
+ },
1439
+ {
1440
+ "name": "onnile-click",
1441
+ "description": "`nile-click` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - "
1442
+ }
1443
+ ]
1444
+ },
1396
1445
  {
1397
1446
  "name": "nile-footer",
1398
1447
  "description": "Nile icon component.\n\n",