260 lines
18 KiB
JavaScript
260 lines
18 KiB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[39],{
|
|
|
|
/***/ "./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js":
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js ***!
|
|
\*****************************************************************/
|
|
/*! exports provided: ion_textarea */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_textarea", function() { return Textarea; });
|
|
/* harmony import */ var _index_92848855_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-92848855.js */ "./node_modules/@ionic/core/dist/esm/index-92848855.js");
|
|
/* harmony import */ var _ionic_global_23e7365a_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ionic-global-23e7365a.js */ "./node_modules/@ionic/core/dist/esm/ionic-global-23e7365a.js");
|
|
/* harmony import */ var _helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers-5c745fbd.js */ "./node_modules/@ionic/core/dist/esm/helpers-5c745fbd.js");
|
|
/* harmony import */ var _theme_5641d27f_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme-5641d27f.js */ "./node_modules/@ionic/core/dist/esm/theme-5641d27f.js");
|
|
|
|
|
|
|
|
|
|
|
|
const textareaIosCss = ".sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);white-space:pre-wrap;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-textarea-ios-h{background:initial}.ion-color.sc-ion-textarea-ios-h{color:var(--ion-color-base)}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-ios-h{--padding-start:0}.textarea-wrapper.sc-ion-textarea-ios{min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit}.native-textarea.sc-ion-textarea-ios{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-textarea.sc-ion-textarea-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea[disabled].sc-ion-textarea-ios{opacity:0.4}.cloned-input.sc-ion-textarea-ios{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-textarea-ios .cloned-input.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}.sc-ion-textarea-ios-h{--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:0;font-size:inherit}.item-label-stacked.sc-ion-textarea-ios-h,.item-label-stacked .sc-ion-textarea-ios-h,.item-label-floating.sc-ion-textarea-ios-h,.item-label-floating .sc-ion-textarea-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}";
|
|
|
|
const textareaMdCss = ".sc-ion-textarea-md-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);white-space:pre-wrap;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-textarea-md-h{background:initial}.ion-color.sc-ion-textarea-md-h{color:var(--ion-color-base)}ion-item.sc-ion-textarea-md-h,ion-item .sc-ion-textarea-md-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-md-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-md-h{--padding-start:0}.textarea-wrapper.sc-ion-textarea-md{min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit}.native-textarea.sc-ion-textarea-md{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-textarea.sc-ion-textarea-md{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-textarea.sc-ion-textarea-md::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea[disabled].sc-ion-textarea-md{opacity:0.4}.cloned-input.sc-ion-textarea-md{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-textarea-md .cloned-input.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{left:unset;right:unset;right:0}.sc-ion-textarea-md-h{--padding-top:10px;--padding-end:0;--padding-bottom:11px;--padding-start:8px;margin-left:0;margin-right:0;margin-top:8px;margin-bottom:0;font-size:inherit}.item-label-stacked.sc-ion-textarea-md-h,.item-label-stacked .sc-ion-textarea-md-h,.item-label-floating.sc-ion-textarea-md-h,.item-label-floating .sc-ion-textarea-md-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0}";
|
|
|
|
const Textarea = class {
|
|
constructor(hostRef) {
|
|
Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef);
|
|
this.ionChange = Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionChange", 7);
|
|
this.ionInput = Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionInput", 7);
|
|
this.ionStyle = Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionStyle", 7);
|
|
this.ionBlur = Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionBlur", 7);
|
|
this.ionFocus = Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionFocus", 7);
|
|
this.inputId = `ion-textarea-${textareaIds++}`;
|
|
this.didBlurAfterEdit = false;
|
|
/**
|
|
* This is required for a WebKit bug which requires us to
|
|
* blur and focus an input to properly focus the input in
|
|
* an item with delegatesFocus. It will no longer be needed
|
|
* with iOS 14.
|
|
*
|
|
* @internal
|
|
*/
|
|
this.fireFocusEvents = true;
|
|
this.hasFocus = false;
|
|
/**
|
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
*/
|
|
this.autocapitalize = 'none';
|
|
/**
|
|
* This Boolean attribute lets you specify that a form control should have input focus when the page loads.
|
|
*/
|
|
this.autofocus = false;
|
|
/**
|
|
* If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `"password"`, `false` for all other types.
|
|
*/
|
|
this.clearOnEdit = false;
|
|
/**
|
|
* Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke.
|
|
*/
|
|
this.debounce = 0;
|
|
/**
|
|
* If `true`, the user cannot interact with the textarea.
|
|
*/
|
|
this.disabled = false;
|
|
/**
|
|
* The name of the control, which is submitted with the form data.
|
|
*/
|
|
this.name = this.inputId;
|
|
/**
|
|
* If `true`, the user cannot modify the value.
|
|
*/
|
|
this.readonly = false;
|
|
/**
|
|
* If `true`, the user must fill in a value before submitting a form.
|
|
*/
|
|
this.required = false;
|
|
/**
|
|
* If `true`, the element will have its spelling and grammar checked.
|
|
*/
|
|
this.spellcheck = false;
|
|
/**
|
|
* If `true`, the element height will increase based on the value.
|
|
*/
|
|
this.autoGrow = false;
|
|
/**
|
|
* The value of the textarea.
|
|
*/
|
|
this.value = '';
|
|
this.onInput = (ev) => {
|
|
if (this.nativeInput) {
|
|
this.value = this.nativeInput.value;
|
|
}
|
|
this.emitStyle();
|
|
this.ionInput.emit(ev);
|
|
};
|
|
this.onFocus = (ev) => {
|
|
this.hasFocus = true;
|
|
this.focusChange();
|
|
if (this.fireFocusEvents) {
|
|
this.ionFocus.emit(ev);
|
|
}
|
|
};
|
|
this.onBlur = (ev) => {
|
|
this.hasFocus = false;
|
|
this.focusChange();
|
|
if (this.fireFocusEvents) {
|
|
this.ionBlur.emit(ev);
|
|
}
|
|
};
|
|
this.onKeyDown = () => {
|
|
this.checkClearOnEdit();
|
|
};
|
|
}
|
|
debounceChanged() {
|
|
this.ionChange = Object(_helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__["d"])(this.ionChange, this.debounce);
|
|
}
|
|
disabledChanged() {
|
|
this.emitStyle();
|
|
}
|
|
/**
|
|
* Update the native input element when the value changes
|
|
*/
|
|
valueChanged() {
|
|
const nativeInput = this.nativeInput;
|
|
const value = this.getValue();
|
|
if (nativeInput && nativeInput.value !== value) {
|
|
nativeInput.value = value;
|
|
}
|
|
this.runAutoGrow();
|
|
this.emitStyle();
|
|
this.ionChange.emit({ value });
|
|
}
|
|
connectedCallback() {
|
|
this.emitStyle();
|
|
this.debounceChanged();
|
|
{
|
|
document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
|
|
detail: this.el
|
|
}));
|
|
}
|
|
}
|
|
disconnectedCallback() {
|
|
{
|
|
document.dispatchEvent(new CustomEvent('ionInputDidUnload', {
|
|
detail: this.el
|
|
}));
|
|
}
|
|
}
|
|
componentDidLoad() {
|
|
Object(_helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__["r"])(() => this.runAutoGrow());
|
|
}
|
|
runAutoGrow() {
|
|
const nativeInput = this.nativeInput;
|
|
if (nativeInput && this.autoGrow) {
|
|
Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["f"])(() => {
|
|
nativeInput.style.height = 'auto';
|
|
nativeInput.style.height = nativeInput.scrollHeight + 'px';
|
|
if (this.textareaWrapper) {
|
|
this.textareaWrapper.style.height = nativeInput.scrollHeight + 'px';
|
|
}
|
|
});
|
|
}
|
|
}
|
|
/**
|
|
* Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global
|
|
* `textarea.focus()`.
|
|
*/
|
|
async setFocus() {
|
|
if (this.nativeInput) {
|
|
this.nativeInput.focus();
|
|
}
|
|
}
|
|
/**
|
|
* Sets blur on the native `textarea` in `ion-textarea`. Use this method instead of the global
|
|
* `textarea.blur()`.
|
|
* @internal
|
|
*/
|
|
async setBlur() {
|
|
if (this.nativeInput) {
|
|
this.nativeInput.blur();
|
|
}
|
|
}
|
|
/**
|
|
* Returns the native `<textarea>` element used under the hood.
|
|
*/
|
|
getInputElement() {
|
|
return Promise.resolve(this.nativeInput);
|
|
}
|
|
emitStyle() {
|
|
this.ionStyle.emit({
|
|
'interactive': true,
|
|
'textarea': true,
|
|
'input': true,
|
|
'interactive-disabled': this.disabled,
|
|
'has-placeholder': this.placeholder != null,
|
|
'has-value': this.hasValue(),
|
|
'has-focus': this.hasFocus
|
|
});
|
|
}
|
|
/**
|
|
* Check if we need to clear the text input if clearOnEdit is enabled
|
|
*/
|
|
checkClearOnEdit() {
|
|
if (!this.clearOnEdit) {
|
|
return;
|
|
}
|
|
// Did the input value change after it was blurred and edited?
|
|
if (this.didBlurAfterEdit && this.hasValue()) {
|
|
// Clear the input
|
|
this.value = '';
|
|
}
|
|
// Reset the flag
|
|
this.didBlurAfterEdit = false;
|
|
}
|
|
focusChange() {
|
|
// If clearOnEdit is enabled and the input blurred but has a value, set a flag
|
|
if (this.clearOnEdit && !this.hasFocus && this.hasValue()) {
|
|
this.didBlurAfterEdit = true;
|
|
}
|
|
this.emitStyle();
|
|
}
|
|
hasValue() {
|
|
return this.getValue() !== '';
|
|
}
|
|
getValue() {
|
|
return this.value || '';
|
|
}
|
|
render() {
|
|
const mode = Object(_ionic_global_23e7365a_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this);
|
|
const value = this.getValue();
|
|
const labelId = this.inputId + '-lbl';
|
|
const label = Object(_helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__["f"])(this.el);
|
|
if (label) {
|
|
label.id = labelId;
|
|
}
|
|
return (Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["H"], { "aria-disabled": this.disabled ? 'true' : null, class: Object(_theme_5641d27f_js__WEBPACK_IMPORTED_MODULE_3__["c"])(this.color, {
|
|
[mode]: true,
|
|
}) }, Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "textarea-wrapper", ref: el => this.textareaWrapper = el }, Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["h"])("textarea", { class: "native-textarea", "aria-labelledby": labelId, ref: el => this.nativeInput = el, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, disabled: this.disabled, maxLength: this.maxlength, minLength: this.minlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, value))));
|
|
}
|
|
get el() { return Object(_index_92848855_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); }
|
|
static get watchers() { return {
|
|
"debounce": ["debounceChanged"],
|
|
"disabled": ["disabledChanged"],
|
|
"value": ["valueChanged"]
|
|
}; }
|
|
};
|
|
let textareaIds = 0;
|
|
Textarea.style = {
|
|
ios: textareaIosCss,
|
|
md: textareaMdCss
|
|
};
|
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
}]);
|
|
//# sourceMappingURL=39-es2015.js.map
|