lightning-base-components 1.28.15-alpha → 1.28.17-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 +67 -1
- package/package.json +41 -1
- package/scopedImports/@salesforce-label-LightningControl.indeterminate.js +6 -0
- package/scopedImports/@salesforce-label-LightningDynamicList.focusModeReminder.js +6 -0
- package/scopedImports/@salesforce-label-LightningDynamicList.focusModeSuggestion.js +6 -0
- package/scopedImports/@salesforce-label-LightningRichTextAssist.composeText.js +1 -1
- package/src/lightning/baseCombobox/baseCombobox.d.ts +1 -1
- package/src/lightning/baseCombobox/baseCombobox.d.ts.map +1 -1
- package/src/lightning/baseCombobox/baseCombobox.js +6 -1
- package/src/lightning/button/button.css +4 -0
- package/src/lightning/buttonIcon/buttonIcon.css +4 -0
- package/src/lightning/buttonStateful/buttonStateful.css +4 -0
- package/src/lightning/combobox/combobox.d.ts.map +1 -1
- package/src/lightning/combobox/combobox.js +1 -1
- package/src/lightning/datepicker/datepicker.html +1 -0
- package/src/lightning/dualListbox/dualListbox.d.ts +11 -1
- package/src/lightning/dualListbox/dualListbox.d.ts.map +1 -1
- package/src/lightning/dualListbox/dualListbox.html +5 -5
- package/src/lightning/dualListbox/dualListbox.js +43 -4
- package/src/lightning/dualListbox/dualListbox.lbc.empty.css +8 -0
- package/src/lightning/dualListbox/dualListbox.lbc.resizereflow.css +59 -0
- package/src/lightning/features/gates/imports.d.ts +6 -0
- package/src/lightning/features/gates/imports.d.ts.map +1 -1
- package/src/lightning/features/gates/imports.js +6 -0
- package/src/lightning/features/types.d.ts +6 -0
- package/src/lightning/features/types.d.ts.map +1 -1
- package/src/lightning/fileDownload/resourceResolver.js +1 -1
- package/src/lightning/formattedRichText/colorShiftUtil.d.ts +17 -0
- package/src/lightning/formattedRichText/colorShiftUtil.d.ts.map +1 -0
- package/src/lightning/formattedRichText/colorShiftUtil.js +118 -0
- package/src/lightning/formattedRichText/formattedRichText.csr.html +3 -0
- package/src/lightning/formattedRichText/formattedRichText.d.ts +54 -1
- package/src/lightning/formattedRichText/formattedRichText.d.ts.map +1 -1
- package/src/lightning/formattedRichText/formattedRichText.js +247 -1
- package/src/lightning/formattedRichText/formattedRichText.ssr.html +8 -0
- package/src/lightning/formattedRichText/linkTextNodesSSR.d.ts +2 -0
- package/src/lightning/formattedRichText/linkTextNodesSSR.d.ts.map +1 -0
- package/src/lightning/formattedRichText/linkTextNodesSSR.js +37 -0
- package/src/lightning/formattedRichText/richTextConfig.d.ts +9 -0
- package/src/lightning/formattedRichText/richTextConfig.d.ts.map +1 -0
- package/src/lightning/formattedRichText/richTextConfig.js +176 -0
- package/src/lightning/formattedRichTextRenderer/formattedRichTextRenderer.d.ts.map +1 -1
- package/src/lightning/formattedRichTextRenderer/formattedRichTextRenderer.js +16 -12
- package/src/lightning/groupedCombobox/groupedCombobox.d.ts +1 -4
- package/src/lightning/groupedCombobox/groupedCombobox.d.ts.map +1 -1
- package/src/lightning/groupedCombobox/groupedCombobox.js +10 -12
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/record_companion_agent.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/send_to_flow.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/shift_ui.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/standard/table_code.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/templates.d.ts +70 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +36 -1
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/alt_lock.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/alt_unlock.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/conversation_catch_up.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/einstein_replies.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/in_app_messaging.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/macros.html +1 -1
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/operations_plan.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/recent.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/recenter.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/recenter_alt.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/scheduling_policy.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_canvas_content.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_file.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_image.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_list.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_list_item.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_message.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_microphone.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_new_window.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/slack_video.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/table_checked.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/table_code.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/table_interpreter.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/table_sparkle.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/two_way.html +7 -0
- package/src/lightning/iconSvgTemplates/buildTemplates/utility/voice_mode.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/record_companion_agent.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/send_to_flow.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/shift_ui.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.d.ts +70 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +36 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/alt_lock.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/alt_unlock.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/conversation_catch_up.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/einstein_replies.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/in_app_messaging.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/macros.html +1 -1
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/operations_plan.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/recent.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/recenter.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/recenter_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/scheduling_policy.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_canvas_content.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_file.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_image.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_list.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_list_item.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_message.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_microphone.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_new_window.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/slack_video.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/table_checked.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/table_interpreter.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/table_sparkle.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/two_way.html +7 -0
- package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/voice_mode.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/record_companion_agent.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/send_to_flow.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/shift_ui.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.d.ts +14 -0
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +8 -1
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/record_companion_agent.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/send_to_flow.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/shift_ui.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.d.ts +14 -0
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +8 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.d.ts +56 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +29 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/alt_lock.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/alt_unlock.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/conversation_catch_up.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/einstein_replies.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/in_app_messaging.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/macros.html +1 -1
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/operations_plan.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/recent.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/recenter.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/recenter_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/scheduling_policy.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_canvas_content.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_file.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_image.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_list.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_list_item.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_message.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_microphone.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_new_window.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/slack_video.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/table_checked.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/table_interpreter.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/table_sparkle.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/two_way.html +7 -0
- package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/voice_mode.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.d.ts +56 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.d.ts.map +1 -1
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +29 -1
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/alt_lock.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/alt_unlock.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/conversation_catch_up.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/einstein_replies.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/hierarchy_table.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/in_app_messaging.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/inspector_brief.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/macros.html +1 -1
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/operations_plan.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/rcs_message.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/recent.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/recenter.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/recenter_alt.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/scheduling_policy.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_canvas_content.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_file.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_image.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_list.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_list_item.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_message.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_microphone.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_new_window.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/slack_video.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/table_checked.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/table_code.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/table_interpreter.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/table_sparkle.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/two_way.html +7 -0
- package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/voice_mode.html +7 -0
- package/src/lightning/iconUtils/iconColors.d.ts +7 -0
- package/src/lightning/iconUtils/iconColors.d.ts.map +1 -1
- package/src/lightning/iconUtils/iconColors.js +1 -1
- package/src/lightning/input/input.d.ts +4 -0
- package/src/lightning/input/input.d.ts.map +1 -1
- package/src/lightning/input/input.html +41 -18
- package/src/lightning/input/input.js +30 -0
- package/src/lightning/modalBase/modalBase.d.ts +1 -0
- package/src/lightning/modalBase/modalBase.d.ts.map +1 -1
- package/src/lightning/modalBase/modalBase.html +8 -0
- package/src/lightning/modalBase/modalBase.js +4 -1
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.d.ts +1 -0
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.d.ts.map +1 -1
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.html +1 -1
- package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js +14 -0
- package/src/lightning/positionLibrary/util.d.ts.map +1 -1
- package/src/lightning/positionLibrary/util.js +3 -0
- package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.js +1 -1
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.d.ts +5 -1
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.d.ts.map +1 -1
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +35 -1
- package/src/lightning/purifyLib/purify.d.ts.map +1 -1
- package/src/lightning/purifyLib/purify.js +76 -25
- package/src/lightning/purifyLib/purifyLib.d.ts +3 -0
- package/src/lightning/purifyLib/purifyLib.d.ts.map +1 -1
- package/src/lightning/purifyLib/purifyLib.js +15 -0
- package/src/lightning/tabBar/tabBar.d.ts.map +1 -1
- package/src/lightning/tabBar/tabBar.js +4 -1
- package/src/lightning/textarea/textarea.lbc.readonly.css +1 -1
- package/src/lightning/tooltipLibrary/tooltipLibrary.d.ts +3 -0
- package/src/lightning/tooltipLibrary/tooltipLibrary.d.ts.map +1 -1
- package/src/lightning/tooltipLibrary/tooltipLibrary.js +74 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
|
-
/*! @license DOMPurify 3.2
|
|
6
|
+
/*! @license DOMPurify 3.3.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.2/LICENSE */
|
|
7
7
|
const { entries, setPrototypeOf, isFrozen, getPrototypeOf, getOwnPropertyDescriptor } = Object;
|
|
8
8
|
let { freeze, seal, create } = Object;
|
|
9
9
|
let { apply, construct } = typeof Reflect !== 'undefined' && Reflect;
|
|
@@ -18,12 +18,18 @@ if (!seal) {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
if (!apply) {
|
|
21
|
-
apply = function apply(
|
|
22
|
-
|
|
21
|
+
apply = function apply(func, thisArg) {
|
|
22
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
23
|
+
args[_key - 2] = arguments[_key];
|
|
24
|
+
}
|
|
25
|
+
return func.apply(thisArg, args);
|
|
23
26
|
};
|
|
24
27
|
}
|
|
25
28
|
if (!construct) {
|
|
26
|
-
construct = function construct(Func
|
|
29
|
+
construct = function construct(Func) {
|
|
30
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
31
|
+
args[_key2 - 1] = arguments[_key2];
|
|
32
|
+
}
|
|
27
33
|
return new Func(...args);
|
|
28
34
|
};
|
|
29
35
|
}
|
|
@@ -46,18 +52,18 @@ function unapply(func) {
|
|
|
46
52
|
if (thisArg instanceof RegExp) {
|
|
47
53
|
thisArg.lastIndex = 0;
|
|
48
54
|
}
|
|
49
|
-
for (var
|
|
50
|
-
args[
|
|
55
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
56
|
+
args[_key3 - 1] = arguments[_key3];
|
|
51
57
|
}
|
|
52
58
|
return apply(func, thisArg, args);
|
|
53
59
|
};
|
|
54
60
|
}
|
|
55
|
-
function unconstruct(
|
|
61
|
+
function unconstruct(Func) {
|
|
56
62
|
return function () {
|
|
57
|
-
for (var
|
|
58
|
-
args[
|
|
63
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
64
|
+
args[_key4] = arguments[_key4];
|
|
59
65
|
}
|
|
60
|
-
return construct(
|
|
66
|
+
return construct(Func, args);
|
|
61
67
|
};
|
|
62
68
|
}
|
|
63
69
|
function addToSet(set, array) {
|
|
@@ -126,15 +132,15 @@ function lookupGetter(object, prop) {
|
|
|
126
132
|
}
|
|
127
133
|
return fallbackValue;
|
|
128
134
|
}
|
|
129
|
-
const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
|
|
130
|
-
const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
|
|
135
|
+
const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
|
|
136
|
+
const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
|
|
131
137
|
const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
|
|
132
138
|
const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);
|
|
133
139
|
const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);
|
|
134
140
|
const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
|
|
135
141
|
const text = freeze(['#text']);
|
|
136
|
-
const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
|
|
137
|
-
const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
|
|
142
|
+
const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
|
|
143
|
+
const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
|
|
138
144
|
const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
|
|
139
145
|
const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
|
|
140
146
|
const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
|
|
@@ -218,7 +224,7 @@ const _createHooksMap = function _createHooksMap() {
|
|
|
218
224
|
function createDOMPurify() {
|
|
219
225
|
let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
|
|
220
226
|
const DOMPurify = root => createDOMPurify(root);
|
|
221
|
-
DOMPurify.version = '3.2
|
|
227
|
+
DOMPurify.version = '3.3.2';
|
|
222
228
|
DOMPurify.removed = [];
|
|
223
229
|
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
|
|
224
230
|
DOMPurify.isSupported = false;
|
|
@@ -274,6 +280,20 @@ function createDOMPurify() {
|
|
|
274
280
|
}));
|
|
275
281
|
let FORBID_TAGS = null;
|
|
276
282
|
let FORBID_ATTR = null;
|
|
283
|
+
const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
|
|
284
|
+
tagCheck: {
|
|
285
|
+
writable: true,
|
|
286
|
+
configurable: false,
|
|
287
|
+
enumerable: true,
|
|
288
|
+
value: null
|
|
289
|
+
},
|
|
290
|
+
attributeCheck: {
|
|
291
|
+
writable: true,
|
|
292
|
+
configurable: false,
|
|
293
|
+
enumerable: true,
|
|
294
|
+
value: null
|
|
295
|
+
}
|
|
296
|
+
}));
|
|
277
297
|
let ALLOW_ARIA_ATTR = true;
|
|
278
298
|
let ALLOW_DATA_ATTR = true;
|
|
279
299
|
let ALLOW_UNKNOWN_PROTOCOLS = false;
|
|
@@ -375,7 +395,7 @@ function createDOMPurify() {
|
|
|
375
395
|
}
|
|
376
396
|
if (USE_PROFILES) {
|
|
377
397
|
ALLOWED_TAGS = addToSet({}, text);
|
|
378
|
-
ALLOWED_ATTR =
|
|
398
|
+
ALLOWED_ATTR = create(null);
|
|
379
399
|
if (USE_PROFILES.html === true) {
|
|
380
400
|
addToSet(ALLOWED_TAGS, html$1);
|
|
381
401
|
addToSet(ALLOWED_ATTR, html);
|
|
@@ -396,17 +416,33 @@ function createDOMPurify() {
|
|
|
396
416
|
addToSet(ALLOWED_ATTR, xml);
|
|
397
417
|
}
|
|
398
418
|
}
|
|
419
|
+
if (!objectHasOwnProperty(cfg, 'ADD_TAGS')) {
|
|
420
|
+
EXTRA_ELEMENT_HANDLING.tagCheck = null;
|
|
421
|
+
}
|
|
422
|
+
if (!objectHasOwnProperty(cfg, 'ADD_ATTR')) {
|
|
423
|
+
EXTRA_ELEMENT_HANDLING.attributeCheck = null;
|
|
424
|
+
}
|
|
399
425
|
if (cfg.ADD_TAGS) {
|
|
400
|
-
if (
|
|
401
|
-
|
|
426
|
+
if (typeof cfg.ADD_TAGS === 'function') {
|
|
427
|
+
EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
|
|
431
|
+
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
432
|
+
}
|
|
433
|
+
addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
|
|
402
434
|
}
|
|
403
|
-
addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
|
|
404
435
|
}
|
|
405
436
|
if (cfg.ADD_ATTR) {
|
|
406
|
-
if (
|
|
407
|
-
|
|
437
|
+
if (typeof cfg.ADD_ATTR === 'function') {
|
|
438
|
+
EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
|
|
442
|
+
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
443
|
+
}
|
|
444
|
+
addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
|
|
408
445
|
}
|
|
409
|
-
addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
|
|
410
446
|
}
|
|
411
447
|
if (cfg.ADD_URI_SAFE_ATTR) {
|
|
412
448
|
addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
|
|
@@ -417,6 +453,12 @@ function createDOMPurify() {
|
|
|
417
453
|
}
|
|
418
454
|
addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
|
|
419
455
|
}
|
|
456
|
+
if (cfg.ADD_FORBID_CONTENTS) {
|
|
457
|
+
if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
|
|
458
|
+
FORBID_CONTENTS = clone(FORBID_CONTENTS);
|
|
459
|
+
}
|
|
460
|
+
addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
|
|
461
|
+
}
|
|
420
462
|
if (KEEP_CONTENT) {
|
|
421
463
|
ALLOWED_TAGS['#text'] = true;
|
|
422
464
|
}
|
|
@@ -612,7 +654,7 @@ function createDOMPurify() {
|
|
|
612
654
|
_forceRemove(currentNode);
|
|
613
655
|
return true;
|
|
614
656
|
}
|
|
615
|
-
if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
|
|
657
|
+
if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
|
|
616
658
|
if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
|
|
617
659
|
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
|
|
618
660
|
return false;
|
|
@@ -660,6 +702,9 @@ function createDOMPurify() {
|
|
|
660
702
|
return false;
|
|
661
703
|
};
|
|
662
704
|
const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
|
|
705
|
+
if (FORBID_ATTR[lcName]) {
|
|
706
|
+
return false;
|
|
707
|
+
}
|
|
663
708
|
if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
|
|
664
709
|
return false;
|
|
665
710
|
}
|
|
@@ -667,8 +712,10 @@ function createDOMPurify() {
|
|
|
667
712
|
;
|
|
668
713
|
else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName))
|
|
669
714
|
;
|
|
715
|
+
else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag))
|
|
716
|
+
;
|
|
670
717
|
else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
|
|
671
|
-
if (_isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||
|
|
718
|
+
if (_isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
|
|
672
719
|
lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)))
|
|
673
720
|
;
|
|
674
721
|
else {
|
|
@@ -723,7 +770,11 @@ function createDOMPurify() {
|
|
|
723
770
|
_removeAttribute(name, currentNode);
|
|
724
771
|
value = SANITIZE_NAMED_PROPS_PREFIX + value;
|
|
725
772
|
}
|
|
726
|
-
if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
|
|
773
|
+
if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {
|
|
774
|
+
_removeAttribute(name, currentNode);
|
|
775
|
+
continue;
|
|
776
|
+
}
|
|
777
|
+
if (lcName === 'attributename' && stringMatch(value, 'href')) {
|
|
727
778
|
_removeAttribute(name, currentNode);
|
|
728
779
|
continue;
|
|
729
780
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purifyLib.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/purifyLib/purifyLib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"purifyLib.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/purifyLib/purifyLib.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IAEpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE;QACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC/D,CAAC;CACL;AA4BD,MAAM,CAAC,OAAO,UAAU,YAAY,CAChC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,CAAC,EAAE,cAAc,GACxB,MAAM,CAeR"}
|
|
@@ -4,6 +4,21 @@
|
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
6
|
import DOMPurify from './purify.js';
|
|
7
|
+
import { features } from 'lightning/features';
|
|
7
8
|
export default function sanitizeHTML(dirty, config) {
|
|
9
|
+
if (features.enableaftersanitizationhook) {
|
|
10
|
+
const hook = config?.hook?.afterSanitizeAttributes;
|
|
11
|
+
if (hook) {
|
|
12
|
+
DOMPurify.addHook('afterSanitizeAttributes', hook);
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
return DOMPurify.sanitize(dirty, config);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
if (hook) {
|
|
19
|
+
DOMPurify.removeHook('afterSanitizeAttributes', hook);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
8
23
|
return DOMPurify.sanitize(dirty, config);
|
|
9
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabBar.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/tabBar/tabBar.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tabBar.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/tabBar/tabBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -405,6 +405,10 @@ export default class LightningTabBar extends LightningShadowBaseClass {
|
|
|
405
405
|
if (!this._connected) {
|
|
406
406
|
return;
|
|
407
407
|
}
|
|
408
|
+
const overflowElement = this.template.querySelector('[data-overflow]');
|
|
409
|
+
if (!overflowElement) {
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
408
412
|
const containerWidth = this.getBoundingClientRect().width -
|
|
409
413
|
RECOMPUTE_OVERFLOW_THRESHOLD_PX;
|
|
410
414
|
const tabHeaderElements = this.template.querySelectorAll('[data-tab]');
|
|
@@ -421,7 +425,6 @@ export default class LightningTabBar extends LightningShadowBaseClass {
|
|
|
421
425
|
}
|
|
422
426
|
tab.width = tabWidth;
|
|
423
427
|
}
|
|
424
|
-
const overflowElement = this.template.querySelector('[data-overflow]');
|
|
425
428
|
const overflowData = calculateOverflow({
|
|
426
429
|
items: this._allTabs,
|
|
427
430
|
activeItem: this._selectedTab,
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
|
|
167
167
|
.slds-form-element__static.fix-slds-form-element__static {
|
|
168
168
|
font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-1));
|
|
169
|
-
font-weight: var(--slds-
|
|
169
|
+
font-weight: var(--slds-g-font-weight-4);
|
|
170
170
|
color: var(--slds-s-label-color, var(--slds-g-color-neutral-base-10));
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -38,10 +38,13 @@ export declare class Tooltip {
|
|
|
38
38
|
_element: () => any;
|
|
39
39
|
_type: string;
|
|
40
40
|
boundHandleTooltipMouseLeave?: (event: MouseEvent | Event) => void;
|
|
41
|
+
_modalPortalElement: HTMLElement | null;
|
|
42
|
+
_isTooltipInModal: boolean;
|
|
41
43
|
constructor(value: string, config: TooltipConfig);
|
|
42
44
|
detach(): void;
|
|
43
45
|
attach(): void;
|
|
44
46
|
initialize(): void;
|
|
47
|
+
getDescriptionElement(): HTMLElement | null;
|
|
45
48
|
disconnect(): void;
|
|
46
49
|
addInfoListeners(): void;
|
|
47
50
|
hideIfNotSelfCover(event: MouseEvent | KeyboardEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipLibrary.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/tooltipLibrary/tooltipLibrary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAa,MAAM,2BAA2B,CAAC;AASpE,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,eAAO,MAAM,aAAa,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltipLibrary.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/tooltipLibrary/tooltipLibrary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAa,MAAM,2BAA2B,CAAC;AASpE,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,eAAO,MAAM,aAAa,wCAAwC,CAAC;AAqFnE,eAAO,MAAM,WAAW;;;CAGd,CAAC;AASX,KAAK,aAAa,GAAG;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,WAAW,CAAC;IAC5B,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,OAAO;IAChB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAQ;IAC1C,SAAS,UAAQ;IACjB,YAAY,UAAS;IACrB,QAAQ,UAAS;IACjB,aAAa,UAAS;IACtB,cAAc,UAAQ;IACtB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAQ;IAC1C,eAAe,MAAC;IAChB,OAAO,EAAE,aAAa,CAAM;IAC5B,MAAM,EAAE,MAAM,CAAM;IACpB,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC;IAEnE,mBAAmB,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE/C,iBAAiB,EAAE,OAAO,CAAS;gBASvB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAwChD,MAAM,IAAI,IAAI;IAOd,MAAM,IAAI,IAAI;IAQd,UAAU,IAAI,IAAI;IA+BlB,qBAAqB,IAAI,WAAW,GAAG,IAAI;IAO3C,UAAU,IAAI,IAAI;IAWlB,gBAAgB,IAAI,IAAI;IAsBxB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAyC3D,mBAAmB,IAAI,IAAI;IAiB3B,wBAAwB,UAAW,UAAU,GAAG,KAAK,KAAG,IAAI,CAoC1D;IAEF,kBAAkB,IAAI,IAAI;IA2B1B,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAUpC,IAAI,cAAc,IAAI,cAAc,CA6CnC;IAED,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI;IAqGtB,IAAI,CAAC,UAAU,GAAE,OAAc,GAAG,IAAI;IAmDtC,MAAM,IAAI,IAAI;IAQd,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAGtB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCjC,eAAe,IAAI,IAAI;IAMvB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,cAAc;CAU7D"}
|
|
@@ -11,7 +11,10 @@ import AriaObserver from 'lightning/ariaObserver';
|
|
|
11
11
|
import { features } from 'lightning/features';
|
|
12
12
|
export { Direction } from 'lightning/positionLibrary';
|
|
13
13
|
export const BUBBLE_PREFIX = `salesforce-lightning-tooltip-bubble`;
|
|
14
|
-
const
|
|
14
|
+
const BUBBLE_MODAL_PREFIX = `salesforce-lightning-tooltip-modal-portal`;
|
|
15
|
+
const BUBBLE_GUID = guid();
|
|
16
|
+
const BUBBLE_ID = `${BUBBLE_PREFIX}_${BUBBLE_GUID}`;
|
|
17
|
+
const BUBBLE_MODAL_ID = `${BUBBLE_MODAL_PREFIX}_${BUBBLE_GUID}`;
|
|
15
18
|
function isResizeObserverSupported() {
|
|
16
19
|
return window.ResizeObserver != null;
|
|
17
20
|
}
|
|
@@ -23,6 +26,9 @@ function getCachedBubbleElement() {
|
|
|
23
26
|
is: LightningPrimitiveBubble,
|
|
24
27
|
});
|
|
25
28
|
CACHED_BUBBLE_ELEMENT.contentId = BUBBLE_ID;
|
|
29
|
+
CACHED_BUBBLE_ELEMENT.contentModalPortalId = features.enableHelptextA11yInModal
|
|
30
|
+
? BUBBLE_MODAL_ID
|
|
31
|
+
: undefined;
|
|
26
32
|
CACHED_BUBBLE_ELEMENT.style.position = 'absolute';
|
|
27
33
|
CACHED_BUBBLE_ELEMENT.style.minWidth = '75px';
|
|
28
34
|
CACHED_BUBBLE_ELEMENT.disableVisibilityChangeOnLeave = true;
|
|
@@ -30,6 +36,20 @@ function getCachedBubbleElement() {
|
|
|
30
36
|
return CACHED_BUBBLE_ELEMENT;
|
|
31
37
|
}
|
|
32
38
|
const ARIA_DESCRIBEDBY = 'aria-describedby';
|
|
39
|
+
const MODAL_SELECTOR = '[data-modal][aria-modal="true"]';
|
|
40
|
+
const MODAL_TOOLTIP_PORTAL_SELECTOR = '[data-modal-tooltip-portal]';
|
|
41
|
+
const BUBBLE_BODY_SELECTOR = '.slds-popover__body';
|
|
42
|
+
function findTooltipPortalElement(target) {
|
|
43
|
+
if (import.meta.env.SSR || !target) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const dialog = target.closest?.(MODAL_SELECTOR);
|
|
47
|
+
const HTMLElementCtor = globalThis?.HTMLElement;
|
|
48
|
+
if (!dialog || !HTMLElementCtor || !(dialog instanceof HTMLElementCtor)) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return dialog.querySelector?.(MODAL_TOOLTIP_PORTAL_SELECTOR);
|
|
52
|
+
}
|
|
33
53
|
const NUBBIN_SIZE = 16;
|
|
34
54
|
const NUBBIN_OFFSET = 24;
|
|
35
55
|
export const TooltipType = {
|
|
@@ -52,6 +72,8 @@ export class Tooltip {
|
|
|
52
72
|
_element;
|
|
53
73
|
_type;
|
|
54
74
|
boundHandleTooltipMouseLeave;
|
|
75
|
+
_modalPortalElement = null;
|
|
76
|
+
_isTooltipInModal = false;
|
|
55
77
|
constructor(value, config) {
|
|
56
78
|
assert(!!config.target, 'target for tooltip is undefined or missing');
|
|
57
79
|
this.value = value;
|
|
@@ -111,10 +133,18 @@ export class Tooltip {
|
|
|
111
133
|
this._initialized = true;
|
|
112
134
|
}
|
|
113
135
|
}
|
|
136
|
+
getDescriptionElement() {
|
|
137
|
+
const { _modalPortalElement, _isTooltipInModal } = this;
|
|
138
|
+
return features.enableHelptextA11yInModal && _isTooltipInModal && _modalPortalElement
|
|
139
|
+
? _modalPortalElement
|
|
140
|
+
: this._element();
|
|
141
|
+
}
|
|
114
142
|
disconnect() {
|
|
115
143
|
if (this._ariaObserver) {
|
|
116
144
|
this._ariaObserver.disconnect();
|
|
117
145
|
}
|
|
146
|
+
this._modalPortalElement = null;
|
|
147
|
+
this._isTooltipInModal = false;
|
|
118
148
|
if (this._visible) {
|
|
119
149
|
this.hide();
|
|
120
150
|
}
|
|
@@ -271,9 +301,36 @@ export class Tooltip {
|
|
|
271
301
|
this._visible = true;
|
|
272
302
|
this._initialResize = true;
|
|
273
303
|
const tooltip = this._element();
|
|
304
|
+
const target = this._target();
|
|
274
305
|
tooltip.visible = this._visible;
|
|
275
|
-
|
|
306
|
+
const { _value } = this;
|
|
307
|
+
tooltip.content = _value;
|
|
308
|
+
if (!import.meta.env.SSR &&
|
|
309
|
+
target &&
|
|
310
|
+
features.enableHelptextA11yInModal) {
|
|
311
|
+
this._modalPortalElement = null;
|
|
312
|
+
const portal = findTooltipPortalElement(target);
|
|
313
|
+
if (portal?.isConnected) {
|
|
314
|
+
this._modalPortalElement = portal;
|
|
315
|
+
this._isTooltipInModal = true;
|
|
316
|
+
portal.textContent = '';
|
|
317
|
+
portal.setAttribute('id', tooltip.contentModalPortalId);
|
|
318
|
+
portal.removeAttribute('aria-hidden');
|
|
319
|
+
const bubbleBody = tooltip.shadowRoot?.querySelector(BUBBLE_BODY_SELECTOR);
|
|
320
|
+
if (bubbleBody) {
|
|
321
|
+
bubbleBody.setAttribute('aria-hidden', 'true');
|
|
322
|
+
}
|
|
323
|
+
portal.textContent = _value;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
276
326
|
if (this._ariaObserver && this._root && this._root.isConnected) {
|
|
327
|
+
if (features.enableHelptextA11yInModal) {
|
|
328
|
+
this._ariaObserver.connect({
|
|
329
|
+
attribute: ARIA_DESCRIBEDBY,
|
|
330
|
+
targetNode: this._target(),
|
|
331
|
+
relatedNodes: this.getDescriptionElement(),
|
|
332
|
+
});
|
|
333
|
+
}
|
|
277
334
|
this._ariaObserver.sync();
|
|
278
335
|
}
|
|
279
336
|
this.startPositioning();
|
|
@@ -284,6 +341,21 @@ export class Tooltip {
|
|
|
284
341
|
hide(hideBubble = true) {
|
|
285
342
|
this._visible = false;
|
|
286
343
|
const tooltip = this._element();
|
|
344
|
+
const { _isTooltipInModal, _modalPortalElement } = this;
|
|
345
|
+
if (features.enableHelptextA11yInModal && _isTooltipInModal && _modalPortalElement) {
|
|
346
|
+
const portal = _modalPortalElement;
|
|
347
|
+
portal.setAttribute('aria-hidden', 'true');
|
|
348
|
+
portal.removeAttribute('id');
|
|
349
|
+
portal.textContent = '';
|
|
350
|
+
const bubbleBody = tooltip.shadowRoot
|
|
351
|
+
? tooltip.shadowRoot.querySelector(BUBBLE_BODY_SELECTOR)
|
|
352
|
+
: null;
|
|
353
|
+
if (bubbleBody) {
|
|
354
|
+
bubbleBody.removeAttribute('aria-hidden');
|
|
355
|
+
}
|
|
356
|
+
this._isTooltipInModal = false;
|
|
357
|
+
this._modalPortalElement = null;
|
|
358
|
+
}
|
|
287
359
|
if (hideBubble) {
|
|
288
360
|
tooltip.visible = this._visible;
|
|
289
361
|
}
|