@fluentui/web-components 3.0.0-beta.82 → 3.0.0-beta.84
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/CHANGELOG.md +20 -2
- package/dist/dts/accordion-item/accordion-item.base.d.ts +71 -0
- package/dist/dts/accordion-item/accordion-item.d.ts +1 -71
- package/dist/dts/accordion-item/index.d.ts +2 -1
- package/dist/dts/anchor-button/anchor-button.base.d.ts +144 -0
- package/dist/dts/anchor-button/anchor-button.d.ts +2 -144
- package/dist/dts/anchor-button/index.d.ts +2 -1
- package/dist/dts/avatar/avatar.base.d.ts +42 -0
- package/dist/dts/avatar/avatar.d.ts +2 -42
- package/dist/dts/avatar/index.d.ts +2 -1
- package/dist/dts/button/button.base.d.ts +242 -0
- package/dist/dts/button/button.d.ts +2 -242
- package/dist/dts/button/index.d.ts +2 -1
- package/dist/dts/checkbox/checkbox.base.d.ts +288 -0
- package/dist/dts/checkbox/checkbox.d.ts +1 -288
- package/dist/dts/checkbox/index.d.ts +2 -1
- package/dist/dts/divider/divider.base.d.ts +49 -0
- package/dist/dts/divider/divider.d.ts +2 -49
- package/dist/dts/divider/index.d.ts +2 -1
- package/dist/dts/dropdown/dropdown.base.d.ts +418 -0
- package/dist/dts/dropdown/dropdown.d.ts +2 -418
- package/dist/dts/dropdown/dropdown.options.d.ts +1 -1
- package/dist/dts/dropdown/dropdown.template.d.ts +1 -1
- package/dist/dts/dropdown/index.d.ts +2 -1
- package/dist/dts/field/field.base.d.ts +120 -0
- package/dist/dts/field/field.d.ts +2 -120
- package/dist/dts/field/index.d.ts +2 -1
- package/dist/dts/link/link.d.ts +1 -1
- package/dist/dts/listbox/listbox.d.ts +1 -1
- package/dist/dts/progress-bar/index.d.ts +2 -1
- package/dist/dts/progress-bar/progress-bar.base.d.ts +73 -0
- package/dist/dts/progress-bar/progress-bar.d.ts +2 -73
- package/dist/dts/radio/radio.d.ts +1 -1
- package/dist/dts/rating-display/index.d.ts +2 -1
- package/dist/dts/rating-display/rating-display.base.d.ts +89 -0
- package/dist/dts/rating-display/rating-display.d.ts +1 -89
- package/dist/dts/spinner/index.d.ts +2 -1
- package/dist/dts/spinner/spinner.base.d.ts +14 -0
- package/dist/dts/spinner/spinner.d.ts +1 -14
- package/dist/dts/switch/switch.d.ts +1 -1
- package/dist/dts/tablist/index.d.ts +2 -1
- package/dist/dts/tablist/tablist.base.d.ts +95 -0
- package/dist/dts/tablist/tablist.d.ts +2 -94
- package/dist/dts/tabs/tabs.base.d.ts +90 -0
- package/dist/dts/tabs/tabs.d.ts +2 -90
- package/dist/dts/text-input/index.d.ts +2 -1
- package/dist/dts/text-input/text-input.base.d.ts +393 -0
- package/dist/dts/text-input/text-input.d.ts +2 -393
- package/dist/dts/textarea/index.d.ts +2 -1
- package/dist/dts/textarea/textarea.base.d.ts +347 -0
- package/dist/dts/textarea/textarea.d.ts +2 -347
- package/dist/esm/accordion/accordion.js +1 -1
- package/dist/esm/accordion/accordion.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.base.js +94 -0
- package/dist/esm/accordion-item/accordion-item.base.js.map +1 -0
- package/dist/esm/accordion-item/accordion-item.js +2 -91
- package/dist/esm/accordion-item/accordion-item.js.map +1 -1
- package/dist/esm/accordion-item/index.js +2 -1
- package/dist/esm/accordion-item/index.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.base.js +147 -0
- package/dist/esm/anchor-button/anchor-button.base.js.map +1 -0
- package/dist/esm/anchor-button/anchor-button.js +3 -145
- package/dist/esm/anchor-button/anchor-button.js.map +1 -1
- package/dist/esm/anchor-button/index.js +2 -1
- package/dist/esm/anchor-button/index.js.map +1 -1
- package/dist/esm/avatar/avatar.base.js +28 -0
- package/dist/esm/avatar/avatar.base.js.map +1 -0
- package/dist/esm/avatar/avatar.js +2 -26
- package/dist/esm/avatar/avatar.js.map +1 -1
- package/dist/esm/avatar/index.js +2 -1
- package/dist/esm/avatar/index.js.map +1 -1
- package/dist/esm/button/button.base.js +283 -0
- package/dist/esm/button/button.base.js.map +1 -0
- package/dist/esm/button/button.js +3 -281
- package/dist/esm/button/button.js.map +1 -1
- package/dist/esm/button/button.styles.js +2 -1
- package/dist/esm/button/button.styles.js.map +1 -1
- package/dist/esm/button/index.js +2 -1
- package/dist/esm/button/index.js.map +1 -1
- package/dist/esm/checkbox/checkbox.base.js +366 -0
- package/dist/esm/checkbox/checkbox.base.js.map +1 -0
- package/dist/esm/checkbox/checkbox.js +2 -363
- package/dist/esm/checkbox/checkbox.js.map +1 -1
- package/dist/esm/checkbox/index.js +2 -1
- package/dist/esm/checkbox/index.js.map +1 -1
- package/dist/esm/divider/divider.base.js +61 -0
- package/dist/esm/divider/divider.base.js.map +1 -0
- package/dist/esm/divider/divider.js +3 -58
- package/dist/esm/divider/divider.js.map +1 -1
- package/dist/esm/divider/index.js +2 -1
- package/dist/esm/divider/index.js.map +1 -1
- package/dist/esm/dropdown/dropdown.base.js +677 -0
- package/dist/esm/dropdown/dropdown.base.js.map +1 -0
- package/dist/esm/dropdown/dropdown.js +3 -674
- package/dist/esm/dropdown/dropdown.js.map +1 -1
- package/dist/esm/dropdown/index.js +2 -1
- package/dist/esm/dropdown/index.js.map +1 -1
- package/dist/esm/field/field.base.js +189 -0
- package/dist/esm/field/field.base.js.map +1 -0
- package/dist/esm/field/field.js +3 -187
- package/dist/esm/field/field.js.map +1 -1
- package/dist/esm/field/index.js +2 -1
- package/dist/esm/field/index.js.map +1 -1
- package/dist/esm/link/link.js +1 -1
- package/dist/esm/link/link.js.map +1 -1
- package/dist/esm/progress-bar/index.js +2 -1
- package/dist/esm/progress-bar/index.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.base.js +90 -0
- package/dist/esm/progress-bar/progress-bar.base.js.map +1 -0
- package/dist/esm/progress-bar/progress-bar.js +3 -87
- package/dist/esm/progress-bar/progress-bar.js.map +1 -1
- package/dist/esm/radio/radio.js +1 -1
- package/dist/esm/radio/radio.js.map +1 -1
- package/dist/esm/rating-display/index.js +2 -1
- package/dist/esm/rating-display/index.js.map +1 -1
- package/dist/esm/rating-display/rating-display.base.js +94 -0
- package/dist/esm/rating-display/rating-display.base.js.map +1 -0
- package/dist/esm/rating-display/rating-display.js +2 -92
- package/dist/esm/rating-display/rating-display.js.map +1 -1
- package/dist/esm/spinner/index.js +2 -1
- package/dist/esm/spinner/index.js.map +1 -1
- package/dist/esm/spinner/spinner.base.js +18 -0
- package/dist/esm/spinner/spinner.base.js.map +1 -0
- package/dist/esm/spinner/spinner.js +2 -17
- package/dist/esm/spinner/spinner.js.map +1 -1
- package/dist/esm/switch/switch.js +1 -1
- package/dist/esm/switch/switch.js.map +1 -1
- package/dist/esm/tablist/index.js +2 -1
- package/dist/esm/tablist/index.js.map +1 -1
- package/dist/esm/tablist/tablist.base.js +248 -0
- package/dist/esm/tablist/tablist.base.js.map +1 -0
- package/dist/esm/tablist/tablist.js +3 -221
- package/dist/esm/tablist/tablist.js.map +1 -1
- package/dist/esm/tabs/tabs.base.js +279 -0
- package/dist/esm/tabs/tabs.base.js.map +1 -0
- package/dist/esm/tabs/tabs.js +2 -276
- package/dist/esm/tabs/tabs.js.map +1 -1
- package/dist/esm/text-input/index.js +2 -1
- package/dist/esm/text-input/index.js.map +1 -1
- package/dist/esm/text-input/text-input.base.js +409 -0
- package/dist/esm/text-input/text-input.base.js.map +1 -0
- package/dist/esm/text-input/text-input.js +3 -407
- package/dist/esm/text-input/text-input.js.map +1 -1
- package/dist/esm/textarea/index.js +2 -1
- package/dist/esm/textarea/index.js.map +1 -1
- package/dist/esm/textarea/textarea.base.js +494 -0
- package/dist/esm/textarea/textarea.base.js.map +1 -0
- package/dist/esm/textarea/textarea.js +3 -491
- package/dist/esm/textarea/textarea.js.map +1 -1
- package/dist/web-components.d.ts +1 -0
- package/dist/web-components.js +707 -556
- package/dist/web-components.min.js +265 -265
- package/package.json +5 -1
|
@@ -0,0 +1,494 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr, FASTElement, nullableNumberConverter, observable } from '@microsoft/fast-element';
|
|
3
|
+
import { hasMatchingState, swapStates, toggleState } from '../utils/element-internals.js';
|
|
4
|
+
import { TextAreaResize } from './textarea.options.js';
|
|
5
|
+
/**
|
|
6
|
+
* A Text Area Custom HTML Element.
|
|
7
|
+
* Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | `<textarea>`} element.
|
|
8
|
+
*
|
|
9
|
+
* @slot - The default content/value of the component.
|
|
10
|
+
* @slot label - The content for the `<label>`, it should be a `<fluent-label>` element.
|
|
11
|
+
* @csspart label - The `<label>` element.
|
|
12
|
+
* @csspart root - The container element of the `<textarea>` element.
|
|
13
|
+
* @csspart control - The internal `<textarea>` element.
|
|
14
|
+
* @fires change - Fires after the control loses focus, if the content has changed.
|
|
15
|
+
* @fires select - Fires when the `select()` method is called.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export class BaseTextArea extends FASTElement {
|
|
20
|
+
/**
|
|
21
|
+
* The form-associated flag.
|
|
22
|
+
* @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
static { this.formAssociated = true; }
|
|
27
|
+
defaultSlottedNodesChanged() {
|
|
28
|
+
const next = this.getContent();
|
|
29
|
+
this.defaultValue = next;
|
|
30
|
+
this.value = next;
|
|
31
|
+
}
|
|
32
|
+
labelSlottedNodesChanged() {
|
|
33
|
+
if (this.labelEl) {
|
|
34
|
+
this.labelEl.hidden = !this.labelSlottedNodes.length;
|
|
35
|
+
}
|
|
36
|
+
this.labelSlottedNodes.forEach(node => {
|
|
37
|
+
node.disabled = this.disabled;
|
|
38
|
+
node.required = this.required;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
autoResizeChanged() {
|
|
42
|
+
this.maybeCreateAutoSizerEl();
|
|
43
|
+
toggleState(this.elementInternals, 'auto-resize', this.autoResize);
|
|
44
|
+
}
|
|
45
|
+
disabledChanged() {
|
|
46
|
+
this.setDisabledSideEffect(this.disabled);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The form element that’s associated to the element, or `null` if no form is associated.
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
get form() {
|
|
54
|
+
return this.elementInternals.form;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A `NodeList` of `<label>` element associated with the element.
|
|
58
|
+
* @see The {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement/labels | `labels`} property
|
|
59
|
+
*
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
get labels() {
|
|
63
|
+
return this.elementInternals.labels;
|
|
64
|
+
}
|
|
65
|
+
readOnlyChanged() {
|
|
66
|
+
this.elementInternals.ariaReadOnly = `${!!this.readOnly}`;
|
|
67
|
+
}
|
|
68
|
+
requiredChanged() {
|
|
69
|
+
this.elementInternals.ariaRequired = `${!!this.required}`;
|
|
70
|
+
if (this.labelSlottedNodes?.length) {
|
|
71
|
+
this.labelSlottedNodes.forEach(node => (node.required = this.required));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
resizeChanged(prev, next) {
|
|
75
|
+
swapStates(this.elementInternals, prev, next, TextAreaResize, 'resize-');
|
|
76
|
+
toggleState(this.elementInternals, 'resize', hasMatchingState(TextAreaResize, next) && next !== TextAreaResize.none);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The length of the current value.
|
|
80
|
+
* @see The {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement#textLength | 'textLength'} property
|
|
81
|
+
*
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
get textLength() {
|
|
85
|
+
return this.controlEl.textLength;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The type of the element, which is always "textarea".
|
|
89
|
+
* @see The {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement/type | `type`} property
|
|
90
|
+
*
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
get type() {
|
|
94
|
+
return 'textarea';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The element's validity state.
|
|
98
|
+
*
|
|
99
|
+
* @public
|
|
100
|
+
* @remarks
|
|
101
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/validity | `ElementInternals.validity`} property.
|
|
102
|
+
*/
|
|
103
|
+
get validity() {
|
|
104
|
+
return this.elementInternals.validity;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The validation message.
|
|
108
|
+
*
|
|
109
|
+
* @public
|
|
110
|
+
* @remarks
|
|
111
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/validationMessage | `ElementInternals.validationMessage`} property.
|
|
112
|
+
*/
|
|
113
|
+
get validationMessage() {
|
|
114
|
+
return this.elementInternals.validationMessage || this.controlEl.validationMessage;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Determines if the control can be submitted for constraint validation.
|
|
118
|
+
*
|
|
119
|
+
* @public
|
|
120
|
+
* @remarks
|
|
121
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/willValidate | `ElementInternals.willValidate`} property.
|
|
122
|
+
*/
|
|
123
|
+
get willValidate() {
|
|
124
|
+
return this.elementInternals.willValidate;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The text content of the element before user interaction.
|
|
128
|
+
* @see The {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement#defaultvalue | `defaultValue`} property
|
|
129
|
+
*
|
|
130
|
+
* @public
|
|
131
|
+
* @remarks
|
|
132
|
+
* In order to set the initial/default value, an author should either add the default value in the HTML as the children
|
|
133
|
+
* of the component, or setting this property in JavaScript. Setting `innerHTML`, `innerText`, or `textContent` on this
|
|
134
|
+
* component will not change the default value or the content displayed inside the component.
|
|
135
|
+
*/
|
|
136
|
+
get defaultValue() {
|
|
137
|
+
return this.controlEl?.defaultValue ?? this.preConnectControlEl.defaultValue;
|
|
138
|
+
}
|
|
139
|
+
set defaultValue(next) {
|
|
140
|
+
const controlEl = this.controlEl ?? this.preConnectControlEl;
|
|
141
|
+
controlEl.defaultValue = next;
|
|
142
|
+
if (this.controlEl && !this.userInteracted) {
|
|
143
|
+
this.controlEl.value = next;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The value of the element.
|
|
148
|
+
*
|
|
149
|
+
* @public
|
|
150
|
+
* @remarks
|
|
151
|
+
* Reflects the `value` property.
|
|
152
|
+
*/
|
|
153
|
+
get value() {
|
|
154
|
+
return this.controlEl?.value ?? this.preConnectControlEl.value;
|
|
155
|
+
}
|
|
156
|
+
set value(next) {
|
|
157
|
+
const controlEl = this.controlEl ?? this.preConnectControlEl;
|
|
158
|
+
controlEl.value = next;
|
|
159
|
+
this.setFormValue(next);
|
|
160
|
+
this.setValidity();
|
|
161
|
+
}
|
|
162
|
+
constructor() {
|
|
163
|
+
super();
|
|
164
|
+
/**
|
|
165
|
+
* The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
|
|
166
|
+
*
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
this.elementInternals = this.attachInternals();
|
|
170
|
+
this.userInteracted = false;
|
|
171
|
+
this.preConnectControlEl = document.createElement('textarea');
|
|
172
|
+
/**
|
|
173
|
+
* Indicates whether the element’s block size (height) should be automatically changed based on the content.
|
|
174
|
+
* Note: When this property’s value is set to be `true`, the element should not have a fixed block-size
|
|
175
|
+
* defined in CSS. Instead, use `min-height` or `min-block-size`.
|
|
176
|
+
*
|
|
177
|
+
* @public
|
|
178
|
+
* @remarks
|
|
179
|
+
* HTML Attribute: `auto-resize`
|
|
180
|
+
*/
|
|
181
|
+
this.autoResize = false;
|
|
182
|
+
/**
|
|
183
|
+
* Sets the element's disabled state.
|
|
184
|
+
* @see The {@link https://developer.mozilla.org/docs/Web/HTML/Attributes/disabled | `disabled`} attribute
|
|
185
|
+
*
|
|
186
|
+
* @public
|
|
187
|
+
* @remarks
|
|
188
|
+
* HTML Attribute: `disabled`
|
|
189
|
+
*/
|
|
190
|
+
this.disabled = false;
|
|
191
|
+
/**
|
|
192
|
+
* Indicates whether the element displays a box shadow. This only has effect when `appearance` is set to be `filled-darker` or `filled-lighter`.
|
|
193
|
+
*
|
|
194
|
+
* @public
|
|
195
|
+
* @remarks
|
|
196
|
+
* HTML Attribute: `display-shadow`
|
|
197
|
+
*/
|
|
198
|
+
this.displayShadow = false;
|
|
199
|
+
/**
|
|
200
|
+
* When true, the control will be immutable by user interaction.
|
|
201
|
+
* @see The {@link https://developer.mozilla.org/docs/Web/HTML/Attributes/readonly | `readonly`} attribute
|
|
202
|
+
*
|
|
203
|
+
* @public
|
|
204
|
+
* @remarks
|
|
205
|
+
* HTML Attribute: `readonly`
|
|
206
|
+
*/
|
|
207
|
+
this.readOnly = false;
|
|
208
|
+
/**
|
|
209
|
+
* The element's required attribute.
|
|
210
|
+
*
|
|
211
|
+
* @public
|
|
212
|
+
* @remarks
|
|
213
|
+
* HTML Attribute: `required`
|
|
214
|
+
*/
|
|
215
|
+
this.required = false;
|
|
216
|
+
/**
|
|
217
|
+
* Indicates whether the element can be resized by end users.
|
|
218
|
+
*
|
|
219
|
+
* @public
|
|
220
|
+
* @remarks
|
|
221
|
+
* HTML Attribute: `resize`
|
|
222
|
+
*/
|
|
223
|
+
this.resize = TextAreaResize.none;
|
|
224
|
+
/**
|
|
225
|
+
* Controls whether or not to enable spell checking for the input field, or if the default spell checking configuration should be used.
|
|
226
|
+
* @see The {@link https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck | `spellcheck`} attribute
|
|
227
|
+
*
|
|
228
|
+
* @public
|
|
229
|
+
* @remarks
|
|
230
|
+
* HTML Attribute: `spellcheck`
|
|
231
|
+
*/
|
|
232
|
+
this.spellcheck = false;
|
|
233
|
+
// TODO: Re-enabled this when Reference Target is out.
|
|
234
|
+
// this.elementInternals.role = 'textbox';
|
|
235
|
+
// this.elementInternals.ariaMultiLine = 'true';
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* @internal
|
|
239
|
+
*/
|
|
240
|
+
connectedCallback() {
|
|
241
|
+
super.connectedCallback();
|
|
242
|
+
this.setDefaultValue();
|
|
243
|
+
this.maybeCreateAutoSizerEl();
|
|
244
|
+
this.bindEvents();
|
|
245
|
+
this.observeControlElAttrs();
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* @internal
|
|
249
|
+
*/
|
|
250
|
+
disconnectedCallback() {
|
|
251
|
+
super.disconnectedCallback();
|
|
252
|
+
this.autoSizerObserver?.disconnect();
|
|
253
|
+
this.controlElAttrObserver?.disconnect();
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Resets the value to its initial value when the form is reset.
|
|
257
|
+
*
|
|
258
|
+
* @internal
|
|
259
|
+
*/
|
|
260
|
+
formResetCallback() {
|
|
261
|
+
this.value = this.defaultValue;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* @internal
|
|
265
|
+
*/
|
|
266
|
+
formDisabledCallback(disabled) {
|
|
267
|
+
this.setDisabledSideEffect(disabled);
|
|
268
|
+
this.setValidity();
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue | `ElementInternals.setFormValue()`} method.
|
|
272
|
+
*
|
|
273
|
+
* @internal
|
|
274
|
+
*/
|
|
275
|
+
setFormValue(value, state) {
|
|
276
|
+
this.elementInternals.setFormValue(value, value ?? state);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Checks the validity of the element and returns the result.
|
|
280
|
+
*
|
|
281
|
+
* @public
|
|
282
|
+
* @remarks
|
|
283
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity | `HTMLInputElement.checkValidity()`} method.
|
|
284
|
+
*/
|
|
285
|
+
checkValidity() {
|
|
286
|
+
return this.elementInternals.checkValidity();
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Reports the validity of the element.
|
|
290
|
+
*
|
|
291
|
+
* @public
|
|
292
|
+
* @remarks
|
|
293
|
+
* Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity | `HTMLInputElement.reportValidity()`} method.
|
|
294
|
+
*/
|
|
295
|
+
reportValidity() {
|
|
296
|
+
return this.elementInternals.reportValidity();
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Sets the custom validity message.
|
|
300
|
+
* @param message - The message to set
|
|
301
|
+
*
|
|
302
|
+
* @public
|
|
303
|
+
*/
|
|
304
|
+
setCustomValidity(message) {
|
|
305
|
+
this.elementInternals.setValidity({ customError: !!message }, !!message ? message.toString() : undefined);
|
|
306
|
+
this.reportValidity();
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Sets the validity of the control.
|
|
310
|
+
*
|
|
311
|
+
* @param flags - Validity flags. If not provided, the control's `validity` will be used.
|
|
312
|
+
* @param message - Optional message to supply. If not provided, the control's `validationMessage` will be used. If the control does not have a `validationMessage`, the message will be empty.
|
|
313
|
+
* @param anchor - Optional anchor to use for the validation message. If not provided, the control will be used.
|
|
314
|
+
*
|
|
315
|
+
* @internal
|
|
316
|
+
*/
|
|
317
|
+
setValidity(flags, message, anchor) {
|
|
318
|
+
if (!this.$fastController.isConnected) {
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (this.disabled || this.readOnly) {
|
|
322
|
+
this.elementInternals.setValidity({});
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.elementInternals.setValidity(flags ?? this.controlEl.validity, message ?? this.controlEl.validationMessage, anchor ?? this.controlEl);
|
|
326
|
+
}
|
|
327
|
+
if (this.userInteracted) {
|
|
328
|
+
this.toggleUserValidityState();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Selects the content in the element.
|
|
333
|
+
*
|
|
334
|
+
* @public
|
|
335
|
+
*/
|
|
336
|
+
select() {
|
|
337
|
+
this.controlEl.select();
|
|
338
|
+
}
|
|
339
|
+
setDefaultValue() {
|
|
340
|
+
this.defaultValue = this.innerHTML.trim() || this.preConnectControlEl.defaultValue || '';
|
|
341
|
+
this.value = this.preConnectControlEl.value || this.defaultValue;
|
|
342
|
+
this.setFormValue(this.value);
|
|
343
|
+
this.setValidity();
|
|
344
|
+
this.preConnectControlEl = null;
|
|
345
|
+
}
|
|
346
|
+
bindEvents() {
|
|
347
|
+
this.controlEl.addEventListener('input', () => (this.userInteracted = true), { once: true });
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Gets the content inside the light DOM, if any HTML element is present, use its `outerHTML` value.
|
|
351
|
+
*/
|
|
352
|
+
getContent() {
|
|
353
|
+
return (this.defaultSlottedNodes
|
|
354
|
+
.map(node => {
|
|
355
|
+
switch (node.nodeType) {
|
|
356
|
+
case Node.ELEMENT_NODE:
|
|
357
|
+
return node.outerHTML;
|
|
358
|
+
case Node.TEXT_NODE:
|
|
359
|
+
return node.textContent.trim();
|
|
360
|
+
default:
|
|
361
|
+
return '';
|
|
362
|
+
}
|
|
363
|
+
})
|
|
364
|
+
.join('') || '');
|
|
365
|
+
}
|
|
366
|
+
observeControlElAttrs() {
|
|
367
|
+
this.controlElAttrObserver = new MutationObserver(() => {
|
|
368
|
+
this.setValidity();
|
|
369
|
+
});
|
|
370
|
+
this.controlElAttrObserver.observe(this.controlEl, {
|
|
371
|
+
attributes: true,
|
|
372
|
+
attributeFilter: ['disabled', 'required', 'readonly', 'maxlength', 'minlength'],
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
setDisabledSideEffect(disabled) {
|
|
376
|
+
this.elementInternals.ariaDisabled = `${disabled}`;
|
|
377
|
+
if (this.controlEl) {
|
|
378
|
+
this.controlEl.disabled = disabled;
|
|
379
|
+
}
|
|
380
|
+
if (this.labelSlottedNodes?.length) {
|
|
381
|
+
this.labelSlottedNodes.forEach(node => (node.disabled = this.disabled));
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
toggleUserValidityState() {
|
|
385
|
+
toggleState(this.elementInternals, 'user-invalid', !this.validity.valid);
|
|
386
|
+
toggleState(this.elementInternals, 'user-valid', this.validity.valid);
|
|
387
|
+
}
|
|
388
|
+
// Technique inspired by https://css-tricks.com/the-cleanest-trick-for-autogrowing-textareas/
|
|
389
|
+
// TODO: This should be removed after `field-sizing: content` is widely supported
|
|
390
|
+
// https://caniuse.com/mdn-css_properties_field-sizing_content
|
|
391
|
+
maybeCreateAutoSizerEl() {
|
|
392
|
+
if (CSS.supports('field-sizing: content')) {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
if (!this.autoResize) {
|
|
396
|
+
this.autoSizerEl?.remove();
|
|
397
|
+
this.autoSizerObserver?.disconnect();
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (!this.autoSizerEl) {
|
|
401
|
+
this.autoSizerEl = document.createElement('div');
|
|
402
|
+
this.autoSizerEl.classList.add('auto-sizer');
|
|
403
|
+
this.autoSizerEl.ariaHidden = 'true';
|
|
404
|
+
}
|
|
405
|
+
this.shadowRoot.prepend(this.autoSizerEl);
|
|
406
|
+
// The `ResizeObserver` is used to observe when the component gains
|
|
407
|
+
// explicit block size, when so, the `autoSizerEl` element should be
|
|
408
|
+
// removed to let the defined blocked size dictate the component’s block size.
|
|
409
|
+
if (!this.autoSizerObserver) {
|
|
410
|
+
this.autoSizerObserver = new ResizeObserver((_, observer) => {
|
|
411
|
+
const blockSizePropName = window.getComputedStyle(this).writingMode.startsWith('horizontal')
|
|
412
|
+
? 'height'
|
|
413
|
+
: 'width';
|
|
414
|
+
if (this.style.getPropertyValue(blockSizePropName) !== '') {
|
|
415
|
+
this.autoSizerEl?.remove();
|
|
416
|
+
observer.disconnect();
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
this.autoSizerObserver.observe(this);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* @internal
|
|
424
|
+
*/
|
|
425
|
+
handleControlInput() {
|
|
426
|
+
if (this.autoResize && this.autoSizerEl) {
|
|
427
|
+
this.autoSizerEl.textContent = this.value + ' ';
|
|
428
|
+
}
|
|
429
|
+
this.setFormValue(this.value);
|
|
430
|
+
this.setValidity();
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* @internal
|
|
434
|
+
*/
|
|
435
|
+
handleControlChange() {
|
|
436
|
+
this.toggleUserValidityState();
|
|
437
|
+
this.$emit('change');
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* @internal
|
|
441
|
+
*/
|
|
442
|
+
handleControlSelect() {
|
|
443
|
+
this.$emit('select');
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
__decorate([
|
|
447
|
+
observable
|
|
448
|
+
], BaseTextArea.prototype, "defaultSlottedNodes", void 0);
|
|
449
|
+
__decorate([
|
|
450
|
+
observable
|
|
451
|
+
], BaseTextArea.prototype, "labelSlottedNodes", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
attr
|
|
454
|
+
], BaseTextArea.prototype, "autocomplete", void 0);
|
|
455
|
+
__decorate([
|
|
456
|
+
attr({ attribute: 'auto-resize', mode: 'boolean' })
|
|
457
|
+
], BaseTextArea.prototype, "autoResize", void 0);
|
|
458
|
+
__decorate([
|
|
459
|
+
attr({ attribute: 'dirname' })
|
|
460
|
+
], BaseTextArea.prototype, "dirName", void 0);
|
|
461
|
+
__decorate([
|
|
462
|
+
attr({ mode: 'boolean' })
|
|
463
|
+
], BaseTextArea.prototype, "disabled", void 0);
|
|
464
|
+
__decorate([
|
|
465
|
+
attr({ attribute: 'display-shadow', mode: 'boolean' })
|
|
466
|
+
], BaseTextArea.prototype, "displayShadow", void 0);
|
|
467
|
+
__decorate([
|
|
468
|
+
attr({ attribute: 'form' })
|
|
469
|
+
], BaseTextArea.prototype, "initialForm", void 0);
|
|
470
|
+
__decorate([
|
|
471
|
+
attr({ attribute: 'maxlength', converter: nullableNumberConverter })
|
|
472
|
+
], BaseTextArea.prototype, "maxLength", void 0);
|
|
473
|
+
__decorate([
|
|
474
|
+
attr({ attribute: 'minlength', converter: nullableNumberConverter })
|
|
475
|
+
], BaseTextArea.prototype, "minLength", void 0);
|
|
476
|
+
__decorate([
|
|
477
|
+
attr
|
|
478
|
+
], BaseTextArea.prototype, "name", void 0);
|
|
479
|
+
__decorate([
|
|
480
|
+
attr
|
|
481
|
+
], BaseTextArea.prototype, "placeholder", void 0);
|
|
482
|
+
__decorate([
|
|
483
|
+
attr({ attribute: 'readonly', mode: 'boolean' })
|
|
484
|
+
], BaseTextArea.prototype, "readOnly", void 0);
|
|
485
|
+
__decorate([
|
|
486
|
+
attr({ mode: 'boolean' })
|
|
487
|
+
], BaseTextArea.prototype, "required", void 0);
|
|
488
|
+
__decorate([
|
|
489
|
+
attr({ mode: 'fromView' })
|
|
490
|
+
], BaseTextArea.prototype, "resize", void 0);
|
|
491
|
+
__decorate([
|
|
492
|
+
attr({ mode: 'boolean' })
|
|
493
|
+
], BaseTextArea.prototype, "spellcheck", void 0);
|
|
494
|
+
//# sourceMappingURL=textarea.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.base.js","sourceRoot":"","sources":["../../../src/textarea/textarea.base.ts"],"names":[],"mappings":"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"}
|