{"version":3,"sources":["webpack:///./node_modules/bootstrap/js/src/util.js","webpack:///./js/utilities/_collapse.js","webpack:///./plugins/text-ellipses/text-ellipses.ts","webpack:///./js/utilities/_isSafari.js"],"names":["transitionEndEmulator","duration","_this","called","$","this","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","concat","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","setTransitionEndSupport","emulateTransitionEnd","event","special","getSpecialTransitionEndEvent","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","EVENT_KEY","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","Collapse","collapse","Constructor","show","e","actives","activesData","_isTransitioning","_element","hasClass","_parent","slice","querySelectorAll","filter","elem","_config","parent","classList","contains","length","not","_selector","data","startEvent","Event","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","fixedHeight","style","dataset","originalHeight","removeClass","addClass","_triggerArray","attr","setTransitioning","complete","capitalizedDimension","scrollSize","hide","_this2","getBoundingClientRect","triggerArrayLength","i","jQuery","truncated","safari","btnViewMore","selectors","setBtn","wrapper","isSafariAgent","userAgent","navigator","isChrome","indexOf","isChromium","isSafari","initialize","elements","moreLabel","labelMore","lessLabel","labelLess","innerHTML","hideShowViewMore","addEventListeners","add","window","addEventListener","handleResize","bind","on","scrollHeight","clientHeight","TextEllipses","Selectors","Elements","ClassList","Texts","HTMLElement"],"mappings":"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","file":"js/textEllipses-4e95d97e5fee678f8cc4.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","// Overrides Bootstrap original collapse show and hide methods to allow partial collapse\n\nimport Util from 'bootstrap/js/src/util';\n(function ($) {\n 'use strict';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const SELECTOR_ACTIVES = '.show, .collapsing';\n const Collapse = $.fn.collapse.Constructor;\n\n Collapse.prototype.show = function (e) {\n if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return;\n }\n\n let actives;\n let activesData;\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent;\n }\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY);\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW);\n $(this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');\n if (!activesData) {\n $(actives).data(DATA_KEY, null);\n }\n }\n\n const dimension = this._getDimension();\n\n if (!this._config.fixedHeight) {\n this._element.style[dimension] = this._element.offsetHeight + 'px';\n this._element.dataset.originalHeight = this._element.style[dimension];\n }\n\n $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n\n if (this._triggerArray.length) {\n $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n const complete = () => {\n $(this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`);\n\n if (!this._config.fixedHeight) {\n this._element.style[dimension] = '';\n }\n\n this.setTransitioning(false);\n\n $(this._element).trigger(EVENT_SHOWN);\n };\n\n const transitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n\n if (!this._config.fixedHeight) {\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n };\n\n Collapse.prototype.hide = function (e) {\n if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return;\n }\n\n const startEvent = $.Event(EVENT_HIDE);\n $(this._element).trigger(startEvent);\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n const dimension = this._getDimension();\n\n if (!this._config.fixedHeight) {\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n }\n\n Util.reflow(this._element);\n\n $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`);\n\n const triggerArrayLength = this._triggerArray.length;\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i];\n const selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)));\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n const complete = () => {\n this.setTransitioning(false);\n $(this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n if (!this._config.fixedHeight) {\n this._element.style[dimension] = '';\n }\n };\n\n if (!this._config.fixedHeight) {\n this._element.style[dimension] = this._element.dataset.originalHeight || 0;\n }\n const transitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n})(jQuery);\n","import { BaseElements, BaseObject, BaseService, BaseInjector } from 'ui-theme/js/base';\nimport { isSafariAgent } from '../../js/utilities/_isSafari';\nimport '../../js/utilities/_collapse'; // overridden methods show/hide to support partial collapsing\n\nclass Texts extends BaseObject { }\n\nclass ClassList extends BaseObject {\n truncated = 'truncated';\n safari = 'js-safari';\n}\n\nclass Selectors extends BaseObject {\n btnViewMore = '.view-more'\n}\n\nclass Elements extends BaseElements {\n btnViewMore: HTMLElement;\n constructor(selectors: Selectors) {\n super(selectors, false);\n }\n setBtn(wrapper: HTMLElement) {\n this.btnViewMore = wrapper.parentNode?.querySelector(this.selectors.btnViewMore);\n }\n}\ninterface TextEllipses extends BaseService { }\n\n@BaseInjector(Selectors, Elements, ClassList, Texts)\nclass TextEllipses {\n moreLabel;\n lessLabel;\n isSafariAgent;\n constructor(readonly wrapper: HTMLElement) {\n this.isSafariAgent = isSafariAgent();\n }\n\n initialize() {\n this.elements.setBtn(this.wrapper);\n this.moreLabel = this.elements.btnViewMore?.dataset?.labelMore;\n this.lessLabel = this.elements.btnViewMore?.dataset?.labelLess;\n\n if (this.elements.btnViewMore) {\n this.elements.btnViewMore.innerHTML = this.moreLabel;\n this.hideShowViewMore();\n }\n this.addEventListeners();\n if (this.isSafariAgent) {\n this.wrapper.classList.add(this.classList.safari);\n }\n }\n\n addEventListeners() {\n window.addEventListener('resize', this.handleResize.bind(this));\n $(this.wrapper).on('hide.bs.collapse', () => {\n this.elements.btnViewMore.innerHTML = this.moreLabel;\n });\n $(this.wrapper).on('show.bs.collapse', () => {\n this.elements.btnViewMore.innerHTML = this.lessLabel;\n });\n }\n\n handleResize() {\n this.hideShowViewMore();\n }\n\n hideShowViewMore() {\n if (this.wrapper.classList.contains(\"show\")) return;\n this.wrapper.classList[\n this.wrapper.scrollHeight > this.wrapper.clientHeight ? 'add' : 'remove'\n ](this.classList.truncated);\n }\n}\nexport default TextEllipses;\n\nexport {\n Elements as TextEllipsesElements,\n Selectors as TextEllipsesSelectors,\n ClassList as TextEllipsesClassList,\n Texts as TextEllipsesTexts,\n}\n","/**\n * Detect if browser is Safari\n *\n * @return {boolean}\n */\nexport const isSafariAgent = () => {\n const userAgent = navigator.userAgent;\n const isChrome = userAgent.indexOf('Chrome') > -1;\n const isChromium = userAgent.indexOf('Chromium') > -1;\n let isSafari = userAgent.indexOf('Safari') > -1;\n if ((isChrome || isChromium) && isSafari) isSafari = false;\n return isSafari;\n};\n"],"sourceRoot":""}