mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-10 00:27:41 +08:00
chore(packages): move the packages to root
This commit is contained in:
70
core/src/components/select-option/select-option.tsx
Normal file
70
core/src/components/select-option/select-option.tsx
Normal file
@ -0,0 +1,70 @@
|
||||
import { Component, Element, Event, EventEmitter, Prop } from '@stencil/core';
|
||||
|
||||
|
||||
@Component({
|
||||
tag: 'ion-select-option',
|
||||
host: {
|
||||
theme: 'select-option'
|
||||
}
|
||||
})
|
||||
export class SelectOption {
|
||||
id: string;
|
||||
|
||||
@Element() el: HTMLElement;
|
||||
|
||||
/**
|
||||
* If true, the user cannot interact with the select option. Defaults to `false`.
|
||||
*/
|
||||
@Prop() disabled = false;
|
||||
|
||||
/**
|
||||
* If true, the element is selected.
|
||||
*/
|
||||
@Prop({ mutable: true }) selected = false;
|
||||
|
||||
/**
|
||||
* The text value of the option.
|
||||
*/
|
||||
@Prop({ mutable: true }) value: string|null = null;
|
||||
|
||||
/**
|
||||
* Emitted when the select option loads.
|
||||
*/
|
||||
@Event() ionSelectOptionDidLoad: EventEmitter;
|
||||
|
||||
/**
|
||||
* Emitted when the select option unloads.
|
||||
*/
|
||||
@Event() ionSelectOptionDidUnload: EventEmitter;
|
||||
|
||||
constructor() {
|
||||
this.id = 'ion-selopt-' + (selectOptionIds++);
|
||||
}
|
||||
|
||||
componentWillLoad() {
|
||||
this.value = this.value || this.el.textContent;
|
||||
}
|
||||
|
||||
componentDidLoad() {
|
||||
this.ionSelectOptionDidLoad.emit();
|
||||
}
|
||||
|
||||
componentDidUnload() {
|
||||
this.ionSelectOptionDidUnload.emit();
|
||||
}
|
||||
|
||||
hostData() {
|
||||
return {
|
||||
'role': 'option',
|
||||
'id': this.id
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
export interface HTMLIonSelectOptionElementEvent extends CustomEvent {
|
||||
target: HTMLIonSelectOptionElement;
|
||||
}
|
||||
|
||||
let selectOptionIds = 0;
|
||||
Reference in New Issue
Block a user