lightning-base-components 1.17.7-alpha → 1.18.2-alpha
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/metadata/raptor.json +5 -0
- package/package.json +43 -1
- package/src/lightning/accordion/accordion.css +12 -0
- package/src/lightning/accordion/accordion.html +3 -1
- package/src/lightning/accordion/accordion.js +4 -2
- package/src/lightning/accordion/accordion.slds.css +671 -0
- package/src/lightning/accordionSection/accordion-section.slds.css +647 -0
- package/src/lightning/accordionSection/accordionSection.css +14 -0
- package/src/lightning/accordionSection/accordionSection.html +23 -19
- package/src/lightning/accordionSection/accordionSection.js +29 -2
- package/src/lightning/ariaObserver/__docs__/ariaObserver.md +21 -9
- package/src/lightning/ariaObserver/ariaObserver.js +185 -154
- package/src/lightning/ariaObserver/polyfill.js +639 -0
- package/src/lightning/avatar/avatar.css +2 -0
- package/src/lightning/avatar/avatar.html +2 -0
- package/src/lightning/avatar/avatar.js +18 -15
- package/src/lightning/avatar/avatar.slds.css +272 -0
- package/src/lightning/baseCombobox/base-combobox.slds.css +1585 -0
- package/src/lightning/baseCombobox/baseCombobox.css +11 -1
- package/src/lightning/baseCombobox/baseCombobox.html +154 -146
- package/src/lightning/baseCombobox/baseCombobox.js +82 -46
- package/src/lightning/baseCombobox/spinner.slds.css +438 -0
- package/src/lightning/baseComboboxItem/baseComboboxItem.js +4 -2
- package/src/lightning/baseComboboxItem/inline.css +2 -0
- package/src/lightning/breadcrumb/breadcrumb.css +2 -2
- package/src/lightning/breadcrumb/breadcrumb.js +4 -2
- package/src/lightning/breadcrumb/breadcrumb.slds.css +2 -7
- package/src/lightning/breadcrumbs/breadcrumbs.css +2 -2
- package/src/lightning/breadcrumbs/breadcrumbs.js +3 -2
- package/src/lightning/breadcrumbs/breadcrumbs.slds.css +7 -1
- package/src/lightning/button/__examples__/inverse/inverse.css +8 -0
- package/src/lightning/button/__examples__/inverse/inverse.html +3 -2
- package/src/lightning/button/button.css +2 -0
- package/src/lightning/button/button.html +4 -2
- package/src/lightning/button/button.js +21 -0
- package/src/lightning/button/button.slds.css +527 -0
- package/src/lightning/buttonGroup/buttonGroup.css +2 -2
- package/src/lightning/buttonGroup/buttonGroup.js +3 -2
- package/src/lightning/buttonIcon/button-icon.slds.css +215 -453
- package/src/lightning/buttonIcon/buttonIcon.css +2 -2
- package/src/lightning/buttonIcon/buttonIcon.js +4 -0
- package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +215 -453
- package/src/lightning/buttonIconStateful/buttonIconStateful.css +2 -2
- package/src/lightning/buttonMenu/{dropdown.slds.css → button-menu.slds.css} +853 -217
- package/src/lightning/buttonMenu/buttonMenu.css +2 -2
- package/src/lightning/buttonMenu/buttonMenu.html +2 -2
- package/src/lightning/buttonMenu/buttonMenu.js +10 -14
- package/src/lightning/buttonStateful/button-stateful.slds.css +225 -457
- package/src/lightning/buttonStateful/buttonStateful.css +2 -2
- package/src/lightning/buttonStateful/buttonStateful.js +3 -2
- package/src/lightning/calendar/__examples__/basic/basic.html +7 -0
- package/src/lightning/calendar/__examples__/basic/basic.js +3 -0
- package/src/lightning/calendar/calendar.css +3 -0
- package/src/lightning/calendar/calendar.html +12 -9
- package/src/lightning/calendar/calendar.js +15 -1
- package/src/lightning/calendar/calendar.slds.css +2048 -0
- package/src/lightning/card/card.css +2 -2
- package/src/lightning/card/card.js +3 -2
- package/src/lightning/card/card.slds.css +141 -88
- package/src/lightning/colorPickerCustom/colorPickerCustom.css +2 -2
- package/src/lightning/colorPickerCustom/colorPickerCustom.js +3 -2
- package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +11 -38
- package/src/lightning/colorPickerPanel/colorPickerPanel.css +3 -2
- package/src/lightning/colorPickerPanel/colorPickerPanel.js +4 -2
- package/src/lightning/colorPickerPanel/popover.slds.css +121 -0
- package/src/lightning/combobox/combobox.css +4 -0
- package/src/lightning/combobox/combobox.html +31 -29
- package/src/lightning/combobox/combobox.js +21 -4
- package/src/lightning/combobox/combobox.slds.css +13 -0
- package/src/lightning/combobox/form-element.slds.css +281 -0
- package/src/lightning/configProvider/defaultConfig.js +2 -1
- package/src/lightning/datepicker/datepicker.css +3 -0
- package/src/lightning/datepicker/datepicker.html +7 -4
- package/src/lightning/datepicker/datepicker.js +73 -19
- package/src/lightning/datepicker/form-element.slds.css +281 -0
- package/src/lightning/datepicker/input-text.slds.css +398 -0
- package/src/lightning/datetimepicker/datetimepicker.css +3 -0
- package/src/lightning/datetimepicker/datetimepicker.html +9 -3
- package/src/lightning/datetimepicker/datetimepicker.js +39 -35
- package/src/lightning/datetimepicker/form-element.slds.css +281 -0
- package/src/lightning/datetimepicker/input-text.slds.css +398 -0
- package/src/lightning/dualListbox/dualListbox.css +2 -2
- package/src/lightning/dualListbox/dualListbox.html +3 -3
- package/src/lightning/dualListbox/dualListbox.js +31 -6
- package/src/lightning/dualListbox/form-element.slds.css +83 -34
- package/src/lightning/dualListbox/keyboard.js +20 -1
- package/src/lightning/dynamicIcon/dynamicIcon.js +3 -2
- package/src/lightning/dynamicIcon/ellie.css +1 -1
- package/src/lightning/dynamicIcon/eq.css +1 -1
- package/src/lightning/dynamicIcon/score.css +1 -1
- package/src/lightning/dynamicIcon/strength.css +1 -1
- package/src/lightning/dynamicIcon/trend.css +1 -1
- package/src/lightning/dynamicIcon/waffle.css +1 -1
- package/src/lightning/formattedRichText/linkify.js +2 -2
- package/src/lightning/helptext/form-element.slds.css +83 -34
- package/src/lightning/helptext/help-text.slds.css +215 -453
- package/src/lightning/helptext/helptext.css +2 -2
- package/src/lightning/helptext/helptext.js +3 -2
- package/src/lightning/i18nCldrOptions/README.md +5 -0
- package/src/lightning/i18nService/README.md +5 -0
- package/src/lightning/icon/icon.css +2 -2
- package/src/lightning/icon/icon.js +16 -2
- package/src/lightning/icon/icon.slds.css +29 -17
- package/src/lightning/icon/iconColors.js +1 -0
- package/src/lightning/input/__examples__/text/text.html +0 -1
- package/src/lightning/input/form-element.slds.css +281 -0
- package/src/lightning/input/input-checkbox.slds.css +3 -12
- package/src/lightning/input/input-text.slds.css +239 -128
- package/src/lightning/input/input.css +2 -1
- package/src/lightning/input/input.html +8 -8
- package/src/lightning/input/input.js +107 -73
- package/src/lightning/internationalizationLibrary/README.md +24 -0
- package/src/lightning/internationalizationLibrary/utils.js +4 -1
- package/src/lightning/layout/__docs__/layout.md +1 -1
- package/src/lightning/layout/__examples__/simple/simple.css +1 -1
- package/src/lightning/layout/layout.css +5 -1
- package/src/lightning/layout/layout.js +4 -2
- package/src/lightning/layoutItem/__examples__/alignmentBump/alignmentBump.css +1 -1
- package/src/lightning/layoutItem/__examples__/sizePerDevice/sizePerDevice.css +0 -1
- package/src/lightning/layoutItem/layoutItem.css +5 -0
- package/src/lightning/layoutItem/layoutItem.js +4 -2
- package/src/lightning/menuDivider/menu-divider.slds.css +15 -0
- package/src/lightning/menuDivider/menuDivider.css +3 -0
- package/src/lightning/menuDivider/menuDivider.html +1 -1
- package/src/lightning/menuDivider/menuDivider.js +4 -2
- package/src/lightning/menuItem/menu-item.slds.css +140 -0
- package/src/lightning/menuItem/menuItem.css +3 -0
- package/src/lightning/menuItem/menuItem.html +43 -41
- package/src/lightning/menuItem/menuItem.js +4 -4
- package/src/lightning/menuSubheader/menu-subheader.slds.css +22 -0
- package/src/lightning/menuSubheader/menuSubheader.css +3 -0
- package/src/lightning/menuSubheader/menuSubheader.html +3 -1
- package/src/lightning/menuSubheader/menuSubheader.js +4 -6
- package/src/lightning/modal/__docs__/modal.md +3 -1
- package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +267 -0
- package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +1165 -0
- package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +131 -0
- package/src/lightning/modal/modal.js +1 -1
- package/src/lightning/pill/avatar.slds.css +272 -0
- package/src/lightning/pill/link.css +3 -0
- package/src/lightning/pill/link.html +1 -1
- package/src/lightning/pill/pill.js +29 -9
- package/src/lightning/pill/pill.slds.css +168 -0
- package/src/lightning/pill/plain.css +3 -0
- package/src/lightning/pill/plain.html +1 -1
- package/src/lightning/pill/plainLink.css +3 -0
- package/src/lightning/pill/plainLink.html +1 -1
- package/src/lightning/pillContainer/barePillContainer.css +3 -0
- package/src/lightning/pillContainer/barePillContainer.html +1 -2
- package/src/lightning/pillContainer/listbox.slds.css +267 -0
- package/src/lightning/pillContainer/pill-container.slds.css +22 -0
- package/src/lightning/pillContainer/pill.slds.css +168 -0
- package/src/lightning/pillContainer/pillContainer.js +7 -3
- package/src/lightning/pillContainer/standardPillContainer.css +4 -0
- package/src/lightning/pillContainer/standardPillContainer.html +2 -2
- package/src/lightning/popup/popover.slds.css +119 -119
- package/src/lightning/popup/popup.css +1 -2
- package/src/lightning/popup/popup.js +3 -2
- package/src/lightning/positionLibrary/elementProxy.js +7 -2
- package/src/lightning/positionLibrary/util.js +8 -0
- package/src/lightning/primitiveBubble/primitiveBubble.css +2 -2
- package/src/lightning/primitiveBubble/primitiveBubble.js +4 -2
- package/src/lightning/primitiveButton/primitiveButton.js +5 -4
- package/src/lightning/primitiveCellFactory/cellWithStandardLayout.html +29 -21
- package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -0
- package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +31 -19
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.css +2 -2
- package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +5 -3
- package/src/lightning/primitiveIcon/icon.slds.css +209 -0
- package/src/lightning/primitiveIcon/primitiveIcon.css +2 -1
- package/src/lightning/primitiveIcon/primitiveIcon.html +1 -1
- package/src/lightning/primitiveIcon/primitiveIcon.js +18 -11
- package/src/lightning/progressStep/progressStep.js +10 -13
- package/src/lightning/radioGroup/radioGroup.css +2 -1
- package/src/lightning/radioGroup/radioGroup.js +4 -2
- package/src/lightning/select/form-element.slds.css +83 -34
- package/src/lightning/select/select.css +2 -2
- package/src/lightning/select/select.js +4 -2
- package/src/lightning/select/select.slds.css +86 -34
- package/src/lightning/sldsCommon/sldsCommon.css +135 -75
- package/src/lightning/spinner/spinner.css +2 -2
- package/src/lightning/spinner/spinner.js +4 -2
- package/src/lightning/tabBar/tab-bar.slds.css +334 -0
- package/src/lightning/tabBar/tabBar.css +2 -0
- package/src/lightning/tabBar/tabBar.html +4 -3
- package/src/lightning/tabBar/tabBar.js +30 -3
- package/src/lightning/tabset/tabset.html +5 -4
- package/src/lightning/tabset/tabset.js +29 -11
- package/src/lightning/timepicker/form-element.slds.css +281 -0
- package/src/lightning/timepicker/timepicker.css +3 -0
- package/src/lightning/timepicker/timepicker.html +5 -1
- package/src/lightning/timepicker/timepicker.js +18 -15
- package/src/lightning/timepicker/timepicker.slds.css +18 -0
- package/src/lightning/tooltipLibrary/tooltipLibrary.js +21 -19
- package/src/lightning/utilsPrivate/browser.js +5 -3
- package/src/lightning/utilsPrivate/os.js +6 -4
- package/src/lightning/utilsPrivate/ssr.js +4 -0
- package/src/lightning/utilsPrivate/utilsPrivate.js +2 -0
- package/src/lightning/verticalNavigation/verticalNavigation.css +2 -1
- package/src/lightning/verticalNavigation/verticalNavigation.js +3 -2
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.css +2 -1
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.js +3 -2
- package/src/lightning/accordion/__perf__DISABLED/accordion-perf-utils.js +0 -76
- package/src/lightning/accordion/__perf__DISABLED/accordion10Multiple25SectionEach.perf.js +0 -57
- package/src/lightning/accordion/__perf__DISABLED/accordion10Simple25SectionEach.perf.js +0 -37
- package/src/lightning/accordion/__perf__DISABLED/accordionMultiple50Section.perf.js +0 -45
- package/src/lightning/accordion/__perf__DISABLED/accordionSimple50Section.perf.js +0 -35
- package/src/lightning/accordion/__perf__DISABLED/container/container.html +0 -15
- package/src/lightning/accordion/__perf__DISABLED/container/container.js +0 -7
- package/src/lightning/positionLibrary/__component__/positionLibraryBounding.spec.js +0 -319
- package/src/lightning/positionLibrary/__component__/x/bounding/bounding.css +0 -16
- package/src/lightning/positionLibrary/__component__/x/bounding/bounding.html +0 -36
- package/src/lightning/positionLibrary/__component__/x/bounding/bounding.js +0 -122
- /package/src/lightning/{baseCombobox → baseComboboxItem}/listbox.slds.css +0 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import labelRequired from '@salesforce/label/LightningControl.required';
|
|
2
2
|
import labelPlaceholder from '@salesforce/label/LightningCombobox.placeholder';
|
|
3
3
|
import labelHelpTextAlternativeText from '@salesforce/label/LightningInput.helptextAlternativeText';
|
|
4
|
-
import {
|
|
4
|
+
import { api, track } from 'lwc';
|
|
5
|
+
import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
|
|
5
6
|
import { classSet, formatLabel } from 'lightning/utils';
|
|
6
7
|
import {
|
|
7
|
-
|
|
8
|
+
classListMutation,
|
|
8
9
|
normalizeArray,
|
|
10
|
+
normalizeBoolean,
|
|
11
|
+
reflectAttribute,
|
|
9
12
|
synchronizeAttrs,
|
|
10
|
-
classListMutation,
|
|
11
13
|
} from 'lightning/utilsPrivate';
|
|
12
14
|
import {
|
|
13
15
|
isEmptyString,
|
|
@@ -26,7 +28,7 @@ const i18n = {
|
|
|
26
28
|
* A widget that provides an input field that is readonly,
|
|
27
29
|
* accompanied by a dropdown list of selectable options.
|
|
28
30
|
*/
|
|
29
|
-
export default class LightningCombobox extends
|
|
31
|
+
export default class LightningCombobox extends LightningShadowBaseClass {
|
|
30
32
|
static delegatesFocus = true;
|
|
31
33
|
|
|
32
34
|
@track _ariaLabelledBy = '';
|
|
@@ -93,6 +95,7 @@ export default class LightningCombobox extends LightningElement {
|
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
connectedCallback() {
|
|
98
|
+
super.connectedCallback();
|
|
96
99
|
this.classList.add('slds-form-element');
|
|
97
100
|
this.updateClassList();
|
|
98
101
|
this.interactingState = new InteractingState();
|
|
@@ -181,6 +184,7 @@ export default class LightningCombobox extends LightningElement {
|
|
|
181
184
|
set variant(value) {
|
|
182
185
|
this._variant = normalizeVariant(value);
|
|
183
186
|
this.updateClassList();
|
|
187
|
+
reflectAttribute(this, 'variant', this._variant);
|
|
184
188
|
}
|
|
185
189
|
|
|
186
190
|
/**
|
|
@@ -325,6 +329,15 @@ export default class LightningCombobox extends LightningElement {
|
|
|
325
329
|
@api
|
|
326
330
|
reportValidity() {
|
|
327
331
|
return this._constraint.reportValidity((message) => {
|
|
332
|
+
// manage invalid attribute on the base combobox
|
|
333
|
+
// this is done to allow css to target invalid base-combobox state
|
|
334
|
+
// we may want to update the logic in base combobox to handle this
|
|
335
|
+
// more generally once more usages like grouped, lookupaddress etc. are migrated
|
|
336
|
+
reflectAttribute(
|
|
337
|
+
this.template.querySelector('lightning-base-combobox'),
|
|
338
|
+
'invalid',
|
|
339
|
+
!this.checkValidity()
|
|
340
|
+
);
|
|
328
341
|
this._helpMessage = message;
|
|
329
342
|
});
|
|
330
343
|
}
|
|
@@ -362,6 +375,10 @@ export default class LightningCombobox extends LightningElement {
|
|
|
362
375
|
baseCombobox.inputDescribedByElements = this.computedAriaDescribedBy;
|
|
363
376
|
}
|
|
364
377
|
|
|
378
|
+
get templateRootNode() {
|
|
379
|
+
return this.template.host.getRootNode();
|
|
380
|
+
}
|
|
381
|
+
|
|
365
382
|
get i18n() {
|
|
366
383
|
return i18n;
|
|
367
384
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
|
|
3
|
+
Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
4
|
+
|
|
5
|
+
@supports (--styling-hooks: '') {
|
|
6
|
+
/**
|
|
7
|
+
* Invalid State
|
|
8
|
+
*/
|
|
9
|
+
:host([data-render-mode="shadow"][invalid]) [part~='combobox'] {
|
|
10
|
+
--slds-c-inputtext-color-border: var(--sds-g-color-error-base-50, #ea001e);
|
|
11
|
+
--slds-c-inputtext-sizing-border: var(--sds-g-sizing-border-1, 1px);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
|
|
2
|
+
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
|
|
3
|
+
Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
4
|
+
@supports (--styling-hooks: '') {
|
|
5
|
+
/* TODO: Swap with utility classes */
|
|
6
|
+
:host([data-render-mode="shadow"]) fieldset {
|
|
7
|
+
border: 0;
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* FORM ELEMENT: BASE */
|
|
13
|
+
:host([data-render-mode="shadow"]) .slds-form-element {
|
|
14
|
+
position: relative;
|
|
15
|
+
min-width: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host([data-render-mode="shadow"]) .slds-form-element__label {
|
|
19
|
+
overflow-wrap: break-word;
|
|
20
|
+
word-wrap: break-word;
|
|
21
|
+
hyphens: auto;
|
|
22
|
+
display: inline-block;
|
|
23
|
+
color: var(--sds-g-color-neutral-base-30, #444444);
|
|
24
|
+
font-size: var(--sds-g-font-scale-neg-3, 0.75rem);
|
|
25
|
+
padding-inline-end: var(--sds-g-spacing-2, 0.5rem);
|
|
26
|
+
padding-block-start: var(--sds-g-spacing-1, 0.25rem);
|
|
27
|
+
margin-block-end: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:host([data-render-mode="shadow"]) .slds-form-element__label:empty {
|
|
31
|
+
margin: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host([data-render-mode="shadow"]) .slds-form-element__control {
|
|
35
|
+
clear: left; /* NOTE: Ideally we want left to be inline-start but browser support is not ready for that value. We need to figure out better RTL support */
|
|
36
|
+
position: relative;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:host([data-render-mode="shadow"]) .slds-form-element__icon {
|
|
40
|
+
display: inline-block;
|
|
41
|
+
position: relative;
|
|
42
|
+
padding-block-start: var(--sds-g-spacing-1, 0.25rem);
|
|
43
|
+
vertical-align: top;
|
|
44
|
+
line-height: var(--sds-g-font-lineheight-1, 1);
|
|
45
|
+
z-index: 1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:host([data-render-mode="shadow"]) .slds-form-element__icon .slds-button_icon {
|
|
49
|
+
position: relative;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:host([data-render-mode="shadow"]) .slds-form-element__help,:host([data-render-mode="shadow"])
|
|
53
|
+
.slds-form-element__helper {
|
|
54
|
+
font-size: var(--sds-g-font-scale-neg-3, 0.75rem);
|
|
55
|
+
margin-block-start: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
56
|
+
display: block;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:host([data-render-mode="shadow"]) .slds-form-element_edit .slds-form-element__static {
|
|
60
|
+
width: calc(100% - var(--sds-g-sizing-7, 1.5rem));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:host([data-render-mode="shadow"]) .slds-form-element_readonly {
|
|
64
|
+
flex-basis: 0%;
|
|
65
|
+
border-bottom: var(--sds-g-sizing-border-1, 1px) solid var(--sds-g-color-neutral-base-90, #e5e5e5);
|
|
66
|
+
margin-block-end: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:host([data-render-mode="shadow"]) .slds-form-element_readonly .slds-form-element__control {
|
|
70
|
+
padding-block-start: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
71
|
+
padding-block-end: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:host([data-render-mode="shadow"]) .slds-form-element_readonly .slds-form-element__label {
|
|
75
|
+
margin-block-end: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host([data-render-mode="shadow"]) .slds-form-element__legend {
|
|
79
|
+
font-weight: var(--sds-g-font-weight-7, 700);
|
|
80
|
+
float: left;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host([data-render-mode="shadow"]) .slds-form-element__addon {
|
|
84
|
+
display: inline-block;
|
|
85
|
+
margin-block-start: 0;
|
|
86
|
+
margin-block-end: 0;
|
|
87
|
+
margin-inline-start: var(--sds-g-spacing-2, 0.5rem);
|
|
88
|
+
margin-inline-end: var(--sds-g-spacing-2, 0.5rem);
|
|
89
|
+
align-self: center;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
:host([data-render-mode="shadow"]) .slds-form-element__static {
|
|
93
|
+
overflow-wrap: break-word;
|
|
94
|
+
word-wrap: break-word;
|
|
95
|
+
word-break: break-word;
|
|
96
|
+
display: inline-block;
|
|
97
|
+
font-size: var(--sds-g-font-scale-neg-1, 0.875rem);
|
|
98
|
+
font-weight: var(--sds-g-font-weight-4, 400);
|
|
99
|
+
color: var(--sds-g-color-neutral-base-10, #181818);
|
|
100
|
+
width: 100%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host([data-render-mode="shadow"]) .slds-form-element__static.slds-text-longform *:last-child {
|
|
104
|
+
margin-block-end: 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
:host([data-render-mode="shadow"]) .slds-form-element__static:empty {
|
|
108
|
+
min-height: calc(var(--sds-g-sizing-6, 1.25rem) + 1px);
|
|
109
|
+
vertical-align: bottom;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:host([data-render-mode="shadow"]) .slds-form-element__static--edit {
|
|
113
|
+
width: calc(100% - var(--sds-g-sizing-7, 1.5rem));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
:host([data-render-mode="shadow"]) .slds-required {
|
|
117
|
+
color: var(--sds-g-color-error-base-50, #ea001e);
|
|
118
|
+
margin-block-start: 0;
|
|
119
|
+
margin-block-end: 0;
|
|
120
|
+
margin-inline-start: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
121
|
+
margin-inline-end: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
:host([data-render-mode="shadow"]) .slds-has-error .slds-form-element__help {
|
|
125
|
+
color: var(--sds-g-color-error-base-50, #ea001e);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
:host([data-render-mode="shadow"][invalid]) .slds-form-element__help {
|
|
129
|
+
color: var(--sds-g-color-error-base-50, #ea001e);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* --------------------------------------- */
|
|
133
|
+
|
|
134
|
+
/* FORM ELEMENT: STACKED */
|
|
135
|
+
|
|
136
|
+
:host([data-render-mode="shadow"][variant~='label-stacked']) {
|
|
137
|
+
display: block;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* TODO: Using `:not` is currently not working, and it could break the build because of issues with the dist script */
|
|
141
|
+
|
|
142
|
+
/* :host([variant~='label-stacked']):not(.slds-form-element_readonly) {
|
|
143
|
+
margin-block-end: var(--sds-g-spacing-2);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
:host([variant~='label-stacked']):not(.slds-is-editing) {
|
|
147
|
+
padding: 0 var(--sds-g-spacing-1);
|
|
148
|
+
} */
|
|
149
|
+
|
|
150
|
+
/* :host([variant~='label-stacked']):not([class*="slds-size"]) {
|
|
151
|
+
width: 100%;
|
|
152
|
+
flex-basis: 100%;
|
|
153
|
+
} */
|
|
154
|
+
|
|
155
|
+
:host([data-render-mode="shadow"][variant~='label-stacked']) .slds-form-element {
|
|
156
|
+
padding: 0;
|
|
157
|
+
margin-block-end: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
:host([data-render-mode="shadow"][variant~='label-stacked']) .slds-form-element__label,:host([data-render-mode="shadow"][variant~='label-stacked']) .slds-form-element__control {
|
|
161
|
+
border-bottom: 0; /* Remove border when using legacy version of slds-form-element */
|
|
162
|
+
padding-inline-start: 0;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
:host([data-render-mode="shadow"][variant~='label-stacked']) .slds-form-element__control {
|
|
166
|
+
width: 100%;
|
|
167
|
+
flex-basis: 100%;
|
|
168
|
+
clear: left;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
:host([data-render-mode="shadow"][variant~='label-stacked']) .slds-form-element__icon {
|
|
172
|
+
float: none;
|
|
173
|
+
padding-block-start: var(--sds-g-spacing-1, 0.25rem);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* --------------------------------------- */
|
|
177
|
+
|
|
178
|
+
/* FORM ELEMENT: INLINE */
|
|
179
|
+
|
|
180
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) {
|
|
181
|
+
display: block;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/*
|
|
185
|
+
we have to combine with slds class here to avoid duplication
|
|
186
|
+
of this rule in child elements who import this stylesheet
|
|
187
|
+
in lighting-input this slds class is synonymous with the variant
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
:host([data-render-mode="shadow"][variant~='label-inline'].slds-form-element_horizontal) {
|
|
191
|
+
padding: var(--sds-g-spacing-1, 0.25rem);
|
|
192
|
+
margin-block-end: var(--sds-g-spacing-2, 0.5rem);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* TODO: Using `:not` is currently not working, and it could break the build because of issues with the dist script */
|
|
196
|
+
|
|
197
|
+
/* :host([variant~='label-inline']):not(.slds-form-element_readonly) {
|
|
198
|
+
margin-block-end: var(--sds-g-spacing-2);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
:host([variant~='label-inline']):not([class*="slds-size"]) {
|
|
202
|
+
width: 100%;
|
|
203
|
+
flex-basis: 100%;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
:host([variant~='label-inline']:not(.slds-is-editing)) {
|
|
207
|
+
padding: var(--sds-g-spacing-1);
|
|
208
|
+
} */
|
|
209
|
+
|
|
210
|
+
:host([data-render-mode="shadow"][variant~='label-inline']).slds-is-edited {
|
|
211
|
+
padding-block-start: var(--sds-g-sizing-6, 1.25rem)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@media (min-width: 48em) {
|
|
215
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-form-element__label {
|
|
216
|
+
float: left;
|
|
217
|
+
max-width: calc(33% - var(--sds-g-sizing-6, 1.25rem)); /* Removing icon width for when the help-text icon is present */
|
|
218
|
+
flex-basis: calc(33% - var(--sds-g-sizing-6, 1.25rem)); /* Some form element controls are set to display:flex */
|
|
219
|
+
flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
|
|
220
|
+
margin-block-end: 0;
|
|
221
|
+
position: relative;
|
|
222
|
+
z-index: 1;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) lightning-helptext {
|
|
226
|
+
float: left;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-form-element__control {
|
|
230
|
+
margin-inline-start: 33%;
|
|
231
|
+
clear: none; /* Reset clear: left when switching to horizontal form layout */
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-form-element__control .slds-form-element__control {
|
|
235
|
+
padding-inline-start: 0; /* Remove left padding on nested form controls, due to issues related to lightning-form components */
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-dueling-list__column .slds-form-element__label {
|
|
239
|
+
width: auto;
|
|
240
|
+
max-width: 100%;
|
|
241
|
+
-ms-flex-preferred-size: auto;
|
|
242
|
+
flex-basis: auto;
|
|
243
|
+
float: none;
|
|
244
|
+
position: relative;
|
|
245
|
+
padding-inline-start: 0;
|
|
246
|
+
margin-block-end: 0;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-form-element__help {
|
|
250
|
+
margin-inline-start: 33%;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
:host([data-render-mode="shadow"][variant~='label-inline']) .slds-dueling-list {
|
|
254
|
+
clear: none;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* --------------------------------------- */
|
|
259
|
+
|
|
260
|
+
/* FORM ELEMENT: COMPOUND */
|
|
261
|
+
|
|
262
|
+
:host([data-render-mode="shadow"]) .slds-form-element_compound .slds-form-element__row {
|
|
263
|
+
display: flex;
|
|
264
|
+
margin-bottom: var(--sds-g-spacing-1, 0.25rem);
|
|
265
|
+
margin-left: calc(var(--sds-g-spacing-1, 0.25rem) * -1);
|
|
266
|
+
margin-right: calc(var(--sds-g-spacing-1, 0.25rem) * -1);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
:host([data-render-mode="shadow"]) .slds-form-element_compound .slds-form-element__row .slds-form-element__label {
|
|
270
|
+
padding-top: 0;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
:host([data-render-mode="shadow"]) .slds-form-element_compound .slds-form-element {
|
|
274
|
+
padding-left: var(--sds-g-spacing-1, 0.25rem);
|
|
275
|
+
padding-right: var(--sds-g-spacing-1, 0.25rem);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
:host([data-render-mode="shadow"]) .slds-form-element_address .slds-form-element__row {
|
|
279
|
+
align-items: flex-end;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import localizationService from './defaultLocalizationConfig';
|
|
2
|
+
import { isCSR } from 'lightning/utilsPrivate';
|
|
2
3
|
|
|
3
4
|
function getConfigFromAura($A) {
|
|
4
5
|
return {
|
|
@@ -34,7 +35,7 @@ function createStandAloneConfig() {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export function getDefaultConfig() {
|
|
37
|
-
return window.$A !== undefined && window.$A.localizationService
|
|
38
|
+
return isCSR && window.$A !== undefined && window.$A.localizationService
|
|
38
39
|
? getConfigFromAura(window.$A)
|
|
39
40
|
: createStandAloneConfig();
|
|
40
41
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="slds-dropdown-trigger slds-dropdown-trigger_click slds-size_1-of-1" role="group">
|
|
2
|
+
<div class="slds-dropdown-trigger slds-dropdown-trigger_click slds-size_1-of-1" role="group" part="input-text">
|
|
3
3
|
<template if:false={hasExternalLabel}>
|
|
4
|
-
<label class={computedLabelClass} for="input">
|
|
4
|
+
<label class={computedLabelClass} for="input" part="label">
|
|
5
5
|
<template if:true={required}>
|
|
6
6
|
<abbr class="slds-required" title={i18n.required}>*</abbr>
|
|
7
7
|
</template>
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
<template if:true={isRangeMessageVisible}>
|
|
13
13
|
<span id="range-message" data-range-message class="slds-assistive-text">{rangeMessage}</span>
|
|
14
14
|
</template>
|
|
15
|
-
<div class="slds-form-element__control slds-input-has-icon slds-input-has-icon_right">
|
|
15
|
+
<div class="slds-form-element__control slds-input-has-icon slds-input-has-icon_right" part="input-container">
|
|
16
16
|
<input type="text" id="input" class="slds-input"
|
|
17
|
+
part="input"
|
|
17
18
|
name={name}
|
|
18
19
|
value={displayValue}
|
|
19
20
|
placeholder={placeholder}
|
|
@@ -55,7 +56,9 @@
|
|
|
55
56
|
</div>
|
|
56
57
|
</div>
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
<template if:true={errorMessage}>
|
|
59
60
|
<div id="error-message" data-error-message class={computedClass} aria-live="assertive">{errorMessage}</div>
|
|
61
|
+
</template>
|
|
62
|
+
|
|
60
63
|
|
|
61
64
|
</template>
|
|
@@ -7,7 +7,7 @@ import labelMinAndMaxRangeMessage from '@salesforce/label/LightningDateTimePicke
|
|
|
7
7
|
import labelRequired from '@salesforce/label/LightningControl.required';
|
|
8
8
|
import labelSelectDateFor from '@salesforce/label/LightningDateTimePicker.selectDateFor';
|
|
9
9
|
import labelHelpTextAlternativeText from '@salesforce/label/LightningInput.helptextAlternativeText';
|
|
10
|
-
import { LightningElement,
|
|
10
|
+
import { LightningElement, api, track } from 'lwc';
|
|
11
11
|
import {
|
|
12
12
|
normalizeISODate,
|
|
13
13
|
parseFormattedDate,
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
getRealDOMId,
|
|
28
28
|
isIE11,
|
|
29
29
|
computeAriaInvalid,
|
|
30
|
+
reflectAttribute,
|
|
30
31
|
} from 'lightning/utilsPrivate';
|
|
31
32
|
import {
|
|
32
33
|
generateUniqueId,
|
|
@@ -37,6 +38,7 @@ import {
|
|
|
37
38
|
handleKeyDownOnDatePickerIcon,
|
|
38
39
|
handleBasicKeyDownBehaviour,
|
|
39
40
|
} from './keyboard';
|
|
41
|
+
import AriaObserver from 'lightning/ariaObserver';
|
|
40
42
|
|
|
41
43
|
const i18n = {
|
|
42
44
|
invalidDate: labelInvalidDate,
|
|
@@ -94,6 +96,15 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
94
96
|
|
|
95
97
|
@api messageWhenValueMissing;
|
|
96
98
|
|
|
99
|
+
@api
|
|
100
|
+
get rootAriaNode() {
|
|
101
|
+
return this.ariaObserver.root;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
set rootAriaNode(root) {
|
|
105
|
+
this.ariaObserver.root = root;
|
|
106
|
+
}
|
|
107
|
+
|
|
97
108
|
@api
|
|
98
109
|
get min() {
|
|
99
110
|
return this._min;
|
|
@@ -181,7 +192,12 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
181
192
|
|
|
182
193
|
set ariaLabelledByElement(el) {
|
|
183
194
|
this._ariaLabelledBy = el;
|
|
184
|
-
|
|
195
|
+
|
|
196
|
+
this.ariaObserver.connect({
|
|
197
|
+
attribute: ARIA_LABELLEDBY,
|
|
198
|
+
targetSelector: 'input',
|
|
199
|
+
relatedNodeIds: getRealDOMId(this._ariaLabelledBy),
|
|
200
|
+
});
|
|
185
201
|
}
|
|
186
202
|
|
|
187
203
|
@api
|
|
@@ -191,7 +207,12 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
191
207
|
|
|
192
208
|
set ariaControlsElement(el) {
|
|
193
209
|
this._ariaControls = el;
|
|
194
|
-
|
|
210
|
+
|
|
211
|
+
this.ariaObserver.connect({
|
|
212
|
+
attribute: ARIA_CONTROLS,
|
|
213
|
+
targetSelector: 'input',
|
|
214
|
+
relatedNodeIds: getRealDOMId(this.ariaControlsElement),
|
|
215
|
+
});
|
|
195
216
|
}
|
|
196
217
|
|
|
197
218
|
@api
|
|
@@ -205,7 +226,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
205
226
|
} else {
|
|
206
227
|
this._ariaDescribedBy = [el];
|
|
207
228
|
}
|
|
208
|
-
this.
|
|
229
|
+
this.connectAriaDescribedBy();
|
|
209
230
|
}
|
|
210
231
|
|
|
211
232
|
@api
|
|
@@ -213,12 +234,14 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
213
234
|
return this._ariaDescribedBy;
|
|
214
235
|
}
|
|
215
236
|
|
|
216
|
-
|
|
217
|
-
|
|
237
|
+
@api
|
|
238
|
+
get ariaErrorMessageElement() {
|
|
239
|
+
return this._ariaErrorMessageElement;
|
|
218
240
|
}
|
|
219
241
|
|
|
220
|
-
|
|
221
|
-
|
|
242
|
+
set ariaErrorMessageElement(element) {
|
|
243
|
+
this._ariaErrorMessageElement = element;
|
|
244
|
+
this.connectAriaDescribedBy();
|
|
222
245
|
}
|
|
223
246
|
|
|
224
247
|
synchronizeA11y() {
|
|
@@ -228,9 +251,6 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
228
251
|
}
|
|
229
252
|
|
|
230
253
|
synchronizeAttrs(input, {
|
|
231
|
-
[ARIA_LABELLEDBY]: this.ariaLabelledbyId,
|
|
232
|
-
[ARIA_DESCRIBEDBY]: this.computedAriaDescribedby,
|
|
233
|
-
[ARIA_CONTROLS]: this.ariaControlsId,
|
|
234
254
|
[ARIA_LABEL]: this._ariaLabel,
|
|
235
255
|
[ARIA_INVALID]: this.computedAriaInvalid,
|
|
236
256
|
});
|
|
@@ -242,6 +262,11 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
242
262
|
);
|
|
243
263
|
calendarButton.ariaDescribedBy =
|
|
244
264
|
this.computedDatepickerButtonAriaDescribedby;
|
|
265
|
+
|
|
266
|
+
if (this.isConnected) {
|
|
267
|
+
this.connectAriaDescribedBy();
|
|
268
|
+
this.ariaObserver.sync();
|
|
269
|
+
}
|
|
245
270
|
}
|
|
246
271
|
|
|
247
272
|
renderedCallback() {
|
|
@@ -265,6 +290,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
265
290
|
}
|
|
266
291
|
set disabled(value) {
|
|
267
292
|
this._disabled = normalizeBoolean(value);
|
|
293
|
+
reflectAttribute(this, 'disabled', this._disabled);
|
|
268
294
|
}
|
|
269
295
|
|
|
270
296
|
@api
|
|
@@ -273,6 +299,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
273
299
|
}
|
|
274
300
|
set readOnly(value) {
|
|
275
301
|
this._readonly = normalizeBoolean(value);
|
|
302
|
+
reflectAttribute(this, 'readonly', this._readonly);
|
|
276
303
|
}
|
|
277
304
|
|
|
278
305
|
@api
|
|
@@ -299,6 +326,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
299
326
|
|
|
300
327
|
set variant(value) {
|
|
301
328
|
this._variant = normalizeVariant(value);
|
|
329
|
+
reflectAttribute(this, 'variant', value);
|
|
302
330
|
}
|
|
303
331
|
|
|
304
332
|
@api
|
|
@@ -349,6 +377,7 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
349
377
|
constructor() {
|
|
350
378
|
super();
|
|
351
379
|
this.uniqueId = generateUniqueId();
|
|
380
|
+
this.ariaObserver = new AriaObserver(this);
|
|
352
381
|
}
|
|
353
382
|
|
|
354
383
|
connectedCallback() {
|
|
@@ -359,6 +388,10 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
359
388
|
|
|
360
389
|
disconnectedCallback() {
|
|
361
390
|
this.connected = false;
|
|
391
|
+
if (this.ariaObserver) {
|
|
392
|
+
this.ariaObserver.disconnect();
|
|
393
|
+
this.ariaObserver = undefined;
|
|
394
|
+
}
|
|
362
395
|
}
|
|
363
396
|
|
|
364
397
|
get i18n() {
|
|
@@ -375,9 +408,12 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
375
408
|
.toString();
|
|
376
409
|
}
|
|
377
410
|
|
|
378
|
-
get
|
|
379
|
-
|
|
380
|
-
|
|
411
|
+
get errorMessageElement() {
|
|
412
|
+
return this.template.querySelector('[data-error-message]');
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
get rangeMessageElement() {
|
|
416
|
+
return this.template.querySelector('[data-range-message]');
|
|
381
417
|
}
|
|
382
418
|
|
|
383
419
|
get computedUniqueRangeMessageElementId() {
|
|
@@ -410,18 +446,24 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
410
446
|
return this.disabled || this.readOnly;
|
|
411
447
|
}
|
|
412
448
|
|
|
413
|
-
get
|
|
414
|
-
const
|
|
449
|
+
get ariaErrorMessageElements() {
|
|
450
|
+
const elements = [this.ariaErrorMessageElement];
|
|
415
451
|
|
|
416
452
|
if (this.errorMessage) {
|
|
417
|
-
|
|
453
|
+
elements.push(this.errorMessageElement);
|
|
418
454
|
}
|
|
419
455
|
|
|
420
456
|
// To inform user of valid date ranges that are set via min/max attributes
|
|
421
457
|
if (this.isRangeMessageVisible) {
|
|
422
|
-
|
|
458
|
+
elements.push(this.rangeMessageElement);
|
|
423
459
|
}
|
|
424
460
|
|
|
461
|
+
return elements;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
get computedAriaDescribedby() {
|
|
465
|
+
const ariaValues = [];
|
|
466
|
+
|
|
425
467
|
this._ariaDescribedBy.forEach((item) => {
|
|
426
468
|
const id = getRealDOMId(item);
|
|
427
469
|
if (id) {
|
|
@@ -432,6 +474,15 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
432
474
|
return normalizeAriaAttribute(ariaValues);
|
|
433
475
|
}
|
|
434
476
|
|
|
477
|
+
connectAriaDescribedBy() {
|
|
478
|
+
this.ariaObserver.connect({
|
|
479
|
+
attribute: ARIA_DESCRIBEDBY,
|
|
480
|
+
targetSelector: 'input',
|
|
481
|
+
relatedNodeIds: this.computedAriaDescribedby,
|
|
482
|
+
relatedNodes: this.ariaErrorMessageElements,
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
|
|
435
486
|
get computedDatepickerButtonAriaDescribedby() {
|
|
436
487
|
if (this.isRangeMessageVisible) {
|
|
437
488
|
return this.computedUniqueRangeMessageElementId;
|
|
@@ -604,7 +655,10 @@ export default class LightningDatePicker extends LightningElement {
|
|
|
604
655
|
startPositioning() {
|
|
605
656
|
if (!this._relationship) {
|
|
606
657
|
this._relationship = startPositioning(this, {
|
|
607
|
-
target: () =>
|
|
658
|
+
target: () =>
|
|
659
|
+
this.template.querySelector(
|
|
660
|
+
'div.slds-form-element__control'
|
|
661
|
+
),
|
|
608
662
|
element: () =>
|
|
609
663
|
this.template
|
|
610
664
|
.querySelector('lightning-calendar')
|