@aquera/nile-elements 2.0.18 → 2.0.20

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 (138) hide show
  1. package/README.md +10 -0
  2. package/demo/index.js +0 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +1275 -490
  6. package/dist/nile-badge/index.cjs.js +1 -1
  7. package/dist/nile-badge/index.esm.js +1 -1
  8. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  9. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  10. package/dist/nile-badge/nile-badge.css.cjs.js +1 -1
  11. package/dist/nile-badge/nile-badge.css.cjs.js.map +1 -1
  12. package/dist/nile-badge/nile-badge.css.esm.js +24 -3
  13. package/dist/nile-badge/nile-badge.esm.js +5 -3
  14. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
  15. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
  16. package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +2 -2
  17. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  18. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  19. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js +1 -1
  20. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js.map +1 -1
  21. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.esm.js +14 -2
  22. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +4 -4
  23. package/dist/nile-calendar/index.cjs.js +1 -1
  24. package/dist/nile-calendar/index.esm.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.cjs.js +2 -1
  26. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  27. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  28. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  29. package/dist/nile-calendar/nile-calendar.css.esm.js +357 -2
  30. package/dist/nile-calendar/nile-calendar.esm.js +365 -41
  31. package/dist/nile-calendar/timezones.cjs.js +1 -1
  32. package/dist/nile-calendar/timezones.cjs.js.map +1 -1
  33. package/dist/nile-calendar/timezones.esm.js +1 -1
  34. package/dist/nile-date-time-picker/index.cjs.js +2 -0
  35. package/dist/nile-date-time-picker/index.cjs.js.map +1 -0
  36. package/dist/nile-date-time-picker/index.esm.js +1 -0
  37. package/dist/nile-date-time-picker/nile-date-time-picker.cjs.js +2 -0
  38. package/dist/nile-date-time-picker/nile-date-time-picker.cjs.js.map +1 -0
  39. package/dist/nile-date-time-picker/nile-date-time-picker.css.cjs.js +2 -0
  40. package/dist/nile-date-time-picker/nile-date-time-picker.css.cjs.js.map +1 -0
  41. package/dist/nile-date-time-picker/nile-date-time-picker.css.esm.js +13 -0
  42. package/dist/nile-date-time-picker/nile-date-time-picker.esm.js +53 -0
  43. package/dist/nile-select/index.cjs.js +1 -1
  44. package/dist/nile-select/index.esm.js +1 -1
  45. package/dist/nile-select/nile-select.cjs.js +2 -2
  46. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  47. package/dist/nile-select/nile-select.esm.js +1 -1
  48. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  49. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  50. package/dist/nile-select/virtual-scroll-helper.esm.js +48 -47
  51. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +4 -4
  52. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  53. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  54. package/dist/src/index.d.ts +1 -0
  55. package/dist/src/index.js +1 -0
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/nile-badge/nile-badge.css.js +24 -3
  58. package/dist/src/nile-badge/nile-badge.css.js.map +1 -1
  59. package/dist/src/nile-badge/nile-badge.d.ts +7 -4
  60. package/dist/src/nile-badge/nile-badge.js +22 -5
  61. package/dist/src/nile-badge/nile-badge.js.map +1 -1
  62. package/dist/src/nile-badge/nile-badge.test.js +88 -0
  63. package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
  64. package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +7 -0
  65. package/dist/src/nile-breadcrumb/nile-breadcrumb.js +24 -1
  66. package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
  67. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +51 -0
  68. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -1
  69. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js +12 -0
  70. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js.map +1 -1
  71. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +5 -0
  72. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +9 -0
  73. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  74. package/dist/src/nile-calendar/nile-calendar.css.js +355 -0
  75. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  76. package/dist/src/nile-calendar/nile-calendar.d.ts +175 -0
  77. package/dist/src/nile-calendar/nile-calendar.js +1726 -26
  78. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  79. package/dist/src/nile-calendar/nile-calendar.test.d.ts +1 -0
  80. package/dist/src/nile-calendar/nile-calendar.test.js +3580 -0
  81. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  82. package/dist/src/nile-calendar/timezones.d.ts +21 -0
  83. package/dist/src/nile-calendar/timezones.js +49 -0
  84. package/dist/src/nile-calendar/timezones.js.map +1 -1
  85. package/dist/src/nile-date-time-picker/index.d.ts +1 -0
  86. package/dist/src/nile-date-time-picker/index.js +2 -0
  87. package/dist/src/nile-date-time-picker/index.js.map +1 -0
  88. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.d.ts +11 -0
  89. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.js +49 -0
  90. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.js.map +1 -0
  91. package/dist/src/nile-date-time-picker/nile-date-time-picker.d.ts +173 -0
  92. package/dist/src/nile-date-time-picker/nile-date-time-picker.js +1270 -0
  93. package/dist/src/nile-date-time-picker/nile-date-time-picker.js.map +1 -0
  94. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.d.ts +143 -0
  95. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.js +7277 -0
  96. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.js.map +1 -0
  97. package/dist/src/nile-select/nile-select.d.ts +1 -0
  98. package/dist/src/nile-select/nile-select.js +16 -1
  99. package/dist/src/nile-select/nile-select.js.map +1 -1
  100. package/dist/src/nile-select/nile-select.test.js +430 -5
  101. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  102. package/dist/src/nile-select/virtual-scroll-helper.js +7 -4
  103. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  104. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +3 -1
  105. package/dist/src/nile-virtual-select/nile-virtual-select.js +14 -6
  106. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  107. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +115 -1
  108. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  109. package/dist/src/version.js +1 -1
  110. package/dist/src/version.js.map +1 -1
  111. package/dist/tsconfig.tsbuildinfo +1 -1
  112. package/dist/utilities/animation-registry.cjs.js +1 -1
  113. package/dist/utilities/animation-registry.cjs.js.map +1 -1
  114. package/dist/utilities/animation-registry.esm.js +1 -1
  115. package/package.json +3 -1
  116. package/scripts/coverage-report.mjs +96 -0
  117. package/src/index.ts +1 -0
  118. package/src/nile-badge/nile-badge.css.ts +24 -3
  119. package/src/nile-badge/nile-badge.test.ts +102 -0
  120. package/src/nile-badge/nile-badge.ts +28 -5
  121. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +57 -0
  122. package/src/nile-breadcrumb/nile-breadcrumb.ts +19 -0
  123. package/src/nile-breadcrumb-item/nile-breadcrumb-item.css.ts +12 -0
  124. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +7 -0
  125. package/src/nile-calendar/nile-calendar.css.ts +355 -0
  126. package/src/nile-calendar/nile-calendar.test.ts +3793 -0
  127. package/src/nile-calendar/nile-calendar.ts +1760 -28
  128. package/src/nile-calendar/timezones.ts +57 -0
  129. package/src/nile-date-time-picker/index.ts +1 -0
  130. package/src/nile-date-time-picker/nile-date-time-picker.css.ts +54 -0
  131. package/src/nile-date-time-picker/nile-date-time-picker.test.ts +7886 -0
  132. package/src/nile-date-time-picker/nile-date-time-picker.ts +1153 -0
  133. package/src/nile-select/nile-select.test.ts +560 -5
  134. package/src/nile-select/nile-select.ts +21 -1
  135. package/src/nile-select/virtual-scroll-helper.ts +7 -4
  136. package/src/nile-virtual-select/nile-virtual-select.test.ts +139 -1
  137. package/src/nile-virtual-select/nile-virtual-select.ts +17 -6
  138. package/vscode-html-custom-data.json +200 -20
