{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/lang/messages.js","webpack:///external \"jQuery\"","webpack:///./src/js/util.js","webpack:///./src/index.js","webpack:///./src/js/app.js","webpack:///./src/js/services.js","webpack:///./src/js/lang/fr.js","webpack:///./src/js/lang/en.js","webpack:///./src/js/templates.js","webpack:///./src/js/pagination.js","webpack:///./node_modules/materialize-css/dist/js/materialize.js","webpack:///(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","messages","messagesFR","default","initMessages","language","toLowerCase","messagesEN","jQuery","sanitize","inputString","filteredString","replace","encodeURIComponent","nvl","val1","val2","getQueryStringParameter","results","RegExp","exec","decodeURI","window","location","href","setQueryStringParameter","url","regex","undefined","hash","indexOf","separator","pushHistoryState","history","pushState","state","manitou","require","$","addEventListener","event","init","manLanguage","validationParametersPromise","services","templates","postingId","newState","replaceState","on","displayPostingDetails","this","data","document","getElementById","scrollIntoView","behavior","filterPostings","val","getValidationParameters","fail","errorMessage","displayCriticalError","postingIdQueryString","POSTING_ID_QUERY_STRING_KEY","displayPostings","FORM_SELECT_OPTIONS","dropdownOptions","onCloseEnd","element","$inputEl","$selectEl","parent","find","$inputFieldEl","closest","$selectWrapperEl","attr","addClass","removeClass","hasClass","split","includes","defaultOptions","other","next","show","hide","html","preloader","getPostingDetails","config","internalPostingsSecret","done","postingDetailsPage","getExtraAttachments","postingApplicationAttachments","resumeAttachmentId","displayPostingApplicationComment","getPostingApplicationCustomSelectionLists","customSelectionLists","validateApplicationForm","applyToPosting","formSelect","institution","jobSector","jobField","jobClass","commitment","isFiltered","when","getPostings","getPostingsFilters","getSelfServiceURL","postings","filters","selfService","displayedFilters","displayedPostings","displayedPostingsGroups","each","filterTypes","index","filterType","filterByDivision","activeDivisions","id","push","activeDivisionsNames","posting","sortingColumn","sortingColumns","Array","isArray","order","sortingOrder","sort","a","b","reduce","sortingValue","currentColumn","localeCompare","locale","sensitivity","enablePostingsGrouping","postingsGroups","filtersByValue","forEach","group","filterKey","filter","filterValues","map","groupPostings","postingDataKey","title","groupTitle","anchorID","postingsListPage","postingsColumns","displaySelfServiceLink","selfServiceLink","displaySpontaneousApplication","append","spontaneousApplicationPage","spontaneousApplicationAttachments","displaySpontaneousApplicationComment","getSpontaneousApplicationCustomSelectionLists","collapsible","disablePagination","manitouPagination","showItemCount","showItemRange","itemsPerPage","nextTooltipText","buttons","nextTooltip","prevTooltipText","previousTooltip","activeColor","comment","$element","selectionString","otherValue","commentFieldValue","applicationCommentLabel","labels","postApplyToPosting","files","attachmentToken","applicantId","applicationId","addAttachmentRequests","fileFieldElement","fileElement","querySelector","fileNameElement","request","postAddAttachment","platform","getAttribute","errorData","message","attachmentErrorMessage","apply","always","displayApplicationSuccessMessage","remove","fieldMatching","clearApplicationFormErrors","genericError","errors","error","fieldId","parameter","$field","addApplicationFormError","genericTryAgain","errorCount","checkValidity","classList","add","fileHelperTextElement","setAttribute","validations","attachmentError","attachmentFile","attachmentFileName","validationParameters","size","maxFileSize","attachmentMaxSizeError","attachmentEmptyError","length","attachmentNameEmptyError","inlineError","successMessage","$form","prepend","configAttachmentsList","attachments","attachment","label","documentTypeId","isRequired","configCustomSelectionLists","filteredSelectionLists","selectionList","displayForSpontaneousApplicationForm","getCustomSelectionLists","displayForPostingApplicationForm","selectionLists","columnWidth","multipleSelections","otherManualOption","options","option","search","deferred","Deferred","ajax","restServiceUrl","serviceRoutes","method","dataType","success","result","items","rawPosting","ide_affch","titre","date_post","lieu","etablissement","secteur","engagement","domaine_emploi","classe_emploi","num_concr","resolve","reject","promise","postingsFilters","KEY_MATCHING","rawFilters","rawFilter","Number","postingDetails","logoURL","sharingURL","facebookSharingURL","twitterSharingURL","linkedInSharingUrl","content","postingItem","selfServiceUrl","ss_url","getSelfServiceUrl","selfServiceIsActive","toUpperCase","emailConfirmationIsActive","firstName","lastName","email","phoneNumber","resumeFileName","resumeFile","applicationSource","applicationForm","FormData","substring","applicantSource","spontaneousApplicantSource","contentType","processData","status","applicantID","applicationID","responseJSON","rawError","fileName","file","description","attachmentTypeId","isMainCV","tempToken","substr","addAttachment","file_name","created_on","addExtraAttachment","tableHeaders","deadline","sector","competitionNumber","phone","password","passwordConfirmation","resume","spontaneousApplicationEntry","sendApplication","filterResults","applyFilters","resetFilters","backToPostings","facebookTooltip","twitterTooltip","linkedinTooltip","mailTooltip","iTryMyLuck","emailTooltip","emailError","emailCorrect","firstNameError","lastNameError","requiredFieldError","titles","postingsListTitle","spontaneousApplication","text","pagination","countResults","countTo","countOf","shareSubject","noDataFound","noPostings","noSearchResults","columns","noResultFound","postingsGroupsHtml","postingsGroup","privateTemplates","hideTitle","hideFilters","extraAttachments","displayComment","backToPostingsButton","displayPagination","hideTopPagination","paginationBlock","displaySpontaneousApplicationListEntry","noPostingsFound","postingsTable","hideBottomPagination","areFiltersActive","filtersHtml","filtersList","filterOptionsHtml","postingsHtml","columnsHtml","columnName","applyButtonText","headersHtml","contentHeaderHtml","contentBodyHtml","contentFooterHtml","contentHeader","contentBody","contentFooter","facebookURL","twitterURL","linkedInURL","extraAttachmentsHtml","attachmentField","customSelectFieldsHtml","selectList","customSelectField","commentField","idFile","idFileName","classes","elementType","applicationCommentIsSingleLine","attributes","applicationCommentMaxLength","selectId","optionsHtml","fn","$this","settings","extend","showPaginationNumbers","showPaginationArrows","paginationSelector","itemsContainerSelector","itemsSelector","totalItemCountSelector","lowerItemCountSelector","upperItemCountSelector","itemsElements","paginationElement","itemCount","pageCount","Math","ceil","min","previousArrowHtml","appendTo","pageNumber","pageNumberHtml","nextArrowHtml","goTo","startAt","endAt","slice","click","valueOf","parseInt","_get","receiver","Function","desc","getOwnPropertyDescriptor","getPrototypeOf","_createClass","defineProperties","target","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","TypeError","constructor","setPrototypeOf","__proto__","_classCallCheck","instance","cash","frag","doc","win","ArrayProto","noop","isFunction","item","isString","idMatch","classMatch","htmlMatch","singlet","selector","context","test","getElementsByClassName","getElementsByTagName","querySelectorAll","parseHTML","str","base","implementation","createHTMLDocument","createElement","head","appendChild","body","innerHTML","childNodes","onReady","readyState","Init","elems","nodeType","splice","collection","callback","matches","el","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","getCompareFunction","is","unique","args","arguments","merge","first","second","len","j","isNumeric","isNaN","parseFloat","isFinite","uid","Date","now","getDataCache","node","setData","getData","dataset","v","removeData","removeAttr","notWhiteMatch","getClasses","match","contains","className","spacedName","check","prop","removeAttribute","removeProp","toggleClass","eq","comparator","e","elem","child","children","last","cache","style","camelRegex","whiteSpace","camelCase","letter","getPrefixedProp","ucProp","charAt","join","compute","getComputedStyle","removeEvent","eventName","events","eventCache","removeEventListener","encode","getValue","type","selectedIndex","getSelectSingle_","values","selected","getSelectMultiple_","checked","insertContent","insertAdjacentHTML","insertBefore","insertElement","cloneNode","prefixedProp","css","lower","getBoundingClientRect","margins","off","delegate","runOnce","originalCallback","parentNode","finalCallback","registerEvent","one","ready","trigger","createEvent","evt","initEvent","dispatchEvent","serialize","query","elements","disabled","tagName","after","insertAfter","before","clone","empty","source","outerHTML","_this","sibling","nextSibling","_this2","prependTo","removeChild","textContent","docEl","documentElement","position","left","offsetLeft","top","offsetTop","offset","rect","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","has","nextElementSibling","not","parents","prev","previousElementSibling","siblings","factory","Component","classDef","Element","console","Error","ins","getInstance","destroy","$el","els","instances","jquery","NodeList","instancesArr","Package","M","jQueryLoaded","keys","TAB","ENTER","ESC","ARROW_UP","ARROW_DOWN","tabPressed","keyDown","which","initializeJqueryWrapper","plugin","pluginName","classRef","methodOrOptions","params","AutoInit","root","registry","Autocomplete","Carousel","Chips","Collapsible","Datepicker","Dropdown","Materialbox","Modal","Parallax","Pushpin","ScrollSpy","FormSelect","Sidenav","Tabs","TapTarget","Timepicker","Tooltip","FloatingActionButton","objectSelectorString","obj","guid","s4","floor","random","toString","escapeHash","elementOrParentIsFixed","$checkElements","isFixed","checkWithinContainer","container","bounding","edges","right","bottom","containerRect","containerBottom","max","innerHeight","scrollLeft","scrollTop","scrolledX","scrolledY","width","innerWidth","height","checkPossibleAlignments","canAlign","spaceOnTop","spaceOnRight","spaceOnBottom","spaceOnLeft","containerAllowsOverflow","overflow","containerHeight","containerWidth","elOffsetRect","scrolledYTopEdge","scrolledYBottomEdge","getOverflowParent","parentElement","getIdFromTrigger","getDocumentScrollTop","getDocumentScrollLeft","getTime","throttle","func","wait","timeout","previous","later","leading","remaining","clearTimeout","trailing","setTimeout","$jscomp","scope","set","getGlobal","global","SYMBOL_PREFIX","initSymbol","symbolCounter_","initSymbolIterator","iterator","arrayIterator","iteratorPrototype","array","iteratorFromArray","String","u","polyfill","$jscomp$this","anime","h","col","f","k","concat","arr","HTMLCollection","some","C","D","z","und","y","I","fnc","total","E","getPropertyValue","J","dom","W","svg","K","V","transform","X","L","F","sqrt","pow","x","points","numberOfItems","getItem","N","getTotalLength","PI","Y","getPointAtLength","atan2","O","pth","totalLength","rgb","hex","T","hsl","U","original","numbers","strings","P","aa","duration","delay","da","tweens","ba","to","w","from","start","end","easing","A","Q","ca","elasticity","isPath","isColor","round","R","fa","ga","S","Z","targets","animatable","ea","animatables","animations","q","Promise","g","reversed","ha","currentValue","H","currentTime","progress","G","seek","began","direction","pause","completed","reset","loop","paused","tick","speed","play","B","ia","reverse","restart","finished","autoplay","update","begin","run","complete","SVGElement","Float32Array","abs","sin","asin","In","Out","InOut","linear","attribute","requestAnimationFrame","cancelAnimationFrame","version","running","path","setDashoffset","bezier","easings","timeline","anim","_defaults","accordion","onOpenStart","onOpenEnd","onCloseStart","inDuration","outDuration","_Component","_this3","M_Collapsible","defaults","$headers","_setupEventHandlers","$activeBodies","_removeEventHandlers","_this4","_handleCollapsibleClickBound","_handleCollapsibleClick","_handleCollapsibleKeydownBound","_handleCollapsibleKeydown","header","_this5","$header","$collapsible","$collapsibleLi","$collapsibleLis","isActive","close","open","keyCode","_this6","$body","display","paddingTop","paddingBottom","pTop","pBottom","finalHeight","scrollHeight","_this7","padding","_this8","_animateIn","_animateOut","alignment","autoFocus","constrainWidth","coverTrigger","closeOnClick","hover","onItemClick","_Component2","_this9","M_Dropdown","_dropdowns","dropdownEl","$dropdownEl","isOpen","isScrollable","isTouchMoving","focusedIndex","filterQuery","_makeDropdownFocusable","_resetFilterQueryBound","_resetFilterQuery","_handleDocumentClickBound","_handleDocumentClick","_handleDocumentTouchmoveBound","_handleDocumentTouchmove","_handleDropdownClickBound","_handleDropdownClick","_handleDropdownKeydownBound","_handleDropdownKeydown","_handleTriggerKeydownBound","_handleTriggerKeydown","_resetDropdownStyles","_handleMouseEnterBound","_handleMouseEnter","_handleMouseLeaveBound","_handleMouseLeave","_handleClickBound","_handleClick","preventDefault","toEl","toElement","relatedTarget","leaveToDropdownContent","leaveToActiveDropdownTrigger","$closestTrigger","_this10","$target","itemEl","focusedElement","$activatableElement","newFocusedIndex","foundNewIndex","tabIndex","_focusFocusedItem","fromCharCode","string","newOptionEl","filterTimeout","opacity","focus","triggerBRect","dropdownBRect","idealHeight","idealWidth","idealXPos","idealYPos","dropdownBounds","closestOverflowParent","alignments","verticalAlignment","horizontalAlignment","oppositeAlignment","_this11","scaleX","scaleY","_this12","positionInfo","_getDropdownPosition","transformOrigin","_placeDropdown","_setupTemporaryEventHandlers","_removeTemporaryEventHandlers","preventScrolling","dismissible","startingTop","endingTop","_Component3","_this13","M_Modal","_openingTrigger","$overlay","_nthModalOpened","_count","_handleOverlayClickBound","_handleOverlayClick","_handleModalCloseClickBound","_handleModalCloseClick","_handleTriggerClick","$trigger","modalId","modalInstance","_modalsOpen","_this14","enterAnimOptions","_this15","exitAnimOptions","zIndex","insertAdjacentElement","_handleKeydownBound","_handleKeydown","_handleFocusBound","_handleFocus","_Component4","_this16","M_Materialbox","overlayActive","doneAnimating","placeholder","originalWidth","originalHeight","originInlineStyles","caption","_handleMaterialboxClickBound","_handleMaterialboxClick","ancestorsChanged","ancestor","curr","_this17","animOptions","newHeight","newWidth","windowWidth","windowHeight","maxWidth","maxHeight","_this18","attrWidth","attrHeight","_this19","_updateVars","_makeAncestorsOverflowVisible","overlayOffset","$photocaption","$photoCaption","ratio","widthPercent","heightPercent","_animateImageIn","_handleWindowScrollBound","_handleWindowScroll","_handleWindowResizeBound","_handleWindowResize","_handleWindowEscapeBound","_handleWindowEscape","_this20","_animateImageOut","responsiveThreshold","_Component5","_this21","M_Parallax","_enabled","$img","_updateParallax","_setupStyles","_parallaxes","_handleImageLoadBound","_handleImageLoad","_handleScrollThrottled","_handleScroll","_handleWindowResizeThrottled","offsetHeight","parallaxDist","parallax","parallaxInstance","onShow","swipeable","Infinity","_Component6","_this22","M_Tabs","$tabLinks","_setupActiveTabLink","_setupSwipeableTabs","_setupNormalTabs","_setTabsAndTabWidth","_createIndicator","_indicator","_teardownSwipeableTabs","_teardownNormalTabs","_handleTabClickBound","_handleTabClick","tabWidth","tabsWidth","_calcLeftPos","$activeTabLink","_calcRightPos","_this23","tab","tabLink","$oldContent","$content","prevIndex","_tabsCarousel","_animateIndicator","_this24","indicator","_this25","$tabsContent","link","$currContent","$tabsWrapper","activeTabIndex","fullWidth","noWrap","onCycleTo","scrollWidth","leftDelay","rightDelay","tabId","exitDelay","enterDelay","margin","transitionMovement","_Component7","_this26","M_Tooltip","isHovered","isFocused","_appendTooltipEl","tooltipEl","tooltipContentEl","_handleBlurBound","_handleBlur","isManual","_getAttributeOptions","_updateTooltipContent","_setEnterDelayTimeout","_setExitDelayTimeout","_this27","_exitDelayTimeout","_this28","_enterDelayTimeout","newCoordinates","origin","tooltip","originHeight","originWidth","offsetWidth","tooltipHeight","tooltipWidth","targetTop","targetLeft","xMovement","yMovement","_repositionWithinScreen","newX","newY","_positionTooltip","visibility","translateX","translateY","attributeOptions","tooltipTextOption","positionOption","Waves","$$","convertStyle","Effect","button","ripple","docElem","box","pos","ownerDocument","defaultView","getWindow","relativeY","pageY","relativeX","pageX","scale","clientWidth","touches","rippleStyle","TouchHandler","touchup","ripples","wrapInput","wrapper","elementStyle","replaceChild","allowEvent","allow","showEffect","srcElement","getWavesEffectElement","displayEffect","attach","displayLength","completeCallback","activationPercent","Toast","panning","timeRemaining","_toasts","_createContainer","toastElement","_createToast","M_Toast","_setTimer","toast","HTMLElement","nodeName","_container","_this29","counterInterval","setInterval","dismiss","_this30","clearInterval","activationDistance","wasSwiped","transition","marginTop","_removeContainer","_onDragStart","_onDragMove","_onDragEnd","_draggedToast","startingXPos","_xPos","time","xPos","deltaX","velocityX","totalDeltaX","targetTouches","clientX","toastIndex","edge","draggable","_Component8","_this31","M_Sidenav","isDragged","lastWindowWidth","lastWindowHeight","_createOverlay","_createDragTarget","_setupClasses","_setupFixed","_sidenavs","_enableBodyScrolling","_overlay","dragTarget","overlay","_closeBound","_handleDragTargetDragBound","_handleDragTargetDrag","_handleDragTargetReleaseBound","_handleDragTargetRelease","_handleCloseDragBound","_handleCloseDrag","_handleCloseReleaseBound","_handleCloseRelease","_handleCloseTriggerClickBound","_handleCloseTriggerClick","sidenavId","sidenavInstance","_startingXpos","_time","_width","_initialScrollTop","_verticallyScrolling","currentScrollTop","_isCurrentlyFixed","_startDrag","_dragMoveUpdate","dragDirection","transformX","transformPrefix","percentOpen","_preventBodyScrolling","_animateSidenavIn","_animateOverlayIn","_this32","slideOutPercent","_animateSidenavOut","_animateOverlayOut","_this33","endPercent","_this34","scrollOffset","activeClass","getActiveElement","_Component9","_this35","M_ScrollSpy","_elements","_increment","tickId","_elementsInView","_visibleElements","throttledResize","_handleThrottledResizeBound","scrollspy","_ticks","intersections","_findElements","_enter","_i","_scrollspy","_lastTick","_exit","unshift","_this36","hits","currTop","elTop","elLeft","elRight","elBottom","limit","onAutocomplete","minLength","sortFunction","_Component10","_this37","M_Autocomplete","count","activeIndex","oldVal","$inputField","$active","_mousedown","_setupDropdown","_removeDropdown","_handleInputBlurBound","_handleInputBlur","_handleInputKeyupAndFocusBound","_handleInputKeyupAndFocus","_handleInputKeydownBound","_handleInputKeydown","_handleInputClickBound","_handleInputClick","_handleContainerMousedownAndTouchstartBound","_handleContainerMousedownAndTouchstart","_handleContainerMouseupAndTouchendBound","_handleContainerMouseupAndTouchend","ontouchstart","_this38","dropdown","selectOption","_resetAutocomplete","_keydown","liElement","numItems","img","matchStart","matchEnd","beforeMatch","matchText","afterMatch","_resetCurrentElement","trim","_this39","matchingData","entry","_entry","$autocompleteOption","_highlight","_renderDropdown","recalculateDimensions","updateTextFields","autofocus","validity","badInput","validate_field","hasLength","lenAttr","textareaAutoResize","$textarea","hiddenDiv","fontFamily","fontSize","lineHeight","paddingRight","paddingLeft","input_selector","formReset","M_FormSelect","$inputElement","path_input","file_names","indicators","interval","Slider","_Component11","_this40","M_Slider","$slider","$slides","_setSliderHeight","_animateCaptionIn","placeholderBase64","_setupIndicators","$indicators","_removeIndicators","_this41","_handleIntervalBound","_handleInterval","_handleIndicatorClickBound","_handleIndicatorClick","_this42","currIndex","newActiveIndex","_this43","$indicator","_this44","$caption","newIndex","$card","$cardReveal","secondaryPlaceholder","autocompleteOptions","onChipAdd","onChipSelect","onChipDelete","_Component12","_this45","M_Chips","chipsData","$chips","_setupInput","hasAutocomplete","$input","_renderChips","_setupAutocomplete","_setPlaceholder","_setupLabel","_handleChipClickBound","_handleChipClick","_handleInputFocusBound","_handleInputFocus","_handleChipsKeydown","_handleChipsKeyup","_handleChipsBlur","$chip","clickedClose","deleteChip","selectChip","autocomplete","addChip","tag","chip","renderedChip","closeIcon","image","firstChild","chipEl","_renderChip","_this46","$label","exists","_isValid","chipIndex","_selectedChip","chipsKeydown","currChips","selectIndex","_selectIndex","_selectIndex2","onPositionChange","_Component13","_this47","M_Pushpin","originalOffset","_pushpins","_updatePosition","_removePinClasses","_updateElements","scrolled","elIndex","hoverEnabled","toolbarEnabled","_Component14","_this48","M_FloatingActionButton","$anchor","$menu","$floatingBtns","$floatingBtnsReverse","offsetY","offsetX","_handleFABClickBound","_handleFABClick","_handleOpenBound","_handleCloseBound","_animateInToolbar","_animateInFAB","_animateOutToolbar","_animateOutFAB","_this49","_this50","scaleFactor","_this51","btnRect","backdrop","fabColor","btnBottom","btnLeft","btnWidth","_this52","autoClose","format","parse","defaultDate","setDefaultDate","disableWeekends","disableDayFn","firstDay","minDate","maxDate","yearRange","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","showMonthAfterYear","showDaysInNextAndPreviousMonths","showClearBtn","i18n","cancel","clear","previousMonth","nextMonth","months","monthsShort","weekdays","weekdaysShort","weekdaysAbbrev","onSelect","onOpen","onClose","onDraw","_Component15","_this53","M_Datepicker","setHours","_setupVariables","_insertHTMLIntoDOM","_setupModal","defDate","_isDate","setDate","setInputValue","gotoDate","modal","modalEl","destroySelects","oldYearSelect","calendarEl","oldMonthSelect","clearBtn","doneBtn","cancelBtn","$modalEl","_this54","_this55","date","formats","preventOnSelect","_renderDateDisplay","draw","_setToStartOfDay","firedBy","displayDate","day","getDay","month","getMonth","getDate","yearTextEl","getFullYear","dateTextEl","newCalendar","calendars","firstVisibleDate","year","lastVisibleDate","visibleDate","setMonth","adjustCalendars","adjustCalendar","calendar","randId","opts","days","_getDaysInMonth","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","isWeekSelected","isSelected","_compareDates","isToday","hasEvent","toDateString","isEmpty","dayNumber","monthNumber","yearNumber","isStartRange","isEndRange","isInRange","dayConfig","isDisabled","_isWeekend","renderDay","renderRow","renderTable","ariaSelected","isRowSelected","renderHead","renderBody","renderDayName","rows","refYear","monthHtml","yearHtml","isMinYear","isMaxYear","force","_y","_m","renderTitle","render","yearSelect","monthSelect","_handleYearChange","_handleMonthChange","_handleInputChangeBound","_handleInputChange","_handleCalendarClickBound","_handleCalendarClick","_finishSelectionBound","_finishSelection","_handleClearClickBound","_handleClearClick","_this56","_template","dd","ddd","dddd","mm","mmm","mmmm","yy","yyyy","prevMonth","gotoMonth","gotoYear","abbr","_isLeapYear","dialRadius","outerRadius","innerRadius","tickRadius","defaultTime","fromNow","twelveHour","vibrate","_Component16","_this57","M_Timepicker","_clockSetup","_pickerSetup","_handleClockClickStartBound","_handleClockClickStart","_handleDocumentClickMoveBound","_handleDocumentClickMove","_handleDocumentClickEndBound","_handleDocumentClickEnd","plate","spanHours","showView","spanMinutes","clockPlateBR","x0","y0","moved","clickPos","_Pos","dx","dy","setHand","_this58","currentView","minutesView","hours","minutes","containerEl","_this59","navigator","webkitVibrate","_canvas","hoursView","spanAmPm","footer","amOrPm","$clearBtn","confirmationBtnsContainer","$amBtn","$pmBtn","_handleAmPmClick","_buildHoursView","_buildMinutesView","_buildSVGClock","diameter","_createSVGEl","bearing","hand","bg","$tick","radian","radius","cos","_i2","_tick","_radian","_radius","_addLeadingZero","$btnClicked","_updateAmPmView","getHours","getMinutes","view","isHours","nextView","hideView","resetClock","toggleViewTimer","canvas","roundBy5","_this60","unit","inner","vibrateTimer","cx1","cy1","cx2","cy2","_updateTimeFromInput","clearValue","num","createElementNS","clientY","CharacterCounter","_Component17","_this61","M_CharacterCounter","isInvalid","isValidLength","_setupCounter","_removeCounter","_handleUpdateCounterBound","updateCounter","counterEl","float","maxLength","actualLength","counterString","_validateInput","dist","shift","numVisible","_Component18","_this62","M_Carousel","hasMultipleSlides","showIndicators","pressed","dragged","images","itemWidth","itemHeight","dim","_autoScrollBound","_autoScroll","_trackBound","_track","_setCarouselHeight","xform","every","prefix","_scroll","_this63","_handleCarouselTapBound","_handleCarouselTap","_handleCarouselDragBound","_handleCarouselDrag","_handleCarouselReleaseBound","_handleCarouselRelease","_handleCarouselClickBound","_handleCarouselClick","_handleResize","_this64","verticalDragged","reference","_xpos","referenceY","_ypos","velocity","amplitude","frame","timestamp","ticker","delta","stopPropagation","clickedIndex","_wrap","center","_cycleTo","imageHeight","imageOnly","_this65","firstSlide","firstImage","naturalWidth","naturalHeight","adjustedHeight","slideHeight","elapsed","exp","_this66","scrollingTimeout","half","dir","tween","zTranslation","tweenedOpacity","centerTweenedOpacity","lastCenter","numVisibleOffset","clientHeight","diff","activeIndicator","transformString","_updateItemStyle","_transformString","_transformString2","_transformString3","$currItem","oneTimeCallback","_Component19","_this67","M_TapTarget","$origin","_setup","_calculatePositioning","_handleTargetClickBound","_handleTargetClick","_handleOriginClickBound","_handleOriginClick","originEl","waveEl","contentEl","outerWidth","outerHeight","originTop","originLeft","centerX","centerY","isLeft","isRight","isTop","isBottom","isCenterX","tapTargetWidth","tapTargetHeight","tapTargetTop","tapTargetLeft","tapTargetPosition","tapTargetTextWidth","tapTargetTextHeight","tapTargetTextTop","tapTargetTextLeft","tapTargetTextPadding","tapTargetTextAlign","tapTargetWaveWidth","tapTargetWaveHeight","tapTargetWaveTop","tapTargetWaveLeft","tapTargetWrapperCssObj","tapTargetTextRight","tapTargetTextBottom","verticalAlign","_Component20","_this68","isMultiple","_keysSelected","_valueDict","_this69","_handleSelectChangeBound","_handleSelectChange","_handleOptionClickBound","_handleOptionClick","input","_this70","_setValueToInput","placeholderOption","_toggleEntryFromArray","_setSelectedStates","_this71","$selectOptions","optionEl","_appendOptionWithIcon","_addOptionToValueDict","selectOptions","dropdownIcon","selectedOption","select","disabledClass","optgroupClass","multipleCheckbox","liEl","spanEl","iconUrl","imgEl","notAdded","$optionLi","firstDisabled","optionIsSelected","_activateOption","newOption","selectedValues","Range","_Component21","_this72","M_Range","_setupThumb","_removeThumb","_handleRangeChangeBound","_handleRangeChange","_handleRangeMousedownTouchstartBound","_handleRangeMousedownTouchstart","_handleRangeInputMousemoveTouchmoveBound","_handleRangeInputMousemoveTouchmove","_handleRangeMouseupTouchendBound","_handleRangeMouseupTouchend","_handleRangeBlurMouseoutTouchleaveBound","_handleRangeBlurMouseoutTouchleave","thumb","_showRangeBubble","_calcRangeOffset","marginLeft"],"mappings":"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","file":"manitou.index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","import messagesFR from './fr.js'\r\nimport messagesEN from './en.js'\r\n\r\nvar messages = messagesFR;\r\n\r\nfunction initMessages(language) {\r\n messages = (language.toLowerCase() == 'fr' ? messagesFR : messagesEN);\r\n};\r\n\r\nexport { messages as default, initMessages }","module.exports = jQuery;","export { \r\n sanitize,\r\n nvl,\r\n getQueryStringParameter,\r\n setQueryStringParameter,\r\n pushHistoryState \r\n}\r\n\r\nfunction sanitize (inputString) {\r\n var filteredString = inputString.replace(/[?#\\\\|:*%<>\";]/gi, '');\r\n var encodedString = encodeURIComponent(filteredString);\r\n return encodedString;\r\n};\r\n\r\nfunction nvl (val1, val2) {\r\n return (val1 === undefined || val1 === null) ? val2 : val1;\r\n};\r\n\r\nfunction pushHistoryState(url) {\r\n window.history.pushState(window.history.state, '', url);\r\n};\r\n\r\nfunction getQueryStringParameter(key) {\r\n key = key.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"([?&!])\" + key + \"=(.*?)(&|#|$|!)\", \"i\");\r\n var results = regex.exec(decodeURI(window.location.href).replace(\"%3D\", \"=\"));\r\n if (results == null) {\r\n return \"\";\r\n } else {\r\n return results[2];\r\n }\r\n}\r\n\r\nfunction setQueryStringParameter(key, value, url) {\r\n\tvar url = (url ? url : window.location.href);\r\n var regex = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)\", \"i\");\r\n var results = regex.exec(url.replace(\"%3D\", \"=\"));\r\n //Delete the query string parameter if value is null\r\n if( value === undefined ) {\r\n if (results != null) {\r\n if(results[1] == '?') {\r\n return url.replace(regex, '$1');\r\n } else {\r\n return url.replace(regex, '$2');\r\n }\r\n } else {\r\n return url;\r\n }\r\n } else {\r\n if (results != null) {\r\n return url.replace(regex, '$1' + key + \"=\" + value + '$2');\r\n } else {\r\n var hash = '';\r\n if( url.indexOf('#') !== -1 ){\r\n hash = url.replace(/.*#/, '#');\r\n url = url.replace(/#.*/, '');\r\n }\r\n var separator = url.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n return url + separator + key + \"=\" + value + hash;\r\n }\r\n } \r\n};","\r\nrequire('normalize.css/normalize.css');\r\nrequire('./styles/index.scss');\r\n\r\nwindow.jQuery = require('jquery');\r\nwindow.$ = require('jquery');\r\n\r\nrequire('materialize-css');\r\n\r\nimport * as manitou from './js/app.js'\r\n\r\n// Merge or create the manitou global object\r\nif (window.manitou) {\r\n for (var key in manitou) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(manitou, key)) {\r\n window.manitou[key] = manitou[key];\r\n }\r\n }\r\n} else {\r\n window.manitou = manitou;\r\n}\r\n\r\n// Handle Back/Forward inside the platform\r\nwindow.addEventListener('popstate', function (event) {\r\n manitou.init(window.history.state.manLanguage);\r\n}, false);","import { \r\n nvl,\r\n getQueryStringParameter, \r\n setQueryStringParameter,\r\n pushHistoryState \r\n} from './util.js';\r\nimport * as services from './services.js';\r\nimport * as templates from './templates.js';\r\nimport messages, { initMessages } from './lang/messages.js';\r\nimport './pagination.js';\r\n\r\nexport { init, displayPostingDetails, displayPostings, POSTING_ID_QUERY_STRING_KEY }\r\n\r\nvar validationParametersPromise;\r\n\r\nconst POSTING_ID_QUERY_STRING_KEY = \"ide_poste\";\r\nconst SOURCE_ID_QUERY_STRING_KEY = \"ide_source\";\r\n\r\nconst FORM_SELECT_OPTIONS = {\r\n dropdownOptions: {\r\n onCloseEnd: function(element) {\r\n var $inputEl = $(element);\r\n var $selectEl = $inputEl.parent().find('select');\r\n var $inputFieldEl = $(element).closest('.input-field');\r\n var $selectWrapperEl = $selectEl.closest('.select-wrapper');\r\n\r\n // Validate the required dropdown\r\n if ($selectEl.attr('required')) {\r\n if ($inputEl.val() === '') {\r\n $selectWrapperEl.addClass('invalid');\r\n } else {\r\n $selectWrapperEl.removeClass('invalid');\r\n }\r\n }\r\n\r\n // For the customs selection dropdown with an \"Other\" option, hide or show the manual \r\n // \"Other\" input field\r\n if ($selectEl.hasClass('manitouSelectWithOtherOption')) {\r\n if ($inputEl.val().split(', ').includes(messages.defaultOptions.other)) {\r\n $inputFieldEl.next('.manitouOtherField').show();\r\n } else {\r\n $inputFieldEl.next('.manitouOtherField').hide();\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction init(language, postingId) {\r\n language = language.toLowerCase();\r\n // Select the appropriate language messages\r\n initMessages(language);\r\n\r\n if (window.state) {\r\n var newState = window.state;\r\n newState.manLanguage = language;\r\n window.history.replaceState(newState, '', window.location.href);\r\n } else {\r\n window.history.replaceState({'manLanguage': language}, '', window.location.href);\r\n }\r\n\r\n $('#manitouGlobalContainer')\r\n .on('click', '.manitouPostingButton', function() {\r\n var postingId = $(this).data('posting-id');\r\n displayPostingDetails(postingId, language);\r\n return false;\r\n })\r\n .on('click', '.manitouSpontaneousApplicationButton', function() {\r\n document.getElementById('manitouApplicationForm').scrollIntoView({behavior: 'smooth'});\r\n return false;\r\n })\r\n .on('click', '.manitouApplyFiltersButton', function() {\r\n filterPostings(language);\r\n return false;\r\n })\r\n .on('click', '.manitouResetFiltersButton', function() {\r\n $('#manitouGlobalContainer .manitouFilter').val('0');\r\n filterPostings(language);\r\n return false;\r\n });\r\n\r\n validationParametersPromise = services.getValidationParameters(language)\r\n .fail(function (errorMessage) {\r\n displayCriticalError(errorMessage);\r\n });\r\n\r\n // Get the posting id query string in the URL\r\n var postingIdQueryString = getQueryStringParameter(POSTING_ID_QUERY_STRING_KEY);\r\n\r\n if (postingId) {\r\n // If the postingId is not null/undefined, display the detail page of that posting\r\n displayPostingDetails(postingId, language);\r\n document.getElementById('manitouGlobalContainer').scrollIntoView();\r\n } else if (postingIdQueryString != \"\") {\r\n // If the posting id query string is not empty/null, display the detail page of that posting\r\n displayPostingDetails(postingIdQueryString, language);\r\n document.getElementById('manitouGlobalContainer').scrollIntoView();\r\n } else {\r\n // If the postingId is null/undefined, display the list of postings\r\n displayPostings(0, 0, 0, 0, 0, 0, language);\r\n }\r\n};\r\n\r\n// var displayPostingDetails = function(postingId, language) {\r\nfunction displayPostingDetails (postingId, language) {\r\n $('#manitouGlobalContainer').html(\r\n templates.preloader()\r\n );\r\n\r\n // Manage the history and posting id URL query string\r\n var postingIdQueryString = getQueryStringParameter(POSTING_ID_QUERY_STRING_KEY);\r\n if (postingIdQueryString != postingId) {\r\n pushHistoryState(\r\n setQueryStringParameter(POSTING_ID_QUERY_STRING_KEY, postingId)\r\n );\r\n }\r\n \r\n services.getPostingDetails(postingId, language, manitou.config.internalPostingsSecret)\r\n .done(function (data) {\r\n $('#manitouGlobalContainer').html(\r\n templates.postingDetailsPage(\r\n data,\r\n getExtraAttachments(manitou.config.postingApplicationAttachments, language),\r\n manitou.config.resumeAttachmentId,\r\n manitou.config.displayPostingApplicationComment,\r\n getPostingApplicationCustomSelectionLists(\r\n manitou.config.customSelectionLists, language\r\n )\r\n )\r\n );\r\n\r\n $('#manitouGlobalContainer .manitouBackToPostingsButton').on('click', function() {\r\n displayPostings(0, 0, 0, 0, 0, 0, language);\r\n return false;\r\n });\r\n\r\n $('#manitouGlobalContainer #manitouApplyButton').on('click', function() {\r\n if (validateApplicationForm()) {\r\n applyToPosting(postingId, language);\r\n }\r\n return false;\r\n });\r\n\r\n $('#manitouGlobalContainer select').formSelect(FORM_SELECT_OPTIONS);\r\n })\r\n .fail(function (errorMessage) {\r\n displayCriticalError(errorMessage);\r\n });\r\n};\r\n\r\nvar filterPostings = function(language) {\r\n displayPostings(\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=institution]').val(),\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobSector]').val(),\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobField]').val(),\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobClass]').val(),\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=commitment]').val(),\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=location]').val(),\r\n language);\r\n};\r\n\r\nvar displayPostings = function(institution, jobSector, jobField, jobClass, commitment, location, language) {\r\n $('#manitouGlobalContainer').html(\r\n templates.preloader()\r\n );\r\n\r\n // Manage the history and posting id URL query string\r\n var postingIdQueryString = getQueryStringParameter(POSTING_ID_QUERY_STRING_KEY);\r\n if (postingIdQueryString != \"\") {\r\n pushHistoryState(\r\n setQueryStringParameter(POSTING_ID_QUERY_STRING_KEY) // This removes the posting id query string\r\n );\r\n }\r\n\r\n var isFiltered = \r\n (nvl(institution, 0) != 0) || \r\n (nvl(jobSector, 0) != 0) || \r\n (nvl(jobField, 0) != 0) || \r\n (nvl(jobClass, 0) != 0) || \r\n (nvl(commitment, 0) != 0) || \r\n (nvl(location, 0) != 0);\r\n\r\n $.when(\r\n services.getPostings(institution, jobSector, jobField, jobClass, commitment, location, '', language, manitou.config.internalPostingsSecret), \r\n services.getPostingsFilters(language),\r\n services.getSelfServiceURL(language)\r\n )\r\n .done(function (postings, filters, selfService) {\r\n var displayedFilters = {};\r\n var displayedPostings = [];\r\n var displayedPostingsGroups = [];\r\n\r\n // Filter out the filters that are not in the filterTypes config\r\n $.each(manitou.config.filterTypes, function (index, filterType) {\r\n if (filters[filterType]) {\r\n displayedFilters[filterType] = filters[filterType];\r\n }\r\n });\r\n\r\n // If filterByDivision is true in the config, filter out the divisions (institutions) filters that are not \r\n // in the activeDivisions config\r\n if (manitou.config.filterByDivision && displayedFilters.institution) {\r\n displayedFilters.institution = [];\r\n $.each(filters.institution, function (index, institution) {\r\n if (manitou.config.activeDivisions.indexOf(institution.id) != -1) {\r\n displayedFilters.institution.push(institution);\r\n }\r\n });\r\n }\r\n\r\n // If filterByDivision is true in the config, filter out postings with divisions (institutions) that are not \r\n // in the activeDivisions config\r\n if (manitou.config.filterByDivision && filters.institution) {\r\n var activeDivisionsNames = [];\r\n $.each(filters.institution, function (index, institution) {\r\n if (manitou.config.activeDivisions.indexOf(institution.id) != -1) {\r\n activeDivisionsNames.push(institution.value);\r\n }\r\n });\r\n\r\n $.each(postings, function (index, posting) {\r\n if (activeDivisionsNames.indexOf(posting.institution) != -1) {\r\n displayedPostings.push(posting);\r\n }\r\n });\r\n } else {\r\n displayedPostings = postings;\r\n }\r\n\r\n // Sort postings\r\n if (manitou.config.sortingColumn && manitou.config.sortingColumn !== '') {\r\n // Can sort on multiple columns\r\n var sortingColumns = Array.isArray(manitou.config.sortingColumn) ? manitou.config.sortingColumn : [manitou.config.sortingColumn];\r\n var order = (manitou.config.sortingOrder === 'desc'? -1 : 1);\r\n\r\n displayedPostings.sort(\r\n function(a,b) {\r\n return sortingColumns.reduce(function(sortingValue, currentColumn) {\r\n // If the 2 values have not been sorted from the previous column, compare the values currentColumn\r\n if (sortingValue == 0) {\r\n return a[currentColumn].localeCompare(b[currentColumn], messages.locale, { sensitivity: 'base' });\r\n } else {\r\n return sortingValue;\r\n }\r\n }, 0) * order;\r\n }\r\n );\r\n }\r\n\r\n // Split the postings in multiple lists according to the postingsGroups config\r\n if (manitou.config.enablePostingsGrouping && manitou.config.postingsGroups) {\r\n // id:value pairs of filters by filter key\r\n var filtersByValue = {};\r\n manitou.config.postingsGroups.forEach(function(group) {\r\n if (!filtersByValue[group.filterKey]) {\r\n filtersByValue[group.filterKey] = {};\r\n if (filters[group.filterKey]) {\r\n filters[group.filterKey].forEach(function(filter) {\r\n filtersByValue[group.filterKey][filter.id] = filter.value;\r\n });\r\n }\r\n }\r\n\r\n // values of the field to filter postings\r\n var filterValues = group.filterValues.map(function(id) {\r\n return filtersByValue[group.filterKey][id];\r\n });\r\n\r\n // filtered postings for the current group\r\n var groupPostings = displayedPostings.filter(function(posting) {\r\n return filterValues.includes(posting[group.postingDataKey]);\r\n });\r\n\r\n displayedPostingsGroups.push({\r\n title: group.groupTitle[messages.locale],\r\n id: group.anchorID,\r\n postings: groupPostings\r\n });\r\n });\r\n }\r\n\r\n $('#manitouGlobalContainer').html(\r\n templates.postingsListPage(displayedPostings, displayedFilters, isFiltered, manitou.config.postingsColumns, displayedPostingsGroups)\r\n );\r\n\r\n if (manitou.config.displaySelfServiceLink) {\r\n $('#manitouGlobalContainer #manitouSelfServiceContainer').html(\r\n templates.selfServiceLink(selfService.url)\r\n );\r\n }\r\n\r\n if (manitou.config.displaySpontaneousApplication) {\r\n $('#manitouGlobalContainer').append(\r\n templates.spontaneousApplicationPage(\r\n getExtraAttachments(manitou.config.spontaneousApplicationAttachments, language),\r\n manitou.config.resumeAttachmentId,\r\n manitou.config.displaySpontaneousApplicationComment,\r\n getSpontaneousApplicationCustomSelectionLists(\r\n manitou.config.customSelectionLists, language\r\n )\r\n )\r\n );\r\n\r\n $('#manitouGlobalContainer #manitouApplyButton').on('click', function() {\r\n if (validateApplicationForm()) {\r\n applyToPosting('', language);\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=institution]').val(institution);\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobSector]').val(jobSector);\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobField]').val(jobField);\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=jobClass]').val(jobClass);\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=commitment]').val(commitment);\r\n $('#manitouGlobalContainer .manitouFilter[data-filter-type=location]').val(location);\r\n\r\n $('#manitouGlobalContainer select').formSelect(FORM_SELECT_OPTIONS);\r\n $('#manitouGlobalContainer .collapsible').collapsible();\r\n if (!manitou.config.disablePagination) {\r\n $('#manitouGlobalContainer .manitouPostingsGroupContainer').each(function(){\r\n $(this).manitouPagination({\r\n showItemCount: true,\r\n showItemRange: true,\r\n itemsPerPage: manitou.config.itemsPerPage,\r\n nextTooltipText: messages.buttons.nextTooltip,\r\n prevTooltipText: messages.buttons.previousTooltip,\r\n activeColor: 'grey darken-3'\r\n });\r\n });\r\n }\r\n })\r\n .fail(function (errorMessage) {\r\n displayCriticalError(errorMessage);\r\n });\r\n};\r\n\r\nvar applyToPosting = function (postingId, language) {\r\n //Disable form while loading\r\n $('#manitouGlobalContainer #manitouApplicationForm').addClass('disabled');\r\n //Hide form and display preloader\r\n $('#manitouGlobalContainer #manitouApplicationForm form').hide();\r\n $('#manitouGlobalContainer #manitouApplicationForm').append(templates.preloader());\r\n\r\n var comment = '';\r\n // Loop over the custom select lists to add to the comment field\r\n $('#manitouGlobalContainer #manitouApplicationForm select.manitouSelectToComment').each(\r\n function (index, element) {\r\n var $element = $(element);\r\n var selectionString = $element.parent().find('input').val();\r\n var otherValue = '';\r\n \r\n if($element.hasClass('manitouSelectWithOtherOption')) {\r\n if (selectionString.split(', ').includes(messages.defaultOptions.other)) {\r\n otherValue = ' (' + $element.closest('.input-field').next('.manitouOtherField')\r\n .find('input').val() + ')';\r\n }\r\n }\r\n\r\n comment += $element.data('label') + ':\\n' + \r\n selectionString + otherValue + '\\n\\n';\r\n }\r\n );\r\n\r\n // Add the actual comment field value if it is displayed and contains a comment\r\n var commentFieldValue = $('#manitouGlobalContainer #manitouComment').val();\r\n if (commentFieldValue && commentFieldValue !== '') {\r\n comment += \r\n (messages.locale && manitou.config.applicationCommentLabel && manitou.config.applicationCommentLabel[messages.locale] ? \r\n manitou.config.applicationCommentLabel[messages.locale] : \r\n messages.labels.comment) +\r\n '\\n' + commentFieldValue;\r\n }\r\n\r\n services.postApplyToPosting(\r\n $('#manitouGlobalContainer #manitouFirstName').val(), //firstName\r\n $('#manitouGlobalContainer #manitouLastName').val(), //lastName\r\n $('#manitouGlobalContainer #manitouEmail').val(), //email\r\n $('#manitouGlobalContainer #manitouPhone').val(), //phoneNumber\r\n $('#manitouGlobalContainer #manitouResumeFileName').val(), //resumeFileName\r\n $('#manitouGlobalContainer #manitouResumeFile')[0].files[0], //resumeFile\r\n postingId, //postingId\r\n comment, //comment\r\n language, //language\r\n getQueryStringParameter(SOURCE_ID_QUERY_STRING_KEY) //applicationSource\r\n )\r\n .done(function (data) {\r\n var attachmentToken = data.attachmentToken;\r\n var applicantId = data.applicantId;\r\n var applicationId = data.applicationId;\r\n\r\n var addAttachmentRequests = [];\r\n\r\n $('.manitouExtraAttachment').each(function (index, fileFieldElement) {\r\n var fileElement = fileFieldElement.querySelector('#manitouFile-' + index);\r\n var fileNameElement = fileFieldElement.querySelector('#manitouFileName-' + index);\r\n\r\n // Add attachments that are not empty\r\n if (fileElement.files[0]) {\r\n var request = services.postAddAttachment(\r\n applicantId, //applicantId \r\n applicationId, //applicationId \r\n fileNameElement.value, //fileName \r\n fileElement.files[0], //file \r\n messages.services.platform + ' - ' + \r\n fileNameElement.getAttribute('placeholder'), //description\r\n fileElement.getAttribute('data-attachment-type'), //attachmentTypeId \r\n 'N', //isMainCV \r\n language, //language \r\n attachmentToken //tempToken\r\n )\r\n .fail(function (errorData) {\r\n errorData.message;\r\n $('#manitouGlobalContainer #manitouApplicationForm').append(templates.attachmentErrorMessage(fileNameElement.value));\r\n });\r\n\r\n addAttachmentRequests.push(request);\r\n }\r\n });\r\n\r\n $.when.apply(undefined, addAttachmentRequests).always(\r\n function () {\r\n displayApplicationSuccessMessage(data.message);\r\n }\r\n );\r\n })\r\n .fail(function (errorData) {\r\n //Remove preloader and display form again\r\n $('#manitouGlobalContainer #manitouApplicationForm .manitouPreloaderContainer').remove();\r\n $('#manitouGlobalContainer #manitouApplicationForm form').show();\r\n\r\n var fieldMatching = {\r\n 'lastName': 'manitouLastName',\r\n 'firstName': 'manitouFirstName',\r\n 'email': 'manitouEmail',\r\n 'phoneNumber': 'manitouPhone',\r\n 'fileName': 'manitouResumeFileName',\r\n 'file': 'manitouResumeFileName'\r\n }\r\n clearApplicationFormErrors();\r\n var genericError = false;\r\n $.each(errorData.errors, function (index, error) {\r\n var fieldId = fieldMatching[error.parameter];\r\n if (fieldId) {\r\n // Add errors that are related to a specific field under it\r\n var $field = $('#manitouGlobalContainer #' + fieldId); \r\n $field.addClass('invalid');\r\n $field.closest('#manitouGlobalContainer .input-field').find('.helper-text').attr('data-error', error.message);\r\n } else {\r\n // Add errors that are not related to a specific field at the bottom of the form\r\n addApplicationFormError('• ' + error.message);\r\n genericError = true;\r\n }\r\n });\r\n if (genericError) {\r\n addApplicationFormError(messages.errors.genericTryAgain);\r\n }\r\n })\r\n .always(function () {\r\n //Enable form after loading\r\n $('#manitouGlobalContainer #manitouApplicationForm').removeClass('disabled');\r\n });\r\n};\r\n\r\nvar validateApplicationForm = function () {\r\n var errorCount = 0;\r\n\r\n $('#manitouGlobalContainer #manitouApplicationForm .validate:visible').each(function (index, element) {\r\n if (!element.checkValidity()) {\r\n errorCount++;\r\n element.classList.add('invalid');\r\n }\r\n });\r\n\r\n $('#manitouGlobalContainer #manitouApplicationForm select[required]').each(function (index, element) {\r\n var $element = $(element);\r\n if ($element.parent().find('input').val() === '') {\r\n errorCount++;\r\n $element.closest('.select-wrapper').addClass('invalid');\r\n }\r\n });\r\n\r\n // Maximum file size validation (maximum file size is set in the POID_PJ Manitou system parameter)\r\n $('#manitouGlobalContainer .file-field').each(function(index, fileFieldElement){\r\n var fileHelperTextElement = fileFieldElement.querySelector('.helper-text');\r\n fileHelperTextElement.setAttribute('data-error', messages.validations.attachmentError);\r\n\r\n var attachmentFile = fileFieldElement.querySelector('input[type=\"file\"]').files[0];\r\n var attachmentFileName = fileFieldElement.querySelector('input[type=\"text\"]').value;\r\n\r\n if (attachmentFile) {\r\n if (validationParametersPromise) {\r\n validationParametersPromise.done(function(validationParameters) {\r\n if (attachmentFile.size > validationParameters.maxFileSize) {\r\n errorCount++;\r\n fileHelperTextElement.setAttribute('data-error', \r\n messages.validations.attachmentMaxSizeError.replace(/{{maxsize}}/, validationParameters.maxFileSize)\r\n );\r\n fileFieldElement.querySelector('input.file-path').classList.add('invalid');\r\n }\r\n });\r\n }\r\n if (attachmentFile.size <= 0) {\r\n errorCount++;\r\n fileHelperTextElement.setAttribute('data-error', \r\n messages.validations.attachmentEmptyError\r\n );\r\n fileFieldElement.querySelector('input.file-path').classList.add('invalid');\r\n }\r\n if (attachmentFileName.length <= 0) {\r\n errorCount++;\r\n fileHelperTextElement.setAttribute('data-error', \r\n messages.validations.attachmentNameEmptyError\r\n );\r\n fileFieldElement.querySelector('input.file-path').classList.add('invalid');\r\n }\r\n attachmentFile.size;\r\n }\r\n });\r\n\r\n return (errorCount == 0 ? true : false);\r\n};\r\n\r\nvar clearApplicationFormErrors = function () {\r\n $('#manitouGlobalContainer #manitouApplicationFormErrors').html('');\r\n};\r\n\r\nvar addApplicationFormError = function (errorMessage) {\r\n $('#manitouGlobalContainer #manitouApplicationFormErrors').append(templates.inlineError(errorMessage));\r\n};\r\n\r\nvar displayApplicationSuccessMessage = function (successMessage) {\r\n var $form = $('#manitouGlobalContainer #manitouApplicationForm');\r\n $form.find('.manitouPreloaderContainer').hide();\r\n $form.find('form').hide();\r\n $form.addClass('success');\r\n $form.prepend(templates.successMessage(successMessage));\r\n};\r\n\r\nvar displayCriticalError = function (errorMessage) {\r\n $('#manitouGlobalContainer').html(\r\n templates.errorMessage(errorMessage)\r\n );\r\n};\r\n\r\nvar getExtraAttachments = function (configAttachmentsList, language) {\r\n var attachments = [];\r\n $.each(configAttachmentsList, function (index, attachment) {\r\n attachments.push({\r\n label: attachment.label[language],\r\n documentTypeId: attachment.documentTypeId,\r\n isRequired: attachment.isRequired\r\n });\r\n });\r\n\r\n return attachments;\r\n};\r\n\r\nvar getSpontaneousApplicationCustomSelectionLists = function (configCustomSelectionLists, language) {\r\n var filteredSelectionLists = configCustomSelectionLists.filter(\r\n function(selectionList) {\r\n return selectionList.displayForSpontaneousApplicationForm\r\n }\r\n );\r\n return getCustomSelectionLists(filteredSelectionLists, language);\r\n}\r\n\r\nvar getPostingApplicationCustomSelectionLists = function (configCustomSelectionLists, language) {\r\n var filteredSelectionLists = configCustomSelectionLists.filter(\r\n function(selectionList) {\r\n return selectionList.displayForPostingApplicationForm\r\n }\r\n );\r\n return getCustomSelectionLists(filteredSelectionLists, language);\r\n}\r\n\r\nvar getCustomSelectionLists = function (configCustomSelectionLists, language) {\r\n var selectionLists = [];\r\n $.each(configCustomSelectionLists, function (index, selectionList) {\r\n selectionLists.push({\r\n label: selectionList.label[language],\r\n columnWidth: selectionList.columnWidth,\r\n isRequired: selectionList.isRequired,\r\n multipleSelections: selectionList.multipleSelections,\r\n otherManualOption: selectionList.otherManualOption,\r\n options: selectionList.options.map(\r\n function(option) { \r\n return {\r\n label: option.label[language], \r\n value: option.value[language]\r\n }\r\n })\r\n });\r\n });\r\n\r\n return selectionLists;\r\n};","import { sanitize, nvl } from './util.js'\r\nimport messages from './lang/messages.js'\r\n\r\nexport {\r\n getPostings,\r\n getPostingsFilters,\r\n getPostingDetails,\r\n getSelfServiceURL,\r\n getValidationParameters,\r\n postApplyToPosting,\r\n postAddAttachment\r\n}\r\n\r\n// Returns a jQuery Promise object with an array of job postings as data\r\nfunction getPostings (\r\n institution, jobSector, jobField, jobClass, commitment, location, search, language, internalPostingsSecret\r\n) {\r\n var deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.postings + '/' +\r\n nvl(institution, '0') + '/' + \r\n nvl(jobSector, '0') + '/' + \r\n nvl(jobField, '0') + '/' + \r\n nvl(jobClass, '0') + '/' + \r\n nvl(commitment, '0') + '/' + \r\n nvl(location, '0') + '/' + \r\n sanitize(search + ' ') + '/' + \r\n nvl(language, '') +\r\n (internalPostingsSecret ? '/' + internalPostingsSecret : ''),\r\n method: 'GET',\r\n dataType: 'json',\r\n success: function(data) {\r\n var result = [];\r\n\r\n $.each(data.items, function(index, rawPosting) {\r\n var posting = {\r\n 'id': nvl(rawPosting.ide_affch, ''),\r\n 'title': nvl(rawPosting.titre, ''),\r\n 'deadline': nvl(rawPosting.date_post, ''),\r\n 'location': nvl(rawPosting.lieu, ''),\r\n 'institution': nvl(rawPosting.etablissement, ''),\r\n 'sector': nvl(rawPosting.secteur, ''),\r\n 'commitment': nvl(rawPosting.engagement, ''),\r\n 'jobField': nvl(rawPosting.domaine_emploi, ''),\r\n 'jobClass': nvl(rawPosting.classe_emploi, ''),\r\n 'competitionNumber': nvl(rawPosting.num_concr, '')\r\n };\r\n result.push(posting);\r\n });\r\n\r\n deferred.resolve(result);\r\n },\r\n error: function() {\r\n deferred.reject(messages.errors.getPostings);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with an array of job postings as data\r\nfunction getPostingsFilters (language) {\r\n var deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.postingsFilters + '/' + nvl(language, ''),\r\n method: 'GET',\r\n dataType: 'json',\r\n success: function(data) {\r\n // Translates REST API keys to internal service keys\r\n var KEY_MATCHING = {\r\n 'division': 'institution', \r\n 'sector': 'jobSector', \r\n 'jobField': 'jobField', \r\n 'jobClass': 'jobClass', \r\n 'commitment': 'commitment', \r\n 'jobLocation': 'location'\r\n }\r\n\r\n var result = {\r\n 'institution': [], \r\n 'jobSector': [], \r\n 'jobField': [], \r\n 'jobClass': [], \r\n 'commitment': [], \r\n 'location': []\r\n };\r\n\r\n $.each(data, function(filterType, rawFilters) {\r\n if (KEY_MATCHING[filterType]) {\r\n $.each(rawFilters, function(index, rawFilter) {\r\n var filter = {\r\n 'id': Number(rawFilter.value),\r\n 'value': rawFilter.title\r\n };\r\n result[KEY_MATCHING[filterType]].push(filter);\r\n });\r\n }\r\n });\r\n\r\n deferred.resolve(result);\r\n },\r\n error: function() {\r\n deferred.reject(messages.errors.getPostingsFilters);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with an object of the job posting details\r\nfunction getPostingDetails (postingId, language, internalPostingsSecret) {\r\n var deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.postingDetails + '/' +\r\n postingId + '/' +\r\n nvl(language, '') +\r\n (internalPostingsSecret ? '/' + internalPostingsSecret : ''),\r\n method: 'GET',\r\n dataType: 'json',\r\n success: function(data) {\r\n // Translates REST API keys to internal service keys\r\n var KEY_MATCHING = {\r\n 'header': 'contentHeader', \r\n 'body': 'contentBody', \r\n 'footer': 'contentFooter'\r\n }\r\n\r\n var result = {\r\n 'id': postingId,\r\n 'title': data.title,\r\n 'logoURL': data.logoURL,\r\n 'sharingURL': data.sharingURL,\r\n 'facebookURL': data.facebookSharingURL,\r\n 'twitterURL': data.twitterSharingURL,\r\n 'linkedInURL': data.linkedInSharingUrl,\r\n 'contentHeader': [],\r\n 'contentBody': [],\r\n 'contentFooter': []\r\n };\r\n\r\n $.each(data, function(key, value) {\r\n if (KEY_MATCHING[key]) {\r\n $.each(value, function(index, content) {\r\n var postingItem = {\r\n 'label': content.label,\r\n 'value': content.content\r\n };\r\n result[KEY_MATCHING[key]].push(postingItem);\r\n });\r\n }\r\n });\r\n\r\n deferred.resolve(result);\r\n },\r\n error: function() {\r\n deferred.reject(messages.errors.getPostingDetails);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with the self-service URL\r\nfunction getSelfServiceURL (language) {\r\n var deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.selfServiceUrl + '/' + nvl(language, ''),\r\n method: 'GET',\r\n dataType: 'json',\r\n success: function(data) {\r\n var result = {\r\n 'url': data.ss_url\r\n };\r\n deferred.resolve(result);\r\n },\r\n error: function() {\r\n deferred.reject(messages.errors.getSelfServiceUrl);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with the validation parameters for the job platform\r\nfunction getValidationParameters (language) {\r\n var deferred = $.Deferred();\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.validationParameters + '/' + nvl(language, ''),\r\n method: 'GET',\r\n dataType: 'json',\r\n success: function(data) {\r\n var result = {\r\n 'selfServiceIsActive': ((data.selfServiceIsActive ? data.selfServiceIsActive.toUpperCase() : '') == 'O' ? true : false),\r\n 'maxFileSize': (data.maxFileSize ? data.maxFileSize : 10485760) , //10MB if for some reason the parameter maxFileSize is null\r\n 'emailConfirmationIsActive': ((data.emailConfirmationIsActive ? data.emailConfirmationIsActive.toUpperCase() : '') == 'O' ? true : false),\r\n };\r\n deferred.resolve(result);\r\n },\r\n error: function() {\r\n deferred.reject(messages.errors.getValidationParameters);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with an object of the response\r\nfunction postApplyToPosting (\r\n firstName, lastName, email, phoneNumber, resumeFileName, resumeFile, postingId, comment, language, applicationSource\r\n) {\r\n var deferred = $.Deferred();\r\n\r\n var applicationForm = new FormData();\r\n applicationForm.append('language', nvl(language, ''));\r\n applicationForm.append('firstName', nvl(firstName, ''));\r\n applicationForm.append('lastName', nvl(lastName, ''));\r\n applicationForm.append('email', nvl(email, ''));\r\n applicationForm.append('phoneNumber', nvl(phoneNumber, ''));\r\n applicationForm.append('postingID', nvl(postingId, ''));\r\n applicationForm.append('comment', nvl(comment, '').substring(0, 4000));\r\n applicationForm.append('applicantSource', (postingId ? manitou.config.applicantSource : manitou.config.spontaneousApplicantSource));\r\n applicationForm.append('applicationSource', (applicationSource ? applicationSource : manitou.config.applicationSource));\r\n applicationForm.append('filename', nvl(resumeFileName, ''));\r\n applicationForm.append('file', resumeFile);\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.applyToPosting,\r\n method: 'POST',\r\n dataType: 'json',\r\n contentType: false,\r\n processData: false,\r\n data: applicationForm,\r\n success: function(data) {\r\n var result = {\r\n 'status': data.status,\r\n 'message': data.messages[0],\r\n 'applicantId': data.applicantID,\r\n 'applicationId': data.applicationID,\r\n 'attachmentToken': data.attachmentToken\r\n };\r\n\r\n deferred.resolve(result);\r\n },\r\n error: function(data) {\r\n var result = {\r\n 'errors': []\r\n };\r\n\r\n if (data.responseJSON) {\r\n $.each(data.responseJSON.errors, function(index, rawError) {\r\n result.errors.push({\r\n 'parameter': rawError.parameter,\r\n 'message': rawError.message\r\n });\r\n });\r\n } else {\r\n result.errors.push({\r\n 'parameter': 'other',\r\n 'message': messages.errors.applyToPosting\r\n });\r\n }\r\n\r\n deferred.reject(result);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}\r\n\r\n// Returns a jQuery Promise object with an object of the response\r\nfunction postAddAttachment (\r\n applicantId, applicationId, fileName, file, description, attachmentTypeId, isMainCV, language, tempToken\r\n) {\r\n var MAX_FILE_DESCRIPTION_LENGTH = 127;\r\n var deferred = $.Deferred();\r\n\r\n var applicationForm = new FormData();\r\n applicationForm.append('language', nvl(language, ''));\r\n applicationForm.append('tempToken', nvl(tempToken, ''));\r\n applicationForm.append('ideCandt', nvl(applicantId, ''));\r\n applicationForm.append('ideAffchCandt', nvl(applicationId, ''));\r\n applicationForm.append('description', nvl(description, ' ').substr(0, MAX_FILE_DESCRIPTION_LENGTH));\r\n applicationForm.append('isMainCV', nvl(isMainCV, 'N'));\r\n applicationForm.append('attachmentTypeId', nvl(attachmentTypeId, ''));\r\n applicationForm.append('filename', nvl(fileName, ''));\r\n applicationForm.append('file', nvl(file, ''));\r\n\r\n $.ajax({\r\n url: manitou.config.restServiceUrl + manitou.config.serviceRoutes.addAttachment,\r\n method: 'POST',\r\n dataType: 'json',\r\n contentType: false,\r\n processData: false,\r\n data: applicationForm,\r\n success: function(data) {\r\n var result = {\r\n 'attachmentId': data.id,\r\n 'attachmentName': data.file_name,\r\n 'creationDate': data.created_on\r\n };\r\n\r\n deferred.resolve(result);\r\n },\r\n error: function(data) {\r\n var result = {\r\n 'errors': []\r\n };\r\n\r\n if (data.responseJSON) {\r\n $.each(data.responseJSON.errors, function(index, rawError) {\r\n result.errors.push({\r\n 'message': rawError.message\r\n });\r\n });\r\n } else {\r\n result.errors.push({\r\n 'parameter': 'other',\r\n 'message': messages.errors.addAttachment\r\n });\r\n }\r\n\r\n deferred.reject(result);\r\n }\r\n });\r\n\r\n return deferred.promise();\r\n}","export default {\r\n locale: 'fr',\r\n errors: {\r\n genericTryAgain:\r\n \"Merci d'essayer de nouveau un peu plus tard ou de communiquer avec l'administrateur \" +\r\n \"du site.\",\r\n getPostings:\r\n \"Une erreur est survenue en tentant de récupérer la liste de postes publiés.\",\r\n getPostingDetails:\r\n \"Une erreur est survenue en tentant de récupérer les informations du poste \" +\r\n \"sélectionné. Le service peut être présentement indisponible ou le poste peut ne plus être existant.\",\r\n getPostingsFilters:\r\n \"Une erreur est survenue en tentant de charger les filtres de postes.\",\r\n getSelfServiceUrl:\r\n \"Une erreur est survenue en tentant de récupérer l'URL du libre-service.\",\r\n getValidationParameters:\r\n \"Une erreur est survenue en tentant de récupérer les paramètres de validation.\",\r\n applyToPosting:\r\n \"Une erreur est survenue en tentant de poser la candidature.\",\r\n addAttachment:\r\n \"Une erreur est survenue en tentant d'ajouter un fichier en pièce jointe.\",\r\n addExtraAttachment:\r\n \"Une erreur est survenue en tentant d'ajouter le fichier «{{fileName}}». \" +\r\n \"Votre candidature a tout de même été enregistrée avec succès.\"\r\n },\r\n tableHeaders: {\r\n title: \"Titre\",\r\n institution: \"Établissement\",\r\n location: \"Lieu\",\r\n deadline: \"Date limite\",\r\n commitment: \"Type d'engagement\",\r\n sector: \"Secteur d'emploi\",\r\n jobField: \"Domaine d'emploi\",\r\n jobClass: \"Classe d'emploi\",\r\n competitionNumber: \"No. de concours\"\r\n },\r\n labels: {\r\n firstName: \"Prénom\",\r\n lastName: \"Nom\",\r\n email: \"Courriel\",\r\n phone: \"Numéro de téléphone\",\r\n password: \"Mot de passe\",\r\n passwordConfirmation: \"Confirmation du mot de passe\",\r\n resume: \"Téléverser mon CV\",\r\n comment: \"Commentaire\",\r\n other: \"Autre\",\r\n institution: \"Établissement\",\r\n jobSector: \"Secteur d'emploi\",\r\n jobField: \"Domaine d'emploi\",\r\n jobClass: \"Classe d'emploi\",\r\n commitment: \"Type d'engagement\",\r\n location: \"Lieu de travail\",\r\n spontaneousApplicationEntry: \"Candidature spontanée\"\r\n },\r\n buttons: {\r\n sendApplication: \"Postuler\",\r\n apply: \"Postuler\",\r\n file: \"Fichier\",\r\n filterResults: \"Filtrer les résultats\",\r\n applyFilters: \"Appliquer les filtres\",\r\n resetFilters: \"Réinitialiser les filtres\",\r\n backToPostings: \"Retour à la liste des postes\",\r\n facebookTooltip: \"Partager sur Facebook\",\r\n twitterTooltip: \"Partager sur Twitter\",\r\n linkedinTooltip: \"Partager sur LinkedIn\",\r\n mailTooltip: \"Partager par courriel\",\r\n previousTooltip: \"Page précédente\",\r\n nextTooltip: \"Page suivante\",\r\n selfService: \"Accéder au libre-service\",\r\n iTryMyLuck: \"Je tente ma chance!\"\r\n },\r\n validations: {\r\n emailTooltip:\r\n \"Une adresse courriel valide doit contenir un '@' et se terminer par un nom de domaine \" +\r\n \"valide (exemple@exemple.com).\",\r\n emailError:\r\n \"Veuillez entrer une adresse courriel valide (exemple@exemple.com).\",\r\n emailCorrect: \"Cette adresse courriel est valide!\",\r\n firstNameError: \"Le champ Prénom est obligatoire.\",\r\n lastNameError: \"Le champ Nom est obligatoire.\",\r\n attachmentError: \"Ce fichier est obligatoire.\",\r\n requiredFieldError: \"Ce champ est obligatoire.\",\r\n attachmentMaxSizeError:\r\n \"Le fichier doit être plus petit que {{maxsize}} octets.\",\r\n attachmentEmptyError: \"Le contenu du fichier ne peut pas être vide.\",\r\n attachmentNameEmptyError: \"Le nom du fichier ne peut pas être vide.\"\r\n },\r\n titles: {\r\n postingsListTitle: \"Postes actuellement disponibles\",\r\n applicationForm: \"Postuler pour ce poste\",\r\n spontaneousApplication: \"Candidature spontanée\"\r\n },\r\n text: {\r\n selfService:\r\n \"Un libre-service est disponible pour déposer votre curriculum vitae, compléter votre profil,\" +\r\n \" déposer une candidature spontanée, recevoir des alertes quand un poste correspondant à vos \" +\r\n \"compétences est disponible et encore plus!\",\r\n spontaneousApplication:\r\n \"Vous ne trouvez pas l'emploi que vous cherchez? Faites-nous parvenir votre candidature!\"\r\n },\r\n defaultOptions: {\r\n institution: \"- Tous les établissements -\",\r\n jobSector: \"- Tous les secteurs -\",\r\n jobField: \"- Tous les domaines d'emploi -\",\r\n jobClass: \"- Toutes les classes d'emploi -\",\r\n commitment: \"- Tous les types d'engagement -\",\r\n location: \"- Tous les lieux de travail -\",\r\n other: \"Autre\"\r\n },\r\n pagination: {\r\n countResults: \"Résultat(s)\",\r\n countTo: \"à\",\r\n countOf: \"de\"\r\n },\r\n email: {\r\n shareSubject: \"Emploi offert\"\r\n },\r\n noDataFound: {\r\n noPostings: \"Aucun poste n'est présentement publié.\",\r\n noSearchResults:\r\n \"Aucun poste ne correspond présentement à vos critères.\"\r\n },\r\n services: {\r\n platform: \"Plateforme emploi\"\r\n }\r\n};\r\n","export default {\r\n locale: 'en',\r\n errors: {\r\n genericTryAgain:\r\n \"Please try again later or contact the site administrator.\",\r\n getPostings:\r\n \"An error occured while trying to retrieve the list of job postings.\",\r\n getPostingDetails:\r\n \"An error occured while trying to retrieve the job posting. The service might be \" +\r\n \"unavailable or the posting might no longer exists.\",\r\n getPostingsFilters:\r\n \"An error occured while trying to retrieve the postings filters.\",\r\n getSelfServiceUrl:\r\n \"An error occured while trying to retrieve the self-service URL.\",\r\n getValidationParameters:\r\n \"An error occured while trying to retrieve the validation data of the platform.\",\r\n applyToPosting: \"An error occured while trying to apply.\",\r\n addAttachment:\r\n \"An error occured while trying to add an attachment file.\",\r\n addExtraAttachment:\r\n 'An error occured while trying to send the file \"{{fileName}}\". ' +\r\n \"Your application has still been successfully saved.\"\r\n },\r\n tableHeaders: {\r\n title: \"Title\",\r\n institution: \"Institution\",\r\n location: \"Location\",\r\n deadline: \"Deadline\",\r\n commitment: \"Commitment type\",\r\n sector: \"Job sector\",\r\n jobField: \"Job field\",\r\n jobClass: \"Job class\",\r\n competitionNumber: \"Competition no.\"\r\n },\r\n labels: {\r\n firstName: \"First name\",\r\n lastName: \"Last name\",\r\n email: \"Email\",\r\n phone: \"Phone number\",\r\n password: \"Password\",\r\n passwordConfirmation: \"Password confirmation\",\r\n resume: \"Upload my resume\",\r\n comment: \"Comment\",\r\n other: \"Other\",\r\n institution: \"Institution\",\r\n jobSector: \"Job sector\",\r\n jobField: \"Job field\",\r\n jobClass: \"Job class\",\r\n commitment: \"Commitment type\",\r\n location: \"Work location\",\r\n spontaneousApplicationEntry: \"Spontaneous application\"\r\n },\r\n buttons: {\r\n sendApplication: \"Apply\",\r\n apply: \"Apply\",\r\n file: \"File\",\r\n filterResults: \"Filter results\",\r\n applyFilters: \"Apply filters\",\r\n resetFilters: \"Reset filters\",\r\n backToPostings: \"Back to the postings list\",\r\n facebookTooltip: \"Share on Facebook\",\r\n twitterTooltip: \"Share on Twitter\",\r\n linkedinTooltip: \"Share on LinkedIn\",\r\n mailTooltip: \"Share by email\",\r\n previousTooltip: \"Previous page\",\r\n nextTooltip: \"Next page\",\r\n selfService: \"Access to the self-service\",\r\n iTryMyLuck: \"I try my luck!\"\r\n },\r\n validations: {\r\n emailTooltip:\r\n \"A valid email address must include an '@' and end with a valid doamin \" +\r\n \"(exemple@exemple.com).\",\r\n emailError: \"Please enter a valid email address (exemple@exemple.com).\",\r\n emailCorrect: \"This is a valid email address!\",\r\n firstNameError: \"The first name is required.\",\r\n lastNameError: \"The last name is required\",\r\n attachmentError: \"This file is required.\",\r\n requiredFieldError: \"This field is required.\",\r\n attachmentMaxSizeError:\r\n \"The file must be smaller than {{maxsize}} bytes.\",\r\n attachmentEmptyError: \"The file content cannot be empty.\",\r\n attachmentNameEmptyError: \"The file name cannot be empty.\"\r\n },\r\n titles: {\r\n postingsListTitle: \"Currently available positions\",\r\n applicationForm: \"Apply to this posting\",\r\n spontaneousApplication: \"Spontaneous application\"\r\n },\r\n text: {\r\n selfService:\r\n \"A self-service is available to allow you to submit your resume, to complete your profile, to place a \" +\r\n \"spontaneous application, to receive alerts when jobs matching your profile are available and even more!.\",\r\n spontaneousApplication:\r\n \"Didn't find the job you were looking for? Send us your application!\"\r\n },\r\n defaultOptions: {\r\n institution: \"- All institutions -\",\r\n jobSector: \"- All sectors -\",\r\n jobField: \"- All job fields -\",\r\n jobClass: \"- All job classes -\",\r\n commitment: \"- All commitment types -\",\r\n location: \"- All work locations -\",\r\n other: \"Other\"\r\n },\r\n pagination: {\r\n countResults: \"Result(s)\",\r\n countTo: \"to\",\r\n countOf: \"of\"\r\n },\r\n email: {\r\n shareSubject: \"Job posting\"\r\n },\r\n noDataFound: {\r\n noPostings: \"No job postings are currently available to display.\",\r\n noSearchResults: \"No job postings currently match these filters.\"\r\n },\r\n services: {\r\n platform: \"Job platform\"\r\n }\r\n};\r\n","import messages from './lang/messages.js'\r\n\r\nexport { \r\n postingsListPage,\r\n spontaneousApplicationPage,\r\n postingDetailsPage, \r\n selfServiceLink, \r\n errorMessage, \r\n inlineError, \r\n successMessage, \r\n attachmentErrorMessage, \r\n preloader \r\n}\r\n\r\nvar privateTemplates = {};\r\n\r\nfunction postingsListPage (postings, filters, isFiltered, columns, postingsGroups) {\r\n var noResultFound = postings.length == 0;\r\n var postingsGroupsHtml = '';\r\n if (manitou.config.enablePostingsGrouping && postingsGroups) {\r\n postingsGroups.forEach(\r\n function(postingsGroup) {\r\n postingsGroupsHtml += privateTemplates.postingsGroup(postingsGroup.postings, isFiltered, columns, postingsGroup.title, postingsGroup.id);\r\n }\r\n );\r\n } else {\r\n postingsGroupsHtml = privateTemplates.postingsGroup(postings, isFiltered, columns);\r\n }\r\n \r\n var html = \r\n '
' +\r\n (!manitou.config.hideTitle ? \r\n '

' + \r\n ((manitou.config.title && manitou.config.title[messages.locale]) || messages.titles.postingsListTitle) + \r\n '

': \r\n ''\r\n ) +\r\n '
' +\r\n ( !manitou.config.hideFilters && (!noResultFound || isFiltered) ? // Hides the filters if there is no postings to filter\r\n '
' +\r\n privateTemplates.postingsFilters(filters, isFiltered) +\r\n '
' :\r\n '') +\r\n postingsGroupsHtml +\r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.postingsGroup = function (postings, isFiltered, columns, title, id) {\r\n var noResultFound = postings.length == 0;\r\n //Hide pagination when there is only one page of postings or there is no results\r\n var displayPagination = !noResultFound && !manitou.config.disablePagination && (postings && postings.length > manitou.config.itemsPerPage);\r\n var html = \r\n '
' +\r\n (title ? '

' + title + '

': '') +\r\n (displayPagination && !manitou.config.hideTopPagination ? privateTemplates.paginationBlock() : '') +\r\n '
' +\r\n (noResultFound && !manitou.config.displaySpontaneousApplicationListEntry ?\r\n privateTemplates.noPostingsFound(isFiltered) :\r\n privateTemplates.postingsTable(postings, columns)) +\r\n '
' +\r\n (displayPagination && !manitou.config.hideBottomPagination ? privateTemplates.paginationBlock() : '') +\r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.paginationBlock = function () {\r\n var html = \r\n '
' +\r\n '
' + \r\n messages.pagination.countResults + ' ' + \r\n ' ' + \r\n messages.pagination.countTo + ' ' + \r\n ' ' + \r\n messages.pagination.countOf + ' ' + \r\n '' + \r\n '
' +\r\n '' +\r\n '
';\r\n return html;\r\n};\r\n\r\n/* The extraAttachments is an array of objects following this model:\r\n {label: 'label', documentTypeId: 2, isRequired: true} \r\n The customSelectionLists is an array of objects following this model:\r\n {\r\n label: 'field label',\r\n isRequired: true,\r\n multipleSelections: false,\r\n otherManualOption: false,\r\n options: [\r\n {\r\n label: 'label', \r\n value: value\r\n }\r\n ]\r\n } */\r\nfunction spontaneousApplicationPage (extraAttachments, resumeAttachmentId, displayComment, customSelectionLists) {\r\n var html =\r\n '
' +\r\n '
' +\r\n privateTemplates.applicationForm('', messages.titles.spontaneousApplication, \r\n messages.text.spontaneousApplication, extraAttachments, resumeAttachmentId, displayComment, customSelectionLists) +\r\n '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\n/* The extraAttachments is an array of objects following this model:\r\n {label: 'label', documentTypeId: 2, isRequired: true} \r\n The customSelectionLists is an array of objects following this model:\r\n {\r\n label: 'field label',\r\n isRequired: true,\r\n multipleSelections: false,\r\n otherManualOption: false,\r\n options: [\r\n {\r\n label: 'label', \r\n value: value\r\n }\r\n ]\r\n } */\r\nfunction postingDetailsPage (postingDetails, extraAttachments, resumeAttachmentId, displayComment, customSelectionLists) {\r\n var html =\r\n '
' +\r\n privateTemplates.backToPostingsButton() +\r\n '
' +\r\n privateTemplates.postingDetails(postingDetails) +\r\n '
' +\r\n '
' +\r\n privateTemplates.applicationForm(postingDetails.id, messages.titles.applicationForm, null, \r\n extraAttachments, resumeAttachmentId, displayComment, customSelectionLists) +\r\n '
' +\r\n privateTemplates.backToPostingsButton() +\r\n '
';\r\n return html;\r\n};\r\n\r\nfunction selfServiceLink (url) {\r\n var html =\r\n \r\n '
' + \r\n messages.text.selfService +\r\n '
' +\r\n '' + \r\n messages.buttons.selfService + \r\n '';\r\n return html;\r\n};\r\n\r\nfunction errorMessage(errorMessage) {\r\n var html =\r\n '
' +\r\n '
' +\r\n 'error_outline' +\r\n '
' +\r\n '
' +\r\n '
' + \r\n errorMessage +\r\n '
' +\r\n '
' + \r\n messages.errors.genericTryAgain +\r\n '
' +\r\n '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\nfunction inlineError (errorMessage) {\r\n var html =\r\n '
' + errorMessage + '
';\r\n return html;\r\n};\r\n\r\nfunction successMessage (successMessage) {\r\n var html =\r\n '
' + \r\n '
' + successMessage + '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\nfunction attachmentErrorMessage (fileName) {\r\n var html =\r\n '
' + \r\n '
' + messages.errors.addExtraAttachment.replace('{{fileName}}', (fileName ? fileName : '')) + '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\nfunction preloader () {\r\n var html =\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 return html;\r\n};\r\n\r\nprivateTemplates.postingsFilters = function (filters, areFiltersActive) {\r\n var filtersHtml = '';\r\n $.each(filters, function (filterType, filtersList) {\r\n var filterOptionsHtml = '';\r\n\r\n $.each(filtersList, function (index, filter) {\r\n filterOptionsHtml +=\r\n '';\r\n });\r\n\r\n filtersHtml +=\r\n '
' +\r\n '' +\r\n '' +\r\n '
';\r\n });\r\n \r\n var html = \r\n '';\r\n return html;\r\n};\r\n\r\nprivateTemplates.postingsTable = function (postings, columns) {\r\n var postingsHtml = '';\r\n $.each(postings, function (index, posting) {\r\n postingsHtml +=\r\n '' +\r\n columns.reduce(\r\n function(columnsHtml, columnName) {\r\n return columnsHtml + '' + (posting[columnName] ? posting[columnName] : '') + '';\r\n }, ''\r\n ) +\r\n '' + \r\n '' + \r\n (messages.locale && manitou.config.applyButtonText && manitou.config.applyButtonText[messages.locale] ? \r\n manitou.config.applyButtonText[messages.locale] : \r\n messages.buttons.apply) +\r\n '' +\r\n '' +\r\n '';\r\n });\r\n if (manitou.config.displaySpontaneousApplicationListEntry) {\r\n postingsHtml +=\r\n '' +\r\n columns.reduce(\r\n function(columnsHtml, columnName) {\r\n return columnsHtml + '' + (columnName == 'title' ? messages.labels.spontaneousApplicationEntry : '') + '';\r\n }, ''\r\n ) +\r\n '' + \r\n '' + \r\n messages.buttons.iTryMyLuck +\r\n '' +\r\n '' +\r\n '';\r\n\r\n }\r\n var html = \r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n columns.reduce(\r\n function(headersHtml, columnName) {\r\n return headersHtml + '';\r\n }, ''\r\n ) +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n postingsHtml +\r\n '' +\r\n '
' + messages.tableHeaders[columnName] + '
' +\r\n '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.postingDetails = function (postingDetails) {\r\n var contentHeaderHtml = '';\r\n var contentBodyHtml = '';\r\n var contentFooterHtml = '';\r\n\r\n $.each(postingDetails.contentHeader, function (index, content) {\r\n contentHeaderHtml +=\r\n '
' +\r\n '
' +\r\n content.label +\r\n '
' +\r\n '
' +\r\n content.value +\r\n '
' +\r\n '
'; \r\n });\r\n\r\n $.each(postingDetails.contentBody, function (index, content) {\r\n contentBodyHtml +=\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' + content.label + '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n content.value +\r\n '
' + \r\n '
'; \r\n });\r\n\r\n $.each(postingDetails.contentFooter, function (index, content) {\r\n contentFooterHtml +=\r\n '
' +\r\n '
' +\r\n content.label +\r\n '
' +\r\n '
' +\r\n content.value +\r\n '
' +\r\n '
'; \r\n });\r\n\r\n var html = \r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '

' + postingDetails.title + '

' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n \r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n contentHeaderHtml +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n contentBodyHtml +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n contentFooterHtml +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
';\r\n\r\n return html;\r\n};\r\n\r\n/* The extraAttachments is an array of objects following this model:\r\n {label: 'label', documentTypeId: 2, isRequired: true} \r\n The customSelectionLists is an array of objects following this model:\r\n {\r\n label: 'field label',\r\n isRequired: true,\r\n multipleSelections: false,\r\n otherManualOption: false,\r\n options: [\r\n {\r\n label: 'label', \r\n value: value\r\n }\r\n ]\r\n } */\r\nprivateTemplates.applicationForm = function (postingId, title, text, extraAttachments, resumeAttachmentId, displayComment, customSelectionLists) {\r\n var extraAttachmentsHtml = '';\r\n $.each(extraAttachments, function (index, attachment) {\r\n extraAttachmentsHtml += privateTemplates.attachmentField(\r\n attachment.label, attachment.documentTypeId, attachment.isRequired, 'manitouFile-' + index, \r\n 'manitouFileName-' + index, 'manitouExtraAttachment'\r\n );\r\n });\r\n\r\n var customSelectFieldsHtml = '';\r\n $.each(customSelectionLists, function (index, selectList) {\r\n customSelectFieldsHtml += privateTemplates.customSelectField(\r\n selectList.label, selectList.isRequired, selectList.multipleSelections, \r\n selectList.otherManualOption, selectList.options, 'manitouCustomSelect-' + index,\r\n selectList.columnWidth\r\n );\r\n });\r\n \r\n var html =\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '

' + title + '

' +\r\n (text ? '

' + text + '

': '') +\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 '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n customSelectFieldsHtml +\r\n '
' +\r\n (displayComment ? privateTemplates.commentField(false): '') +\r\n '
' +\r\n privateTemplates.attachmentField(messages.labels.resume, resumeAttachmentId, true, 'manitouResumeFile', 'manitouResumeFileName') +\r\n extraAttachmentsHtml +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.noPostingsFound = function(isFiltered) {\r\n var html = \r\n '
' +\r\n '
' +\r\n '
' + \r\n (isFiltered ? \r\n messages.noDataFound.noSearchResults : \r\n messages.noDataFound.noPostings) + \r\n '
' +\r\n '
' +\r\n (isFiltered ?\r\n '
' +\r\n '' +\r\n messages.buttons.resetFilters +\r\n '' + \r\n '
' :\r\n '') +\r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.backToPostingsButton = function () {\r\n var html = \r\n '
' +\r\n '' +\r\n messages.buttons.backToPostings +\r\n '' + \r\n '
';\r\n return html;\r\n};\r\n\r\nprivateTemplates.attachmentField = function (label, documentTypeId, isRequired, idFile, idFileName, classes) {\r\n var html =\r\n '
' +\r\n '
' +\r\n '' + messages.buttons.file + '' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
';\r\n return html;\r\n}\r\n\r\nprivateTemplates.commentField = function (isRequired) {\r\n var elementType = (manitou.config.applicationCommentIsSingleLine ? 'input' : 'textarea');\r\n var classes = (manitou.config.applicationCommentIsSingleLine ? '' : 'materialize-textarea-no-auto-resize');\r\n var attributes = (manitou.config.applicationCommentIsSingleLine ? ' type=\"text\"' : '');\r\n var maxLength = manitou.config.applicationCommentMaxLength || 2000;\r\n\r\n var html =\r\n '
' +\r\n '
' +\r\n '<' + elementType + ' id=\"manitouComment\" class=\"validate ' + classes + '\" maxlength=\"' + maxLength + '\"' + attributes +\r\n (isRequired ? ' required': '') + '>' +\r\n '' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
';\r\n return html;\r\n}\r\n\r\nprivateTemplates.customSelectField = function (label, isRequired, multipleSelections, otherManualOption, options, selectId, columnWidth) {\r\n var optionsHtml = '';\r\n // Add an empty default value for single selection dropdown\r\n if (multipleSelections !== true) {\r\n optionsHtml += ''\r\n }\r\n\r\n options.forEach(\r\n function(option) {\r\n optionsHtml += '';\r\n }\r\n );\r\n // Add an Other option with a field for a custom manual answer\r\n if (otherManualOption) {\r\n optionsHtml += '';\r\n }\r\n \r\n var html = \r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '
';\r\n\r\n if (otherManualOption) {\r\n html += \r\n '';\r\n }\r\n\r\n return html;\r\n}","/*!\r\n * pagination.js v1.0.0\r\n * \r\n * Handles Materialize.js pagination component behaviour (creation of the pagination elements, handling of page \r\n * changing events and filtering of displayed pages elements)\r\n * \r\n * Depends on jQuery\r\n *\r\n * Copyright 2019 - Momentum Technologies/Manitou Solution\r\n * Released under the MIT license\r\n * \r\n * Based on https://github.com/pinzon1992/materialize_table_pagination\r\n * Licence: https://github.com/pinzon1992/materialize_table_pagination/blob/master/LICENSE\r\n *\r\n * Date: 2019-01-29\r\n * Author: Martin Lessard\r\n */\r\n\r\nimport $ from 'jquery';\r\n\r\n /*!\r\n * ---------------------------------------------------------------------------------------------------------------------\r\n * OPTIONS\r\n * ---------------------------------------------------------------------------------------------------------------------\r\n * {showPaginationNumbers} : Display or not the clickable pagination numbers.\r\n * {showPaginationArrows} : Display or not the clickable pagination arrows (previous < and next >).\r\n * {showItemCount} : Display or not the total number of items handled by the pagination into an element with the class \r\n * specified by {totalItemCountSelector}.\r\n * {showItemRange} : Display or not the range of displayed items in the currently selected page into elements with the \r\n * class specified by {lowerItemCountSelector} and {upperItemCountSelector}.\r\n * {itemsPerPage} : The number of items to display per page.\r\n * {paginationSelector} : The selector for the pagination element.\r\n * {itemsContainerSelector} : The selector for the items container element.\r\n * {itemsSelector} : The selector for the items to filter within the items container element.\r\n * {totalItemCountSelector} : The selector for the element used to display the total item count (Only used if \r\n * {showItemCount} is true).\r\n * {lowerItemCountSelector} : The selector for the element used to display the lower bracket of the items range \r\n * displayed in the current page (Only used if {showItemRange} is true).\r\n * {upperItemCountSelector} : The selector for the element used to display the upper bracket of the items range \r\n * displayed in the current page (Only used if {showItemRange} is true).\r\n * {activeColor} : The color of the active page number.\r\n * {nextTooltipText} : The tooltip text used for the next button.\r\n * {prevTooltipText} : The tooltip text used for the previous button.\r\n * \r\n */\r\n\r\n$.fn.manitouPagination = function(options){\r\n var $this = this;\r\n \r\n var defaultSettings = {\r\n showPaginationNumbers: true,\r\n showPaginationArrows: true,\r\n showItemCount: false,\r\n showItemRange: false,\r\n itemsPerPage: 10,\r\n paginationSelector: '.pagination',\r\n itemsContainerSelector: 'tbody',\r\n itemsSelector: 'tr',\r\n totalItemCountSelector: '.manitouTotalResults',\r\n lowerItemCountSelector: '.manitouLowerResult',\r\n upperItemCountSelector: '.manitouUpperResult',\r\n activeColor: 'black',\r\n nextTooltipText: '',\r\n prevTooltipText: ''\r\n };\r\n var settings = $.extend(defaultSettings, options);\r\n\r\n var itemsPerPage = settings.itemsPerPage;\r\n var itemsContainerElement = $this.find(settings.itemsContainerSelector);\r\n var itemsElements = itemsContainerElement.find(settings.itemsSelector);\r\n var paginationElement = $this.find(settings.paginationSelector);\r\n\r\n var itemCount = itemsElements.length;\r\n var pageCount = Math.ceil(itemCount / itemsPerPage);\r\n \r\n // Display the total item count\r\n if (settings.showItemCount) {\r\n $this.find(settings.totalItemCountSelector).html(itemCount);\r\n }\r\n\r\n // Display the item range of the first and currently selected page (ex: 1 to 10)\r\n if (settings.showItemRange) {\r\n $this.find(settings.lowerItemCountSelector).html(1);\r\n $this.find(settings.upperItemCountSelector).html(Math.min(itemCount, itemsPerPage));\r\n }\r\n\r\n paginationElement.data('current-page', 1);\r\n\r\n // Add pagination left (previous) arrow\r\n if (settings.showPaginationArrows){\r\n var previousArrowHtml =\r\n '
  • ' +\r\n '' +\r\n 'chevron_left' +\r\n '' +\r\n '
  • ';\r\n $(previousArrowHtml).appendTo(paginationElement);\r\n }\r\n\r\n // Add pagination numbers\r\n if (settings.showPaginationNumbers) {\r\n for (var pageNumber = 1; pageNumber <= pageCount; pageNumber++) {\r\n var pageNumberHtml =\r\n '
  • ' +\r\n '' + pageNumber + '' +\r\n '
  • ';\r\n $(pageNumberHtml).appendTo(paginationElement);\r\n }\r\n }\r\n\r\n // Add pagination right (next) arrow\r\n if (settings.showPaginationArrows){\r\n var nextArrowHtml =\r\n '
  • ' +\r\n '' +\r\n 'chevron_right' +\r\n '' +\r\n '
  • ';\r\n $(nextArrowHtml).appendTo(paginationElement);\r\n }\r\n\r\n // Display the first page number as active\r\n paginationElement.find('.manitouPageNumber').filter(function () {\r\n return $(this).data('page') == 1;\r\n }).addClass('active ' + settings.activeColor);\r\n // Diasable the previous arrow since the first page is selected\r\n paginationElement.find('.manitouPreviousLink').parent().addClass('disabled');\r\n // Disable the next arrow if there is only 1 page\r\n if (pageCount <= 1) {\r\n paginationElement.find('.manitouNextLink').parent().addClass('disabled');\r\n }\r\n\r\n // Show only the first [itemsPerPage] items\r\n itemsElements.hide();\r\n itemsElements.slice(0, itemsPerPage).show();\r\n\r\n // Set event listeners for pagination arrows and numbers\r\n paginationElement.find('.manitouPageLink').click(function() {\r\n var clickedPageNumber = $(this).html().valueOf();\r\n goTo(clickedPageNumber);\r\n return false;\r\n });\r\n paginationElement.find('.manitouPreviousLink').click(function() {\r\n if (!$(this).parent().hasClass('disabled')) {\r\n previous();\r\n }\r\n return false;\r\n });\r\n paginationElement.find('.manitouNextLink').click(function() {\r\n if (!$(this).parent().hasClass('disabled')) {\r\n next();\r\n }\r\n return false;\r\n });\r\n\r\n // Go to previous page\r\n function previous(){\r\n var previousPageNumber = parseInt(paginationElement.data('current-page')) - 1;\r\n goTo(previousPageNumber);\r\n }\r\n\r\n // Go to next page\r\n function next(){\r\n var nextPageNumber = parseInt(paginationElement.data('current-page')) + 1;\r\n goTo(nextPageNumber);\r\n }\r\n\r\n // Display the items of the page in parameter according to the [itemsPerPage] setting\r\n function goTo(pageNumber){\r\n var startAt = (pageNumber - 1) * itemsPerPage;\r\n var endAt = startAt + itemsPerPage;\r\n\r\n // Display the item range of the newly selected page (ex: 11 to 18)\r\n if (settings.showItemRange) {\r\n $this.find(settings.lowerItemCountSelector).html(startAt + 1);\r\n $this.find(settings.upperItemCountSelector).html(Math.min(itemCount, endAt));\r\n }\r\n\r\n // Display only the items of the selected page\r\n itemsElements.hide().slice(startAt, endAt).show();\r\n\r\n // Disable the previous arrow if we are on the first page\r\n if (pageNumber > 1) {\r\n paginationElement.find('.manitouPreviousLink').parent().removeClass('disabled');\r\n } else {\r\n paginationElement.find('.manitouPreviousLink').parent().addClass('disabled');\r\n }\r\n // Disable the next arrow if we are on the last page\r\n if (pageNumber < pageCount) {\r\n paginationElement.find('.manitouNextLink').parent().removeClass('disabled');\r\n } else {\r\n paginationElement.find('.manitouNextLink').parent().addClass('disabled');\r\n }\r\n\r\n // Change the active pagination page number\r\n paginationElement.data('current-page', pageNumber);\r\n paginationElement.find('.manitouPageNumber').removeClass('active ' + settings.activeColor);\r\n paginationElement.find('.manitouPageNumber').filter(function () {\r\n return $(this).data('page') == pageNumber;\r\n }).addClass('active ' + settings.activeColor);\r\n }\r\n};","/*!\r\n * Materialize v1.0.0-rc.2 (http://materializecss.com)\r\n * Copyright 2014-2017 Materialize\r\n * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)\r\n */\r\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */\n(function (factory) {\n window.cash = factory();\n})(function () {\n var doc = document,\n win = window,\n ArrayProto = Array.prototype,\n slice = ArrayProto.slice,\n filter = ArrayProto.filter,\n push = ArrayProto.push;\n\n var noop = function () {},\n isFunction = function (item) {\n // @see https://crbug.com/568448\n return typeof item === typeof noop && item.call;\n },\n isString = function (item) {\n return typeof item === typeof \"\";\n };\n\n var idMatch = /^#[\\w-]*$/,\n classMatch = /^\\.[\\w-]*$/,\n htmlMatch = /<.+>/,\n singlet = /^\\w+$/;\n\n function find(selector, context) {\n context = context || doc;\n var elems = classMatch.test(selector) ? context.getElementsByClassName(selector.slice(1)) : singlet.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector);\n return elems;\n }\n\n var frag;\n function parseHTML(str) {\n if (!frag) {\n frag = doc.implementation.createHTMLDocument(null);\n var base = frag.createElement(\"base\");\n base.href = doc.location.href;\n frag.head.appendChild(base);\n }\n\n frag.body.innerHTML = str;\n\n return frag.body.childNodes;\n }\n\n function onReady(fn) {\n if (doc.readyState !== \"loading\") {\n fn();\n } else {\n doc.addEventListener(\"DOMContentLoaded\", fn);\n }\n }\n\n function Init(selector, context) {\n if (!selector) {\n return this;\n }\n\n // If already a cash collection, don't do any further processing\n if (selector.cash && selector !== win) {\n return selector;\n }\n\n var elems = selector,\n i = 0,\n length;\n\n if (isString(selector)) {\n elems = idMatch.test(selector) ?\n // If an ID use the faster getElementById check\n doc.getElementById(selector.slice(1)) : htmlMatch.test(selector) ?\n // If HTML, parse it into real elements\n parseHTML(selector) :\n // else use `find`\n find(selector, context);\n\n // If function, use as shortcut for DOM ready\n } else if (isFunction(selector)) {\n onReady(selector);return this;\n }\n\n if (!elems) {\n return this;\n }\n\n // If a single DOM element is passed in or received via ID, return the single element\n if (elems.nodeType || elems === win) {\n this[0] = elems;\n this.length = 1;\n } else {\n // Treat like an array and loop through each item.\n length = this.length = elems.length;\n for (; i < length; i++) {\n this[i] = elems[i];\n }\n }\n\n return this;\n }\n\n function cash(selector, context) {\n return new Init(selector, context);\n }\n\n var fn = cash.fn = cash.prototype = Init.prototype = { // jshint ignore:line\n cash: true,\n length: 0,\n push: push,\n splice: ArrayProto.splice,\n map: ArrayProto.map,\n init: Init\n };\n\n Object.defineProperty(fn, \"constructor\", { value: cash });\n\n cash.parseHTML = parseHTML;\n cash.noop = noop;\n cash.isFunction = isFunction;\n cash.isString = isString;\n\n cash.extend = fn.extend = function (target) {\n target = target || {};\n\n var args = slice.call(arguments),\n length = args.length,\n i = 1;\n\n if (args.length === 1) {\n target = this;\n i = 0;\n }\n\n for (; i < length; i++) {\n if (!args[i]) {\n continue;\n }\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n target[key] = args[i][key];\n }\n }\n }\n\n return target;\n };\n\n function each(collection, callback) {\n var l = collection.length,\n i = 0;\n\n for (; i < l; i++) {\n if (callback.call(collection[i], collection[i], i, collection) === false) {\n break;\n }\n }\n }\n\n function matches(el, selector) {\n var m = el && (el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector);\n return !!m && m.call(el, selector);\n }\n\n function getCompareFunction(selector) {\n return (\n /* Use browser's `matches` function if string */\n isString(selector) ? matches :\n /* Match a cash element */\n selector.cash ? function (el) {\n return selector.is(el);\n } :\n /* Direct comparison */\n function (el, selector) {\n return el === selector;\n }\n );\n }\n\n function unique(collection) {\n return cash(slice.call(collection).filter(function (item, index, self) {\n return self.indexOf(item) === index;\n }));\n }\n\n cash.extend({\n merge: function (first, second) {\n var len = +second.length,\n i = first.length,\n j = 0;\n\n for (; j < len; i++, j++) {\n first[i] = second[j];\n }\n\n first.length = i;\n return first;\n },\n\n each: each,\n matches: matches,\n unique: unique,\n isArray: Array.isArray,\n isNumeric: function (n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n });\n\n var uid = cash.uid = \"_cash\" + Date.now();\n\n function getDataCache(node) {\n return node[uid] = node[uid] || {};\n }\n\n function setData(node, key, value) {\n return getDataCache(node)[key] = value;\n }\n\n function getData(node, key) {\n var c = getDataCache(node);\n if (c[key] === undefined) {\n c[key] = node.dataset ? node.dataset[key] : cash(node).attr(\"data-\" + key);\n }\n return c[key];\n }\n\n function removeData(node, key) {\n var c = getDataCache(node);\n if (c) {\n delete c[key];\n } else if (node.dataset) {\n delete node.dataset[key];\n } else {\n cash(node).removeAttr(\"data-\" + name);\n }\n }\n\n fn.extend({\n data: function (name, value) {\n if (isString(name)) {\n return value === undefined ? getData(this[0], name) : this.each(function (v) {\n return setData(v, name, value);\n });\n }\n\n for (var key in name) {\n this.data(key, name[key]);\n }\n\n return this;\n },\n\n removeData: function (key) {\n return this.each(function (v) {\n return removeData(v, key);\n });\n }\n\n });\n\n var notWhiteMatch = /\\S+/g;\n\n function getClasses(c) {\n return isString(c) && c.match(notWhiteMatch);\n }\n\n function hasClass(v, c) {\n return v.classList ? v.classList.contains(c) : new RegExp(\"(^| )\" + c + \"( |$)\", \"gi\").test(v.className);\n }\n\n function addClass(v, c, spacedName) {\n if (v.classList) {\n v.classList.add(c);\n } else if (spacedName.indexOf(\" \" + c + \" \")) {\n v.className += \" \" + c;\n }\n }\n\n function removeClass(v, c) {\n if (v.classList) {\n v.classList.remove(c);\n } else {\n v.className = v.className.replace(c, \"\");\n }\n }\n\n fn.extend({\n addClass: function (c) {\n var classes = getClasses(c);\n\n return classes ? this.each(function (v) {\n var spacedName = \" \" + v.className + \" \";\n each(classes, function (c) {\n addClass(v, c, spacedName);\n });\n }) : this;\n },\n\n attr: function (name, value) {\n if (!name) {\n return undefined;\n }\n\n if (isString(name)) {\n if (value === undefined) {\n return this[0] ? this[0].getAttribute ? this[0].getAttribute(name) : this[0][name] : undefined;\n }\n\n return this.each(function (v) {\n if (v.setAttribute) {\n v.setAttribute(name, value);\n } else {\n v[name] = value;\n }\n });\n }\n\n for (var key in name) {\n this.attr(key, name[key]);\n }\n\n return this;\n },\n\n hasClass: function (c) {\n var check = false,\n classes = getClasses(c);\n if (classes && classes.length) {\n this.each(function (v) {\n check = hasClass(v, classes[0]);\n return !check;\n });\n }\n return check;\n },\n\n prop: function (name, value) {\n if (isString(name)) {\n return value === undefined ? this[0][name] : this.each(function (v) {\n v[name] = value;\n });\n }\n\n for (var key in name) {\n this.prop(key, name[key]);\n }\n\n return this;\n },\n\n removeAttr: function (name) {\n return this.each(function (v) {\n if (v.removeAttribute) {\n v.removeAttribute(name);\n } else {\n delete v[name];\n }\n });\n },\n\n removeClass: function (c) {\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n var classes = getClasses(c);\n return classes ? this.each(function (v) {\n each(classes, function (c) {\n removeClass(v, c);\n });\n }) : this;\n },\n\n removeProp: function (name) {\n return this.each(function (v) {\n delete v[name];\n });\n },\n\n toggleClass: function (c, state) {\n if (state !== undefined) {\n return this[state ? \"addClass\" : \"removeClass\"](c);\n }\n var classes = getClasses(c);\n return classes ? this.each(function (v) {\n var spacedName = \" \" + v.className + \" \";\n each(classes, function (c) {\n if (hasClass(v, c)) {\n removeClass(v, c);\n } else {\n addClass(v, c, spacedName);\n }\n });\n }) : this;\n } });\n\n fn.extend({\n add: function (selector, context) {\n return unique(cash.merge(this, cash(selector, context)));\n },\n\n each: function (callback) {\n each(this, callback);\n return this;\n },\n\n eq: function (index) {\n return cash(this.get(index));\n },\n\n filter: function (selector) {\n if (!selector) {\n return this;\n }\n\n var comparator = isFunction(selector) ? selector : getCompareFunction(selector);\n\n return cash(filter.call(this, function (e) {\n return comparator(e, selector);\n }));\n },\n\n first: function () {\n return this.eq(0);\n },\n\n get: function (index) {\n if (index === undefined) {\n return slice.call(this);\n }\n return index < 0 ? this[index + this.length] : this[index];\n },\n\n index: function (elem) {\n var child = elem ? cash(elem)[0] : this[0],\n collection = elem ? this : cash(child).parent().children();\n return slice.call(collection).indexOf(child);\n },\n\n last: function () {\n return this.eq(-1);\n }\n\n });\n\n var camelCase = function () {\n var camelRegex = /(?:^\\w|[A-Z]|\\b\\w)/g,\n whiteSpace = /[\\s-_]+/g;\n return function (str) {\n return str.replace(camelRegex, function (letter, index) {\n return letter[index === 0 ? \"toLowerCase\" : \"toUpperCase\"]();\n }).replace(whiteSpace, \"\");\n };\n }();\n\n var getPrefixedProp = function () {\n var cache = {},\n doc = document,\n div = doc.createElement(\"div\"),\n style = div.style;\n\n return function (prop) {\n prop = camelCase(prop);\n if (cache[prop]) {\n return cache[prop];\n }\n\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\n prefixes = [\"webkit\", \"moz\", \"ms\", \"o\"],\n props = (prop + \" \" + prefixes.join(ucProp + \" \") + ucProp).split(\" \");\n\n each(props, function (p) {\n if (p in style) {\n cache[p] = prop = cache[prop] = p;\n return false;\n }\n });\n\n return cache[prop];\n };\n }();\n\n cash.prefixedProp = getPrefixedProp;\n cash.camelCase = camelCase;\n\n fn.extend({\n css: function (prop, value) {\n if (isString(prop)) {\n prop = getPrefixedProp(prop);\n return arguments.length > 1 ? this.each(function (v) {\n return v.style[prop] = value;\n }) : win.getComputedStyle(this[0])[prop];\n }\n\n for (var key in prop) {\n this.css(key, prop[key]);\n }\n\n return this;\n }\n\n });\n\n function compute(el, prop) {\n return parseInt(win.getComputedStyle(el[0], null)[prop], 10) || 0;\n }\n\n each([\"Width\", \"Height\"], function (v) {\n var lower = v.toLowerCase();\n\n fn[lower] = function () {\n return this[0].getBoundingClientRect()[lower];\n };\n\n fn[\"inner\" + v] = function () {\n return this[0][\"client\" + v];\n };\n\n fn[\"outer\" + v] = function (margins) {\n return this[0][\"offset\" + v] + (margins ? compute(this, \"margin\" + (v === \"Width\" ? \"Left\" : \"Top\")) + compute(this, \"margin\" + (v === \"Width\" ? \"Right\" : \"Bottom\")) : 0);\n };\n });\n\n function registerEvent(node, eventName, callback) {\n var eventCache = getData(node, \"_cashEvents\") || setData(node, \"_cashEvents\", {});\n eventCache[eventName] = eventCache[eventName] || [];\n eventCache[eventName].push(callback);\n node.addEventListener(eventName, callback);\n }\n\n function removeEvent(node, eventName, callback) {\n var events = getData(node, \"_cashEvents\"),\n eventCache = events && events[eventName],\n index;\n\n if (!eventCache) {\n return;\n }\n\n if (callback) {\n node.removeEventListener(eventName, callback);\n index = eventCache.indexOf(callback);\n if (index >= 0) {\n eventCache.splice(index, 1);\n }\n } else {\n each(eventCache, function (event) {\n node.removeEventListener(eventName, event);\n });\n eventCache = [];\n }\n }\n\n fn.extend({\n off: function (eventName, callback) {\n return this.each(function (v) {\n return removeEvent(v, eventName, callback);\n });\n },\n\n on: function (eventName, delegate, callback, runOnce) {\n // jshint ignore:line\n var originalCallback;\n if (!isString(eventName)) {\n for (var key in eventName) {\n this.on(key, delegate, eventName[key]);\n }\n return this;\n }\n\n if (isFunction(delegate)) {\n callback = delegate;\n delegate = null;\n }\n\n if (eventName === \"ready\") {\n onReady(callback);\n return this;\n }\n\n if (delegate) {\n originalCallback = callback;\n callback = function (e) {\n var t = e.target;\n while (!matches(t, delegate)) {\n if (t === this || t === null) {\n return t = false;\n }\n\n t = t.parentNode;\n }\n\n if (t) {\n originalCallback.call(t, e);\n }\n };\n }\n\n return this.each(function (v) {\n var finalCallback = callback;\n if (runOnce) {\n finalCallback = function () {\n callback.apply(this, arguments);\n removeEvent(v, eventName, finalCallback);\n };\n }\n registerEvent(v, eventName, finalCallback);\n });\n },\n\n one: function (eventName, delegate, callback) {\n return this.on(eventName, delegate, callback, true);\n },\n\n ready: onReady,\n\n /**\n * Modified\n * Triggers browser event\n * @param String eventName\n * @param Object data - Add properties to event object\n */\n trigger: function (eventName, data) {\n if (document.createEvent) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(eventName, true, false);\n evt = this.extend(evt, data);\n return this.each(function (v) {\n return v.dispatchEvent(evt);\n });\n }\n }\n\n });\n\n function encode(name, value) {\n return \"&\" + encodeURIComponent(name) + \"=\" + encodeURIComponent(value).replace(/%20/g, \"+\");\n }\n\n function getSelectMultiple_(el) {\n var values = [];\n each(el.options, function (o) {\n if (o.selected) {\n values.push(o.value);\n }\n });\n return values.length ? values : null;\n }\n\n function getSelectSingle_(el) {\n var selectedIndex = el.selectedIndex;\n return selectedIndex >= 0 ? el.options[selectedIndex].value : null;\n }\n\n function getValue(el) {\n var type = el.type;\n if (!type) {\n return null;\n }\n switch (type.toLowerCase()) {\n case \"select-one\":\n return getSelectSingle_(el);\n case \"select-multiple\":\n return getSelectMultiple_(el);\n case \"radio\":\n return el.checked ? el.value : null;\n case \"checkbox\":\n return el.checked ? el.value : null;\n default:\n return el.value ? el.value : null;\n }\n }\n\n fn.extend({\n serialize: function () {\n var query = \"\";\n\n each(this[0].elements || this, function (el) {\n if (el.disabled || el.tagName === \"FIELDSET\") {\n return;\n }\n var name = el.name;\n switch (el.type.toLowerCase()) {\n case \"file\":\n case \"reset\":\n case \"submit\":\n case \"button\":\n break;\n case \"select-multiple\":\n var values = getValue(el);\n if (values !== null) {\n each(values, function (value) {\n query += encode(name, value);\n });\n }\n break;\n default:\n var value = getValue(el);\n if (value !== null) {\n query += encode(name, value);\n }\n }\n });\n\n return query.substr(1);\n },\n\n val: function (value) {\n if (value === undefined) {\n return getValue(this[0]);\n }\n\n return this.each(function (v) {\n return v.value = value;\n });\n }\n\n });\n\n function insertElement(el, child, prepend) {\n if (prepend) {\n var first = el.childNodes[0];\n el.insertBefore(child, first);\n } else {\n el.appendChild(child);\n }\n }\n\n function insertContent(parent, child, prepend) {\n var str = isString(child);\n\n if (!str && child.length) {\n each(child, function (v) {\n return insertContent(parent, v, prepend);\n });\n return;\n }\n\n each(parent, str ? function (v) {\n return v.insertAdjacentHTML(prepend ? \"afterbegin\" : \"beforeend\", child);\n } : function (v, i) {\n return insertElement(v, i === 0 ? child : child.cloneNode(true), prepend);\n });\n }\n\n fn.extend({\n after: function (selector) {\n cash(selector).insertAfter(this);\n return this;\n },\n\n append: function (content) {\n insertContent(this, content);\n return this;\n },\n\n appendTo: function (parent) {\n insertContent(cash(parent), this);\n return this;\n },\n\n before: function (selector) {\n cash(selector).insertBefore(this);\n return this;\n },\n\n clone: function () {\n return cash(this.map(function (v) {\n return v.cloneNode(true);\n }));\n },\n\n empty: function () {\n this.html(\"\");\n return this;\n },\n\n html: function (content) {\n if (content === undefined) {\n return this[0].innerHTML;\n }\n var source = content.nodeType ? content[0].outerHTML : content;\n return this.each(function (v) {\n return v.innerHTML = source;\n });\n },\n\n insertAfter: function (selector) {\n var _this = this;\n\n cash(selector).each(function (el, i) {\n var parent = el.parentNode,\n sibling = el.nextSibling;\n _this.each(function (v) {\n parent.insertBefore(i === 0 ? v : v.cloneNode(true), sibling);\n });\n });\n\n return this;\n },\n\n insertBefore: function (selector) {\n var _this2 = this;\n cash(selector).each(function (el, i) {\n var parent = el.parentNode;\n _this2.each(function (v) {\n parent.insertBefore(i === 0 ? v : v.cloneNode(true), el);\n });\n });\n return this;\n },\n\n prepend: function (content) {\n insertContent(this, content, true);\n return this;\n },\n\n prependTo: function (parent) {\n insertContent(cash(parent), this, true);\n return this;\n },\n\n remove: function () {\n return this.each(function (v) {\n if (!!v.parentNode) {\n return v.parentNode.removeChild(v);\n }\n });\n },\n\n text: function (content) {\n if (content === undefined) {\n return this[0].textContent;\n }\n return this.each(function (v) {\n return v.textContent = content;\n });\n }\n\n });\n\n var docEl = doc.documentElement;\n\n fn.extend({\n position: function () {\n var el = this[0];\n return {\n left: el.offsetLeft,\n top: el.offsetTop\n };\n },\n\n offset: function () {\n var rect = this[0].getBoundingClientRect();\n return {\n top: rect.top + win.pageYOffset - docEl.clientTop,\n left: rect.left + win.pageXOffset - docEl.clientLeft\n };\n },\n\n offsetParent: function () {\n return cash(this[0].offsetParent);\n }\n\n });\n\n fn.extend({\n children: function (selector) {\n var elems = [];\n this.each(function (el) {\n push.apply(elems, el.children);\n });\n elems = unique(elems);\n\n return !selector ? elems : elems.filter(function (v) {\n return matches(v, selector);\n });\n },\n\n closest: function (selector) {\n if (!selector || this.length < 1) {\n return cash();\n }\n if (this.is(selector)) {\n return this.filter(selector);\n }\n return this.parent().closest(selector);\n },\n\n is: function (selector) {\n if (!selector) {\n return false;\n }\n\n var match = false,\n comparator = getCompareFunction(selector);\n\n this.each(function (el) {\n match = comparator(el, selector);\n return !match;\n });\n\n return match;\n },\n\n find: function (selector) {\n if (!selector || selector.nodeType) {\n return cash(selector && this.has(selector).length ? selector : null);\n }\n\n var elems = [];\n this.each(function (el) {\n push.apply(elems, find(selector, el));\n });\n\n return unique(elems);\n },\n\n has: function (selector) {\n var comparator = isString(selector) ? function (el) {\n return find(selector, el).length !== 0;\n } : function (el) {\n return el.contains(selector);\n };\n\n return this.filter(comparator);\n },\n\n next: function () {\n return cash(this[0].nextElementSibling);\n },\n\n not: function (selector) {\n if (!selector) {\n return this;\n }\n\n var comparator = getCompareFunction(selector);\n\n return this.filter(function (el) {\n return !comparator(el, selector);\n });\n },\n\n parent: function () {\n var result = [];\n\n this.each(function (item) {\n if (item && item.parentNode) {\n result.push(item.parentNode);\n }\n });\n\n return unique(result);\n },\n\n parents: function (selector) {\n var last,\n result = [];\n\n this.each(function (item) {\n last = item;\n\n while (last && last.parentNode && last !== doc.body.parentNode) {\n last = last.parentNode;\n\n if (!selector || selector && matches(last, selector)) {\n result.push(last);\n }\n }\n });\n\n return unique(result);\n },\n\n prev: function () {\n return cash(this[0].previousElementSibling);\n },\n\n siblings: function (selector) {\n var collection = this.parent().children(selector),\n el = this[0];\n\n return collection.filter(function (i) {\n return i !== el;\n });\n }\n\n });\n\n return cash;\n});\n;\nvar Component = function () {\n /**\n * Generic constructor for all components\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function Component(classDef, el, options) {\n _classCallCheck(this, Component);\n\n // Display error if el is valid HTML Element\n if (!(el instanceof Element)) {\n console.error(Error(el + ' is not an HTML Element'));\n }\n\n // If exists, destroy and reinitialize in child\n var ins = classDef.getInstance(el);\n if (!!ins) {\n ins.destroy();\n }\n\n this.el = el;\n this.$el = cash(el);\n }\n\n /**\n * Initializes components\n * @param {class} classDef\n * @param {Element | NodeList | jQuery} els\n * @param {Object} options\n */\n\n\n _createClass(Component, null, [{\n key: \"init\",\n value: function init(classDef, els, options) {\n var instances = null;\n if (els instanceof Element) {\n instances = new classDef(els, options);\n } else if (!!els && (els.jquery || els.cash || els instanceof NodeList)) {\n var instancesArr = [];\n for (var i = 0; i < els.length; i++) {\n instancesArr.push(new classDef(els[i], options));\n }\n instances = instancesArr;\n }\n\n return instances;\n }\n }]);\n\n return Component;\n}();\n\n; // Required for Meteor package, the use of window prevents export by Meteor\n(function (window) {\n if (window.Package) {\n M = {};\n } else {\n window.M = {};\n }\n\n // Check for jQuery\n M.jQueryLoaded = !!window.jQuery;\n})(window);\n\n// AMD\nif (typeof define === 'function' && define.amd) {\n define('M', [], function () {\n return M;\n });\n\n // Common JS\n} else if (typeof exports !== 'undefined' && !exports.nodeType) {\n if (typeof module !== 'undefined' && !module.nodeType && module.exports) {\n exports = module.exports = M;\n }\n exports.default = M;\n}\n\nM.keys = {\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};\n\n/**\n * TabPress Keydown handler\n */\nM.tabPressed = false;\nM.keyDown = false;\nvar docHandleKeydown = function (e) {\n M.keyDown = true;\n if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {\n M.tabPressed = true;\n }\n};\nvar docHandleKeyup = function (e) {\n M.keyDown = false;\n if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {\n M.tabPressed = false;\n }\n};\nvar docHandleFocus = function (e) {\n if (M.keyDown) {\n document.body.classList.add('keyboard-focused');\n }\n};\nvar docHandleBlur = function (e) {\n document.body.classList.remove('keyboard-focused');\n};\ndocument.addEventListener('keydown', docHandleKeydown, true);\ndocument.addEventListener('keyup', docHandleKeyup, true);\ndocument.addEventListener('focus', docHandleFocus, true);\ndocument.addEventListener('blur', docHandleBlur, true);\n\n/**\n * Initialize jQuery wrapper for plugin\n * @param {Class} plugin javascript class\n * @param {string} pluginName jQuery plugin name\n * @param {string} classRef Class reference name\n */\nM.initializeJqueryWrapper = function (plugin, pluginName, classRef) {\n jQuery.fn[pluginName] = function (methodOrOptions) {\n // Call plugin method if valid method name is passed in\n if (plugin.prototype[methodOrOptions]) {\n var params = Array.prototype.slice.call(arguments, 1);\n\n // Getter methods\n if (methodOrOptions.slice(0, 3) === 'get') {\n var instance = this.first()[0][classRef];\n return instance[methodOrOptions].apply(instance, params);\n }\n\n // Void methods\n return this.each(function () {\n var instance = this[classRef];\n instance[methodOrOptions].apply(instance, params);\n });\n\n // Initialize plugin if options or no argument is passed in\n } else if (typeof methodOrOptions === 'object' || !methodOrOptions) {\n plugin.init(this, arguments[0]);\n return this;\n }\n\n // Return error if an unrecognized method name is passed in\n jQuery.error(\"Method \" + methodOrOptions + \" does not exist on jQuery.\" + pluginName);\n };\n};\n\n/**\n * Automatically initialize components\n * @param {Element} context DOM Element to search within for components\n */\nM.AutoInit = function (context) {\n // Use document.body if no context is given\n var root = !!context ? context : document.body;\n\n var registry = {\n Autocomplete: root.querySelectorAll('.autocomplete:not(.no-autoinit)'),\n Carousel: root.querySelectorAll('.carousel:not(.no-autoinit)'),\n Chips: root.querySelectorAll('.chips:not(.no-autoinit)'),\n Collapsible: root.querySelectorAll('.collapsible:not(.no-autoinit)'),\n Datepicker: root.querySelectorAll('.datepicker:not(.no-autoinit)'),\n Dropdown: root.querySelectorAll('.dropdown-trigger:not(.no-autoinit)'),\n Materialbox: root.querySelectorAll('.materialboxed:not(.no-autoinit)'),\n Modal: root.querySelectorAll('.modal:not(.no-autoinit)'),\n Parallax: root.querySelectorAll('.parallax:not(.no-autoinit)'),\n Pushpin: root.querySelectorAll('.pushpin:not(.no-autoinit)'),\n ScrollSpy: root.querySelectorAll('.scrollspy:not(.no-autoinit)'),\n FormSelect: root.querySelectorAll('select:not(.no-autoinit)'),\n Sidenav: root.querySelectorAll('.sidenav:not(.no-autoinit)'),\n Tabs: root.querySelectorAll('.tabs:not(.no-autoinit)'),\n TapTarget: root.querySelectorAll('.tap-target:not(.no-autoinit)'),\n Timepicker: root.querySelectorAll('.timepicker:not(.no-autoinit)'),\n Tooltip: root.querySelectorAll('.tooltipped:not(.no-autoinit)'),\n FloatingActionButton: root.querySelectorAll('.fixed-action-btn:not(.no-autoinit)')\n };\n\n for (var pluginName in registry) {\n var plugin = M[pluginName];\n plugin.init(registry[pluginName]);\n }\n};\n\n/**\n * Generate approximated selector string for a jQuery object\n * @param {jQuery} obj jQuery object to be parsed\n * @returns {string}\n */\nM.objectSelectorString = function (obj) {\n var tagStr = obj.prop('tagName') || '';\n var idStr = obj.attr('id') || '';\n var classStr = obj.attr('class') || '';\n return (tagStr + idStr + classStr).replace(/\\s/g, '');\n};\n\n// Unique Random ID\nM.guid = function () {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n }\n return function () {\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n };\n}();\n\n/**\n * Escapes hash from special characters\n * @param {string} hash String returned from this.hash\n * @returns {string}\n */\nM.escapeHash = function (hash) {\n return hash.replace(/(:|\\.|\\[|\\]|,|=|\\/)/g, '\\\\$1');\n};\n\nM.elementOrParentIsFixed = function (element) {\n var $element = $(element);\n var $checkElements = $element.add($element.parents());\n var isFixed = false;\n $checkElements.each(function () {\n if ($(this).css('position') === 'fixed') {\n isFixed = true;\n return false;\n }\n });\n return isFixed;\n};\n\n/**\n * @typedef {Object} Edges\n * @property {Boolean} top If the top edge was exceeded\n * @property {Boolean} right If the right edge was exceeded\n * @property {Boolean} bottom If the bottom edge was exceeded\n * @property {Boolean} left If the left edge was exceeded\n */\n\n/**\n * @typedef {Object} Bounding\n * @property {Number} left left offset coordinate\n * @property {Number} top top offset coordinate\n * @property {Number} width\n * @property {Number} height\n */\n\n/**\n * Escapes hash from special characters\n * @param {Element} container Container element that acts as the boundary\n * @param {Bounding} bounding element bounding that is being checked\n * @param {Number} offset offset from edge that counts as exceeding\n * @returns {Edges}\n */\nM.checkWithinContainer = function (container, bounding, offset) {\n var edges = {\n top: false,\n right: false,\n bottom: false,\n left: false\n };\n\n var containerRect = container.getBoundingClientRect();\n // If body element is smaller than viewport, use viewport height instead.\n var containerBottom = container === document.body ? Math.max(containerRect.bottom, window.innerHeight) : containerRect.bottom;\n\n var scrollLeft = container.scrollLeft;\n var scrollTop = container.scrollTop;\n\n var scrolledX = bounding.left - scrollLeft;\n var scrolledY = bounding.top - scrollTop;\n\n // Check for container and viewport for each edge\n if (scrolledX < containerRect.left + offset || scrolledX < offset) {\n edges.left = true;\n }\n\n if (scrolledX + bounding.width > containerRect.right - offset || scrolledX + bounding.width > window.innerWidth - offset) {\n edges.right = true;\n }\n\n if (scrolledY < containerRect.top + offset || scrolledY < offset) {\n edges.top = true;\n }\n\n if (scrolledY + bounding.height > containerBottom - offset || scrolledY + bounding.height > window.innerHeight - offset) {\n edges.bottom = true;\n }\n\n return edges;\n};\n\nM.checkPossibleAlignments = function (el, container, bounding, offset) {\n var canAlign = {\n top: true,\n right: true,\n bottom: true,\n left: true,\n spaceOnTop: null,\n spaceOnRight: null,\n spaceOnBottom: null,\n spaceOnLeft: null\n };\n\n var containerAllowsOverflow = getComputedStyle(container).overflow === 'visible';\n var containerRect = container.getBoundingClientRect();\n var containerHeight = Math.min(containerRect.height, window.innerHeight);\n var containerWidth = Math.min(containerRect.width, window.innerWidth);\n var elOffsetRect = el.getBoundingClientRect();\n\n var scrollLeft = container.scrollLeft;\n var scrollTop = container.scrollTop;\n\n var scrolledX = bounding.left - scrollLeft;\n var scrolledYTopEdge = bounding.top - scrollTop;\n var scrolledYBottomEdge = bounding.top + elOffsetRect.height - scrollTop;\n\n // Check for container and viewport for left\n canAlign.spaceOnRight = !containerAllowsOverflow ? containerWidth - (scrolledX + bounding.width) : window.innerWidth - (elOffsetRect.left + bounding.width);\n if (canAlign.spaceOnRight < 0) {\n canAlign.left = false;\n }\n\n // Check for container and viewport for Right\n canAlign.spaceOnLeft = !containerAllowsOverflow ? scrolledX - bounding.width + elOffsetRect.width : elOffsetRect.right - bounding.width;\n if (canAlign.spaceOnLeft < 0) {\n canAlign.right = false;\n }\n\n // Check for container and viewport for Top\n canAlign.spaceOnBottom = !containerAllowsOverflow ? containerHeight - (scrolledYTopEdge + bounding.height + offset) : window.innerHeight - (elOffsetRect.top + bounding.height + offset);\n if (canAlign.spaceOnBottom < 0) {\n canAlign.top = false;\n }\n\n // Check for container and viewport for Bottom\n canAlign.spaceOnTop = !containerAllowsOverflow ? scrolledYBottomEdge - (bounding.height - offset) : elOffsetRect.bottom - (bounding.height + offset);\n if (canAlign.spaceOnTop < 0) {\n canAlign.bottom = false;\n }\n\n return canAlign;\n};\n\nM.getOverflowParent = function (element) {\n if (element == null) {\n return null;\n }\n\n if (element === document.body || getComputedStyle(element).overflow !== 'visible') {\n return element;\n }\n\n return M.getOverflowParent(element.parentElement);\n};\n\n/**\n * Gets id of component from a trigger\n * @param {Element} trigger trigger\n * @returns {string}\n */\nM.getIdFromTrigger = function (trigger) {\n var id = trigger.getAttribute('data-target');\n if (!id) {\n id = trigger.getAttribute('href');\n if (id) {\n id = id.slice(1);\n } else {\n id = '';\n }\n }\n return id;\n};\n\n/**\n * Multi browser support for document scroll top\n * @returns {Number}\n */\nM.getDocumentScrollTop = function () {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n};\n\n/**\n * Multi browser support for document scroll left\n * @returns {Number}\n */\nM.getDocumentScrollLeft = function () {\n return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n};\n\n/**\n * @typedef {Object} Edges\n * @property {Boolean} top If the top edge was exceeded\n * @property {Boolean} right If the right edge was exceeded\n * @property {Boolean} bottom If the bottom edge was exceeded\n * @property {Boolean} left If the left edge was exceeded\n */\n\n/**\n * @typedef {Object} Bounding\n * @property {Number} left left offset coordinate\n * @property {Number} top top offset coordinate\n * @property {Number} width\n * @property {Number} height\n */\n\n/**\n * Get time in ms\n * @license https://raw.github.com/jashkenas/underscore/master/LICENSE\n * @type {function}\n * @return {number}\n */\nvar getTime = Date.now || function () {\n return new Date().getTime();\n};\n\n/**\n * Returns a function, that, when invoked, will only be triggered at most once\n * during a given window of time. Normally, the throttled function will run\n * as much as it can, without ever going more than once per `wait` duration;\n * but if you'd like to disable the execution on the leading edge, pass\n * `{leading: false}`. To disable execution on the trailing edge, ditto.\n * @license https://raw.github.com/jashkenas/underscore/master/LICENSE\n * @param {function} func\n * @param {number} wait\n * @param {Object=} options\n * @returns {Function}\n */\nM.throttle = function (func, wait, options) {\n var context = void 0,\n args = void 0,\n result = void 0;\n var timeout = null;\n var previous = 0;\n options || (options = {});\n var later = function () {\n previous = options.leading === false ? 0 : getTime();\n timeout = null;\n result = func.apply(context, args);\n context = args = null;\n };\n return function () {\n var now = getTime();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n};\n; /*\n v2.2.0\n 2017 Julian Garnier\n Released under the MIT license\n */\nvar $jscomp = { scope: {} };$jscomp.defineProperty = \"function\" == typeof Object.defineProperties ? Object.defineProperty : function (e, r, p) {\n if (p.get || p.set) throw new TypeError(\"ES3 does not support getters and setters.\");e != Array.prototype && e != Object.prototype && (e[r] = p.value);\n};$jscomp.getGlobal = function (e) {\n return \"undefined\" != typeof window && window === e ? e : \"undefined\" != typeof global && null != global ? global : e;\n};$jscomp.global = $jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX = \"jscomp_symbol_\";\n$jscomp.initSymbol = function () {\n $jscomp.initSymbol = function () {};$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol);\n};$jscomp.symbolCounter_ = 0;$jscomp.Symbol = function (e) {\n return $jscomp.SYMBOL_PREFIX + (e || \"\") + $jscomp.symbolCounter_++;\n};\n$jscomp.initSymbolIterator = function () {\n $jscomp.initSymbol();var e = $jscomp.global.Symbol.iterator;e || (e = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol(\"iterator\"));\"function\" != typeof Array.prototype[e] && $jscomp.defineProperty(Array.prototype, e, { configurable: !0, writable: !0, value: function () {\n return $jscomp.arrayIterator(this);\n } });$jscomp.initSymbolIterator = function () {};\n};$jscomp.arrayIterator = function (e) {\n var r = 0;return $jscomp.iteratorPrototype(function () {\n return r < e.length ? { done: !1, value: e[r++] } : { done: !0 };\n });\n};\n$jscomp.iteratorPrototype = function (e) {\n $jscomp.initSymbolIterator();e = { next: e };e[$jscomp.global.Symbol.iterator] = function () {\n return this;\n };return e;\n};$jscomp.array = $jscomp.array || {};$jscomp.iteratorFromArray = function (e, r) {\n $jscomp.initSymbolIterator();e instanceof String && (e += \"\");var p = 0,\n m = { next: function () {\n if (p < e.length) {\n var u = p++;return { value: r(u, e[u]), done: !1 };\n }m.next = function () {\n return { done: !0, value: void 0 };\n };return m.next();\n } };m[Symbol.iterator] = function () {\n return m;\n };return m;\n};\n$jscomp.polyfill = function (e, r, p, m) {\n if (r) {\n p = $jscomp.global;e = e.split(\".\");for (m = 0; m < e.length - 1; m++) {\n var u = e[m];u in p || (p[u] = {});p = p[u];\n }e = e[e.length - 1];m = p[e];r = r(m);r != m && null != r && $jscomp.defineProperty(p, e, { configurable: !0, writable: !0, value: r });\n }\n};$jscomp.polyfill(\"Array.prototype.keys\", function (e) {\n return e ? e : function () {\n return $jscomp.iteratorFromArray(this, function (e) {\n return e;\n });\n };\n}, \"es6-impl\", \"es3\");var $jscomp$this = this;\n(function (r) {\n M.anime = r();\n})(function () {\n function e(a) {\n if (!h.col(a)) try {\n return document.querySelectorAll(a);\n } catch (c) {}\n }function r(a, c) {\n for (var d = a.length, b = 2 <= arguments.length ? arguments[1] : void 0, f = [], n = 0; n < d; n++) {\n if (n in a) {\n var k = a[n];c.call(b, k, n, a) && f.push(k);\n }\n }return f;\n }function p(a) {\n return a.reduce(function (a, d) {\n return a.concat(h.arr(d) ? p(d) : d);\n }, []);\n }function m(a) {\n if (h.arr(a)) return a;\n h.str(a) && (a = e(a) || a);return a instanceof NodeList || a instanceof HTMLCollection ? [].slice.call(a) : [a];\n }function u(a, c) {\n return a.some(function (a) {\n return a === c;\n });\n }function C(a) {\n var c = {},\n d;for (d in a) {\n c[d] = a[d];\n }return c;\n }function D(a, c) {\n var d = C(a),\n b;for (b in a) {\n d[b] = c.hasOwnProperty(b) ? c[b] : a[b];\n }return d;\n }function z(a, c) {\n var d = C(a),\n b;for (b in c) {\n d[b] = h.und(a[b]) ? c[b] : a[b];\n }return d;\n }function T(a) {\n a = a.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, function (a, c, d, k) {\n return c + c + d + d + k + k;\n });var c = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(a);\n a = parseInt(c[1], 16);var d = parseInt(c[2], 16),\n c = parseInt(c[3], 16);return \"rgba(\" + a + \",\" + d + \",\" + c + \",1)\";\n }function U(a) {\n function c(a, c, b) {\n 0 > b && (b += 1);1 < b && --b;return b < 1 / 6 ? a + 6 * (c - a) * b : .5 > b ? c : b < 2 / 3 ? a + (c - a) * (2 / 3 - b) * 6 : a;\n }var d = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(a) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(a);a = parseInt(d[1]) / 360;var b = parseInt(d[2]) / 100,\n f = parseInt(d[3]) / 100,\n d = d[4] || 1;if (0 == b) f = b = a = f;else {\n var n = .5 > f ? f * (1 + b) : f + b - f * b,\n k = 2 * f - n,\n f = c(k, n, a + 1 / 3),\n b = c(k, n, a);a = c(k, n, a - 1 / 3);\n }return \"rgba(\" + 255 * f + \",\" + 255 * b + \",\" + 255 * a + \",\" + d + \")\";\n }function y(a) {\n if (a = /([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a)) return a[2];\n }function V(a) {\n if (-1 < a.indexOf(\"translate\") || \"perspective\" === a) return \"px\";if (-1 < a.indexOf(\"rotate\") || -1 < a.indexOf(\"skew\")) return \"deg\";\n }function I(a, c) {\n return h.fnc(a) ? a(c.target, c.id, c.total) : a;\n }function E(a, c) {\n if (c in a.style) return getComputedStyle(a).getPropertyValue(c.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase()) || \"0\";\n }function J(a, c) {\n if (h.dom(a) && u(W, c)) return \"transform\";if (h.dom(a) && (a.getAttribute(c) || h.svg(a) && a[c])) return \"attribute\";if (h.dom(a) && \"transform\" !== c && E(a, c)) return \"css\";if (null != a[c]) return \"object\";\n }function X(a, c) {\n var d = V(c),\n d = -1 < c.indexOf(\"scale\") ? 1 : 0 + d;a = a.style.transform;if (!a) return d;for (var b = [], f = [], n = [], k = /(\\w+)\\((.+?)\\)/g; b = k.exec(a);) {\n f.push(b[1]), n.push(b[2]);\n }a = r(n, function (a, b) {\n return f[b] === c;\n });return a.length ? a[0] : d;\n }function K(a, c) {\n switch (J(a, c)) {case \"transform\":\n return X(a, c);case \"css\":\n return E(a, c);case \"attribute\":\n return a.getAttribute(c);}return a[c] || 0;\n }function L(a, c) {\n var d = /^(\\*=|\\+=|-=)/.exec(a);if (!d) return a;var b = y(a) || 0;c = parseFloat(c);a = parseFloat(a.replace(d[0], \"\"));switch (d[0][0]) {case \"+\":\n return c + a + b;case \"-\":\n return c - a + b;case \"*\":\n return c * a + b;}\n }function F(a, c) {\n return Math.sqrt(Math.pow(c.x - a.x, 2) + Math.pow(c.y - a.y, 2));\n }function M(a) {\n a = a.points;for (var c = 0, d, b = 0; b < a.numberOfItems; b++) {\n var f = a.getItem(b);0 < b && (c += F(d, f));d = f;\n }return c;\n }function N(a) {\n if (a.getTotalLength) return a.getTotalLength();switch (a.tagName.toLowerCase()) {case \"circle\":\n return 2 * Math.PI * a.getAttribute(\"r\");case \"rect\":\n return 2 * a.getAttribute(\"width\") + 2 * a.getAttribute(\"height\");case \"line\":\n return F({ x: a.getAttribute(\"x1\"), y: a.getAttribute(\"y1\") }, { x: a.getAttribute(\"x2\"), y: a.getAttribute(\"y2\") });case \"polyline\":\n return M(a);case \"polygon\":\n var c = a.points;return M(a) + F(c.getItem(c.numberOfItems - 1), c.getItem(0));}\n }function Y(a, c) {\n function d(b) {\n b = void 0 === b ? 0 : b;return a.el.getPointAtLength(1 <= c + b ? c + b : 0);\n }var b = d(),\n f = d(-1),\n n = d(1);switch (a.property) {case \"x\":\n return b.x;case \"y\":\n return b.y;\n case \"angle\":\n return 180 * Math.atan2(n.y - f.y, n.x - f.x) / Math.PI;}\n }function O(a, c) {\n var d = /-?\\d*\\.?\\d+/g,\n b;b = h.pth(a) ? a.totalLength : a;if (h.col(b)) {\n if (h.rgb(b)) {\n var f = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(b);b = f ? \"rgba(\" + f[1] + \",1)\" : b;\n } else b = h.hex(b) ? T(b) : h.hsl(b) ? U(b) : void 0;\n } else f = (f = y(b)) ? b.substr(0, b.length - f.length) : b, b = c && !/\\s/g.test(b) ? f + c : f;b += \"\";return { original: b, numbers: b.match(d) ? b.match(d).map(Number) : [0], strings: h.str(a) || c ? b.split(d) : [] };\n }function P(a) {\n a = a ? p(h.arr(a) ? a.map(m) : m(a)) : [];return r(a, function (a, d, b) {\n return b.indexOf(a) === d;\n });\n }function Z(a) {\n var c = P(a);return c.map(function (a, b) {\n return { target: a, id: b, total: c.length };\n });\n }function aa(a, c) {\n var d = C(c);if (h.arr(a)) {\n var b = a.length;2 !== b || h.obj(a[0]) ? h.fnc(c.duration) || (d.duration = c.duration / b) : a = { value: a };\n }return m(a).map(function (a, b) {\n b = b ? 0 : c.delay;a = h.obj(a) && !h.pth(a) ? a : { value: a };h.und(a.delay) && (a.delay = b);return a;\n }).map(function (a) {\n return z(a, d);\n });\n }function ba(a, c) {\n var d = {},\n b;for (b in a) {\n var f = I(a[b], c);h.arr(f) && (f = f.map(function (a) {\n return I(a, c);\n }), 1 === f.length && (f = f[0]));d[b] = f;\n }d.duration = parseFloat(d.duration);d.delay = parseFloat(d.delay);return d;\n }function ca(a) {\n return h.arr(a) ? A.apply(this, a) : Q[a];\n }function da(a, c) {\n var d;return a.tweens.map(function (b) {\n b = ba(b, c);var f = b.value,\n e = K(c.target, a.name),\n k = d ? d.to.original : e,\n k = h.arr(f) ? f[0] : k,\n w = L(h.arr(f) ? f[1] : f, k),\n e = y(w) || y(k) || y(e);b.from = O(k, e);b.to = O(w, e);b.start = d ? d.end : a.offset;b.end = b.start + b.delay + b.duration;b.easing = ca(b.easing);b.elasticity = (1E3 - Math.min(Math.max(b.elasticity, 1), 999)) / 1E3;b.isPath = h.pth(f);b.isColor = h.col(b.from.original);b.isColor && (b.round = 1);return d = b;\n });\n }function ea(a, c) {\n return r(p(a.map(function (a) {\n return c.map(function (b) {\n var c = J(a.target, b.name);if (c) {\n var d = da(b, a);b = { type: c, property: b.name, animatable: a, tweens: d, duration: d[d.length - 1].end, delay: d[0].delay };\n } else b = void 0;return b;\n });\n })), function (a) {\n return !h.und(a);\n });\n }function R(a, c, d, b) {\n var f = \"delay\" === a;return c.length ? (f ? Math.min : Math.max).apply(Math, c.map(function (b) {\n return b[a];\n })) : f ? b.delay : d.offset + b.delay + b.duration;\n }function fa(a) {\n var c = D(ga, a),\n d = D(S, a),\n b = Z(a.targets),\n f = [],\n e = z(c, d),\n k;for (k in a) {\n e.hasOwnProperty(k) || \"targets\" === k || f.push({ name: k, offset: e.offset, tweens: aa(a[k], d) });\n }a = ea(b, f);return z(c, { children: [], animatables: b, animations: a, duration: R(\"duration\", a, c, d), delay: R(\"delay\", a, c, d) });\n }function q(a) {\n function c() {\n return window.Promise && new Promise(function (a) {\n return p = a;\n });\n }function d(a) {\n return g.reversed ? g.duration - a : a;\n }function b(a) {\n for (var b = 0, c = {}, d = g.animations, f = d.length; b < f;) {\n var e = d[b],\n k = e.animatable,\n h = e.tweens,\n n = h.length - 1,\n l = h[n];n && (l = r(h, function (b) {\n return a < b.end;\n })[0] || l);for (var h = Math.min(Math.max(a - l.start - l.delay, 0), l.duration) / l.duration, w = isNaN(h) ? 1 : l.easing(h, l.elasticity), h = l.to.strings, p = l.round, n = [], m = void 0, m = l.to.numbers.length, t = 0; t < m; t++) {\n var x = void 0,\n x = l.to.numbers[t],\n q = l.from.numbers[t],\n x = l.isPath ? Y(l.value, w * x) : q + w * (x - q);p && (l.isColor && 2 < t || (x = Math.round(x * p) / p));n.push(x);\n }if (l = h.length) for (m = h[0], w = 0; w < l; w++) {\n p = h[w + 1], t = n[w], isNaN(t) || (m = p ? m + (t + p) : m + (t + \" \"));\n } else m = n[0];ha[e.type](k.target, e.property, m, c, k.id);e.currentValue = m;b++;\n }if (b = Object.keys(c).length) for (d = 0; d < b; d++) {\n H || (H = E(document.body, \"transform\") ? \"transform\" : \"-webkit-transform\"), g.animatables[d].target.style[H] = c[d].join(\" \");\n }g.currentTime = a;g.progress = a / g.duration * 100;\n }function f(a) {\n if (g[a]) g[a](g);\n }function e() {\n g.remaining && !0 !== g.remaining && g.remaining--;\n }function k(a) {\n var k = g.duration,\n n = g.offset,\n w = n + g.delay,\n r = g.currentTime,\n x = g.reversed,\n q = d(a);if (g.children.length) {\n var u = g.children,\n v = u.length;\n if (q >= g.currentTime) for (var G = 0; G < v; G++) {\n u[G].seek(q);\n } else for (; v--;) {\n u[v].seek(q);\n }\n }if (q >= w || !k) g.began || (g.began = !0, f(\"begin\")), f(\"run\");if (q > n && q < k) b(q);else if (q <= n && 0 !== r && (b(0), x && e()), q >= k && r !== k || !k) b(k), x || e();f(\"update\");a >= k && (g.remaining ? (t = h, \"alternate\" === g.direction && (g.reversed = !g.reversed)) : (g.pause(), g.completed || (g.completed = !0, f(\"complete\"), \"Promise\" in window && (p(), m = c()))), l = 0);\n }a = void 0 === a ? {} : a;var h,\n t,\n l = 0,\n p = null,\n m = c(),\n g = fa(a);g.reset = function () {\n var a = g.direction,\n c = g.loop;g.currentTime = 0;g.progress = 0;g.paused = !0;g.began = !1;g.completed = !1;g.reversed = \"reverse\" === a;g.remaining = \"alternate\" === a && 1 === c ? 2 : c;b(0);for (a = g.children.length; a--;) {\n g.children[a].reset();\n }\n };g.tick = function (a) {\n h = a;t || (t = h);k((l + h - t) * q.speed);\n };g.seek = function (a) {\n k(d(a));\n };g.pause = function () {\n var a = v.indexOf(g);-1 < a && v.splice(a, 1);g.paused = !0;\n };g.play = function () {\n g.paused && (g.paused = !1, t = 0, l = d(g.currentTime), v.push(g), B || ia());\n };g.reverse = function () {\n g.reversed = !g.reversed;t = 0;l = d(g.currentTime);\n };g.restart = function () {\n g.pause();\n g.reset();g.play();\n };g.finished = m;g.reset();g.autoplay && g.play();return g;\n }var ga = { update: void 0, begin: void 0, run: void 0, complete: void 0, loop: 1, direction: \"normal\", autoplay: !0, offset: 0 },\n S = { duration: 1E3, delay: 0, easing: \"easeOutElastic\", elasticity: 500, round: 0 },\n W = \"translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective\".split(\" \"),\n H,\n h = { arr: function (a) {\n return Array.isArray(a);\n }, obj: function (a) {\n return -1 < Object.prototype.toString.call(a).indexOf(\"Object\");\n },\n pth: function (a) {\n return h.obj(a) && a.hasOwnProperty(\"totalLength\");\n }, svg: function (a) {\n return a instanceof SVGElement;\n }, dom: function (a) {\n return a.nodeType || h.svg(a);\n }, str: function (a) {\n return \"string\" === typeof a;\n }, fnc: function (a) {\n return \"function\" === typeof a;\n }, und: function (a) {\n return \"undefined\" === typeof a;\n }, hex: function (a) {\n return (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)\n );\n }, rgb: function (a) {\n return (/^rgb/.test(a)\n );\n }, hsl: function (a) {\n return (/^hsl/.test(a)\n );\n }, col: function (a) {\n return h.hex(a) || h.rgb(a) || h.hsl(a);\n } },\n A = function () {\n function a(a, d, b) {\n return (((1 - 3 * b + 3 * d) * a + (3 * b - 6 * d)) * a + 3 * d) * a;\n }return function (c, d, b, f) {\n if (0 <= c && 1 >= c && 0 <= b && 1 >= b) {\n var e = new Float32Array(11);if (c !== d || b !== f) for (var k = 0; 11 > k; ++k) {\n e[k] = a(.1 * k, c, b);\n }return function (k) {\n if (c === d && b === f) return k;if (0 === k) return 0;if (1 === k) return 1;for (var h = 0, l = 1; 10 !== l && e[l] <= k; ++l) {\n h += .1;\n }--l;var l = h + (k - e[l]) / (e[l + 1] - e[l]) * .1,\n n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (.001 <= n) {\n for (h = 0; 4 > h; ++h) {\n n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (0 === n) break;var m = a(l, c, b) - k,\n l = l - m / n;\n }k = l;\n } else if (0 === n) k = l;else {\n var l = h,\n h = h + .1,\n g = 0;do {\n m = l + (h - l) / 2, n = a(m, c, b) - k, 0 < n ? h = m : l = m;\n } while (1e-7 < Math.abs(n) && 10 > ++g);k = m;\n }return a(k, d, f);\n };\n }\n };\n }(),\n Q = function () {\n function a(a, b) {\n return 0 === a || 1 === a ? a : -Math.pow(2, 10 * (a - 1)) * Math.sin(2 * (a - 1 - b / (2 * Math.PI) * Math.asin(1)) * Math.PI / b);\n }var c = \"Quad Cubic Quart Quint Sine Expo Circ Back Elastic\".split(\" \"),\n d = { In: [[.55, .085, .68, .53], [.55, .055, .675, .19], [.895, .03, .685, .22], [.755, .05, .855, .06], [.47, 0, .745, .715], [.95, .05, .795, .035], [.6, .04, .98, .335], [.6, -.28, .735, .045], a], Out: [[.25, .46, .45, .94], [.215, .61, .355, 1], [.165, .84, .44, 1], [.23, 1, .32, 1], [.39, .575, .565, 1], [.19, 1, .22, 1], [.075, .82, .165, 1], [.175, .885, .32, 1.275], function (b, c) {\n return 1 - a(1 - b, c);\n }], InOut: [[.455, .03, .515, .955], [.645, .045, .355, 1], [.77, 0, .175, 1], [.86, 0, .07, 1], [.445, .05, .55, .95], [1, 0, 0, 1], [.785, .135, .15, .86], [.68, -.55, .265, 1.55], function (b, c) {\n return .5 > b ? a(2 * b, c) / 2 : 1 - a(-2 * b + 2, c) / 2;\n }] },\n b = { linear: A(.25, .25, .75, .75) },\n f = {},\n e;for (e in d) {\n f.type = e, d[f.type].forEach(function (a) {\n return function (d, f) {\n b[\"ease\" + a.type + c[f]] = h.fnc(d) ? d : A.apply($jscomp$this, d);\n };\n }(f)), f = { type: f.type };\n }return b;\n }(),\n ha = { css: function (a, c, d) {\n return a.style[c] = d;\n }, attribute: function (a, c, d) {\n return a.setAttribute(c, d);\n }, object: function (a, c, d) {\n return a[c] = d;\n }, transform: function (a, c, d, b, f) {\n b[f] || (b[f] = []);b[f].push(c + \"(\" + d + \")\");\n } },\n v = [],\n B = 0,\n ia = function () {\n function a() {\n B = requestAnimationFrame(c);\n }function c(c) {\n var b = v.length;if (b) {\n for (var d = 0; d < b;) {\n v[d] && v[d].tick(c), d++;\n }a();\n } else cancelAnimationFrame(B), B = 0;\n }return a;\n }();q.version = \"2.2.0\";q.speed = 1;q.running = v;q.remove = function (a) {\n a = P(a);for (var c = v.length; c--;) {\n for (var d = v[c], b = d.animations, f = b.length; f--;) {\n u(a, b[f].animatable.target) && (b.splice(f, 1), b.length || d.pause());\n }\n }\n };q.getValue = K;q.path = function (a, c) {\n var d = h.str(a) ? e(a)[0] : a,\n b = c || 100;return function (a) {\n return { el: d, property: a, totalLength: N(d) * (b / 100) };\n };\n };q.setDashoffset = function (a) {\n var c = N(a);a.setAttribute(\"stroke-dasharray\", c);return c;\n };q.bezier = A;q.easings = Q;q.timeline = function (a) {\n var c = q(a);c.pause();c.duration = 0;c.add = function (d) {\n c.children.forEach(function (a) {\n a.began = !0;a.completed = !0;\n });m(d).forEach(function (b) {\n var d = z(b, D(S, a || {}));d.targets = d.targets || a.targets;b = c.duration;var e = d.offset;d.autoplay = !1;d.direction = c.direction;d.offset = h.und(e) ? b : L(e, b);c.began = !0;c.completed = !0;c.seek(d.offset);d = q(d);d.began = !0;d.completed = !0;d.duration > b && (c.duration = d.duration);c.children.push(d);\n });c.seek(0);c.reset();c.autoplay && c.restart();return c;\n };return c;\n };q.random = function (a, c) {\n return Math.floor(Math.random() * (c - a + 1)) + a;\n };return q;\n});\n;(function ($, anim) {\n 'use strict';\n\n var _defaults = {\n accordion: true,\n onOpenStart: undefined,\n onOpenEnd: undefined,\n onCloseStart: undefined,\n onCloseEnd: undefined,\n inDuration: 300,\n outDuration: 300\n };\n\n /**\n * @class\n *\n */\n\n var Collapsible = function (_Component) {\n _inherits(Collapsible, _Component);\n\n /**\n * Construct Collapsible instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function Collapsible(el, options) {\n _classCallCheck(this, Collapsible);\n\n var _this3 = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, Collapsible, el, options));\n\n _this3.el.M_Collapsible = _this3;\n\n /**\n * Options for the collapsible\n * @member Collapsible#options\n * @prop {Boolean} [accordion=false] - Type of the collapsible\n * @prop {Function} onOpenStart - Callback function called before collapsible is opened\n * @prop {Function} onOpenEnd - Callback function called after collapsible is opened\n * @prop {Function} onCloseStart - Callback function called before collapsible is closed\n * @prop {Function} onCloseEnd - Callback function called after collapsible is closed\n * @prop {Number} inDuration - Transition in duration in milliseconds.\n * @prop {Number} outDuration - Transition duration in milliseconds.\n */\n _this3.options = $.extend({}, Collapsible.defaults, options);\n\n // Setup tab indices\n _this3.$headers = _this3.$el.children('li').children('.collapsible-header');\n _this3.$headers.attr('tabindex', 0);\n\n _this3._setupEventHandlers();\n\n // Open first active\n var $activeBodies = _this3.$el.children('li.active').children('.collapsible-body');\n if (_this3.options.accordion) {\n // Handle Accordion\n $activeBodies.first().css('display', 'block');\n } else {\n // Handle Expandables\n $activeBodies.css('display', 'block');\n }\n return _this3;\n }\n\n _createClass(Collapsible, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this.el.M_Collapsible = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n var _this4 = this;\n\n this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this);\n this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this);\n this.el.addEventListener('click', this._handleCollapsibleClickBound);\n this.$headers.each(function (header) {\n header.addEventListener('keydown', _this4._handleCollapsibleKeydownBound);\n });\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n var _this5 = this;\n\n this.el.removeEventListener('click', this._handleCollapsibleClickBound);\n this.$headers.each(function (header) {\n header.removeEventListener('keydown', _this5._handleCollapsibleKeydownBound);\n });\n }\n\n /**\n * Handle Collapsible Click\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCollapsibleClick\",\n value: function _handleCollapsibleClick(e) {\n var $header = $(e.target).closest('.collapsible-header');\n if (e.target && $header.length) {\n var $collapsible = $header.closest('.collapsible');\n if ($collapsible[0] === this.el) {\n var $collapsibleLi = $header.closest('li');\n var $collapsibleLis = $collapsible.children('li');\n var isActive = $collapsibleLi[0].classList.contains('active');\n var index = $collapsibleLis.index($collapsibleLi);\n\n if (isActive) {\n this.close(index);\n } else {\n this.open(index);\n }\n }\n }\n }\n\n /**\n * Handle Collapsible Keydown\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCollapsibleKeydown\",\n value: function _handleCollapsibleKeydown(e) {\n if (e.keyCode === 13) {\n this._handleCollapsibleClickBound(e);\n }\n }\n\n /**\n * Animate in collapsible slide\n * @param {Number} index - 0th index of slide\n */\n\n }, {\n key: \"_animateIn\",\n value: function _animateIn(index) {\n var _this6 = this;\n\n var $collapsibleLi = this.$el.children('li').eq(index);\n if ($collapsibleLi.length) {\n var $body = $collapsibleLi.children('.collapsible-body');\n\n anim.remove($body[0]);\n $body.css({\n display: 'block',\n overflow: 'hidden',\n height: 0,\n paddingTop: '',\n paddingBottom: ''\n });\n\n var pTop = $body.css('padding-top');\n var pBottom = $body.css('padding-bottom');\n var finalHeight = $body[0].scrollHeight;\n $body.css({\n paddingTop: 0,\n paddingBottom: 0\n });\n\n anim({\n targets: $body[0],\n height: finalHeight,\n paddingTop: pTop,\n paddingBottom: pBottom,\n duration: this.options.inDuration,\n easing: 'easeInOutCubic',\n complete: function (anim) {\n $body.css({\n overflow: '',\n paddingTop: '',\n paddingBottom: '',\n height: ''\n });\n\n // onOpenEnd callback\n if (typeof _this6.options.onOpenEnd === 'function') {\n _this6.options.onOpenEnd.call(_this6, $collapsibleLi[0]);\n }\n }\n });\n }\n }\n\n /**\n * Animate out collapsible slide\n * @param {Number} index - 0th index of slide to open\n */\n\n }, {\n key: \"_animateOut\",\n value: function _animateOut(index) {\n var _this7 = this;\n\n var $collapsibleLi = this.$el.children('li').eq(index);\n if ($collapsibleLi.length) {\n var $body = $collapsibleLi.children('.collapsible-body');\n anim.remove($body[0]);\n $body.css('overflow', 'hidden');\n anim({\n targets: $body[0],\n height: 0,\n paddingTop: 0,\n paddingBottom: 0,\n duration: this.options.outDuration,\n easing: 'easeInOutCubic',\n complete: function () {\n $body.css({\n height: '',\n overflow: '',\n padding: '',\n display: ''\n });\n\n // onCloseEnd callback\n if (typeof _this7.options.onCloseEnd === 'function') {\n _this7.options.onCloseEnd.call(_this7, $collapsibleLi[0]);\n }\n }\n });\n }\n }\n\n /**\n * Open Collapsible\n * @param {Number} index - 0th index of slide\n */\n\n }, {\n key: \"open\",\n value: function open(index) {\n var _this8 = this;\n\n var $collapsibleLi = this.$el.children('li').eq(index);\n if ($collapsibleLi.length && !$collapsibleLi[0].classList.contains('active')) {\n // onOpenStart callback\n if (typeof this.options.onOpenStart === 'function') {\n this.options.onOpenStart.call(this, $collapsibleLi[0]);\n }\n\n // Handle accordion behavior\n if (this.options.accordion) {\n var $collapsibleLis = this.$el.children('li');\n var $activeLis = this.$el.children('li.active');\n $activeLis.each(function (el) {\n var index = $collapsibleLis.index($(el));\n _this8.close(index);\n });\n }\n\n // Animate in\n $collapsibleLi[0].classList.add('active');\n this._animateIn(index);\n }\n }\n\n /**\n * Close Collapsible\n * @param {Number} index - 0th index of slide\n */\n\n }, {\n key: \"close\",\n value: function close(index) {\n var $collapsibleLi = this.$el.children('li').eq(index);\n if ($collapsibleLi.length && $collapsibleLi[0].classList.contains('active')) {\n // onCloseStart callback\n if (typeof this.options.onCloseStart === 'function') {\n this.options.onCloseStart.call(this, $collapsibleLi[0]);\n }\n\n // Animate out\n $collapsibleLi[0].classList.remove('active');\n this._animateOut(index);\n }\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(Collapsible.__proto__ || Object.getPrototypeOf(Collapsible), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_Collapsible;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return Collapsible;\n }(Component);\n\n M.Collapsible = Collapsible;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(Collapsible, 'collapsible', 'M_Collapsible');\n }\n})(cash, M.anime);\n;(function ($, anim) {\n 'use strict';\n\n var _defaults = {\n alignment: 'left',\n autoFocus: true,\n constrainWidth: true,\n container: null,\n coverTrigger: true,\n closeOnClick: true,\n hover: false,\n inDuration: 150,\n outDuration: 250,\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n onItemClick: null\n };\n\n /**\n * @class\n */\n\n var Dropdown = function (_Component2) {\n _inherits(Dropdown, _Component2);\n\n function Dropdown(el, options) {\n _classCallCheck(this, Dropdown);\n\n var _this9 = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, Dropdown, el, options));\n\n _this9.el.M_Dropdown = _this9;\n Dropdown._dropdowns.push(_this9);\n\n _this9.id = M.getIdFromTrigger(el);\n _this9.dropdownEl = document.getElementById(_this9.id);\n _this9.$dropdownEl = $(_this9.dropdownEl);\n\n /**\n * Options for the dropdown\n * @member Dropdown#options\n * @prop {String} [alignment='left'] - Edge which the dropdown is aligned to\n * @prop {Boolean} [autoFocus=true] - Automatically focus dropdown el for keyboard\n * @prop {Boolean} [constrainWidth=true] - Constrain width to width of the button\n * @prop {Element} container - Container element to attach dropdown to (optional)\n * @prop {Boolean} [coverTrigger=true] - Place dropdown over trigger\n * @prop {Boolean} [closeOnClick=true] - Close on click of dropdown item\n * @prop {Boolean} [hover=false] - Open dropdown on hover\n * @prop {Number} [inDuration=150] - Duration of open animation in ms\n * @prop {Number} [outDuration=250] - Duration of close animation in ms\n * @prop {Function} onOpenStart - Function called when dropdown starts opening\n * @prop {Function} onOpenEnd - Function called when dropdown finishes opening\n * @prop {Function} onCloseStart - Function called when dropdown starts closing\n * @prop {Function} onCloseEnd - Function called when dropdown finishes closing\n */\n _this9.options = $.extend({}, Dropdown.defaults, options);\n\n /**\n * Describes open/close state of dropdown\n * @type {Boolean}\n */\n _this9.isOpen = false;\n\n /**\n * Describes if dropdown content is scrollable\n * @type {Boolean}\n */\n _this9.isScrollable = false;\n\n /**\n * Describes if touch moving on dropdown content\n * @type {Boolean}\n */\n _this9.isTouchMoving = false;\n\n _this9.focusedIndex = -1;\n _this9.filterQuery = [];\n\n // Move dropdown-content after dropdown-trigger\n if (!!_this9.options.container) {\n $(_this9.options.container).append(_this9.dropdownEl);\n } else {\n _this9.$el.after(_this9.dropdownEl);\n }\n\n _this9._makeDropdownFocusable();\n _this9._resetFilterQueryBound = _this9._resetFilterQuery.bind(_this9);\n _this9._handleDocumentClickBound = _this9._handleDocumentClick.bind(_this9);\n _this9._handleDocumentTouchmoveBound = _this9._handleDocumentTouchmove.bind(_this9);\n _this9._handleDropdownClickBound = _this9._handleDropdownClick.bind(_this9);\n _this9._handleDropdownKeydownBound = _this9._handleDropdownKeydown.bind(_this9);\n _this9._handleTriggerKeydownBound = _this9._handleTriggerKeydown.bind(_this9);\n _this9._setupEventHandlers();\n return _this9;\n }\n\n _createClass(Dropdown, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._resetDropdownStyles();\n this._removeEventHandlers();\n Dropdown._dropdowns.splice(Dropdown._dropdowns.indexOf(this), 1);\n this.el.M_Dropdown = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n // Trigger keydown handler\n this.el.addEventListener('keydown', this._handleTriggerKeydownBound);\n\n // Item click handler\n this.dropdownEl.addEventListener('click', this._handleDropdownClickBound);\n\n // Hover event handlers\n if (this.options.hover) {\n this._handleMouseEnterBound = this._handleMouseEnter.bind(this);\n this.el.addEventListener('mouseenter', this._handleMouseEnterBound);\n this._handleMouseLeaveBound = this._handleMouseLeave.bind(this);\n this.el.addEventListener('mouseleave', this._handleMouseLeaveBound);\n this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeaveBound);\n\n // Click event handlers\n } else {\n this._handleClickBound = this._handleClick.bind(this);\n this.el.addEventListener('click', this._handleClickBound);\n }\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('keydown', this._handleTriggerKeydownBound);\n this.dropdownEl.removeEventListener('click', this._handleDropdownClickBound);\n\n if (this.options.hover) {\n this.el.removeEventListener('mouseenter', this._handleMouseEnterBound);\n this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound);\n this.dropdownEl.removeEventListener('mouseleave', this._handleMouseLeaveBound);\n } else {\n this.el.removeEventListener('click', this._handleClickBound);\n }\n }\n }, {\n key: \"_setupTemporaryEventHandlers\",\n value: function _setupTemporaryEventHandlers() {\n // Use capture phase event handler to prevent click\n document.body.addEventListener('click', this._handleDocumentClickBound, true);\n document.body.addEventListener('touchend', this._handleDocumentClickBound);\n document.body.addEventListener('touchmove', this._handleDocumentTouchmoveBound);\n this.dropdownEl.addEventListener('keydown', this._handleDropdownKeydownBound);\n }\n }, {\n key: \"_removeTemporaryEventHandlers\",\n value: function _removeTemporaryEventHandlers() {\n // Use capture phase event handler to prevent click\n document.body.removeEventListener('click', this._handleDocumentClickBound, true);\n document.body.removeEventListener('touchend', this._handleDocumentClickBound);\n document.body.removeEventListener('touchmove', this._handleDocumentTouchmoveBound);\n this.dropdownEl.removeEventListener('keydown', this._handleDropdownKeydownBound);\n }\n }, {\n key: \"_handleClick\",\n value: function _handleClick(e) {\n e.preventDefault();\n this.open();\n }\n }, {\n key: \"_handleMouseEnter\",\n value: function _handleMouseEnter() {\n this.open();\n }\n }, {\n key: \"_handleMouseLeave\",\n value: function _handleMouseLeave(e) {\n var toEl = e.toElement || e.relatedTarget;\n var leaveToDropdownContent = !!$(toEl).closest('.dropdown-content').length;\n var leaveToActiveDropdownTrigger = false;\n\n var $closestTrigger = $(toEl).closest('.dropdown-trigger');\n if ($closestTrigger.length && !!$closestTrigger[0].M_Dropdown && $closestTrigger[0].M_Dropdown.isOpen) {\n leaveToActiveDropdownTrigger = true;\n }\n\n // Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content\n if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) {\n this.close();\n }\n }\n }, {\n key: \"_handleDocumentClick\",\n value: function _handleDocumentClick(e) {\n var _this10 = this;\n\n var $target = $(e.target);\n if (this.options.closeOnClick && $target.closest('.dropdown-content').length && !this.isTouchMoving) {\n // isTouchMoving to check if scrolling on mobile.\n setTimeout(function () {\n _this10.close();\n }, 0);\n } else if ($target.closest('.dropdown-trigger').length || !$target.closest('.dropdown-content').length) {\n setTimeout(function () {\n _this10.close();\n }, 0);\n }\n this.isTouchMoving = false;\n }\n }, {\n key: \"_handleTriggerKeydown\",\n value: function _handleTriggerKeydown(e) {\n // ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown\n if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ENTER) && !this.isOpen) {\n e.preventDefault();\n this.open();\n }\n }\n\n /**\n * Handle Document Touchmove\n * @param {Event} e\n */\n\n }, {\n key: \"_handleDocumentTouchmove\",\n value: function _handleDocumentTouchmove(e) {\n var $target = $(e.target);\n if ($target.closest('.dropdown-content').length) {\n this.isTouchMoving = true;\n }\n }\n\n /**\n * Handle Dropdown Click\n * @param {Event} e\n */\n\n }, {\n key: \"_handleDropdownClick\",\n value: function _handleDropdownClick(e) {\n // onItemClick callback\n if (typeof this.options.onItemClick === 'function') {\n var itemEl = $(e.target).closest('li')[0];\n this.options.onItemClick.call(this, itemEl);\n }\n }\n\n /**\n * Handle Dropdown Keydown\n * @param {Event} e\n */\n\n }, {\n key: \"_handleDropdownKeydown\",\n value: function _handleDropdownKeydown(e) {\n if (e.which === M.keys.TAB) {\n e.preventDefault();\n this.close();\n\n // Navigate down dropdown list\n } else if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) && this.isOpen) {\n e.preventDefault();\n var direction = e.which === M.keys.ARROW_DOWN ? 1 : -1;\n var newFocusedIndex = this.focusedIndex;\n var foundNewIndex = false;\n do {\n newFocusedIndex = newFocusedIndex + direction;\n\n if (!!this.dropdownEl.children[newFocusedIndex] && this.dropdownEl.children[newFocusedIndex].tabIndex !== -1) {\n foundNewIndex = true;\n break;\n }\n } while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0);\n\n if (foundNewIndex) {\n this.focusedIndex = newFocusedIndex;\n this._focusFocusedItem();\n }\n\n // ENTER selects choice on focused item\n } else if (e.which === M.keys.ENTER && this.isOpen) {\n // Search for and \") + '';\n }\n }, {\n key: \"renderRow\",\n value: function renderRow(days, isRTL, isRowSelected) {\n return '' + (isRTL ? days.reverse() : days).join('') + '';\n }\n }, {\n key: \"renderTable\",\n value: function renderTable(opts, data, randId) {\n return '
    ' + this.renderHead(opts) + this.renderBody(data) + '
    ';\n }\n }, {\n key: \"renderHead\",\n value: function renderHead(opts) {\n var i = void 0,\n arr = [];\n for (i = 0; i < 7; i++) {\n arr.push(\"\" + this.renderDayName(opts, i, true) + \"\");\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\n }\n }, {\n key: \"renderBody\",\n value: function renderBody(rows) {\n return '' + rows.join('') + '';\n }\n }, {\n key: \"renderTitle\",\n value: function renderTitle(instance, c, year, month, refYear, randId) {\n var i = void 0,\n j = void 0,\n arr = void 0,\n opts = this.options,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '
    ',\n monthHtml = void 0,\n yearHtml = void 0,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('');\n }\n\n monthHtml = '';\n\n if ($.isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push(\"\");\n }\n }\n\n yearHtml = \"\";\n\n var leftArrow = '';\n html += \"\";\n\n html += '
    ';\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n html += '
    ';\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n var rightArrow = '';\n html += \"\";\n\n return html += '
    ';\n }\n\n /**\n * refresh the HTML\n */\n\n }, {\n key: \"draw\",\n value: function draw(force) {\n if (!this.isOpen && !force) {\n return;\n }\n var opts = this.options,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId = void 0;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n randId = 'datepicker-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n\n for (var c = 0; c < 1; c++) {\n this._renderDateDisplay();\n html += this.renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId);\n }\n\n this.destroySelects();\n\n this.calendarEl.innerHTML = html;\n\n // Init Materialize Select\n var yearSelect = this.calendarEl.querySelector('.orig-select-year');\n var monthSelect = this.calendarEl.querySelector('.orig-select-month');\n M.FormSelect.init(yearSelect, {\n classes: 'select-year',\n dropdownOptions: { container: document.body, constrainWidth: false }\n });\n M.FormSelect.init(monthSelect, {\n classes: 'select-month',\n dropdownOptions: { container: document.body, constrainWidth: false }\n });\n\n // Add change handlers for select\n yearSelect.addEventListener('change', this._handleYearChange.bind(this));\n monthSelect.addEventListener('change', this._handleMonthChange.bind(this));\n\n if (typeof this.options.onDraw === 'function') {\n this.options.onDraw(this);\n }\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n this._handleInputKeydownBound = this._handleInputKeydown.bind(this);\n this._handleInputClickBound = this._handleInputClick.bind(this);\n this._handleInputChangeBound = this._handleInputChange.bind(this);\n this._handleCalendarClickBound = this._handleCalendarClick.bind(this);\n this._finishSelectionBound = this._finishSelection.bind(this);\n this._handleMonthChange = this._handleMonthChange.bind(this);\n this._closeBound = this.close.bind(this);\n\n this.el.addEventListener('click', this._handleInputClickBound);\n this.el.addEventListener('keydown', this._handleInputKeydownBound);\n this.el.addEventListener('change', this._handleInputChangeBound);\n this.calendarEl.addEventListener('click', this._handleCalendarClickBound);\n this.doneBtn.addEventListener('click', this._finishSelectionBound);\n this.cancelBtn.addEventListener('click', this._closeBound);\n\n if (this.options.showClearBtn) {\n this._handleClearClickBound = this._handleClearClick.bind(this);\n this.clearBtn.addEventListener('click', this._handleClearClickBound);\n }\n }\n }, {\n key: \"_setupVariables\",\n value: function _setupVariables() {\n var _this56 = this;\n\n this.$modalEl = $(Datepicker._template);\n this.modalEl = this.$modalEl[0];\n\n this.calendarEl = this.modalEl.querySelector('.datepicker-calendar');\n\n this.yearTextEl = this.modalEl.querySelector('.year-text');\n this.dateTextEl = this.modalEl.querySelector('.date-text');\n if (this.options.showClearBtn) {\n this.clearBtn = this.modalEl.querySelector('.datepicker-clear');\n }\n this.doneBtn = this.modalEl.querySelector('.datepicker-done');\n this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel');\n\n this.formats = {\n d: function () {\n return _this56.date.getDate();\n },\n dd: function () {\n var d = _this56.date.getDate();\n return (d < 10 ? '0' : '') + d;\n },\n ddd: function () {\n return _this56.options.i18n.weekdaysShort[_this56.date.getDay()];\n },\n dddd: function () {\n return _this56.options.i18n.weekdays[_this56.date.getDay()];\n },\n m: function () {\n return _this56.date.getMonth() + 1;\n },\n mm: function () {\n var m = _this56.date.getMonth() + 1;\n return (m < 10 ? '0' : '') + m;\n },\n mmm: function () {\n return _this56.options.i18n.monthsShort[_this56.date.getMonth()];\n },\n mmmm: function () {\n return _this56.options.i18n.months[_this56.date.getMonth()];\n },\n yy: function () {\n return ('' + _this56.date.getFullYear()).slice(2);\n },\n yyyy: function () {\n return _this56.date.getFullYear();\n }\n };\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleInputClickBound);\n this.el.removeEventListener('keydown', this._handleInputKeydownBound);\n this.el.removeEventListener('change', this._handleInputChangeBound);\n this.calendarEl.removeEventListener('click', this._handleCalendarClickBound);\n }\n }, {\n key: \"_handleInputClick\",\n value: function _handleInputClick() {\n this.open();\n }\n }, {\n key: \"_handleInputKeydown\",\n value: function _handleInputKeydown(e) {\n if (e.which === M.keys.ENTER) {\n e.preventDefault();\n this.open();\n }\n }\n }, {\n key: \"_handleCalendarClick\",\n value: function _handleCalendarClick(e) {\n if (!this.isOpen) {\n return;\n }\n\n var $target = $(e.target);\n if (!$target.hasClass('is-disabled')) {\n if ($target.hasClass('datepicker-day-button') && !$target.hasClass('is-empty') && !$target.parent().hasClass('is-disabled')) {\n this.setDate(new Date(e.target.getAttribute('data-year'), e.target.getAttribute('data-month'), e.target.getAttribute('data-day')));\n if (this.options.autoClose) {\n this._finishSelection();\n }\n } else if ($target.closest('.month-prev').length) {\n this.prevMonth();\n } else if ($target.closest('.month-next').length) {\n this.nextMonth();\n }\n }\n }\n }, {\n key: \"_handleClearClick\",\n value: function _handleClearClick() {\n this.date = null;\n this.setInputValue();\n this.close();\n }\n }, {\n key: \"_handleMonthChange\",\n value: function _handleMonthChange(e) {\n this.gotoMonth(e.target.value);\n }\n }, {\n key: \"_handleYearChange\",\n value: function _handleYearChange(e) {\n this.gotoYear(e.target.value);\n }\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n\n }, {\n key: \"gotoMonth\",\n value: function gotoMonth(month) {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n }\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n\n }, {\n key: \"gotoYear\",\n value: function gotoYear(year) {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n }\n }, {\n key: \"_handleInputChange\",\n value: function _handleInputChange(e) {\n var date = void 0;\n\n // Prevent change event from being fired when triggered by the plugin\n if (e.firedBy === this) {\n return;\n }\n if (this.options.parse) {\n date = this.options.parse(this.el.value, this.options.format);\n } else {\n date = new Date(Date.parse(this.el.value));\n }\n\n if (Datepicker._isDate(date)) {\n this.setDate(date);\n }\n }\n }, {\n key: \"renderDayName\",\n value: function renderDayName(opts, day, abbr) {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day];\n }\n\n /**\n * Set input value to the selected date and close Datepicker\n */\n\n }, {\n key: \"_finishSelection\",\n value: function _finishSelection() {\n this.setInputValue();\n this.close();\n }\n\n /**\n * Open Datepicker\n */\n\n }, {\n key: \"open\",\n value: function open() {\n if (this.isOpen) {\n return;\n }\n\n this.isOpen = true;\n if (typeof this.options.onOpen === 'function') {\n this.options.onOpen.call(this);\n }\n this.draw();\n this.modal.open();\n return this;\n }\n\n /**\n * Close Datepicker\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isOpen) {\n return;\n }\n\n this.isOpen = false;\n if (typeof this.options.onClose === 'function') {\n this.options.onClose.call(this);\n }\n this.modal.close();\n return this;\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(Datepicker.__proto__ || Object.getPrototypeOf(Datepicker), \"init\", this).call(this, this, els, options);\n }\n }, {\n key: \"_isDate\",\n value: function _isDate(obj) {\n return (/Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime())\n );\n }\n }, {\n key: \"_isWeekend\",\n value: function _isWeekend(date) {\n var day = date.getDay();\n return day === 0 || day === 6;\n }\n }, {\n key: \"_setToStartOfDay\",\n value: function _setToStartOfDay(date) {\n if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);\n }\n }, {\n key: \"_getDaysInMonth\",\n value: function _getDaysInMonth(year, month) {\n return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n }\n }, {\n key: \"_isLeapYear\",\n value: function _isLeapYear(year) {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n }, {\n key: \"_compareDates\",\n value: function _compareDates(a, b) {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n }\n }, {\n key: \"_setToStartOfDay\",\n value: function _setToStartOfDay(date) {\n if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_Datepicker;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return Datepicker;\n }(Component);\n\n Datepicker._template = ['
    ', '
    ', '
    ', '', '', '
    ', '
    ', '
    ', '
    ', '', '
    ', '', '', '
    ', '
    ', '
    ', '
    ', '
    '].join('');\n\n M.Datepicker = Datepicker;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker');\n }\n})(cash);\n;(function ($) {\n 'use strict';\n\n var _defaults = {\n dialRadius: 135,\n outerRadius: 105,\n innerRadius: 70,\n tickRadius: 20,\n duration: 350,\n container: null,\n defaultTime: 'now', // default time, 'now' or '13:14' e.g.\n fromNow: 0, // Millisecond offset from the defaultTime\n showClearBtn: false,\n\n // internationalization\n i18n: {\n cancel: 'Cancel',\n clear: 'Clear',\n done: 'Ok'\n },\n\n autoClose: false, // auto close when minute is selected\n twelveHour: true, // change to 12 hour AM/PM clock from 24 hour\n vibrate: true, // vibrate the device when dragging clock hand\n\n // Callbacks\n onOpenStart: null,\n onOpenEnd: null,\n onCloseStart: null,\n onCloseEnd: null,\n onSelect: null\n };\n\n /**\n * @class\n *\n */\n\n var Timepicker = function (_Component16) {\n _inherits(Timepicker, _Component16);\n\n function Timepicker(el, options) {\n _classCallCheck(this, Timepicker);\n\n var _this57 = _possibleConstructorReturn(this, (Timepicker.__proto__ || Object.getPrototypeOf(Timepicker)).call(this, Timepicker, el, options));\n\n _this57.el.M_Timepicker = _this57;\n\n _this57.options = $.extend({}, Timepicker.defaults, options);\n\n _this57.id = M.guid();\n _this57._insertHTMLIntoDOM();\n _this57._setupModal();\n _this57._setupVariables();\n _this57._setupEventHandlers();\n\n _this57._clockSetup();\n _this57._pickerSetup();\n return _this57;\n }\n\n _createClass(Timepicker, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this.modal.destroy();\n $(this.modalEl).remove();\n this.el.M_Timepicker = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n this._handleInputKeydownBound = this._handleInputKeydown.bind(this);\n this._handleInputClickBound = this._handleInputClick.bind(this);\n this._handleClockClickStartBound = this._handleClockClickStart.bind(this);\n this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this);\n this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this);\n\n this.el.addEventListener('click', this._handleInputClickBound);\n this.el.addEventListener('keydown', this._handleInputKeydownBound);\n this.plate.addEventListener('mousedown', this._handleClockClickStartBound);\n this.plate.addEventListener('touchstart', this._handleClockClickStartBound);\n\n $(this.spanHours).on('click', this.showView.bind(this, 'hours'));\n $(this.spanMinutes).on('click', this.showView.bind(this, 'minutes'));\n }\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleInputClickBound);\n this.el.removeEventListener('keydown', this._handleInputKeydownBound);\n }\n }, {\n key: \"_handleInputClick\",\n value: function _handleInputClick() {\n this.open();\n }\n }, {\n key: \"_handleInputKeydown\",\n value: function _handleInputKeydown(e) {\n if (e.which === M.keys.ENTER) {\n e.preventDefault();\n this.open();\n }\n }\n }, {\n key: \"_handleClockClickStart\",\n value: function _handleClockClickStart(e) {\n e.preventDefault();\n var clockPlateBR = this.plate.getBoundingClientRect();\n var offset = { x: clockPlateBR.left, y: clockPlateBR.top };\n\n this.x0 = offset.x + this.options.dialRadius;\n this.y0 = offset.y + this.options.dialRadius;\n this.moved = false;\n var clickPos = Timepicker._Pos(e);\n this.dx = clickPos.x - this.x0;\n this.dy = clickPos.y - this.y0;\n\n // Set clock hands\n this.setHand(this.dx, this.dy, false);\n\n // Mousemove on document\n document.addEventListener('mousemove', this._handleDocumentClickMoveBound);\n document.addEventListener('touchmove', this._handleDocumentClickMoveBound);\n\n // Mouseup on document\n document.addEventListener('mouseup', this._handleDocumentClickEndBound);\n document.addEventListener('touchend', this._handleDocumentClickEndBound);\n }\n }, {\n key: \"_handleDocumentClickMove\",\n value: function _handleDocumentClickMove(e) {\n e.preventDefault();\n var clickPos = Timepicker._Pos(e);\n var x = clickPos.x - this.x0;\n var y = clickPos.y - this.y0;\n this.moved = true;\n this.setHand(x, y, false, true);\n }\n }, {\n key: \"_handleDocumentClickEnd\",\n value: function _handleDocumentClickEnd(e) {\n var _this58 = this;\n\n e.preventDefault();\n document.removeEventListener('mouseup', this._handleDocumentClickEndBound);\n document.removeEventListener('touchend', this._handleDocumentClickEndBound);\n var clickPos = Timepicker._Pos(e);\n var x = clickPos.x - this.x0;\n var y = clickPos.y - this.y0;\n if (this.moved && x === this.dx && y === this.dy) {\n this.setHand(x, y);\n }\n\n if (this.currentView === 'hours') {\n this.showView('minutes', this.options.duration / 2);\n } else if (this.options.autoClose) {\n $(this.minutesView).addClass('timepicker-dial-out');\n setTimeout(function () {\n _this58.done();\n }, this.options.duration / 2);\n }\n\n if (typeof this.options.onSelect === 'function') {\n this.options.onSelect.call(this, this.hours, this.minutes);\n }\n\n // Unbind mousemove event\n document.removeEventListener('mousemove', this._handleDocumentClickMoveBound);\n document.removeEventListener('touchmove', this._handleDocumentClickMoveBound);\n }\n }, {\n key: \"_insertHTMLIntoDOM\",\n value: function _insertHTMLIntoDOM() {\n this.$modalEl = $(Timepicker._template);\n this.modalEl = this.$modalEl[0];\n this.modalEl.id = 'modal-' + this.id;\n\n // Append popover to input by default\n var containerEl = document.querySelector(this.options.container);\n if (this.options.container && !!containerEl) {\n this.$modalEl.appendTo(containerEl);\n } else {\n this.$modalEl.insertBefore(this.el);\n }\n }\n }, {\n key: \"_setupModal\",\n value: function _setupModal() {\n var _this59 = this;\n\n this.modal = M.Modal.init(this.modalEl, {\n onOpenStart: this.options.onOpenStart,\n onOpenEnd: this.options.onOpenEnd,\n onCloseStart: this.options.onCloseStart,\n onCloseEnd: function () {\n if (typeof _this59.options.onCloseEnd === 'function') {\n _this59.options.onCloseEnd.call(_this59);\n }\n _this59.isOpen = false;\n }\n });\n }\n }, {\n key: \"_setupVariables\",\n value: function _setupVariables() {\n this.currentView = 'hours';\n this.vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null;\n\n this._canvas = this.modalEl.querySelector('.timepicker-canvas');\n this.plate = this.modalEl.querySelector('.timepicker-plate');\n\n this.hoursView = this.modalEl.querySelector('.timepicker-hours');\n this.minutesView = this.modalEl.querySelector('.timepicker-minutes');\n this.spanHours = this.modalEl.querySelector('.timepicker-span-hours');\n this.spanMinutes = this.modalEl.querySelector('.timepicker-span-minutes');\n this.spanAmPm = this.modalEl.querySelector('.timepicker-span-am-pm');\n this.footer = this.modalEl.querySelector('.timepicker-footer');\n this.amOrPm = 'PM';\n }\n }, {\n key: \"_pickerSetup\",\n value: function _pickerSetup() {\n var $clearBtn = $(\"\").appendTo(this.footer).on('click', this.clear.bind(this));\n if (this.options.showClearBtn) {\n $clearBtn.css({ visibility: '' });\n }\n\n var confirmationBtnsContainer = $('
    ');\n $('').appendTo(confirmationBtnsContainer).on('click', this.close.bind(this));\n $('').appendTo(confirmationBtnsContainer).on('click', this.done.bind(this));\n confirmationBtnsContainer.appendTo(this.footer);\n }\n }, {\n key: \"_clockSetup\",\n value: function _clockSetup() {\n if (this.options.twelveHour) {\n this.$amBtn = $('
    AM
    ');\n this.$pmBtn = $('
    PM
    ');\n this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);\n this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);\n }\n\n this._buildHoursView();\n this._buildMinutesView();\n this._buildSVGClock();\n }\n }, {\n key: \"_buildSVGClock\",\n value: function _buildSVGClock() {\n // Draw clock hands and others\n var dialRadius = this.options.dialRadius;\n var tickRadius = this.options.tickRadius;\n var diameter = dialRadius * 2;\n\n var svg = Timepicker._createSVGEl('svg');\n svg.setAttribute('class', 'timepicker-svg');\n svg.setAttribute('width', diameter);\n svg.setAttribute('height', diameter);\n var g = Timepicker._createSVGEl('g');\n g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')');\n var bearing = Timepicker._createSVGEl('circle');\n bearing.setAttribute('class', 'timepicker-canvas-bearing');\n bearing.setAttribute('cx', 0);\n bearing.setAttribute('cy', 0);\n bearing.setAttribute('r', 4);\n var hand = Timepicker._createSVGEl('line');\n hand.setAttribute('x1', 0);\n hand.setAttribute('y1', 0);\n var bg = Timepicker._createSVGEl('circle');\n bg.setAttribute('class', 'timepicker-canvas-bg');\n bg.setAttribute('r', tickRadius);\n g.appendChild(hand);\n g.appendChild(bg);\n g.appendChild(bearing);\n svg.appendChild(g);\n this._canvas.appendChild(svg);\n\n this.hand = hand;\n this.bg = bg;\n this.bearing = bearing;\n this.g = g;\n }\n }, {\n key: \"_buildHoursView\",\n value: function _buildHoursView() {\n var $tick = $('
    ');\n // Hours view\n if (this.options.twelveHour) {\n for (var i = 1; i < 13; i += 1) {\n var tick = $tick.clone();\n var radian = i / 6 * Math.PI;\n var radius = this.options.outerRadius;\n tick.css({\n left: this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px',\n top: this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px'\n });\n tick.html(i === 0 ? '00' : i);\n this.hoursView.appendChild(tick[0]);\n // tick.on(mousedownEvent, mousedown);\n }\n } else {\n for (var _i2 = 0; _i2 < 24; _i2 += 1) {\n var _tick = $tick.clone();\n var _radian = _i2 / 6 * Math.PI;\n var inner = _i2 > 0 && _i2 < 13;\n var _radius = inner ? this.options.innerRadius : this.options.outerRadius;\n _tick.css({\n left: this.options.dialRadius + Math.sin(_radian) * _radius - this.options.tickRadius + 'px',\n top: this.options.dialRadius - Math.cos(_radian) * _radius - this.options.tickRadius + 'px'\n });\n _tick.html(_i2 === 0 ? '00' : _i2);\n this.hoursView.appendChild(_tick[0]);\n // tick.on(mousedownEvent, mousedown);\n }\n }\n }\n }, {\n key: \"_buildMinutesView\",\n value: function _buildMinutesView() {\n var $tick = $('
    ');\n // Minutes view\n for (var i = 0; i < 60; i += 5) {\n var tick = $tick.clone();\n var radian = i / 30 * Math.PI;\n tick.css({\n left: this.options.dialRadius + Math.sin(radian) * this.options.outerRadius - this.options.tickRadius + 'px',\n top: this.options.dialRadius - Math.cos(radian) * this.options.outerRadius - this.options.tickRadius + 'px'\n });\n tick.html(Timepicker._addLeadingZero(i));\n this.minutesView.appendChild(tick[0]);\n }\n }\n }, {\n key: \"_handleAmPmClick\",\n value: function _handleAmPmClick(e) {\n var $btnClicked = $(e.target);\n this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM';\n this._updateAmPmView();\n }\n }, {\n key: \"_updateAmPmView\",\n value: function _updateAmPmView() {\n if (this.options.twelveHour) {\n this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM');\n this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM');\n }\n }\n }, {\n key: \"_updateTimeFromInput\",\n value: function _updateTimeFromInput() {\n // Get the time\n var value = ((this.el.value || this.options.defaultTime || '') + '').split(':');\n if (this.options.twelveHour && !(typeof value[1] === 'undefined')) {\n if (value[1].toUpperCase().indexOf('AM') > 0) {\n this.amOrPm = 'AM';\n } else {\n this.amOrPm = 'PM';\n }\n value[1] = value[1].replace('AM', '').replace('PM', '');\n }\n if (value[0] === 'now') {\n var now = new Date(+new Date() + this.options.fromNow);\n value = [now.getHours(), now.getMinutes()];\n if (this.options.twelveHour) {\n this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM';\n }\n }\n this.hours = +value[0] || 0;\n this.minutes = +value[1] || 0;\n this.spanHours.innerHTML = this.hours;\n this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes);\n\n this._updateAmPmView();\n }\n }, {\n key: \"showView\",\n value: function showView(view, delay) {\n if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') {\n // raiseCallback(this.options.beforeHourSelect);\n }\n var isHours = view === 'hours',\n nextView = isHours ? this.hoursView : this.minutesView,\n hideView = isHours ? this.minutesView : this.hoursView;\n this.currentView = view;\n\n $(this.spanHours).toggleClass('text-primary', isHours);\n $(this.spanMinutes).toggleClass('text-primary', !isHours);\n\n // Transition view\n hideView.classList.add('timepicker-dial-out');\n $(nextView).css('visibility', 'visible').removeClass('timepicker-dial-out');\n\n // Reset clock hand\n this.resetClock(delay);\n\n // After transitions ended\n clearTimeout(this.toggleViewTimer);\n this.toggleViewTimer = setTimeout(function () {\n $(hideView).css('visibility', 'hidden');\n }, this.options.duration);\n }\n }, {\n key: \"resetClock\",\n value: function resetClock(delay) {\n var view = this.currentView,\n value = this[view],\n isHours = view === 'hours',\n unit = Math.PI / (isHours ? 6 : 30),\n radian = value * unit,\n radius = isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius,\n x = Math.sin(radian) * radius,\n y = -Math.cos(radian) * radius,\n self = this;\n\n if (delay) {\n $(this.canvas).addClass('timepicker-canvas-out');\n setTimeout(function () {\n $(self.canvas).removeClass('timepicker-canvas-out');\n self.setHand(x, y);\n }, delay);\n } else {\n this.setHand(x, y);\n }\n }\n }, {\n key: \"setHand\",\n value: function setHand(x, y, roundBy5) {\n var _this60 = this;\n\n var radian = Math.atan2(x, -y),\n isHours = this.currentView === 'hours',\n unit = Math.PI / (isHours || roundBy5 ? 6 : 30),\n z = Math.sqrt(x * x + y * y),\n inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2,\n radius = inner ? this.options.innerRadius : this.options.outerRadius;\n\n if (this.options.twelveHour) {\n radius = this.options.outerRadius;\n }\n\n // Radian should in range [0, 2PI]\n if (radian < 0) {\n radian = Math.PI * 2 + radian;\n }\n\n // Get the round value\n var value = Math.round(radian / unit);\n\n // Get the round radian\n radian = value * unit;\n\n // Correct the hours or minutes\n if (this.options.twelveHour) {\n if (isHours) {\n if (value === 0) value = 12;\n } else {\n if (roundBy5) value *= 5;\n if (value === 60) value = 0;\n }\n } else {\n if (isHours) {\n if (value === 12) {\n value = 0;\n }\n value = inner ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12;\n } else {\n if (roundBy5) {\n value *= 5;\n }\n if (value === 60) {\n value = 0;\n }\n }\n }\n\n // Once hours or minutes changed, vibrate the device\n if (this[this.currentView] !== value) {\n if (this.vibrate && this.options.vibrate) {\n // Do not vibrate too frequently\n if (!this.vibrateTimer) {\n navigator[this.vibrate](10);\n this.vibrateTimer = setTimeout(function () {\n _this60.vibrateTimer = null;\n }, 100);\n }\n }\n }\n\n this[this.currentView] = value;\n if (isHours) {\n this['spanHours'].innerHTML = value;\n } else {\n this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value);\n }\n\n // Set clock hand and others' position\n var cx1 = Math.sin(radian) * (radius - this.options.tickRadius),\n cy1 = -Math.cos(radian) * (radius - this.options.tickRadius),\n cx2 = Math.sin(radian) * radius,\n cy2 = -Math.cos(radian) * radius;\n this.hand.setAttribute('x2', cx1);\n this.hand.setAttribute('y2', cy1);\n this.bg.setAttribute('cx', cx2);\n this.bg.setAttribute('cy', cy2);\n }\n }, {\n key: \"open\",\n value: function open() {\n if (this.isOpen) {\n return;\n }\n\n this.isOpen = true;\n this._updateTimeFromInput();\n this.showView('hours');\n\n this.modal.open();\n }\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isOpen) {\n return;\n }\n\n this.isOpen = false;\n this.modal.close();\n }\n\n /**\n * Finish timepicker selection.\n */\n\n }, {\n key: \"done\",\n value: function done(e, clearValue) {\n // Set input value\n var last = this.el.value;\n var value = clearValue ? '' : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes);\n this.time = value;\n if (!clearValue && this.options.twelveHour) {\n value = value + \" \" + this.amOrPm;\n }\n this.el.value = value;\n\n // Trigger change event\n if (value !== last) {\n this.$el.trigger('change');\n }\n\n this.close();\n this.el.focus();\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.done(null, true);\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(Timepicker.__proto__ || Object.getPrototypeOf(Timepicker), \"init\", this).call(this, this, els, options);\n }\n }, {\n key: \"_addLeadingZero\",\n value: function _addLeadingZero(num) {\n return (num < 10 ? '0' : '') + num;\n }\n }, {\n key: \"_createSVGEl\",\n value: function _createSVGEl(name) {\n var svgNS = 'http://www.w3.org/2000/svg';\n return document.createElementNS(svgNS, name);\n }\n\n /**\n * @typedef {Object} Point\n * @property {number} x The X Coordinate\n * @property {number} y The Y Coordinate\n */\n\n /**\n * Get x position of mouse or touch event\n * @param {Event} e\n * @return {Point} x and y location\n */\n\n }, {\n key: \"_Pos\",\n value: function _Pos(e) {\n if (e.targetTouches && e.targetTouches.length >= 1) {\n return { x: e.targetTouches[0].clientX, y: e.targetTouches[0].clientY };\n }\n // mouse event\n return { x: e.clientX, y: e.clientY };\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_Timepicker;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return Timepicker;\n }(Component);\n\n Timepicker._template = ['
    ', '
    ', '
    ', '
    ', '
    ', '', ':', '', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    '].join('');\n\n M.Timepicker = Timepicker;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker');\n }\n})(cash);\n;(function ($) {\n 'use strict';\n\n var _defaults = {};\n\n /**\n * @class\n *\n */\n\n var CharacterCounter = function (_Component17) {\n _inherits(CharacterCounter, _Component17);\n\n /**\n * Construct CharacterCounter instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function CharacterCounter(el, options) {\n _classCallCheck(this, CharacterCounter);\n\n var _this61 = _possibleConstructorReturn(this, (CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter)).call(this, CharacterCounter, el, options));\n\n _this61.el.M_CharacterCounter = _this61;\n\n /**\n * Options for the character counter\n */\n _this61.options = $.extend({}, CharacterCounter.defaults, options);\n\n _this61.isInvalid = false;\n _this61.isValidLength = false;\n _this61._setupCounter();\n _this61._setupEventHandlers();\n return _this61;\n }\n\n _createClass(CharacterCounter, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this.el.CharacterCounter = undefined;\n this._removeCounter();\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n this._handleUpdateCounterBound = this.updateCounter.bind(this);\n\n this.el.addEventListener('focus', this._handleUpdateCounterBound, true);\n this.el.addEventListener('input', this._handleUpdateCounterBound, true);\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('focus', this._handleUpdateCounterBound, true);\n this.el.removeEventListener('input', this._handleUpdateCounterBound, true);\n }\n\n /**\n * Setup counter element\n */\n\n }, {\n key: \"_setupCounter\",\n value: function _setupCounter() {\n this.counterEl = document.createElement('span');\n $(this.counterEl).addClass('character-counter').css({\n float: 'right',\n 'font-size': '12px',\n height: 1\n });\n\n this.$el.parent().append(this.counterEl);\n }\n\n /**\n * Remove counter element\n */\n\n }, {\n key: \"_removeCounter\",\n value: function _removeCounter() {\n $(this.counterEl).remove();\n }\n\n /**\n * Update counter\n */\n\n }, {\n key: \"updateCounter\",\n value: function updateCounter() {\n var maxLength = +this.$el.attr('data-length'),\n actualLength = this.el.value.length;\n this.isValidLength = actualLength <= maxLength;\n var counterString = actualLength;\n\n if (maxLength) {\n counterString += '/' + maxLength;\n this._validateInput();\n }\n\n $(this.counterEl).html(counterString);\n }\n\n /**\n * Add validation classes\n */\n\n }, {\n key: \"_validateInput\",\n value: function _validateInput() {\n if (this.isValidLength && this.isInvalid) {\n this.isInvalid = false;\n this.$el.removeClass('invalid');\n } else if (!this.isValidLength && !this.isInvalid) {\n this.isInvalid = true;\n this.$el.removeClass('valid');\n this.$el.addClass('invalid');\n }\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_CharacterCounter;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return CharacterCounter;\n }(Component);\n\n M.CharacterCounter = CharacterCounter;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter');\n }\n})(cash);\n;(function ($) {\n 'use strict';\n\n var _defaults = {\n duration: 200, // ms\n dist: -100, // zoom scale TODO: make this more intuitive as an option\n shift: 0, // spacing for center image\n padding: 0, // Padding between non center items\n numVisible: 5, // Number of visible items in carousel\n fullWidth: false, // Change to full width styles\n indicators: false, // Toggle indicators\n noWrap: false, // Don't wrap around and cycle through items.\n onCycleTo: null // Callback for when a new slide is cycled to.\n };\n\n /**\n * @class\n *\n */\n\n var Carousel = function (_Component18) {\n _inherits(Carousel, _Component18);\n\n /**\n * Construct Carousel instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function Carousel(el, options) {\n _classCallCheck(this, Carousel);\n\n var _this62 = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, Carousel, el, options));\n\n _this62.el.M_Carousel = _this62;\n\n /**\n * Options for the carousel\n * @member Carousel#options\n * @prop {Number} duration\n * @prop {Number} dist\n * @prop {Number} shift\n * @prop {Number} padding\n * @prop {Number} numVisible\n * @prop {Boolean} fullWidth\n * @prop {Boolean} indicators\n * @prop {Boolean} noWrap\n * @prop {Function} onCycleTo\n */\n _this62.options = $.extend({}, Carousel.defaults, options);\n\n // Setup\n _this62.hasMultipleSlides = _this62.$el.find('.carousel-item').length > 1;\n _this62.showIndicators = _this62.options.indicators && _this62.hasMultipleSlides;\n _this62.noWrap = _this62.options.noWrap || !_this62.hasMultipleSlides;\n _this62.pressed = false;\n _this62.dragged = false;\n _this62.offset = _this62.target = 0;\n _this62.images = [];\n _this62.itemWidth = _this62.$el.find('.carousel-item').first().innerWidth();\n _this62.itemHeight = _this62.$el.find('.carousel-item').first().innerHeight();\n _this62.dim = _this62.itemWidth * 2 + _this62.options.padding || 1; // Make sure dim is non zero for divisions.\n _this62._autoScrollBound = _this62._autoScroll.bind(_this62);\n _this62._trackBound = _this62._track.bind(_this62);\n\n // Full Width carousel setup\n if (_this62.options.fullWidth) {\n _this62.options.dist = 0;\n _this62._setCarouselHeight();\n\n // Offset fixed items when indicators.\n if (_this62.showIndicators) {\n _this62.$el.find('.carousel-fixed-item').addClass('with-indicators');\n }\n }\n\n // Iterate through slides\n _this62.$indicators = $('');\n _this62.$el.find('.carousel-item').each(function (el, i) {\n _this62.images.push(el);\n if (_this62.showIndicators) {\n var $indicator = $('
  • ');\n\n // Add active to first by default.\n if (i === 0) {\n $indicator[0].classList.add('active');\n }\n\n _this62.$indicators.append($indicator);\n }\n });\n if (_this62.showIndicators) {\n _this62.$el.append(_this62.$indicators);\n }\n _this62.count = _this62.images.length;\n\n // Cap numVisible at count\n _this62.options.numVisible = Math.min(_this62.count, _this62.options.numVisible);\n\n // Setup cross browser string\n _this62.xform = 'transform';\n ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) {\n var e = prefix + 'Transform';\n if (typeof document.body.style[e] !== 'undefined') {\n _this62.xform = e;\n return false;\n }\n return true;\n });\n\n _this62._setupEventHandlers();\n _this62._scroll(_this62.offset);\n return _this62;\n }\n\n _createClass(Carousel, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this.el.M_Carousel = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n var _this63 = this;\n\n this._handleCarouselTapBound = this._handleCarouselTap.bind(this);\n this._handleCarouselDragBound = this._handleCarouselDrag.bind(this);\n this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this);\n this._handleCarouselClickBound = this._handleCarouselClick.bind(this);\n\n if (typeof window.ontouchstart !== 'undefined') {\n this.el.addEventListener('touchstart', this._handleCarouselTapBound);\n this.el.addEventListener('touchmove', this._handleCarouselDragBound);\n this.el.addEventListener('touchend', this._handleCarouselReleaseBound);\n }\n\n this.el.addEventListener('mousedown', this._handleCarouselTapBound);\n this.el.addEventListener('mousemove', this._handleCarouselDragBound);\n this.el.addEventListener('mouseup', this._handleCarouselReleaseBound);\n this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound);\n this.el.addEventListener('click', this._handleCarouselClickBound);\n\n if (this.showIndicators && this.$indicators) {\n this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this);\n this.$indicators.find('.indicator-item').each(function (el, i) {\n el.addEventListener('click', _this63._handleIndicatorClickBound);\n });\n }\n\n // Resize\n var throttledResize = M.throttle(this._handleResize, 200);\n this._handleThrottledResizeBound = throttledResize.bind(this);\n\n window.addEventListener('resize', this._handleThrottledResizeBound);\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n var _this64 = this;\n\n if (typeof window.ontouchstart !== 'undefined') {\n this.el.removeEventListener('touchstart', this._handleCarouselTapBound);\n this.el.removeEventListener('touchmove', this._handleCarouselDragBound);\n this.el.removeEventListener('touchend', this._handleCarouselReleaseBound);\n }\n this.el.removeEventListener('mousedown', this._handleCarouselTapBound);\n this.el.removeEventListener('mousemove', this._handleCarouselDragBound);\n this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound);\n this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound);\n this.el.removeEventListener('click', this._handleCarouselClickBound);\n\n if (this.showIndicators && this.$indicators) {\n this.$indicators.find('.indicator-item').each(function (el, i) {\n el.removeEventListener('click', _this64._handleIndicatorClickBound);\n });\n }\n\n window.removeEventListener('resize', this._handleThrottledResizeBound);\n }\n\n /**\n * Handle Carousel Tap\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCarouselTap\",\n value: function _handleCarouselTap(e) {\n // Fixes firefox draggable image bug\n if (e.type === 'mousedown' && $(e.target).is('img')) {\n e.preventDefault();\n }\n this.pressed = true;\n this.dragged = false;\n this.verticalDragged = false;\n this.reference = this._xpos(e);\n this.referenceY = this._ypos(e);\n\n this.velocity = this.amplitude = 0;\n this.frame = this.offset;\n this.timestamp = Date.now();\n clearInterval(this.ticker);\n this.ticker = setInterval(this._trackBound, 100);\n }\n\n /**\n * Handle Carousel Drag\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCarouselDrag\",\n value: function _handleCarouselDrag(e) {\n var x = void 0,\n y = void 0,\n delta = void 0,\n deltaY = void 0;\n if (this.pressed) {\n x = this._xpos(e);\n y = this._ypos(e);\n delta = this.reference - x;\n deltaY = Math.abs(this.referenceY - y);\n if (deltaY < 30 && !this.verticalDragged) {\n // If vertical scrolling don't allow dragging.\n if (delta > 2 || delta < -2) {\n this.dragged = true;\n this.reference = x;\n this._scroll(this.offset + delta);\n }\n } else if (this.dragged) {\n // If dragging don't allow vertical scroll.\n e.preventDefault();\n e.stopPropagation();\n return false;\n } else {\n // Vertical scrolling.\n this.verticalDragged = true;\n }\n }\n\n if (this.dragged) {\n // If dragging don't allow vertical scroll.\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n\n /**\n * Handle Carousel Release\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCarouselRelease\",\n value: function _handleCarouselRelease(e) {\n if (this.pressed) {\n this.pressed = false;\n } else {\n return;\n }\n\n clearInterval(this.ticker);\n this.target = this.offset;\n if (this.velocity > 10 || this.velocity < -10) {\n this.amplitude = 0.9 * this.velocity;\n this.target = this.offset + this.amplitude;\n }\n this.target = Math.round(this.target / this.dim) * this.dim;\n\n // No wrap of items.\n if (this.noWrap) {\n if (this.target >= this.dim * (this.count - 1)) {\n this.target = this.dim * (this.count - 1);\n } else if (this.target < 0) {\n this.target = 0;\n }\n }\n this.amplitude = this.target - this.offset;\n this.timestamp = Date.now();\n requestAnimationFrame(this._autoScrollBound);\n\n if (this.dragged) {\n e.preventDefault();\n e.stopPropagation();\n }\n return false;\n }\n\n /**\n * Handle Carousel CLick\n * @param {Event} e\n */\n\n }, {\n key: \"_handleCarouselClick\",\n value: function _handleCarouselClick(e) {\n // Disable clicks if carousel was dragged.\n if (this.dragged) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n } else if (!this.options.fullWidth) {\n var clickedIndex = $(e.target).closest('.carousel-item').index();\n var diff = this._wrap(this.center) - clickedIndex;\n\n // Disable clicks if carousel was shifted by click\n if (diff !== 0) {\n e.preventDefault();\n e.stopPropagation();\n }\n this._cycleTo(clickedIndex);\n }\n }\n\n /**\n * Handle Indicator CLick\n * @param {Event} e\n */\n\n }, {\n key: \"_handleIndicatorClick\",\n value: function _handleIndicatorClick(e) {\n e.stopPropagation();\n\n var indicator = $(e.target).closest('.indicator-item');\n if (indicator.length) {\n this._cycleTo(indicator.index());\n }\n }\n\n /**\n * Handle Throttle Resize\n * @param {Event} e\n */\n\n }, {\n key: \"_handleResize\",\n value: function _handleResize(e) {\n if (this.options.fullWidth) {\n this.itemWidth = this.$el.find('.carousel-item').first().innerWidth();\n this.imageHeight = this.$el.find('.carousel-item.active').height();\n this.dim = this.itemWidth * 2 + this.options.padding;\n this.offset = this.center * 2 * this.itemWidth;\n this.target = this.offset;\n this._setCarouselHeight(true);\n } else {\n this._scroll();\n }\n }\n\n /**\n * Set carousel height based on first slide\n * @param {Booleam} imageOnly - true for image slides\n */\n\n }, {\n key: \"_setCarouselHeight\",\n value: function _setCarouselHeight(imageOnly) {\n var _this65 = this;\n\n var firstSlide = this.$el.find('.carousel-item.active').length ? this.$el.find('.carousel-item.active').first() : this.$el.find('.carousel-item').first();\n var firstImage = firstSlide.find('img').first();\n if (firstImage.length) {\n if (firstImage[0].complete) {\n // If image won't trigger the load event\n var imageHeight = firstImage.height();\n if (imageHeight > 0) {\n this.$el.css('height', imageHeight + 'px');\n } else {\n // If image still has no height, use the natural dimensions to calculate\n var naturalWidth = firstImage[0].naturalWidth;\n var naturalHeight = firstImage[0].naturalHeight;\n var adjustedHeight = this.$el.width() / naturalWidth * naturalHeight;\n this.$el.css('height', adjustedHeight + 'px');\n }\n } else {\n // Get height when image is loaded normally\n firstImage.one('load', function (el, i) {\n _this65.$el.css('height', el.offsetHeight + 'px');\n });\n }\n } else if (!imageOnly) {\n var slideHeight = firstSlide.height();\n this.$el.css('height', slideHeight + 'px');\n }\n }\n\n /**\n * Get x position from event\n * @param {Event} e\n */\n\n }, {\n key: \"_xpos\",\n value: function _xpos(e) {\n // touch event\n if (e.targetTouches && e.targetTouches.length >= 1) {\n return e.targetTouches[0].clientX;\n }\n\n // mouse event\n return e.clientX;\n }\n\n /**\n * Get y position from event\n * @param {Event} e\n */\n\n }, {\n key: \"_ypos\",\n value: function _ypos(e) {\n // touch event\n if (e.targetTouches && e.targetTouches.length >= 1) {\n return e.targetTouches[0].clientY;\n }\n\n // mouse event\n return e.clientY;\n }\n\n /**\n * Wrap index\n * @param {Number} x\n */\n\n }, {\n key: \"_wrap\",\n value: function _wrap(x) {\n return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x;\n }\n\n /**\n * Tracks scrolling information\n */\n\n }, {\n key: \"_track\",\n value: function _track() {\n var now = void 0,\n elapsed = void 0,\n delta = void 0,\n v = void 0;\n\n now = Date.now();\n elapsed = now - this.timestamp;\n this.timestamp = now;\n delta = this.offset - this.frame;\n this.frame = this.offset;\n\n v = 1000 * delta / (1 + elapsed);\n this.velocity = 0.8 * v + 0.2 * this.velocity;\n }\n\n /**\n * Auto scrolls to nearest carousel item.\n */\n\n }, {\n key: \"_autoScroll\",\n value: function _autoScroll() {\n var elapsed = void 0,\n delta = void 0;\n\n if (this.amplitude) {\n elapsed = Date.now() - this.timestamp;\n delta = this.amplitude * Math.exp(-elapsed / this.options.duration);\n if (delta > 2 || delta < -2) {\n this._scroll(this.target - delta);\n requestAnimationFrame(this._autoScrollBound);\n } else {\n this._scroll(this.target);\n }\n }\n }\n\n /**\n * Scroll to target\n * @param {Number} x\n */\n\n }, {\n key: \"_scroll\",\n value: function _scroll(x) {\n var _this66 = this;\n\n // Track scrolling state\n if (!this.$el.hasClass('scrolling')) {\n this.el.classList.add('scrolling');\n }\n if (this.scrollingTimeout != null) {\n window.clearTimeout(this.scrollingTimeout);\n }\n this.scrollingTimeout = window.setTimeout(function () {\n _this66.$el.removeClass('scrolling');\n }, this.options.duration);\n\n // Start actual scroll\n var i = void 0,\n half = void 0,\n delta = void 0,\n dir = void 0,\n tween = void 0,\n el = void 0,\n alignment = void 0,\n zTranslation = void 0,\n tweenedOpacity = void 0,\n centerTweenedOpacity = void 0;\n var lastCenter = this.center;\n var numVisibleOffset = 1 / this.options.numVisible;\n\n this.offset = typeof x === 'number' ? x : this.offset;\n this.center = Math.floor((this.offset + this.dim / 2) / this.dim);\n delta = this.offset - this.center * this.dim;\n dir = delta < 0 ? 1 : -1;\n tween = -dir * delta * 2 / this.dim;\n half = this.count >> 1;\n\n if (this.options.fullWidth) {\n alignment = 'translateX(0)';\n centerTweenedOpacity = 1;\n } else {\n alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) ';\n alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)';\n centerTweenedOpacity = 1 - numVisibleOffset * tween;\n }\n\n // Set indicator active\n if (this.showIndicators) {\n var diff = this.center % this.count;\n var activeIndicator = this.$indicators.find('.indicator-item.active');\n if (activeIndicator.index() !== diff) {\n activeIndicator.removeClass('active');\n this.$indicators.find('.indicator-item').eq(diff)[0].classList.add('active');\n }\n }\n\n // center\n // Don't show wrapped items.\n if (!this.noWrap || this.center >= 0 && this.center < this.count) {\n el = this.images[this._wrap(this.center)];\n\n // Add active class to center item.\n if (!$(el).hasClass('active')) {\n this.$el.find('.carousel-item').removeClass('active');\n el.classList.add('active');\n }\n var transformString = alignment + \" translateX(\" + -delta / 2 + \"px) translateX(\" + dir * this.options.shift * tween * i + \"px) translateZ(\" + this.options.dist * tween + \"px)\";\n this._updateItemStyle(el, centerTweenedOpacity, 0, transformString);\n }\n\n for (i = 1; i <= half; ++i) {\n // right side\n if (this.options.fullWidth) {\n zTranslation = this.options.dist;\n tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1;\n } else {\n zTranslation = this.options.dist * (i * 2 + tween * dir);\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir);\n }\n // Don't show wrapped items.\n if (!this.noWrap || this.center + i < this.count) {\n el = this.images[this._wrap(this.center + i)];\n var _transformString = alignment + \" translateX(\" + (this.options.shift + (this.dim * i - delta) / 2) + \"px) translateZ(\" + zTranslation + \"px)\";\n this._updateItemStyle(el, tweenedOpacity, -i, _transformString);\n }\n\n // left side\n if (this.options.fullWidth) {\n zTranslation = this.options.dist;\n tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1;\n } else {\n zTranslation = this.options.dist * (i * 2 - tween * dir);\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir);\n }\n // Don't show wrapped items.\n if (!this.noWrap || this.center - i >= 0) {\n el = this.images[this._wrap(this.center - i)];\n var _transformString2 = alignment + \" translateX(\" + (-this.options.shift + (-this.dim * i - delta) / 2) + \"px) translateZ(\" + zTranslation + \"px)\";\n this._updateItemStyle(el, tweenedOpacity, -i, _transformString2);\n }\n }\n\n // center\n // Don't show wrapped items.\n if (!this.noWrap || this.center >= 0 && this.center < this.count) {\n el = this.images[this._wrap(this.center)];\n var _transformString3 = alignment + \" translateX(\" + -delta / 2 + \"px) translateX(\" + dir * this.options.shift * tween + \"px) translateZ(\" + this.options.dist * tween + \"px)\";\n this._updateItemStyle(el, centerTweenedOpacity, 0, _transformString3);\n }\n\n // onCycleTo callback\n var $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center));\n if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') {\n this.options.onCycleTo.call(this, $currItem[0], this.dragged);\n }\n\n // One time callback\n if (typeof this.oneTimeCallback === 'function') {\n this.oneTimeCallback.call(this, $currItem[0], this.dragged);\n this.oneTimeCallback = null;\n }\n }\n\n /**\n * Cycle to target\n * @param {Element} el\n * @param {Number} opacity\n * @param {Number} zIndex\n * @param {String} transform\n */\n\n }, {\n key: \"_updateItemStyle\",\n value: function _updateItemStyle(el, opacity, zIndex, transform) {\n el.style[this.xform] = transform;\n el.style.zIndex = zIndex;\n el.style.opacity = opacity;\n el.style.visibility = 'visible';\n }\n\n /**\n * Cycle to target\n * @param {Number} n\n * @param {Function} callback\n */\n\n }, {\n key: \"_cycleTo\",\n value: function _cycleTo(n, callback) {\n var diff = this.center % this.count - n;\n\n // Account for wraparound.\n if (!this.noWrap) {\n if (diff < 0) {\n if (Math.abs(diff + this.count) < Math.abs(diff)) {\n diff += this.count;\n }\n } else if (diff > 0) {\n if (Math.abs(diff - this.count) < diff) {\n diff -= this.count;\n }\n }\n }\n\n this.target = this.dim * Math.round(this.offset / this.dim);\n // Next\n if (diff < 0) {\n this.target += this.dim * Math.abs(diff);\n\n // Prev\n } else if (diff > 0) {\n this.target -= this.dim * diff;\n }\n\n // Set one time callback\n if (typeof callback === 'function') {\n this.oneTimeCallback = callback;\n }\n\n // Scroll\n if (this.offset !== this.target) {\n this.amplitude = this.target - this.offset;\n this.timestamp = Date.now();\n requestAnimationFrame(this._autoScrollBound);\n }\n }\n\n /**\n * Cycle to next item\n * @param {Number} [n]\n */\n\n }, {\n key: \"next\",\n value: function next(n) {\n if (n === undefined || isNaN(n)) {\n n = 1;\n }\n\n var index = this.center + n;\n if (index >= this.count || index < 0) {\n if (this.noWrap) {\n return;\n }\n\n index = this._wrap(index);\n }\n this._cycleTo(index);\n }\n\n /**\n * Cycle to previous item\n * @param {Number} [n]\n */\n\n }, {\n key: \"prev\",\n value: function prev(n) {\n if (n === undefined || isNaN(n)) {\n n = 1;\n }\n\n var index = this.center - n;\n if (index >= this.count || index < 0) {\n if (this.noWrap) {\n return;\n }\n\n index = this._wrap(index);\n }\n\n this._cycleTo(index);\n }\n\n /**\n * Cycle to nth item\n * @param {Number} [n]\n * @param {Function} callback\n */\n\n }, {\n key: \"set\",\n value: function set(n, callback) {\n if (n === undefined || isNaN(n)) {\n n = 0;\n }\n\n if (n > this.count || n < 0) {\n if (this.noWrap) {\n return;\n }\n\n n = this._wrap(n);\n }\n\n this._cycleTo(n, callback);\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(Carousel.__proto__ || Object.getPrototypeOf(Carousel), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_Carousel;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return Carousel;\n }(Component);\n\n M.Carousel = Carousel;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel');\n }\n})(cash);\n;(function ($) {\n 'use strict';\n\n var _defaults = {\n onOpen: undefined,\n onClose: undefined\n };\n\n /**\n * @class\n *\n */\n\n var TapTarget = function (_Component19) {\n _inherits(TapTarget, _Component19);\n\n /**\n * Construct TapTarget instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function TapTarget(el, options) {\n _classCallCheck(this, TapTarget);\n\n var _this67 = _possibleConstructorReturn(this, (TapTarget.__proto__ || Object.getPrototypeOf(TapTarget)).call(this, TapTarget, el, options));\n\n _this67.el.M_TapTarget = _this67;\n\n /**\n * Options for the select\n * @member TapTarget#options\n * @prop {Function} onOpen - Callback function called when feature discovery is opened\n * @prop {Function} onClose - Callback function called when feature discovery is closed\n */\n _this67.options = $.extend({}, TapTarget.defaults, options);\n\n _this67.isOpen = false;\n\n // setup\n _this67.$origin = $('#' + _this67.$el.attr('data-target'));\n _this67._setup();\n\n _this67._calculatePositioning();\n _this67._setupEventHandlers();\n return _this67;\n }\n\n _createClass(TapTarget, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this.el.TapTarget = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n this._handleDocumentClickBound = this._handleDocumentClick.bind(this);\n this._handleTargetClickBound = this._handleTargetClick.bind(this);\n this._handleOriginClickBound = this._handleOriginClick.bind(this);\n\n this.el.addEventListener('click', this._handleTargetClickBound);\n this.originEl.addEventListener('click', this._handleOriginClickBound);\n\n // Resize\n var throttledResize = M.throttle(this._handleResize, 200);\n this._handleThrottledResizeBound = throttledResize.bind(this);\n\n window.addEventListener('resize', this._handleThrottledResizeBound);\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('click', this._handleTargetClickBound);\n this.originEl.removeEventListener('click', this._handleOriginClickBound);\n window.removeEventListener('resize', this._handleThrottledResizeBound);\n }\n\n /**\n * Handle Target Click\n * @param {Event} e\n */\n\n }, {\n key: \"_handleTargetClick\",\n value: function _handleTargetClick(e) {\n this.open();\n }\n\n /**\n * Handle Origin Click\n * @param {Event} e\n */\n\n }, {\n key: \"_handleOriginClick\",\n value: function _handleOriginClick(e) {\n this.close();\n }\n\n /**\n * Handle Resize\n * @param {Event} e\n */\n\n }, {\n key: \"_handleResize\",\n value: function _handleResize(e) {\n this._calculatePositioning();\n }\n\n /**\n * Handle Resize\n * @param {Event} e\n */\n\n }, {\n key: \"_handleDocumentClick\",\n value: function _handleDocumentClick(e) {\n if (!$(e.target).closest('.tap-target-wrapper').length) {\n this.close();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n /**\n * Setup Tap Target\n */\n\n }, {\n key: \"_setup\",\n value: function _setup() {\n // Creating tap target\n this.wrapper = this.$el.parent()[0];\n this.waveEl = $(this.wrapper).find('.tap-target-wave')[0];\n this.originEl = $(this.wrapper).find('.tap-target-origin')[0];\n this.contentEl = this.$el.find('.tap-target-content')[0];\n\n // Creating wrapper\n if (!$(this.wrapper).hasClass('.tap-target-wrapper')) {\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('tap-target-wrapper');\n this.$el.before($(this.wrapper));\n this.wrapper.append(this.el);\n }\n\n // Creating content\n if (!this.contentEl) {\n this.contentEl = document.createElement('div');\n this.contentEl.classList.add('tap-target-content');\n this.$el.append(this.contentEl);\n }\n\n // Creating foreground wave\n if (!this.waveEl) {\n this.waveEl = document.createElement('div');\n this.waveEl.classList.add('tap-target-wave');\n\n // Creating origin\n if (!this.originEl) {\n this.originEl = this.$origin.clone(true, true);\n this.originEl.addClass('tap-target-origin');\n this.originEl.removeAttr('id');\n this.originEl.removeAttr('style');\n this.originEl = this.originEl[0];\n this.waveEl.append(this.originEl);\n }\n\n this.wrapper.append(this.waveEl);\n }\n }\n\n /**\n * Calculate positioning\n */\n\n }, {\n key: \"_calculatePositioning\",\n value: function _calculatePositioning() {\n // Element or parent is fixed position?\n var isFixed = this.$origin.css('position') === 'fixed';\n if (!isFixed) {\n var parents = this.$origin.parents();\n for (var i = 0; i < parents.length; i++) {\n isFixed = $(parents[i]).css('position') == 'fixed';\n if (isFixed) {\n break;\n }\n }\n }\n\n // Calculating origin\n var originWidth = this.$origin.outerWidth();\n var originHeight = this.$origin.outerHeight();\n var originTop = isFixed ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top;\n var originLeft = isFixed ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left;\n\n // Calculating screen\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var centerX = windowWidth / 2;\n var centerY = windowHeight / 2;\n var isLeft = originLeft <= centerX;\n var isRight = originLeft > centerX;\n var isTop = originTop <= centerY;\n var isBottom = originTop > centerY;\n var isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75;\n\n // Calculating tap target\n var tapTargetWidth = this.$el.outerWidth();\n var tapTargetHeight = this.$el.outerHeight();\n var tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2;\n var tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2;\n var tapTargetPosition = isFixed ? 'fixed' : 'absolute';\n\n // Calculating content\n var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth;\n var tapTargetTextHeight = tapTargetHeight / 2;\n var tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0;\n var tapTargetTextBottom = 0;\n var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0;\n var tapTargetTextRight = 0;\n var tapTargetTextPadding = originWidth;\n var tapTargetTextAlign = isBottom ? 'bottom' : 'top';\n\n // Calculating wave\n var tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2;\n var tapTargetWaveHeight = tapTargetWaveWidth;\n var tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2;\n var tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2;\n\n // Setting tap target\n var tapTargetWrapperCssObj = {};\n tapTargetWrapperCssObj.top = isTop ? tapTargetTop + 'px' : '';\n tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth + 'px' : '';\n tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight + 'px' : '';\n tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft + 'px' : '';\n tapTargetWrapperCssObj.position = tapTargetPosition;\n $(this.wrapper).css(tapTargetWrapperCssObj);\n\n // Setting content\n $(this.contentEl).css({\n width: tapTargetTextWidth + 'px',\n height: tapTargetTextHeight + 'px',\n top: tapTargetTextTop + 'px',\n right: tapTargetTextRight + 'px',\n bottom: tapTargetTextBottom + 'px',\n left: tapTargetTextLeft + 'px',\n padding: tapTargetTextPadding + 'px',\n verticalAlign: tapTargetTextAlign\n });\n\n // Setting wave\n $(this.waveEl).css({\n top: tapTargetWaveTop + 'px',\n left: tapTargetWaveLeft + 'px',\n width: tapTargetWaveWidth + 'px',\n height: tapTargetWaveHeight + 'px'\n });\n }\n\n /**\n * Open TapTarget\n */\n\n }, {\n key: \"open\",\n value: function open() {\n if (this.isOpen) {\n return;\n }\n\n // onOpen callback\n if (typeof this.options.onOpen === 'function') {\n this.options.onOpen.call(this, this.$origin[0]);\n }\n\n this.isOpen = true;\n this.wrapper.classList.add('open');\n\n document.body.addEventListener('click', this._handleDocumentClickBound, true);\n document.body.addEventListener('touchend', this._handleDocumentClickBound);\n }\n\n /**\n * Close Tap Target\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isOpen) {\n return;\n }\n\n // onClose callback\n if (typeof this.options.onClose === 'function') {\n this.options.onClose.call(this, this.$origin[0]);\n }\n\n this.isOpen = false;\n this.wrapper.classList.remove('open');\n\n document.body.removeEventListener('click', this._handleDocumentClickBound, true);\n document.body.removeEventListener('touchend', this._handleDocumentClickBound);\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(TapTarget.__proto__ || Object.getPrototypeOf(TapTarget), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_TapTarget;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return TapTarget;\n }(Component);\n\n M.TapTarget = TapTarget;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(TapTarget, 'tapTarget', 'M_TapTarget');\n }\n})(cash);\n;(function ($) {\n 'use strict';\n\n var _defaults = {\n classes: '',\n dropdownOptions: {}\n };\n\n /**\n * @class\n *\n */\n\n var FormSelect = function (_Component20) {\n _inherits(FormSelect, _Component20);\n\n /**\n * Construct FormSelect instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function FormSelect(el, options) {\n _classCallCheck(this, FormSelect);\n\n // Don't init if browser default version\n var _this68 = _possibleConstructorReturn(this, (FormSelect.__proto__ || Object.getPrototypeOf(FormSelect)).call(this, FormSelect, el, options));\n\n if (_this68.$el.hasClass('browser-default')) {\n return _possibleConstructorReturn(_this68);\n }\n\n _this68.el.M_FormSelect = _this68;\n\n /**\n * Options for the select\n * @member FormSelect#options\n */\n _this68.options = $.extend({}, FormSelect.defaults, options);\n\n _this68.isMultiple = _this68.$el.prop('multiple');\n\n // Setup\n _this68.el.tabIndex = -1;\n _this68._keysSelected = {};\n _this68._valueDict = {}; // Maps key to original and generated option element.\n _this68._setupDropdown();\n\n _this68._setupEventHandlers();\n return _this68;\n }\n\n _createClass(FormSelect, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this._removeDropdown();\n this.el.M_FormSelect = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n var _this69 = this;\n\n this._handleSelectChangeBound = this._handleSelectChange.bind(this);\n this._handleOptionClickBound = this._handleOptionClick.bind(this);\n this._handleInputClickBound = this._handleInputClick.bind(this);\n\n $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {\n el.addEventListener('click', _this69._handleOptionClickBound);\n });\n this.el.addEventListener('change', this._handleSelectChangeBound);\n this.input.addEventListener('click', this._handleInputClickBound);\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n var _this70 = this;\n\n $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {\n el.removeEventListener('click', _this70._handleOptionClickBound);\n });\n this.el.removeEventListener('change', this._handleSelectChangeBound);\n this.input.removeEventListener('click', this._handleInputClickBound);\n }\n\n /**\n * Handle Select Change\n * @param {Event} e\n */\n\n }, {\n key: \"_handleSelectChange\",\n value: function _handleSelectChange(e) {\n this._setValueToInput();\n }\n\n /**\n * Handle Option Click\n * @param {Event} e\n */\n\n }, {\n key: \"_handleOptionClick\",\n value: function _handleOptionClick(e) {\n e.preventDefault();\n var option = $(e.target).closest('li')[0];\n var key = option.id;\n if (!$(option).hasClass('disabled') && !$(option).hasClass('optgroup') && key.length) {\n var selected = true;\n\n if (this.isMultiple) {\n // Deselect placeholder option if still selected.\n var placeholderOption = $(this.dropdownOptions).find('li.disabled.selected');\n if (placeholderOption.length) {\n placeholderOption.removeClass('selected');\n placeholderOption.find('input[type=\"checkbox\"]').prop('checked', false);\n this._toggleEntryFromArray(placeholderOption[0].id);\n }\n selected = this._toggleEntryFromArray(key);\n } else {\n $(this.dropdownOptions).find('li').removeClass('selected');\n $(option).toggleClass('selected', selected);\n }\n\n // Set selected on original select option\n // Only trigger if selected state changed\n var prevSelected = $(this._valueDict[key].el).prop('selected');\n if (prevSelected !== selected) {\n $(this._valueDict[key].el).prop('selected', selected);\n this.$el.trigger('change');\n }\n }\n\n e.stopPropagation();\n }\n\n /**\n * Handle Input Click\n */\n\n }, {\n key: \"_handleInputClick\",\n value: function _handleInputClick() {\n if (this.dropdown && this.dropdown.isOpen) {\n this._setValueToInput();\n this._setSelectedStates();\n }\n }\n\n /**\n * Setup dropdown\n */\n\n }, {\n key: \"_setupDropdown\",\n value: function _setupDropdown() {\n var _this71 = this;\n\n this.wrapper = document.createElement('div');\n $(this.wrapper).addClass('select-wrapper ' + this.options.classes);\n this.$el.before($(this.wrapper));\n this.wrapper.appendChild(this.el);\n\n if (this.el.disabled) {\n this.wrapper.classList.add('disabled');\n }\n\n // Create dropdown\n this.$selectOptions = this.$el.children('option, optgroup');\n this.dropdownOptions = document.createElement('ul');\n this.dropdownOptions.id = \"select-options-\" + M.guid();\n $(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : ''));\n\n // Create dropdown structure.\n if (this.$selectOptions.length) {\n this.$selectOptions.each(function (el) {\n if ($(el).is('option')) {\n // Direct descendant option.\n var optionEl = void 0;\n if (_this71.isMultiple) {\n optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'multiple');\n } else {\n optionEl = _this71._appendOptionWithIcon(_this71.$el, el);\n }\n\n _this71._addOptionToValueDict(el, optionEl);\n } else if ($(el).is('optgroup')) {\n // Optgroup.\n var selectOptions = $(el).children('option');\n $(_this71.dropdownOptions).append($('
  • ' + el.getAttribute('label') + '
  • ')[0]);\n\n selectOptions.each(function (el) {\n var optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'optgroup-option');\n _this71._addOptionToValueDict(el, optionEl);\n });\n }\n });\n }\n\n this.$el.after(this.dropdownOptions);\n\n // Add input dropdown\n this.input = document.createElement('input');\n $(this.input).addClass('select-dropdown dropdown-trigger');\n this.input.setAttribute('type', 'text');\n this.input.setAttribute('readonly', 'true');\n this.input.setAttribute('data-target', this.dropdownOptions.id);\n if (this.el.disabled) {\n $(this.input).prop('disabled', 'true');\n }\n\n this.$el.before(this.input);\n this._setValueToInput();\n\n // Add caret\n var dropdownIcon = $('');\n this.$el.before(dropdownIcon[0]);\n\n // Initialize dropdown\n if (!this.el.disabled) {\n var dropdownOptions = $.extend({}, this.options.dropdownOptions);\n\n // Add callback for centering selected option when dropdown content is scrollable\n dropdownOptions.onOpenEnd = function (el) {\n var selectedOption = $(_this71.dropdownOptions).find('.selected').first();\n if (_this71.dropdown.isScrollable && selectedOption.length) {\n var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option\n scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown\n _this71.dropdownOptions.scrollTop = scrollOffset;\n }\n };\n\n if (this.isMultiple) {\n dropdownOptions.closeOnClick = false;\n }\n this.dropdown = M.Dropdown.init(this.input, dropdownOptions);\n }\n\n // Add initial selections\n this._setSelectedStates();\n }\n\n /**\n * Add option to value dict\n * @param {Element} el original option element\n * @param {Element} optionEl generated option element\n */\n\n }, {\n key: \"_addOptionToValueDict\",\n value: function _addOptionToValueDict(el, optionEl) {\n var index = Object.keys(this._valueDict).length;\n var key = this.dropdownOptions.id + index;\n var obj = {};\n optionEl.id = key;\n\n obj.el = el;\n obj.optionEl = optionEl;\n this._valueDict[key] = obj;\n }\n\n /**\n * Remove dropdown\n */\n\n }, {\n key: \"_removeDropdown\",\n value: function _removeDropdown() {\n $(this.wrapper).find('.caret').remove();\n $(this.input).remove();\n $(this.dropdownOptions).remove();\n $(this.wrapper).before(this.$el);\n $(this.wrapper).remove();\n }\n\n /**\n * Setup dropdown\n * @param {Element} select select element\n * @param {Element} option option element from select\n * @param {String} type\n * @return {Element} option element added\n */\n\n }, {\n key: \"_appendOptionWithIcon\",\n value: function _appendOptionWithIcon(select, option, type) {\n // Add disabled attr if disabled\n var disabledClass = option.disabled ? 'disabled ' : '';\n var optgroupClass = type === 'optgroup-option' ? 'optgroup-option ' : '';\n var multipleCheckbox = this.isMultiple ? \"\" : option.innerHTML;\n var liEl = $('
  • ');\n var spanEl = $('');\n spanEl.html(multipleCheckbox);\n liEl.addClass(disabledClass + \" \" + optgroupClass);\n liEl.append(spanEl);\n\n // add icons\n var iconUrl = option.getAttribute('data-icon');\n if (!!iconUrl) {\n var imgEl = $(\"\\\"\\\"\");\n liEl.prepend(imgEl);\n }\n\n // Check for multiple type.\n $(this.dropdownOptions).append(liEl[0]);\n return liEl[0];\n }\n\n /**\n * Toggle entry from option\n * @param {String} key Option key\n * @return {Boolean} if entry was added or removed\n */\n\n }, {\n key: \"_toggleEntryFromArray\",\n value: function _toggleEntryFromArray(key) {\n var notAdded = !this._keysSelected.hasOwnProperty(key);\n var $optionLi = $(this._valueDict[key].optionEl);\n\n if (notAdded) {\n this._keysSelected[key] = true;\n } else {\n delete this._keysSelected[key];\n }\n\n $optionLi.toggleClass('selected', notAdded);\n\n // Set checkbox checked value\n $optionLi.find('input[type=\"checkbox\"]').prop('checked', notAdded);\n\n // use notAdded instead of true (to detect if the option is selected or not)\n $optionLi.prop('selected', notAdded);\n\n return notAdded;\n }\n\n /**\n * Set text value to input\n */\n\n }, {\n key: \"_setValueToInput\",\n value: function _setValueToInput() {\n var values = [];\n var options = this.$el.find('option');\n\n options.each(function (el) {\n if ($(el).prop('selected')) {\n var text = $(el).text();\n values.push(text);\n }\n });\n\n if (!values.length) {\n var firstDisabled = this.$el.find('option:disabled').eq(0);\n if (firstDisabled.length && firstDisabled[0].value === '') {\n values.push(firstDisabled.text());\n }\n }\n\n this.input.value = values.join(', ');\n }\n\n /**\n * Set selected state of dropdown to match actual select element\n */\n\n }, {\n key: \"_setSelectedStates\",\n value: function _setSelectedStates() {\n this._keysSelected = {};\n\n for (var key in this._valueDict) {\n var option = this._valueDict[key];\n var optionIsSelected = $(option.el).prop('selected');\n $(option.optionEl).find('input[type=\"checkbox\"]').prop('checked', optionIsSelected);\n if (optionIsSelected) {\n this._activateOption($(this.dropdownOptions), $(option.optionEl));\n this._keysSelected[key] = true;\n } else {\n $(option.optionEl).removeClass('selected');\n }\n }\n }\n\n /**\n * Make option as selected and scroll to selected position\n * @param {jQuery} collection Select options jQuery element\n * @param {Element} newOption element of the new option\n */\n\n }, {\n key: \"_activateOption\",\n value: function _activateOption(collection, newOption) {\n if (newOption) {\n if (!this.isMultiple) {\n collection.find('li.selected').removeClass('selected');\n }\n var option = $(newOption);\n option.addClass('selected');\n }\n }\n\n /**\n * Get Selected Values\n * @return {Array} Array of selected values\n */\n\n }, {\n key: \"getSelectedValues\",\n value: function getSelectedValues() {\n var selectedValues = [];\n for (var key in this._keysSelected) {\n selectedValues.push(this._valueDict[key].el.value);\n }\n return selectedValues;\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(FormSelect.__proto__ || Object.getPrototypeOf(FormSelect), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_FormSelect;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return FormSelect;\n }(Component);\n\n M.FormSelect = FormSelect;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(FormSelect, 'formSelect', 'M_FormSelect');\n }\n})(cash);\n;(function ($, anim) {\n 'use strict';\n\n var _defaults = {};\n\n /**\n * @class\n *\n */\n\n var Range = function (_Component21) {\n _inherits(Range, _Component21);\n\n /**\n * Construct Range instance\n * @constructor\n * @param {Element} el\n * @param {Object} options\n */\n function Range(el, options) {\n _classCallCheck(this, Range);\n\n var _this72 = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, Range, el, options));\n\n _this72.el.M_Range = _this72;\n\n /**\n * Options for the range\n * @member Range#options\n */\n _this72.options = $.extend({}, Range.defaults, options);\n\n _this72._mousedown = false;\n\n // Setup\n _this72._setupThumb();\n\n _this72._setupEventHandlers();\n return _this72;\n }\n\n _createClass(Range, [{\n key: \"destroy\",\n\n\n /**\n * Teardown component\n */\n value: function destroy() {\n this._removeEventHandlers();\n this._removeThumb();\n this.el.M_Range = undefined;\n }\n\n /**\n * Setup Event Handlers\n */\n\n }, {\n key: \"_setupEventHandlers\",\n value: function _setupEventHandlers() {\n this._handleRangeChangeBound = this._handleRangeChange.bind(this);\n this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this);\n this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this);\n this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this);\n this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this);\n\n this.el.addEventListener('change', this._handleRangeChangeBound);\n\n this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound);\n this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound);\n\n this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);\n this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);\n this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);\n\n this.el.addEventListener('mouseup', this._handleRangeMouseupTouchendBound);\n this.el.addEventListener('touchend', this._handleRangeMouseupTouchendBound);\n\n this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);\n this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);\n this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);\n }\n\n /**\n * Remove Event Handlers\n */\n\n }, {\n key: \"_removeEventHandlers\",\n value: function _removeEventHandlers() {\n this.el.removeEventListener('change', this._handleRangeChangeBound);\n\n this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound);\n this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound);\n\n this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);\n this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);\n this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);\n\n this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchendBound);\n this.el.removeEventListener('touchend', this._handleRangeMouseupTouchendBound);\n\n this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);\n this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);\n this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);\n }\n\n /**\n * Handle Range Change\n * @param {Event} e\n */\n\n }, {\n key: \"_handleRangeChange\",\n value: function _handleRangeChange() {\n $(this.value).html(this.$el.val());\n\n if (!$(this.thumb).hasClass('active')) {\n this._showRangeBubble();\n }\n\n var offsetLeft = this._calcRangeOffset();\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\n }\n\n /**\n * Handle Range Mousedown and Touchstart\n * @param {Event} e\n */\n\n }, {\n key: \"_handleRangeMousedownTouchstart\",\n value: function _handleRangeMousedownTouchstart(e) {\n // Set indicator value\n $(this.value).html(this.$el.val());\n\n this._mousedown = true;\n this.$el.addClass('active');\n\n if (!$(this.thumb).hasClass('active')) {\n this._showRangeBubble();\n }\n\n if (e.type !== 'input') {\n var offsetLeft = this._calcRangeOffset();\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\n }\n }\n\n /**\n * Handle Range Input, Mousemove and Touchmove\n */\n\n }, {\n key: \"_handleRangeInputMousemoveTouchmove\",\n value: function _handleRangeInputMousemoveTouchmove() {\n if (this._mousedown) {\n if (!$(this.thumb).hasClass('active')) {\n this._showRangeBubble();\n }\n\n var offsetLeft = this._calcRangeOffset();\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\n $(this.value).html(this.$el.val());\n }\n }\n\n /**\n * Handle Range Mouseup and Touchend\n */\n\n }, {\n key: \"_handleRangeMouseupTouchend\",\n value: function _handleRangeMouseupTouchend() {\n this._mousedown = false;\n this.$el.removeClass('active');\n }\n\n /**\n * Handle Range Blur, Mouseout and Touchleave\n */\n\n }, {\n key: \"_handleRangeBlurMouseoutTouchleave\",\n value: function _handleRangeBlurMouseoutTouchleave() {\n if (!this._mousedown) {\n var paddingLeft = parseInt(this.$el.css('padding-left'));\n var marginLeft = 7 + paddingLeft + 'px';\n\n if ($(this.thumb).hasClass('active')) {\n anim.remove(this.thumb);\n anim({\n targets: this.thumb,\n height: 0,\n width: 0,\n top: 10,\n easing: 'easeOutQuad',\n marginLeft: marginLeft,\n duration: 100\n });\n }\n $(this.thumb).removeClass('active');\n }\n }\n\n /**\n * Setup dropdown\n */\n\n }, {\n key: \"_setupThumb\",\n value: function _setupThumb() {\n this.thumb = document.createElement('span');\n this.value = document.createElement('span');\n $(this.thumb).addClass('thumb');\n $(this.value).addClass('value');\n $(this.thumb).append(this.value);\n this.$el.after(this.thumb);\n }\n\n /**\n * Remove dropdown\n */\n\n }, {\n key: \"_removeThumb\",\n value: function _removeThumb() {\n $(this.thumb).remove();\n }\n\n /**\n * morph thumb into bubble\n */\n\n }, {\n key: \"_showRangeBubble\",\n value: function _showRangeBubble() {\n var paddingLeft = parseInt($(this.thumb).parent().css('padding-left'));\n var marginLeft = -7 + paddingLeft + 'px'; // TODO: fix magic number?\n anim.remove(this.thumb);\n anim({\n targets: this.thumb,\n height: 30,\n width: 30,\n top: -30,\n marginLeft: marginLeft,\n duration: 300,\n easing: 'easeOutQuint'\n });\n }\n\n /**\n * Calculate the offset of the thumb\n * @return {Number} offset in pixels\n */\n\n }, {\n key: \"_calcRangeOffset\",\n value: function _calcRangeOffset() {\n var width = this.$el.width() - 15;\n var max = parseFloat(this.$el.attr('max')) || 100; // Range default max\n var min = parseFloat(this.$el.attr('min')) || 0; // Range default min\n var percent = (parseFloat(this.$el.val()) - min) / (max - min);\n return percent * width;\n }\n }], [{\n key: \"init\",\n value: function init(els, options) {\n return _get(Range.__proto__ || Object.getPrototypeOf(Range), \"init\", this).call(this, this, els, options);\n }\n\n /**\n * Get Instance\n */\n\n }, {\n key: \"getInstance\",\n value: function getInstance(el) {\n var domElem = !!el.jquery ? el[0] : el;\n return domElem.M_Range;\n }\n }, {\n key: \"defaults\",\n get: function () {\n return _defaults;\n }\n }]);\n\n return Range;\n }(Component);\n\n M.Range = Range;\n\n if (M.jQueryLoaded) {\n M.initializeJqueryWrapper(Range, 'range', 'M_Range');\n }\n\n Range.init($('input[type=range]'));\n})(cash, M.anime);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""}