@brightspace-ui/core 3.45.0 → 3.45.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,9 @@
|
|
5
5
|
<meta charset="UTF-8">
|
6
6
|
<link rel="stylesheet" href="../../demo/styles.css" type="text/css">
|
7
7
|
<script type="module">
|
8
|
+
import '../../button/button-icon.js';
|
8
9
|
import '../../demo/demo-page.js';
|
10
|
+
import '../../icons/icon.js';
|
9
11
|
import '../input-number.js';
|
10
12
|
</script>
|
11
13
|
</head>
|
@@ -8,6 +8,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
|
|
8
8
|
import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
|
9
9
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
10
10
|
import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
11
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
11
12
|
|
12
13
|
const HINT_TYPES = {
|
13
14
|
NONE: 0,
|
@@ -178,8 +179,9 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
178
179
|
* @ignore
|
179
180
|
*/
|
180
181
|
valueTrailingZeroes: { type: String, attribute: 'value-trailing-zeroes' },
|
181
|
-
|
182
|
-
|
182
|
+
_afterSlotWidth: { state: true },
|
183
|
+
_hintType: { state: true },
|
184
|
+
_formattedValue: { state: true }
|
183
185
|
};
|
184
186
|
}
|
185
187
|
|
@@ -218,6 +220,7 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
218
220
|
this._trailingZeroes = false;
|
219
221
|
this._valueTrailingZeroes = '';
|
220
222
|
this._descriptor = getNumberDescriptor();
|
223
|
+
this._afterSlotWidth = 0;
|
221
224
|
}
|
222
225
|
|
223
226
|
get maxFractionDigits() {
|
@@ -337,6 +340,11 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
337
340
|
|
338
341
|
render() {
|
339
342
|
const valueAlign = (this.valueAlign === 'end') ? 'end' : 'start';
|
343
|
+
const hasRelativeInputWidth = this.inputWidth.includes('%');
|
344
|
+
const inputWidthStyle = {
|
345
|
+
width : '100%',
|
346
|
+
maxWidth: `calc(${this.inputWidth} + ${this._afterSlotWidth}px)`
|
347
|
+
};
|
340
348
|
return html`
|
341
349
|
<d2l-input-text
|
342
350
|
autocomplete="${ifDefined(this.autocomplete)}"
|
@@ -351,7 +359,7 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
351
359
|
.forceInvalid="${this.invalid}"
|
352
360
|
?hide-invalid-icon="${this.hideInvalidIcon}"
|
353
361
|
id="${this._inputId}"
|
354
|
-
input-width="${this.inputWidth}"
|
362
|
+
input-width="${hasRelativeInputWidth ? 'none' : this.inputWidth}"
|
355
363
|
@invalid-change="${this._handleInvalidChange}"
|
356
364
|
label="${ifDefined(this.label)}"
|
357
365
|
?label-hidden="${this.labelHidden || this.labelledBy}"
|
@@ -360,13 +368,14 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
360
368
|
placeholder="${ifDefined(this.placeholder)}"
|
361
369
|
?required="${this.required}"
|
362
370
|
?skeleton="${this.skeleton}"
|
371
|
+
style="${ifDefined(hasRelativeInputWidth ? styleMap(inputWidthStyle) : undefined)}"
|
363
372
|
unit="${ifDefined(this.unit)}"
|
364
373
|
unit-label="${ifDefined(this.unitLabel)}"
|
365
374
|
.value="${this._formattedValue}"
|
366
375
|
value-align="${valueAlign}">
|
367
376
|
<slot slot="left" name="left"></slot>
|
368
377
|
<slot slot="right" name="right"></slot>
|
369
|
-
<slot slot="after" name="after"></slot>
|
378
|
+
<slot slot="after" name="after" @slotchange=${this._handleAfterSlotChange}></slot>
|
370
379
|
<slot slot="inline-help" name="inline-help"></slot>
|
371
380
|
</d2l-input-text>
|
372
381
|
${this._getTooltip()}
|
@@ -439,6 +448,13 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
|
|
439
448
|
}
|
440
449
|
}
|
441
450
|
|
451
|
+
async _handleAfterSlotChange(e) {
|
452
|
+
const nodes = e.target.assignedNodes();
|
453
|
+
const inputTextElem = this.shadowRoot.querySelector('d2l-input-text');
|
454
|
+
await inputTextElem.updateComplete;
|
455
|
+
this._afterSlotWidth = nodes.reduce((width, ele) => width + ele.clientWidth, 0);
|
456
|
+
}
|
457
|
+
|
442
458
|
_handleBlur() {
|
443
459
|
this._hintType = HINT_TYPES.NONE;
|
444
460
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "3.45.
|
3
|
+
"version": "3.45.1",
|
4
4
|
"description": "A collection of accessible, free, open-source web components for building Brightspace applications",
|
5
5
|
"type": "module",
|
6
6
|
"repository": "https://github.com/BrightspaceUI/core.git",
|