feat(select-rich): give invoker access .to hostElement
This commit is contained in:
parent
a64c552b61
commit
5fc39bed09
2 changed files with 18 additions and 13 deletions
|
|
@ -5,6 +5,7 @@ import { css, html, SlotMixin } from '@lion/core';
|
||||||
* @typedef {import('@lion/core').CSSResult} CSSResult
|
* @typedef {import('@lion/core').CSSResult} CSSResult
|
||||||
* @typedef {import('@lion/core').TemplateResult} TemplateResult
|
* @typedef {import('@lion/core').TemplateResult} TemplateResult
|
||||||
* @typedef {import('@lion/listbox').LionOption} LionOption
|
* @typedef {import('@lion/listbox').LionOption} LionOption
|
||||||
|
* @typedef {import('@lion/select-rich').LionSelectRich} LionSelectRich
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -32,19 +33,10 @@ export class LionSelectInvoker extends SlotMixin(LionButton) {
|
||||||
static get properties() {
|
static get properties() {
|
||||||
return {
|
return {
|
||||||
...super.properties,
|
...super.properties,
|
||||||
selectedElement: {
|
selectedElement: { type: Object },
|
||||||
type: Object,
|
hostElement: { type: Object },
|
||||||
},
|
readOnly: { type: Boolean, reflect: true, attribute: 'readonly' },
|
||||||
readOnly: {
|
singleOption: { type: Boolean, reflect: true, attribute: 'single-option' },
|
||||||
type: Boolean,
|
|
||||||
reflect: true,
|
|
||||||
attribute: 'readonly',
|
|
||||||
},
|
|
||||||
singleOption: {
|
|
||||||
type: Boolean,
|
|
||||||
reflect: true,
|
|
||||||
attribute: 'single-option',
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -61,6 +53,9 @@ export class LionSelectInvoker extends SlotMixin(LionButton) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @configure OverlayMixin
|
||||||
|
*/
|
||||||
get _contentWrapperNode() {
|
get _contentWrapperNode() {
|
||||||
return /** @type {ShadowRoot} */ (this.shadowRoot).getElementById('content-wrapper');
|
return /** @type {ShadowRoot} */ (this.shadowRoot).getElementById('content-wrapper');
|
||||||
}
|
}
|
||||||
|
|
@ -78,6 +73,13 @@ export class LionSelectInvoker extends SlotMixin(LionButton) {
|
||||||
* @type {LionOption | null}
|
* @type {LionOption | null}
|
||||||
*/
|
*/
|
||||||
this.selectedElement = null;
|
this.selectedElement = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The LionSelectRich element this invoker is part of. Will be set on connectedCallback of
|
||||||
|
* LionSelectRich
|
||||||
|
* @type {LionSelectRich | null}
|
||||||
|
*/
|
||||||
|
this.hostElement = null;
|
||||||
/**
|
/**
|
||||||
* When the connected LionSelectRich instance has only one option,
|
* When the connected LionSelectRich instance has only one option,
|
||||||
* this should be reflected in the invoker as well
|
* this should be reflected in the invoker as well
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,9 @@ export class LionSelectRich extends SlotMixin(ScopedElementsMixin(OverlayMixin(L
|
||||||
super.connectedCallback();
|
super.connectedCallback();
|
||||||
this._invokerNode.selectedElement =
|
this._invokerNode.selectedElement =
|
||||||
this.formElements[/** @type {number} */ (this.checkedIndex)];
|
this.formElements[/** @type {number} */ (this.checkedIndex)];
|
||||||
|
|
||||||
|
this._invokerNode.hostElement = this;
|
||||||
|
|
||||||
this.__setupInvokerNode();
|
this.__setupInvokerNode();
|
||||||
this.__toggleInvokerDisabled();
|
this.__toggleInvokerDisabled();
|
||||||
this.addEventListener('keyup', this.__onKeyUp);
|
this.addEventListener('keyup', this.__onKeyUp);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue