Bug fixes
This commit is contained in:
parent
51dccfa1d9
commit
f2d14ee8ee
39
components/dist/chips.js
vendored
39
components/dist/chips.js
vendored
@ -46,7 +46,6 @@ smChips.innerHTML = `
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: rgba(var(--background-color,(255,255,255)), 1);
|
background: rgba(var(--background-color,(255,255,255)), 1);
|
||||||
transition: opacity 0.2s;
|
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
.nav-button--left{
|
.nav-button--left{
|
||||||
@ -64,7 +63,6 @@ smChips.innerHTML = `
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
transition: opacity 0.2s;
|
|
||||||
}
|
}
|
||||||
.cover--left{
|
.cover--left{
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
@ -205,32 +203,20 @@ customElements.define('sm-chips', class extends HTMLElement {
|
|||||||
|
|
||||||
const slot = this.shadowRoot.querySelector('slot');
|
const slot = this.shadowRoot.querySelector('slot');
|
||||||
slot.addEventListener('slotchange', e => {
|
slot.addEventListener('slotchange', e => {
|
||||||
|
firstOptionObserver.disconnect();
|
||||||
|
lastOptionObserver.disconnect();
|
||||||
|
this.observeSelf.disconnect();
|
||||||
// debounce to wait for all elements to be assigned
|
// debounce to wait for all elements to be assigned
|
||||||
clearTimeout(this.slotChangeTimeout);
|
clearTimeout(this.slotChangeTimeout);
|
||||||
this.slotChangeTimeout = setTimeout(() => {
|
this.slotChangeTimeout = setTimeout(() => {
|
||||||
firstOptionObserver.disconnect();
|
|
||||||
lastOptionObserver.disconnect();
|
|
||||||
this.assignedElements = slot.assignedElements();
|
this.assignedElements = slot.assignedElements();
|
||||||
this.assignedElements.forEach(elem => {
|
this.assignedElements.forEach(elem => {
|
||||||
if (elem.hasAttribute('selected')) {
|
if (elem.hasAttribute('selected')) {
|
||||||
this._value = elem.value;
|
this._value = elem.value;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (!this.hasAttribute('multiline')) {
|
this.observeSelf.observe(this);
|
||||||
if (this.assignedElements.length > 0) {
|
}, 0);
|
||||||
firstOptionObserver.observe(this.assignedElements[0]);
|
|
||||||
lastOptionObserver.observe(this.assignedElements[this.assignedElements.length - 1]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this.navButtonLeft.classList.add('hide');
|
|
||||||
this.navButtonRight.classList.add('hide');
|
|
||||||
this.coverLeft.classList.add('hide');
|
|
||||||
this.coverRight.classList.add('hide');
|
|
||||||
firstOptionObserver.disconnect();
|
|
||||||
lastOptionObserver.disconnect();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 100);
|
|
||||||
});
|
});
|
||||||
const resObs = new ResizeObserver(entries => {
|
const resObs = new ResizeObserver(entries => {
|
||||||
entries.forEach(entry => {
|
entries.forEach(entry => {
|
||||||
@ -244,6 +230,17 @@ customElements.define('sm-chips', class extends HTMLElement {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
resObs.observe(this);
|
resObs.observe(this);
|
||||||
|
|
||||||
|
this.observeSelf = new IntersectionObserver(entries => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
if (entry.isIntersecting && !this.hasAttribute('multiline') && this.assignedElements.length > 0) {
|
||||||
|
firstOptionObserver.observe(this.assignedElements[0]);
|
||||||
|
lastOptionObserver.observe(this.assignedElements[this.assignedElements.length - 1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, {
|
||||||
|
threshold: 1,
|
||||||
|
});
|
||||||
this.chipsWrapper.addEventListener('option-clicked', e => {
|
this.chipsWrapper.addEventListener('option-clicked', e => {
|
||||||
if (this._value !== e.target.value) {
|
if (this._value !== e.target.value) {
|
||||||
this.setSelectedOption(e.target.value);
|
this.setSelectedOption(e.target.value);
|
||||||
@ -262,7 +259,7 @@ customElements.define('sm-chips', class extends HTMLElement {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
threshold: 0.9,
|
threshold: 1,
|
||||||
root: this
|
root: this
|
||||||
});
|
});
|
||||||
const lastOptionObserver = new IntersectionObserver(entries => {
|
const lastOptionObserver = new IntersectionObserver(entries => {
|
||||||
@ -277,7 +274,7 @@ customElements.define('sm-chips', class extends HTMLElement {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
threshold: 0.9,
|
threshold: 1,
|
||||||
root: this
|
root: this
|
||||||
});
|
});
|
||||||
this.navButtonLeft.addEventListener('click', this.scrollLeft);
|
this.navButtonLeft.addEventListener('click', this.scrollLeft);
|
||||||
|
|||||||
2
components/dist/chips.min.js
vendored
2
components/dist/chips.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user