{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/array-foreach/index.js","node_modules/classlist-polyfill/src/index.js","node_modules/core-js/fn/array/from.js","node_modules/core-js/fn/object/assign.js","node_modules/core-js/modules/_a-function.js","node_modules/core-js/modules/_an-object.js","node_modules/core-js/modules/_array-includes.js","node_modules/core-js/modules/_classof.js","node_modules/core-js/modules/_cof.js","node_modules/core-js/modules/_core.js","node_modules/core-js/modules/_create-property.js","node_modules/core-js/modules/_ctx.js","node_modules/core-js/modules/_defined.js","node_modules/core-js/modules/_descriptors.js","node_modules/core-js/modules/_dom-create.js","node_modules/core-js/modules/_enum-bug-keys.js","node_modules/core-js/modules/_export.js","node_modules/core-js/modules/_fails.js","node_modules/core-js/modules/_function-to-string.js","node_modules/core-js/modules/_global.js","node_modules/core-js/modules/_has.js","node_modules/core-js/modules/_hide.js","node_modules/core-js/modules/_html.js","node_modules/core-js/modules/_ie8-dom-define.js","node_modules/core-js/modules/_iobject.js","node_modules/core-js/modules/_is-array-iter.js","node_modules/core-js/modules/_is-object.js","node_modules/core-js/modules/_iter-call.js","node_modules/core-js/modules/_iter-create.js","node_modules/core-js/modules/_iter-define.js","node_modules/core-js/modules/_iter-detect.js","node_modules/core-js/modules/_iterators.js","node_modules/core-js/modules/_library.js","node_modules/core-js/modules/_object-assign.js","node_modules/core-js/modules/_object-create.js","node_modules/core-js/modules/_object-dp.js","node_modules/core-js/modules/_object-dps.js","node_modules/core-js/modules/_object-gops.js","node_modules/core-js/modules/_object-gpo.js","node_modules/core-js/modules/_object-keys-internal.js","node_modules/core-js/modules/_object-keys.js","node_modules/core-js/modules/_object-pie.js","node_modules/core-js/modules/_property-desc.js","node_modules/core-js/modules/_redefine.js","node_modules/core-js/modules/_set-to-string-tag.js","node_modules/core-js/modules/_shared-key.js","node_modules/core-js/modules/_shared.js","node_modules/core-js/modules/_string-at.js","node_modules/core-js/modules/_to-absolute-index.js","node_modules/core-js/modules/_to-integer.js","node_modules/core-js/modules/_to-iobject.js","node_modules/core-js/modules/_to-length.js","node_modules/core-js/modules/_to-object.js","node_modules/core-js/modules/_to-primitive.js","node_modules/core-js/modules/_uid.js","node_modules/core-js/modules/_wks.js","node_modules/core-js/modules/core.get-iterator-method.js","node_modules/core-js/modules/es6.array.from.js","node_modules/core-js/modules/es6.object.assign.js","node_modules/core-js/modules/es6.string.iterator.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/matches-selector/index.js","node_modules/object-assign/index.js","node_modules/receptor/lib/behavior.js","node_modules/receptor/lib/closest.js","node_modules/receptor/lib/compose.js","node_modules/receptor/lib/delegate.js","node_modules/receptor/lib/delegateAll.js","node_modules/receptor/lib/ignore.js","node_modules/receptor/lib/index.js","node_modules/receptor/lib/keymap.js","src/js/components/accordion.js","src/js/components/alert.js","src/js/components/back-to-top.js","src/js/components/character-limit.js","src/js/components/checkbox-toggle-content.js","src/js/components/date-picker.js","src/js/components/dropdown-sort.js","src/js/components/dropdown.js","src/js/components/error-summary.js","src/js/components/modal.js","src/js/components/navigation.js","src/js/components/radio-toggle-content.js","src/js/components/regex-input-mask.js","src/js/components/selectable-table.js","src/js/components/table.js","src/js/components/tabnav.js","src/js/components/toast.js","src/js/components/tooltip.js","src/js/config.js","src/js/dkfds.js","src/js/events.js","src/js/polyfills/Function/prototype/bind.js","src/js/polyfills/Object/defineProperty.js","src/js/polyfills/custom-event.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/polyfills/number-is-nan.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/breakpoints.js","src/js/utils/is-in-viewport.js","src/js/utils/is-ios-device.js","src/js/utils/select.js","src/js/utils/toggle.js"],"names":["f","exports","module","define","amd","window","global","self","this","DKFDS","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","ary","callback","thisArg","forEach","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","prototype","_toggle","from","assign","it","TypeError","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","value","O","cof","TAG","ARG","B","T","key","callee","slice","core","version","__e","$defineProperty","createDesc","object","aFunction","fn","that","b","apply","is","$export","source","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","target","S","PROTOTYPE","expProto","own","ctx","Function","redefine","U","hide","W","R","exec","Math","__g","hasOwnProperty","dP","documentElement","propertyIsEnumerable","Iterators","ITERATOR","ArrayProto","_typeof","anObject","iterator","entries","ret","create","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","next","returnThis","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","VALUES","Base","DEFAULT","IS_SET","FORCED","getMethod","kind","proto","methods","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","SAFE_CLOSING","riter","skipClosing","safe","arr","iter","done","DESCRIPTORS","getKeys","gOPS","pIE","toObject","IObject","$assign","A","Symbol","K","k","aLen","getSymbols","isEnum","concat","j","Empty","dPs","enumBugKeys","IE_PROTO","_createDict","iframe","style","display","appendChild","src","iframeDocument","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","defineProperties","getOwnPropertySymbols","has","ObjectProto","constructor","arrayIndexOf","names","$keys","bitmap","writable","SRC","$toString","TO_STRING","TPL","inspectSource","val","isFunction","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","pos","s","charCodeAt","charAt","max","min","ceil","floor","isNaN","valueOf","id","px","random","_Symbol","USE_SYMBOL","classof","getIteratorMethod","isArrayIter","createProperty","getIterFn","arrayLike","step","C","mapfn","mapping","iterFn","$at","iterated","_t","_i","point","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","x","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","toUpperCase","vendor","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","selector","nodeType","nodes","parentNode","querySelectorAll","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","order2","map","err","to","symbols","popKey","obj","delegate","delegateAll","DELEGATE_PATTERN","events","props","listeners","reduce","memo","handler","match","options","capture","passive","listener","_type","element","addEventListener","removeEventListener","functions","some","closest","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","_key","isElementInViewport","BUTTON","EXPANDED","BULK_FUNCTION_ACTION_ATTRIBUTE","text","open_all","close_all","Accordion","$accordion","strings","accordion","init","buttons","currentButton","expanded","toggleButton","eventOnClick","bind","prevSibling","previousElementSibling","bulkFunctionButton","bulkEvent","$module","expand","innerText","$button","stopPropagation","preventDefault","scrollIntoView","button","bulkFunction","newStatus","bulk","multiselectable","eventOpen","Event","dispatchEvent","eventClose","buttonsOpen","_buttons","_eventClose","currentButtton","Alert","alert","getElementsByClassName","eventHide","show","eventShow","BackToTop","backtotop","updateBackToTopButton","docBody","body","docElem","limit","clientHeight","innerHeight","scrollHeight","offsetHeight","getBoundingClientRect","height","lastKnownScrollPosition","scrollY","footer","getElementsByTagName","isFooterVisible","sidenav","querySelector","offsetParent","_sidenav$closest","_sidenav$closest$prev","_sidenav$closest2","_sidenav$closest2$pre","bottom","footerElement","rect","top","backtotopbutton","MutationObserver","list","evt","CustomEvent","detail","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","character_remaining","characters_remaining","character_too_many","characters_too_many","CharacterLimit","containerElement","container","input","maxlength","lastKeyUpTimestamp","oldValue","characterLimitMessage","characters_left","_exceeded","exceeded","abs","handleKeyUp","handleFocus","handleBlur","updateMessages","charactersLeft","current_length","updateVisibleMessage","count_message","character_label","innerHTML","updateScreenReaderMessage","resetScreenReaderMessage","Date","now","intervalID","setInterval","sr_message","visible_message","clearInterval","TOGGLE_TARGET_ATTRIBUTE","CheckboxToggleContent","checkboxElement","targetElement","targetAttr","targetEl","getElementById","checked","collapse","contentElement","triggerEl","_receptor","processFocusableSelectors","_len","query","lastDayOfMonth","date","newDate","setFullYear","getFullYear","getMonth","addWeeks","_date","numWeeks","addDays","addYears","numYears","addMonths","subYears","keepDateBetweenMinAndMax","minDate","maxDate","getTime","disable","externalInputEl","_getDatePickerContext","getDatePickerContext","toggleBtnEl","disabled","isDateInputInvalid","day","month","year","checkDate","_getDatePickerContext3","dateString","isInvalid","_dateStringParts$map2","_slicedToArray","dateStringParts","str","parsed","parseInt","Number","setDate","getDate","isDateWithinMinAndMax","setCalendarValue","datePickerEl","internalInputEl","parsedDate","parseDateString","formattedDate","formatDate","DEFAULT_EXTERNAL_DATE_FORMAT","_getDatePickerContext6","changeElementValue","validateDateInput","renderCalendar","_dateToDisplay","dateToRender","dayOfWeek","tabindex","isDisabled","isSelected","_getDatePickerContext7","calendarEl","statusEl","selectedDate","rangeDate","todaysDate","today","dateToDisplay","calendarWasHidden","hidden","focusedDate","focusedMonth","focusedYear","prevMonth","subMonths","nextMonth","currentFormattedDate","firstOfMonth","startOfMonth","prevButtonsDisabled","isSameMonth","nextButtonsDisabled","rangeConclusionDate","rangeStartDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","subDays","monthLabel","MONTH_LABELS","startOfWeek","days","ariaLabelDate","CALENDAR_DATE_CLASS","getDay","isSameDay","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","monthStr","dayStr","DAY_OF_WEEK_LABELS","aria_label_date","d","datesHtml","listToGridHtml","newCalendar","cloneNode","content","dataset","CALENDAR_DATE_PICKER_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","previous_year","CALENDAR_PREVIOUS_MONTH_CLASS","previous_month","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_MONTH_SELECTION_CLASS","select_month","CALENDAR_YEAR_SELECTION_CLASS","select_year","CALENDAR_NEXT_MONTH_CLASS","next_month","CALENDAR_NEXT_YEAR_CLASS","next_year","CALENDAR_TABLE_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","replaceChild","DATE_PICKER_ACTIVE_CLASS","statuses","date_selected","guide","textContent","hideCalendar","_getDatePickerContext12","updateCalendarIfVisible","_getDatePickerContext15","inputDate","displayMonthSelection","monthToDisplay","_getDatePickerContext16","calendarDate","selectedMonth","months","monthToCheck","setMonth","isDatesMonthOutsideMinOrMax","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","monthsHtml","CALENDAR_MONTH_PICKER_CLASS","months_displayed","displayYearSelection","yearToDisplay","_getDatePickerContext18","selectedYear","yearToChunk","prevYearChunkDisabled","YEAR_CHUNK","isDatesYearOutsideMinOrMax","setYear","nextYearChunkDisabled","years","yearIndex","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","yearsHtml","ariaLabelPreviousYears","previous_years","ariaLabelNextYears","next_years","announceYears","years_displayed","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","handleEscapeFromCalendar","_getDatePickerContext22","focus","adjustCalendar","adjustDateFn","_getDatePickerContext23","cappedDate","CALENDAR_DATE_FOCUSED","adjustMonthSelectionScreen","adjustMonthFn","monthEl","_getDatePickerContext24","currentDate","adjustedMonth","CALENDAR_MONTH_FOCUSED","adjustYearSelectionScreen","adjustYearFn","yearEl","_getDatePickerContext25","adjustedYear","isSameYear","CALENDAR_YEAR_FOCUSED","tabHandler","focusable","getFocusableContext","lastTabIndex","focusableElements","select","firstTabStop","lastTabStop","focusIndex","activeElement","isNotFound","isFirstTab","isLastTab","tabAhead","_getFocusableContext","tabBack","_getFocusableContext2","CLICK","prefix","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","DATE_PICKER","DATE_PICKER_BUTTON","DATE_PICKER_INTERNAL_INPUT","DATE_PICKER_EXTERNAL_INPUT","DATE_PICKER_CALENDAR","DATE_PICKER_STATUS","CALENDAR_DATE","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_YEAR","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","open_calendar","january","february","march","april","may","june","july","august","september","october","november","december","monday","tuesday","wednesday","thursday","friday","saturday","sunday","VALIDATION_MESSAGE","INTERNAL_DATE_FORMAT","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","keepDateWithinMonth","dateToCheck","numDays","numMonths","dateMonth","dateA","dateB","yearStr","dateFormat","adjustDate","_dateString$split2","_dateString$split4","currentYear","pow","lastDayOfTheMonth","padZeros","htmlArray","rowSize","grid","row","elementToChange","firstYearChunkEl","defaultDate","validationMessage","setCustomValidity","handleUpFromDate","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","_defineProperty","_datePickerEvents","_CLICK","_getDatePickerContext14","calendarDateEl","_getDatePickerContext13","_getDatePickerContext17","_getDatePickerContext21","_buttonEl","_getDatePickerContext9","nextToFocus","_getDatePickerContext10","_getDatePickerContext8","_getDatePickerContext11","_getDatePickerContext19","_getDatePickerContext20","keydown","keydownKeyCode","_keydown","Up","ArrowUp","Down","ArrowDown","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","Tab","Shift+Tab","Escape","_focusout","relatedTarget","_getDatePickerContext5","newValue","datePicker","mousemove","_datePickerEvents$mou","dateEl","currentCalendarDate","hoverDate","focusMonth","focusYear","root","enhanceDatePicker","defaultValue","calendarWrapper","tabIndex","insertAdjacentHTML","removeAttribute","required","setLanguage","enable","_getDatePickerContext2","_dropdown","DropdownSort","updateSelectedValue","overflowMenu","sortingOptions","onOptionClick","selectedItem","li","eventSelected","breakpoints","TARGET","Dropdown","buttonElement","responsiveListCollapseEnabled","outsideClose","toggleDropdown","IntersectionObserver","intersectionRatio","doResponsiveCollapse","closeOnEscape","offset","scrollLeft","pageXOffset","scrollTop","pageYOffset","left","hasParent","child","parentTagName","tagName","closeAll","changed","overflowMenuEl","oi","currentOverflowMenuEL","stopImmediatePropagation","forceClose","targetOffset","right","offsetWidth","innerWidth","offsetAgain","openDropdowns","getTringuideBreakpoint","md","lg","ErrorSummary","handleClick","focusTarget","$target","$legendOrLabel","href","inputId","getFragmentFromUrl","$input","getAssociatedLegendOrLabel","preventScroll","url","pop","$fieldset","legends","$candidateLegend","legendTop","inputRect","Modal","$modal","triggers","closers","opener","modalElement","createEvent","initEvent","$backdrop","removeChild","trapFocus","hasForcedAction","handleEscape","dataModalOpener","openerId","activeModals","currentModal","firstFocusableElement","currentDialog","lastFocusableElement","modal","focusTrap","NAV","NAV_LINKS","OPENERS","CLOSE_BUTTON","CLOSERS","TOGGLES","ACTIVE_CLASS","Navigation","mobileMenu","mobile","openers","getComputedStyle","toggleNav","navLinks","isActive","trapContainers","_focusTrap","closer","width","trapContainer","trapTabKey","release","active","closeButton","menuButton","TOGGLE_ATTRIBUTE","RadioToggleGroup","radioGroup","radioEls","radio","radioInputElement","contentId","modifierState","InputRegexMask","regexMask","newChar","regexStr","charCode","console","log","selectionStart","selectionEnd","RegExp","returnValue","select_row","unselect_row","select_all_rows","unselect_all_rows","TableSelectableRows","table","updateCheckboxList","checkbox","checkboxList","getCheckboxList","checkedNumber","nextElementSibling","_c","bubbles","cancelable","updateGroupCheck","tableSelectableRows","groupCheckbox","getGroupCheckbox","tbodyCheckboxList","ResponsiveTable","_classCallCheck","headerCellEls","bodyRowEls","tableEl","header","rowEl","cellEls","children","headerCellEl","hasAttribute","xs","sm","xl","end","home","up","down","delete","direction","Tabnav","tabnav","tabs","keydownEventListener","focusLastTab","focusFirstTab","determineOrientation","keyupEventListener","enter","space","activateTab","w","g","clientWidth","proceed","pressed","getAllTabsInList","tab","setActiveHashTab","hash","location","alreadyActive","setFocus","_tabpanelID","_tabpanel","tabpanelID","tabpanel","eventChanged","Toast","showToast","toasts","toast","requestAnimationFrame","Tooltip","addTooltip","trigger","tooltip","className","tooltipInner","tooltipArrow","tooltipContent","parent","triggerPosition","parentCoords","tooltipWidth","arrowDirection","arrowLeftPosition","endPositionOnPage","dist","_endPositionOnPage","arrowRightPosition","closeAllTooltips","elements","closeHoverTooltip","tooltipId","tooltipElement","onTooltipHover","setTimeout","_accordion","_interopRequireDefault","_alert","_backToTop","_characterLimit","_checkboxToggleContent","_dropdownSort","_errorSummary","_regexInputMask","_modal","_navigation","_radioToggleContent","_table","_tabnav","_selectableTable","_toast","_tooltip","scope","jsSelectorAccordion","jsSelectorAccordionBordered","alertsWithCloseButton","_c2","backToTopButtons","_c3","jsCharacterLimit","_c4","jsSelectorCheckboxCollapse","_c5","jsSelectorDropdown","_c6","jsSelectorDropdownSort","_c7","on","$errorSummary","jsSelectorRegex","_c8","modals","jsSelectorRadioCollapse","_c9","jsSelectorTable","_c10","jsSelectableTable","_c11","jsSelectorTabnav","_c12","jsSelectorTooltip","_c13","$Array","$Object","ObjectPrototype","ArrayPrototype","to_string","hasToStringTag","toStringTag","fnToStr","array_slice","array_concat","array_push","strClass","tryFunctionObject","bound","args","boundLength","boundArgs","nativeDefineProperty","supportsAccessors","ERR_ACCESSORS_NOT_SUPPORTED","ERR_VALUE_ACCESSORS","property","propertyString","hasValueOrWritable","getterType","setterType","set","__defineSetter__","_params","params","initCustomEvent","elproto","HTMLElement","HIDDEN","sequence","seq","_this","receptor","off","win","docEl","navigator","userAgent","platform","maxTouchPoints","MSStream","context","selection","controls"],"mappings":"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","file":"dkfds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = {};\n","module.exports = false;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n var keyboardeventKeyPolyfill = {\n polyfill: polyfill,\n keys: {\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","'use strict';\n\nvar proto = typeof Element !== 'undefined' ? Element.prototype : {};\nvar vendor = proto.matches\n || proto.matchesSelector\n || proto.webkitMatchesSelector\n || proto.mozMatchesSelector\n || proto.msMatchesSelector\n || proto.oMatchesSelector;\n\nmodule.exports = match;\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match(el, selector) {\n if (!el || el.nodeType !== 1) return false;\n if (vendor) return vendor.call(el, selector);\n var nodes = el.parentNode.querySelectorAll(selector);\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i] == el) return true;\n }\n return false;\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('./delegate');\nconst delegateAll = require('./delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","const matches = require('matches-selector');\n\nmodule.exports = function(element, selector) {\n do {\n if (matches(element, selector)) {\n return element;\n }\n } while ((element = element.parentNode) && element.nodeType === 1);\n};\n\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","const closest = require('./closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = closest(event.target, selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('./delegate');\nconst compose = require('./compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","'use strict';\n\nmodule.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// \nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\nconst toggle = require('../utils/toggle');\r\nconst isElementInViewport = require('../utils/is-in-viewport');\r\nconst BUTTON = `.accordion-button[aria-controls]`;\r\nconst EXPANDED = 'aria-expanded';\r\nconst MULTISELECTABLE = 'aria-multiselectable';\r\nconst MULTISELECTABLE_CLASS = 'accordion-multiselectable';\r\nconst BULK_FUNCTION_ACTION_ATTRIBUTE = \"data-accordion-bulk-expand\";\r\nlet text = {\r\n \"open_all\": \"Åbn alle\",\r\n \"close_all\": \"Luk alle\"\r\n}\r\n\r\n/**\r\n * Adds click functionality to accordion list\r\n * @param {HTMLElement} $accordion the accordion ul element\r\n * @param {JSON} strings Translate labels: {\"open_all\": \"Åbn alle\", \"close_all\": \"Luk alle\"}\r\n */\r\nfunction Accordion($accordion, strings = text) {\r\n if(!$accordion){\r\n throw new Error(`Missing accordion group element`);\r\n }\r\n this.accordion = $accordion;\r\n text = strings;\r\n}\r\n\r\n/**\r\n * Set eventlisteners on click elements in accordion list\r\n */\r\nAccordion.prototype.init = function(){\r\n this.buttons = this.accordion.querySelectorAll(BUTTON);\r\n if(this.buttons.length == 0){\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n\r\n // loop buttons in list\r\n for (var i = 0; i < this.buttons.length; i++){\r\n let currentButton = this.buttons[i];\r\n \r\n // Verify state on button and state on panel\r\n let expanded = currentButton.getAttribute(EXPANDED) === 'true';\r\n this.toggleButton(currentButton, expanded);\r\n \r\n // Set click event on accordion buttons\r\n currentButton.removeEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n currentButton.addEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n }\r\n // Set click event on bulk button if present\r\n let prevSibling = this.accordion.previousElementSibling ;\r\n if(prevSibling !== null && prevSibling.classList.contains('accordion-bulk-button')){\r\n this.bulkFunctionButton = prevSibling;\r\n this.bulkFunctionButton.addEventListener('click', this.bulkEvent.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Bulk event handler: Triggered when clicking on .accordion-bulk-button\r\n */\r\nAccordion.prototype.bulkEvent = function(){\r\n var $module = this;\r\n if(!$module.accordion.classList.contains('accordion')){ \r\n throw new Error(`Could not find accordion.`);\r\n }\r\n if($module.buttons.length == 0){\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n \r\n let expand = true;\r\n if($module.bulkFunctionButton.getAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE) === \"false\") {\r\n expand = false;\r\n }\r\n for (var i = 0; i < $module.buttons.length; i++){\r\n $module.toggleButton($module.buttons[i], expand, true);\r\n }\r\n \r\n $module.bulkFunctionButton.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, !expand);\r\n if(!expand === true){\r\n $module.bulkFunctionButton.innerText = text.open_all;\r\n } else{\r\n $module.bulkFunctionButton.innerText = text.close_all;\r\n }\r\n}\r\n\r\n/**\r\n * Accordion button event handler: Toggles accordion\r\n * @param {HTMLButtonElement} $button \r\n * @param {PointerEvent} e \r\n */\r\nAccordion.prototype.eventOnClick = function ($button, e) {\r\n var $module = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n $module.toggleButton($button);\r\n if ($button.getAttribute(EXPANDED) === 'true') {\r\n // We were just expanded, but if another accordion was also just\r\n // collapsed, we may no longer be in the viewport. This ensures\r\n // that we are still visible, so the user isn't confused.\r\n if (!isElementInViewport($button)) $button.scrollIntoView();\r\n }\r\n}\r\n\r\n/**\r\n * Toggle a button's \"pressed\" state, optionally providing a target\r\n * state.\r\n *\r\n * @param {HTMLButtonElement} button\r\n * @param {boolean?} expanded If no state is provided, the current\r\n * state will be toggled (from false to true, and vice-versa).\r\n * @return {boolean} the resulting state\r\n */\r\n Accordion.prototype.toggleButton = function (button, expanded, bulk = false) {\r\n let accordion = null;\r\n if(button.parentNode.parentNode.classList.contains('accordion')){\r\n accordion = button.parentNode.parentNode;\r\n } else if(button.parentNode.parentNode.parentNode.classList.contains('accordion')){\r\n accordion = button.parentNode.parentNode.parentNode;\r\n }\r\n expanded = toggle(button, expanded);\r\n if(expanded){ \r\n let eventOpen = new Event('fds.accordion.open');\r\n button.dispatchEvent(eventOpen);\r\n } else{\r\n let eventClose = new Event('fds.accordion.close');\r\n button.dispatchEvent(eventClose);\r\n }\r\n\r\n let multiselectable = false;\r\n if(accordion !== null && (accordion.getAttribute(MULTISELECTABLE) === 'true' || accordion.classList.contains(MULTISELECTABLE_CLASS))){\r\n multiselectable = true;\r\n let bulkFunction = accordion.previousElementSibling;\r\n if(bulkFunction !== null && bulkFunction.classList.contains('accordion-bulk-button')){\r\n let buttons = accordion.querySelectorAll(BUTTON);\r\n if(bulk === false){\r\n let buttonsOpen = accordion.querySelectorAll(BUTTON+'[aria-expanded=\"true\"]');\r\n let newStatus = true;\r\n\r\n if(buttons.length === buttonsOpen.length){\r\n newStatus = false;\r\n }\r\n \r\n bulkFunction.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, newStatus);\r\n if(newStatus === true){\r\n bulkFunction.innerText = text.open_all;\r\n } else{\r\n bulkFunction.innerText = text.close_all;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (expanded && !multiselectable) {\r\n let buttons = [ button ];\r\n if(accordion !== null) {\r\n buttons = accordion.querySelectorAll(BUTTON);\r\n }\r\n for(let i = 0; i < buttons.length; i++) {\r\n let currentButtton = buttons[i];\r\n if (currentButtton !== button && currentButtton.getAttribute('aria-expanded' === true)) {\r\n toggle(currentButtton, false);\r\n let eventClose = new Event('fds.accordion.close');\r\n currentButtton.dispatchEvent(eventClose);\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default Accordion;","'use strict';\r\nfunction Alert(alert){\r\n this.alert = alert;\r\n}\r\n\r\nAlert.prototype.init = function(){\r\n let close = this.alert.getElementsByClassName('alert-close');\r\n if(close.length === 1){\r\n close[0].addEventListener('click', this.hide.bind(this));\r\n }\r\n}\r\n\r\nAlert.prototype.hide = function(){\r\n this.alert.classList.add('d-none');\r\n let eventHide = new Event('fds.alert.hide');\r\n this.alert.dispatchEvent(eventHide);\r\n};\r\n\r\nAlert.prototype.show = function(){\r\n this.alert.classList.remove('d-none');\r\n \r\n let eventShow = new Event('fds.alert.show');\r\n this.alert.dispatchEvent(eventShow);\r\n};\r\n\r\nexport default Alert;","'use strict';\r\n\r\nfunction BackToTop(backtotop){\r\n this.backtotop = backtotop;\r\n}\r\n\r\nBackToTop.prototype.init = function() {\r\n let backtotopbutton = this.backtotop;\r\n\r\n updateBackToTopButton(backtotopbutton);\r\n\r\n const observer = new MutationObserver( list => {\r\n const evt = new CustomEvent('dom-changed', {detail: list});\r\n document.body.dispatchEvent(evt)\r\n });\r\n\r\n // Which mutations to observe\r\n let config = {\r\n attributes : true,\r\n attributeOldValue : false,\r\n characterData : true,\r\n characterDataOldValue : false,\r\n childList : true,\r\n subtree : true\r\n };\r\n\r\n // DOM changes\r\n observer.observe(document.body, config);\r\n document.body.addEventListener('dom-changed', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n\r\n // Scroll actions\r\n window.addEventListener('scroll', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n\r\n // Window resizes\r\n window.addEventListener('resize', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n}\r\n\r\nfunction updateBackToTopButton(button) {\r\n let docBody = document.body;\r\n let docElem = document.documentElement;\r\n let heightOfViewport = Math.max(docElem.clientHeight || 0, window.innerHeight || 0);\r\n let heightOfPage = Math.max(docBody.scrollHeight, docBody.offsetHeight, docBody.getBoundingClientRect().height, \r\n docElem.scrollHeight, docElem.offsetHeight, docElem.getBoundingClientRect().height, docElem.clientHeight);\r\n \r\n let limit = heightOfViewport * 2; // The threshold selected to determine whether a back-to-top-button should be displayed\r\n \r\n // Never show the button if the page is too short\r\n if (limit > heightOfPage) {\r\n if (!button.classList.contains('d-none')) {\r\n button.classList.add('d-none');\r\n }\r\n }\r\n // If the page is long, calculate when to show the button\r\n else {\r\n if (button.classList.contains('d-none')) {\r\n button.classList.remove('d-none');\r\n }\r\n\r\n let lastKnownScrollPosition = window.scrollY;\r\n let footer = document.getElementsByTagName(\"footer\")[0]; // If there are several footers, the code only applies to the first footer\r\n\r\n // Show the button, if the user has scrolled too far down\r\n if (lastKnownScrollPosition >= limit) {\r\n if (!isFooterVisible(footer) && button.classList.contains('footer-sticky')) {\r\n button.classList.remove('footer-sticky');\r\n }\r\n else if (isFooterVisible(footer) && !button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n // If there's a sidenav, we might want to show the button anyway\r\n else {\r\n let sidenav = document.querySelector('.sidenav-list'); // Finds side navigations (left menus) and step guides\r\n\r\n if (sidenav && sidenav.offsetParent !== null) {\r\n // Only react to sidenavs, which are always visible (i.e. not opened from overflow-menu buttons)\r\n if (!(sidenav.closest(\".overflow-menu-inner\")?.previousElementSibling?.getAttribute('aria-expanded') === \"true\" &&\r\n sidenav.closest(\".overflow-menu-inner\")?.previousElementSibling?.offsetParent !== null)) {\r\n \r\n let rect = sidenav.getBoundingClientRect();\r\n if (rect.bottom < 0) {\r\n if (!isFooterVisible(footer) && button.classList.contains('footer-sticky')) {\r\n button.classList.remove('footer-sticky');\r\n }\r\n else if (isFooterVisible(footer) && !button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n else {\r\n if (!button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n\r\n }\r\n }\r\n // There's no sidenav and we know the user hasn't reached the scroll limit: Ensure the button is hidden\r\n else {\r\n if (!button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction isFooterVisible(footerElement) {\r\n if (footerElement?.querySelector('.footer')) {\r\n let rect = footerElement.querySelector('.footer').getBoundingClientRect();\r\n\r\n // Footer is visible or partly visible\r\n if ((rect.top < window.innerHeight || rect.top < document.documentElement.clientHeight)) {\r\n return true;\r\n }\r\n // Footer is hidden\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport default BackToTop;","'use strict';\r\n\r\nconst MAX_LENGTH = 'data-maxlength';\r\nlet text = {\r\n \"character_remaining\": \"Du har {value} tegn tilbage\",\r\n \"characters_remaining\": \"Du har {value} tegn tilbage\",\r\n \"character_too_many\": \"Du har {value} tegn for meget\",\r\n \"characters_too_many\": \"Du har {value} tegn for meget\"\r\n}\r\n\r\n/**\r\n * Number of characters left\r\n * @param {HTMLElement} containerElement \r\n * @param {JSON} strings Translate labels: {\"character_remaining\": \"Du har {value} tegn tilbage\", \"characters_remaining\": \"Du har {value} tegn tilbage\", \"character_too_many\": \"Du har {value} tegn for meget\", \"characters_too_many\": \"Du har {value} tegn for meget\"}\r\n */\r\n function CharacterLimit(containerElement, strings = text) {\r\n this.container = containerElement;\r\n this.input = containerElement.getElementsByClassName('form-input')[0];\r\n this.maxlength = this.container.getAttribute(MAX_LENGTH);\r\n this.lastKeyUpTimestamp = null;\r\n this.oldValue = this.input.value;\r\n text = strings;\r\n}\r\n\r\nCharacterLimit.prototype.init = function() {\r\n this.input.addEventListener('keyup', this.handleKeyUp.bind(this));\r\n this.input.addEventListener('focus', this.handleFocus.bind(this));\r\n this.input.addEventListener('blur', this.handleBlur.bind(this));\r\n\r\n if ('onpageshow' in window) {\r\n window.addEventListener('pageshow', this.updateMessages.bind(this));\r\n } \r\n else {\r\n window.addEventListener('DOMContentLoaded', this.updateMessages.bind(this));\r\n }\r\n}\r\n\r\nCharacterLimit.prototype.charactersLeft = function () {\r\n let current_length = this.input.value.length;\r\n return this.maxlength - current_length;\r\n}\r\n\r\nfunction characterLimitMessage (characters_left) {\r\n let count_message = \"\";\r\n\r\n if (characters_left === -1) {\r\n let exceeded = Math.abs(characters_left);\r\n count_message = text.character_too_many.replace(/{value}/, exceeded);\r\n }\r\n else if (characters_left === 1) {\r\n count_message = text.character_remaining.replace(/{value}/, characters_left);\r\n }\r\n else if (characters_left >= 0) {\r\n count_message = text.characters_remaining.replace(/{value}/, characters_left);\r\n }\r\n else {\r\n let exceeded = Math.abs(characters_left);\r\n count_message = text.characters_too_many.replace(/{value}/, exceeded);\r\n }\r\n\r\n return count_message;\r\n}\r\n\r\nCharacterLimit.prototype.updateVisibleMessage = function () {\r\n let characters_left = this.charactersLeft();\r\n let count_message = characterLimitMessage(characters_left);\r\n let character_label = this.container.getElementsByClassName('character-limit')[0];\r\n\r\n if (characters_left < 0) {\r\n if (!character_label.classList.contains('limit-exceeded')) {\r\n character_label.classList.add('limit-exceeded');\r\n }\r\n if (!this.input.classList.contains('form-limit-error')) {\r\n this.input.classList.add('form-limit-error');\r\n }\r\n }\r\n else {\r\n if (character_label.classList.contains('limit-exceeded')) {\r\n character_label.classList.remove('limit-exceeded');\r\n }\r\n if (this.input.classList.contains('form-limit-error')) {\r\n this.input.classList.remove('form-limit-error');\r\n }\r\n }\r\n\r\n character_label.innerHTML = count_message;\r\n}\r\n\r\nCharacterLimit.prototype.updateScreenReaderMessage = function () {\r\n let characters_left = this.charactersLeft();\r\n let count_message = characterLimitMessage(characters_left);\r\n let character_label = this.container.getElementsByClassName('character-limit-sr-only')[0];\r\n character_label.innerHTML = count_message;\r\n}\r\n\r\nCharacterLimit.prototype.resetScreenReaderMessage = function () {\r\n if (this.input.value !== \"\") {\r\n let sr_message = this.container.getElementsByClassName('character-limit-sr-only')[0];\r\n sr_message.innerHTML = '';\r\n }\r\n}\r\n\r\nCharacterLimit.prototype.updateMessages = function (e) {\r\n this.updateVisibleMessage();\r\n this.updateScreenReaderMessage();\r\n}\r\n\r\nCharacterLimit.prototype.handleKeyUp = function (e) {\r\n this.updateVisibleMessage();\r\n this.lastKeyUpTimestamp = Date.now();\r\n}\r\n\r\nCharacterLimit.prototype.handleFocus = function (e) { \r\n // Reset the screen reader message on focus to force an update of the message.\r\n // This ensures that a screen reader informs the user of how many characters there is left\r\n // on focus and not just what the character limit is.\r\n this.resetScreenReaderMessage();\r\n\r\n this.intervalID = setInterval(function () {\r\n // Don't update the Screen Reader message unless it's been awhile\r\n // since the last key up event. Otherwise, the user will be spammed\r\n // with audio notifications while typing.\r\n if (!this.lastKeyUpTimestamp || (Date.now() - 500) >= this.lastKeyUpTimestamp) {\r\n let sr_message = this.container.getElementsByClassName('character-limit-sr-only')[0].innerHTML;\r\n let visible_message = this.container.getElementsByClassName('character-limit')[0].innerHTML; \r\n\r\n // Don't update the messages unless the value of the textarea/text input has changed or if there\r\n // is a mismatch between the visible message and the screen reader message.\r\n if (this.oldValue !== this.input.value || sr_message !== visible_message) {\r\n this.oldValue = this.input.value;\r\n this.updateMessages();\r\n }\r\n }\r\n }.bind(this), 1000);\r\n}\r\n\r\nCharacterLimit.prototype.handleBlur = function (e) {\r\n clearInterval(this.intervalID);\r\n // Don't update the messages on blur unless the value of the textarea/text input has changed\r\n if (this.oldValue !== this.input.value) {\r\n this.oldValue = this.input.value;\r\n this.updateMessages();\r\n }\r\n}\r\n\r\nexport default CharacterLimit;","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\nconst TOGGLE_TARGET_ATTRIBUTE = 'data-aria-controls';\r\n\r\n/**\r\n * Adds click functionality to checkbox collapse component\r\n * @param {HTMLInputElement} checkboxElement \r\n */\r\nfunction CheckboxToggleContent(checkboxElement){\r\n this.checkboxElement = checkboxElement;\r\n this.targetElement = null;\r\n}\r\n\r\n/**\r\n * Set events on checkbox state change\r\n */\r\nCheckboxToggleContent.prototype.init = function(){\r\n this.checkboxElement.addEventListener('change', this.toggle.bind(this));\r\n this.toggle();\r\n}\r\n\r\n/**\r\n * Toggle checkbox content\r\n */\r\nCheckboxToggleContent.prototype.toggle = function(){\r\n var $module = this;\r\n var targetAttr = this.checkboxElement.getAttribute(TOGGLE_TARGET_ATTRIBUTE)\r\n var targetEl = document.getElementById(targetAttr);\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error(`Could not find panel element. Verify value of attribute `+ TOGGLE_TARGET_ATTRIBUTE);\r\n }\r\n if(this.checkboxElement.checked){\r\n $module.expand(this.checkboxElement, targetEl);\r\n }else{\r\n $module.collapse(this.checkboxElement, targetEl);\r\n }\r\n}\r\n\r\n/**\r\n * Expand content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.expand = function(checkboxElement, contentElement){\r\n if(checkboxElement !== null && checkboxElement !== undefined && contentElement !== null && contentElement !== undefined){\r\n checkboxElement.setAttribute('data-aria-expanded', 'true');\r\n contentElement.classList.remove('collapsed');\r\n contentElement.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.collapse.expanded');\r\n checkboxElement.dispatchEvent(eventOpen);\r\n }\r\n}\r\n\r\n/**\r\n * Collapse content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.collapse = function(triggerEl, targetEl){\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n triggerEl.setAttribute('data-aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n \r\n let eventClose = new Event('fds.collapse.collapsed');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n}\r\n\r\nexport default CheckboxToggleContent;\r\n","import {keymap} from 'receptor';\r\nconst behavior = require(\"../utils/behavior\");\r\nconst select = require(\"../utils/select\");\r\nconst { prefix: PREFIX } = require(\"../config\");\r\nconst { CLICK } = require(\"../events\");\r\nconst activeElement = require(\"../utils/active-element\");\r\nconst isIosDevice = require(\"../utils/is-ios-device\");\r\n\r\nconst DATE_PICKER_CLASS = `date-picker`;\r\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\r\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\r\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\r\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\r\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\r\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\r\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\r\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\r\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\r\n\r\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\r\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\r\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\r\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\r\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\r\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\r\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\r\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\r\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\r\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\r\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\r\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\r\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\r\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\r\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\r\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\r\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\r\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\r\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\r\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\r\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\r\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\r\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\r\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\r\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\r\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\r\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\r\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\r\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\r\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\r\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\r\n\r\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\r\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\r\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\r\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\r\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\r\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\r\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\r\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\r\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\r\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\r\n\r\nlet text = {\r\n \"open_calendar\": \"Åbn kalender\",\r\n \"aria_label_date\": \"{dayStr} den {day}. {monthStr} {year}\",\r\n \"previous_year\": \"Navigér ét år tilbage\",\r\n \"previous_month\": \"Navigér én måned tilbage\",\r\n \"next_month\": \"Navigér én måned frem\",\r\n \"next_year\": \"Navigér ét år frem\",\r\n \"select_month\": \"Vælg måned\",\r\n \"select_year\": \"Vælg år\",\r\n \"date_selected\": \"Dato valgt\",\r\n \"previous_years\": \"Navigér {years} år tilbage\",\r\n \"next_years\": \"Navigér {years} år frem\",\r\n \"guide\": \"Du kan navigere mellem dage ved at bruge højre og venstre piletaster, uger ved at bruge op og ned piletaster, måneder ved at bruge page up og page down-tasterne og år ved at at taste shift og page up eller ned. Home og end-tasten navigerer til start eller slutning af en uge.\",\r\n \"months_displayed\": \"Vælg en måned\",\r\n \"years_displayed\": \"Viser år {start} til {end}. Vælg et år.\",\r\n \"january\": \"januar\",\r\n \"february\": \"februar\",\r\n \"march\": \"marts\",\r\n \"april\": \"april\",\r\n \"may\": \"maj\",\r\n \"june\": \"juni\",\r\n \"july\": \"juli\",\r\n \"august\": \"august\",\r\n \"september\": \"september\",\r\n \"october\": \"oktober\",\r\n \"november\": \"november\",\r\n \"december\": \"december\",\r\n \"monday\": \"mandag\",\r\n \"tuesday\": \"tirsdag\",\r\n \"wednesday\": \"onsdag\",\r\n \"thursday\": \"torsdag\",\r\n \"friday\": \"fredag\",\r\n \"saturday\": \"lørdag\",\r\n \"sunday\": \"søndag\"\r\n}\r\n\r\nconst VALIDATION_MESSAGE = \"Indtast venligst en gyldig dato\";\r\n\r\nlet MONTH_LABELS = [\r\n text.january,\r\n text.february,\r\n text.march,\r\n text.april,\r\n text.may,\r\n text.june,\r\n text.july,\r\n text.august,\r\n text.september,\r\n text.october,\r\n text.november,\r\n text.december\r\n];\r\n\r\nlet DAY_OF_WEEK_LABELS = [\r\n text.monday,\r\n text.tuesday,\r\n text.wednesday,\r\n text.thursday,\r\n text.friday,\r\n text.saturday,\r\n text.sunday\r\n];\r\n\r\nconst ENTER_KEYCODE = 13;\r\n\r\nconst YEAR_CHUNK = 12;\r\n\r\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\r\nconst DEFAULT_EXTERNAL_DATE_FORMAT = \"DD/MM/YYYY\";\r\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\r\n\r\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\r\n\r\nconst processFocusableSelectors = (...selectors) =>\r\n selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\r\n\r\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR,\r\n CALENDAR_PREVIOUS_MONTH,\r\n CALENDAR_YEAR_SELECTION,\r\n CALENDAR_MONTH_SELECTION,\r\n CALENDAR_NEXT_YEAR,\r\n CALENDAR_NEXT_MONTH,\r\n CALENDAR_DATE_FOCUSED\r\n);\r\n\r\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_MONTH_FOCUSED\r\n);\r\n\r\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR_CHUNK,\r\n CALENDAR_NEXT_YEAR_CHUNK,\r\n CALENDAR_YEAR_FOCUSED\r\n);\r\n\r\n// #region Date Manipulation Functions\r\n\r\n/**\r\n * Keep date within month. Month would only be over by 1 to 3 days\r\n *\r\n * @param {Date} dateToCheck the date object to check\r\n * @param {number} month the correct month\r\n * @returns {Date} the date, corrected if needed\r\n */\r\nconst keepDateWithinMonth = (dateToCheck, month) => {\r\n if (month !== dateToCheck.getMonth()) {\r\n dateToCheck.setDate(0);\r\n }\r\n\r\n return dateToCheck;\r\n};\r\n\r\n/**\r\n * Set date from month day year\r\n *\r\n * @param {number} year the year to set\r\n * @param {number} month the month to set (zero-indexed)\r\n * @param {number} date the date to set\r\n * @returns {Date} the set date\r\n */\r\nconst setDate = (year, month, date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(year, month, date);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * todays date\r\n *\r\n * @returns {Date} todays date\r\n */\r\nconst today = () => {\r\n const newDate = new Date();\r\n const day = newDate.getDate();\r\n const month = newDate.getMonth();\r\n const year = newDate.getFullYear();\r\n return setDate(year, month, day);\r\n};\r\n\r\n/**\r\n * Set date to first day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set date to last day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst lastDayOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Add days to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addDays = (_date, numDays) => {\r\n const newDate = new Date(_date.getTime());\r\n newDate.setDate(newDate.getDate() + numDays);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract days from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\r\n\r\n/**\r\n * Add weeks to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\r\n\r\n/**\r\n * Subtract weeks from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\r\n\r\n/**\r\n * Set date to the start of the week (Monday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfWeek = (_date) => {\r\n let dayOfWeek = _date.getDay()-1;\r\n if(dayOfWeek === -1){\r\n dayOfWeek = 6;\r\n }\r\n return subDays(_date, dayOfWeek);\r\n};\r\n\r\n/**\r\n * Set date to the end of the week (Sunday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst endOfWeek = (_date) => {\r\n const dayOfWeek = _date.getDay();\r\n return addDays(_date, 7 - dayOfWeek);\r\n};\r\n\r\n/**\r\n * Add months to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addMonths = (_date, numMonths) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\r\n newDate.setMonth(newDate.getMonth() + numMonths);\r\n keepDateWithinMonth(newDate, dateMonth);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract months from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\r\n\r\n/**\r\n * Add years to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\r\n\r\n/**\r\n * Subtract years from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\r\n\r\n/**\r\n * Set months of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} month zero-indexed month to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setMonth = (_date, month) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n newDate.setMonth(month);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set year of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} year the year to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setYear = (_date, year) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const month = newDate.getMonth();\r\n newDate.setFullYear(year);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Return the earliest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the earliest date\r\n */\r\nconst min = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB < dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Return the latest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the latest date\r\n */\r\nconst max = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB > dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same year\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same year\r\n */\r\nconst isSameYear = (dateA, dateB) => {\r\n return dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same month\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same month\r\n */\r\nconst isSameMonth = (dateA, dateB) => {\r\n return isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\r\n};\r\n\r\n/**\r\n * Check if dates are the same date\r\n *\r\n * @param {Date} dateA the date to compare\r\n * @param {Date} dateA the date to compare\r\n * @returns {boolean} are dates the same date\r\n */\r\nconst isSameDay = (dateA, dateB) => {\r\n return isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\r\n};\r\n\r\n/**\r\n * return a new date within minimum and maximum date\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @returns {Date} the date between min and max\r\n */\r\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\r\n let newDate = date;\r\n\r\n if (date < minDate) {\r\n newDate = minDate;\r\n } else if (maxDate && date > maxDate) {\r\n newDate = maxDate;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates is valid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is there a day within the month within min and max dates\r\n */\r\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\r\n date >= minDate && (!maxDate || date <= maxDate);\r\n\r\n/**\r\n * Check if dates month is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Check if dates year is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(setMonth(date, 11)) < minDate ||\r\n (maxDate && startOfMonth(setMonth(date, 0)) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Parse a date with format D-M-YY\r\n *\r\n * @param {string} dateString the date string to parse\r\n * @param {string} dateFormat the format of the date string\r\n * @param {boolean} adjustDate should the date be adjusted\r\n * @returns {Date} the parsed date\r\n */\r\nconst parseDateString = (\r\n dateString,\r\n dateFormat = INTERNAL_DATE_FORMAT,\r\n adjustDate = false\r\n) => {\r\n let date;\r\n let month;\r\n let day;\r\n let year;\r\n let parsed;\r\n\r\n if (dateString) {\r\n let monthStr, dayStr, yearStr;\r\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\r\n [dayStr, monthStr, yearStr] = dateString.split(\"/\");\r\n } else {\r\n [yearStr, monthStr, dayStr] = dateString.split(\"-\");\r\n }\r\n\r\n if (yearStr) {\r\n parsed = parseInt(yearStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n year = parsed;\r\n if (adjustDate) {\r\n year = Math.max(0, year);\r\n if (yearStr.length < 3) {\r\n const currentYear = today().getFullYear();\r\n const currentYearStub =\r\n currentYear - (currentYear % 10 ** yearStr.length);\r\n year = currentYearStub + parsed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (monthStr) {\r\n parsed = parseInt(monthStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n month = parsed;\r\n if (adjustDate) {\r\n month = Math.max(1, month);\r\n month = Math.min(12, month);\r\n }\r\n }\r\n }\r\n\r\n if (month && dayStr && year != null) {\r\n parsed = parseInt(dayStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n day = parsed;\r\n if (adjustDate) {\r\n const lastDayOfTheMonth = setDate(year, month, 0).getDate();\r\n day = Math.max(1, day);\r\n day = Math.min(lastDayOfTheMonth, day);\r\n }\r\n }\r\n }\r\n\r\n if (month && day && year != null) {\r\n date = setDate(year, month - 1, day);\r\n }\r\n }\r\n\r\n return date;\r\n};\r\n\r\n/**\r\n * Format a date to format MM-DD-YYYY\r\n *\r\n * @param {Date} date the date to format\r\n * @param {string} dateFormat the format of the date string\r\n * @returns {string} the formatted date string\r\n */\r\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\r\n const padZeros = (value, length) => {\r\n return `0000${value}`.slice(-length);\r\n };\r\n\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\"/\");\r\n }\r\n\r\n return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\r\n};\r\n\r\n// #endregion Date Manipulation Functions\r\n\r\n/**\r\n * Create a grid string from an array of html strings\r\n *\r\n * @param {string[]} htmlArray the array of html items\r\n * @param {number} rowSize the length of a row\r\n * @returns {string} the grid string\r\n */\r\nconst listToGridHtml = (htmlArray, rowSize) => {\r\n const grid = [];\r\n let row = [];\r\n\r\n let i = 0;\r\n while (i < htmlArray.length) {\r\n row = [];\r\n while (i < htmlArray.length && row.length < rowSize) {\r\n row.push(`${htmlArray[i]}`);\r\n i += 1;\r\n }\r\n grid.push(`${row.join(\"\")}`);\r\n }\r\n\r\n return grid.join(\"\");\r\n};\r\n\r\n/**\r\n * set the value of the element and dispatch a change event\r\n *\r\n * @param {HTMLInputElement} el The element to update\r\n * @param {string} value The new value of the element\r\n */\r\nconst changeElementValue = (el, value = \"\") => {\r\n const elementToChange = el;\r\n elementToChange.value = value;\r\n\r\n\r\n var event = new Event('change');\r\n elementToChange.dispatchEvent(event);\r\n};\r\n\r\n/**\r\n * The properties and elements within the date picker.\r\n * @typedef {Object} DatePickerContext\r\n * @property {HTMLDivElement} calendarEl\r\n * @property {HTMLElement} datePickerEl\r\n * @property {HTMLInputElement} internalInputEl\r\n * @property {HTMLInputElement} externalInputEl\r\n * @property {HTMLDivElement} statusEl\r\n * @property {HTMLDivElement} firstYearChunkEl\r\n * @property {Date} calendarDate\r\n * @property {Date} minDate\r\n * @property {Date} maxDate\r\n * @property {Date} selectedDate\r\n * @property {Date} rangeDate\r\n * @property {Date} defaultDate\r\n */\r\n\r\n/**\r\n * Get an object of the properties and elements belonging directly to the given\r\n * date picker component.\r\n *\r\n * @param {HTMLElement} el the element within the date picker\r\n * @returns {DatePickerContext} elements\r\n */\r\nconst getDatePickerContext = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n\r\n if (!datePickerEl) {\r\n throw new Error(`Element is missing outer ${DATE_PICKER}`);\r\n }\r\n\r\n const internalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_INTERNAL_INPUT\r\n );\r\n const externalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_EXTERNAL_INPUT\r\n );\r\n const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\r\n const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\r\n const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\r\n const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\r\n\r\n const inputDate = parseDateString(\r\n externalInputEl.value,\r\n DEFAULT_EXTERNAL_DATE_FORMAT,\r\n true\r\n );\r\n const selectedDate = parseDateString(internalInputEl.value);\r\n\r\n const calendarDate = parseDateString(calendarEl.dataset.value);\r\n const minDate = parseDateString(datePickerEl.dataset.minDate);\r\n const maxDate = parseDateString(datePickerEl.dataset.maxDate);\r\n const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\r\n const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\r\n\r\n if (minDate && maxDate && minDate > maxDate) {\r\n throw new Error(\"Minimum date cannot be after maximum date\");\r\n }\r\n\r\n return {\r\n calendarDate,\r\n minDate,\r\n toggleBtnEl,\r\n selectedDate,\r\n maxDate,\r\n firstYearChunkEl,\r\n datePickerEl,\r\n inputDate,\r\n internalInputEl,\r\n externalInputEl,\r\n calendarEl,\r\n rangeDate,\r\n defaultDate,\r\n statusEl,\r\n };\r\n};\r\n\r\n/**\r\n * Disable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst disable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = true;\r\n externalInputEl.disabled = true;\r\n};\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst enable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = false;\r\n externalInputEl.disabled = false;\r\n};\r\n\r\n// #region Validation\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format D/M/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst isDateInputInvalid = (el) => {\r\n const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\r\n\r\n const dateString = externalInputEl.value;\r\n let isInvalid = false;\r\n\r\n if (dateString) {\r\n isInvalid = true;\r\n\r\n const dateStringParts = dateString.split(\"/\");\r\n const [day, month, year] = dateStringParts.map((str) => {\r\n let value;\r\n const parsed = parseInt(str, 10);\r\n if (!Number.isNaN(parsed)) value = parsed;\r\n return value;\r\n });\r\n\r\n if (month && day && year != null) {\r\n const checkDate = setDate(year, month - 1, day);\r\n\r\n if (\r\n checkDate.getMonth() === month - 1 &&\r\n checkDate.getDate() === day &&\r\n checkDate.getFullYear() === year &&\r\n dateStringParts[2].length === 4 &&\r\n isDateWithinMinAndMax(checkDate, minDate, maxDate)\r\n ) {\r\n isInvalid = false;\r\n }\r\n }\r\n }\r\n\r\n return isInvalid;\r\n};\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format M/D/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst validateDateInput = (el) => {\r\n const { externalInputEl } = getDatePickerContext(el);\r\n const isInvalid = isDateInputInvalid(externalInputEl);\r\n\r\n if (isInvalid && !externalInputEl.validationMessage) {\r\n externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\r\n }\r\n\r\n if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\r\n externalInputEl.setCustomValidity(\"\");\r\n }\r\n};\r\n\r\n// #endregion Validation\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst reconcileInputValues = (el) => {\r\n const { internalInputEl, inputDate } = getDatePickerContext(el);\r\n let newValue = \"\";\r\n\r\n if (inputDate && !isDateInputInvalid(el)) {\r\n newValue = formatDate(inputDate);\r\n }\r\n\r\n if (internalInputEl.value !== newValue) {\r\n changeElementValue(internalInputEl, newValue);\r\n }\r\n};\r\n\r\n/**\r\n * Select the value of the date picker inputs.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {string} dateString The date string to update in YYYY-MM-DD format\r\n */\r\nconst setCalendarValue = (el, dateString) => {\r\n const parsedDate = parseDateString(dateString);\r\n\r\n if (parsedDate) {\r\n const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);\r\n\r\n const {\r\n datePickerEl,\r\n internalInputEl,\r\n externalInputEl,\r\n } = getDatePickerContext(el);\r\n\r\n changeElementValue(internalInputEl, dateString);\r\n changeElementValue(externalInputEl, formattedDate);\r\n\r\n validateDateInput(datePickerEl);\r\n }\r\n};\r\n\r\n/**\r\n * Enhance an input with the date picker elements\r\n *\r\n * @param {HTMLElement} el The initial wrapping element of the date picker component\r\n */\r\nconst enhanceDatePicker = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n const defaultValue = datePickerEl.dataset.defaultValue;\r\n\r\n const internalInputEl = datePickerEl.querySelector(`input`);\r\n\r\n if (!internalInputEl) {\r\n throw new Error(`${DATE_PICKER} is missing inner input`);\r\n }\r\n\r\n\r\n const minDate = parseDateString(\r\n datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\")\r\n );\r\n datePickerEl.dataset.minDate = minDate\r\n ? formatDate(minDate)\r\n : DEFAULT_MIN_DATE;\r\n\r\n const maxDate = parseDateString(\r\n datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\")\r\n );\r\n if (maxDate) {\r\n datePickerEl.dataset.maxDate = formatDate(maxDate);\r\n }\r\n\r\n const calendarWrapper = document.createElement(\"div\");\r\n calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\r\n calendarWrapper.tabIndex = \"-1\";\r\n\r\n const externalInputEl = internalInputEl.cloneNode();\r\n externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\r\n externalInputEl.type = \"text\";\r\n externalInputEl.name = \"\";\r\n\r\n calendarWrapper.appendChild(externalInputEl);\r\n calendarWrapper.insertAdjacentHTML(\r\n \"beforeend\",\r\n [\r\n ``,\r\n ``,\r\n `
`,\r\n ].join(\"\")\r\n );\r\n\r\n internalInputEl.setAttribute(\"aria-hidden\", \"true\");\r\n internalInputEl.setAttribute(\"tabindex\", \"-1\");\r\n internalInputEl.classList.add(\r\n \"sr-only\",\r\n DATE_PICKER_INTERNAL_INPUT_CLASS\r\n );\r\n internalInputEl.removeAttribute('id');\r\n internalInputEl.required = false;\r\n\r\n datePickerEl.appendChild(calendarWrapper);\r\n datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\r\n\r\n if (defaultValue) {\r\n setCalendarValue(datePickerEl, defaultValue);\r\n }\r\n\r\n if (internalInputEl.disabled) {\r\n disable(datePickerEl);\r\n internalInputEl.disabled = false;\r\n }\r\n \r\n if (externalInputEl.value) {\r\n validateDateInput(externalInputEl);\r\n }\r\n};\r\n\r\n// #region Calendar - Date Selection View\r\n\r\n/**\r\n * render the calendar.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n * @param {Date} _dateToDisplay a date to render on the calendar\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst renderCalendar = (el, _dateToDisplay) => {\r\n const {\r\n datePickerEl,\r\n calendarEl,\r\n statusEl,\r\n selectedDate,\r\n maxDate,\r\n minDate,\r\n rangeDate,\r\n } = getDatePickerContext(el);\r\n const todaysDate = today();\r\n let dateToDisplay = _dateToDisplay || todaysDate;\r\n\r\n const calendarWasHidden = calendarEl.hidden;\r\n\r\n const focusedDate = addDays(dateToDisplay, 0);\r\n const focusedMonth = dateToDisplay.getMonth();\r\n const focusedYear = dateToDisplay.getFullYear();\r\n\r\n const prevMonth = subMonths(dateToDisplay, 1);\r\n const nextMonth = addMonths(dateToDisplay, 1);\r\n\r\n const currentFormattedDate = formatDate(dateToDisplay);\r\n\r\n const firstOfMonth = startOfMonth(dateToDisplay);\r\n const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\r\n const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\r\n\r\n const rangeConclusionDate = selectedDate || dateToDisplay;\r\n const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\r\n const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\r\n\r\n const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\r\n const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\r\n\r\n const monthLabel = MONTH_LABELS[focusedMonth];\r\n\r\n const generateDateHtml = (dateToRender) => {\r\n const classes = [CALENDAR_DATE_CLASS];\r\n const day = dateToRender.getDate();\r\n const month = dateToRender.getMonth();\r\n const year = dateToRender.getFullYear();\r\n const dayOfWeek = dateToRender.getDay();\r\n\r\n const formattedDate = formatDate(dateToRender);\r\n\r\n let tabindex = \"-1\";\r\n\r\n const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\r\n const isSelected = isSameDay(dateToRender, selectedDate);\r\n\r\n if (isSameMonth(dateToRender, prevMonth)) {\r\n classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, focusedDate)) {\r\n classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, nextMonth)) {\r\n classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_DATE_SELECTED_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, todaysDate)) {\r\n classes.push(CALENDAR_DATE_TODAY_CLASS);\r\n }\r\n\r\n if (rangeDate) {\r\n if (isSameDay(dateToRender, rangeDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeStartDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeEndDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\r\n }\r\n\r\n if (\r\n isDateWithinMinAndMax(\r\n dateToRender,\r\n withinRangeStartDate,\r\n withinRangeEndDate\r\n )\r\n ) {\r\n classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\r\n }\r\n }\r\n\r\n if (isSameDay(dateToRender, focusedDate)) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_DATE_FOCUSED_CLASS);\r\n }\r\n\r\n const monthStr = MONTH_LABELS[month];\r\n const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\r\n const ariaLabelDate = text.aria_label_date.replace(/{dayStr}/, dayStr).replace(/{day}/, day).replace(/{monthStr}/, monthStr).replace(/{year}/, year);\r\n\r\n return `${day}`;\r\n };\r\n // set date to first rendered day\r\n dateToDisplay = startOfWeek(firstOfMonth);\r\n\r\n const days = [];\r\n\r\n while (\r\n days.length < 28 ||\r\n dateToDisplay.getMonth() === focusedMonth ||\r\n days.length % 7 !== 0\r\n ) {\r\n days.push(generateDateHtml(dateToDisplay));\r\n dateToDisplay = addDays(dateToDisplay, 1); \r\n }\r\n const datesHtml = listToGridHtml(days, 7);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.dataset.value = currentFormattedDate;\r\n newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\r\n newCalendar.hidden = false;\r\n let content = `
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n `;\r\n for(let d in DAY_OF_WEEK_LABELS){\r\n content += ``;\r\n }\r\n content += `\r\n \r\n \r\n ${datesHtml}\r\n \r\n
${DAY_OF_WEEK_LABELS[d].charAt(0)}
\r\n
`;\r\n newCalendar.innerHTML = content;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\r\n\r\n const statuses = [];\r\n\r\n if (isSameDay(selectedDate, focusedDate)) {\r\n statuses.push(text.date_selected);\r\n }\r\n\r\n if (calendarWasHidden) {\r\n statuses.push(text.guide);\r\n statusEl.textContent = \"\";\r\n } else {\r\n statuses.push(`${monthLabel} ${focusedYear}`);\r\n }\r\n statusEl.textContent = statuses.join(\". \");\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Hide the calendar of a date picker component.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst hideCalendar = (el) => {\r\n const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\r\n\r\n datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\r\n calendarEl.hidden = true;\r\n statusEl.textContent = \"\";\r\n};\r\n\r\n/**\r\n * Select a date within the date picker component.\r\n *\r\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\r\n */\r\nconst selectDate = (calendarDateEl) => {\r\n if (calendarDateEl.disabled) return;\r\n\r\n const { datePickerEl, externalInputEl } = getDatePickerContext(\r\n calendarDateEl\r\n );\r\n setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\r\n hideCalendar(datePickerEl);\r\n\r\n externalInputEl.focus();\r\n};\r\n\r\n/**\r\n * Toggle the calendar.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst toggleCalendar = (el) => {\r\n if (el.disabled) return;\r\n const {\r\n calendarEl,\r\n inputDate,\r\n minDate,\r\n maxDate,\r\n defaultDate,\r\n } = getDatePickerContext(el);\r\n\r\n if (calendarEl.hidden) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(\r\n inputDate || defaultDate || today(),\r\n minDate,\r\n maxDate\r\n );\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n } else {\r\n hideCalendar(el);\r\n }\r\n};\r\n\r\n/**\r\n * Update the calendar when visible.\r\n *\r\n * @param {HTMLElement} el an element within the date picker\r\n */\r\nconst updateCalendarIfVisible = (el) => {\r\n const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\r\n const calendarShown = !calendarEl.hidden;\r\n\r\n if (calendarShown && inputDate) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\r\n renderCalendar(calendarEl, dateToDisplay);\r\n }\r\n};\r\n\r\n// #endregion Calendar - Date Selection View\r\n\r\n// #region Calendar - Month Selection View\r\n/**\r\n * Display the month selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayMonthSelection = (el, monthToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedMonth = calendarDate.getMonth();\r\n const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\r\n\r\n const months = MONTH_LABELS.map((month, index) => {\r\n const monthToCheck = setMonth(calendarDate, index);\r\n\r\n const isDisabled = isDatesMonthOutsideMinOrMax(\r\n monthToCheck,\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_MONTH_CLASS];\r\n const isSelected = index === selectedMonth;\r\n\r\n if (index === focusedMonth) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_MONTH_SELECTED_CLASS);\r\n }\r\n\r\n return ``;\r\n });\r\n\r\n const monthsHtml = `
\r\n \r\n \r\n ${listToGridHtml(months, 3)}\r\n \r\n
\r\n
`;\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = monthsHtml;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = text.months_displayed;\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Select a month in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\r\n */\r\nconst selectMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n let date = setMonth(calendarDate, selectedMonth);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Month Selection View\r\n\r\n// #region Calendar - Year Selection View\r\n\r\n/**\r\n * Display the year selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {number} yearToDisplay year to display in year selection\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayYearSelection = (el, yearToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedYear = calendarDate.getFullYear();\r\n const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\r\n\r\n let yearToChunk = focusedYear;\r\n yearToChunk -= yearToChunk % YEAR_CHUNK;\r\n yearToChunk = Math.max(0, yearToChunk);\r\n\r\n const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk - 1),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk + YEAR_CHUNK),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const years = [];\r\n let yearIndex = yearToChunk;\r\n while (years.length < YEAR_CHUNK) {\r\n const isDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearIndex),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_YEAR_CLASS];\r\n const isSelected = yearIndex === selectedYear;\r\n\r\n if (yearIndex === focusedYear) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_YEAR_SELECTED_CLASS);\r\n }\r\n\r\n years.push(\r\n ``\r\n );\r\n yearIndex += 1;\r\n }\r\n\r\n const yearsHtml = listToGridHtml(years, 3);\r\n const ariaLabelPreviousYears = text.previous_years.replace(/{years}/, YEAR_CHUNK);\r\n const ariaLabelNextYears = text.next_years.replace(/{years}/, YEAR_CHUNK);\r\n const announceYears = text.years_displayed.replace(/{start}/, yearToChunk).replace(/{end}/, yearToChunk + YEAR_CHUNK - 1);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = `
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n  \r\n \r\n \r\n \r\n ${yearsHtml}\r\n \r\n
\r\n
\r\n  \r\n
\r\n
`;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = announceYears;\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayPreviousYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear - YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayNextYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear + YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Select a year in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\r\n */\r\nconst selectYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const selectedYear = parseInt(yearEl.innerHTML, 10);\r\n let date = setYear(calendarDate, selectedYear);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Year Selection View\r\n\r\n// #region Calendar Event Handling\r\n\r\n/**\r\n * Hide the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEscapeFromCalendar = (event) => {\r\n const { datePickerEl, externalInputEl } = getDatePickerContext(event.target);\r\n\r\n hideCalendar(datePickerEl);\r\n externalInputEl.focus();\r\n\r\n event.preventDefault();\r\n};\r\n\r\n// #endregion Calendar Event Handling\r\n\r\n// #region Calendar Date Event Handling\r\n\r\n/**\r\n * Adjust the date and display the calendar if needed.\r\n *\r\n * @param {function} adjustDateFn function that returns the adjusted date\r\n */\r\nconst adjustCalendar = (adjustDateFn) => {\r\n return (event) => {\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n event.target\r\n );\r\n\r\n const date = adjustDateFn(calendarDate);\r\n\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameDay(calendarDate, cappedDate)) {\r\n const newCalendar = renderCalendar(calendarEl, cappedDate);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\r\n\r\n/**\r\n * Navigate forward one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\r\n\r\n/**\r\n * Navigate back one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\r\n\r\n/**\r\n * Navigate forward one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\r\n\r\n/**\r\n * Navigate to the start of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\r\n\r\n/**\r\n * Navigate to the end of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\r\n\r\n/**\r\n * display the calendar for the mousemove date.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A date element within the date picker component\r\n */\r\nconst handleMousemoveFromDate = (dateEl) => {\r\n if (dateEl.disabled) return;\r\n\r\n const calendarEl = dateEl.closest(DATE_PICKER_CALENDAR);\r\n\r\n const currentCalendarDate = calendarEl.dataset.value;\r\n const hoverDate = dateEl.dataset.value;\r\n\r\n if (hoverDate === currentCalendarDate) return;\r\n\r\n const dateToDisplay = parseDateString(hoverDate);\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Date Event Handling\r\n\r\n// #region Calendar Month Event Handling\r\n\r\n/**\r\n * Adjust the month and display the month selection screen if needed.\r\n *\r\n * @param {function} adjustMonthFn function that returns the adjusted month\r\n */\r\nconst adjustMonthSelectionScreen = (adjustMonthFn) => {\r\n return (event) => {\r\n const monthEl = event.target;\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const currentDate = setMonth(calendarDate, selectedMonth);\r\n\r\n let adjustedMonth = adjustMonthFn(selectedMonth);\r\n adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\r\n\r\n const date = setMonth(calendarDate, adjustedMonth);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameMonth(currentDate, cappedDate)) {\r\n const newCalendar = displayMonthSelection(\r\n calendarEl,\r\n cappedDate.getMonth()\r\n );\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\r\n\r\n/**\r\n * Navigate forward three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\r\n\r\n/**\r\n * Navigate back one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\r\n\r\n/**\r\n * Navigate forward one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\r\n (month) => month - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromMonth = adjustMonthSelectionScreen(\r\n (month) => month + 2 - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the last month (December) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\r\n\r\n/**\r\n * Navigate to the first month (January) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\r\n\r\n/**\r\n * update the focus on a month when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} monthEl A month element within the date picker component\r\n */\r\nconst handleMousemoveFromMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n if (monthEl.classList.contains(CALENDAR_MONTH_FOCUSED_CLASS)) return;\r\n\r\n const focusMonth = parseInt(monthEl.dataset.value, 10);\r\n\r\n const newCalendar = displayMonthSelection(monthEl, focusMonth);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Month Event Handling\r\n\r\n// #region Calendar Year Event Handling\r\n\r\n/**\r\n * Adjust the year and display the year selection screen if needed.\r\n *\r\n * @param {function} adjustYearFn function that returns the adjusted year\r\n */\r\nconst adjustYearSelectionScreen = (adjustYearFn) => {\r\n return (event) => {\r\n const yearEl = event.target;\r\n const selectedYear = parseInt(yearEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const currentDate = setYear(calendarDate, selectedYear);\r\n\r\n let adjustedYear = adjustYearFn(selectedYear);\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameYear(currentDate, cappedDate)) {\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\r\n\r\n/**\r\n * Navigate forward three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\r\n\r\n/**\r\n * Navigate back one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\r\n\r\n/**\r\n * Navigate forward one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromYear = adjustYearSelectionScreen(\r\n (year) => year - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromYear = adjustYearSelectionScreen(\r\n (year) => year + 2 - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to back 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromYear = adjustYearSelectionScreen(\r\n (year) => year - YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * Navigate forward 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromYear = adjustYearSelectionScreen(\r\n (year) => year + YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * update the focus on a year when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A year element within the date picker component\r\n */\r\nconst handleMousemoveFromYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n if (yearEl.classList.contains(CALENDAR_YEAR_FOCUSED_CLASS)) return;\r\n\r\n const focusYear = parseInt(yearEl.dataset.value, 10);\r\n\r\n const newCalendar = displayYearSelection(yearEl, focusYear);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Year Event Handling\r\n\r\n// #region Focus Handling Event Handling\r\n\r\nconst tabHandler = (focusable) => {\r\n const getFocusableContext = (el) => {\r\n const { calendarEl } = getDatePickerContext(el);\r\n const focusableElements = select(focusable, calendarEl);\r\n\r\n const firstTabIndex = 0;\r\n const lastTabIndex = focusableElements.length - 1;\r\n const firstTabStop = focusableElements[firstTabIndex];\r\n const lastTabStop = focusableElements[lastTabIndex];\r\n const focusIndex = focusableElements.indexOf(activeElement());\r\n\r\n const isLastTab = focusIndex === lastTabIndex;\r\n const isFirstTab = focusIndex === firstTabIndex;\r\n const isNotFound = focusIndex === -1;\r\n\r\n return {\r\n focusableElements,\r\n isNotFound,\r\n firstTabStop,\r\n isFirstTab,\r\n lastTabStop,\r\n isLastTab,\r\n };\r\n };\r\n\r\n return {\r\n tabAhead(event) {\r\n const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isLastTab || isNotFound) {\r\n event.preventDefault();\r\n firstTabStop.focus();\r\n }\r\n },\r\n tabBack(event) {\r\n const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isFirstTab || isNotFound) {\r\n event.preventDefault();\r\n lastTabStop.focus();\r\n }\r\n },\r\n };\r\n};\r\n\r\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\r\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\r\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\r\n\r\n// #endregion Focus Handling Event Handling\r\n\r\n// #region Date Picker Event Delegation Registration / Component\r\n\r\nconst datePickerEvents = {\r\n [CLICK]: {\r\n [DATE_PICKER_BUTTON]() {\r\n toggleCalendar(this);\r\n },\r\n [CALENDAR_DATE]() {\r\n selectDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n selectMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n selectYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_MONTH]() {\r\n displayPreviousMonth(this);\r\n },\r\n [CALENDAR_NEXT_MONTH]() {\r\n displayNextMonth(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR]() {\r\n displayPreviousYear(this);\r\n },\r\n [CALENDAR_NEXT_YEAR]() {\r\n displayNextYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\r\n displayPreviousYearChunk(this);\r\n },\r\n [CALENDAR_NEXT_YEAR_CHUNK]() {\r\n displayNextYearChunk(this);\r\n },\r\n [CALENDAR_MONTH_SELECTION]() {\r\n const newCalendar = displayMonthSelection(this);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n },\r\n [CALENDAR_YEAR_SELECTION]() {\r\n const newCalendar = displayYearSelection(this);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n },\r\n },\r\n keyup: {\r\n [DATE_PICKER_CALENDAR](event) {\r\n const keydown = this.dataset.keydownKeyCode;\r\n if (`${event.keyCode}` !== keydown) {\r\n event.preventDefault();\r\n }\r\n },\r\n },\r\n keydown: {\r\n [DATE_PICKER_EXTERNAL_INPUT](event) {\r\n if (event.keyCode === ENTER_KEYCODE) {\r\n validateDateInput(this);\r\n }\r\n },\r\n [CALENDAR_DATE]: keymap({\r\n Up: handleUpFromDate,\r\n ArrowUp: handleUpFromDate,\r\n Down: handleDownFromDate,\r\n ArrowDown: handleDownFromDate,\r\n Left: handleLeftFromDate,\r\n ArrowLeft: handleLeftFromDate,\r\n Right: handleRightFromDate,\r\n ArrowRight: handleRightFromDate,\r\n Home: handleHomeFromDate,\r\n End: handleEndFromDate,\r\n PageDown: handlePageDownFromDate,\r\n PageUp: handlePageUpFromDate,\r\n \"Shift+PageDown\": handleShiftPageDownFromDate,\r\n \"Shift+PageUp\": handleShiftPageUpFromDate,\r\n }),\r\n [CALENDAR_DATE_PICKER]: keymap({\r\n Tab: datePickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": datePickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_MONTH]: keymap({\r\n Up: handleUpFromMonth,\r\n ArrowUp: handleUpFromMonth,\r\n Down: handleDownFromMonth,\r\n ArrowDown: handleDownFromMonth,\r\n Left: handleLeftFromMonth,\r\n ArrowLeft: handleLeftFromMonth,\r\n Right: handleRightFromMonth,\r\n ArrowRight: handleRightFromMonth,\r\n Home: handleHomeFromMonth,\r\n End: handleEndFromMonth,\r\n PageDown: handlePageDownFromMonth,\r\n PageUp: handlePageUpFromMonth,\r\n }),\r\n [CALENDAR_MONTH_PICKER]: keymap({\r\n Tab: monthPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_YEAR]: keymap({\r\n Up: handleUpFromYear,\r\n ArrowUp: handleUpFromYear,\r\n Down: handleDownFromYear,\r\n ArrowDown: handleDownFromYear,\r\n Left: handleLeftFromYear,\r\n ArrowLeft: handleLeftFromYear,\r\n Right: handleRightFromYear,\r\n ArrowRight: handleRightFromYear,\r\n Home: handleHomeFromYear,\r\n End: handleEndFromYear,\r\n PageDown: handlePageDownFromYear,\r\n PageUp: handlePageUpFromYear,\r\n }),\r\n [CALENDAR_YEAR_PICKER]: keymap({\r\n Tab: yearPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\r\n }),\r\n [DATE_PICKER_CALENDAR](event) {\r\n this.dataset.keydownKeyCode = event.keyCode;\r\n },\r\n [DATE_PICKER](event) {\r\n const keyMap = keymap({\r\n Escape: handleEscapeFromCalendar,\r\n });\r\n\r\n keyMap(event);\r\n },\r\n },\r\n focusout: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n validateDateInput(this);\r\n },\r\n [DATE_PICKER](event) {\r\n if (!this.contains(event.relatedTarget)) {\r\n hideCalendar(this);\r\n }\r\n },\r\n },\r\n input: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n reconcileInputValues(this);\r\n updateCalendarIfVisible(this);\r\n },\r\n },\r\n};\r\n\r\nif (!isIosDevice()) {\r\n datePickerEvents.mousemove = {\r\n [CALENDAR_DATE_CURRENT_MONTH]() {\r\n handleMousemoveFromDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n handleMousemoveFromMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n handleMousemoveFromYear(this);\r\n },\r\n };\r\n}\r\n\r\nconst datePicker = behavior(datePickerEvents, {\r\n init(root) {\r\n select(DATE_PICKER, root).forEach((datePickerEl) => {\r\n if(!datePickerEl.classList.contains(DATE_PICKER_INITIALIZED_CLASS)){\r\n enhanceDatePicker(datePickerEl);\r\n }\r\n });\r\n },\r\n setLanguage(strings) {\r\n text = strings;\r\n MONTH_LABELS = [\r\n text.january,\r\n text.february,\r\n text.march,\r\n text.april,\r\n text.may,\r\n text.june,\r\n text.july,\r\n text.august,\r\n text.september,\r\n text.october,\r\n text.november,\r\n text.december\r\n ];\r\n DAY_OF_WEEK_LABELS = [\r\n text.monday,\r\n text.tuesday,\r\n text.wednesday,\r\n text.thursday,\r\n text.friday,\r\n text.saturday,\r\n text.sunday\r\n ];\r\n },\r\n getDatePickerContext,\r\n disable,\r\n enable,\r\n isDateInputInvalid,\r\n setCalendarValue,\r\n validateDateInput,\r\n renderCalendar,\r\n updateCalendarIfVisible,\r\n});\r\n\r\n// #endregion Date Picker Event Delegation Registration / Component\r\n\r\nmodule.exports = datePicker;\r\n","'use strict';\r\nimport Dropdown from './dropdown';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\n/**\r\n * Add functionality to sorting variant of Overflow menu component\r\n * @param {HTMLElement} container .overflow-menu element\r\n */\r\nfunction DropdownSort (container){\r\n this.container = container;\r\n this.button = container.getElementsByClassName('button-overflow-menu')[0];\r\n\r\n // if no value is selected, choose first option\r\n if(!this.container.querySelector('.overflow-list li[aria-selected=\"true\"]')){\r\n this.container.querySelectorAll('.overflow-list li')[0].setAttribute('aria-selected', \"true\");\r\n }\r\n\r\n this.updateSelectedValue();\r\n}\r\n\r\n/**\r\n * Add click events on overflow menu and options in menu\r\n */\r\nDropdownSort.prototype.init = function(){\r\n this.overflowMenu = new Dropdown(this.button).init();\r\n\r\n let sortingOptions = this.container.querySelectorAll('.overflow-list li button');\r\n for(let s = 0; s < sortingOptions.length; s++){\r\n let option = sortingOptions[s];\r\n option.addEventListener('click', this.onOptionClick.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Update button text to selected value\r\n */\r\nDropdownSort.prototype.updateSelectedValue = function(){\r\n let selectedItem = this.container.querySelector('.overflow-list li[aria-selected=\"true\"]');\r\n this.container.getElementsByClassName('button-overflow-menu')[0].getElementsByClassName('selected-value')[0].innerText = selectedItem.innerText;\r\n}\r\n\r\n/**\r\n * Triggers when choosing option in menu\r\n * @param {PointerEvent} e\r\n */\r\nDropdownSort.prototype.onOptionClick = function(e){\r\n let li = e.target.parentNode;\r\n li.parentNode.querySelector('li[aria-selected=\"true\"]').removeAttribute('aria-selected');\r\n li.setAttribute('aria-selected', 'true');\r\n\r\n let button = li.parentNode.parentNode.parentNode.getElementsByClassName('button-overflow-menu')[0];\r\n let eventSelected = new Event('fds.dropdown.selected');\r\n eventSelected.detail = this.target;\r\n button.dispatchEvent(eventSelected);\r\n this.updateSelectedValue();\r\n\r\n // hide menu\r\n let overflowMenu = new Dropdown(button);\r\n overflowMenu.hide();\r\n}\r\n\r\nexport default DropdownSort;\r\n","'use strict';\r\nconst breakpoints = require('../utils/breakpoints');\r\nconst BUTTON = '.button-overflow-menu';\r\nconst jsDropdownCollapseModifier = 'js-dropdown--responsive-collapse'; //option: make dropdown behave as the collapse component when on small screens (used by submenus in the header and step-dropdown).\r\nconst TARGET = 'data-js-target';\r\n\r\n/**\r\n * Add functionality to overflow menu component\r\n * @param {HTMLButtonElement} buttonElement Overflow menu button\r\n */\r\nfunction Dropdown (buttonElement) {\r\n this.buttonElement = buttonElement;\r\n this.targetEl = null;\r\n this.responsiveListCollapseEnabled = false;\r\n\r\n if(this.buttonElement === null ||this.buttonElement === undefined){\r\n throw new Error(`Could not find button for overflow menu component.`);\r\n }\r\n let targetAttr = this.buttonElement.getAttribute(TARGET);\r\n if(targetAttr === null || targetAttr === undefined){\r\n throw new Error('Attribute could not be found on overflow menu component: '+TARGET);\r\n }\r\n let targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error('Panel for overflow menu component could not be found.');\r\n }\r\n this.targetEl = targetEl;\r\n}\r\n\r\n/**\r\n * Set click events\r\n */\r\nDropdown.prototype.init = function (){\r\n if(this.buttonElement !== null && this.buttonElement !== undefined && this.targetEl !== null && this.targetEl !== undefined){\r\n\r\n if(this.buttonElement.parentNode.classList.contains('overflow-menu--md-no-responsive') || this.buttonElement.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n this.responsiveListCollapseEnabled = true;\r\n }\r\n\r\n //Clicked outside dropdown -> close it\r\n document.getElementsByTagName('body')[ 0 ].removeEventListener('click', outsideClose);\r\n document.getElementsByTagName('body')[ 0 ].addEventListener('click', outsideClose);\r\n //Clicked on dropdown open button --> toggle it\r\n this.buttonElement.removeEventListener('click', toggleDropdown);\r\n this.buttonElement.addEventListener('click', toggleDropdown);\r\n let $module = this;\r\n // set aria-hidden correctly for screenreaders (Tringuide responsive)\r\n if(this.responsiveListCollapseEnabled) {\r\n let element = this.buttonElement;\r\n if (window.IntersectionObserver) {\r\n // trigger event when button changes visibility\r\n let observer = new IntersectionObserver(function (entries) {\r\n // button is visible\r\n if (entries[ 0 ].intersectionRatio) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n } else {\r\n // button is not visible\r\n if ($module.targetEl.getAttribute('aria-hidden') === 'true') {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n }\r\n }, {\r\n root: document.body\r\n });\r\n observer.observe(element);\r\n } else {\r\n // IE: IntersectionObserver is not supported, so we listen for window resize and grid breakpoint instead\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n // small screen\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n // Large screen\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n window.addEventListener('resize', function () {\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n document.removeEventListener('keyup', closeOnEscape);\r\n document.addEventListener('keyup', closeOnEscape);\r\n }\r\n}\r\n\r\n/**\r\n * Hide overflow menu\r\n */\r\nDropdown.prototype.hide = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\n/**\r\n * Show overflow menu\r\n */\r\nDropdown.prototype.show = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\nlet closeOnEscape = function(event){\r\n var key = event.which || event.keyCode;\r\n if (key === 27) {\r\n closeAll(event);\r\n }\r\n};\r\n\r\n/**\r\n * Get an Array of button elements belonging directly to the given\r\n * accordion element.\r\n * @param parent accordion element\r\n * @returns {NodeListOf | NodeListOf | NodeListOf}\r\n */\r\nlet getButtons = function (parent) {\r\n return parent.querySelectorAll(BUTTON);\r\n};\r\n\r\n/**\r\n * Close all overflow menus\r\n * @param {event} event default is null\r\n */\r\nlet closeAll = function (event = null){\r\n let changed = false;\r\n const body = document.querySelector('body');\r\n\r\n let overflowMenuEl = document.getElementsByClassName('overflow-menu');\r\n for (let oi = 0; oi < overflowMenuEl.length; oi++) {\r\n let currentOverflowMenuEL = overflowMenuEl[ oi ];\r\n let triggerEl = currentOverflowMenuEL.querySelector(BUTTON+'[aria-expanded=\"true\"]');\r\n if(triggerEl !== null){\r\n changed = true;\r\n let targetEl = currentOverflowMenuEL.querySelector('#'+triggerEl.getAttribute(TARGET).replace('#', ''));\r\n\r\n if (targetEl !== null && triggerEl !== null) {\r\n if(doResponsiveCollapse(triggerEl)){\r\n if(triggerEl.getAttribute('aria-expanded') === true){\r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(changed && event !== null){\r\n event.stopImmediatePropagation();\r\n }\r\n};\r\nlet offset = function (el) {\r\n let rect = el.getBoundingClientRect(),\r\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\r\n};\r\n\r\nlet toggleDropdown = function (event, forceClose = false) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n toggle(this, forceClose);\r\n\r\n};\r\n\r\nlet toggle = function(button, forceClose = false){\r\n let triggerEl = button;\r\n let targetEl = null;\r\n if(triggerEl !== null && triggerEl !== undefined){\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if(targetAttr !== null && targetAttr !== undefined){\r\n targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n }\r\n }\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n //change state\r\n\r\n targetEl.style.left = null;\r\n targetEl.style.right = null;\r\n\r\n if(triggerEl.getAttribute('aria-expanded') === 'true' || forceClose){\r\n //close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }else{\r\n \r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n closeAll();\r\n }\r\n //open\r\n triggerEl.setAttribute('aria-expanded', 'true');\r\n targetEl.classList.remove('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.dropdown.open');\r\n triggerEl.dispatchEvent(eventOpen);\r\n let targetOffset = offset(targetEl);\r\n\r\n if(targetOffset.left < 0){\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n let right = targetOffset.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n\r\n let offsetAgain = offset(targetEl);\r\n\r\n if(offsetAgain.left < 0){\r\n\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n right = offsetAgain.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nlet hasParent = function (child, parentTagName){\r\n if(child.parentNode.tagName === parentTagName){\r\n return true;\r\n } else if(parentTagName !== 'BODY' && child.parentNode.tagName !== 'BODY'){\r\n return hasParent(child.parentNode, parentTagName);\r\n }else{\r\n return false;\r\n }\r\n};\r\n\r\nlet outsideClose = function (evt){\r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n if(document.querySelector('body.mobile_nav-active') === null && !evt.target.classList.contains('button-menu-close')) {\r\n let openDropdowns = document.querySelectorAll(BUTTON+'[aria-expanded=true]');\r\n for (let i = 0; i < openDropdowns.length; i++) {\r\n let triggerEl = openDropdowns[i];\r\n let targetEl = null;\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if (targetAttr !== null && targetAttr !== undefined) {\r\n if(targetAttr.indexOf('#') !== -1){\r\n targetAttr = targetAttr.replace('#', '');\r\n }\r\n targetEl = document.getElementById(targetAttr);\r\n }\r\n if (doResponsiveCollapse(triggerEl) || (hasParent(triggerEl, 'HEADER') && !evt.target.classList.contains('overlay'))) {\r\n //closes dropdown when clicked outside\r\n if (evt.target !== triggerEl) {\r\n //clicked outside trigger, force close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nlet doResponsiveCollapse = function (triggerEl){\r\n if(!triggerEl.classList.contains(jsDropdownCollapseModifier)){\r\n // not nav overflow menu\r\n if(triggerEl.parentNode.classList.contains('overflow-menu--md-no-responsive') || triggerEl.parentNode.classList.contains('overflow-menu--lg-no-responsive')) {\r\n // trinindikator overflow menu\r\n if (window.innerWidth <= getTringuideBreakpoint(triggerEl)) {\r\n // overflow menu på responsiv tringuide aktiveret\r\n return true;\r\n }\r\n } else{\r\n // normal overflow menu\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nlet getTringuideBreakpoint = function (button){\r\n if(button.parentNode.classList.contains('overflow-menu--md-no-responsive')){\r\n return breakpoints.md;\r\n }\r\n if(button.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n return breakpoints.lg;\r\n }\r\n};\r\n\r\nexport default Dropdown;","'use strict';\r\n/**\r\n * Handle focus on input elements upon clicking link in error message\r\n * @param {HTMLElement} element Error summary element\r\n */\r\nfunction ErrorSummary (element) {\r\n this.element = element;\r\n}\r\n\r\n/**\r\n * Set events on links in error summary\r\n */\r\nErrorSummary.prototype.init = function () {\r\n if (!this.element) {\r\n return\r\n }\r\n this.element.focus()\r\n\r\n this.element.addEventListener('click', this.handleClick.bind(this))\r\n}\r\n\r\n/**\r\n* Click event handler\r\n*\r\n* @param {MouseEvent} event - Click event\r\n*/\r\nErrorSummary.prototype.handleClick = function (event) {\r\n var target = event.target\r\n if (this.focusTarget(target)) {\r\n event.preventDefault()\r\n }\r\n}\r\n\r\n/**\r\n * Focus the target element\r\n *\r\n * By default, the browser will scroll the target into view. Because our labels\r\n * or legends appear above the input, this means the user will be presented with\r\n * an input without any context, as the label or legend will be off the top of\r\n * the screen.\r\n *\r\n * Manually handling the click event, scrolling the question into view and then\r\n * focussing the element solves this.\r\n *\r\n * This also results in the label and/or legend being announced correctly in\r\n * NVDA (as tested in 2018.3.2) - without this only the field type is announced\r\n * (e.g. \"Edit, has autocomplete\").\r\n *\r\n * @param {HTMLElement} $target - Event target\r\n * @returns {boolean} True if the target was able to be focussed\r\n */\r\nErrorSummary.prototype.focusTarget = function ($target) {\r\n // If the element that was clicked was not a link, return early\r\n if ($target.tagName !== 'A' || $target.href === false) {\r\n return false\r\n }\r\n\r\n var inputId = this.getFragmentFromUrl($target.href)\r\n var $input = document.getElementById(inputId)\r\n if (!$input) {\r\n return false\r\n }\r\n\r\n var $legendOrLabel = this.getAssociatedLegendOrLabel($input)\r\n if (!$legendOrLabel) {\r\n return false\r\n }\r\n\r\n // Scroll the legend or label into view *before* calling focus on the input to\r\n // avoid extra scrolling in browsers that don't support `preventScroll` (which\r\n // at time of writing is most of them...)\r\n $legendOrLabel.scrollIntoView()\r\n $input.focus({ preventScroll: true })\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * Get fragment from URL\r\n *\r\n * Extract the fragment (everything after the hash) from a URL, but not including\r\n * the hash.\r\n *\r\n * @param {string} url - URL\r\n * @returns {string} Fragment from URL, without the hash\r\n */\r\nErrorSummary.prototype.getFragmentFromUrl = function (url) {\r\n if (url.indexOf('#') === -1) {\r\n return false\r\n }\r\n\r\n return url.split('#').pop()\r\n}\r\n\r\n/**\r\n * Get associated legend or label\r\n *\r\n * Returns the first element that exists from this list:\r\n *\r\n * - The `` associated with the closest `
` ancestor, as long\r\n * as the top of it is no more than half a viewport height away from the\r\n * bottom of the input\r\n * - The first `