{"version":3,"sources":["blocks/a-context-help.js"],"names":["define","utility","modal","aContextHelpFn","init","elm","parentSplit","contains","classList","add","aContextHelp","parent","formrow","innerHTML","split","setAttribute","targetHref","getAttribute","substring","document","getElementById","textContent","trimmedContent","content","length","standard","close","modalInstance","closeStandard","label","id","accessibleText","elInnerHTML","FRAMEWORK","locale","settings","formText","removeAttribute","nodeName","labelOuter","htmlStringToElement","insertAdjacentElement","insertAdjacentHTML","contextHelpLink","append","remove","text","heading","onResizeRefresh","wrapper","querySelector","wrapperAdditions","linkInner","outerHTML","parentNode","display","elWrapperInner","elWrapperInnerHTML","inner","iconElement","closeDuplicate","cursor","trigger","insertBefore","cursorPos","getBoundingClientRect","createElement","breakLine","centreTriangle","cursorLeft","left","window","addEventListener","debounce","triggerActive","e","slideToggle","callback","timings","current","t350ms","preventDefault","closeFunc","interval","clearInterval","breaker","triggerParent","indentLeft","parentWidth","initInstance","breakTextFlag","joinWords","breakWords","getCursorPos","tagName","wrapperLink","breakText","lastWord","trim","pop","parentPos","parentLeft","indent","correction","wrapperUI","style","wrapperUIleft","parseInt"],"mappings":"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","file":"blocks/a-context-help.js","sourcesContent":["// eslint-disable-next-line max-lines-per-function\r\ndefine( [ 'utility', 'blocks/o-modal' ], function run( utility, modal ) {\r\n\t'use strict';\r\n\r\n\tvar aContextHelpFn = {\r\n\t\tinit : function( elm ) {\r\n\t\t\tvar parentSplit; // Splitting point within element parent innerHTML\r\n\r\n\t\t\tif ( !elm.classList.contains( 'js-a-context-help' ) ) {\r\n\t\t\t\telm.classList.add( 'js-a-context-help' );\r\n\r\n\t\t\t\telm.aContextHelp = {};\r\n\r\n\t\t\t\telm.aContextHelp.parent = elm.parentNode;\r\n\t\t\t\telm.aContextHelp.formrow = false;\r\n\r\n\t\t\t\tif ( elm.classList.contains( 'm-form-row__explanatory-text' ) ) {\r\n\t\t\t\t\taContextHelpFn.formrow( elm );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Check for prohibited inline use; force modal as eajit prevention\r\n\t\t\t\t\tparentSplit = elm.aContextHelp.parent.innerHTML.split( '' );\r\n\t\t\t\t\tif ( parentSplit[ 1 ] !== '' ) {\r\n\t\t\t\t\t\telm.setAttribute( 'data-variant', 'modal' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Other stuff\r\n\t\t\t\t\telm.aContextHelp.targetHref = elm.getAttribute( 'href' ).substring( 1 );\r\n\t\t\t\t\telm.aContextHelp.content = document.getElementById( elm.aContextHelp.targetHref );\r\n\t\t\t\t\telm.aContextHelp.trimmedContent = elm.aContextHelp.content.textContent.replace( /[\\t\\n\\r]+/g, '' );\r\n\t\t\t\t\telm.aContextHelp.length = elm.aContextHelp.trimmedContent.length;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check variant and setup for modal if required\r\n\t\t\t\tif ( elm.getAttribute( 'data-variant' ) === 'modal' || elm.aContextHelp.length > 175 ) {\r\n\t\t\t\t\taContextHelpFn.modal( elm );\r\n\t\t\t\t} else {\r\n\t\t\t\t\taContextHelpFn.standard( elm );\r\n\t\t\t\t}\r\n\r\n\t\t\t\telm.aContextHelp.close = function close() {\r\n\t\t\t\t\tif ( elm.getAttribute( 'data-variant' ) === 'modal' || elm.aContextHelp.length > 175 ) {\r\n\t\t\t\t\t\tif ( elm.aContextHelp.modalInstance ) {\r\n\t\t\t\t\t\t\telm.aContextHelp.modalInstance.close();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taContextHelpFn.closeStandard( elm );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn elm.aContextHelp;\r\n\t\t},\r\n\r\n\t\tformrow : function( elm ) {\r\n\t\t\tvar id = elm.id, // Element ID\r\n\t\t\t\tlabel, // Label within element parent\r\n\t\t\t\tlabelOuter, // Wrapping div for label element\r\n\t\t\t\tcontextHelpLink, // Contextual help link to be added beside the label\r\n\t\t\t\telInnerHTML, // Element innerHtML\r\n\t\t\t\telWrapper, // Element wrapper\r\n\t\t\t\taccessibleText; // Hidden accessible text for screen readers\r\n\r\n\t\t\tif ( elm.getAttribute( 'data-accessible-text' ) && elm.getAttribute( 'data-accessible-text' ) !== '' ) {\r\n\t\t\t\taccessibleText = elm.getAttribute( 'data-accessible-text' );\r\n\t\t\t} else {\r\n\t\t\t\taccessibleText = FRAMEWORK.locale.settings.aContextHelp.formText;\r\n\t\t\t}\r\n\r\n\t\t\telm.removeAttribute( 'id' );\r\n\r\n\t\t\t// Add icon and link to trigger (label / legend)\r\n\t\t\tlabel = elm.aContextHelp.parent.querySelector( '.a-label' );\r\n\t\t\tif ( label.nodeName === 'LABEL' ) {\r\n\t\t\t\tlabelOuter = utility.htmlStringToElement( '
' ); // Create new wrapping element\r\n\t\t\t\tutility.wrap( label, labelOuter ); // Wrap label in new wrapper\r\n\t\t\t\tlabel.removeAttribute( 'class' ); // Remove any classes that were on the original label\r\n\t\t\t} else if ( label.nodeName === 'LEGEND' ) {\r\n\t\t\t\tlabelOuter = utility.htmlStringToElement( '' + elInnerHTML + '