{"version":3,"sources":["Themes/Default/Content/ts/Shared/KnockoutBindings/Bootstrap/tooltipPopoverBindings.ts"],"names":[],"mappings":"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","file":"tooltipPopoverBindings.js","sourcesContent":["import * as $ from \"jquery\";\r\nimport * as ko from \"knockout\";\r\n\r\n// Helpers\r\nimport \"bootstrap\";\r\n\r\n// Models\r\nimport { PopoverOptionOverrides } from \"Content/ts/Models/Bootstrap/TooltipsPopovers/popoverConfiguration\";\r\nimport { TooltipOptionOverrides, InformationIconTooltipOptions } from \"Content/ts/Models/Bootstrap/TooltipsPopovers/tooltipConfiguration\";\r\n\r\n// Services\r\nimport { PopoverServices } from \"Content/ts/Shared/KnockoutBindings/Bootstrap/Services/popoverService\";\r\nimport { TooltipServices } from \"Content/ts/Shared/KnockoutBindings/Bootstrap/Services/tooltipService\";\r\nimport { UniqueIdentifierServices } from \"Content/ts/Shared/KnockoutBindings/Services/uniqueIdentifierServices\";\r\n\r\nexport namespace TooltipPopoverBindings {\r\n const defaultPopoverTrigger = \"click hover focus\";\r\n\r\n ko.bindingHandlers.tooltip = {\r\n init: (ele: Element, valueAccessor: () => string | KnockoutObservable, allBindingsAccessor: () => TooltipOptionOverrides) => {\r\n const element = $(ele),\r\n value = ko.unwrap(valueAccessor()),\r\n allbindings = allBindingsAccessor();\r\n\r\n TooltipServices.ConfigureStandardTooltip(ele, allbindings, value, false);\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(ele, () => {\r\n element.tooltip(\"dispose\");\r\n });\r\n }\r\n };\r\n\r\n ko.bindingHandlers.tooltipWithInformationIcon = {\r\n init: (ele: Element, valueAccessor: () => string | KnockoutObservable, allBindingsAccessor: () => InformationIconTooltipOptions) => {\r\n const element = $(ele),\r\n allbindings = allBindingsAccessor();\r\n\r\n const value = ko.unwrap(valueAccessor()),\r\n displayCondition = ko.unwrap(allbindings.displayCondition);\r\n\r\n if (allbindings.displayCondition != null && allbindings.displayCondition != undefined) {\r\n $(ele)\r\n .attr(\"aria-live\", \"polite\")\r\n .attr(\"aria-hidden\", `${!displayCondition}`)\r\n .hide();\r\n }\r\n\r\n if (!allbindings.uniqueIdentifier) {\r\n const observableIdentifier = () => { };\r\n\r\n allbindings.uniqueIdentifier = UniqueIdentifierServices.AddNewIdentifier(observableIdentifier);\r\n UniqueIdentifierServices.RemoveLinkHash(observableIdentifier);\r\n }\r\n\r\n element.html(TooltipServices.InformationIconMarkup(value));\r\n\r\n TooltipServices.ConfigureStandardTooltip(ele, allbindings, value, true);\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(ele, () => {\r\n element.tooltip(\"dispose\");\r\n });\r\n },\r\n update: (ele: Element, valueAccessor: () => string, allBindingsAccessor: () => InformationIconTooltipOptions) => {\r\n const allbindings = allBindingsAccessor();\r\n const displayCondition = ko.unwrap(allbindings.displayCondition);\r\n\r\n if (displayCondition) {\r\n $(ele)\r\n .attr(\"aria-hidden\", \"false\")\r\n .show();\r\n }\r\n }\r\n };\r\n\r\n ko.bindingHandlers.popover = {\r\n init: (element: HTMLElement, valueAccessor: () => string | KnockoutObservable, allBindingsAccessor: () => PopoverOptionOverrides) => {\r\n const ele = $(element),\r\n value = ko.unwrap(valueAccessor()),\r\n allbindings = allBindingsAccessor();\r\n\r\n ele.popover({\r\n html: false,\r\n content: value,\r\n trigger: defaultPopoverTrigger,\r\n placement: allbindings.Placement ? allbindings.Placement : \"left\"\r\n });\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () => {\r\n $(element).popover(\"dispose\");\r\n });\r\n }\r\n };\r\n\r\n ko.bindingHandlers.popoverWithTemplate = {\r\n init: (element: HTMLElement, valueAccessor: () => string | KnockoutObservable, allBindingsAccessor: () => PopoverOptionOverrides) => {\r\n const ele = $(element);\r\n const allbindings = allBindingsAccessor();\r\n\r\n ($(element)).popover({\r\n html: true,\r\n trigger: defaultPopoverTrigger,\r\n template: PopoverServices.BasePopoverTemplate(allbindings),\r\n content: PopoverServices.RenderPopoverTemplate(allbindings),\r\n placement: allbindings.Placement ? allbindings.Placement : \"left\"\r\n });\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () => {\r\n ele.popover(\"dispose\");\r\n });\r\n }\r\n };\r\n\r\n ko.bindingHandlers.popoverWithTemplateInfomationIcon = {\r\n init: (element: HTMLElement, valueAccessor: () => string | KnockoutObservable, allBindingsAccessor: () => PopoverOptionOverrides) => {\r\n const ele = $(element),\r\n allbindings = allBindingsAccessor();\r\n const screenReaderMessage = ko.unwrap(valueAccessor());\r\n\r\n ele.attr(\"aria-live\", \"polite\")\r\n .html(PopoverServices.InformationIconMarkup(screenReaderMessage));\r\n \r\n ele.popover({\r\n html: true,\r\n trigger: defaultPopoverTrigger,\r\n template: PopoverServices.BasePopoverTemplate(allbindings),\r\n content: PopoverServices.RenderPopoverTemplate(allbindings),\r\n placement: allbindings.Placement ? allbindings.Placement : \"left\"\r\n });\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () => {\r\n ele.popover(\"dispose\");\r\n });\r\n }\r\n };\r\n}\r\n\r\n/**\r\n* Accessibility: Close tooltips and popovers on ESC key (WCAG 1.4.13)\r\n*/\r\ntype JQueryHTMLElementWithListenEscKey = JQuery & { listenEscKeyToCloseOverlays: () => void };\r\ntype JQueryDocumentWithListenEscKey = JQuery & { listenEscKeyToCloseOverlays: () => void };\r\n($.fn as JQueryHTMLElementWithListenEscKey).listenEscKeyToCloseOverlays = function () {\r\n return this.each(function () {\r\n if ((\"undefined\" !== typeof $.fn.tooltip) || (\"undefined\" !== typeof $.fn.popover)) {\r\n document.addEventListener('keydown', function (e) {\r\n if ('Escape' === e.key) {\r\n const $openTooltips = $('.tooltip');\r\n const $openPopovers = $('.popover');\r\n\r\n if ($openPopovers.length || $openTooltips.length) {\r\n e.stopPropagation();\r\n $openTooltips.tooltip('hide');\r\n $openPopovers.popover('hide');\r\n }\r\n }\r\n }, true);\r\n }\r\n });\r\n};\r\n\r\n($(document) as JQueryDocumentWithListenEscKey).listenEscKeyToCloseOverlays();"]}