@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,4 +1,4 @@
1
- import { aTimeout, expect, fixture, html, nextFrame, waitUntil } from '@open-wc/testing';
1
+ import { aTimeout, expect, fixture, html, nextFrame, oneEvent, waitUntil } from '@open-wc/testing';
2
2
  import './nile-virtual-select';
3
3
  import '../nile-input/nile-input';
4
4
  describe('NileVirtualSelect', () => {
@@ -672,4 +672,118 @@ describe('NileVirtualSelect showtooltip tooltip on sub-pixel truncation', () =>
672
672
  }
673
673
  });
674
674
  });
675
+ describe('NileVirtualSelect external value while Selected is open', () => {
676
+ const OPTIONS = Array.from({ length: 200 }, (_, i) => ({ value: `option-${i + 1}`, label: `Option ${i + 1}` }));
677
+ let mounted;
678
+ // Let the dropdown finish hiding before the fixture is torn down, so the virtualizer is not still laying out
679
+ // a list that has already been detached.
680
+ afterEach(async () => {
681
+ if (mounted?.open) {
682
+ const hidden = oneEvent(mounted, 'nile-after-hide');
683
+ mounted.open = false;
684
+ await Promise.race([hidden, aTimeout(1500)]);
685
+ await nextFrame();
686
+ await nextFrame();
687
+ }
688
+ mounted = undefined;
689
+ });
690
+ // Known, pre-existing noise from @lit-labs/virtualizer (a "ResizeObserver loop" notice, and a detached-list error
691
+ // when the visible list swaps between a short and a long data set). The browser raises them as window errors,
692
+ // which would fail whichever test is running; the assertions below still decide pass or fail. The detached-list
693
+ // errors are matched on message AND a `virtualizer` frame in the stack, so the same message from anywhere else
694
+ // still fails the test. "ResizeObserver loop" is a browser notice with no stack.
695
+ const virtualizerErrors = ['ChildPart` has no `parentNode`', "reading 'insertBefore'"];
696
+ let previousOnError;
697
+ before(() => {
698
+ previousOnError = window.onerror;
699
+ window.onerror = (message, source, lineno, colno, error) => {
700
+ if (typeof message === 'string') {
701
+ if (message.includes('ResizeObserver loop'))
702
+ return true;
703
+ if (virtualizerErrors.some(known => message.includes(known)) && error?.stack?.toLowerCase().includes('virtualizer')) {
704
+ return true;
705
+ }
706
+ }
707
+ return previousOnError ? previousOnError.call(window, message, source, lineno, colno, error) : false;
708
+ };
709
+ });
710
+ after(() => {
711
+ window.onerror = previousOnError;
712
+ });
713
+ async function mount(showTooltip, value = ['option-1', 'option-2']) {
714
+ const el = await fixture(html `<nile-virtual-select
715
+ multiple
716
+ ?showTooltip=${showTooltip}
717
+ .data=${OPTIONS}
718
+ .value=${value}
719
+ ></nile-virtual-select>`);
720
+ await el.updateComplete;
721
+ const shown = oneEvent(el, 'nile-after-show');
722
+ el.shadowRoot.querySelector('[part="combobox"]').dispatchEvent(new MouseEvent('mousedown', { bubbles: true, composed: true, button: 0 }));
723
+ await shown;
724
+ await aTimeout(50);
725
+ mounted = el;
726
+ return el;
727
+ }
728
+ async function toggleSelected(el) {
729
+ el.shadowRoot.querySelector('.select__footer nile-checkbox').click();
730
+ await el.updateComplete;
731
+ await aTimeout(30);
732
+ }
733
+ // The standalone select has no sized container here, so its options are not laid out; drive the same
734
+ // selection handler the option click uses.
735
+ async function pick(el, value) {
736
+ el.handleOptionSelection({ value });
737
+ await el.updateComplete;
738
+ await aTimeout(30);
739
+ }
740
+ const values = (el) => el.data.map((item) => item.value);
741
+ it('E1. showtooltip: an external value replace recomputes the Selected list', async () => {
742
+ const el = await mount(true);
743
+ await toggleSelected(el);
744
+ expect(values(el)).to.deep.equal(['option-1', 'option-2']);
745
+ el.value = ['option-5'];
746
+ await el.updateComplete;
747
+ await aTimeout(30);
748
+ expect(el.showSelected).to.be.true;
749
+ expect(values(el)).to.deep.equal(['option-5']);
750
+ });
751
+ it('E2. showtooltip: an external value that adds or removes items follows the Selected list', async () => {
752
+ const el = await mount(true);
753
+ await toggleSelected(el);
754
+ el.value = ['option-1', 'option-2', 'option-7'];
755
+ await el.updateComplete;
756
+ await aTimeout(30);
757
+ expect(values(el)).to.deep.equal(['option-1', 'option-2', 'option-7']);
758
+ el.value = ['option-2'];
759
+ await el.updateComplete;
760
+ await aTimeout(30);
761
+ expect(values(el)).to.deep.equal(['option-2']);
762
+ });
763
+ it('E3. showtooltip: an external empty value leaves the Selected view', async () => {
764
+ const el = await mount(true);
765
+ await toggleSelected(el);
766
+ el.value = [];
767
+ await el.updateComplete;
768
+ await aTimeout(30);
769
+ expect(el.showSelected).to.be.false;
770
+ expect(el.data.length).to.equal(200);
771
+ });
772
+ it('E4. showtooltip: a normal uncheck in the Selected view is not treated as external', async () => {
773
+ const el = await mount(true);
774
+ await toggleSelected(el);
775
+ await pick(el, 'option-2');
776
+ expect(el.value).to.deep.equal(['option-1']);
777
+ expect(values(el)).to.deep.equal(['option-1', 'option-2']);
778
+ });
779
+ it('E5. without showtooltip an external value leaves the Selected list as it was (pre-2.0.9)', async () => {
780
+ const el = await mount(false);
781
+ await toggleSelected(el);
782
+ el.value = ['option-5'];
783
+ await el.updateComplete;
784
+ await aTimeout(30);
785
+ expect(el.showSelected).to.be.true;
786
+ expect(values(el)).to.deep.equal(['option-1', 'option-2']);
787
+ });
788
+ });
675
789
  //# sourceMappingURL=nile-virtual-select.test.js.map