@@ -1 +1 @@
1
- {"version":3,"file":"nile-virtual-select.test.js","sourceRoot":"","sources":["../../../src/nile-virtual-select/nile-virtual-select.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { aTimeout, expect, fixture, html, nextFrame, waitUntil } from '@open-wc/testing';\nimport './nile-virtual-select';\nimport '../nile-input/nile-input';\nimport type { NileVirtualSelect } from './nile-virtual-select';\n\ndescribe('NileVirtualSelect', () => {\n it('1. renders', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el).to.exist; });\n it('2. shadow root', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot).to.not.be.null; });\n it('3. tag name', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.tagName.toLowerCase()).to.equal('nile-virtual-select'); });\n it('4. is defined', async () => { expect(customElements.get('nile-virtual-select')).to.exist; });\n it('5. has styles', async () => { expect((await import('./nile-virtual-select')).NileVirtualSelect.styles).to.exist; });\n it('6. shadow mode', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.mode).to.equal('open'); });\n it('7. isConnected', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.isConnected).to.be.true; });\n it('8. removal', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.remove(); expect(el.isConnected).to.be.false; });\n it('9. outerHTML', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.outerHTML).to.contain('nile-virtual-select'); });\n it('10. matches', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"x\"></nile-virtual-select>`); expect(el.matches('.x')).to.be.true; });\n it('11. closest', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.closest('nile-virtual-select')).to.equal(el); });\n it('12. cloneNode', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-virtual-select'); });\n it('13. dispatchEvent', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });\n it('14. updateComplete', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });\n it('15. render method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.render).to.be.a('function'); });\n it('16. shadowRoot host', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.host).to.equal(el); });\n it('17. class attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"vs\"></nile-virtual-select>`); expect(el.classList.contains('vs')).to.be.true; });\n it('18. id attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select id=\"vs1\"></nile-virtual-select>`); expect(el.id).to.equal('vs1'); });\n it('19. hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select hidden></nile-virtual-select>`); expect(el.hidden).to.be.true; });\n it('20. nodeType', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.nodeType).to.equal(1); });\n it('21. localName', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.localName).to.equal('nile-virtual-select'); });\n it('22. namespaceURI', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });\n it('23. ownerDocument', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.ownerDocument).to.equal(document); });\n it('24. multiple instances', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelectorAll('nile-virtual-select').length).to.equal(2); });\n it('25. parent-child', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelector('nile-virtual-select')!.parentElement).to.equal(c); });\n it('26. createElement', async () => { const el = document.createElement('nile-virtual-select') as NileVirtualSelect; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });\n it('27. dataset', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select data-idx=\"0\"></nile-virtual-select>`); expect(el.dataset.idx).to.equal('0'); });\n it('28. classList add', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });\n it('29. getBoundingClientRect', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.getBoundingClientRect()).to.exist; });\n it('30. style attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select style=\"color:red\"></nile-virtual-select>`); expect(el.style.color).to.equal('red'); });\n it('31. aria-label', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select aria-label=\"VS\"></nile-virtual-select>`); expect(el.getAttribute('aria-label')).to.equal('VS'); });\n it('32. dir', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select dir=\"rtl\"></nile-virtual-select>`); expect(el.dir).to.equal('rtl'); });\n it('33. lang attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select lang=\"en\"></nile-virtual-select>`); expect(el.lang).to.equal('en'); });\n it('34. tabindex', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select tabindex=\"0\"></nile-virtual-select>`); expect(el.getAttribute('tabindex')).to.equal('0'); });\n it('35. requestUpdate', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });\n it('36. shadow childNodes', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });\n it('37. scrollIntoView', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.scrollIntoView).to.be.a('function'); });\n it('38. focus method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.focus).to.be.a('function'); });\n it('39. blur method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.blur).to.be.a('function'); });\n it('40. class toggle', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });\n it('41. toggle hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.hidden = true; expect(el.hidden).to.be.true; });\n it('42. dispatchCustomEvent', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });\n it('43. nested in div', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelector('nile-virtual-select')).to.exist; });\n it('44. no canvas', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });\n it('45. no video', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });\n it('46. no audio', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });\n it('47. no nav', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });\n it('48. no aside', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });\n it('49. no table', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });\n it('50. no img', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });\n it('51. no anchor', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });\n it('52. no svg', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });\n it('53. no form', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });\n it('54. title attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select title=\"VS\"></nile-virtual-select>`); expect(el.title).to.equal('VS'); });\n it('55. no h1', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });\n it('56. no pre', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });\n it('57. no code', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });\n it('58. no hr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('hr')).to.be.null; });\n it('59. no p', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('p')).to.be.null; });\n it('60. no ul', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });\n it('61. no textarea', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });\n it('62. no select html', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });\n it('63. no nile-badge', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });\n it('64. no nile-radio', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-radio')).to.be.null; });\n it('65. no nile-dialog', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-dialog')).to.be.null; });\n it('66. no nile-drawer', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-drawer')).to.be.null; });\n it('67. no nile-slider', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-slider')).to.be.null; });\n it('68. no nile-accordion', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-accordion')).to.be.null; });\n it('69. setAttribute data', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });\n it('70. removeAttribute hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select hidden></nile-virtual-select>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });\n it('71. setAttribute class', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });\n it('72. aria-describedby', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select aria-describedby=\"d\"></nile-virtual-select>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });\n it('73. multiple re-renders', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });\n it('74. contains', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select><span id=\"s1\">C</span></nile-virtual-select>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });\n it('75. data attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select data-x=\"1\"></nile-virtual-select>`); expect(el.getAttribute('data-x')).to.equal('1'); });\n it('76. role attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select role=\"listbox\"></nile-virtual-select>`); expect(el.getAttribute('role')).to.equal('listbox'); });\n it('77. no section', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('section')).to.be.null; });\n it('78. no header', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('header')).to.be.null; });\n it('79. no footer', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('footer')).to.be.null; });\n it('80. no main', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('main')).to.be.null; });\n it('81. no article', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('article')).to.be.null; });\n it('82. no nile-toolbar', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-toolbar')).to.be.null; });\n it('83. no nile-link', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-link')).to.be.null; });\n it('84. no nile-menu', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-menu')).to.be.null; });\n it('85. no nile-textarea', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-textarea')).to.be.null; });\n it('86. no nile-button', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-button')).to.be.null; });\n it('87. no nile-card', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-card')).to.be.null; });\n it('88. no nile-tab', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-tab')).to.be.null; });\n it('89. no nile-stepper', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-stepper')).to.be.null; });\n it('90. no nile-pagination', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-pagination')).to.be.null; });\n it('91. show method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.show).to.be.a('function'); });\n it('92. hide method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.hide).to.be.a('function'); });\n it('93. nile-popup in shadow', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-popup')).to.exist; });\n it('94. nile-icon in shadow', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });\n it('95. label slot', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('slot[name=\"label\"]')).to.exist; });\n it('96. label slot', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('slot[name=\"label\"]')).to.exist; });\n it('97. combobox div', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('.select__combobox')).to.exist; });\n it('98. no nile-input', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-input')).to.be.null; });\n it('99. no nile-calendar', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-calendar')).to.be.null; });\n it('100. full integration', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"vs\" id=\"vs1\"></nile-virtual-select>`); expect(el.id).to.equal('vs1'); expect(el.shadowRoot).to.not.be.null; expect(el.shadowRoot!.querySelector('nile-popup')).to.exist; expect(el.shadowRoot!.querySelector('.select__combobox')).to.exist; });\n});\n\ndescribe('NileVirtualSelect chip fitting behaviour matrix', () => {\n const LABELS = [\n 'Engineering Operations Team',\n 'Human Resources Department',\n 'Finance And Accounting Group',\n 'Customer Success Organisation',\n 'Product Design Studio Unit'\n ];\n\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n function tagsRoot(el: NileVirtualSelect) {\n return el.shadowRoot!.querySelector('.select__tags');\n }\n\n function chips(el: NileVirtualSelect) {\n return Array.from(\n el.shadowRoot!.querySelectorAll('.select__tags nile-tag')\n ) as HTMLElement[];\n }\n\n function hiddenChips(el: NileVirtualSelect) {\n return chips(el).filter(chip => chip.style.display === 'none');\n }\n\n it('V1. multiple + no max-options-visible + autoResize=false renders fitted chips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.autoResize).to.be.false;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.exist;\n expect(chips(el).length).to.equal(LABELS.length);\n });\n\n it('V2. multiple + no max-options-visible + autoResize=true refits when the container resizes', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select showtooltip multiple autoresize .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.autoResize).to.be.true;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n const wideHidden = hiddenChips(el).length;\n\n host.style.width = '180px';\n await aTimeout(200);\n await settle(el);\n\n expect(hiddenChips(el).length).to.be.at.least(wideHidden);\n });\n\n it('V3. explicit max-options-visible switches to fixed-count layout', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip\n multiple\n max-options-visible=\"2\"\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.maxOptionsVisible).to.equal(2);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(chips(el).length).to.equal(2);\n expect(el.shadowRoot!.querySelector('span.select__tags-count')).to.exist;\n });\n\n it('V3b. max-options-visible set as a property also switches to fixed-count layout', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n\n el.maxOptionsVisible = 1;\n await settle(el);\n\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(chips(el).length).to.equal(1);\n });\n\n it('V3c. the default max-options-visible is still 3 and reading it does not opt out', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.maxOptionsVisible).to.equal(3);\n expect(el.maxOptionsVisible).to.equal(3);\n await settle(el);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n });\n\n it('V5. autoresize works as a markup attribute', async () => {\n const b = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple autoresize></nile-virtual-select>`\n );\n await b.updateComplete;\n expect(b.autoResize).to.be.true;\n\n const c = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple></nile-virtual-select>`\n );\n await c.updateComplete;\n expect(c.autoResize).to.be.false;\n });\n\n it('V6. the +N button count matches the number of hidden chips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 220px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n const overflow = el.shadowRoot!.querySelector(\n 'button.select__tags-count'\n ) as HTMLElement | null;\n const hidden = hiddenChips(el).length;\n\n if (hidden > 0) {\n expect(overflow).to.exist;\n expect(overflow!.textContent!.trim()).to.equal(`+${hidden}`);\n expect(overflow!.getAttribute('aria-label')).to.equal(\n `${hidden} more selected`\n );\n } else {\n // Nothing overflows, so the button is not rendered at all.\n expect(overflow).to.not.exist;\n }\n });\n\n it('V7. nile-select and nile-virtual-select agree on when fitting is active', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n <nile-virtual-select showtooltip\n multiple\n max-options-visible=\"2\"\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const [fitted, fixed] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(fitted);\n await settle(fixed);\n\n expect(tagsRoot(fitted)!.classList.contains('select__tags--fitted')).to.be\n .true;\n expect(tagsRoot(fixed)!.classList.contains('select__tags--fitted')).to.be\n .false;\n });\n\n // The tooltip is opt-in: `showtooltip` present, and the chip's text clipped.\n function tips(el: NileVirtualSelect) {\n return Array.from(\n el.shadowRoot!.querySelectorAll('.select__tag-tip')\n ) as HTMLElement[];\n }\n\n function liveTips(el: NileVirtualSelect) {\n return tips(el).filter(tip => !tip.hasAttribute('disabled'));\n }\n\n // Truncation is bound to the tooltip: a clipped chip is only acceptable when\n // something can reveal the value it hid. A chip wider than the whole field is\n // the one exception - there is nowhere for it to go.\n function chipContent(chip: HTMLElement) {\n return chip.shadowRoot!.querySelector('[part~=\"content\"]') as HTMLElement;\n }\n\n function clippedChipCount(el: NileVirtualSelect) {\n return chips(el)\n .filter(chip => chip.style.display !== 'none')\n .filter(chip => {\n const content = chipContent(chip);\n return content.scrollWidth > content.clientWidth + 1;\n }).length;\n }\n\n it('V12. without showtooltip the pre-2.0.9 chip row is used', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n await aTimeout(20);\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.not.exist;\n expect(chips(el).every(chip => !chip.style.maxWidth)).to.be.true;\n const overflowCount = el.shadowRoot!.querySelector('span.select__tags-count');\n expect(overflowCount).to.exist;\n expect(overflowCount!.textContent).to.contain('More');\n });\n\n it('V13. showtooltip is what allows a fitted chip to be truncated', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select\n multiple\n showtooltip\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.true;\n expect(clippedChipCount(el)).to.be.greaterThan(0);\n });\n\n it('V8. no showtooltip attribute renders no chip tooltips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(el.hasAttribute('showtooltip')).to.be.false;\n expect(tips(el).length).to.equal(0);\n });\n\n it('V9. showtooltip shows the chip tooltip', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.true;\n expect(liveTips(el).length).to.be.greaterThan(0);\n });\n\n it('V10. removing showtooltip hides the chip tooltip again', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS}></nile-virtual-select>\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const [el, control] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(el);\n await settle(control);\n\n expect(liveTips(el).length).to.be.greaterThan(0);\n\n el.removeAttribute('showtooltip');\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(liveTips(el).length).to.equal(0);\n // Removing the attribute must land back on the default.\n expect(tips(el).map(tip => tip.hasAttribute('disabled'))).to.deep.equal(\n tips(control).map(tip => tip.hasAttribute('disabled'))\n );\n });\n\n it('V11. the overflow button label and text never disagree, including first paint', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 220px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n\n // Before the layout frame runs, no button may claim a count it cannot back up.\n await el.updateComplete;\n const early = el.shadowRoot!.querySelector('button.select__tags-count');\n if (early) {\n const shown = early.textContent!.trim().replace('+', '');\n expect(early.getAttribute('aria-label')).to.equal(\n `${shown} more selected`\n );\n }\n\n await settle(el);\n\n const overflow = el.shadowRoot!.querySelector(\n 'button.select__tags-count'\n ) as HTMLElement | null;\n expect(overflow).to.exist;\n const shown = overflow!.textContent!.trim().replace('+', '');\n expect(overflow!.getAttribute('aria-label')).to.equal(\n `${shown} more selected`\n );\n expect(Number(shown)).to.equal(hiddenChips(el).length);\n });\n\n it('V12. no overflow button is rendered when every chip fits', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 1200px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS.slice(0, 1)}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(hiddenChips(el).length).to.equal(0);\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.not\n .exist;\n });\n\n it('G1. default chips are not capped by the 2.0.9 chip styles; showtooltip caps them', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS.slice(0, 2)}></nile-virtual-select>\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS.slice(0, 2)}></nile-virtual-select>\n </div>`\n );\n const [plain, tooltip] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(plain);\n await settle(tooltip);\n\n const [plainChip] = chips(plain);\n const [tooltipChip] = chips(tooltip);\n expect(plainChip, 'plain select rendered no chips').to.exist;\n expect(tooltipChip, 'tooltip select rendered no chips').to.exist;\n expect(getComputedStyle(plainChip).maxWidth).to.equal('none');\n expect(getComputedStyle(tooltipChip).maxWidth).to.not.equal('none');\n });\n});\n\ndescribe('NileVirtualSelect chipMinWidth / chipMaxWidth attributes', () => {\n const LABELS = ['Engineering Operations Team', 'Human Resources Department'];\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n const firstChip = (el: NileVirtualSelect) =>\n el.shadowRoot!.querySelector('.select__tags nile-tag') as HTMLElement;\n\n it('R4a. defaults are 110 / 180 and are not written to the host', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n await settle(el);\n\n expect(el.chipMinWidth).to.equal(110);\n expect(el.chipMaxWidth).to.equal(180);\n expect(el.hasAttribute('chipminwidth')).to.be.false;\n expect(el.hasAttribute('chipmaxwidth')).to.be.false;\n });\n\n it('R4b. attributes still set the properties; properties do not add attributes', async () => {\n const el = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple .data=${DATA} chipminwidth=\"90\" chipmaxwidth=\"150\"></nile-virtual-select>`\n );\n await settle(el);\n expect(el.chipMinWidth).to.equal(90);\n expect(el.chipMaxWidth).to.equal(150);\n\n const plain = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n plain.chipMaxWidth = 140;\n await settle(plain);\n expect(plain.chipMaxWidth).to.equal(140);\n expect(plain.hasAttribute('chipmaxwidth')).to.be.false;\n });\n\n it('R4c. showtooltip still caps squeezed chips at chipMaxWidth', async () => {\n const host = await fixture<HTMLElement>(html`<div style=\"width: 300px\">\n <nile-virtual-select multiple showtooltip chipmaxwidth=\"150\" .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n const chip = firstChip(el);\n expect(chip, 'select rendered no chips').to.exist;\n expect(chip.getBoundingClientRect().width).to.be.within(1, 150.5);\n\n el.chipMaxWidth = 120;\n await settle(el);\n await nextFrame();\n expect(firstChip(el).getBoundingClientRect().width).to.be.within(1, 120.5);\n });\n});\n\ndescribe('NileVirtualSelect footer width with and without noWidthSync', () => {\n const DATA = [{ label: 'a', value: 'a' }, { label: 'b', value: 'b' }];\n\n async function openSelect(width: number, noWidthSync: boolean, portal = false) {\n const host = await fixture<HTMLElement>(html`<div style=\"width: ${width}px\">\n <nile-virtual-select multiple .noWidthSync=${noWidthSync} .portal=${portal} .data=${DATA} .value=${['a']}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await el.updateComplete;\n el.open = true;\n const listbox = () =>\n (portal\n ? document.body.querySelector('.nile-virtual-select-portal-append #listbox')\n : el.shadowRoot!.querySelector('#listbox')) as HTMLElement | null;\n await waitUntil(() => (listbox()?.getBoundingClientRect().width ?? 0) > 0, 'listbox never opened');\n await nextFrame();\n const box = listbox()!;\n const footer = box.querySelector('.select__footer') as HTMLElement;\n const combobox = el.shadowRoot!.querySelector('[part~=\"combobox\"]') as HTMLElement;\n return { el, listbox: box, footer, combobox };\n }\n\n const labelShown = (footer: HTMLElement, selector: string) =>\n getComputedStyle(footer.querySelector(selector) as HTMLElement).display !== 'none';\n\n before(() => document.documentElement.style.setProperty('--nile-display-flex', 'flex'));\n after(() => document.documentElement.style.removeProperty('--nile-display-flex'));\n\n afterEach(async () => {\n document.body.querySelectorAll('.nile-virtual-select-portal-append').forEach(n => n.remove());\n document.head.querySelectorAll('style[id^=\"nile-virtual-select-styles-\"]').forEach(n => n.remove());\n });\n\n for (const width of [120, 400]) {\n it(`R3a. noWidthSync + multiple at ${width}px does not collapse and shows the whole footer`, async () => {\n const { listbox, footer } = await openSelect(width, true);\n\n expect(listbox.offsetWidth).to.be.greaterThan(60);\n expect(listbox.offsetWidth).to.be.at.least(footer.offsetWidth);\n expect(footer.scrollWidth).to.be.at.most(footer.clientWidth + 1);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.true;\n expect(labelShown(footer, '.select__footer-action .select__footer-label')).to.be.true;\n });\n }\n\n it('R3b. width sync at normal width keeps the dropdown as wide as the trigger', async () => {\n const { listbox, combobox, footer } = await openSelect(400, false);\n\n expect(Math.abs(listbox.offsetWidth - combobox.offsetWidth)).to.be.below(2);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.true;\n });\n\n it('R3c. width sync at a narrow width still collapses the footer labels (container queries kept)', async () => {\n const { listbox, combobox, footer } = await openSelect(130, false);\n\n expect(Math.abs(listbox.offsetWidth - combobox.offsetWidth)).to.be.below(2);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.false;\n });\n\n for (const noWidthSync of [false, true]) {\n it(`R3d. portal (noWidthSync=${noWidthSync}) pins the width and keeps the narrow-footer queries`, async () => {\n const { el, listbox, combobox, footer } = await openSelect(130, noWidthSync, true);\n\n expect(listbox.offsetWidth).to.be.within(combobox.offsetWidth - 8, combobox.offsetWidth);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.false;\n\n el.open = false;\n await waitUntil(() => !document.body.querySelector('.nile-virtual-select-portal-append'), 'portal not cleaned up');\n });\n }\n});\n\ndescribe('NileVirtualSelect showtooltip chip layout taken while hidden', () => {\n const LABELS = ['Engineering Operations Team', 'Human Resources Department'];\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function frames(n = 3) {\n for (let i = 0; i < n; i++) await nextFrame();\n }\n\n const chipsOf = (el: NileVirtualSelect) =>\n Array.from(el.shadowRoot!.querySelectorAll('.select__tags nile-tag')) as HTMLElement[];\n\n async function hiddenSelect(showTooltip: boolean) {\n const host = await fixture<HTMLElement>(html`<div style=\"display: none; width: 600px\">\n <nile-virtual-select multiple ?showtooltip=${showTooltip} .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await el.updateComplete;\n await frames();\n await el.updateComplete;\n return { host, el };\n }\n\n it('R5a. showtooltip chips measured while hidden get real widths once shown', async () => {\n const { host, el } = await hiddenSelect(true);\n\n host.style.display = 'block';\n await frames(4);\n await el.updateComplete;\n\n const chips = chipsOf(el);\n expect(chips.length).to.equal(2);\n for (const chip of chips) {\n expect(chip.style.width).to.not.equal('0px');\n expect(chip.offsetWidth).to.be.greaterThan(50);\n }\n });\n\n it('R5c. without showtooltip a hidden-then-shown select is unaffected (no inline widths)', async () => {\n const { host, el } = await hiddenSelect(false);\n\n host.style.display = 'block';\n await frames(4);\n\n for (const chip of chipsOf(el)) {\n expect(chip.style.width).to.equal('');\n expect(chip.offsetWidth).to.be.greaterThan(50);\n }\n });\n});\n\ndescribe('NileVirtualSelect 2.0.8 compatibility matrix', () => {\n const DATA = ['a', 'b', 'c'].map(v => ({ label: `L${v}`, value: v }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n const chipCount = (el: NileVirtualSelect) => el.shadowRoot!.querySelectorAll('.select__tags nile-tag').length;\n\n function record(el: EventTarget, names: string[]) {\n const seen: string[] = [];\n names.forEach(name => el.addEventListener(name, () => seen.push(name)));\n return seen;\n }\n\n it('CV1. a value set before data arrives is kept, and survives the data being replaced', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .value=${['b']}></nile-virtual-select>`);\n await settle(el);\n el.data = DATA;\n await settle(el);\n expect(el.value).to.deep.equal(['b']);\n expect(chipCount(el)).to.equal(1);\n\n el.data = [...DATA];\n await settle(el);\n expect(el.value).to.deep.equal(['b']);\n expect(chipCount(el)).to.equal(1);\n });\n\n it('CV2. programmatic value updates the chips', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n await settle(el);\n el.value = ['a', 'c'];\n await settle(el);\n expect(chipCount(el)).to.equal(2);\n el.value = [];\n await settle(el);\n expect(chipCount(el)).to.equal(0);\n });\n\n it('CV3. removing a chip updates the value and emits tag-remove', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>`);\n await settle(el);\n const seen = record(el, ['nile-tag-remove']);\n\n const chip = el.shadowRoot!.querySelector('.select__tags nile-tag') as HTMLElement;\n expect(chip, 'select rendered no chips').to.exist;\n chip.dispatchEvent(new CustomEvent('nile-remove', { bubbles: true, composed: true }));\n await settle(el);\n\n expect(el.value).to.deep.equal(['b']);\n expect(seen).to.deep.equal(['nile-tag-remove']);\n });\n\n it('CV4. the clear button empties the value and emits nile-clear', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple clearable .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>`);\n await settle(el);\n const seen = record(el, ['nile-clear']);\n\n const clear = el.shadowRoot!.querySelector('[part~=\"clear-button\"]') as HTMLElement;\n expect(clear, 'clear button rendered').to.exist;\n clear.click();\n await settle(el);\n\n expect(el.value).to.deep.equal([]);\n expect(chipCount(el)).to.equal(0);\n expect(seen).to.include('nile-clear');\n });\n\n it('CV5. form reset restores the value attribute', async () => {\n const form = await fixture<HTMLFormElement>(html`<form>\n <nile-virtual-select name=\"s\" multiple .data=${DATA} value=\"a\"></nile-virtual-select>\n </form>`);\n const el = form.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n el.value = ['c'];\n await settle(el);\n form.reset();\n await settle(el);\n\n expect(el.value).to.deep.equal(['a']);\n });\n\n it('CV6. portal + search: typing in the portalled search keeps the value', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple portal searchEnabled .data=${DATA} .value=${['a']}></nile-virtual-select>`);\n await settle(el);\n el.open = true;\n await waitUntil(() => document.body.querySelector('.nile-virtual-select-portal-append .select__search nile-input'), 'portal search never rendered');\n const search = document.body.querySelector('.nile-virtual-select-portal-append .select__search nile-input') as any;\n await search.updateComplete;\n\n const input = search.shadowRoot.querySelector('input') as HTMLInputElement;\n input.value = 'Lb';\n input.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n await settle(el);\n expect(el.value).to.deep.equal(['a']);\n\n el.open = false;\n await waitUntil(() => !document.body.querySelector('.nile-virtual-select-portal-append'), 'portal not cleaned up');\n });\n\n it('CV7. reconnecting without showtooltip keeps value and chips', async () => {\n const host = await fixture<HTMLElement>(html`<div style=\"width: 500px\">\n <nile-virtual-select multiple .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n el.remove();\n host.appendChild(el);\n await settle(el);\n\n expect(el.value).to.deep.equal(['a', 'b']);\n expect(chipCount(el)).to.equal(2);\n });\n});\n\ndescribe('NileVirtualSelect showtooltip tooltip on sub-pixel truncation', () => {\n const A = 'Engineering Operations';\n const B = 'Human Resources Department And Payroll';\n\n async function frames(n = 5) {\n for (let i = 0; i < n; i++) await nextFrame();\n }\n\n async function mount(width: number, chipMaxWidth: number) {\n const host = await fixture<HTMLElement>(html`<div style=\"width: ${width}px\">\n <nile-virtual-select multiple showtooltip chipminwidth=\"40\" chipmaxwidth=${chipMaxWidth} .data=${[A, B].map(v => ({ label: v, value: v }))} .value=${[A, B]}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as any;\n await el.updateComplete;\n await frames();\n await el.updateComplete;\n await frames(2);\n return el;\n }\n\n function visiblyCut(chip: HTMLElement) {\n const content = chip.shadowRoot!.querySelector('[part=\"content\"]') as HTMLSlotElement;\n const text = content.assignedNodes({ flatten: true }).find(n => n.textContent?.trim())!;\n const range = document.createRange();\n range.selectNodeContents(text);\n const over = range.getBoundingClientRect().right - content.getBoundingClientRect().right;\n return { cut: over > 1 / 64, over, pxGap: content.scrollWidth - content.clientWidth };\n }\n\n function chipsAndTips(el: any) {\n const chips = Array.from(el.shadowRoot.querySelectorAll('.select__tags nile-tag')) as HTMLElement[];\n const tips = Array.from(el.shadowRoot.querySelectorAll('.select__tags nile-lite-tooltip')) as HTMLElement[];\n return chips\n .map((chip, i) => ({ chip, tipOn: !!tips[i] && !tips[i].hasAttribute('disabled') }))\n .filter(({ chip }) => chip.style.display !== 'none');\n }\n\n it('TT1. every visibly cut chip has its tooltip, every uncut chip has none (sweep across the edge)', async () => {\n const wide = await mount(900, 400);\n const natural = chipsAndTips(wide)[0].chip.offsetWidth;\n\n let subPixelCuts = 0;\n for (let max = natural - 4; max <= natural + 1; max += 0.25) {\n const el = await mount(330, max);\n for (const { chip, tipOn } of chipsAndTips(el)) {\n const { cut, pxGap } = visiblyCut(chip);\n expect(tipOn, `chipMaxWidth ${max}: tooltip ${tipOn} but cut ${cut}`).to.equal(cut);\n if (cut && pxGap <= 1) subPixelCuts++;\n }\n }\n expect(subPixelCuts, 'sweep reached the sub-pixel truncation window').to.be.greaterThan(0);\n });\n\n it('TT2. chips at their natural width get no tooltip', async () => {\n const el = await mount(900, 400);\n for (const { chip, tipOn } of chipsAndTips(el)) {\n expect(visiblyCut(chip).cut).to.be.false;\n expect(tipOn).to.be.false;\n }\n });\n});\n"]}
1
+ {"version":3,"file":"nile-virtual-select.test.js","sourceRoot":"","sources":["../../../src/nile-virtual-select/nile-virtual-select.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { aTimeout, expect, fixture, html, nextFrame, oneEvent, waitUntil } from '@open-wc/testing';\nimport './nile-virtual-select';\nimport '../nile-input/nile-input';\nimport type { NileVirtualSelect } from './nile-virtual-select';\n\ndescribe('NileVirtualSelect', () => {\n it('1. renders', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el).to.exist; });\n it('2. shadow root', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot).to.not.be.null; });\n it('3. tag name', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.tagName.toLowerCase()).to.equal('nile-virtual-select'); });\n it('4. is defined', async () => { expect(customElements.get('nile-virtual-select')).to.exist; });\n it('5. has styles', async () => { expect((await import('./nile-virtual-select')).NileVirtualSelect.styles).to.exist; });\n it('6. shadow mode', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.mode).to.equal('open'); });\n it('7. isConnected', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.isConnected).to.be.true; });\n it('8. removal', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.remove(); expect(el.isConnected).to.be.false; });\n it('9. outerHTML', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.outerHTML).to.contain('nile-virtual-select'); });\n it('10. matches', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"x\"></nile-virtual-select>`); expect(el.matches('.x')).to.be.true; });\n it('11. closest', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.closest('nile-virtual-select')).to.equal(el); });\n it('12. cloneNode', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-virtual-select'); });\n it('13. dispatchEvent', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });\n it('14. updateComplete', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });\n it('15. render method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.render).to.be.a('function'); });\n it('16. shadowRoot host', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.host).to.equal(el); });\n it('17. class attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"vs\"></nile-virtual-select>`); expect(el.classList.contains('vs')).to.be.true; });\n it('18. id attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select id=\"vs1\"></nile-virtual-select>`); expect(el.id).to.equal('vs1'); });\n it('19. hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select hidden></nile-virtual-select>`); expect(el.hidden).to.be.true; });\n it('20. nodeType', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.nodeType).to.equal(1); });\n it('21. localName', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.localName).to.equal('nile-virtual-select'); });\n it('22. namespaceURI', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });\n it('23. ownerDocument', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.ownerDocument).to.equal(document); });\n it('24. multiple instances', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelectorAll('nile-virtual-select').length).to.equal(2); });\n it('25. parent-child', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelector('nile-virtual-select')!.parentElement).to.equal(c); });\n it('26. createElement', async () => { const el = document.createElement('nile-virtual-select') as NileVirtualSelect; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });\n it('27. dataset', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select data-idx=\"0\"></nile-virtual-select>`); expect(el.dataset.idx).to.equal('0'); });\n it('28. classList add', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });\n it('29. getBoundingClientRect', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.getBoundingClientRect()).to.exist; });\n it('30. style attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select style=\"color:red\"></nile-virtual-select>`); expect(el.style.color).to.equal('red'); });\n it('31. aria-label', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select aria-label=\"VS\"></nile-virtual-select>`); expect(el.getAttribute('aria-label')).to.equal('VS'); });\n it('32. dir', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select dir=\"rtl\"></nile-virtual-select>`); expect(el.dir).to.equal('rtl'); });\n it('33. lang attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select lang=\"en\"></nile-virtual-select>`); expect(el.lang).to.equal('en'); });\n it('34. tabindex', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select tabindex=\"0\"></nile-virtual-select>`); expect(el.getAttribute('tabindex')).to.equal('0'); });\n it('35. requestUpdate', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });\n it('36. shadow childNodes', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });\n it('37. scrollIntoView', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.scrollIntoView).to.be.a('function'); });\n it('38. focus method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.focus).to.be.a('function'); });\n it('39. blur method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.blur).to.be.a('function'); });\n it('40. class toggle', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });\n it('41. toggle hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.hidden = true; expect(el.hidden).to.be.true; });\n it('42. dispatchCustomEvent', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });\n it('43. nested in div', async () => { const c = await fixture(html`<div><nile-virtual-select></nile-virtual-select></div>`); expect(c.querySelector('nile-virtual-select')).to.exist; });\n it('44. no canvas', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });\n it('45. no video', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });\n it('46. no audio', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });\n it('47. no nav', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });\n it('48. no aside', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });\n it('49. no table', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });\n it('50. no img', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });\n it('51. no anchor', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });\n it('52. no svg', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });\n it('53. no form', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });\n it('54. title attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select title=\"VS\"></nile-virtual-select>`); expect(el.title).to.equal('VS'); });\n it('55. no h1', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });\n it('56. no pre', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });\n it('57. no code', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });\n it('58. no hr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('hr')).to.be.null; });\n it('59. no p', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('p')).to.be.null; });\n it('60. no ul', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });\n it('61. no textarea', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });\n it('62. no select html', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });\n it('63. no nile-badge', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });\n it('64. no nile-radio', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-radio')).to.be.null; });\n it('65. no nile-dialog', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-dialog')).to.be.null; });\n it('66. no nile-drawer', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-drawer')).to.be.null; });\n it('67. no nile-slider', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-slider')).to.be.null; });\n it('68. no nile-accordion', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-accordion')).to.be.null; });\n it('69. setAttribute data', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });\n it('70. removeAttribute hidden', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select hidden></nile-virtual-select>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });\n it('71. setAttribute class', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });\n it('72. aria-describedby', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select aria-describedby=\"d\"></nile-virtual-select>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });\n it('73. multiple re-renders', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });\n it('74. contains', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select><span id=\"s1\">C</span></nile-virtual-select>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });\n it('75. data attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select data-x=\"1\"></nile-virtual-select>`); expect(el.getAttribute('data-x')).to.equal('1'); });\n it('76. role attr', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select role=\"listbox\"></nile-virtual-select>`); expect(el.getAttribute('role')).to.equal('listbox'); });\n it('77. no section', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('section')).to.be.null; });\n it('78. no header', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('header')).to.be.null; });\n it('79. no footer', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('footer')).to.be.null; });\n it('80. no main', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('main')).to.be.null; });\n it('81. no article', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('article')).to.be.null; });\n it('82. no nile-toolbar', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-toolbar')).to.be.null; });\n it('83. no nile-link', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-link')).to.be.null; });\n it('84. no nile-menu', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-menu')).to.be.null; });\n it('85. no nile-textarea', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-textarea')).to.be.null; });\n it('86. no nile-button', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-button')).to.be.null; });\n it('87. no nile-card', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-card')).to.be.null; });\n it('88. no nile-tab', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-tab')).to.be.null; });\n it('89. no nile-stepper', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-stepper')).to.be.null; });\n it('90. no nile-pagination', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-pagination')).to.be.null; });\n it('91. show method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.show).to.be.a('function'); });\n it('92. hide method', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.hide).to.be.a('function'); });\n it('93. nile-popup in shadow', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-popup')).to.exist; });\n it('94. nile-icon in shadow', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });\n it('95. label slot', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('slot[name=\"label\"]')).to.exist; });\n it('96. label slot', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('slot[name=\"label\"]')).to.exist; });\n it('97. combobox div', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('.select__combobox')).to.exist; });\n it('98. no nile-input', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-input')).to.be.null; });\n it('99. no nile-calendar', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select></nile-virtual-select>`); expect(el.shadowRoot!.querySelector('nile-calendar')).to.be.null; });\n it('100. full integration', async () => { const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select class=\"vs\" id=\"vs1\"></nile-virtual-select>`); expect(el.id).to.equal('vs1'); expect(el.shadowRoot).to.not.be.null; expect(el.shadowRoot!.querySelector('nile-popup')).to.exist; expect(el.shadowRoot!.querySelector('.select__combobox')).to.exist; });\n});\n\ndescribe('NileVirtualSelect chip fitting behaviour matrix', () => {\n const LABELS = [\n 'Engineering Operations Team',\n 'Human Resources Department',\n 'Finance And Accounting Group',\n 'Customer Success Organisation',\n 'Product Design Studio Unit'\n ];\n\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n function tagsRoot(el: NileVirtualSelect) {\n return el.shadowRoot!.querySelector('.select__tags');\n }\n\n function chips(el: NileVirtualSelect) {\n return Array.from(\n el.shadowRoot!.querySelectorAll('.select__tags nile-tag')\n ) as HTMLElement[];\n }\n\n function hiddenChips(el: NileVirtualSelect) {\n return chips(el).filter(chip => chip.style.display === 'none');\n }\n\n it('V1. multiple + no max-options-visible + autoResize=false renders fitted chips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.autoResize).to.be.false;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.exist;\n expect(chips(el).length).to.equal(LABELS.length);\n });\n\n it('V2. multiple + no max-options-visible + autoResize=true refits when the container resizes', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select showtooltip multiple autoresize .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.autoResize).to.be.true;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n const wideHidden = hiddenChips(el).length;\n\n host.style.width = '180px';\n await aTimeout(200);\n await settle(el);\n\n expect(hiddenChips(el).length).to.be.at.least(wideHidden);\n });\n\n it('V3. explicit max-options-visible switches to fixed-count layout', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip\n multiple\n max-options-visible=\"2\"\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.maxOptionsVisible).to.equal(2);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(chips(el).length).to.equal(2);\n expect(el.shadowRoot!.querySelector('span.select__tags-count')).to.exist;\n });\n\n it('V3b. max-options-visible set as a property also switches to fixed-count layout', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n\n el.maxOptionsVisible = 1;\n await settle(el);\n\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(chips(el).length).to.equal(1);\n });\n\n it('V3c. the default max-options-visible is still 3 and reading it does not opt out', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.maxOptionsVisible).to.equal(3);\n expect(el.maxOptionsVisible).to.equal(3);\n await settle(el);\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.true;\n });\n\n it('V5. autoresize works as a markup attribute', async () => {\n const b = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple autoresize></nile-virtual-select>`\n );\n await b.updateComplete;\n expect(b.autoResize).to.be.true;\n\n const c = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple></nile-virtual-select>`\n );\n await c.updateComplete;\n expect(c.autoResize).to.be.false;\n });\n\n it('V6. the +N button count matches the number of hidden chips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 220px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n const overflow = el.shadowRoot!.querySelector(\n 'button.select__tags-count'\n ) as HTMLElement | null;\n const hidden = hiddenChips(el).length;\n\n if (hidden > 0) {\n expect(overflow).to.exist;\n expect(overflow!.textContent!.trim()).to.equal(`+${hidden}`);\n expect(overflow!.getAttribute('aria-label')).to.equal(\n `${hidden} more selected`\n );\n } else {\n // Nothing overflows, so the button is not rendered at all.\n expect(overflow).to.not.exist;\n }\n });\n\n it('V7. nile-select and nile-virtual-select agree on when fitting is active', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 320px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n <nile-virtual-select showtooltip\n multiple\n max-options-visible=\"2\"\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const [fitted, fixed] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(fitted);\n await settle(fixed);\n\n expect(tagsRoot(fitted)!.classList.contains('select__tags--fitted')).to.be\n .true;\n expect(tagsRoot(fixed)!.classList.contains('select__tags--fitted')).to.be\n .false;\n });\n\n // The tooltip is opt-in: `showtooltip` present, and the chip's text clipped.\n function tips(el: NileVirtualSelect) {\n return Array.from(\n el.shadowRoot!.querySelectorAll('.select__tag-tip')\n ) as HTMLElement[];\n }\n\n function liveTips(el: NileVirtualSelect) {\n return tips(el).filter(tip => !tip.hasAttribute('disabled'));\n }\n\n // Truncation is bound to the tooltip: a clipped chip is only acceptable when\n // something can reveal the value it hid. A chip wider than the whole field is\n // the one exception - there is nowhere for it to go.\n function chipContent(chip: HTMLElement) {\n return chip.shadowRoot!.querySelector('[part~=\"content\"]') as HTMLElement;\n }\n\n function clippedChipCount(el: NileVirtualSelect) {\n return chips(el)\n .filter(chip => chip.style.display !== 'none')\n .filter(chip => {\n const content = chipContent(chip);\n return content.scrollWidth > content.clientWidth + 1;\n }).length;\n }\n\n it('V12. without showtooltip the pre-2.0.9 chip row is used', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n await aTimeout(20);\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(tagsRoot(el)!.classList.contains('select__tags--fitted')).to.be.false;\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.not.exist;\n expect(chips(el).every(chip => !chip.style.maxWidth)).to.be.true;\n const overflowCount = el.shadowRoot!.querySelector('span.select__tags-count');\n expect(overflowCount).to.exist;\n expect(overflowCount!.textContent).to.contain('More');\n });\n\n it('V13. showtooltip is what allows a fitted chip to be truncated', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select\n multiple\n showtooltip\n .data=${DATA}\n .value=${LABELS}\n ></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.true;\n expect(clippedChipCount(el)).to.be.greaterThan(0);\n });\n\n it('V8. no showtooltip attribute renders no chip tooltips', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(el.hasAttribute('showtooltip')).to.be.false;\n expect(tips(el).length).to.equal(0);\n });\n\n it('V9. showtooltip shows the chip tooltip', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(el.showTooltip).to.be.true;\n expect(liveTips(el).length).to.be.greaterThan(0);\n });\n\n it('V10. removing showtooltip hides the chip tooltip again', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 200px\">\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS}></nile-virtual-select>\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`\n );\n const [el, control] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(el);\n await settle(control);\n\n expect(liveTips(el).length).to.be.greaterThan(0);\n\n el.removeAttribute('showtooltip');\n await settle(el);\n\n expect(el.showTooltip).to.be.false;\n expect(liveTips(el).length).to.equal(0);\n // Removing the attribute must land back on the default.\n expect(tips(el).map(tip => tip.hasAttribute('disabled'))).to.deep.equal(\n tips(control).map(tip => tip.hasAttribute('disabled'))\n );\n });\n\n it('V11. the overflow button label and text never disagree, including first paint', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 220px\">\n <nile-virtual-select showtooltip multiple .data=${DATA} .value=${LABELS}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n\n // Before the layout frame runs, no button may claim a count it cannot back up.\n await el.updateComplete;\n const early = el.shadowRoot!.querySelector('button.select__tags-count');\n if (early) {\n const shown = early.textContent!.trim().replace('+', '');\n expect(early.getAttribute('aria-label')).to.equal(\n `${shown} more selected`\n );\n }\n\n await settle(el);\n\n const overflow = el.shadowRoot!.querySelector(\n 'button.select__tags-count'\n ) as HTMLElement | null;\n expect(overflow).to.exist;\n const shown = overflow!.textContent!.trim().replace('+', '');\n expect(overflow!.getAttribute('aria-label')).to.equal(\n `${shown} more selected`\n );\n expect(Number(shown)).to.equal(hiddenChips(el).length);\n });\n\n it('V12. no overflow button is rendered when every chip fits', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 1200px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS.slice(0, 1)}>\n </nile-virtual-select>\n </div>`\n );\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n expect(hiddenChips(el).length).to.equal(0);\n expect(el.shadowRoot!.querySelector('button.select__tags-count')).to.not\n .exist;\n });\n\n it('G1. default chips are not capped by the 2.0.9 chip styles; showtooltip caps them', async () => {\n const host = await fixture<HTMLElement>(\n html`<div style=\"width: 480px\">\n <nile-virtual-select multiple .data=${DATA} .value=${LABELS.slice(0, 2)}></nile-virtual-select>\n <nile-virtual-select multiple showtooltip .data=${DATA} .value=${LABELS.slice(0, 2)}></nile-virtual-select>\n </div>`\n );\n const [plain, tooltip] = Array.from(\n host.querySelectorAll('nile-virtual-select')\n ) as NileVirtualSelect[];\n await settle(plain);\n await settle(tooltip);\n\n const [plainChip] = chips(plain);\n const [tooltipChip] = chips(tooltip);\n expect(plainChip, 'plain select rendered no chips').to.exist;\n expect(tooltipChip, 'tooltip select rendered no chips').to.exist;\n expect(getComputedStyle(plainChip).maxWidth).to.equal('none');\n expect(getComputedStyle(tooltipChip).maxWidth).to.not.equal('none');\n });\n});\n\ndescribe('NileVirtualSelect chipMinWidth / chipMaxWidth attributes', () => {\n const LABELS = ['Engineering Operations Team', 'Human Resources Department'];\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n const firstChip = (el: NileVirtualSelect) =>\n el.shadowRoot!.querySelector('.select__tags nile-tag') as HTMLElement;\n\n it('R4a. defaults are 110 / 180 and are not written to the host', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n await settle(el);\n\n expect(el.chipMinWidth).to.equal(110);\n expect(el.chipMaxWidth).to.equal(180);\n expect(el.hasAttribute('chipminwidth')).to.be.false;\n expect(el.hasAttribute('chipmaxwidth')).to.be.false;\n });\n\n it('R4b. attributes still set the properties; properties do not add attributes', async () => {\n const el = await fixture<NileVirtualSelect>(\n html`<nile-virtual-select multiple .data=${DATA} chipminwidth=\"90\" chipmaxwidth=\"150\"></nile-virtual-select>`\n );\n await settle(el);\n expect(el.chipMinWidth).to.equal(90);\n expect(el.chipMaxWidth).to.equal(150);\n\n const plain = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n plain.chipMaxWidth = 140;\n await settle(plain);\n expect(plain.chipMaxWidth).to.equal(140);\n expect(plain.hasAttribute('chipmaxwidth')).to.be.false;\n });\n\n it('R4c. showtooltip still caps squeezed chips at chipMaxWidth', async () => {\n const host = await fixture<HTMLElement>(html`<div style=\"width: 300px\">\n <nile-virtual-select multiple showtooltip chipmaxwidth=\"150\" .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n const chip = firstChip(el);\n expect(chip, 'select rendered no chips').to.exist;\n expect(chip.getBoundingClientRect().width).to.be.within(1, 150.5);\n\n el.chipMaxWidth = 120;\n await settle(el);\n await nextFrame();\n expect(firstChip(el).getBoundingClientRect().width).to.be.within(1, 120.5);\n });\n});\n\ndescribe('NileVirtualSelect footer width with and without noWidthSync', () => {\n const DATA = [{ label: 'a', value: 'a' }, { label: 'b', value: 'b' }];\n\n async function openSelect(width: number, noWidthSync: boolean, portal = false) {\n const host = await fixture<HTMLElement>(html`<div style=\"width: ${width}px\">\n <nile-virtual-select multiple .noWidthSync=${noWidthSync} .portal=${portal} .data=${DATA} .value=${['a']}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await el.updateComplete;\n el.open = true;\n const listbox = () =>\n (portal\n ? document.body.querySelector('.nile-virtual-select-portal-append #listbox')\n : el.shadowRoot!.querySelector('#listbox')) as HTMLElement | null;\n await waitUntil(() => (listbox()?.getBoundingClientRect().width ?? 0) > 0, 'listbox never opened');\n await nextFrame();\n const box = listbox()!;\n const footer = box.querySelector('.select__footer') as HTMLElement;\n const combobox = el.shadowRoot!.querySelector('[part~=\"combobox\"]') as HTMLElement;\n return { el, listbox: box, footer, combobox };\n }\n\n const labelShown = (footer: HTMLElement, selector: string) =>\n getComputedStyle(footer.querySelector(selector) as HTMLElement).display !== 'none';\n\n before(() => document.documentElement.style.setProperty('--nile-display-flex', 'flex'));\n after(() => document.documentElement.style.removeProperty('--nile-display-flex'));\n\n afterEach(async () => {\n document.body.querySelectorAll('.nile-virtual-select-portal-append').forEach(n => n.remove());\n document.head.querySelectorAll('style[id^=\"nile-virtual-select-styles-\"]').forEach(n => n.remove());\n });\n\n for (const width of [120, 400]) {\n it(`R3a. noWidthSync + multiple at ${width}px does not collapse and shows the whole footer`, async () => {\n const { listbox, footer } = await openSelect(width, true);\n\n expect(listbox.offsetWidth).to.be.greaterThan(60);\n expect(listbox.offsetWidth).to.be.at.least(footer.offsetWidth);\n expect(footer.scrollWidth).to.be.at.most(footer.clientWidth + 1);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.true;\n expect(labelShown(footer, '.select__footer-action .select__footer-label')).to.be.true;\n });\n }\n\n it('R3b. width sync at normal width keeps the dropdown as wide as the trigger', async () => {\n const { listbox, combobox, footer } = await openSelect(400, false);\n\n expect(Math.abs(listbox.offsetWidth - combobox.offsetWidth)).to.be.below(2);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.true;\n });\n\n it('R3c. width sync at a narrow width still collapses the footer labels (container queries kept)', async () => {\n const { listbox, combobox, footer } = await openSelect(130, false);\n\n expect(Math.abs(listbox.offsetWidth - combobox.offsetWidth)).to.be.below(2);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.false;\n });\n\n for (const noWidthSync of [false, true]) {\n it(`R3d. portal (noWidthSync=${noWidthSync}) pins the width and keeps the narrow-footer queries`, async () => {\n const { el, listbox, combobox, footer } = await openSelect(130, noWidthSync, true);\n\n expect(listbox.offsetWidth).to.be.within(combobox.offsetWidth - 8, combobox.offsetWidth);\n expect(labelShown(footer, '.select__clear .select__footer-label')).to.be.false;\n\n el.open = false;\n await waitUntil(() => !document.body.querySelector('.nile-virtual-select-portal-append'), 'portal not cleaned up');\n });\n }\n});\n\ndescribe('NileVirtualSelect showtooltip chip layout taken while hidden', () => {\n const LABELS = ['Engineering Operations Team', 'Human Resources Department'];\n const DATA = LABELS.map(label => ({ label, value: label }));\n\n async function frames(n = 3) {\n for (let i = 0; i < n; i++) await nextFrame();\n }\n\n const chipsOf = (el: NileVirtualSelect) =>\n Array.from(el.shadowRoot!.querySelectorAll('.select__tags nile-tag')) as HTMLElement[];\n\n async function hiddenSelect(showTooltip: boolean) {\n const host = await fixture<HTMLElement>(html`<div style=\"display: none; width: 600px\">\n <nile-virtual-select multiple ?showtooltip=${showTooltip} .data=${DATA} .value=${LABELS}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await el.updateComplete;\n await frames();\n await el.updateComplete;\n return { host, el };\n }\n\n it('R5a. showtooltip chips measured while hidden get real widths once shown', async () => {\n const { host, el } = await hiddenSelect(true);\n\n host.style.display = 'block';\n await frames(4);\n await el.updateComplete;\n\n const chips = chipsOf(el);\n expect(chips.length).to.equal(2);\n for (const chip of chips) {\n expect(chip.style.width).to.not.equal('0px');\n expect(chip.offsetWidth).to.be.greaterThan(50);\n }\n });\n\n it('R5c. without showtooltip a hidden-then-shown select is unaffected (no inline widths)', async () => {\n const { host, el } = await hiddenSelect(false);\n\n host.style.display = 'block';\n await frames(4);\n\n for (const chip of chipsOf(el)) {\n expect(chip.style.width).to.equal('');\n expect(chip.offsetWidth).to.be.greaterThan(50);\n }\n });\n});\n\ndescribe('NileVirtualSelect 2.0.8 compatibility matrix', () => {\n const DATA = ['a', 'b', 'c'].map(v => ({ label: `L${v}`, value: v }));\n\n async function settle(el: NileVirtualSelect) {\n await el.updateComplete;\n await nextFrame();\n await nextFrame();\n await el.updateComplete;\n }\n\n const chipCount = (el: NileVirtualSelect) => el.shadowRoot!.querySelectorAll('.select__tags nile-tag').length;\n\n function record(el: EventTarget, names: string[]) {\n const seen: string[] = [];\n names.forEach(name => el.addEventListener(name, () => seen.push(name)));\n return seen;\n }\n\n it('CV1. a value set before data arrives is kept, and survives the data being replaced', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .value=${['b']}></nile-virtual-select>`);\n await settle(el);\n el.data = DATA;\n await settle(el);\n expect(el.value).to.deep.equal(['b']);\n expect(chipCount(el)).to.equal(1);\n\n el.data = [...DATA];\n await settle(el);\n expect(el.value).to.deep.equal(['b']);\n expect(chipCount(el)).to.equal(1);\n });\n\n it('CV2. programmatic value updates the chips', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA}></nile-virtual-select>`);\n await settle(el);\n el.value = ['a', 'c'];\n await settle(el);\n expect(chipCount(el)).to.equal(2);\n el.value = [];\n await settle(el);\n expect(chipCount(el)).to.equal(0);\n });\n\n it('CV3. removing a chip updates the value and emits tag-remove', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>`);\n await settle(el);\n const seen = record(el, ['nile-tag-remove']);\n\n const chip = el.shadowRoot!.querySelector('.select__tags nile-tag') as HTMLElement;\n expect(chip, 'select rendered no chips').to.exist;\n chip.dispatchEvent(new CustomEvent('nile-remove', { bubbles: true, composed: true }));\n await settle(el);\n\n expect(el.value).to.deep.equal(['b']);\n expect(seen).to.deep.equal(['nile-tag-remove']);\n });\n\n it('CV4. the clear button empties the value and emits nile-clear', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple clearable .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>`);\n await settle(el);\n const seen = record(el, ['nile-clear']);\n\n const clear = el.shadowRoot!.querySelector('[part~=\"clear-button\"]') as HTMLElement;\n expect(clear, 'clear button rendered').to.exist;\n clear.click();\n await settle(el);\n\n expect(el.value).to.deep.equal([]);\n expect(chipCount(el)).to.equal(0);\n expect(seen).to.include('nile-clear');\n });\n\n it('CV5. form reset restores the value attribute', async () => {\n const form = await fixture<HTMLFormElement>(html`<form>\n <nile-virtual-select name=\"s\" multiple .data=${DATA} value=\"a\"></nile-virtual-select>\n </form>`);\n const el = form.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n el.value = ['c'];\n await settle(el);\n form.reset();\n await settle(el);\n\n expect(el.value).to.deep.equal(['a']);\n });\n\n it('CV6. portal + search: typing in the portalled search keeps the value', async () => {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select multiple portal searchEnabled .data=${DATA} .value=${['a']}></nile-virtual-select>`);\n await settle(el);\n el.open = true;\n await waitUntil(() => document.body.querySelector('.nile-virtual-select-portal-append .select__search nile-input'), 'portal search never rendered');\n const search = document.body.querySelector('.nile-virtual-select-portal-append .select__search nile-input') as any;\n await search.updateComplete;\n\n const input = search.shadowRoot.querySelector('input') as HTMLInputElement;\n input.value = 'Lb';\n input.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n await settle(el);\n expect(el.value).to.deep.equal(['a']);\n\n el.open = false;\n await waitUntil(() => !document.body.querySelector('.nile-virtual-select-portal-append'), 'portal not cleaned up');\n });\n\n it('CV7. reconnecting without showtooltip keeps value and chips', async () => {\n const host = await fixture<HTMLElement>(html`<div style=\"width: 500px\">\n <nile-virtual-select multiple .data=${DATA} .value=${['a', 'b']}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as NileVirtualSelect;\n await settle(el);\n\n el.remove();\n host.appendChild(el);\n await settle(el);\n\n expect(el.value).to.deep.equal(['a', 'b']);\n expect(chipCount(el)).to.equal(2);\n });\n});\n\ndescribe('NileVirtualSelect showtooltip tooltip on sub-pixel truncation', () => {\n const A = 'Engineering Operations';\n const B = 'Human Resources Department And Payroll';\n\n async function frames(n = 5) {\n for (let i = 0; i < n; i++) await nextFrame();\n }\n\n async function mount(width: number, chipMaxWidth: number) {\n const host = await fixture<HTMLElement>(html`<div style=\"width: ${width}px\">\n <nile-virtual-select multiple showtooltip chipminwidth=\"40\" chipmaxwidth=${chipMaxWidth} .data=${[A, B].map(v => ({ label: v, value: v }))} .value=${[A, B]}></nile-virtual-select>\n </div>`);\n const el = host.querySelector('nile-virtual-select') as any;\n await el.updateComplete;\n await frames();\n await el.updateComplete;\n await frames(2);\n return el;\n }\n\n function visiblyCut(chip: HTMLElement) {\n const content = chip.shadowRoot!.querySelector('[part=\"content\"]') as HTMLSlotElement;\n const text = content.assignedNodes({ flatten: true }).find(n => n.textContent?.trim())!;\n const range = document.createRange();\n range.selectNodeContents(text);\n const over = range.getBoundingClientRect().right - content.getBoundingClientRect().right;\n return { cut: over > 1 / 64, over, pxGap: content.scrollWidth - content.clientWidth };\n }\n\n function chipsAndTips(el: any) {\n const chips = Array.from(el.shadowRoot.querySelectorAll('.select__tags nile-tag')) as HTMLElement[];\n const tips = Array.from(el.shadowRoot.querySelectorAll('.select__tags nile-lite-tooltip')) as HTMLElement[];\n return chips\n .map((chip, i) => ({ chip, tipOn: !!tips[i] && !tips[i].hasAttribute('disabled') }))\n .filter(({ chip }) => chip.style.display !== 'none');\n }\n\n it('TT1. every visibly cut chip has its tooltip, every uncut chip has none (sweep across the edge)', async () => {\n const wide = await mount(900, 400);\n const natural = chipsAndTips(wide)[0].chip.offsetWidth;\n\n let subPixelCuts = 0;\n for (let max = natural - 4; max <= natural + 1; max += 0.25) {\n const el = await mount(330, max);\n for (const { chip, tipOn } of chipsAndTips(el)) {\n const { cut, pxGap } = visiblyCut(chip);\n expect(tipOn, `chipMaxWidth ${max}: tooltip ${tipOn} but cut ${cut}`).to.equal(cut);\n if (cut && pxGap <= 1) subPixelCuts++;\n }\n }\n expect(subPixelCuts, 'sweep reached the sub-pixel truncation window').to.be.greaterThan(0);\n });\n\n it('TT2. chips at their natural width get no tooltip', async () => {\n const el = await mount(900, 400);\n for (const { chip, tipOn } of chipsAndTips(el)) {\n expect(visiblyCut(chip).cut).to.be.false;\n expect(tipOn).to.be.false;\n }\n });\n});\n\n\ndescribe('NileVirtualSelect external value while Selected is open', () => {\n const OPTIONS = Array.from({ length: 200 }, (_, i) => ({ value: `option-${i + 1}`, label: `Option ${i + 1}` }));\n let mounted: any;\n\n // Let the dropdown finish hiding before the fixture is torn down, so the virtualizer is not still laying out\n // a list that has already been detached.\n afterEach(async () => {\n if (mounted?.open) {\n const hidden = oneEvent(mounted, 'nile-after-hide');\n mounted.open = false;\n await Promise.race([hidden, aTimeout(1500)]);\n await nextFrame();\n await nextFrame();\n }\n mounted = undefined;\n });\n\n // Known, pre-existing noise from @lit-labs/virtualizer (a \"ResizeObserver loop\" notice, and a detached-list error\n // when the visible list swaps between a short and a long data set). The browser raises them as window errors,\n // which would fail whichever test is running; the assertions below still decide pass or fail. The detached-list\n // errors are matched on message AND a `virtualizer` frame in the stack, so the same message from anywhere else\n // still fails the test. \"ResizeObserver loop\" is a browser notice with no stack.\n const virtualizerErrors = ['ChildPart` has no `parentNode`', \"reading 'insertBefore'\"];\n let previousOnError: OnErrorEventHandler;\n before(() => {\n previousOnError = window.onerror;\n window.onerror = (message, source, lineno, colno, error) => {\n if (typeof message === 'string') {\n if (message.includes('ResizeObserver loop')) return true;\n if (virtualizerErrors.some(known => message.includes(known)) && error?.stack?.toLowerCase().includes('virtualizer')) {\n return true;\n }\n }\n return previousOnError ? previousOnError.call(window, message, source, lineno, colno, error) : false;\n };\n });\n after(() => {\n window.onerror = previousOnError;\n });\n\n async function mount(showTooltip: boolean, value: string[] = ['option-1', 'option-2']) {\n const el = await fixture<NileVirtualSelect>(html`<nile-virtual-select\n multiple\n ?showTooltip=${showTooltip}\n .data=${OPTIONS}\n .value=${value}\n ></nile-virtual-select>`);\n await el.updateComplete;\n const shown = oneEvent(el, 'nile-after-show');\n (el.shadowRoot!.querySelector('[part=\"combobox\"]') as HTMLElement).dispatchEvent(\n new MouseEvent('mousedown', { bubbles: true, composed: true, button: 0 })\n );\n await shown;\n await aTimeout(50);\n mounted = el;\n return el as any;\n }\n\n async function toggleSelected(el: any) {\n (el.shadowRoot.querySelector('.select__footer nile-checkbox') as HTMLElement).click();\n await el.updateComplete;\n await aTimeout(30);\n }\n\n // The standalone select has no sized container here, so its options are not laid out; drive the same\n // selection handler the option click uses.\n async function pick(el: any, value: string) {\n el.handleOptionSelection({ value });\n await el.updateComplete;\n await aTimeout(30);\n }\n\n const values = (el: any) => el.data.map((item: any) => item.value);\n\n it('E1. showtooltip: an external value replace recomputes the Selected list', async () => {\n const el = await mount(true);\n await toggleSelected(el);\n expect(values(el)).to.deep.equal(['option-1', 'option-2']);\n\n el.value = ['option-5'];\n await el.updateComplete;\n await aTimeout(30);\n\n expect(el.showSelected).to.be.true;\n expect(values(el)).to.deep.equal(['option-5']);\n });\n\n it('E2. showtooltip: an external value that adds or removes items follows the Selected list', async () => {\n const el = await mount(true);\n await toggleSelected(el);\n\n el.value = ['option-1', 'option-2', 'option-7'];\n await el.updateComplete;\n await aTimeout(30);\n expect(values(el)).to.deep.equal(['option-1', 'option-2', 'option-7']);\n\n el.value = ['option-2'];\n await el.updateComplete;\n await aTimeout(30);\n expect(values(el)).to.deep.equal(['option-2']);\n });\n\n it('E3. showtooltip: an external empty value leaves the Selected view', async () => {\n const el = await mount(true);\n await toggleSelected(el);\n\n el.value = [];\n await el.updateComplete;\n await aTimeout(30);\n\n expect(el.showSelected).to.be.false;\n expect(el.data.length).to.equal(200);\n });\n\n it('E4. showtooltip: a normal uncheck in the Selected view is not treated as external', async () => {\n const el = await mount(true);\n await toggleSelected(el);\n\n await pick(el, 'option-2');\n\n expect(el.value).to.deep.equal(['option-1']);\n expect(values(el)).to.deep.equal(['option-1', 'option-2']);\n });\n\n it('E5. without showtooltip an external value leaves the Selected list as it was (pre-2.0.9)', async () => {\n const el = await mount(false);\n await toggleSelected(el);\n\n el.value = ['option-5'];\n await el.updateComplete;\n await aTimeout(30);\n\n expect(el.showSelected).to.be.true;\n expect(values(el)).to.deep.equal(['option-1', 'option-2']);\n });\n});\n"]}
@@ -12,7 +12,7 @@
12
12
  // @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is
13
13
  // frozen at this package's build time. The stylesheet is the live source.
14
14
  import { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';
15
- export const NILE_ELEMENTS_VERSION = '2.0.18';
15
+ export const NILE_ELEMENTS_VERSION = '2.0.20';
16
16
  function readStylesheetNileVersion() {
17
17
  if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {
18
18
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.18';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.20';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}