lightning-base-components 1.21.2-alpha → 1.21.4-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 +77 -1
- package/package.json +108 -15
- package/scopedImports/@salesforce-label-LightningDatatable.showActions.js +1 -1
- package/scopedImports/@salesforce-label-LightningForm.controllerFieldsMessage.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.dependentFieldsHeader.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.generalDependentFieldsMessage.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.learnMore.js +1 -0
- package/scopedImports/@salesforce-label-LightningForm.okButton.js +1 -0
- package/scopedImports/@salesforce-label-LightningLookup.modalCancel.js +1 -0
- package/scopedImports/@salesforce-label-LightningLookup.modalSelect.js +1 -0
- package/scopedImports/@salesforce-label-LightningProgressIndicator.currentStage.js +1 -1
- package/scopedImports/@salesforce-label-LightningProgressIndicator.errorStage.js +1 -0
- package/scopedImports/@salesforce-label-LightningProgressIndicator.stageComplete.js +1 -1
- package/scopedImports/@salesforce-label-LightningProgressIndicator.stageNotStarted.js +1 -1
- package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
- package/src/lightning/accordion/accordion-section.slds.css +3 -3
- package/src/lightning/accordion/accordion.slds.css +1 -2
- package/src/lightning/accordionSection/accordion-section.slds.css +3 -3
- package/src/lightning/accordionSection/accordionSection.js +3 -1
- package/src/lightning/accordionSection/button.slds.css +1 -1
- package/src/lightning/avatar/avatar.html +1 -0
- package/src/lightning/badge/badge.html +3 -3
- package/src/lightning/badge/badge.js +1 -0
- package/src/lightning/badge/badge.js-meta.xml +3 -0
- package/src/lightning/baseCombobox/base-combobox.slds.css +11 -6
- package/src/lightning/baseCombobox/baseCombobox.html +5 -2
- package/src/lightning/baseCombobox/baseCombobox.js +5 -18
- package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
- package/src/lightning/baseCombobox/input-text.slds.css +41 -68
- package/src/lightning/baseCombobox/keyboard.js +12 -4
- package/src/lightning/baseCombobox/listbox.slds.css +51 -99
- package/src/lightning/baseCombobox/spinner.slds.css +62 -62
- package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/baseComboboxItem.js +10 -6
- package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
- package/src/lightning/baseComboboxItem/listbox.slds.css +51 -99
- package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
- package/src/lightning/button/__docs__/button.md +2 -1
- package/src/lightning/button/button.js +5 -5
- package/src/lightning/button/button.slds.css +1 -1
- package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -0
- package/src/lightning/buttonIcon/button-icon.slds.css +1 -1
- package/src/lightning/buttonIcon/buttonIcon.html +1 -1
- package/src/lightning/buttonIcon/buttonIcon.js +18 -17
- package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +4 -2
- package/src/lightning/buttonIconStateful/button-icon.slds.css +1 -1
- package/src/lightning/buttonIconStateful/button.slds.css +1 -1
- package/src/lightning/buttonMenu/button-icon.slds.css +1 -1
- package/src/lightning/buttonMenu/button-menu.slds.css +8 -2
- package/src/lightning/buttonMenu/button.slds.css +1 -1
- package/src/lightning/buttonMenu/buttonMenu.css +5 -0
- package/src/lightning/buttonMenu/buttonMenu.js +2 -0
- package/src/lightning/buttonStateful/button-stateful.slds.css +6 -2
- package/src/lightning/buttonStateful/button.slds.css +1 -1
- package/src/lightning/buttonStateful/buttonStateful.js +4 -1
- package/src/lightning/calendar/calendar.js-meta.xml +6 -0
- package/src/lightning/calendar/calendar.slds.css +9 -2
- package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +22 -23
- package/src/lightning/colorPickerCustom/colorPickerCustom.js +12 -0
- package/src/lightning/colorPickerCustom/input-text.slds.css +41 -68
- package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +9 -10
- package/src/lightning/colorPickerPanel/colorPickerPanel.js +11 -1
- package/src/lightning/colorPickerPanel/popover.slds.css +0 -2
- package/src/lightning/combobox/combobox.html +1 -0
- package/src/lightning/combobox/combobox.slds.css +1 -2
- package/src/lightning/combobox/form-element.slds.css +54 -54
- package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.html +11 -0
- package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.js +25 -0
- package/src/lightning/datatable/__examples__disabled/customComponentWrapper/generateData.js +15 -0
- package/src/lightning/datatable/__examples__disabled/customDatatableWrapper/customDatatableWrapper.js +89 -0
- package/src/lightning/datatable/__examples__disabled/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +6 -0
- package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +1 -16
- package/src/lightning/datatable/__examples__disabled/customDatatypeLink/customDatatypeLink.html +9 -0
- package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +3 -0
- package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +3 -0
- package/src/lightning/datatable/__examples__disabled/customDatatypeTable/customNumber.html +3 -0
- package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumberEdit.html +2 -0
- package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/deleteRow.html +3 -2
- package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/iconPill.html +1 -1
- package/src/lightning/datatable/{__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html → __examples__disabled/customNestedComponent/customNestedComponent.html} +2 -2
- package/src/lightning/datatable/__examples__disabled/customNestedComponent/customNestedComponent.js +12 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/customInput.html +4 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/myCustomTypeDatatable.js +17 -0
- package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/nestedSimpleComponentParent.html +7 -0
- package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.html +9 -0
- package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.js +6 -0
- package/src/lightning/datatable/autoWidthStrategy.js +145 -217
- package/src/lightning/datatable/columnResizer.js +80 -190
- package/src/lightning/datatable/columnWidthManager.js +128 -243
- package/src/lightning/datatable/columns.js +192 -283
- package/src/lightning/datatable/datagrid.slds.css +187 -0
- package/src/lightning/datatable/datatable.js +647 -614
- package/src/lightning/datatable/errors.js +19 -28
- package/src/lightning/datatable/fixedWidthStrategy.js +27 -49
- package/src/lightning/datatable/headerActions.js +10 -42
- package/src/lightning/datatable/indexes.js +42 -0
- package/src/lightning/datatable/infiniteLoading.js +27 -46
- package/src/lightning/datatable/inlineEdit.js +311 -322
- package/src/lightning/datatable/keyboard.js +490 -510
- package/src/lightning/datatable/renderManager.js +10 -11
- package/src/lightning/datatable/resizeObserver.js +10 -67
- package/src/lightning/datatable/rowLevelActions.js +7 -6
- package/src/lightning/datatable/rowNumber.js +41 -79
- package/src/lightning/datatable/rowSelection.js +236 -291
- package/src/lightning/datatable/rowSelectionShared.js +26 -33
- package/src/lightning/datatable/rows.js +264 -476
- package/src/lightning/datatable/sort.js +27 -82
- package/src/lightning/datatable/templates/div/div.css +2 -57
- package/src/lightning/datatable/templates/div/div.html +25 -10
- package/src/lightning/datatable/templates/div/div.lbc.native.css +3 -0
- package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +80 -0
- package/src/lightning/datatable/templates/table/table.html +16 -5
- package/src/lightning/datatable/tree.js +17 -35
- package/src/lightning/datatable/types.js +10 -31
- package/src/lightning/datatable/utils.js +54 -29
- package/src/lightning/datatable/virtualization.js +2 -5
- package/src/lightning/datatable/widthManagerShared.js +24 -41
- package/src/lightning/datatable/wrapText.js +45 -77
- package/src/lightning/datepicker/datepicker.js +32 -9
- package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
- package/src/lightning/datepicker/form-element.slds.css +54 -54
- package/src/lightning/datepicker/input-text.slds.css +41 -68
- package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
- package/src/lightning/datetimepicker/form-element.slds.css +54 -54
- package/src/lightning/datetimepicker/input-text.slds.css +41 -68
- package/src/lightning/dualListbox/dual-listbox.slds.css +7 -2
- package/src/lightning/dualListbox/dualListbox.js +7 -8
- package/src/lightning/dualListbox/form-element.slds.css +54 -54
- package/src/lightning/dualListbox/listbox.slds.css +51 -99
- package/src/lightning/dynamicIcon/dynamic-icon-strength.slds.css +1 -2
- package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -2
- package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
- package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
- package/src/lightning/formattedLocation/formattedLocation.html +1 -3
- package/src/lightning/formattedLocation/formattedLocation.js +3 -25
- package/src/lightning/formattedLookup/events.js +2 -4
- package/src/lightning/formattedName/formattedName.js +3 -2
- package/src/lightning/formattedName/formattedName.js-meta.xml +3 -0
- package/src/lightning/formattedNumber/formattedNumber.js +5 -51
- package/src/lightning/formattedNumber/formattedNumber.js-meta.xml +3 -0
- package/src/lightning/formattedRichText/formattedRichText.js +5 -5
- package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
- package/src/lightning/formattedRichText/richTextConfig.js +1 -0
- package/src/lightning/groupedCombobox/form-element.slds.css +54 -54
- package/src/lightning/groupedCombobox/grouped-combobox.slds.css +0 -2
- package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +1 -1
- package/src/lightning/groupedCombobox/input-text.slds.css +41 -68
- package/src/lightning/helptext/button-icon.slds.css +1 -1
- package/src/lightning/helptext/form-element.slds.css +54 -54
- package/src/lightning/helptext/helptext.css +7 -0
- package/src/lightning/helptext/helptext.js +3 -4
- package/src/lightning/icon/icon.html +1 -1
- package/src/lightning/icon/icon.slds.css +12 -25
- package/src/lightning/input/form-element.slds.css +54 -54
- package/src/lightning/input/input.html +5 -0
- package/src/lightning/inputAddress/addressFormat.js +31 -4
- package/src/lightning/inputAddress/fieldsLayout.js +6 -0
- package/src/lightning/inputAddress/form-element.slds.css +54 -54
- package/src/lightning/inputAddress/input-address.slds.css +1 -2
- package/src/lightning/inputAddress/input-text.slds.css +41 -68
- package/src/lightning/inputAddress/inputAddress.html +19 -1
- package/src/lightning/inputAddress/inputAddress.js +75 -3
- package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
- package/src/lightning/inputLocation/form-element.slds.css +54 -54
- package/src/lightning/inputLocation/input-location.slds.css +1 -2
- package/src/lightning/inputLocation/input-text.slds.css +41 -68
- package/src/lightning/inputName/form-element.slds.css +54 -54
- package/src/lightning/inputName/input-text.slds.css +41 -68
- package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +0 -3
- package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
- package/src/lightning/internationalizationLibrary/address/AddressFormat.js +553 -610
- package/src/lightning/lookupAddress/form-element.slds.css +54 -54
- package/src/lightning/lookupAddress/listbox.slds.css +51 -99
- package/src/lightning/lookupAddress/location.js +2 -0
- package/src/lightning/lookupAddress/lookup-address.slds.css +0 -2
- package/src/lightning/lookupAddress/lookupAddress.html +6 -1
- package/src/lightning/lookupAddress/lookupAddress.js +40 -10
- package/src/lightning/menuDivider/menu-divider.slds.css +0 -2
- package/src/lightning/menuItem/menu-item.slds.css +8 -2
- package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -2
- package/src/lightning/modal/__docs__/modal.md +10 -1
- package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +3 -7
- package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +39 -133
- package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
- package/src/lightning/modal/modal.js +1 -1
- package/src/lightning/modalBase/modal-base.slds.css +3 -3
- package/src/lightning/modalBase/modalBase.html +15 -10
- package/src/lightning/modalBase/modalBase.js +131 -154
- package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
- package/src/lightning/modalBody/modal-body.slds.css +1 -2
- package/src/lightning/modalBody/modalBody.css +6 -0
- package/src/lightning/modalFooter/modal-footer.slds.css +2 -2
- package/src/lightning/modalFooter/modalFooter.js +0 -21
- package/src/lightning/modalHeader/modal-header.slds.css +1 -2
- package/src/lightning/modalHeader/modalHeader.html +16 -4
- package/src/lightning/modalHeader/modalHeader.js +61 -36
- package/src/lightning/overlay/overlay.js-meta.xml +6 -0
- package/src/lightning/pill/link.html +1 -0
- package/src/lightning/pill/pill.slds.css +32 -58
- package/src/lightning/pill/plain.html +1 -0
- package/src/lightning/pill/plainLink.html +1 -0
- package/src/lightning/pillContainer/button.slds.css +1 -1
- package/src/lightning/pillContainer/listbox.slds.css +51 -99
- package/src/lightning/pillContainer/pill-container.slds.css +6 -10
- package/src/lightning/pillContainer/pill.slds.css +32 -58
- package/src/lightning/popup/popover.slds.css +0 -2
- package/src/lightning/primitiveBubble/primitiveBubble.js +42 -0
- package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
- package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
- package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
- package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +16 -38
- package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -1
- package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -1
- package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -1
- package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +13 -0
- package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
- package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +19 -6
- package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
- package/src/lightning/primitiveHeaderFactory/sortableHeader.html +3 -1
- package/src/lightning/primitiveIcon/icon.slds.css +12 -25
- package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
- package/src/lightning/primitiveIframe/primitiveIframe.js +3 -1
- package/src/lightning/primitiveInputCheckbox/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +5 -2
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
- package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -4
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
- package/src/lightning/primitiveInputColor/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputColor/input-color.slds.css +2 -3
- package/src/lightning/primitiveInputColor/input-text.slds.css +41 -68
- package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
- package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
- package/src/lightning/primitiveInputFile/button.slds.css +1 -1
- package/src/lightning/primitiveInputFile/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputFile/input-file.slds.css +1 -4
- package/src/lightning/primitiveInputFile/primitiveInputFile.js +4 -2
- package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
- package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
- package/src/lightning/primitiveInputSimple/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputSimple/input-text.slds.css +41 -68
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
- package/src/lightning/primitiveInputToggle/form-element.slds.css +54 -54
- package/src/lightning/primitiveInputToggle/input-toggle.slds.css +50 -27
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +5 -2
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
- package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.css +11 -0
- package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +2 -1
- package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +1 -0
- package/src/lightning/progressBar/progress-bar.slds.css +8 -10
- package/src/lightning/progressRing/progress-ring.slds.css +0 -23
- package/src/lightning/progressStep/base.html +5 -6
- package/src/lightning/progressStep/progressStep.js +15 -23
- package/src/lightning/prompt/__docs__/prompt.md +1 -1
- package/src/lightning/radioGroup/form-element.slds.css +54 -54
- package/src/lightning/radioGroup/radioGroup.html +1 -2
- package/src/lightning/radioGroup/radioGroup.js +1 -0
- package/src/lightning/routingService/routingService.js +31 -5
- package/src/lightning/select/form-element.slds.css +54 -54
- package/src/lightning/select/select.slds.css +4 -2
- package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +0 -2
- package/src/lightning/sldsCommon/sldsCommon.css +134 -98
- package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +1 -1
- package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +14 -13
- package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +95 -92
- package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +1 -1
- package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +77 -75
- package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +73 -73
- package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +552 -558
- package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +5 -1
- package/src/lightning/spinner/spinner.slds.css +62 -62
- package/src/lightning/staticMap/staticMap.js +3 -2
- package/src/lightning/tab/tab.js +10 -5
- package/src/lightning/tab/tab.js-meta.xml +3 -0
- package/src/lightning/tab/tab.slds.css +14 -7
- package/src/lightning/tabBar/tab-bar.slds.css +16 -6
- package/src/lightning/tabBar/tabBar.js +10 -5
- package/src/lightning/tabset/__docs__/tabset.md +24 -1
- package/src/lightning/tabset/tabset.html +2 -0
- package/src/lightning/tabset/tabset.js +25 -38
- package/src/lightning/tabset/tabset.js-meta.xml +3 -0
- package/src/lightning/tabset/tabset.slds.css +0 -2
- package/src/lightning/textarea/form-element.slds.css +54 -54
- package/src/lightning/textarea/textarea.js +11 -2
- package/src/lightning/textarea/textarea.slds.css +22 -9
- package/src/lightning/timepicker/form-element.slds.css +54 -54
- package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
- package/src/lightning/timepicker/timepicker.slds.css +2 -2
- package/src/lightning/toast/__docs__/toast.md +20 -22
- package/src/lightning/toast/button-icon.slds.css +1 -1
- package/src/lightning/toast/icon.slds.css +12 -25
- package/src/lightning/toast/toast.js +15 -12
- package/src/lightning/toast/toast.slds.css +6 -18
- package/src/lightning/toastContainer/__docs__/toastContainer.md +3 -2
- package/src/lightning/toastContainer/toast.slds.css +6 -18
- package/src/lightning/toastContainer/toastContainer.js +25 -17
- package/src/lightning/tooltipLibrary/tooltipLibrary.js +36 -24
- package/src/lightning/tree/tree.js +2 -0
- package/src/lightning/utils/classSet.js +9 -3
- package/src/lightning/utilsPrivate/formatUtils.js +158 -0
- package/src/lightning/utilsPrivate/textUtils.js +16 -0
- package/src/lightning/utilsPrivate/utilsPrivate.js +56 -15
- package/src/lightning/utilsPrivate/validationUtils.js +59 -0
- package/src/lightning/verticalNavigation/vertical-navigation.slds.css +14 -0
- package/src/lightning/verticalNavigation/verticalNavigation.css +1 -1
- package/src/lightning/verticalNavigation/verticalNavigation.html +1 -1
- package/src/lightning/verticalNavigation/verticalNavigation.js +66 -28
- package/src/lightning/verticalNavigation/verticalNavigation.js-meta.xml +3 -0
- package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +63 -0
- package/src/lightning/verticalNavigationItem/verticalNavigationItem.css +2 -3
- package/src/lightning/verticalNavigationItem/verticalNavigationItem.js +29 -15
- package/src/lightning/verticalNavigationItem/verticalNavigationItem.js-meta.xml +3 -0
- package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.native.css +2 -0
- package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.synthetic.css +3 -0
- package/src/lightning/verticalNavigationItemBadge/badge.slds.css +76 -0
- package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +63 -0
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.css +2 -3
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.html +1 -1
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js +28 -15
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js-meta.xml +3 -0
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.native.css +5 -0
- package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.synthetic.css +3 -0
- package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +63 -0
- package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.css +2 -3
- package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js +29 -15
- package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js-meta.xml +3 -0
- package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.native.css +3 -0
- package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.synthetic.css +3 -0
- package/src/lightning/verticalNavigationOverflow/button.slds.css +503 -0
- package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +63 -0
- package/src/lightning/verticalNavigationOverflow/vertical-navigation-section.slds.css +17 -0
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +2 -1
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.html +2 -0
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js +18 -13
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js-meta.xml +3 -0
- package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.native.css +5 -0
- package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +13 -15
- package/src/lightning/verticalNavigationSection/verticalNavigationSection.js-meta.xml +3 -0
- package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js +0 -158
- package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +0 -6
- package/src/lightning/datatable/__examples__/customDatatypeLink/customDatatypeLink.html +0 -9
- package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +0 -40
- package/src/lightning/datatable/__examples__/customDatatypeTable/customNumber.html +0 -3
- package/src/lightning/datatable/inlineEditShared.js +0 -26
- package/src/lightning/datatable/resizeSensor.js +0 -244
- package/src/lightning/formattedRichText/linkify.js +0 -43
- package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.html +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.js +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.html +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.js +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customDatatypeTable.js +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customLink.html +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customName.html +0 -0
- /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/orderingButtons.html +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="slds-nav-vertical__overflow">
|
|
3
3
|
<button
|
|
4
|
+
part="button"
|
|
4
5
|
id="vertical-navigation-button"
|
|
5
6
|
onclick={toggleOverflow}
|
|
6
7
|
class="slds-button slds-button_reset slds-nav-vertical__action slds-nav-vertical__action_overflow" aria-controls="vertical-navigation-heading" aria-expanded={_isExpanded} >
|
|
7
8
|
<lightning-primitive-icon
|
|
9
|
+
part="start"
|
|
8
10
|
icon-name={computedIconName}
|
|
9
11
|
svg-class="slds-button__icon slds-button__icon_left"
|
|
10
12
|
variant="bare">
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { track } from 'lwc';
|
|
2
|
+
import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
|
|
2
3
|
import showMoreLabel from '@salesforce/label/LightningVerticalNavigation.showMore';
|
|
3
4
|
import showLessLabel from '@salesforce/label/LightningVerticalNavigation.showLess';
|
|
5
|
+
import { isCSR } from 'lightning/utilsPrivate';
|
|
4
6
|
|
|
5
7
|
const SLDS_SHOW = 'slds-show';
|
|
6
8
|
const SLDS_HIDE = 'slds-hide';
|
|
7
9
|
const COLLAPSED_ICON = 'utility:chevronright';
|
|
8
10
|
const EXPANDED_ICON = 'utility:chevrondown';
|
|
9
11
|
|
|
10
|
-
export default class LightningVerticalNavigationSection extends
|
|
12
|
+
export default class LightningVerticalNavigationSection extends LightningShadowBaseClass {
|
|
11
13
|
@track _isExpanded = false;
|
|
12
14
|
|
|
13
15
|
get computedActionText() {
|
|
@@ -35,17 +37,20 @@ export default class LightningVerticalNavigationSection extends LightningElement
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
connectedCallback() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
super.connectedCallback();
|
|
41
|
+
if (isCSR) {
|
|
42
|
+
this.dispatchEvent(
|
|
43
|
+
new CustomEvent('privateoverflowregister', {
|
|
44
|
+
bubbles: true,
|
|
45
|
+
composed: true,
|
|
46
|
+
detail: {
|
|
47
|
+
callbacks: {
|
|
48
|
+
updateAssistiveText:
|
|
49
|
+
this.updateAssistiveText.bind(this),
|
|
50
|
+
},
|
|
46
51
|
},
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
}
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -2,4 +2,7 @@
|
|
|
2
2
|
<LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
|
|
3
3
|
<isExposed>true</isExposed>
|
|
4
4
|
<minApiVersion>41.0</minApiVersion>
|
|
5
|
+
<capabilities>
|
|
6
|
+
<capability>lightning__ServerRenderableWithHydration</capability>
|
|
7
|
+
</capabilities>
|
|
5
8
|
</LightningComponentBundle>
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
2
|
+
:host([data-render-mode="shadow"]) .slds-nav-vertical__title {
|
|
3
|
+
padding-block-start: var(--slds-c-verticalnavigationsection-spacing-blockstart, var(--slds-g-spacing-2));
|
|
4
|
+
padding-block-end: var(--slds-c-verticalnavigationsection-spacing-blockend, var(--slds-g-spacing-2));
|
|
5
|
+
padding-inline-start: var(--slds-c-verticalnavigationsection-spacing-inlinestart, var(--slds-g-spacing-5));
|
|
6
|
+
padding-inline-end: var(--slds-g-spacing-4);
|
|
7
|
+
font-size: var(--slds-g-spacing-4);
|
|
8
|
+
font-weight: var(--slds-g-font-weight-7);
|
|
9
|
+
}
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
:host([data-render-mode="shadow"]) .slds-nav-vertical__section:not(:first-of-type) {
|
|
12
|
+
margin-block-start: var(--slds-g-spacing-2);
|
|
13
|
+
}
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
15
|
+
:host([data-render-mode="shadow"]) .slds-nav-vertical__title:not(:first-of-type) {
|
|
16
|
+
margin-block-start: var(--slds-g-spacing-2);
|
|
19
17
|
}
|
|
@@ -2,4 +2,7 @@
|
|
|
2
2
|
<LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
|
|
3
3
|
<isExposed>true</isExposed>
|
|
4
4
|
<minApiVersion>41.0</minApiVersion>
|
|
5
|
+
<capabilities>
|
|
6
|
+
<capability>lightning__ServerRenderableWithHydration</capability>
|
|
7
|
+
</capabilities>
|
|
5
8
|
</LightningComponentBundle>
|
package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { LightningElement, track } from 'lwc';
|
|
2
|
-
|
|
3
|
-
// Add <datatable-custom-datatable-wrapper></datatable-custom-datatable-wrapper> to the lwr-playground to see the table
|
|
4
|
-
|
|
5
|
-
const columns = [
|
|
6
|
-
{
|
|
7
|
-
label: 'Reorder',
|
|
8
|
-
type: 'orderingButtons',
|
|
9
|
-
fixedWidth: 90,
|
|
10
|
-
fieldName: 'id',
|
|
11
|
-
typeAttributes: {
|
|
12
|
-
isFirstRow: { fieldName: 'isFirstRow' },
|
|
13
|
-
isLastRow: { fieldName: 'isLastRow' },
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
label: 'Account Name',
|
|
18
|
-
type: 'customName',
|
|
19
|
-
typeAttributes: {
|
|
20
|
-
accountName: { fieldName: 'name' },
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
label: 'Website',
|
|
25
|
-
fieldName: 'website',
|
|
26
|
-
type: 'customLink',
|
|
27
|
-
typeAttributes: {
|
|
28
|
-
label: { fieldName: 'name' },
|
|
29
|
-
tooltip: { fieldName: 'name' },
|
|
30
|
-
},
|
|
31
|
-
hideDefaultActions: true,
|
|
32
|
-
actions: [
|
|
33
|
-
{ label: 'Action 1', name: 'action1' },
|
|
34
|
-
{ label: 'Action 2', name: 'action2' },
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
label: 'Amount',
|
|
39
|
-
type: 'customNumber',
|
|
40
|
-
fieldName: 'amount',
|
|
41
|
-
editable: true,
|
|
42
|
-
typeAttributes: {
|
|
43
|
-
min: 0,
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{ label: 'Icon', type: 'iconPill' },
|
|
47
|
-
{
|
|
48
|
-
label: '',
|
|
49
|
-
type: 'deleteRowButton',
|
|
50
|
-
fieldName: 'id',
|
|
51
|
-
fixedWidth: 70,
|
|
52
|
-
typeAttributes: {
|
|
53
|
-
attrA: { fieldName: 'attrA' },
|
|
54
|
-
attrB: { fieldName: 'attrB' },
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
];
|
|
58
|
-
|
|
59
|
-
const exampleData = [
|
|
60
|
-
{
|
|
61
|
-
id: 1,
|
|
62
|
-
name: 'Name 1',
|
|
63
|
-
website: 'https://www.google.com',
|
|
64
|
-
amount: 200.0,
|
|
65
|
-
isFirstRow: true,
|
|
66
|
-
isLastRow: false,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: 2,
|
|
70
|
-
name: 'Name 2',
|
|
71
|
-
website: 'https://www.salesforce.com',
|
|
72
|
-
amount: 500000.0,
|
|
73
|
-
isFirstRow: false,
|
|
74
|
-
isLastRow: false,
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 3,
|
|
78
|
-
name: 'Name 3',
|
|
79
|
-
website: 'https://www.quora.com',
|
|
80
|
-
amount: 600.0,
|
|
81
|
-
isFirstRow: false,
|
|
82
|
-
isLastRow: true,
|
|
83
|
-
},
|
|
84
|
-
];
|
|
85
|
-
|
|
86
|
-
export default class CustomDatatableWrapper extends LightningElement {
|
|
87
|
-
@track data = exampleData;
|
|
88
|
-
@track columns = columns;
|
|
89
|
-
|
|
90
|
-
moveRowUp(event) {
|
|
91
|
-
const { rowId } = event.detail;
|
|
92
|
-
const index = findRowIndex(this.data, rowId);
|
|
93
|
-
if (index > 0) {
|
|
94
|
-
const row = this.data[index];
|
|
95
|
-
const previous = this.data[index - 1];
|
|
96
|
-
this.data = this.data
|
|
97
|
-
.slice(0, index - 1)
|
|
98
|
-
.concat([row, previous])
|
|
99
|
-
.concat(this.data.slice(index + 1));
|
|
100
|
-
if (index - 1 === 0) {
|
|
101
|
-
this.data[0].isFirstRow = true;
|
|
102
|
-
this.data[1].isFirstRow = false;
|
|
103
|
-
} else if (index === this.data.length - 1) {
|
|
104
|
-
this.data[index].isLastRow = true;
|
|
105
|
-
this.data[index - 1].isLastRow = false;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
moveRowDown(event) {
|
|
111
|
-
const { rowId } = event.detail;
|
|
112
|
-
const index = findRowIndex(this.data, rowId);
|
|
113
|
-
const length = this.data.length;
|
|
114
|
-
if (index < length - 1) {
|
|
115
|
-
const row = this.data[index];
|
|
116
|
-
const next = this.data[index + 1];
|
|
117
|
-
this.data = this.data
|
|
118
|
-
.slice(0, index)
|
|
119
|
-
.concat([next, row])
|
|
120
|
-
.concat(this.data.slice(index + 2));
|
|
121
|
-
if (index === 0) {
|
|
122
|
-
this.data[0].isFirstRow = true;
|
|
123
|
-
this.data[1].isFirstRow = false;
|
|
124
|
-
} else if (index === this.data.length - 2) {
|
|
125
|
-
this.data[index].isLastRow = false;
|
|
126
|
-
this.data[index + 1].isLastRow = true;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
deleteRow(event) {
|
|
132
|
-
const { rowId } = event.detail;
|
|
133
|
-
const index = findRowIndex(this.data, rowId);
|
|
134
|
-
const length = this.data.length;
|
|
135
|
-
if (index >= 0) {
|
|
136
|
-
this.data = this.data
|
|
137
|
-
.slice(0, index)
|
|
138
|
-
.concat(this.data.slice(index + 1));
|
|
139
|
-
if (index === 0) {
|
|
140
|
-
this.data[0].isFirstRow = true;
|
|
141
|
-
} else if (index === length - 1) {
|
|
142
|
-
this.data[length - 2].isLastRow = true;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function findRowIndex(data, rowId) {
|
|
149
|
-
let index = -1;
|
|
150
|
-
data.some((row, i) => {
|
|
151
|
-
if (row.id === rowId) {
|
|
152
|
-
index = i;
|
|
153
|
-
return true;
|
|
154
|
-
}
|
|
155
|
-
return false;
|
|
156
|
-
});
|
|
157
|
-
return index;
|
|
158
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<p><lightning-formatted-url value={url} tooltip="Omit leading slash" label={label} target="_blank"></lightning-formatted-url></p>
|
|
4
|
-
<p><lightning-formatted-url value={url} tooltip="Use full domain name" label={label}
|
|
5
|
-
target="_blank"></lightning-formatted-url></p>
|
|
6
|
-
<p><lightning-formatted-url value={url} tooltip="Use https://domain-name"
|
|
7
|
-
label={label} target="_blank"></lightning-formatted-url></p>
|
|
8
|
-
</div>
|
|
9
|
-
</template>
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { LightningElement, api } from 'lwc';
|
|
2
|
-
import mix from 'lightning/mixinBuilder';
|
|
3
|
-
import { baseNavigation } from 'lightning/datatableKeyboardMixins';
|
|
4
|
-
import template from './customDatatypeRowOrderingBtn.html';
|
|
5
|
-
|
|
6
|
-
export default class CustomDatatypeRowOrderingBtn extends mix(
|
|
7
|
-
LightningElement
|
|
8
|
-
).with(baseNavigation) {
|
|
9
|
-
@api rowId;
|
|
10
|
-
@api isFirstRow;
|
|
11
|
-
@api isLastRow;
|
|
12
|
-
|
|
13
|
-
render() {
|
|
14
|
-
return template;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
fireMoveRowUp() {
|
|
18
|
-
const event = new CustomEvent('privatemoverowup', {
|
|
19
|
-
composed: true,
|
|
20
|
-
bubbles: true,
|
|
21
|
-
cancelable: true,
|
|
22
|
-
detail: {
|
|
23
|
-
rowId: this.rowId,
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
this.dispatchEvent(event);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
fireMoveRowDown() {
|
|
30
|
-
const event = new CustomEvent('privatemoverowdown', {
|
|
31
|
-
composed: true,
|
|
32
|
-
bubbles: true,
|
|
33
|
-
cancelable: true,
|
|
34
|
-
detail: {
|
|
35
|
-
rowId: this.rowId,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
this.dispatchEvent(event);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieves the dirty/unsaved value of a cell that resulted from an inline
|
|
3
|
-
* edit change. If no change was made on the cell, this function
|
|
4
|
-
* returns `undefined`.
|
|
5
|
-
*
|
|
6
|
-
* @param {Object} state - datatable's state object
|
|
7
|
-
* @param {String} rowKeyValue - computed id for the row
|
|
8
|
-
* @param {String} colKeyValue - computed id for the column
|
|
9
|
-
* @returns {String} The dirty/unsaved value of the cell.
|
|
10
|
-
* If no change was made, this returns `undefined`
|
|
11
|
-
*/
|
|
12
|
-
export function getDirtyValueFromCell(state, rowKeyValue, colKeyValue) {
|
|
13
|
-
const dirtyValues = state.inlineEdit.dirtyValues;
|
|
14
|
-
|
|
15
|
-
if (
|
|
16
|
-
dirtyValues &&
|
|
17
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
18
|
-
dirtyValues.hasOwnProperty(rowKeyValue) &&
|
|
19
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
20
|
-
dirtyValues[rowKeyValue].hasOwnProperty(colKeyValue)
|
|
21
|
-
) {
|
|
22
|
-
return dirtyValues[rowKeyValue][colKeyValue];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IMPORTANT: This ResizeSensor is only used in the event that the standard ResizeObserver
|
|
3
|
-
* is NOT available on the browser.
|
|
4
|
-
*
|
|
5
|
-
* Currently only IE11 does not support the ResizeObserver. We should be able to
|
|
6
|
-
* remove this once we fully drop support of IE11.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Based on Marc J. Schmidt library: https://github.com/marcj/css-element-queries/blob/master
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
class EventQueue {
|
|
14
|
-
q = [];
|
|
15
|
-
|
|
16
|
-
add(ev) {
|
|
17
|
-
this.q.push(ev);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
call(sizeInfo) {
|
|
21
|
-
for (let i = 0, j = this.q.length; i < j; i++) {
|
|
22
|
-
this.q[i].call(this, sizeInfo);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
remove(ev) {
|
|
27
|
-
const newQueue = [];
|
|
28
|
-
for (let i = 0, j = this.q.length; i < j; i++) {
|
|
29
|
-
if (this.q[i] !== ev) {
|
|
30
|
-
newQueue.push(this.q[i]);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.q = newQueue;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
length() {
|
|
37
|
-
return this.q.length;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Get element size
|
|
43
|
-
*
|
|
44
|
-
* @param {HTMLElement} element Element to return the size.
|
|
45
|
-
* @returns {Object} {width, height}
|
|
46
|
-
*/
|
|
47
|
-
function getElementSize(element) {
|
|
48
|
-
const rect = element.getBoundingClientRect();
|
|
49
|
-
return {
|
|
50
|
-
width: Math.round(rect.width),
|
|
51
|
-
height: Math.round(rect.height),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function createResizeSensor() {
|
|
56
|
-
const resizeSensor = document.createElement('div');
|
|
57
|
-
resizeSensor.dir = 'ltr';
|
|
58
|
-
resizeSensor.className = 'resize-sensor';
|
|
59
|
-
const style =
|
|
60
|
-
'position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;';
|
|
61
|
-
const styleChild = 'position: absolute; left: 0; top: 0; transition: 0s;';
|
|
62
|
-
|
|
63
|
-
resizeSensor.style.cssText = style;
|
|
64
|
-
// eslint-disable-next-line @lwc/lwc/no-inner-html
|
|
65
|
-
resizeSensor.innerHTML =
|
|
66
|
-
`<div class="resize-sensor-expand" style="${style}">` +
|
|
67
|
-
`<div style="${styleChild}"></div>` +
|
|
68
|
-
`</div>` +
|
|
69
|
-
`<div class="resize-sensor-shrink" style="${style}">` +
|
|
70
|
-
`<div style="${styleChild} width: 200%; height: 200%"></div>` +
|
|
71
|
-
`</div>`;
|
|
72
|
-
|
|
73
|
-
return resizeSensor;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Attaches the resize event to an element
|
|
78
|
-
*
|
|
79
|
-
* @param {HTMLElement} element Element to listen resize
|
|
80
|
-
* @param {Function} resizeListener Resize event listener
|
|
81
|
-
*/
|
|
82
|
-
function attachResizeEvent(element, resizeListener) {
|
|
83
|
-
if (!element) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (element.resizedAttached) {
|
|
87
|
-
element.resizedAttached.add(resizeListener);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
element.resizedAttached = new EventQueue();
|
|
92
|
-
element.resizedAttached.add(resizeListener);
|
|
93
|
-
|
|
94
|
-
const resizeSensor = createResizeSensor();
|
|
95
|
-
element.resizeSensor = resizeSensor;
|
|
96
|
-
element.appendChild(resizeSensor);
|
|
97
|
-
|
|
98
|
-
const position = (
|
|
99
|
-
window.getComputedStyle(element) || element.style
|
|
100
|
-
).getPropertyValue('position');
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
position !== 'absolute' &&
|
|
104
|
-
position !== 'relative' &&
|
|
105
|
-
position !== 'fixed'
|
|
106
|
-
) {
|
|
107
|
-
element.style.position = 'relative';
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const expand = resizeSensor.childNodes[0];
|
|
111
|
-
const expandChild = expand.childNodes[0];
|
|
112
|
-
const shrink = resizeSensor.childNodes[1];
|
|
113
|
-
|
|
114
|
-
let dirty, rafId;
|
|
115
|
-
let size = getElementSize(element);
|
|
116
|
-
let lastWidth = size.width;
|
|
117
|
-
let lastHeight = size.height;
|
|
118
|
-
let initialHiddenCheck = true,
|
|
119
|
-
resetRafId;
|
|
120
|
-
|
|
121
|
-
const resetExpandShrink = function () {
|
|
122
|
-
expandChild.style.width = '100000px';
|
|
123
|
-
expandChild.style.height = '100000px';
|
|
124
|
-
|
|
125
|
-
expand.scrollLeft = 100000;
|
|
126
|
-
expand.scrollTop = 100000;
|
|
127
|
-
|
|
128
|
-
shrink.scrollLeft = 100000;
|
|
129
|
-
shrink.scrollTop = 100000;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
const reset = function () {
|
|
133
|
-
// Check if element is hidden
|
|
134
|
-
if (initialHiddenCheck) {
|
|
135
|
-
if (!expand.scrollTop && !expand.scrollLeft) {
|
|
136
|
-
// reset
|
|
137
|
-
resetExpandShrink();
|
|
138
|
-
|
|
139
|
-
// Check in next frame
|
|
140
|
-
if (!resetRafId) {
|
|
141
|
-
// eslint-disable-next-line @lwc/lwc/no-async-operation
|
|
142
|
-
resetRafId = requestAnimationFrame(() => {
|
|
143
|
-
resetRafId = 0;
|
|
144
|
-
reset();
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
initialHiddenCheck = false;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
resetExpandShrink();
|
|
155
|
-
};
|
|
156
|
-
resizeSensor.resetSensor = reset;
|
|
157
|
-
|
|
158
|
-
const onResized = function () {
|
|
159
|
-
rafId = 0;
|
|
160
|
-
|
|
161
|
-
if (!dirty) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
lastWidth = size.width;
|
|
166
|
-
lastHeight = size.height;
|
|
167
|
-
|
|
168
|
-
if (element.resizedAttached) {
|
|
169
|
-
element.resizedAttached.call(size);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const onScroll = function () {
|
|
174
|
-
size = getElementSize(element);
|
|
175
|
-
dirty = size.width !== lastWidth || size.height !== lastHeight;
|
|
176
|
-
|
|
177
|
-
if (dirty && !rafId) {
|
|
178
|
-
// eslint-disable-next-line @lwc/lwc/no-async-operation
|
|
179
|
-
rafId = requestAnimationFrame(onResized);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
reset();
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
const addEvent = function (el, name, cb) {
|
|
186
|
-
el.addEventListener(name, cb);
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
addEvent(expand, 'scroll', onScroll);
|
|
190
|
-
addEvent(shrink, 'scroll', onScroll);
|
|
191
|
-
|
|
192
|
-
// Fix for custom Elements
|
|
193
|
-
// eslint-disable-next-line @lwc/lwc/no-async-operation
|
|
194
|
-
requestAnimationFrame(reset);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Removes a resize event from an element.
|
|
199
|
-
*
|
|
200
|
-
* @param {HTMLElement} element Element to remove resize listener from
|
|
201
|
-
* @param {Event} event The event to remove
|
|
202
|
-
*/
|
|
203
|
-
function detach(elem, ev) {
|
|
204
|
-
if (!elem) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
if (elem.resizedAttached && typeof ev === 'function') {
|
|
208
|
-
elem.resizedAttached.remove(ev);
|
|
209
|
-
if (elem.resizedAttached.length()) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
if (elem.resizeSensor) {
|
|
214
|
-
if (elem.contains(elem.resizeSensor)) {
|
|
215
|
-
elem.removeChild(elem.resizeSensor);
|
|
216
|
-
}
|
|
217
|
-
delete elem.resizeSensor;
|
|
218
|
-
delete elem.resizedAttached;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
export class ResizeSensor {
|
|
223
|
-
constructor(element, resizeListener) {
|
|
224
|
-
this.targetElement = element;
|
|
225
|
-
this.resizeListener = resizeListener;
|
|
226
|
-
|
|
227
|
-
attachResizeEvent(this.targetElement, this.resizeListener);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
detach() {
|
|
231
|
-
detach(this.targetElement, this.resizeListener);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Reattach resize event with existing target element and listener
|
|
235
|
-
reattach(targetElement) {
|
|
236
|
-
this.targetElement = targetElement;
|
|
237
|
-
|
|
238
|
-
attachResizeEvent(this.targetElement, this.resizeListener);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
reset() {
|
|
242
|
-
this.targetElement.resizeSensor.resetSensor();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
urlRegexString,
|
|
3
|
-
emailRegexString,
|
|
4
|
-
tagRegexString,
|
|
5
|
-
createHttpHref,
|
|
6
|
-
createEmailHref,
|
|
7
|
-
} from 'lightning/utilsPrivate';
|
|
8
|
-
|
|
9
|
-
const linkRegex = new RegExp(
|
|
10
|
-
`${tagRegexString}|${emailRegexString}|${urlRegexString}`,
|
|
11
|
-
'gi'
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
const createHttpLink = function (match) {
|
|
15
|
-
const href = createHttpHref(match);
|
|
16
|
-
return `<a href="${href}" target="_blank" rel="noopener">${match}</a>`;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const createEmailLink = function (match) {
|
|
20
|
-
const href = createEmailHref(match);
|
|
21
|
-
return `<a href="${href}">${match}</a>`;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const linkify = function (text) {
|
|
25
|
-
if (typeof text !== 'string') {
|
|
26
|
-
return '';
|
|
27
|
-
}
|
|
28
|
-
return text.replace(linkRegex, (match, tagMatch, emailMatch, hrefMatch) => {
|
|
29
|
-
if (tagMatch) {
|
|
30
|
-
return tagMatch;
|
|
31
|
-
} else if (hrefMatch) {
|
|
32
|
-
const endsWithQuote = hrefMatch.endsWith('"');
|
|
33
|
-
let href = hrefMatch;
|
|
34
|
-
if (endsWithQuote) {
|
|
35
|
-
href = hrefMatch.slice(0, hrefMatch.lastIndexOf('"'));
|
|
36
|
-
}
|
|
37
|
-
return createHttpLink(href) + (endsWithQuote ? '"' : '');
|
|
38
|
-
} else if (emailMatch) {
|
|
39
|
-
return createEmailLink(emailMatch);
|
|
40
|
-
}
|
|
41
|
-
return match;
|
|
42
|
-
});
|
|
43
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Set an attribute on an element, if it's a normal element
|
|
3
|
-
* it will use setAttribute, if it's an LWC component
|
|
4
|
-
* it will use the public property
|
|
5
|
-
*
|
|
6
|
-
* @param {HTMLElement} element The element to act on
|
|
7
|
-
* @param {String} attribute the attribute to set
|
|
8
|
-
* @param {Any} value the value to set
|
|
9
|
-
*/
|
|
10
|
-
export function smartSetAttribute(element, attribute, value) {
|
|
11
|
-
if (element.tagName.match(/^LIGHTNING/i)) {
|
|
12
|
-
attribute = attribute.replace(/-\w/g, (m) => m[1].toUpperCase());
|
|
13
|
-
element[attribute] = value ? value : null;
|
|
14
|
-
} else if (value) {
|
|
15
|
-
element.setAttribute(attribute, value);
|
|
16
|
-
} else {
|
|
17
|
-
element.removeAttribute(attribute);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
File without changes
|
|
File without changes
|