@aquera/nile-elements 0.1.47-beta-1.6 → 0.1.47-beta-2.1
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.
- package/README.md +9 -3
- package/demo/index.html +72 -32
- package/dist/{fixture-7bfb866e.cjs.js → fixture-161dee0b.cjs.js} +2 -2
- package/dist/{fixture-7bfb866e.cjs.js.map → fixture-161dee0b.cjs.js.map} +1 -1
- package/dist/{fixture-2b5b3aba.esm.js → fixture-372df3b0.esm.js} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/internal/form.cjs.js +1 -1
- package/dist/internal/form.cjs.js.map +1 -1
- package/dist/internal/form.esm.js +1 -1
- package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
- package/dist/nile-auto-complete/index.cjs.js +1 -1
- package/dist/nile-auto-complete/index.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -17
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +8 -29
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.esm.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-card/nile-card.test.cjs.js +1 -1
- package/dist/nile-card/nile-card.test.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
- package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.test.esm.js +1 -1
- package/dist/nile-icon/icons/svg/agent.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/agent.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/agent.esm.js +1 -1
- package/dist/nile-icon/icons/svg/api.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/api.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/api.esm.js +1 -1
- package/dist/nile-icon/icons/svg/apply-filter.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/apply-filter.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/apply-filter.esm.js +1 -1
- package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/arrowdropdown.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/arrowdropdown.esm.js +1 -1
- package/dist/nile-icon/icons/svg/arrowdropup.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/arrowdropup.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/arrowdropup.esm.js +1 -1
- package/dist/nile-icon/icons/svg/database.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/database.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/database.esm.js +1 -1
- package/dist/nile-icon/icons/svg/done.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/done.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/done.esm.js +1 -1
- package/dist/nile-icon/icons/svg/dontmap.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/dontmap.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/dontmap.esm.js +1 -1
- package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/doublearrowleft.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/doublearrowleft.esm.js +1 -1
- package/dist/nile-icon/icons/svg/doublearrowright.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/doublearrowright.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/doublearrowright.esm.js +1 -1
- package/dist/nile-icon/icons/svg/drag.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/drag.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/drag.esm.js +1 -1
- package/dist/nile-icon/icons/svg/expand-06.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/expand-06.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/expand-06.esm.js +1 -1
- package/dist/nile-icon/icons/svg/expand.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/expand.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/expand.esm.js +1 -1
- package/dist/nile-icon/icons/svg/integer.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/integer.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/integer.esm.js +1 -1
- package/dist/nile-icon/icons/svg/pluscircle.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/pluscircle.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/pluscircle.esm.js +1 -1
- package/dist/nile-icon/icons/svg/question.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/question.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/question.esm.js +1 -1
- package/dist/nile-icon/icons/svg/resource.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/resource.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/resource.esm.js +1 -1
- package/dist/nile-icon/icons/svg/sendescalation.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/sendescalation.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/sendescalation.esm.js +1 -1
- package/dist/nile-icon/icons/svg/sendreminder.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/sendreminder.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/sendreminder.esm.js +1 -1
- package/dist/nile-icon/icons/svg/timezone.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/timezone.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/timezone.esm.js +1 -1
- package/dist/nile-icon/icons/svg/unmute.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/unmute.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/unmute.esm.js +1 -1
- package/dist/nile-icon/icons/svg/upgrade.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/upgrade.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/upgrade.esm.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.esm.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-link/nile-link.test.cjs.js +1 -1
- package/dist/nile-link/nile-link.test.esm.js +1 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.test.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.css.cjs.js +1 -1
- package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.css.esm.js +1 -1
- package/dist/nile-option/nile-option.esm.js +2 -2
- package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.test.esm.js +1 -1
- package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.test.esm.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
- package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.test.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +2 -2
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.esm.js +2 -2
- package/dist/nile-select/virtual-scroll-helper.cjs.js +2 -0
- package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -0
- package/dist/nile-select/virtual-scroll-helper.esm.js +38 -0
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
- package/dist/nile-virtual-select/index.cjs.js +2 -0
- package/dist/nile-virtual-select/index.cjs.js.map +1 -0
- package/dist/nile-virtual-select/index.esm.js +1 -0
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -0
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -0
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +2 -0
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -0
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +468 -0
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +227 -0
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +2 -0
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +1 -0
- package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +49 -0
- package/dist/nile-virtual-select/renderer.cjs.js +2 -0
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -0
- package/dist/nile-virtual-select/renderer.esm.js +17 -0
- package/dist/nile-virtual-select/search-manager.cjs.js +2 -0
- package/dist/nile-virtual-select/search-manager.cjs.js.map +1 -0
- package/dist/nile-virtual-select/search-manager.esm.js +1 -0
- package/dist/nile-virtual-select/selection-manager.cjs.js +2 -0
- package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -0
- package/dist/nile-virtual-select/selection-manager.esm.js +1 -0
- package/dist/nile-virtual-select/types.cjs.js +2 -0
- package/dist/nile-virtual-select/types.cjs.js.map +1 -0
- package/dist/nile-virtual-select/types.esm.js +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/form.js +2 -2
- package/dist/src/internal/form.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/agent.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/agent.js +1 -1
- package/dist/src/nile-icon/icons/svg/agent.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/api.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/api.js +1 -1
- package/dist/src/nile-icon/icons/svg/api.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/apply-filter.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/apply-filter.js +1 -1
- package/dist/src/nile-icon/icons/svg/apply-filter.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropdown.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropdown.js +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropdown.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropup.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropup.js +1 -1
- package/dist/src/nile-icon/icons/svg/arrowdropup.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/database.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/database.js +1 -1
- package/dist/src/nile-icon/icons/svg/database.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/done.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/done.js +1 -1
- package/dist/src/nile-icon/icons/svg/done.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/dontmap.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/dontmap.js +1 -1
- package/dist/src/nile-icon/icons/svg/dontmap.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowleft.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowleft.js +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowleft.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowright.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowright.js +1 -1
- package/dist/src/nile-icon/icons/svg/doublearrowright.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/drag.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/drag.js +1 -1
- package/dist/src/nile-icon/icons/svg/drag.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/expand-06.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/expand-06.js +1 -1
- package/dist/src/nile-icon/icons/svg/expand-06.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/expand.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/expand.js +1 -1
- package/dist/src/nile-icon/icons/svg/expand.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/integer.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/integer.js +1 -1
- package/dist/src/nile-icon/icons/svg/integer.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/pluscircle.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/pluscircle.js +1 -1
- package/dist/src/nile-icon/icons/svg/pluscircle.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/question.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/question.js +1 -1
- package/dist/src/nile-icon/icons/svg/question.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/resource.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/resource.js +1 -1
- package/dist/src/nile-icon/icons/svg/resource.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/sendescalation.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/sendescalation.js +1 -1
- package/dist/src/nile-icon/icons/svg/sendescalation.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/sendreminder.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/sendreminder.js +1 -1
- package/dist/src/nile-icon/icons/svg/sendreminder.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/timezone.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/timezone.js +1 -1
- package/dist/src/nile-icon/icons/svg/timezone.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/unmute.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/unmute.js +1 -1
- package/dist/src/nile-icon/icons/svg/unmute.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/upgrade.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/upgrade.js +1 -1
- package/dist/src/nile-icon/icons/svg/upgrade.js.map +1 -1
- package/dist/src/nile-option/nile-option.css.js +1 -1
- package/dist/src/nile-option/nile-option.css.js.map +1 -1
- package/dist/src/nile-option/nile-option.d.ts +6 -4
- package/dist/src/nile-option/nile-option.js +20 -14
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +10 -5
- package/dist/src/nile-select/nile-select.js +38 -29
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/virtual-scroll-helper.d.ts +9 -0
- package/dist/src/nile-select/virtual-scroll-helper.js +51 -0
- package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -0
- package/dist/src/nile-virtual-select/index.d.ts +1 -0
- package/dist/src/nile-virtual-select/index.js +2 -0
- package/dist/src/nile-virtual-select/index.js.map +1 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.css.d.ts +12 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +480 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +251 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.js +1158 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +7 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js +317 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -0
- package/dist/src/nile-virtual-select/renderer.d.ts +11 -0
- package/dist/src/nile-virtual-select/renderer.js +48 -0
- package/dist/src/nile-virtual-select/renderer.js.map +1 -0
- package/dist/src/nile-virtual-select/search-manager.d.ts +12 -0
- package/dist/src/nile-virtual-select/search-manager.js +39 -0
- package/dist/src/nile-virtual-select/search-manager.js.map +1 -0
- package/dist/src/nile-virtual-select/selection-manager.d.ts +12 -0
- package/dist/src/nile-virtual-select/selection-manager.js +57 -0
- package/dist/src/nile-virtual-select/selection-manager.js.map +1 -0
- package/dist/src/nile-virtual-select/types.d.ts +45 -0
- package/dist/src/nile-virtual-select/types.js +8 -0
- package/dist/src/nile-virtual-select/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/virtualize-a4a40d96.esm.js +22 -0
- package/dist/virtualize-b6a2fbe0.cjs.js +18 -0
- package/dist/virtualize-b6a2fbe0.cjs.js.map +1 -0
- package/package.json +1 -2
- package/src/index.ts +3 -1
- package/src/internal/form.ts +2 -2
- package/src/nile-icon/icons/svg/agent.ts +1 -1
- package/src/nile-icon/icons/svg/api.ts +1 -1
- package/src/nile-icon/icons/svg/apply-filter.ts +1 -1
- package/src/nile-icon/icons/svg/arrowdropdown.ts +1 -1
- package/src/nile-icon/icons/svg/arrowdropup.ts +1 -1
- package/src/nile-icon/icons/svg/database.ts +1 -1
- package/src/nile-icon/icons/svg/done.ts +1 -1
- package/src/nile-icon/icons/svg/dontmap.ts +1 -1
- package/src/nile-icon/icons/svg/doublearrowleft.ts +1 -1
- package/src/nile-icon/icons/svg/doublearrowright.ts +1 -1
- package/src/nile-icon/icons/svg/drag.ts +1 -1
- package/src/nile-icon/icons/svg/expand-06.ts +1 -1
- package/src/nile-icon/icons/svg/expand.ts +1 -1
- package/src/nile-icon/icons/svg/integer.ts +1 -1
- package/src/nile-icon/icons/svg/pluscircle.ts +1 -1
- package/src/nile-icon/icons/svg/question.ts +1 -1
- package/src/nile-icon/icons/svg/resource.ts +1 -1
- package/src/nile-icon/icons/svg/sendescalation.ts +1 -1
- package/src/nile-icon/icons/svg/sendreminder.ts +1 -1
- package/src/nile-icon/icons/svg/timezone.ts +1 -1
- package/src/nile-icon/icons/svg/unmute.ts +1 -1
- package/src/nile-icon/icons/svg/upgrade.ts +1 -1
- package/src/nile-option/nile-option.css.ts +1 -1
- package/src/nile-option/nile-option.ts +16 -10
- package/src/nile-select/nile-select.ts +34 -23
- package/src/nile-select/virtual-scroll-helper.ts +56 -0
- package/src/nile-virtual-select/index.ts +1 -0
- package/src/nile-virtual-select/nile-virtual-select.css.ts +482 -0
- package/src/nile-virtual-select/nile-virtual-select.test.ts +390 -0
- package/src/nile-virtual-select/nile-virtual-select.ts +1234 -0
- package/src/nile-virtual-select/renderer.ts +65 -0
- package/src/nile-virtual-select/search-manager.ts +48 -0
- package/src/nile-virtual-select/selection-manager.ts +64 -0
- package/src/nile-virtual-select/types.ts +48 -0
- package/vscode-html-custom-data.json +228 -6
- package/publish.sh +0 -62
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "
|
5
|
+
export default "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjEuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIJIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQgMjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zz48cGF0aCBkPSJNMTIsMC4yQzUuNSwwLjIsMC4yLDUuNSwwLjIsMTJjMCw2LjUsNS4zLDExLjgsMTEuOCwxMS44YzYuNSwwLDExLjgtNS4zLDExLjgtMTEuOEMyMy44LDUuNSwxOC41LDAuMiwxMiwwLjJ6IE0xMiwyMi4yCQlDNi4zLDIyLjIsMS44LDE3LjcsMS44LDEyQzEuOCw2LjMsNi4zLDEuOCwxMiwxLjhjNS43LDAsMTAuMiw0LjYsMTAuMiwxMC4yQzIyLjIsMTcuNywxNy43LDIyLjIsMTIsMjIuMnoiLz48cGF0aCBkPSJNMTIsNS4zYy0yLjIsMC00LDEuOC00LDRoMS41YzAtMS40LDEuMS0yLjUsMi41LTIuNWMxLjQsMCwyLjUsMS4xLDIuNSwyLjVjMCwxLjQtMC43LDItMS41LDIuOGMtMC44LDAuNy0xLjgsMS42LTEuOCwzLjIJCWgxLjVjMC0wLjksMC41LTEuMywxLjMtMi4xYzAuOS0wLjgsMi0xLjgsMi0zLjlDMTYsNy4yLDE0LjIsNS4zLDEyLDUuM3oiLz48cmVjdCB4PSIxMS4zIiB5PSIxNi40IiB3aWR0aD0iMS40IiBoZWlnaHQ9IjEuNCIvPjwvZz48L3N2Zz4=";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "
|
5
|
+
export default "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PHBhdGggZD0iTTE1LDE1SDFWNS43NGg0LjZMNy42Nyw3LjYySDE1Wk0yLDE0SDE0VjguNjJINy4yOEw1LjIsNi43NEgyWiIgc3R5bGU9ImZpbGw6IzAyMDIwMiIvPjxwb2x5Z29uIHBvaW50cz0iMTMuOTkgNy44NiAxMi45OSA3Ljg2IDEyLjk5IDIgNCAyIDQgNS45OSAzIDUuOTkgMyAxIDEzLjk5IDEgMTMuOTkgNy44NiIvPjxyZWN0IHg9IjUuOTkiIHk9IjMuNTUiIHdpZHRoPSI1LjAzIiBoZWlnaHQ9IjEiLz48L2c+PC9zdmc+";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "
|
5
|
+
export default "PHN2ZyBpZD0iZXNjYWxhdGlvbiIgZGF0YS1uYW1lPSJlc2NhbGF0aW9uMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxkZWZzPjwvZGVmcz48cGF0aCBkPSJNOCw2LjU1QTIuNzksMi43OSwwLDEsMCw1LjI2LDMuNzcsMi43OCwyLjc4LDAsMCwwLDgsNi41NVpNOCwxLjkxQTEuODYsMS44NiwwLDEsMSw2LjE4LDMuNzcsMS44NSwxLjg1LDAsMCwxLDgsMS45MVoiLz48cGF0aCBkPSJNMi45NCwxMS43NGEyLjc0LDIuNzQsMCwwLDEsMy0yLjQxSDhWOC40SDUuOTFBMy42NiwzLjY2LDAsMCwwLDIsMTEuNzRWMTQuOUg4VjE0SDIuOTRaIi8+PHBvbHlnb24gcG9pbnRzPSI4LjA0IDEwLjgzIDE0LjQ1IDguNDkgMTIuMDkgMTQuOSAxMC44IDEyLjEzIDguMDQgMTAuODMiLz48L3N2Zz4=";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "
|
5
|
+
export default "PHN2ZyBpZD0icmVtaW5kZXIiIGRhdGEtbmFtZT0icmVtaW5kZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwb2x5Z29uIHBvaW50cz0iNy4wMyAxMi42NSAxLjA5IDEyLjY1IDEuMDkgMS43MyAxNC42OSAxLjczIDE0LjY5IDcuMDkgMTMuNjkgNy4wOSAxMy42OSAyLjczIDIuMDkgMi43MyAyLjA5IDExLjY1IDcuMDMgMTEuNjUgNy4wMyAxMi42NSIvPjxwYXRoIGQ9Ik0xMS42Myw4LjA1QTMuMzMsMy4zMywwLDEsMCwxNSwxMS4zOCwzLjMzLDMuMzMsMCwwLDAsMTEuNjMsOC4wNVpNMTMuMTksMTNsLTIuMDYtMS4xNFY5LjYxaDF2MS42NGwxLjU0Ljg1WiIvPjxwYXRoIGQ9Ik04LDcuNjVhMi41NCwyLjU0LDAsMCwxLTEuMS0uMjZMMS4zNyw0LjY4bC40NC0uOUw3LjMyLDYuNWExLjU2LDEuNTYsMCwwLDAsMS4zNSwwTDE0LDMuNzlsLjQ1Ljg5LTUuMywyLjdBMi41NSwyLjU1LDAsMCwxLDgsNy42NVoiLz48cmVjdCB4PSIwLjc3IiB5PSI5LjY4IiB3aWR0aD0iNS41NyIgaGVpZ2h0PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi4xNiA1LjUpIHJvdGF0ZSgtNDUpIi8+PC9zdmc+";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "
|
5
|
+
export default "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjYuNC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zz48cGF0aCBkPSJNMTQuNCw4LjdjMC4xLTAuNCwwLjEtMC44LDAuMS0xLjJjMC0zLjktMy4xLTctNy03Yy0zLjksMC03LDMuMS03LDdjMCwzLjksMy4xLDcsNyw3YzAuNCwwLDAuOC0wLjEsMS4yLTAuMQkJYzAuNywwLjcsMS43LDEuMSwyLjgsMS4xYzIuMiwwLDQtMS44LDQtNEMxNS41LDEwLjQsMTUuMSw5LjQsMTQuNCw4Ljd6IE0xMy41LDcuNWMwLDAuMiwwLDAuNC0wLjEsMC41Yy0wLjYtMC4zLTEuMi0wLjUtMS45LTAuNQkJYy0wLjEsMC0wLjIsMC0wLjMsMGMwLDAsMCwwLDAsMGMwLTAuNy0wLjEtMS40LTAuMi0yaDIuMUMxMy40LDYuMSwxMy41LDYuOCwxMy41LDcuNXogTTguMSw5LjVINC45Yy0wLjEtMC42LTAuMi0xLjMtMC4yLTIJCXMwLjEtMS40LDAuMi0yaDUuMmMwLjEsMC42LDAuMiwxLjMsMC4yLDJjMCwwLjEsMCwwLjEsMCwwLjJDOS4zLDgsOC41LDguNyw4LjEsOS41eiBNMTIuNyw0LjVoLTEuOGMtMC4yLTEtMC42LTEuOS0xLjEtMi41CQlDMTEsMi41LDEyLDMuNCwxMi43LDQuNXogTTcuNSwxLjVjMC45LDAsMS44LDEuMSwyLjQsM0g1LjFDNS43LDIuNiw2LjYsMS41LDcuNSwxLjV6IE01LjIsMkM0LjcsMi42LDQuNCwzLjUsNC4xLDQuNUgyLjMJCUMzLDMuNCw0LDIuNSw1LjIsMnogTTEuNSw3LjVjMC0wLjcsMC4xLTEuNCwwLjQtMmgyLjFjLTAuMSwwLjYtMC4yLDEuMy0wLjIsMnMwLjEsMS40LDAuMiwySDEuOUMxLjYsOC45LDEuNSw4LjIsMS41LDcuNXoJCSBNMi4zLDEwLjVoMS44YzAuMiwxLDAuNiwxLjksMS4xLDIuNUM0LDEyLjUsMywxMS42LDIuMywxMC41eiBNNS4xLDEwLjVoMi41Yy0wLjEsMC4zLTAuMSwwLjctMC4xLDFjMCwwLjcsMC4yLDEuMywwLjUsMS45CQljLTAuMiwwLjEtMC4zLDAuMS0wLjUsMC4xQzYuNiwxMy41LDUuNywxMi40LDUuMSwxMC41eiBNMTEuNSwxNC41Yy0xLjcsMC0zLTEuMy0zLTNzMS4zLTMsMy0zczMsMS4zLDMsM1MxMy4yLDE0LjUsMTEuNSwxNC41eiIvPjxwb2x5Z29uIHBvaW50cz0iMTEuNCwxMi40IDEzLDEwIDEwLjYsMTEuNiAJIi8+PC9nPjwvc3ZnPg==";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+
|
5
|
+
export default "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PGRlZnM+PC9kZWZzPjxwYXRoIGQ9Ik0xNC40NywxMy4xMmgtOXYtMWg3LjMxYTguNDksOC40OSwwLDAsMS0uODQtMy42MVY1LjY1aDFWOC41MUE3LjYsNy42LDAsMCwwLDE0LDEyLjM2WiIvPjxwYXRoIGQ9Ik0zLjQzLDEyLjg4bC0uODUtLjUyQTcuNzEsNy43MSwwLDAsMCwzLjY4LDguNVY1LjU3YTQuNjEsNC42MSwwLDAsMSw4LjcxLTIuMTJsLS44OS40NUEzLjYxLDMuNjEsMCwwLDAsNC42OCw1LjU3VjguNTFBOC42NSw4LjY1LDAsMCwxLDMuNDMsMTIuODhaIi8+PHBhdGggZD0iTTYuNjMsMTMuOGExLjc2LDEuNzYsMCwwLDAsMy4zMiwwWiIvPjxyZWN0IHg9Ii0wLjQiIHk9IjcuMTIiIHdpZHRoPSIxNi43OSIgaGVpZ2h0PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy4wNSA3Ljg5KSByb3RhdGUoLTQ1KSIvPjwvc3ZnPg==";
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Do not edit directly
|
3
3
|
*/
|
4
4
|
|
5
|
-
export default "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+
|
5
|
+
export default "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTE2LDkuNDJ2LTIuODRsLTIuMjgtLjM4Yy0uMS0uMzQtLjI0LS42OC0uNC0xbDEuMzQtMS44OC0yLTItMS44OSwxLjM2Yy0uMzItLjE2LS42Ni0uMy0xLS40bC0uMzUtMi4yOGgtMi44NGwtLjM4LDIuMjhjLS4zNCwuMS0uNjgsLjI0LTEsLjRsLTEuODUtMS4zNEwxLjM1LDMuMzRsMS4zMywxLjg5Yy0uMTYsLjMyLS4zLC42Ni0uNCwxbC0yLjI4LC4zNXYyLjg0bDIuMjgsLjM4Yy4xLC4zNCwuMjQsLjY4LC40LDFsLTEuMzQsMS44NSwyLDIsMS44OC0xLjM0Yy4zMiwuMTYsLjY2LC4zLDEsLjRsLjM2LDIuMjloMi44NGwuMzgtMi4yOGMuMzQtLjEsLjY4LS4yNCwxLS40bDEuODgsMS4zNSwyLTItMS4zNC0xLjg4Yy4xNi0uMzIsLjMtLjY2LC40LTFsMi4yNi0uMzdabS0yLjY0LDMuMTJsLS44MiwuODEtMS43Mi0xLjIzLS4yOCwuMTdjLS40MSwuMjQtLjg0LC40Mi0xLjMsLjU0bC0uMzIsLjA4LS4zNCwyLjA5aC0xLjE2bC0uMzUtMi4wOC0uMzItLjA4Yy0uNDYtLjEyLS45LS4zLTEuMzEtLjU0bC0uMjgtLjE3LTEuNywxLjIzLS44MS0uODEsMS4yMy0xLjcyLS4xNy0uMjhjLS4yNC0uNDEtLjQyLS44NS0uNTQtMS4zMWwtLjA4LS4zMS0yLjA5LS4zNXYtMS4xNmwyLjA4LS4zNSwuMDgtLjMyYy4xMi0uNDUsLjMtLjg5LC41NC0xLjI5bC4xNy0uMjgtMS4yMy0xLjcyLC44MS0uODEsMS43MiwxLjIyLC4yOC0uMTdjLjQxLS4yNCwuODQtLjQyLDEuMy0uNTRsLjMyLS4wOCwuMzUtMi4wOGgxLjE2bC4zNSwyLjA4LC4zMiwuMDhjLjQ2LC4xMiwuODksLjMsMS4zLC41NGwuMjgsLjE3LDEuNzItMS4yMywuODEsLjgxLTEuMjMsMS43MiwuMTcsLjI4Yy4yNCwuNDEsLjQyLC44NSwuNTQsMS4zMWwuMDgsLjMyLDIuMDgsLjM0djEuMTZsLTIuMDgsLjM1LS4wOCwuMzJjLS4xMiwuNDYtLjMsLjktLjU0LDEuMzFsLS4xNywuMjgsMS4yMywxLjdaIi8+PHBvbHlnb24gcG9pbnRzPSI0LjY1IDguMzYgNS4zNSA5LjA2IDcuNSA2LjkyIDcuNSAxMS4yMSA4IDExLjIxIDguNSAxMS4yMSA4LjUgNi45MiAxMC42NSA5LjA2IDExLjM1IDguMzYgOCA1IDQuNjUgOC4zNiIvPjwvc3ZnPg==";
|
@@ -12,7 +12,7 @@ import { classMap } from 'lit/directives/class-map.js';
|
|
12
12
|
import { customElement, property, query, state } from 'lit/decorators.js';
|
13
13
|
import { html } from 'lit';
|
14
14
|
import { watch } from '../internal/watch';
|
15
|
-
import type { CSSResultGroup
|
15
|
+
import type { CSSResultGroup } from 'lit';
|
16
16
|
import NileElement from '../internal/nile-element';
|
17
17
|
import '../nile-checkbox';
|
18
18
|
|
@@ -49,7 +49,6 @@ export class NileOption extends NileElement {
|
|
49
49
|
@query('.option__label') defaultSlot: HTMLSlotElement;
|
50
50
|
|
51
51
|
@state() current = false; // the user has keyed into the option, but hasn't selected it yet (shows a highlight)
|
52
|
-
@state() selected = false; // the option is selected and has aria-selected="true"
|
53
52
|
@state() hasHover = false; // we need this because Safari doesn't honor :hover styles while dragging
|
54
53
|
@state() hidden = false; // the option is hidden
|
55
54
|
@state() isMultipleSelect = false;
|
@@ -61,18 +60,22 @@ export class NileOption extends NileElement {
|
|
61
60
|
*/
|
62
61
|
@property({ reflect: true }) value = '';
|
63
62
|
|
64
|
-
@property({ type: Boolean }) showCheckbox: boolean = false;
|
65
|
-
|
66
63
|
/** Draws the option in a disabled state, preventing selection. */
|
67
64
|
@property({ type: Boolean, reflect: true }) disabled = false;
|
68
65
|
|
66
|
+
/** Forces the option to display in multiple select mode with checkboxes. */
|
67
|
+
@property({ type: Boolean, reflect: true }) multiple = false;
|
68
|
+
|
69
|
+
/** Indicates whether the option is selected. */
|
70
|
+
@property({ type: Boolean, reflect: true }) selected = false;
|
71
|
+
|
69
72
|
connectedCallback() {
|
70
73
|
super.connectedCallback();
|
71
74
|
this.setAttribute('role', 'option');
|
72
75
|
this.setAttribute('aria-selected', 'false');
|
73
76
|
|
74
|
-
// Find the closest parent 'nile-select' element
|
75
|
-
const parentSelect = this.closest('nile-select');
|
77
|
+
// Find the closest parent 'nile-select' or 'nile-virtual-select' element
|
78
|
+
const parentSelect = this.closest('nile-select') || this.closest('nile-virtual-select');
|
76
79
|
|
77
80
|
// Check if the parent has the 'multiple' attribute
|
78
81
|
if (parentSelect && parentSelect.hasAttribute('multiple')) {
|
@@ -84,11 +87,9 @@ export class NileOption extends NileElement {
|
|
84
87
|
this.isMultipleSelect = Boolean(multipleValue);
|
85
88
|
}
|
86
89
|
}
|
87
|
-
}
|
88
90
|
|
89
|
-
|
90
|
-
|
91
|
-
this.isMultipleSelect = this.showCheckbox;
|
91
|
+
if (this.multiple) {
|
92
|
+
this.isMultipleSelect = true;
|
92
93
|
}
|
93
94
|
}
|
94
95
|
|
@@ -126,6 +127,11 @@ export class NileOption extends NileElement {
|
|
126
127
|
this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
|
127
128
|
}
|
128
129
|
|
130
|
+
@watch('multiple')
|
131
|
+
handleMultipleChange() {
|
132
|
+
this.isMultipleSelect = this.multiple;
|
133
|
+
}
|
134
|
+
|
129
135
|
@watch('value')
|
130
136
|
handleValueChange() {
|
131
137
|
// Ensure the value is a string. This ensures the next line doesn't error and allows framework users to pass numbers
|
@@ -29,12 +29,14 @@ import { scrollIntoView } from '../internal/scroll';
|
|
29
29
|
import { waitForEvent } from '../internal/event';
|
30
30
|
import { watch } from '../internal/watch';
|
31
31
|
import NileElement from '../internal/nile-element';
|
32
|
-
import type { CSSResultGroup
|
32
|
+
import type { CSSResultGroup } from 'lit';
|
33
33
|
import type { NileFormControl } from '../internal/nile-element';
|
34
34
|
import type NileOption from '../nile-option/nile-option';
|
35
35
|
import type NilePopup from '../nile-popup/nile-popup';
|
36
36
|
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
37
37
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
38
|
+
import '../nile-virtual-select/nile-virtual-select';
|
39
|
+
import { VirtualScrollHelper } from './virtual-scroll-helper';
|
38
40
|
|
39
41
|
type NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;
|
40
42
|
|
@@ -53,6 +55,7 @@ type NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;
|
|
53
55
|
* @dependency nile-icon
|
54
56
|
* @dependency nile-popup
|
55
57
|
* @dependency nile-tag
|
58
|
+
* @dependency nile-virtual-select
|
56
59
|
*
|
57
60
|
* @slot - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.
|
58
61
|
* @slot label - The input's label. Alternatively, you can use the `label` attribute.
|
@@ -91,14 +94,15 @@ type NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;
|
|
91
94
|
*/
|
92
95
|
|
93
96
|
@customElement('nile-select')
|
94
|
-
export class NileSelect extends NileElement implements NileFormControl
|
97
|
+
export class NileSelect extends NileElement implements NileFormControl{
|
95
98
|
static styles: CSSResultGroup = styles;
|
96
99
|
|
97
100
|
// protected override BUBBLES=false;
|
98
101
|
|
99
|
-
private
|
100
|
-
|
101
|
-
|
102
|
+
private formControlController: FormControlController | null;
|
103
|
+
private virtualScrollHelper!: VirtualScrollHelper;
|
104
|
+
|
105
|
+
|
102
106
|
private readonly hasSlotController = new HasSlotController(
|
103
107
|
this,
|
104
108
|
'help-text',
|
@@ -232,6 +236,12 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
232
236
|
|
233
237
|
@property({ type: String }) noResultsMessage: string = 'No results found';
|
234
238
|
|
239
|
+
@property({ attribute: false }) renderItemFunction: (item: any) => string = (item: any) => item?.label || item?.name || item;
|
240
|
+
|
241
|
+
@property({ type: Array }) data: any = [];
|
242
|
+
|
243
|
+
@property({ type: Boolean }) enableVirtualScroll = false;
|
244
|
+
|
235
245
|
/** Gets the validity state object */
|
236
246
|
get validity() {
|
237
247
|
return this.valueInput?.validity;
|
@@ -242,8 +252,18 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
242
252
|
return this.valueInput?.validationMessage;
|
243
253
|
}
|
244
254
|
|
255
|
+
constructor() {
|
256
|
+
super();
|
257
|
+
}
|
258
|
+
|
245
259
|
connectedCallback() {
|
246
260
|
super.connectedCallback();
|
261
|
+
if(!this.enableVirtualScroll) {
|
262
|
+
this.formControlController = new FormControlController(this, {
|
263
|
+
assumeInteractionOn: ['nile-blur', 'nile-input'],
|
264
|
+
});
|
265
|
+
}
|
266
|
+
this.virtualScrollHelper = new VirtualScrollHelper(this);
|
247
267
|
this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
|
248
268
|
this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
|
249
269
|
this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
|
@@ -258,19 +278,6 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
258
278
|
this.emit('nile-destroy');
|
259
279
|
}
|
260
280
|
|
261
|
-
protected updated(_changedProperties: PropertyValues): void {
|
262
|
-
if(_changedProperties.has('multiple')) {
|
263
|
-
this.setCheckBoxInOption(this.multiple);
|
264
|
-
}
|
265
|
-
}
|
266
|
-
|
267
|
-
setCheckBoxInOption(checked: boolean): void {
|
268
|
-
const options = this.getAllOptions();
|
269
|
-
options.forEach((option: NileOption) => {
|
270
|
-
option.showCheckbox = checked;
|
271
|
-
})
|
272
|
-
}
|
273
|
-
|
274
281
|
private addOpenListeners() {
|
275
282
|
document.addEventListener('focusin', this.handleDocumentFocusIn);
|
276
283
|
document.addEventListener('keydown', this.handleDocumentKeyDown);
|
@@ -747,7 +754,7 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
747
754
|
|
748
755
|
// Update validity
|
749
756
|
this.updateComplete.then(() => {
|
750
|
-
this.formControlController
|
757
|
+
this.formControlController?.updateValidity();
|
751
758
|
});
|
752
759
|
|
753
760
|
this.calculateTotalWidthOfTags();
|
@@ -798,8 +805,8 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
798
805
|
}
|
799
806
|
|
800
807
|
private handleInvalid(event: Event) {
|
801
|
-
this.formControlController
|
802
|
-
this.formControlController
|
808
|
+
this.formControlController?.setValidity(false);
|
809
|
+
this.formControlController?.emitInvalidEvent(event);
|
803
810
|
}
|
804
811
|
|
805
812
|
@watch('disabled', { waitUntilFirstUpdate: true })
|
@@ -902,7 +909,7 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
902
909
|
|
903
910
|
/** Gets the associated form, if one exists. */
|
904
911
|
getForm(): HTMLFormElement | null {
|
905
|
-
return this.formControlController
|
912
|
+
return this.formControlController?.getForm() || null;
|
906
913
|
}
|
907
914
|
|
908
915
|
/** Checks for validity and shows the browser's validation message if the control is invalid. */
|
@@ -913,7 +920,7 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
913
920
|
/** Sets a custom validation message. Pass an empty string to restore validity. */
|
914
921
|
setCustomValidity(message: string) {
|
915
922
|
this.valueInput.setCustomValidity(message);
|
916
|
-
this.formControlController
|
923
|
+
this.formControlController?.updateValidity();
|
917
924
|
}
|
918
925
|
|
919
926
|
/** Sets focus on the control. */
|
@@ -986,6 +993,10 @@ export class NileSelect extends NileElement implements NileFormControl {
|
|
986
993
|
}
|
987
994
|
|
988
995
|
render() {
|
996
|
+
if(this.enableVirtualScroll) {
|
997
|
+
return this.virtualScrollHelper.renderVirtualizedContent();
|
998
|
+
}
|
999
|
+
|
989
1000
|
const hasLabelSlot = this.hasSlotController.test('label');
|
990
1001
|
const hasHelpTextSlot = this.hasSlotController.test('help-text');
|
991
1002
|
const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { html } from 'lit';
|
2
|
+
import type NileElement from '../internal/nile-element';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Helper class to manage virtual scroll functionality for nile-select component
|
6
|
+
*/
|
7
|
+
export class VirtualScrollHelper {
|
8
|
+
private component: NileElement;
|
9
|
+
|
10
|
+
constructor(component: NileElement) {
|
11
|
+
this.component = component;
|
12
|
+
}
|
13
|
+
|
14
|
+
renderVirtualizedContent(): any {
|
15
|
+
const component = this.component as any;
|
16
|
+
|
17
|
+
return html`
|
18
|
+
<div class="virtual-select">
|
19
|
+
<nile-virtual-select
|
20
|
+
.name=${component.name}
|
21
|
+
.value=${component.value}
|
22
|
+
.placeholder=${component.placeholder}
|
23
|
+
.size=${component.size}
|
24
|
+
.searchEnabled=${component.searchEnabled}
|
25
|
+
.internalSearchPlaceHolder=${component.internalSearchPlaceHolder}
|
26
|
+
.disableLocalSearch=${component.disableLocalSearch}
|
27
|
+
.optionsLoading=${component.optionsLoading}
|
28
|
+
.multiple=${component.multiple}
|
29
|
+
.helpText=${component.helpText}
|
30
|
+
.errorMessage=${component.errorMessage}
|
31
|
+
.warning=${component.warning}
|
32
|
+
.error=${component.error}
|
33
|
+
.success=${component.success}
|
34
|
+
.disabled=${component.disabled}
|
35
|
+
.clearable=${component.clearable}
|
36
|
+
.hoist=${component.hoist}
|
37
|
+
.filled=${component.filled}
|
38
|
+
.pill=${component.pill}
|
39
|
+
.label=${component.label}
|
40
|
+
.placement=${component.placement}
|
41
|
+
.form=${component.form}
|
42
|
+
.required=${component.required}
|
43
|
+
.showNoResults=${component.showNoResults}
|
44
|
+
.noResultsMessage=${component.noResultsMessage}
|
45
|
+
.renderItemFunction=${component.renderItemFunction}
|
46
|
+
.blockValueChange=${component.blockValueChange}
|
47
|
+
.noWidthSync=${component.noWidthSync}
|
48
|
+
.maxOptionsVisible=${component.maxOptionsVisible}
|
49
|
+
.data=${component.data}
|
50
|
+
>
|
51
|
+
<slot name="prefix" slot="prefix"></slot>
|
52
|
+
</nile-virtual-select>
|
53
|
+
</div>
|
54
|
+
`;
|
55
|
+
}
|
56
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NileVirtualSelect } from './nile-virtual-select';
|