1 |
- {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///material-components-web.js","webpack:///webpack/bootstrap 8965aaa3d7ba6e7e327f","webpack:///./packages/mdc-base/foundation.ts","webpack:///./packages/mdc-base/component.ts","webpack:///./packages/mdc-ripple/component.ts","webpack:///./packages/mdc-dom/ponyfill.ts","webpack:///./packages/mdc-ripple/foundation.ts","webpack:///./packages/mdc-list/foundation.ts","webpack:///./packages/mdc-menu-surface/constants.ts","webpack:///./packages/mdc-top-app-bar/constants.ts","webpack:///./packages/mdc-menu-surface/foundation.ts","webpack:///./packages/mdc-tab-indicator/foundation.ts","webpack:///./packages/mdc-animation/util.ts","webpack:///./packages/mdc-ripple/util.ts","webpack:///./packages/mdc-chips/chip/foundation.ts","webpack:///./packages/mdc-list/component.ts","webpack:///./packages/mdc-drawer/dismissible/foundation.ts","webpack:///./packages/mdc-floating-label/component.ts","webpack:///./packages/mdc-floating-label/foundation.ts","webpack:///./packages/mdc-line-ripple/component.ts","webpack:///./packages/mdc-menu/constants.ts","webpack:///./packages/mdc-notched-outline/component.ts","webpack:///./packages/mdc-snackbar/constants.ts","webpack:///./packages/mdc-tab-scroller/rtl-scroller.ts","webpack:///./packages/mdc-tab/foundation.ts","webpack:///./packages/mdc-textfield/character-counter/foundation.ts","webpack:///./packages/mdc-textfield/helper-text/foundation.ts","webpack:///./packages/mdc-top-app-bar/standard/foundation.ts","webpack:///./packages/mdc-top-app-bar/foundation.ts","webpack:///./packages/mdc-checkbox/foundation.ts","webpack:///./packages/mdc-chips/chip/component.ts","webpack:///./packages/mdc-chips/chip/constants.ts","webpack:///./packages/mdc-chips/chip-set/foundation.ts","webpack:///./packages/mdc-dialog/util.ts","webpack:///./packages/mdc-dialog/foundation.ts","webpack:///./packages/mdc-drawer/util.ts","webpack:///./packages/mdc-drawer/node_modules/focus-trap/index.js","webpack:///./packages/mdc-list/constants.ts","webpack:///./packages/mdc-drawer/modal/foundation.ts","webpack:///./packages/mdc-form-field/foundation.ts","webpack:///./packages/mdc-grid-list/foundation.ts","webpack:///./packages/mdc-icon-button/foundation.ts","webpack:///./packages/mdc-line-ripple/foundation.ts","webpack:///./packages/mdc-linear-progress/foundation.ts","webpack:///./packages/mdc-menu-surface/util.ts","webpack:///./packages/mdc-menu-surface/component.ts","webpack:///./packages/mdc-menu/component.ts","webpack:///./packages/mdc-menu/foundation.ts","webpack:///./packages/mdc-notched-outline/constants.ts","webpack:///./packages/mdc-notched-outline/foundation.ts","webpack:///./packages/mdc-radio/foundation.ts","webpack:///./packages/mdc-select/constants.ts","webpack:///./packages/mdc-select/foundation.ts","webpack:///./packages/mdc-select/helper-text/component.ts","webpack:///./packages/mdc-select/helper-text/foundation.ts","webpack:///./packages/mdc-select/icon/component.ts","webpack:///./packages/mdc-select/icon/foundation.ts","webpack:///./packages/mdc-slider/constants.ts","webpack:///./packages/mdc-slider/foundation.ts","webpack:///./packages/mdc-snackbar/util.ts","webpack:///./packages/mdc-snackbar/foundation.ts","webpack:///./packages/mdc-switch/foundation.ts","webpack:///./packages/mdc-tab-scroller/component.ts","webpack:///./packages/mdc-tab-scroller/foundation.ts","webpack:///./packages/mdc-tab-scroller/constants.ts","webpack:///./packages/mdc-tab-scroller/util.ts","webpack:///./packages/mdc-tab/component.ts","webpack:///./packages/mdc-tab-indicator/component.ts","webpack:///./packages/mdc-tab-indicator/fading-foundation.ts","webpack:///./packages/mdc-tab-indicator/sliding-foundation.ts","webpack:///./packages/mdc-tab-bar/foundation.ts","webpack:///./packages/mdc-textfield/character-counter/component.ts","webpack:///./packages/mdc-textfield/constants.ts","webpack:///./packages/mdc-textfield/foundation.ts","webpack:///./packages/mdc-textfield/helper-text/component.ts","webpack:///./packages/mdc-textfield/icon/component.ts","webpack:///./packages/mdc-textfield/icon/foundation.ts","webpack:///./packages/mdc-toolbar/foundation.ts","webpack:///./packages/mdc-top-app-bar/fixed/foundation.ts","webpack:///./packages/mdc-top-app-bar/short/foundation.ts","webpack:///./packages/material-components-web/index.ts","webpack:///./packages/mdc-auto-init/index.ts","webpack:///./packages/mdc-base/index.ts","webpack:///./packages/mdc-checkbox/index.ts","webpack:///./packages/mdc-checkbox/component.ts","webpack:///./packages/mdc-ripple/constants.ts","webpack:///./packages/mdc-checkbox/constants.ts","webpack:///./packages/mdc-chips/index.ts","webpack:///./packages/mdc-chips/chip/index.ts","webpack:///./packages/mdc-chips/chip-set/index.ts","webpack:///./packages/mdc-chips/chip-set/component.ts","webpack:///./packages/mdc-chips/chip-set/constants.ts","webpack:///./packages/mdc-dialog/index.ts","webpack:///./packages/mdc-dialog/node_modules/focus-trap/index.js","webpack:///./packages/mdc-dialog/node_modules/tabbable/index.js","webpack:///./packages/mdc-dialog/node_modules/xtend/immutable.js","webpack:///./packages/mdc-dialog/component.ts","webpack:///./packages/mdc-dialog/constants.ts","webpack:///./packages/mdc-dom/index.ts","webpack:///./packages/mdc-drawer/index.ts","webpack:///./packages/mdc-drawer/node_modules/tabbable/index.js","webpack:///./packages/mdc-drawer/node_modules/xtend/immutable.js","webpack:///./packages/mdc-drawer/component.ts","webpack:///./packages/mdc-drawer/constants.ts","webpack:///./packages/mdc-floating-label/index.ts","webpack:///./packages/mdc-floating-label/constants.ts","webpack:///./packages/mdc-form-field/index.ts","webpack:///./packages/mdc-form-field/component.ts","webpack:///./packages/mdc-form-field/constants.ts","webpack:///./packages/mdc-grid-list/index.ts","webpack:///./packages/mdc-grid-list/component.ts","webpack:///./packages/mdc-grid-list/constants.ts","webpack:///./packages/mdc-icon-button/index.ts","webpack:///./packages/mdc-icon-button/component.ts","webpack:///./packages/mdc-icon-button/constants.ts","webpack:///./packages/mdc-line-ripple/index.ts","webpack:///./packages/mdc-line-ripple/constants.ts","webpack:///./packages/mdc-linear-progress/index.ts","webpack:///./packages/mdc-linear-progress/component.ts","webpack:///./packages/mdc-linear-progress/constants.ts","webpack:///./packages/mdc-list/index.ts","webpack:///./packages/mdc-menu-surface/index.ts","webpack:///./packages/mdc-menu/index.ts","webpack:///./packages/mdc-notched-outline/index.ts","webpack:///./packages/mdc-radio/index.ts","webpack:///./packages/mdc-radio/component.ts","webpack:///./packages/mdc-radio/constants.ts","webpack:///./packages/mdc-ripple/index.ts","webpack:///./packages/mdc-select/index.ts","webpack:///./packages/mdc-select/component.ts","webpack:///./packages/mdc-select/helper-text/constants.ts","webpack:///./packages/mdc-select/icon/constants.ts","webpack:///./packages/mdc-select/helper-text/index.ts","webpack:///./packages/mdc-select/icon/index.ts","webpack:///./packages/mdc-slider/index.ts","webpack:///./packages/mdc-slider/component.ts","webpack:///./packages/mdc-snackbar/index.ts","webpack:///./packages/mdc-snackbar/component.ts","webpack:///./packages/mdc-switch/index.ts","webpack:///./packages/mdc-switch/component.ts","webpack:///./packages/mdc-switch/constants.ts","webpack:///./packages/mdc-tab-bar/index.ts","webpack:///./packages/mdc-tab-bar/component.ts","webpack:///./packages/mdc-tab-scroller/rtl-default-scroller.ts","webpack:///./packages/mdc-tab-scroller/rtl-negative-scroller.ts","webpack:///./packages/mdc-tab-scroller/rtl-reverse-scroller.ts","webpack:///./packages/mdc-tab-indicator/constants.ts","webpack:///./packages/mdc-tab/constants.ts","webpack:///./packages/mdc-tab-bar/constants.ts","webpack:///./packages/mdc-tab-indicator/index.ts","webpack:///./packages/mdc-tab-scroller/index.ts","webpack:///./packages/mdc-tab/index.ts","webpack:///./packages/mdc-textfield/index.ts","webpack:///./packages/mdc-textfield/component.ts","webpack:///./packages/mdc-textfield/character-counter/constants.ts","webpack:///./packages/mdc-textfield/helper-text/constants.ts","webpack:///./packages/mdc-textfield/icon/constants.ts","webpack:///./packages/mdc-textfield/character-counter/index.ts","webpack:///./packages/mdc-textfield/helper-text/index.ts","webpack:///./packages/mdc-textfield/icon/index.ts","webpack:///./packages/mdc-toolbar/index.ts","webpack:///./packages/mdc-toolbar/component.ts","webpack:///./packages/mdc-toolbar/constants.ts","webpack:///./packages/mdc-top-app-bar/index.ts","webpack:///./packages/mdc-top-app-bar/component.ts"],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","define","amd","this","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","value","MDCFoundation","adapter","adapter_","init","destroy","default","__read","Symbol","iterator","r","ar","e","next","done","push","error","__spread","arguments","length","concat","foundation_1","MDCComponent","foundation","args","_i","root_","initialize","apply","foundation_","undefined","getDefaultFoundation","initialSyncWithDOM","attachTo","_args","Error","listen","evtType","handler","addEventListener","unlisten","removeEventListener","emit","evtData","shouldBubble","evt","CustomEvent","bubbles","detail","document","createEvent","initCustomEvent","dispatchEvent","__extends","_extendStatics","extendStatics","b","setPrototypeOf","__proto__","Array","__","constructor","create","__importStar","mod","result","k","component_1","ponyfill_1","util","MDCRipple","_super","_this","disabled","opts","isUnbounded","ripple","unbounded","createAdapter","instance","addClass","className","classList","add","browserSupportsCssVars","supportsCssVariables","window","computeBoundingRect","getBoundingClientRect","containsEventTarget","target","contains","deregisterDocumentInteractionHandler","documentElement","applyPassive","deregisterInteractionHandler","deregisterResizeHandler","getWindowPageOffset","x","pageXOffset","y","pageYOffset","isSurfaceActive","matches","isSurfaceDisabled","Boolean","registerDocumentInteractionHandler","registerInteractionHandler","registerResizeHandler","removeClass","remove","updateCssVariable","varName","style","setProperty","unbounded_","set","setUnbounded_","activate","deactivate","layout","MDCRippleFoundation","dataset","setUnbounded","closest","element","selector","el","parentElement","nativeMatches","webkitMatchesSelector","msMatchesSelector","__assign","assign","t","constants_1","util_1","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","defaultAdapter","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","width","height","initialSize_","layoutFrame_","maxRadius_","unboundedCoords_","left","top","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","handleFocus","blurHandler_","handleBlur","resizeHandler_","cssClasses","strings","numbers","right","bottom","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","_a","ROOT_1","ROOT","UNBOUNDED_1","UNBOUNDED","requestAnimationFrame","layoutInternal_","clearTimeout","FG_ACTIVATION","FG_DEACTIVATION","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","cancelAnimationFrame","BG_FOCUSED","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","forEach","registerDeactivationHandlers_","type","rippleStrings","keys","key","indexOf","activationState","previousActivationEvent","previousActivationEvent_","isSameInteraction","hasActivatedChild","some","resetActivationState_","checkElementMadeActive_","animateActivation_","keyCode","VAR_FG_TRANSLATE_START","VAR_FG_TRANSLATE_END","_b","DEACTIVATION_TIMEOUT_MS","translateStart","translateEnd","_c","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","setTimeout","getNormalizedEventCoords","activationHasEnded","FG_DEACTIVATION_MS","TAP_DELAY_MS","state","animateDeactivation_","maxDim","Math","max","getBoundedRadius","hypotenuse","sqrt","pow","PADDING","floor","INITIAL_ORIGIN_SCALE","updateLayoutCssVars_","VAR_FG_SIZE","VAR_LEFT","VAR_TOP","VAR_FG_SCALE","round","ELEMENTS_KEY_ALLOWED_IN","isNumberArray","selectedIndex","MDCListFoundation","wrapFocus_","isVertical_","isSingleSelectionList_","selectedIndex_","UNSET_INDEX","focusedItemIndex_","useActivatedClass_","ariaCurrentAttrValue_","isCheckboxList_","isRadioList_","addClassForElementIndex","focusItemAtIndex","getAttributeForElementIndex","getFocusedElementIndex","getListItemCount","hasCheckboxAtIndex","hasRadioAtIndex","isCheckboxCheckedAtIndex","isFocusInsideList","isRootFocused","notifyAction","removeClassForElementIndex","setAttributeForElementIndex","setCheckedCheckboxOrRadioAtIndex","setTabIndexForListItemChildren","setWrapFocus","setVerticalOrientation","setSingleSelection","setUseActivatedClass","useActivated","getSelectedIndex","setSelectedIndex","index","isIndexValid_","setCheckboxAtIndex_","setRadioAtIndex_","setSingleSelectionAtIndex_","handleFocusIn","_","listItemIndex","handleFocusOut","setTabindexToFirstSelectedItem_","handleKeydown","isRootListItem","isArrowLeft","isArrowUp","isArrowRight","isArrowDown","isHome","isEnd","isEnter","isSpace","preventDefault","focusLastElement","focusFirstElement","currentIndex","nextIndex","preventDefaultEvent_","focusNextElement","focusPrevElement","tagName","isSelectableList_","setSelectedIndexOnAction_","setTabindexAtIndex_","handleClick","toggleCheckbox","count","prevIndex","lastIndex","toLowerCase","selectedClassName","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_ACTIVATED_CLASS","setAriaForSingleSelectionAtIndex_","ARIA_CURRENT","isAriaCurrent","ariaAttribute","ARIA_SELECTED","ariaAttributeValue","ARIA_CHECKED","isChecked","targetIndex","reduce","minIndex","min","isIndexInRange_","listSize","toggleCheckboxAtIndex_","selectedIndexes","slice","filter","ANCHOR","ANIMATING_CLOSED","ANIMATING_OPEN","FIXED","OPEN","CLOSED_EVENT","OPENED_EVENT","FOCUSABLE_ELEMENTS","join","TRANSITION_OPEN_DURATION","TRANSITION_CLOSE_DURATION","MARGIN_TO_EDGE","ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO","CornerBit","Corner","FIXED_CLASS","FIXED_SCROLLED_CLASS","SHORT_CLASS","SHORT_COLLAPSED_CLASS","SHORT_HAS_ACTION_ITEM_CLASS","DEBOUNCE_THROTTLE_RESIZE_TIME_MS","MAX_TOP_APP_BAR_HEIGHT","ACTION_ITEM_SELECTOR","NAVIGATION_EVENT","NAVIGATION_ICON_SELECTOR","ROOT_SELECTOR","TITLE_SELECTOR","__values","MDCMenuSurfaceFoundation","isOpen_","isQuickOpen_","isHoistedElement_","isFixedPosition_","openAnimationEndTimerId_","closeAnimationEndTimerId_","animationRequestId_","anchorCorner_","TOP_START","anchorMargin_","position_","hasClass","hasAnchor","isElementInContainer","isFocused","isFirstElementFocused","isLastElementFocused","isRtl","getInnerDimensions","getAnchorDimensions","getWindowDimensions","getBodyDimensions","getWindowScroll","setPosition","setMaxHeight","setTransformOrigin","saveFocus","restoreFocus","notifyClose","notifyOpen","setAnchorCorner","corner","setAnchorMargin","margin","setIsHoisted","isHoisted","setFixedPosition","isFixedPosition","setAbsolutePosition","isFinite_","setQuickOpen","quickOpen","isOpen","open","dimensions_","autoPosition_","close","maybeRestoreFocus_","handleBodyClick","shiftKey","isEscape","isTab","measurements_","getAutoLayoutMeasurements_","getOriginCorner_","maxMenuSurfaceHeight","getMenuSurfaceMaxHeight_","verticalAlignment","hasBit_","BOTTOM","horizontalAlignment","RIGHT","horizontalOffset","getHorizontalOriginOffset_","verticalOffset","getVerticalOriginOffset_","anchorSize","surfaceSize","position","adjustPositionForHoistedElement_","anchorRect","bodySize","viewportSize","windowScroll","viewportDistance","TOP_LEFT","isBottomAligned","availableTop","availableBottom","topOverflow","bottomOverflow","setBit_","isFlipRtl","FLIP_RTL","avoidHorizontalOverlap","isAlignedRight","availableLeft","availableRight","leftOverflow","rightOverflow","maxHeight","isBottomAnchored","isRightAligned","rightOffset","avoidVerticalOverlap","e_1","props","props_1","props_1_1","prop","e_1_1","return","childHasFocus","activeElement","bit","num","isFinite","MDCTabIndicatorFoundation","computeContentClientRect","setContentStyleProperty","cssPropertyNameMap","animation","prefixed","standard","transform","transition","jsEventTypeMap","animationend","cssProperty","animationiteration","animationstart","transitionend","isWindow","windowObj","createElement","getCorrectPropertyName","isStandard","getCorrectEventName","eventType","supportsCssVariables_","supportsPassive_","detectEdgePseudoVarBug","node","body","appendChild","computedStyle","getComputedStyle","hasPseudoVarBug","borderTopStyle","parentNode","removeChild","forceRefresh","CSS","supportsCssVars","supportsFunctionPresent","supports","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","globalObj","isSupported_1","passive","pageOffset","clientRect","documentX","documentY","normalizedX","normalizedY","touchEvent","changedTouches","pageX","pageY","mouseEvent","emptyClientRect","MDCChipFoundation","shouldRemoveOnTrailingIconClick_","addClassToLeadingIcon","eventTargetHasClass","getCheckmarkBoundingClientRect","getComputedStyleValue","getRootBoundingClientRect","hasLeadingIcon","notifyInteraction","notifyRemoval","notifySelection","notifyTrailingIconInteraction","removeClassFromLeadingIcon","setStyleProperty","isSelected","SELECTED","setSelected","selected","getShouldRemoveOnTrailingIconClick","setShouldRemoveOnTrailingIconClick","shouldRemove","getDimensions","getRootRect","getCheckmarkRect","checkmarkRect","rootRect","beginExit","CHIP_EXIT","handleInteraction","handleTransitionEnd","propertyName","chipWidth_1","LEADING_ICON","HIDDEN_LEADING_ICON","CHECKMARK","handleTrailingIconInteraction","stopPropagation","MDCList","querySelectorAll","LIST_ITEM_CLASS","isSingleSelectionList","handleClick_","handleClickEvent_","bind","handleKeydown_","handleKeydownEvent_","focusInEventListener_","handleFocusInEvent_","focusOutEventListener_","handleFocusOutEvent_","initializeListType","direction","getAttribute","ARIA_ORIENTATION","vertical","ARIA_ORIENTATION_HORIZONTAL","setAttribute","FOCUSABLE_CHILD_ELEMENTS","checkboxListItems","ARIA_ROLE_CHECKBOX_SELECTOR","singleSelectedListItem","querySelector","radioSelectedListItem","ARIA_CHECKED_RADIO_SELECTOR","preselectedItems","ARIA_CHECKED_CHECKBOX_SELECTOR","map","listItem","listElements","singleSelection","focus","attr","CHECKBOX_SELECTOR","RADIO_SELECTOR","toggleEl","checked","ACTION_EVENT","CHECKBOX_RADIO_SELECTOR","event","initEvent","tabIndexValue","listItemChildren","CHILD_ELEMENTS_TO_TOGGLE_TABINDEX","getListItemIndex_","eventTarget","nearestParent","MDCDismissibleDrawerFoundation","animationFrame_","animationTimer_","elementHasClass","focusActiveNavigationItem","trapFocus","releaseFocus","isOpening","isClosing","ANIMATE","runNextAnimationFrame_","OPENING","CLOSING","isRootElement","isElement_","closed_","opened_","callback","MDCFloatingLabel","shake","shouldShake","float","shouldFloat","getWidth","scrollWidth","MDCFloatingLabelFoundation","shakeAnimationEndHandler_","handleShakeAnimationEnd_","LABEL_SHAKE","LABEL_FLOAT_ABOVE","MDCLineRipple","setRippleCenter","xCoordinate","setStyle","registerEventHandler","deregisterEventHandler","MDCLineRippleFoundation","MENU_SELECTED_LIST_ITEM","MENU_SELECTION_GROUP","ARIA_SELECTED_ATTR","LIST_SELECTOR","SELECTED_EVENT","FOCUS_ROOT_INDEX","DefaultFocusState","foundation_2","MDCNotchedOutline","notchElement_","NOTCH_ELEMENT_SELECTOR","label","transitionDuration","OUTLINE_UPGRADED","NO_LABEL","notch","notchWidth","closeNotch","setNotchWidthProperty","removeNotchWidthProperty","removeProperty","MDCNotchedOutlineFoundation","ACTION_SELECTOR","ARIA_LIVE_LABEL_TEXT_ATTR","CLOSING_EVENT","DISMISS_SELECTOR","LABEL_SELECTOR","OPENING_EVENT","REASON_ACTION","REASON_DISMISS","SURFACE_SELECTOR","DEFAULT_AUTO_DISMISS_TIMEOUT_MS","MAX_AUTO_DISMISS_TIMEOUT_MS","MIN_AUTO_DISMISS_TIMEOUT_MS","SNACKBAR_ANIMATION_CLOSE_TIME_MS","SNACKBAR_ANIMATION_OPEN_TIME_MS","ARIA_LIVE_DELAY_MS","MDCTabScrollerRTL","MDCTabFoundation","focusOnActivate_","setAttr","activateIndicator","deactivateIndicator","notifyInteracted","getOffsetLeft","getOffsetWidth","getContentOffsetLeft","getContentOffsetWidth","isActive","ACTIVE","setFocusOnActivate","focusOnActivate","previousIndicatorClientRect","TABINDEX","computeDimensions","rootWidth","rootLeft","contentWidth","contentLeft","contentRight","rootRight","MDCTextFieldCharacterCounterFoundation","setContent","setCounterValue","currentLength","maxLength","MDCTextFieldHelperTextFoundation","removeAttr","content","setPersistent","isPersistent","HELPER_TEXT_PERSISTENT","setValidation","isValidation","HELPER_TEXT_VALIDATION_MSG","showToScreenReader","ARIA_HIDDEN","setValidity","inputIsValid","helperTextIsPersistent","helperTextIsValidationMsg","validationMsgNeedsDisplay","ROLE","hide_","INITIAL_VALUE","MDCTopAppBarFoundation","wasDocked_","isDockedShowing_","currentAppBarOffsetTop_","isCurrentlyBeingResized_","resizeThrottleId_","resizeDebounceId_","lastScrollPosition_","getViewportScrollY","topAppBarHeight_","getTopAppBarHeight","scrollHandler_","topAppBarScrollHandler_","topAppBarResizeHandler_","checkForUpdate_","offscreenBoundaryTop","hasAnyPixelsOffscreen","hasAnyPixelsOnscreen","partiallyShowing","moveTopAppBar_","offset","abs","currentScrollPosition","diff","throttledResizeHandler_","currentHeight","MDCTopAppBarBaseFoundation","navClickHandler_","notifyNavigationIconClicked","registerNavigationIconInteractionHandler","deregisterNavigationIconInteractionHandler","registerScrollHandler","deregisterScrollHandler","getTotalActionItems","initScrollHandler","initResizeHandler_","destroyScrollHandler","destroyResizeHandler_","MDCCheckboxFoundation","currentCheckState_","TRANSITION_STATE_INIT","currentAnimationClass_","animEndLatchTimer_","enableAnimationEndHandler_","forceLayout","hasNativeControl","isAttachedToDOM","isIndeterminate","removeNativeControlAttr","setNativeControlAttr","setNativeControlDisabled","determineCheckState_","updateAriaChecked_","UPGRADED","setDisabled","DISABLED","handleAnimationEnd","ANIM_END_LATCH_MS","handleChange","transitionCheckState_","oldState","newState","TRANSITION_STATE_UNCHECKED","getTransitionAnimationClass_","TRANSITION_STATE_INDETERMINATE","TRANSITION_STATE_CHECKED","ANIM_UNCHECKED_CHECKED","ANIM_UNCHECKED_INDETERMINATE","ANIM_CHECKED_UNCHECKED","ANIM_CHECKED_INDETERMINATE","ANIM_INDETERMINATE_CHECKED","ANIM_INDETERMINATE_UNCHECKED","ARIA_CHECKED_ATTR","ARIA_CHECKED_INDETERMINATE_VALUE","component_2","INTERACTION_EVENTS","MDCChip","ripple_","id","rippleFactory","leadingIcon_","LEADING_ICON_SELECTOR","trailingIcon_","TRAILING_ICON_SELECTOR","checkmark_","CHECKMARK_SELECTOR","rippleAdapter","handleInteraction_","handleTransitionEnd_","handleTrailingIconInteraction_","getPropertyValue","INTERACTION_EVENT","chipId","REMOVAL_EVENT","SELECTION_EVENT","TRAILING_ICON_INTERACTION_EVENT","ENTRY_ANIMATION_NAME","TRAILING_ICON","MDCChipSetFoundation","selectedChipIds_","removeChip","getSelectedChipIds","select","CHOICE","previouslySelectedChip","handleChipInteraction","FILTER","toggleSelect_","handleChipSelection","chipIsSelected","deselect_","handleChipRemoval","splice","__importDefault","focus_trap_1","createFocusTrapInstance","surfaceEl","focusTrapFactory","initialFocusEl","clickOutsideDeactivates","escapeDeactivates","initialFocus","isScrollable","scrollHeight","offsetHeight","areTopsMisaligned","els","tops","Set","offsetTop","size","MDCDialogFoundation","escapeKeyAction_","CLOSE_ACTION","scrimClickAction_","autoStackButtons_","areButtonsStacked_","addBodyClass","areButtonsStacked","clickDefaultButton","eventTargetMatches","getActionFromEvent","isContentScrollable","notifyClosed","notifyClosing","notifyOpened","notifyOpening","removeBodyClass","reverseButtons","STACKED","setAutoStackButtons","DESTROY_ACTION","handleAnimationTimerEnd_","SCROLL_LOCK","DIALOG_ANIMATION_OPEN_TIME_MS","action","DIALOG_ANIMATION_CLOSE_TIME_MS","getEscapeKeyAction","setEscapeKeyAction","getScrimClickAction","setScrimClickAction","getAutoStackButtons","autoStack","isClick","isScrim","SCRIM_SELECTOR","isDefault","SUPPRESS_DEFAULT_PRESS_SELECTOR","handleDocumentKeydown","detectStackedButtons_","detectScrollableContent_","SCROLLABLE","returnFocusOnDeactivate","tabbable","xtend","activeFocusTraps","trapQueue","activateTrap","trap","activeTrap","pause","trapIndex","deactivateTrap","unpause","focusTrap","userOptions","doc","container","config","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","activateOptions","updateTabbableNodes","onActivate","addListeners","deactivateOptions","removeListeners","onDeactivate","returnFocus","delay","tryFocus","getInitialFocusNode","checkFocusIn","checkPointerDown","capture","checkClick","checkKey","getNodeForOption","optionName","optionValue","isFocusable","Document","stopImmediatePropagation","isEscapeEvent","isTabEvent","checkTab","tabbableNodes","isSelectableInput","fn","LIST_ITEM_DISABLED_CLASS","MDCModalDrawerFoundation","handleScrimClick","MDCFormFieldFoundation","clickHandler_","activateInputRipple","deactivateInputRipple","MDCGridListFoundation","resizeFrame_","alignCenter","getNumberOfTiles","getOffsetWidthForTileAtIndex","setStyleForTilesElement","alignCenter_","gridWidth","itemWidth","tilesWidth","MDCIconButtonToggleFoundation","notifyChange","ARIA_PRESSED","isOn","toggle","ICON_BUTTON_ON","transitionEndHandler_","LINE_RIPPLE_DEACTIVATING","LINE_RIPPLE_ACTIVE","isDeactivating","MDCLinearProgressFoundation","getBuffer","getPrimaryBar","isDeterminate_","INDETERMINATE_CLASS","isReversed_","REVERSED_CLASS","progress_","setDeterminate","isDeterminate","setScale_","setProgress","setBuffer","setReverse","isReversed","CLOSED_CLASS","scaleValue","cachedCssTransformPropertyName_","getTransformPropertyName","MDCMenuSurface","parentEl","anchorElement","handleBodyClick_","registerBodyClickListener_","deregisterBodyClickListener_","focusableElements","firstFocusableElement_","lastFocusableElement_","hoistMenuToBody","setMenuSurfaceAnchorElement","isFixed","origin","previousFocus_","offsetWidth","innerWidth","innerHeight","clientWidth","clientHeight","component_3","foundation_3","MDCMenu","menuSurfaceFactory","listFactory","menuSurfaceFactory_","listFactory_","menuSurface_","list","list_","wrapFocus","handleItemAction_","handleItemAction","items","handleMenuSurfaceOpened_","handleMenuSurfaceOpened","setDefaultFocusState","focusState","getOptionByIndex","setAnchorElement","addClassToElementAtIndex","removeClassFromElementAtIndex","addAttributeToElementAtIndex","removeAttributeFromElementAtIndex","removeAttribute","elementContainsClass","closeSurface","getElementIndex","getParentElement","getSelectedElementIndex","selectionGroup","selectedListItem","notifySelected","item","getMenuItemCount","focusListRoot","MDCMenuFoundation","defaultFocusState_","LIST_ROOT","getSelectionGroup_","handleSelectionGroup_","FIRST_ITEM","LAST_ITEM","NONE","parent","isGroup","NOTCH_ELEMENT_PADDING","OUTLINE_NOTCHED","MDCRadioFoundation","FOCUSED","INVALID","OUTLINED","REQUIRED","SELECTED_ITEM_CLASS","WITH_LEADING_ICON","ARIA_CONTROLS","CHANGE_EVENT","ENHANCED_VALUE_ATTR","HIDDEN_INPUT_SELECTOR","LINE_RIPPLE_SELECTOR","MENU_SELECTOR","NATIVE_CONTROL_SELECTOR","OUTLINE_SELECTOR","SELECTED_ITEM_SELECTOR","SELECTED_TEXT_SELECTOR","LABEL_SCALE","MDCSelectFoundation","foundationMap","leadingIcon","helperText_","helperText","activateBottomLine","deactivateBottomLine","setValue","getValue","floatLabel","getLabelWidth","hasOutline","notchOutline","closeOutline","openMenu","closeMenu","isMenuOpen","checkValidity","setValid","didChange","isDisabled","setHelperTextContent","openNotch","optionHasValue","isRequired","isValid","arrowUp","arrowDown","labelScale","labelWidth","setLeadingIconAriaLabel","setAriaLabel","setLeadingIconContent","MDCSelectHelperText","textContent","MDCSelectHelperTextFoundation","selectIsValid","MDCSelectIcon","getAttr","notifyIconAction","MDCSelectIconFoundation","ICON_EVENT","savedTabIndex_","interactionHandler_","ICON_ROLE","isEnterKey","DISCRETE","FOCUS","HAS_TRACK_MARKER","IN_TRANSIT","IS_DISCRETE","ARIA_DISABLED","ARIA_VALUEMAX","ARIA_VALUEMIN","ARIA_VALUENOW","INPUT_EVENT","LAST_TRACK_MARKER_SELECTOR","PIN_VALUE_MARKER_SELECTOR","STEP_DATA_ATTR","THUMB_CONTAINER_SELECTOR","TRACK_MARKER_CONTAINER_SELECTOR","TRACK_SELECTOR","PAGE_FACTOR","DOWN_EVENTS","UP_EVENTS","MOVE_EVENT_MAP","mousedown","pointerdown","touchstart","KEY_IDS","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","END","HOME","PAGE_DOWN","PAGE_UP","MDCSliderFoundation","NaN","active_","inTransit_","isDiscrete_","hasTrackMarker_","handlingThumbTargetEvt_","min_","max_","step_","value_","disabled_","preventFocusState_","thumbContainerPointerHandler_","interactionStartHandler_","handleDown_","keydownHandler_","handleFocus_","handleBlur_","getTabIndex","registerThumbContainerInteractionHandler","deregisterThumbContainerInteractionHandler","registerBodyInteractionHandler","deregisterBodyInteractionHandler","notifyInput","setThumbContainerStyleProperty","setTrackStyleProperty","setMarkerValue","appendTrackMarkers","removeTrackMarkers","setLastTrackMarkersStyleProperty","isRTL","evtName","getStep","setupTrackMarker","getMin","getMax","step","numMarkers","indivisible","ceil","lastStepRatio","String","rect_","updateUIForCurrentValue_","setValue_","setMax","setMin","setStep","toggleClass_","isNaN","downEvent","setInTransit_","setActive_","moveHandler","moveEvent","handleMove_","moveEventType","upHandler","handleUp_","setValueFromEvt_","getPageX_","targetTouches","computeValueFromPageX_","xPos","pctComplete","keyId","getKeyId_","getValueForKeyId_","kbdEvt","delta","valueNeedsToBeFlipped","shouldFireInput","force","valueSetToBoundary","quantize_","numSteps","translatePx","transformProp","transitionendEvtName","onTransitionEnd_1","inTransit","shouldBePresent","announce","ariaEl","labelEl","priority","labelText","trim","innerHTML","MDCSnackbarFoundation","autoDismissTimer_","autoDismissTimeoutMs_","closeOnEscape_","clearAutoDismissTimer_","getTimeoutMs","reason","setTimeoutMs","timeoutMs","minValue","maxValue","getCloseOnEscape","setCloseOnEscape","closeOnEscape","handleKeyDown","isEscapeKey","handleActionButtonClick","_evt","handleActionIconClick","MDCSwitchFoundation","setNativeControlChecked","setChecked","updateCheckedStyling_","nativeControl","CHECKED","MDCTabScroller","area_","MDCTabScrollerFoundation","AREA_SELECTOR","content_","CONTENT_SELECTOR","eventTargetMatchesSelector","evtTarget","addScrollAreaClass","setScrollAreaStyleProperty","setScrollContentStyleProperty","getScrollContentStyleValue","propName","setScrollAreaScrollLeft","scrollX","scrollLeft","getScrollAreaScrollLeft","getScrollContentOffsetWidth","getScrollAreaOffsetWidth","computeScrollAreaClientRect","computeScrollContentClientRect","computeHorizontalScrollbarHeight","getScrollPosition","getScrollContentWidth","incrementScroll","scrollXIncrement","scrollTo","rtl_default_scroller_1","rtl_negative_scroller_1","rtl_reverse_scroller_1","isAnimating_","horizontalScrollbarHeight","SCROLL_AREA_SCROLL","isRTL_","computeCurrentScrollPositionRTL_","currentTranslateX","calculateCurrentTranslateX_","stopScrollAnimation_","ANIMATING","incrementScrollRTL_","incrementScroll_","scrollToRTL_","scrollTo_","getRTLScroller","rtlScrollerInstance_","rtlScrollerFactory_","transformValue","match","exec","matrixParams","split","a","tx","ty","parseFloat","clampScrollValue_","edges","calculateScrollEdges_","translateX","getScrollPositionRTL","currentScrollX","safeScrollX","scrollDelta","animate_","finalScrollPosition","scrollToRTL","targetScrollX","incrementScrollRTL","getAnimatingScrollPosition_","getAnimatingScrollPosition","initialScrollLeft","newScrollLeft","MDCTabScrollerRTLNegative","rootClientRect","contentClientRect","rightEdgeDelta","MDCTabScrollerRTLReverse","MDCTabScrollerRTLDefault","SCROLL_TEST","horizontalScrollbarHeight_","documentObj","shouldCacheResult","MDCTab","tabIndicatorFactory","MDCTabIndicator","rippleSurface","RIPPLE_SELECTOR","rippleFoundation","tabIndicatorElement","TAB_INDICATOR_SELECTOR","tabIndicator_","INTERACTED_EVENT","tabId","offsetLeft","computeIndicatorClientRect","fading_foundation_1","sliding_foundation_1","FADE","MDCFadingTabIndicatorFoundation","MDCSlidingTabIndicatorFoundation","currentClientRect","widthDelta","xPosition","NO_TRANSITION","ACCEPTABLE_KEYS","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","END_KEY","HOME_KEY","ENTER_KEY","SPACE_KEY","KEYCODE_MAP","Map","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","END_KEYCODE","HOME_KEYCODE","ENTER_KEYCODE","SPACE_KEYCODE","MDCTabBarFoundation","useAutomaticActivation_","setActiveTab","activateTabAtIndex","deactivateTabAtIndex","focusTabAtIndex","getTabIndicatorClientRectAtIndex","getTabDimensionsAtIndex","getPreviousActiveTabIndex","getFocusedTabIndex","getIndexOfTabById","getTabListLength","notifyTabActivated","setUseAutomaticActivation","useAutomaticActivation","activateTab","previousActiveIndex","indexIsInRange_","previousClientRect","scrollIntoView","getKeyFromEvent_","isActivationKey_","determineTargetFromKey_","focusedTabIndex","handleTabInteraction","scrollIntoViewRTL_","scrollIntoView_","maxIndex","shouldGoToEnd","shouldDecrement","shouldIncrement","calculateScrollIncrement_","scrollPosition","barWidth","nextTabDimensions","relativeContentLeft","relativeContentRight","leftIncrement","EXTRA_SCROLL_AMOUNT","rightIncrement","calculateScrollIncrementRTL_","scrollContentWidth","findAdjacentTabIndexClosestToEdge_","tabDimensions","relativeRootLeft","relativeRootRight","relativeRootDelta","leftEdgeIsCloser","rightEdgeIsCloser","findAdjacentTabIndexClosestToEdgeRTL_","rootDelta","has","scrollIncrement","MDCTextFieldCharacterCounter","ICON_SELECTOR","INPUT_SELECTOR","DENSE","FULLWIDTH","HELPER_LINE","TEXTAREA","WITH_TRAILING_ICON","DENSE_LABEL_SCALE","VALIDATION_ATTR_WHITELIST","ALWAYS_FLOAT_TYPES","POINTERDOWN_EVENTS","MDCTextFieldFoundation","isFocused_","receivedUserInput_","isValid_","useNativeValidation_","characterCounter_","characterCounter","trailingIcon","inputFocusHandler_","activateFocus","inputBlurHandler_","deactivateFocus","inputInputHandler_","handleInput","setPointerXOffset_","textFieldInteractionHandler_","handleTextFieldInteraction","validationAttributeChangeHandler_","attributesList","handleValidationAttributeChange","getNativeInput_","shouldAlwaysFloat_","isBadInput_","registerTextFieldInteractionHandler","deregisterTextFieldInteractionHandler","registerInputInteractionHandler","deregisterInputInteractionHandler","registerValidationAttributeChangeHandler","MutationObserver","deregisterValidationAttributeChangeHandler","getNativeInput","activateLineRipple","deactivateLineRipple","setLineRippleTransformOrigin","shakeLabel","hasLabel","validationObserver_","setCharacterCounter_","nativeInput","attributeName","styleValidity_","isDense","styleFocused_","touches","targetEvent","targetClientRect","clientX","autoCompleteFocus","isNativeInputValid_","setUseNativeValidation","useNativeValidation","styleDisabled_","setTrailingIconAriaLabel","setTrailingIconContent","validity","badInput","valid","MDCTextFieldHelperText","MDCTextFieldIcon","MDCTextFieldIconFoundation","MDCToolbarFoundation","checkRowHeightFrame_","scrollFrame_","executedLastChange_","isFixed_","isFixedLastRow_","hasFlexibleFirstRow_","useFlexDefaultBehavior_","calculations_","flexibleExpansionHeight","flexibleExpansionRatio","maxTranslateYDistance","maxTranslateYRatio","scrollThreshold","scrollThresholdRatio","toolbarHeight","toolbarRatio","toolbarRowHeight","getViewportWidth","getOffsetHeight","getFirstRowElementOffsetHeight","setStyleForTitleElement","setStyleForFlexibleRowElement","setStyleForFixedAdjustElement","FIXED_LASTROW","TOOLBAR_ROW_FLEXIBLE","FLEXIBLE_DEFAULT_BEHAVIOR","checkRowHeight_","updateToolbarStyles_","initKeyRatio_","setKeyHeights_","updateAdjustElementStyles","getFlexibleExpansionRatio_","scrollTop","newToolbarRowHeight","getRowHeight_","hasScrolledOutOfThreshold","scrolledOutOfThreshold_","updateToolbarFlexibleState_","updateToolbarFixedState_","updateFlexibleRowElementStyles_","firstRowMaxRatio","breakpoint","TOOLBAR_MOBILE_BREAKPOINT","TOOLBAR_ROW_MOBILE_HEIGHT","TOOLBAR_ROW_HEIGHT","FLEXIBLE_MAX","FLEXIBLE_MIN","translateDistance","FIXED_AT_LAST_ROW","updateElementStylesDefaultBehavior_","maxTitleSize","MAX_TITLE_SIZE","minTitleSize","MIN_TITLE_SIZE","currentTitleSize","MDCFixedTopAppBarFoundation","wasScrolled_","fixedScrollHandler_","currentScroll","MDCShortTopAppBarFoundation","isCollapsed_","shortAppBarScrollHandler_","index_1","autoInit","base","checkbox","chips","dialog","dom","drawer","floatingLabel","formField","gridList","iconButton","lineRipple","linearProgress","menuSurface","menu","notchedOutline","radio","slider","snackbar","switchControl","tabBar","tabIndicator","tabScroller","tab","textField","toolbar","topAppBar","register","MDCCheckbox","MDCChipSet","MDCDialog","MDCDrawer","MDCFormField","MDCGridList","MDCIconButtonToggle","MDCLinearProgress","MDCRadio","MDCSelect","MDCSlider","MDCSnackbar","MDCSwitch","MDCTabBar","MDCTextField","MDCToolbar","MDCTopAppBar","registry","CONSOLE_WARN","console","warn","mdcAutoInit","components","nodes","nodes_1","nodes_1_1","ctorName","Constructor","getOwnPropertyDescriptor","component","writable","componentName","registryValue","deregister","deregisterAll","__export","CB_PROTO_PROPS","createRipple_","nativeControl_","indeterminate","handleChange_","handleAnimationEnd_","installPropertyChangeHooks_","uninstallPropertyChangeHooks_","nativeCb","cbProto","getPrototypeOf","controlState","desc","validDescriptor","nativeGetter","nativeCbDesc","inputPropDesc","BACKGROUND","CHECKMARK_PATH","INDETERMINATE","MIXEDMARK","NATIVE_CONTROL","CHIP_SELECTOR","idCounter","chips_","chipFactory","chipFactory_","instantiateChips_","chip","handleChipInteraction_","handleChipSelection_","handleChipRemoval_","addChip","chipEl","findChipIndex_","chipElements","candidateSelectors","candidateSelector","Element","options","regularTabbables","orderedTabbables","candidates","includeContainer","unshift","candidate","candidateTabindex","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","tabIndex","sort","sortOrderedTabbables","isTabbable","isNodeMatchingSelectorFocusable","isNonTabbableRadio","isHiddenInput","isHidden","focusableCandidateSelector","tabindexAttr","parseInt","isContentEditable","contentEditable","isInput","isRadio","isTabbableRadio","getCheckedRadio","radioSet","ownerDocument","offsetParent","visibility","extend","source","CONTAINER_SELECTOR","container_","buttons_","BUTTON_SELECTOR","defaultButton_","DEFAULT_BUTTON_SELECTOR","focusTrapFactory_","initialFocusEl_","buttonRipples_","buttonEl","focusTrap_","handleDocumentKeydown_","handleLayout_","LAYOUT_EVENTS","handleOpening_","handleClosing_","click","ACTION_ATTRIBUTE","reverse","button","ponyfill","listEl","MODAL","scrim_","handleScrimClick_","previousFocus","activeNavItemEl","CLOSE_EVENT","OPEN_EVENT","DISMISSIBLE","APP_CONTENT_SELECTOR","input_","input","label_","TILE_SELECTOR","tileEl","tilesEl","TILES_SELECTOR","attrName","attrValue","BUFFER_SELECTOR","PRIMARY_BAR_SELECTOR","styleProperty","menuSurfaceConstants","component_4","menuConstants","component_5","component_6","component_7","component_8","labelFactory","lineRippleFactory","outlineFactory","menuFactory","iconFactory","helperTextFactory","isMenuOpen_","selectedText_","targetElement","targetElement_","hasAttribute","helperTextElement","getElementById","enhancedSelectSetup_","labelElement","lineRippleElement","lineRipple_","outlineElement","outline_","menuElement_","initialSyncRequiredState_","addMutationObserverForRequired_","getNormalizedXCoordinate_","handleMenuSelected_","handleMenuOpened_","menu_","focusItemIndex","focusItemEl","handleMenuClosed_","hiddenInput_","enhancedAdapterMethods","getEnhancedSelectAdapterMethods_","disconnect","selectedEl","required","toString","getNativeSelectAdapterMethods_","getCommonAdapterMethods_","getOutlineAdapterMethods_","getLabelAdapterMethods_","getFoundationMap_","BOTTOM_START","setEnhancedSelectedIndex_","isTouchEvent_","selectedItem","previouslySelected","observerHandler","getAttributesList","mutationsList","mutation","observer","observe","attributes","thumbContainer_","track_","pinValueMarker_","trackMarkerContainer_","innerText","toLocaleString","frag","createDocumentFragment","marker","firstChild","lastTrackMarker","origValueNow","parseFloat_","stepUp","amount","stepDown","str","defaultValue","isNumeric","announcerFactory","announce_","surfaceEl_","labelEl_","actionEl_","handleKeyDown_","handleSurfaceClick_","isActionButton_","isActionIcon_","registerKeyDownHandler_","registerSurfaceClickHandler_","deregisterKeyDownHandler_","deregisterSurfaceClickHandler_","actionButtonText","changeHandler_","RIPPLE_SURFACE_SELECTOR","tabIdCounter","tabList_","tabFactory","tabScrollerFactory","instantiateTabs_","tabScroller_","instantiateTabScroller_","handleTabInteraction_","tabElements","getTabElements_","TAB_ACTIVATED_EVENT","TAB_SELECTOR","tabScrollerElement","TAB_SCROLLER_SELECTOR","rtl_scroller_1","currentScrollLeft","clampedScrollLeft","foundation_4","characterCounterFactory","helperTextStrings","nextElementSibling","hasHelperLine","helperTextEl","characterCounterStrings","characterCounterEl","iconElements","pattern","minLength","getRootAdapterMethods_","getInputAdapterMethods_","getLineRippleAdapterMethods_","isTextArea","isOutlined","ripples_","fixedAdjustElement_","titleElement_","firstRowElement","FIRST_ROW_SELECTOR","firstRowElement_","icon","fixedAdjustElement","navIcon_","icons","iconRipples_","scrollTarget_","iconRipple","setScrollTarget","win"],"mappings":"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","file":"material-components-web.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdc\"] = factory();\n\telse\n\t\troot[\"mdc\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdc\"] = factory();\n\telse\n\t\troot[\"mdc\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 78);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MDCFoundation = /** @class */function () {\n function MDCFoundation(adapter) {\n if (adapter === void 0) {\n adapter = {};\n }\n this.adapter_ = adapter;\n }\n Object.defineProperty(MDCFoundation, \"cssClasses\", {\n get: function get() {\n // Classes extending MDCFoundation should implement this method to return an object which exports every\n // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"strings\", {\n get: function get() {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"numbers\", {\n get: function get() {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}\n return {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFoundation, \"defaultAdapter\", {\n get: function get() {\n // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient\n // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter\n // validation.\n return {};\n },\n enumerable: true,\n configurable: true\n });\n MDCFoundation.prototype.init = function () {\n // Subclasses should override this method to perform initialization routines (registering events, etc.)\n };\n MDCFoundation.prototype.destroy = function () {\n // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)\n };\n return MDCFoundation;\n}();\nexports.MDCFoundation = MDCFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCFoundation;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar MDCComponent = /** @class */function () {\n function MDCComponent(root, foundation) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n this.root_ = root;\n this.initialize.apply(this, __spread(args));\n // Note that we initialize foundation here and not within the constructor's default param so that\n // this.root_ is defined and can be used within the foundation class.\n this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation;\n this.foundation_.init();\n this.initialSyncWithDOM();\n }\n MDCComponent.attachTo = function (root) {\n // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and\n // returns an instantiated component with its root set to that element. Also note that in the cases of\n // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized\n // from getDefaultFoundation().\n return new MDCComponent(root, new foundation_1.MDCFoundation({}));\n };\n /* istanbul ignore next: method param only exists for typing purposes; it does not need to be unit tested */\n MDCComponent.prototype.initialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n // Subclasses can override this to do any additional setup work that would be considered part of a\n // \"constructor\". Essentially, it is a hook into the parent constructor before the foundation is\n // initialized. Any additional arguments besides root and foundation will be passed in here.\n };\n MDCComponent.prototype.getDefaultFoundation = function () {\n // Subclasses must override this method to return a properly configured foundation class for the\n // component.\n throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class');\n };\n MDCComponent.prototype.initialSyncWithDOM = function () {\n // Subclasses should override this method if they need to perform work to synchronize with a host DOM\n // object. An example of this would be a form control wrapper that needs to synchronize its internal state\n // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM\n // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.\n };\n MDCComponent.prototype.destroy = function () {\n // Subclasses may implement this method to release any resources / deregister any listeners they have\n // attached. An example of this might be deregistering a resize event from the window object.\n this.foundation_.destroy();\n };\n MDCComponent.prototype.listen = function (evtType, handler) {\n this.root_.addEventListener(evtType, handler);\n };\n MDCComponent.prototype.unlisten = function (evtType, handler) {\n this.root_.removeEventListener(evtType, handler);\n };\n /**\n * Fires a cross-browser-compatible custom event from the component root of the given type, with the given data.\n */\n MDCComponent.prototype.emit = function (evtType, evtData, shouldBubble) {\n if (shouldBubble === void 0) {\n shouldBubble = false;\n }\n var evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent(evtType, {\n bubbles: shouldBubble,\n detail: evtData\n });\n } else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(evtType, shouldBubble, false, evtData);\n }\n this.root_.dispatchEvent(evt);\n };\n return MDCComponent;\n}();\nexports.MDCComponent = MDCComponent;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCComponent;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar foundation_1 = __webpack_require__(4);\nvar util = __importStar(__webpack_require__(11));\nvar MDCRipple = /** @class */function (_super) {\n __extends(MDCRipple, _super);\n function MDCRipple() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.disabled = false;\n return _this;\n }\n MDCRipple.attachTo = function (root, opts) {\n if (opts === void 0) {\n opts = { isUnbounded: undefined };\n }\n var ripple = new MDCRipple(root);\n // Only override unbounded behavior if option is explicitly specified\n if (opts.isUnbounded !== undefined) {\n ripple.unbounded = opts.isUnbounded;\n }\n return ripple;\n };\n MDCRipple.createAdapter = function (instance) {\n return {\n addClass: function addClass(className) {\n return instance.root_.classList.add(className);\n },\n browserSupportsCssVars: function browserSupportsCssVars() {\n return util.supportsCssVariables(window);\n },\n computeBoundingRect: function computeBoundingRect() {\n return instance.root_.getBoundingClientRect();\n },\n containsEventTarget: function containsEventTarget(target) {\n return instance.root_.contains(target);\n },\n deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) {\n return document.documentElement.removeEventListener(evtType, handler, util.applyPassive());\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return instance.root_.removeEventListener(evtType, handler, util.applyPassive());\n },\n deregisterResizeHandler: function deregisterResizeHandler(handler) {\n return window.removeEventListener('resize', handler);\n },\n getWindowPageOffset: function getWindowPageOffset() {\n return { x: window.pageXOffset, y: window.pageYOffset };\n },\n isSurfaceActive: function isSurfaceActive() {\n return ponyfill_1.matches(instance.root_, ':active');\n },\n isSurfaceDisabled: function isSurfaceDisabled() {\n return Boolean(instance.disabled);\n },\n isUnbounded: function isUnbounded() {\n return Boolean(instance.unbounded);\n },\n registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) {\n return document.documentElement.addEventListener(evtType, handler, util.applyPassive());\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return instance.root_.addEventListener(evtType, handler, util.applyPassive());\n },\n registerResizeHandler: function registerResizeHandler(handler) {\n return window.addEventListener('resize', handler);\n },\n removeClass: function removeClass(className) {\n return instance.root_.classList.remove(className);\n },\n updateCssVariable: function updateCssVariable(varName, value) {\n return instance.root_.style.setProperty(varName, value);\n }\n };\n };\n Object.defineProperty(MDCRipple.prototype, \"unbounded\", {\n get: function get() {\n return Boolean(this.unbounded_);\n },\n set: function set(unbounded) {\n this.unbounded_ = Boolean(unbounded);\n this.setUnbounded_();\n },\n enumerable: true,\n configurable: true\n });\n MDCRipple.prototype.activate = function () {\n this.foundation_.activate();\n };\n MDCRipple.prototype.deactivate = function () {\n this.foundation_.deactivate();\n };\n MDCRipple.prototype.layout = function () {\n this.foundation_.layout();\n };\n MDCRipple.prototype.getDefaultFoundation = function () {\n return new foundation_1.MDCRippleFoundation(MDCRipple.createAdapter(this));\n };\n MDCRipple.prototype.initialSyncWithDOM = function () {\n var root = this.root_;\n this.unbounded = 'mdcRippleIsUnbounded' in root.dataset;\n };\n /**\n * Closure Compiler throws an access control error when directly accessing a\n * protected or private property inside a getter/setter, like unbounded above.\n * By accessing the protected property inside a method, we solve that problem.\n * That's why this function exists.\n */\n MDCRipple.prototype.setUnbounded_ = function () {\n this.foundation_.setUnbounded(Boolean(this.unbounded_));\n };\n return MDCRipple;\n}(component_1.MDCComponent);\nexports.MDCRipple = MDCRipple;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @fileoverview A \"ponyfill\" is a polyfill that doesn't modify the global prototype chain.\n * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.\n */\nfunction closest(element, selector) {\n if (element.closest) {\n return element.closest(selector);\n }\n var el = element;\n while (el) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n}\nexports.closest = closest;\nfunction matches(element, selector) {\n var nativeMatches = element.matches || element.webkitMatchesSelector || element.msMatchesSelector;\n return nativeMatches.call(element, selector);\n}\nexports.matches = matches;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(83);\nvar util_1 = __webpack_require__(11);\n// Activation events registered on the root element of each instance for activation\nvar ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown'];\n// Deactivation events registered on documentElement when a pointer-related down event occurs\nvar POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu'];\n// simultaneous nested activations\nvar activatedTargets = [];\nvar MDCRippleFoundation = /** @class */function (_super) {\n __extends(MDCRippleFoundation, _super);\n function MDCRippleFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCRippleFoundation.defaultAdapter, adapter)) || this;\n _this.activationAnimationHasEnded_ = false;\n _this.activationTimer_ = 0;\n _this.fgDeactivationRemovalTimer_ = 0;\n _this.fgScale_ = '0';\n _this.frame_ = { width: 0, height: 0 };\n _this.initialSize_ = 0;\n _this.layoutFrame_ = 0;\n _this.maxRadius_ = 0;\n _this.unboundedCoords_ = { left: 0, top: 0 };\n _this.activationState_ = _this.defaultActivationState_();\n _this.activationTimerCallback_ = function () {\n _this.activationAnimationHasEnded_ = true;\n _this.runDeactivationUXLogicIfReady_();\n };\n _this.activateHandler_ = function (e) {\n return _this.activate_(e);\n };\n _this.deactivateHandler_ = function () {\n return _this.deactivate_();\n };\n _this.focusHandler_ = function () {\n return _this.handleFocus();\n };\n _this.blurHandler_ = function () {\n return _this.handleBlur();\n };\n _this.resizeHandler_ = function () {\n return _this.layout();\n };\n return _this;\n }\n Object.defineProperty(MDCRippleFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n browserSupportsCssVars: function browserSupportsCssVars() {\n return true;\n },\n computeBoundingRect: function computeBoundingRect() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n containsEventTarget: function containsEventTarget() {\n return true;\n },\n deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n },\n deregisterResizeHandler: function deregisterResizeHandler() {\n return undefined;\n },\n getWindowPageOffset: function getWindowPageOffset() {\n return { x: 0, y: 0 };\n },\n isSurfaceActive: function isSurfaceActive() {\n return true;\n },\n isSurfaceDisabled: function isSurfaceDisabled() {\n return true;\n },\n isUnbounded: function isUnbounded() {\n return true;\n },\n registerDocumentInteractionHandler: function registerDocumentInteractionHandler() {\n return undefined;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n },\n registerResizeHandler: function registerResizeHandler() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n updateCssVariable: function updateCssVariable() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCRippleFoundation.prototype.init = function () {\n var _this = this;\n var supportsPressRipple = this.supportsPressRipple_();\n this.registerRootHandlers_(supportsPressRipple);\n if (supportsPressRipple) {\n var _a = MDCRippleFoundation.cssClasses,\n ROOT_1 = _a.ROOT,\n UNBOUNDED_1 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter_.addClass(ROOT_1);\n if (_this.adapter_.isUnbounded()) {\n _this.adapter_.addClass(UNBOUNDED_1);\n // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple\n _this.layoutInternal_();\n }\n });\n }\n };\n MDCRippleFoundation.prototype.destroy = function () {\n var _this = this;\n if (this.supportsPressRipple_()) {\n if (this.activationTimer_) {\n clearTimeout(this.activationTimer_);\n this.activationTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);\n }\n if (this.fgDeactivationRemovalTimer_) {\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.fgDeactivationRemovalTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);\n }\n var _a = MDCRippleFoundation.cssClasses,\n ROOT_2 = _a.ROOT,\n UNBOUNDED_2 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter_.removeClass(ROOT_2);\n _this.adapter_.removeClass(UNBOUNDED_2);\n _this.removeCssVars_();\n });\n }\n this.deregisterRootHandlers_();\n this.deregisterDeactivationHandlers_();\n };\n /**\n * @param evt Optional event containing position information.\n */\n MDCRippleFoundation.prototype.activate = function (evt) {\n this.activate_(evt);\n };\n MDCRippleFoundation.prototype.deactivate = function () {\n this.deactivate_();\n };\n MDCRippleFoundation.prototype.layout = function () {\n var _this = this;\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n this.layoutFrame_ = requestAnimationFrame(function () {\n _this.layoutInternal_();\n _this.layoutFrame_ = 0;\n });\n };\n MDCRippleFoundation.prototype.setUnbounded = function (unbounded) {\n var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED;\n if (unbounded) {\n this.adapter_.addClass(UNBOUNDED);\n } else {\n this.adapter_.removeClass(UNBOUNDED);\n }\n };\n MDCRippleFoundation.prototype.handleFocus = function () {\n var _this = this;\n requestAnimationFrame(function () {\n return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n MDCRippleFoundation.prototype.handleBlur = function () {\n var _this = this;\n requestAnimationFrame(function () {\n return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n /**\n * We compute this property so that we are not querying information about the client\n * until the point in time where the foundation requests it. This prevents scenarios where\n * client-side feature-detection may happen too early, such as when components are rendered on the server\n * and then initialized at mount time on the client.\n */\n MDCRippleFoundation.prototype.supportsPressRipple_ = function () {\n return this.adapter_.browserSupportsCssVars();\n };\n MDCRippleFoundation.prototype.defaultActivationState_ = function () {\n return {\n activationEvent: undefined,\n hasDeactivationUXRun: false,\n isActivated: false,\n isProgrammatic: false,\n wasActivatedByPointer: false,\n wasElementMadeActive: false\n };\n };\n /**\n * supportsPressRipple Passed from init to save a redundant function call\n */\n MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) {\n var _this = this;\n if (supportsPressRipple) {\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.registerInteractionHandler(evtType, _this.activateHandler_);\n });\n if (this.adapter_.isUnbounded()) {\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n }\n this.adapter_.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter_.registerInteractionHandler('blur', this.blurHandler_);\n };\n MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) {\n var _this = this;\n if (evt.type === 'keydown') {\n this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_);\n } else {\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n }\n };\n MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () {\n var _this = this;\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.deregisterInteractionHandler(evtType, _this.activateHandler_);\n });\n this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);\n if (this.adapter_.isUnbounded()) {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n };\n MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () {\n var _this = this;\n this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_);\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter_.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n };\n MDCRippleFoundation.prototype.removeCssVars_ = function () {\n var _this = this;\n var rippleStrings = MDCRippleFoundation.strings;\n var keys = Object.keys(rippleStrings);\n keys.forEach(function (key) {\n if (key.indexOf('VAR_') === 0) {\n _this.adapter_.updateCssVariable(rippleStrings[key], null);\n }\n });\n };\n MDCRippleFoundation.prototype.activate_ = function (evt) {\n var _this = this;\n if (this.adapter_.isSurfaceDisabled()) {\n return;\n }\n var activationState = this.activationState_;\n if (activationState.isActivated) {\n return;\n }\n // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction\n var previousActivationEvent = this.previousActivationEvent_;\n var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type;\n if (isSameInteraction) {\n return;\n }\n activationState.isActivated = true;\n activationState.isProgrammatic = evt === undefined;\n activationState.activationEvent = evt;\n activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown');\n var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) {\n return _this.adapter_.containsEventTarget(target);\n });\n if (hasActivatedChild) {\n // Immediately reset activation state, while preserving logic that prevents touch follow-on events\n this.resetActivationState_();\n return;\n }\n if (evt !== undefined) {\n activatedTargets.push(evt.target);\n this.registerDeactivationHandlers_(evt);\n }\n activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n this.animateActivation_();\n }\n requestAnimationFrame(function () {\n // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples\n activatedTargets = [];\n if (!activationState.wasElementMadeActive && evt !== undefined && (evt.key === ' ' || evt.keyCode === 32)) {\n // If space was pressed, try again within an rAF call to detect :active, because different UAs report\n // active states inconsistently when they're called within event handling code:\n // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971\n // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741\n // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS\n // variable is set within a rAF callback for a submit button interaction (#2241).\n activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n _this.animateActivation_();\n }\n }\n if (!activationState.wasElementMadeActive) {\n // Reset activation state immediately if element was not made active.\n _this.activationState_ = _this.defaultActivationState_();\n }\n });\n };\n MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) {\n return evt !== undefined && evt.type === 'keydown' ? this.adapter_.isSurfaceActive() : true;\n };\n MDCRippleFoundation.prototype.animateActivation_ = function () {\n var _this = this;\n var _a = MDCRippleFoundation.strings,\n VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START,\n VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END;\n var _b = MDCRippleFoundation.cssClasses,\n FG_DEACTIVATION = _b.FG_DEACTIVATION,\n FG_ACTIVATION = _b.FG_ACTIVATION;\n var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;\n this.layoutInternal_();\n var translateStart = '';\n var translateEnd = '';\n if (!this.adapter_.isUnbounded()) {\n var _c = this.getFgTranslationCoordinates_(),\n startPoint = _c.startPoint,\n endPoint = _c.endPoint;\n translateStart = startPoint.x + \"px, \" + startPoint.y + \"px\";\n translateEnd = endPoint.x + \"px, \" + endPoint.y + \"px\";\n }\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);\n // Cancel any ongoing activation/deactivation animations\n clearTimeout(this.activationTimer_);\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.rmBoundedActivationClasses_();\n this.adapter_.removeClass(FG_DEACTIVATION);\n // Force layout in order to re-trigger the animation.\n this.adapter_.computeBoundingRect();\n this.adapter_.addClass(FG_ACTIVATION);\n this.activationTimer_ = setTimeout(function () {\n return _this.activationTimerCallback_();\n }, DEACTIVATION_TIMEOUT_MS);\n };\n MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () {\n var _a = this.activationState_,\n activationEvent = _a.activationEvent,\n wasActivatedByPointer = _a.wasActivatedByPointer;\n var startPoint;\n if (wasActivatedByPointer) {\n startPoint = util_1.getNormalizedEventCoords(activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect());\n } else {\n startPoint = {\n x: this.frame_.width / 2,\n y: this.frame_.height / 2\n };\n }\n // Center the element around the start point.\n startPoint = {\n x: startPoint.x - this.initialSize_ / 2,\n y: startPoint.y - this.initialSize_ / 2\n };\n var endPoint = {\n x: this.frame_.width / 2 - this.initialSize_ / 2,\n y: this.frame_.height / 2 - this.initialSize_ / 2\n };\n return { startPoint: startPoint, endPoint: endPoint };\n };\n MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () {\n var _this = this;\n // This method is called both when a pointing device is released, and when the activation animation ends.\n // The deactivation animation should only run after both of those occur.\n var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;\n var _a = this.activationState_,\n hasDeactivationUXRun = _a.hasDeactivationUXRun,\n isActivated = _a.isActivated;\n var activationHasEnded = hasDeactivationUXRun || !isActivated;\n if (activationHasEnded && this.activationAnimationHasEnded_) {\n this.rmBoundedActivationClasses_();\n this.adapter_.addClass(FG_DEACTIVATION);\n this.fgDeactivationRemovalTimer_ = setTimeout(function () {\n _this.adapter_.removeClass(FG_DEACTIVATION);\n }, constants_1.numbers.FG_DEACTIVATION_MS);\n }\n };\n MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () {\n var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION;\n this.adapter_.removeClass(FG_ACTIVATION);\n this.activationAnimationHasEnded_ = false;\n this.adapter_.computeBoundingRect();\n };\n MDCRippleFoundation.prototype.resetActivationState_ = function () {\n var _this = this;\n this.previousActivationEvent_ = this.activationState_.activationEvent;\n this.activationState_ = this.defaultActivationState_();\n // Touch devices may fire additional events for the same interaction within a short time.\n // Store the previous event until it's safe to assume that subsequent events are for new interactions.\n setTimeout(function () {\n return _this.previousActivationEvent_ = undefined;\n }, MDCRippleFoundation.numbers.TAP_DELAY_MS);\n };\n MDCRippleFoundation.prototype.deactivate_ = function () {\n var _this = this;\n var activationState = this.activationState_;\n // This can happen in scenarios such as when you have a keyup event that blurs the element.\n if (!activationState.isActivated) {\n return;\n }\n var state = __assign({}, activationState);\n if (activationState.isProgrammatic) {\n requestAnimationFrame(function () {\n return _this.animateDeactivation_(state);\n });\n this.resetActivationState_();\n } else {\n this.deregisterDeactivationHandlers_();\n requestAnimationFrame(function () {\n _this.activationState_.hasDeactivationUXRun = true;\n _this.animateDeactivation_(state);\n _this.resetActivationState_();\n });\n }\n };\n MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) {\n var wasActivatedByPointer = _a.wasActivatedByPointer,\n wasElementMadeActive = _a.wasElementMadeActive;\n if (wasActivatedByPointer || wasElementMadeActive) {\n this.runDeactivationUXLogicIfReady_();\n }\n };\n MDCRippleFoundation.prototype.layoutInternal_ = function () {\n var _this = this;\n this.frame_ = this.adapter_.computeBoundingRect();\n var maxDim = Math.max(this.frame_.height, this.frame_.width);\n // Surface diameter is treated differently for unbounded vs. bounded ripples.\n // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\n // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\n // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\n // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\n // `overflow: hidden`.\n var getBoundedRadius = function getBoundedRadius() {\n var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2));\n return hypotenuse + MDCRippleFoundation.numbers.PADDING;\n };\n this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius();\n // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\n this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE);\n this.fgScale_ = \"\" + this.maxRadius_ / this.initialSize_;\n this.updateLayoutCssVars_();\n };\n MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () {\n var _a = MDCRippleFoundation.strings,\n VAR_FG_SIZE = _a.VAR_FG_SIZE,\n VAR_LEFT = _a.VAR_LEFT,\n VAR_TOP = _a.VAR_TOP,\n VAR_FG_SCALE = _a.VAR_FG_SCALE;\n this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + \"px\");\n this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_);\n if (this.adapter_.isUnbounded()) {\n this.unboundedCoords_ = {\n left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),\n top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)\n };\n this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + \"px\");\n this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + \"px\");\n }\n };\n return MDCRippleFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCRippleFoundation = MDCRippleFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCRippleFoundation;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(35);\nvar ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select'];\nfunction isNumberArray(selectedIndex) {\n return selectedIndex instanceof Array;\n}\nvar MDCListFoundation = /** @class */function (_super) {\n __extends(MDCListFoundation, _super);\n function MDCListFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCListFoundation.defaultAdapter, adapter)) || this;\n _this.wrapFocus_ = false;\n _this.isVertical_ = true;\n _this.isSingleSelectionList_ = false;\n _this.selectedIndex_ = constants_1.numbers.UNSET_INDEX;\n _this.focusedItemIndex_ = constants_1.numbers.UNSET_INDEX;\n _this.useActivatedClass_ = false;\n _this.ariaCurrentAttrValue_ = null;\n _this.isCheckboxList_ = false;\n _this.isRadioList_ = false;\n return _this;\n }\n Object.defineProperty(MDCListFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCListFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClassForElementIndex: function addClassForElementIndex() {\n return undefined;\n },\n focusItemAtIndex: function focusItemAtIndex() {\n return undefined;\n },\n getAttributeForElementIndex: function getAttributeForElementIndex() {\n return null;\n },\n getFocusedElementIndex: function getFocusedElementIndex() {\n return 0;\n },\n getListItemCount: function getListItemCount() {\n return 0;\n },\n hasCheckboxAtIndex: function hasCheckboxAtIndex() {\n return false;\n },\n hasRadioAtIndex: function hasRadioAtIndex() {\n return false;\n },\n isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex() {\n return false;\n },\n isFocusInsideList: function isFocusInsideList() {\n return false;\n },\n isRootFocused: function isRootFocused() {\n return false;\n },\n notifyAction: function notifyAction() {\n return undefined;\n },\n removeClassForElementIndex: function removeClassForElementIndex() {\n return undefined;\n },\n setAttributeForElementIndex: function setAttributeForElementIndex() {\n return undefined;\n },\n setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex() {\n return undefined;\n },\n setTabIndexForListItemChildren: function setTabIndexForListItemChildren() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCListFoundation.prototype.layout = function () {\n if (this.adapter_.getListItemCount() === 0) {\n return;\n }\n if (this.adapter_.hasCheckboxAtIndex(0)) {\n this.isCheckboxList_ = true;\n } else if (this.adapter_.hasRadioAtIndex(0)) {\n this.isRadioList_ = true;\n }\n };\n /**\n * Sets the private wrapFocus_ variable.\n */\n MDCListFoundation.prototype.setWrapFocus = function (value) {\n this.wrapFocus_ = value;\n };\n /**\n * Sets the isVertical_ private variable.\n */\n MDCListFoundation.prototype.setVerticalOrientation = function (value) {\n this.isVertical_ = value;\n };\n /**\n * Sets the isSingleSelectionList_ private variable.\n */\n MDCListFoundation.prototype.setSingleSelection = function (value) {\n this.isSingleSelectionList_ = value;\n };\n /**\n * Sets the useActivatedClass_ private variable.\n */\n MDCListFoundation.prototype.setUseActivatedClass = function (useActivated) {\n this.useActivatedClass_ = useActivated;\n };\n MDCListFoundation.prototype.getSelectedIndex = function () {\n return this.selectedIndex_;\n };\n MDCListFoundation.prototype.setSelectedIndex = function (index) {\n if (!this.isIndexValid_(index)) {\n return;\n }\n if (this.isCheckboxList_) {\n this.setCheckboxAtIndex_(index);\n } else if (this.isRadioList_) {\n this.setRadioAtIndex_(index);\n } else {\n this.setSingleSelectionAtIndex_(index);\n }\n };\n /**\n * Focus in handler for the list items.\n */\n MDCListFoundation.prototype.handleFocusIn = function (_, listItemIndex) {\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '0');\n }\n };\n /**\n * Focus out handler for the list items.\n */\n MDCListFoundation.prototype.handleFocusOut = function (_, listItemIndex) {\n var _this = this;\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '-1');\n }\n /**\n * Between Focusout & Focusin some browsers do not have focus on any element. Setting a delay to wait till the focus\n * is moved to next element.\n */\n setTimeout(function () {\n if (!_this.adapter_.isFocusInsideList()) {\n _this.setTabindexToFirstSelectedItem_();\n }\n }, 0);\n };\n /**\n * Key handler for the list.\n */\n MDCListFoundation.prototype.handleKeydown = function (evt, isRootListItem, listItemIndex) {\n var isArrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n var isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;\n var isArrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39;\n var isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;\n var isHome = evt.key === 'Home' || evt.keyCode === 36;\n var isEnd = evt.key === 'End' || evt.keyCode === 35;\n var isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n var isSpace = evt.key === 'Space' || evt.keyCode === 32;\n if (this.adapter_.isRootFocused()) {\n if (isArrowUp || isEnd) {\n evt.preventDefault();\n this.focusLastElement();\n } else if (isArrowDown || isHome) {\n evt.preventDefault();\n this.focusFirstElement();\n }\n return;\n }\n var currentIndex = this.adapter_.getFocusedElementIndex();\n if (currentIndex === -1) {\n currentIndex = listItemIndex;\n if (currentIndex < 0) {\n // If this event doesn't have a mdc-list-item ancestor from the\n // current list (not from a sublist), return early.\n return;\n }\n }\n var nextIndex;\n if (this.isVertical_ && isArrowDown || !this.isVertical_ && isArrowRight) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusNextElement(currentIndex);\n } else if (this.isVertical_ && isArrowUp || !this.isVertical_ && isArrowLeft) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusPrevElement(currentIndex);\n } else if (isHome) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusFirstElement();\n } else if (isEnd) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusLastElement();\n } else if (isEnter || isSpace) {\n if (isRootListItem) {\n // Return early if enter key is pressed on anchor element which triggers synthetic MouseEvent event.\n var target = evt.target;\n if (target && target.tagName === 'A' && isEnter) {\n return;\n }\n this.preventDefaultEvent_(evt);\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(currentIndex);\n }\n this.adapter_.notifyAction(currentIndex);\n }\n }\n this.focusedItemIndex_ = currentIndex;\n if (nextIndex !== undefined) {\n this.setTabindexAtIndex_(nextIndex);\n this.focusedItemIndex_ = nextIndex;\n }\n };\n /**\n * Click handler for the list.\n */\n MDCListFoundation.prototype.handleClick = function (index, toggleCheckbox) {\n if (index === constants_1.numbers.UNSET_INDEX) {\n return;\n }\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(index, toggleCheckbox);\n }\n this.adapter_.notifyAction(index);\n this.setTabindexAtIndex_(index);\n this.focusedItemIndex_ = index;\n };\n /**\n * Focuses the next element on the list.\n */\n MDCListFoundation.prototype.focusNextElement = function (index) {\n var count = this.adapter_.getListItemCount();\n var nextIndex = index + 1;\n if (nextIndex >= count) {\n if (this.wrapFocus_) {\n nextIndex = 0;\n } else {\n // Return early because last item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(nextIndex);\n return nextIndex;\n };\n /**\n * Focuses the previous element on the list.\n */\n MDCListFoundation.prototype.focusPrevElement = function (index) {\n var prevIndex = index - 1;\n if (prevIndex < 0) {\n if (this.wrapFocus_) {\n prevIndex = this.adapter_.getListItemCount() - 1;\n } else {\n // Return early because first item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(prevIndex);\n return prevIndex;\n };\n MDCListFoundation.prototype.focusFirstElement = function () {\n this.adapter_.focusItemAtIndex(0);\n return 0;\n };\n MDCListFoundation.prototype.focusLastElement = function () {\n var lastIndex = this.adapter_.getListItemCount() - 1;\n this.adapter_.focusItemAtIndex(lastIndex);\n return lastIndex;\n };\n /**\n * Ensures that preventDefault is only called if the containing element doesn't\n * consume the event, and it will cause an unintended scroll.\n */\n MDCListFoundation.prototype.preventDefaultEvent_ = function (evt) {\n var target = evt.target;\n var tagName = (\"\" + target.tagName).toLowerCase();\n if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {\n evt.preventDefault();\n }\n };\n MDCListFoundation.prototype.setSingleSelectionAtIndex_ = function (index) {\n if (this.selectedIndex_ === index) {\n return;\n }\n var selectedClassName = constants_1.cssClasses.LIST_ITEM_SELECTED_CLASS;\n if (this.useActivatedClass_) {\n selectedClassName = constants_1.cssClasses.LIST_ITEM_ACTIVATED_CLASS;\n }\n if (this.selectedIndex_ !== constants_1.numbers.UNSET_INDEX) {\n this.adapter_.removeClassForElementIndex(this.selectedIndex_, selectedClassName);\n }\n this.adapter_.addClassForElementIndex(index, selectedClassName);\n this.setAriaForSingleSelectionAtIndex_(index);\n this.selectedIndex_ = index;\n };\n /**\n * Sets aria attribute for single selection at given index.\n */\n MDCListFoundation.prototype.setAriaForSingleSelectionAtIndex_ = function (index) {\n // Detect the presence of aria-current and get the value only during list initialization when it is in unset state.\n if (this.selectedIndex_ === constants_1.numbers.UNSET_INDEX) {\n this.ariaCurrentAttrValue_ = this.adapter_.getAttributeForElementIndex(index, constants_1.strings.ARIA_CURRENT);\n }\n var isAriaCurrent = this.ariaCurrentAttrValue_ !== null;\n var ariaAttribute = isAriaCurrent ? constants_1.strings.ARIA_CURRENT : constants_1.strings.ARIA_SELECTED;\n if (this.selectedIndex_ !== constants_1.numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_, ariaAttribute, 'false');\n }\n var ariaAttributeValue = isAriaCurrent ? this.ariaCurrentAttrValue_ : 'true';\n this.adapter_.setAttributeForElementIndex(index, ariaAttribute, ariaAttributeValue);\n };\n /**\n * Toggles radio at give index. Radio doesn't change the checked state if it is already checked.\n */\n MDCListFoundation.prototype.setRadioAtIndex_ = function (index) {\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, true);\n if (this.selectedIndex_ !== constants_1.numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_, constants_1.strings.ARIA_CHECKED, 'false');\n }\n this.adapter_.setAttributeForElementIndex(index, constants_1.strings.ARIA_CHECKED, 'true');\n this.selectedIndex_ = index;\n };\n MDCListFoundation.prototype.setCheckboxAtIndex_ = function (index) {\n for (var i = 0; i < this.adapter_.getListItemCount(); i++) {\n var isChecked = false;\n if (index.indexOf(i) >= 0) {\n isChecked = true;\n }\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(i, isChecked);\n this.adapter_.setAttributeForElementIndex(i, constants_1.strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n }\n this.selectedIndex_ = index;\n };\n MDCListFoundation.prototype.setTabindexAtIndex_ = function (index) {\n if (this.focusedItemIndex_ === constants_1.numbers.UNSET_INDEX && index !== 0) {\n // If no list item was selected set first list item's tabindex to -1.\n // Generally, tabindex is set to 0 on first list item of list that has no preselected items.\n this.adapter_.setAttributeForElementIndex(0, 'tabindex', '-1');\n } else if (this.focusedItemIndex_ >= 0 && this.focusedItemIndex_ !== index) {\n this.adapter_.setAttributeForElementIndex(this.focusedItemIndex_, 'tabindex', '-1');\n }\n this.adapter_.setAttributeForElementIndex(index, 'tabindex', '0');\n };\n /**\n * @return Return true if it is single selectin list, checkbox list or radio list.\n */\n MDCListFoundation.prototype.isSelectableList_ = function () {\n return this.isSingleSelectionList_ || this.isCheckboxList_ || this.isRadioList_;\n };\n MDCListFoundation.prototype.setTabindexToFirstSelectedItem_ = function () {\n var targetIndex = 0;\n if (this.isSelectableList_()) {\n if (typeof this.selectedIndex_ === 'number' && this.selectedIndex_ !== constants_1.numbers.UNSET_INDEX) {\n targetIndex = this.selectedIndex_;\n } else if (isNumberArray(this.selectedIndex_) && this.selectedIndex_.length > 0) {\n targetIndex = this.selectedIndex_.reduce(function (currentIndex, minIndex) {\n return Math.min(currentIndex, minIndex);\n });\n }\n }\n this.setTabindexAtIndex_(targetIndex);\n };\n MDCListFoundation.prototype.isIndexValid_ = function (index) {\n var _this = this;\n if (index instanceof Array) {\n if (!this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Array of index is only supported for checkbox based list');\n }\n if (index.length === 0) {\n return true;\n } else {\n return index.some(function (i) {\n return _this.isIndexInRange_(i);\n });\n }\n } else if (typeof index === 'number') {\n if (this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Expected array of index for checkbox based list but got number: ' + index);\n }\n return this.isIndexInRange_(index);\n } else {\n return false;\n }\n };\n MDCListFoundation.prototype.isIndexInRange_ = function (index) {\n var listSize = this.adapter_.getListItemCount();\n return index >= 0 && index < listSize;\n };\n MDCListFoundation.prototype.setSelectedIndexOnAction_ = function (index, toggleCheckbox) {\n if (toggleCheckbox === void 0) {\n toggleCheckbox = true;\n }\n if (this.isCheckboxList_) {\n this.toggleCheckboxAtIndex_(index, toggleCheckbox);\n } else {\n this.setSelectedIndex(index);\n }\n };\n MDCListFoundation.prototype.toggleCheckboxAtIndex_ = function (index, toggleCheckbox) {\n var isChecked = this.adapter_.isCheckboxCheckedAtIndex(index);\n if (toggleCheckbox) {\n isChecked = !isChecked;\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, isChecked);\n }\n this.adapter_.setAttributeForElementIndex(index, constants_1.strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n // If none of the checkbox items are selected and selectedIndex is not initialized then provide a default value.\n var selectedIndexes = this.selectedIndex_ === constants_1.numbers.UNSET_INDEX ? [] : this.selectedIndex_.slice();\n if (isChecked) {\n selectedIndexes.push(index);\n } else {\n selectedIndexes = selectedIndexes.filter(function (i) {\n return i !== index;\n });\n }\n this.selectedIndex_ = selectedIndexes;\n };\n return MDCListFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCListFoundation = MDCListFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCListFoundation;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ANCHOR: 'mdc-menu-surface--anchor',\n ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed',\n ANIMATING_OPEN: 'mdc-menu-surface--animating-open',\n FIXED: 'mdc-menu-surface--fixed',\n OPEN: 'mdc-menu-surface--open',\n ROOT: 'mdc-menu-surface'\n};\nexports.cssClasses = cssClasses;\n// tslint:disable:object-literal-sort-keys\nvar strings = {\n CLOSED_EVENT: 'MDCMenuSurface:closed',\n OPENED_EVENT: 'MDCMenuSurface:opened',\n FOCUSABLE_ELEMENTS: ['button:not(:disabled)', '[href]:not([aria-disabled=\"true\"])', 'input:not(:disabled)', 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]:not([tabindex=\"-1\"]):not([aria-disabled=\"true\"])'].join(', ')\n};\nexports.strings = strings;\n// tslint:enable:object-literal-sort-keys\nvar numbers = {\n /** Total duration of menu-surface open animation. */\n TRANSITION_OPEN_DURATION: 120,\n /** Total duration of menu-surface close animation. */\n TRANSITION_CLOSE_DURATION: 75,\n /** Margin left to the edge of the viewport when menu-surface is at maximum possible height. */\n MARGIN_TO_EDGE: 32,\n /** Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning. */\n ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67\n};\nexports.numbers = numbers;\n/**\n * Enum for bits in the {@see Corner) bitmap.\n */\nvar CornerBit;\n(function (CornerBit) {\n CornerBit[CornerBit[\"BOTTOM\"] = 1] = \"BOTTOM\";\n CornerBit[CornerBit[\"CENTER\"] = 2] = \"CENTER\";\n CornerBit[CornerBit[\"RIGHT\"] = 4] = \"RIGHT\";\n CornerBit[CornerBit[\"FLIP_RTL\"] = 8] = \"FLIP_RTL\";\n})(CornerBit || (CornerBit = {}));\nexports.CornerBit = CornerBit;\n/**\n * Enum for representing an element corner for positioning the menu-surface.\n *\n * The START constants map to LEFT if element directionality is left\n * to right and RIGHT if the directionality is right to left.\n * Likewise END maps to RIGHT or LEFT depending on the directionality.\n */\nvar Corner;\n(function (Corner) {\n Corner[Corner[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\n Corner[Corner[\"TOP_RIGHT\"] = 4] = \"TOP_RIGHT\";\n Corner[Corner[\"BOTTOM_LEFT\"] = 1] = \"BOTTOM_LEFT\";\n Corner[Corner[\"BOTTOM_RIGHT\"] = 5] = \"BOTTOM_RIGHT\";\n Corner[Corner[\"TOP_START\"] = 8] = \"TOP_START\";\n Corner[Corner[\"TOP_END\"] = 12] = \"TOP_END\";\n Corner[Corner[\"BOTTOM_START\"] = 9] = \"BOTTOM_START\";\n Corner[Corner[\"BOTTOM_END\"] = 13] = \"BOTTOM_END\";\n})(Corner || (Corner = {}));\nexports.Corner = Corner;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n FIXED_CLASS: 'mdc-top-app-bar--fixed',\n FIXED_SCROLLED_CLASS: 'mdc-top-app-bar--fixed-scrolled',\n SHORT_CLASS: 'mdc-top-app-bar--short',\n SHORT_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed',\n SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item'\n};\nexports.cssClasses = cssClasses;\nvar numbers = {\n DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100,\n MAX_TOP_APP_BAR_HEIGHT: 128\n};\nexports.numbers = numbers;\nvar strings = {\n ACTION_ITEM_SELECTOR: '.mdc-top-app-bar__action-item',\n NAVIGATION_EVENT: 'MDCTopAppBar:nav',\n NAVIGATION_ICON_SELECTOR: '.mdc-top-app-bar__navigation-icon',\n ROOT_SELECTOR: '.mdc-top-app-bar',\n TITLE_SELECTOR: '.mdc-top-app-bar__title'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = this && this.__values || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(6);\nvar MDCMenuSurfaceFoundation = /** @class */function (_super) {\n __extends(MDCMenuSurfaceFoundation, _super);\n function MDCMenuSurfaceFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCMenuSurfaceFoundation.defaultAdapter, adapter)) || this;\n _this.isOpen_ = false;\n _this.isQuickOpen_ = false;\n _this.isHoistedElement_ = false;\n _this.isFixedPosition_ = false;\n _this.openAnimationEndTimerId_ = 0;\n _this.closeAnimationEndTimerId_ = 0;\n _this.animationRequestId_ = 0;\n _this.anchorCorner_ = constants_1.Corner.TOP_START;\n _this.anchorMargin_ = { top: 0, right: 0, bottom: 0, left: 0 };\n _this.position_ = { x: 0, y: 0 };\n return _this;\n }\n Object.defineProperty(MDCMenuSurfaceFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"Corner\", {\n get: function get() {\n return constants_1.Corner;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurfaceFoundation, \"defaultAdapter\", {\n /**\n * @see {@link MDCMenuSurfaceAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n hasAnchor: function hasAnchor() {\n return false;\n },\n isElementInContainer: function isElementInContainer() {\n return false;\n },\n isFocused: function isFocused() {\n return false;\n },\n isFirstElementFocused: function isFirstElementFocused() {\n return false;\n },\n isLastElementFocused: function isLastElementFocused() {\n return false;\n },\n isRtl: function isRtl() {\n return false;\n },\n getInnerDimensions: function getInnerDimensions() {\n return { height: 0, width: 0 };\n },\n getAnchorDimensions: function getAnchorDimensions() {\n return null;\n },\n getWindowDimensions: function getWindowDimensions() {\n return { height: 0, width: 0 };\n },\n getBodyDimensions: function getBodyDimensions() {\n return { height: 0, width: 0 };\n },\n getWindowScroll: function getWindowScroll() {\n return { x: 0, y: 0 };\n },\n setPosition: function setPosition() {\n return undefined;\n },\n setMaxHeight: function setMaxHeight() {\n return undefined;\n },\n setTransformOrigin: function setTransformOrigin() {\n return undefined;\n },\n saveFocus: function saveFocus() {\n return undefined;\n },\n restoreFocus: function restoreFocus() {\n return undefined;\n },\n focusFirstElement: function focusFirstElement() {\n return undefined;\n },\n focusLastElement: function focusLastElement() {\n return undefined;\n },\n notifyClose: function notifyClose() {\n return undefined;\n },\n notifyOpen: function notifyOpen() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCMenuSurfaceFoundation.prototype.init = function () {\n var _a = MDCMenuSurfaceFoundation.cssClasses,\n ROOT = _a.ROOT,\n OPEN = _a.OPEN;\n if (!this.adapter_.hasClass(ROOT)) {\n throw new Error(ROOT + \" class required in root element.\");\n }\n if (this.adapter_.hasClass(OPEN)) {\n this.isOpen_ = true;\n }\n };\n MDCMenuSurfaceFoundation.prototype.destroy = function () {\n clearTimeout(this.openAnimationEndTimerId_);\n clearTimeout(this.closeAnimationEndTimerId_);\n // Cancel any currently running animations.\n cancelAnimationFrame(this.animationRequestId_);\n };\n /**\n * @param corner Default anchor corner alignment of top-left menu surface corner.\n */\n MDCMenuSurfaceFoundation.prototype.setAnchorCorner = function (corner) {\n this.anchorCorner_ = corner;\n };\n /**\n * @param margin Set of margin values from anchor.\n */\n MDCMenuSurfaceFoundation.prototype.setAnchorMargin = function (margin) {\n this.anchorMargin_.top = margin.top || 0;\n this.anchorMargin_.right = margin.right || 0;\n this.anchorMargin_.bottom = margin.bottom || 0;\n this.anchorMargin_.left = margin.left || 0;\n };\n /** Used to indicate if the menu-surface is hoisted to the body. */\n MDCMenuSurfaceFoundation.prototype.setIsHoisted = function (isHoisted) {\n this.isHoistedElement_ = isHoisted;\n };\n /** Used to set the menu-surface calculations based on a fixed position menu. */\n MDCMenuSurfaceFoundation.prototype.setFixedPosition = function (isFixedPosition) {\n this.isFixedPosition_ = isFixedPosition;\n };\n /** Sets the menu-surface position on the page. */\n MDCMenuSurfaceFoundation.prototype.setAbsolutePosition = function (x, y) {\n this.position_.x = this.isFinite_(x) ? x : 0;\n this.position_.y = this.isFinite_(y) ? y : 0;\n };\n MDCMenuSurfaceFoundation.prototype.setQuickOpen = function (quickOpen) {\n this.isQuickOpen_ = quickOpen;\n };\n MDCMenuSurfaceFoundation.prototype.isOpen = function () {\n return this.isOpen_;\n };\n /**\n * Open the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.open = function () {\n var _this = this;\n this.adapter_.saveFocus();\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n }\n this.animationRequestId_ = requestAnimationFrame(function () {\n _this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n _this.dimensions_ = _this.adapter_.getInnerDimensions();\n _this.autoPosition_();\n if (_this.isQuickOpen_) {\n _this.adapter_.notifyOpen();\n } else {\n _this.openAnimationEndTimerId_ = setTimeout(function () {\n _this.openAnimationEndTimerId_ = 0;\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n _this.adapter_.notifyOpen();\n }, constants_1.numbers.TRANSITION_OPEN_DURATION);\n }\n });\n this.isOpen_ = true;\n };\n /**\n * Closes the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.close = function () {\n var _this = this;\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n }\n requestAnimationFrame(function () {\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n if (_this.isQuickOpen_) {\n _this.adapter_.notifyClose();\n } else {\n _this.closeAnimationEndTimerId_ = setTimeout(function () {\n _this.closeAnimationEndTimerId_ = 0;\n _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n _this.adapter_.notifyClose();\n }, constants_1.numbers.TRANSITION_CLOSE_DURATION);\n }\n });\n this.isOpen_ = false;\n this.maybeRestoreFocus_();\n };\n /** Handle clicks and close if not within menu-surface element. */\n MDCMenuSurfaceFoundation.prototype.handleBodyClick = function (evt) {\n var el = evt.target;\n if (this.adapter_.isElementInContainer(el)) {\n return;\n }\n this.close();\n };\n /** Handle keys that close the surface. */\n MDCMenuSurfaceFoundation.prototype.handleKeydown = function (evt) {\n var keyCode = evt.keyCode,\n key = evt.key,\n shiftKey = evt.shiftKey;\n var isEscape = key === 'Escape' || keyCode === 27;\n var isTab = key === 'Tab' || keyCode === 9;\n if (isEscape) {\n this.close();\n } else if (isTab) {\n if (this.adapter_.isLastElementFocused() && !shiftKey) {\n this.adapter_.focusFirstElement();\n evt.preventDefault();\n } else if (this.adapter_.isFirstElementFocused() && shiftKey) {\n this.adapter_.focusLastElement();\n evt.preventDefault();\n }\n }\n };\n MDCMenuSurfaceFoundation.prototype.autoPosition_ = function () {\n var _a;\n // Compute measurements for autoposition methods reuse.\n this.measurements_ = this.getAutoLayoutMeasurements_();\n var corner = this.getOriginCorner_();\n var maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight_(corner);\n var verticalAlignment = this.hasBit_(corner, constants_1.CornerBit.BOTTOM) ? 'bottom' : 'top';\n var horizontalAlignment = this.hasBit_(corner, constants_1.CornerBit.RIGHT) ? 'right' : 'left';\n var horizontalOffset = this.getHorizontalOriginOffset_(corner);\n var verticalOffset = this.getVerticalOriginOffset_(corner);\n var _b = this.measurements_,\n anchorSize = _b.anchorSize,\n surfaceSize = _b.surfaceSize;\n var position = (_a = {}, _a[horizontalAlignment] = horizontalOffset, _a[verticalAlignment] = verticalOffset, _a);\n // Center align when anchor width is comparable or greater than menu surface, otherwise keep corner.\n if (anchorSize.width / surfaceSize.width > constants_1.numbers.ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) {\n horizontalAlignment = 'center';\n }\n // If the menu-surface has been hoisted to the body, it's no longer relative to the anchor element\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n this.adjustPositionForHoistedElement_(position);\n }\n this.adapter_.setTransformOrigin(horizontalAlignment + \" \" + verticalAlignment);\n this.adapter_.setPosition(position);\n this.adapter_.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : '');\n };\n /**\n * @return Measurements used to position menu surface popup.\n */\n MDCMenuSurfaceFoundation.prototype.getAutoLayoutMeasurements_ = function () {\n var anchorRect = this.adapter_.getAnchorDimensions();\n var bodySize = this.adapter_.getBodyDimensions();\n var viewportSize = this.adapter_.getWindowDimensions();\n var windowScroll = this.adapter_.getWindowScroll();\n if (!anchorRect) {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n anchorRect = {\n top: this.position_.y,\n right: this.position_.x,\n bottom: this.position_.y,\n left: this.position_.x,\n width: 0,\n height: 0\n };\n // tslint:enable:object-literal-sort-keys\n }\n return {\n anchorSize: anchorRect,\n bodySize: bodySize,\n surfaceSize: this.dimensions_,\n viewportDistance: {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n top: anchorRect.top,\n right: viewportSize.width - anchorRect.right,\n bottom: viewportSize.height - anchorRect.bottom,\n left: anchorRect.left\n },\n viewportSize: viewportSize,\n windowScroll: windowScroll\n };\n };\n /**\n * Computes the corner of the anchor from which to animate and position the menu surface.\n */\n MDCMenuSurfaceFoundation.prototype.getOriginCorner_ = function () {\n // Defaults: open from the top left.\n var corner = constants_1.Corner.TOP_LEFT;\n var _a = this.measurements_,\n viewportDistance = _a.viewportDistance,\n anchorSize = _a.anchorSize,\n surfaceSize = _a.surfaceSize;\n var isBottomAligned = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.BOTTOM);\n var availableTop = isBottomAligned ? viewportDistance.top + anchorSize.height + this.anchorMargin_.bottom : viewportDistance.top + this.anchorMargin_.top;\n var availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom : viewportDistance.bottom + anchorSize.height - this.anchorMargin_.top;\n var topOverflow = surfaceSize.height - availableTop;\n var bottomOverflow = surfaceSize.height - availableBottom;\n if (bottomOverflow > 0 && topOverflow < bottomOverflow) {\n corner = this.setBit_(corner, constants_1.CornerBit.BOTTOM);\n }\n var isRtl = this.adapter_.isRtl();\n var isFlipRtl = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.FLIP_RTL);\n var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.RIGHT);\n var isAlignedRight = avoidHorizontalOverlap && !isRtl || !avoidHorizontalOverlap && isFlipRtl && isRtl;\n var availableLeft = isAlignedRight ? viewportDistance.left + anchorSize.width + this.anchorMargin_.right : viewportDistance.left + this.anchorMargin_.left;\n var availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right : viewportDistance.right + anchorSize.width - this.anchorMargin_.left;\n var leftOverflow = surfaceSize.width - availableLeft;\n var rightOverflow = surfaceSize.width - availableRight;\n if (leftOverflow < 0 && isAlignedRight && isRtl || avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0 || rightOverflow > 0 && leftOverflow < rightOverflow) {\n corner = this.setBit_(corner, constants_1.CornerBit.RIGHT);\n }\n return corner;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Maximum height of the menu surface, based on available space. 0 indicates should not be set.\n */\n MDCMenuSurfaceFoundation.prototype.getMenuSurfaceMaxHeight_ = function (corner) {\n var viewportDistance = this.measurements_.viewportDistance;\n var maxHeight = 0;\n var isBottomAligned = this.hasBit_(corner, constants_1.CornerBit.BOTTOM);\n var isBottomAnchored = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.BOTTOM);\n var MARGIN_TO_EDGE = MDCMenuSurfaceFoundation.numbers.MARGIN_TO_EDGE;\n // When maximum height is not specified, it is handled from CSS.\n if (isBottomAligned) {\n maxHeight = viewportDistance.top + this.anchorMargin_.top - MARGIN_TO_EDGE;\n if (!isBottomAnchored) {\n maxHeight += this.measurements_.anchorSize.height;\n }\n } else {\n maxHeight = viewportDistance.bottom - this.anchorMargin_.bottom + this.measurements_.anchorSize.height - MARGIN_TO_EDGE;\n if (isBottomAnchored) {\n maxHeight -= this.measurements_.anchorSize.height;\n }\n }\n return maxHeight;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Horizontal offset of menu surface origin corner from corresponding anchor corner.\n */\n MDCMenuSurfaceFoundation.prototype.getHorizontalOriginOffset_ = function (corner) {\n var anchorSize = this.measurements_.anchorSize;\n // isRightAligned corresponds to using the 'right' property on the surface.\n var isRightAligned = this.hasBit_(corner, constants_1.CornerBit.RIGHT);\n var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.RIGHT);\n if (isRightAligned) {\n var rightOffset = avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.left : this.anchorMargin_.right;\n // For hoisted or fixed elements, adjust the offset by the difference between viewport width and body width so\n // when we calculate the right value (`adjustPositionForHoistedElement_`) based on the element position,\n // the right property is correct.\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n return rightOffset - (this.measurements_.viewportSize.width - this.measurements_.bodySize.width);\n }\n return rightOffset;\n }\n return avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.right : this.anchorMargin_.left;\n };\n /**\n * @param corner Origin corner of the menu surface.\n * @return Vertical offset of menu surface origin corner from corresponding anchor corner.\n */\n MDCMenuSurfaceFoundation.prototype.getVerticalOriginOffset_ = function (corner) {\n var anchorSize = this.measurements_.anchorSize;\n var isBottomAligned = this.hasBit_(corner, constants_1.CornerBit.BOTTOM);\n var avoidVerticalOverlap = this.hasBit_(this.anchorCorner_, constants_1.CornerBit.BOTTOM);\n var y = 0;\n if (isBottomAligned) {\n y = avoidVerticalOverlap ? anchorSize.height - this.anchorMargin_.top : -this.anchorMargin_.bottom;\n } else {\n y = avoidVerticalOverlap ? anchorSize.height + this.anchorMargin_.bottom : this.anchorMargin_.top;\n }\n return y;\n };\n /** Calculates the offsets for positioning the menu-surface when the menu-surface has been hoisted to the body. */\n MDCMenuSurfaceFoundation.prototype.adjustPositionForHoistedElement_ = function (position) {\n var e_1, _a;\n var _b = this.measurements_,\n windowScroll = _b.windowScroll,\n viewportDistance = _b.viewportDistance;\n var props = Object.keys(position);\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n var value = position[prop] || 0;\n // Hoisted surfaces need to have the anchor elements location on the page added to the\n // position properties for proper alignment on the body.\n value += viewportDistance[prop];\n // Surfaces that are absolutely positioned need to have additional calculations for scroll\n // and bottom positioning.\n if (!this.isFixedPosition_) {\n if (prop === 'top') {\n value += windowScroll.y;\n } else if (prop === 'bottom') {\n value -= windowScroll.y;\n } else if (prop === 'left') {\n value += windowScroll.x;\n } else {\n // prop === 'right'\n value -= windowScroll.x;\n }\n }\n position[prop] = value;\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n /**\n * The last focused element when the menu surface was opened should regain focus, if the user is\n * focused on or within the menu surface when it is closed.\n */\n MDCMenuSurfaceFoundation.prototype.maybeRestoreFocus_ = function () {\n var isRootFocused = this.adapter_.isFocused();\n var childHasFocus = document.activeElement && this.adapter_.isElementInContainer(document.activeElement);\n if (isRootFocused || childHasFocus) {\n this.adapter_.restoreFocus();\n }\n };\n MDCMenuSurfaceFoundation.prototype.hasBit_ = function (corner, bit) {\n return Boolean(corner & bit); // tslint:disable-line:no-bitwise\n };\n MDCMenuSurfaceFoundation.prototype.setBit_ = function (corner, bit) {\n return corner | bit; // tslint:disable-line:no-bitwise\n };\n /**\n * isFinite that doesn't force conversion to number type.\n * Equivalent to Number.isFinite in ES2015, which is not supported in IE.\n */\n MDCMenuSurfaceFoundation.prototype.isFinite_ = function (num) {\n return typeof num === 'number' && isFinite(num);\n };\n return MDCMenuSurfaceFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCMenuSurfaceFoundation = MDCMenuSurfaceFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCMenuSurfaceFoundation;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(144);\nvar MDCTabIndicatorFoundation = /** @class */function (_super) {\n __extends(MDCTabIndicatorFoundation, _super);\n function MDCTabIndicatorFoundation(adapter) {\n return _super.call(this, __assign({}, MDCTabIndicatorFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCTabIndicatorFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n computeContentClientRect: function computeContentClientRect() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n setContentStyleProperty: function setContentStyleProperty() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTabIndicatorFoundation.prototype.computeContentClientRect = function () {\n return this.adapter_.computeContentClientRect();\n };\n return MDCTabIndicatorFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTabIndicatorFoundation = MDCTabIndicatorFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabIndicatorFoundation;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssPropertyNameMap = {\n animation: {\n prefixed: '-webkit-animation',\n standard: 'animation'\n },\n transform: {\n prefixed: '-webkit-transform',\n standard: 'transform'\n },\n transition: {\n prefixed: '-webkit-transition',\n standard: 'transition'\n }\n};\nvar jsEventTypeMap = {\n animationend: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationEnd',\n standard: 'animationend'\n },\n animationiteration: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationIteration',\n standard: 'animationiteration'\n },\n animationstart: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationStart',\n standard: 'animationstart'\n },\n transitionend: {\n cssProperty: 'transition',\n prefixed: 'webkitTransitionEnd',\n standard: 'transitionend'\n }\n};\nfunction isWindow(windowObj) {\n return Boolean(windowObj.document) && typeof windowObj.document.createElement === 'function';\n}\nfunction getCorrectPropertyName(windowObj, cssProperty) {\n if (isWindow(windowObj) && cssProperty in cssPropertyNameMap) {\n var el = windowObj.document.createElement('div');\n var _a = cssPropertyNameMap[cssProperty],\n standard = _a.standard,\n prefixed = _a.prefixed;\n var isStandard = standard in el.style;\n return isStandard ? standard : prefixed;\n }\n return cssProperty;\n}\nexports.getCorrectPropertyName = getCorrectPropertyName;\nfunction getCorrectEventName(windowObj, eventType) {\n if (isWindow(windowObj) && eventType in jsEventTypeMap) {\n var el = windowObj.document.createElement('div');\n var _a = jsEventTypeMap[eventType],\n standard = _a.standard,\n prefixed = _a.prefixed,\n cssProperty = _a.cssProperty;\n var isStandard = cssProperty in el.style;\n return isStandard ? standard : prefixed;\n }\n return eventType;\n}\nexports.getCorrectEventName = getCorrectEventName;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Stores result from supportsCssVariables to avoid redundant processing to\n * detect CSS custom variable support.\n */\nvar supportsCssVariables_;\n/**\n * Stores result from applyPassive to avoid redundant processing to detect\n * passive event listener support.\n */\nvar supportsPassive_;\nfunction detectEdgePseudoVarBug(windowObj) {\n // Detect versions of Edge with buggy var() support\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/\n var document = windowObj.document;\n var node = document.createElement('div');\n node.className = 'mdc-ripple-surface--test-edge-var-bug';\n document.body.appendChild(node);\n // The bug exists if ::before style ends up propagating to the parent element.\n // Additionally, getComputedStyle returns null in iframes with display: \"none\" in Firefox,\n // but Firefox is known to support CSS custom properties correctly.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n var computedStyle = windowObj.getComputedStyle(node);\n var hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid';\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return hasPseudoVarBug;\n}\nfunction supportsCssVariables(windowObj, forceRefresh) {\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n var CSS = windowObj.CSS;\n var supportsCssVars = supportsCssVariables_;\n if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {\n return supportsCssVariables_;\n }\n var supportsFunctionPresent = CSS && typeof CSS.supports === 'function';\n if (!supportsFunctionPresent) {\n return false;\n }\n var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes');\n // See: https://bugs.webkit.org/show_bug.cgi?id=154669\n // See: README section on Safari\n var weAreFeatureDetectingSafari10plus = CSS.supports('(--css-vars: yes)') && CSS.supports('color', '#00000000');\n if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) {\n supportsCssVars = !detectEdgePseudoVarBug(windowObj);\n } else {\n supportsCssVars = false;\n }\n if (!forceRefresh) {\n supportsCssVariables_ = supportsCssVars;\n }\n return supportsCssVars;\n}\nexports.supportsCssVariables = supportsCssVariables;\n/**\n * Determine whether the current browser supports passive event listeners, and\n * if so, use them.\n */\nfunction applyPassive(globalObj, forceRefresh) {\n if (globalObj === void 0) {\n globalObj = window;\n }\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n if (supportsPassive_ === undefined || forceRefresh) {\n var isSupported_1 = false;\n try {\n globalObj.document.addEventListener('test', function () {\n return undefined;\n }, {\n get passive() {\n isSupported_1 = true;\n return isSupported_1;\n }\n });\n } catch (e) {} // tslint:disable-line:no-empty cannot throw error due to tests. tslint also disables console.log.\n supportsPassive_ = isSupported_1;\n }\n return supportsPassive_ ? { passive: true } : false;\n}\nexports.applyPassive = applyPassive;\nfunction getNormalizedEventCoords(evt, pageOffset, clientRect) {\n if (!evt) {\n return { x: 0, y: 0 };\n }\n var x = pageOffset.x,\n y = pageOffset.y;\n var documentX = x + clientRect.left;\n var documentY = y + clientRect.top;\n var normalizedX;\n var normalizedY;\n // Determine touch point relative to the ripple container.\n if (evt.type === 'touchstart') {\n var touchEvent = evt;\n normalizedX = touchEvent.changedTouches[0].pageX - documentX;\n normalizedY = touchEvent.changedTouches[0].pageY - documentY;\n } else {\n var mouseEvent = evt;\n normalizedX = mouseEvent.pageX - documentX;\n normalizedY = mouseEvent.pageY - documentY;\n }\n return { x: normalizedX, y: normalizedY };\n}\nexports.getNormalizedEventCoords = getNormalizedEventCoords;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(29);\nvar emptyClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n};\nvar MDCChipFoundation = /** @class */function (_super) {\n __extends(MDCChipFoundation, _super);\n function MDCChipFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCChipFoundation.defaultAdapter, adapter)) || this;\n /**\n * Whether a trailing icon click should immediately trigger exit/removal of the chip.\n */\n _this.shouldRemoveOnTrailingIconClick_ = true;\n return _this;\n }\n Object.defineProperty(MDCChipFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChipFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChipFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n addClassToLeadingIcon: function addClassToLeadingIcon() {\n return undefined;\n },\n eventTargetHasClass: function eventTargetHasClass() {\n return false;\n },\n getCheckmarkBoundingClientRect: function getCheckmarkBoundingClientRect() {\n return emptyClientRect;\n },\n getComputedStyleValue: function getComputedStyleValue() {\n return '';\n },\n getRootBoundingClientRect: function getRootBoundingClientRect() {\n return emptyClientRect;\n },\n hasClass: function hasClass() {\n return false;\n },\n hasLeadingIcon: function hasLeadingIcon() {\n return false;\n },\n notifyInteraction: function notifyInteraction() {\n return undefined;\n },\n notifyRemoval: function notifyRemoval() {\n return undefined;\n },\n notifySelection: function notifySelection() {\n return undefined;\n },\n notifyTrailingIconInteraction: function notifyTrailingIconInteraction() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n removeClassFromLeadingIcon: function removeClassFromLeadingIcon() {\n return undefined;\n },\n setStyleProperty: function setStyleProperty() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCChipFoundation.prototype.isSelected = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.SELECTED);\n };\n MDCChipFoundation.prototype.setSelected = function (selected) {\n if (selected) {\n this.adapter_.addClass(constants_1.cssClasses.SELECTED);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.SELECTED);\n }\n this.adapter_.notifySelection(selected);\n };\n MDCChipFoundation.prototype.getShouldRemoveOnTrailingIconClick = function () {\n return this.shouldRemoveOnTrailingIconClick_;\n };\n MDCChipFoundation.prototype.setShouldRemoveOnTrailingIconClick = function (shouldRemove) {\n this.shouldRemoveOnTrailingIconClick_ = shouldRemove;\n };\n MDCChipFoundation.prototype.getDimensions = function () {\n var _this = this;\n var getRootRect = function getRootRect() {\n return _this.adapter_.getRootBoundingClientRect();\n };\n var getCheckmarkRect = function getCheckmarkRect() {\n return _this.adapter_.getCheckmarkBoundingClientRect();\n };\n // When a chip has a checkmark and not a leading icon, the bounding rect changes in size depending on the current\n // size of the checkmark.\n if (!this.adapter_.hasLeadingIcon()) {\n var checkmarkRect = getCheckmarkRect();\n if (checkmarkRect) {\n var rootRect = getRootRect();\n // Checkmark is a square, meaning the client rect's width and height are identical once the animation completes.\n // However, the checkbox is initially hidden by setting the width to 0.\n // To account for an initial width of 0, we use the checkbox's height instead (which equals the end-state width)\n // when adding it to the root client rect's width.\n return {\n bottom: rootRect.bottom,\n height: rootRect.height,\n left: rootRect.left,\n right: rootRect.right,\n top: rootRect.top,\n width: rootRect.width + checkmarkRect.height\n };\n }\n }\n return getRootRect();\n };\n /**\n * Begins the exit animation which leads to removal of the chip.\n */\n MDCChipFoundation.prototype.beginExit = function () {\n this.adapter_.addClass(constants_1.cssClasses.CHIP_EXIT);\n };\n /**\n * Handles an interaction event on the root element.\n */\n MDCChipFoundation.prototype.handleInteraction = function (evt) {\n var isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n if (evt.type === 'click' || isEnter) {\n this.adapter_.notifyInteraction();\n }\n };\n /**\n * Handles a transition end event on the root element.\n */\n MDCChipFoundation.prototype.handleTransitionEnd = function (evt) {\n var _this = this;\n // Handle transition end event on the chip when it is about to be removed.\n if (this.adapter_.eventTargetHasClass(evt.target, constants_1.cssClasses.CHIP_EXIT)) {\n if (evt.propertyName === 'width') {\n this.adapter_.notifyRemoval();\n } else if (evt.propertyName === 'opacity') {\n // See: https://css-tricks.com/using-css-transitions-auto-dimensions/#article-header-id-5\n var chipWidth_1 = this.adapter_.getComputedStyleValue('width');\n // On the next frame (once we get the computed width), explicitly set the chip's width\n // to its current pixel width, so we aren't transitioning out of 'auto'.\n requestAnimationFrame(function () {\n _this.adapter_.setStyleProperty('width', chipWidth_1);\n // To mitigate jitter, start transitioning padding and margin before width.\n _this.adapter_.setStyleProperty('padding', '0');\n _this.adapter_.setStyleProperty('margin', '0');\n // On the next frame (once width is explicitly set), transition width to 0.\n requestAnimationFrame(function () {\n _this.adapter_.setStyleProperty('width', '0');\n });\n });\n }\n return;\n }\n // Handle a transition end event on the leading icon or checkmark, since the transition end event bubbles.\n if (evt.propertyName !== 'opacity') {\n return;\n }\n if (this.adapter_.eventTargetHasClass(evt.target, constants_1.cssClasses.LEADING_ICON) && this.adapter_.hasClass(constants_1.cssClasses.SELECTED)) {\n this.adapter_.addClassToLeadingIcon(constants_1.cssClasses.HIDDEN_LEADING_ICON);\n } else if (this.adapter_.eventTargetHasClass(evt.target, constants_1.cssClasses.CHECKMARK) && !this.adapter_.hasClass(constants_1.cssClasses.SELECTED)) {\n this.adapter_.removeClassFromLeadingIcon(constants_1.cssClasses.HIDDEN_LEADING_ICON);\n }\n };\n /**\n * Handles an interaction event on the trailing icon element. This is used to\n * prevent the ripple from activating on interaction with the trailing icon.\n */\n MDCChipFoundation.prototype.handleTrailingIconInteraction = function (evt) {\n var isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n evt.stopPropagation();\n if (evt.type === 'click' || isEnter) {\n this.adapter_.notifyTrailingIconInteraction();\n if (this.shouldRemoveOnTrailingIconClick_) {\n this.beginExit();\n }\n }\n };\n return MDCChipFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCChipFoundation = MDCChipFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCChipFoundation;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar constants_1 = __webpack_require__(35);\nvar foundation_1 = __webpack_require__(5);\nvar MDCList = /** @class */function (_super) {\n __extends(MDCList, _super);\n function MDCList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MDCList.prototype, \"vertical\", {\n set: function set(value) {\n this.foundation_.setVerticalOrientation(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"listElements\", {\n get: function get() {\n return [].slice.call(this.root_.querySelectorAll(\".\" + constants_1.cssClasses.LIST_ITEM_CLASS));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"wrapFocus\", {\n set: function set(value) {\n this.foundation_.setWrapFocus(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"singleSelection\", {\n set: function set(isSingleSelectionList) {\n this.foundation_.setSingleSelection(isSingleSelectionList);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCList.prototype, \"selectedIndex\", {\n get: function get() {\n return this.foundation_.getSelectedIndex();\n },\n set: function set(index) {\n this.foundation_.setSelectedIndex(index);\n },\n enumerable: true,\n configurable: true\n });\n MDCList.attachTo = function (root) {\n return new MDCList(root);\n };\n MDCList.prototype.initialSyncWithDOM = function () {\n this.handleClick_ = this.handleClickEvent_.bind(this);\n this.handleKeydown_ = this.handleKeydownEvent_.bind(this);\n this.focusInEventListener_ = this.handleFocusInEvent_.bind(this);\n this.focusOutEventListener_ = this.handleFocusOutEvent_.bind(this);\n this.listen('keydown', this.handleKeydown_);\n this.listen('click', this.handleClick_);\n this.listen('focusin', this.focusInEventListener_);\n this.listen('focusout', this.focusOutEventListener_);\n this.layout();\n this.initializeListType();\n };\n MDCList.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('click', this.handleClick_);\n this.unlisten('focusin', this.focusInEventListener_);\n this.unlisten('focusout', this.focusOutEventListener_);\n };\n MDCList.prototype.layout = function () {\n var direction = this.root_.getAttribute(constants_1.strings.ARIA_ORIENTATION);\n this.vertical = direction !== constants_1.strings.ARIA_ORIENTATION_HORIZONTAL;\n // List items need to have at least tabindex=-1 to be focusable.\n [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])')).forEach(function (el) {\n el.setAttribute('tabindex', '-1');\n });\n // Child button/a elements are not tabbable until the list item is focused.\n [].slice.call(this.root_.querySelectorAll(constants_1.strings.FOCUSABLE_CHILD_ELEMENTS)).forEach(function (el) {\n return el.setAttribute('tabindex', '-1');\n });\n this.foundation_.layout();\n };\n /**\n * Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio.\n */\n MDCList.prototype.initializeListType = function () {\n var _this = this;\n var checkboxListItems = this.root_.querySelectorAll(constants_1.strings.ARIA_ROLE_CHECKBOX_SELECTOR);\n var singleSelectedListItem = this.root_.querySelector(\"\\n .\" + constants_1.cssClasses.LIST_ITEM_ACTIVATED_CLASS + \",\\n .\" + constants_1.cssClasses.LIST_ITEM_SELECTED_CLASS + \"\\n \");\n var radioSelectedListItem = this.root_.querySelector(constants_1.strings.ARIA_CHECKED_RADIO_SELECTOR);\n if (checkboxListItems.length) {\n var preselectedItems = this.root_.querySelectorAll(constants_1.strings.ARIA_CHECKED_CHECKBOX_SELECTOR);\n this.selectedIndex = [].map.call(preselectedItems, function (listItem) {\n return _this.listElements.indexOf(listItem);\n });\n } else if (singleSelectedListItem) {\n if (singleSelectedListItem.classList.contains(constants_1.cssClasses.LIST_ITEM_ACTIVATED_CLASS)) {\n this.foundation_.setUseActivatedClass(true);\n }\n this.singleSelection = true;\n this.selectedIndex = this.listElements.indexOf(singleSelectedListItem);\n } else if (radioSelectedListItem) {\n this.selectedIndex = this.listElements.indexOf(radioSelectedListItem);\n }\n };\n MDCList.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClassForElementIndex: function addClassForElementIndex(index, className) {\n var element = _this.listElements[index];\n if (element) {\n element.classList.add(className);\n }\n },\n focusItemAtIndex: function focusItemAtIndex(index) {\n var element = _this.listElements[index];\n if (element) {\n element.focus();\n }\n },\n getAttributeForElementIndex: function getAttributeForElementIndex(index, attr) {\n return _this.listElements[index].getAttribute(attr);\n },\n getFocusedElementIndex: function getFocusedElementIndex() {\n return _this.listElements.indexOf(document.activeElement);\n },\n getListItemCount: function getListItemCount() {\n return _this.listElements.length;\n },\n hasCheckboxAtIndex: function hasCheckboxAtIndex(index) {\n var listItem = _this.listElements[index];\n return !!listItem.querySelector(constants_1.strings.CHECKBOX_SELECTOR);\n },\n hasRadioAtIndex: function hasRadioAtIndex(index) {\n var listItem = _this.listElements[index];\n return !!listItem.querySelector(constants_1.strings.RADIO_SELECTOR);\n },\n isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex(index) {\n var listItem = _this.listElements[index];\n var toggleEl = listItem.querySelector(constants_1.strings.CHECKBOX_SELECTOR);\n return toggleEl.checked;\n },\n isFocusInsideList: function isFocusInsideList() {\n return _this.root_.contains(document.activeElement);\n },\n isRootFocused: function isRootFocused() {\n return document.activeElement === _this.root_;\n },\n notifyAction: function notifyAction(index) {\n _this.emit(constants_1.strings.ACTION_EVENT, { index: index }, /** shouldBubble */true);\n },\n removeClassForElementIndex: function removeClassForElementIndex(index, className) {\n var element = _this.listElements[index];\n if (element) {\n element.classList.remove(className);\n }\n },\n setAttributeForElementIndex: function setAttributeForElementIndex(index, attr, value) {\n var element = _this.listElements[index];\n if (element) {\n element.setAttribute(attr, value);\n }\n },\n setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex(index, isChecked) {\n var listItem = _this.listElements[index];\n var toggleEl = listItem.querySelector(constants_1.strings.CHECKBOX_RADIO_SELECTOR);\n toggleEl.checked = isChecked;\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n toggleEl.dispatchEvent(event);\n },\n setTabIndexForListItemChildren: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) {\n var element = _this.listElements[listItemIndex];\n var listItemChildren = [].slice.call(element.querySelectorAll(constants_1.strings.CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));\n listItemChildren.forEach(function (el) {\n return el.setAttribute('tabindex', tabIndexValue);\n });\n }\n };\n return new foundation_1.MDCListFoundation(adapter);\n };\n /**\n * Used to figure out which list item this event is targetting. Or returns -1 if\n * there is no list item\n */\n MDCList.prototype.getListItemIndex_ = function (evt) {\n var eventTarget = evt.target;\n var nearestParent = ponyfill_1.closest(eventTarget, \".\" + constants_1.cssClasses.LIST_ITEM_CLASS + \", .\" + constants_1.cssClasses.ROOT);\n // Get the index of the element if it is a list item.\n if (nearestParent && ponyfill_1.matches(nearestParent, \".\" + constants_1.cssClasses.LIST_ITEM_CLASS)) {\n return this.listElements.indexOf(nearestParent);\n }\n return -1;\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleFocusInEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusIn(evt, index);\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleFocusOutEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusOut(evt, index);\n };\n /**\n * Used to figure out which element was focused when keydown event occurred before sending the event to the\n * foundation.\n */\n MDCList.prototype.handleKeydownEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n var target = evt.target;\n this.foundation_.handleKeydown(evt, target.classList.contains(constants_1.cssClasses.LIST_ITEM_CLASS), index);\n };\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n MDCList.prototype.handleClickEvent_ = function (evt) {\n var index = this.getListItemIndex_(evt);\n var target = evt.target;\n // Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.\n var toggleCheckbox = !ponyfill_1.matches(target, constants_1.strings.CHECKBOX_RADIO_SELECTOR);\n this.foundation_.handleClick(index, toggleCheckbox);\n };\n return MDCList;\n}(component_1.MDCComponent);\nexports.MDCList = MDCList;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(101);\nvar MDCDismissibleDrawerFoundation = /** @class */function (_super) {\n __extends(MDCDismissibleDrawerFoundation, _super);\n function MDCDismissibleDrawerFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCDismissibleDrawerFoundation.defaultAdapter, adapter)) || this;\n _this.animationFrame_ = 0;\n _this.animationTimer_ = 0;\n return _this;\n }\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n elementHasClass: function elementHasClass() {\n return false;\n },\n notifyClose: function notifyClose() {\n return undefined;\n },\n notifyOpen: function notifyOpen() {\n return undefined;\n },\n saveFocus: function saveFocus() {\n return undefined;\n },\n restoreFocus: function restoreFocus() {\n return undefined;\n },\n focusActiveNavigationItem: function focusActiveNavigationItem() {\n return undefined;\n },\n trapFocus: function trapFocus() {\n return undefined;\n },\n releaseFocus: function releaseFocus() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCDismissibleDrawerFoundation.prototype.destroy = function () {\n if (this.animationFrame_) {\n cancelAnimationFrame(this.animationFrame_);\n }\n if (this.animationTimer_) {\n clearTimeout(this.animationTimer_);\n }\n };\n MDCDismissibleDrawerFoundation.prototype.open = function () {\n var _this = this;\n if (this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n this.adapter_.addClass(constants_1.cssClasses.OPEN);\n this.adapter_.addClass(constants_1.cssClasses.ANIMATE);\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(function () {\n _this.adapter_.addClass(constants_1.cssClasses.OPENING);\n });\n this.adapter_.saveFocus();\n };\n MDCDismissibleDrawerFoundation.prototype.close = function () {\n if (!this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n this.adapter_.addClass(constants_1.cssClasses.CLOSING);\n };\n /**\n * @return true if drawer is in open state.\n */\n MDCDismissibleDrawerFoundation.prototype.isOpen = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.OPEN);\n };\n /**\n * @return true if drawer is animating open.\n */\n MDCDismissibleDrawerFoundation.prototype.isOpening = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.OPENING) || this.adapter_.hasClass(constants_1.cssClasses.ANIMATE);\n };\n /**\n * @return true if drawer is animating closed.\n */\n MDCDismissibleDrawerFoundation.prototype.isClosing = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.CLOSING);\n };\n /**\n * Keydown handler to close drawer when key is escape.\n */\n MDCDismissibleDrawerFoundation.prototype.handleKeydown = function (evt) {\n var keyCode = evt.keyCode,\n key = evt.key;\n var isEscape = key === 'Escape' || keyCode === 27;\n if (isEscape) {\n this.close();\n }\n };\n /**\n * Handles a transition end event on the root element.\n */\n MDCDismissibleDrawerFoundation.prototype.handleTransitionEnd = function (evt) {\n var OPENING = constants_1.cssClasses.OPENING,\n CLOSING = constants_1.cssClasses.CLOSING,\n OPEN = constants_1.cssClasses.OPEN,\n ANIMATE = constants_1.cssClasses.ANIMATE,\n ROOT = constants_1.cssClasses.ROOT;\n // In Edge, transitionend on ripple pseudo-elements yields a target without classList, so check for Element first.\n var isRootElement = this.isElement_(evt.target) && this.adapter_.elementHasClass(evt.target, ROOT);\n if (!isRootElement) {\n return;\n }\n if (this.isClosing()) {\n this.adapter_.removeClass(OPEN);\n this.closed_();\n this.adapter_.restoreFocus();\n this.adapter_.notifyClose();\n } else {\n this.adapter_.focusActiveNavigationItem();\n this.opened_();\n this.adapter_.notifyOpen();\n }\n this.adapter_.removeClass(ANIMATE);\n this.adapter_.removeClass(OPENING);\n this.adapter_.removeClass(CLOSING);\n };\n /**\n * Extension point for when drawer finishes open animation.\n */\n MDCDismissibleDrawerFoundation.prototype.opened_ = function () {}; // tslint:disable-line:no-empty\n /**\n * Extension point for when drawer finishes close animation.\n */\n MDCDismissibleDrawerFoundation.prototype.closed_ = function () {}; // tslint:disable-line:no-empty\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n MDCDismissibleDrawerFoundation.prototype.runNextAnimationFrame_ = function (callback) {\n var _this = this;\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(function () {\n _this.animationFrame_ = 0;\n clearTimeout(_this.animationTimer_);\n _this.animationTimer_ = setTimeout(callback, 0);\n });\n };\n MDCDismissibleDrawerFoundation.prototype.isElement_ = function (element) {\n // In Edge, transitionend on ripple pseudo-elements yields a target without classList.\n return Boolean(element.classList);\n };\n return MDCDismissibleDrawerFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCDismissibleDrawerFoundation = MDCDismissibleDrawerFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCDismissibleDrawerFoundation;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(16);\nvar MDCFloatingLabel = /** @class */function (_super) {\n __extends(MDCFloatingLabel, _super);\n function MDCFloatingLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCFloatingLabel.attachTo = function (root) {\n return new MDCFloatingLabel(root);\n };\n /**\n * Styles the label to produce the label shake for errors.\n * @param shouldShake If true, shakes the label by adding a CSS class; otherwise, stops shaking by removing the class.\n */\n MDCFloatingLabel.prototype.shake = function (shouldShake) {\n this.foundation_.shake(shouldShake);\n };\n /**\n * Styles the label to float/dock.\n * @param shouldFloat If true, floats the label by adding a CSS class; otherwise, docks it by removing the class.\n */\n MDCFloatingLabel.prototype.float = function (shouldFloat) {\n this.foundation_.float(shouldFloat);\n };\n MDCFloatingLabel.prototype.getWidth = function () {\n return this.foundation_.getWidth();\n };\n MDCFloatingLabel.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n getWidth: function getWidth() {\n return _this.root_.scrollWidth;\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCFloatingLabelFoundation(adapter);\n };\n return MDCFloatingLabel;\n}(component_1.MDCComponent);\nexports.MDCFloatingLabel = MDCFloatingLabel;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(103);\nvar MDCFloatingLabelFoundation = /** @class */function (_super) {\n __extends(MDCFloatingLabelFoundation, _super);\n function MDCFloatingLabelFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCFloatingLabelFoundation.defaultAdapter, adapter)) || this;\n _this.shakeAnimationEndHandler_ = function () {\n return _this.handleShakeAnimationEnd_();\n };\n return _this;\n }\n Object.defineProperty(MDCFloatingLabelFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFloatingLabelFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCFloatingLabelAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n getWidth: function getWidth() {\n return 0;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCFloatingLabelFoundation.prototype.init = function () {\n this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_);\n };\n MDCFloatingLabelFoundation.prototype.destroy = function () {\n this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_);\n };\n /**\n * Returns the width of the label element.\n */\n MDCFloatingLabelFoundation.prototype.getWidth = function () {\n return this.adapter_.getWidth();\n };\n /**\n * Styles the label to produce a shake animation to indicate an error.\n * @param shouldShake If true, adds the shake CSS class; otherwise, removes shake class.\n */\n MDCFloatingLabelFoundation.prototype.shake = function (shouldShake) {\n var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;\n if (shouldShake) {\n this.adapter_.addClass(LABEL_SHAKE);\n } else {\n this.adapter_.removeClass(LABEL_SHAKE);\n }\n };\n /**\n * Styles the label to float or dock.\n * @param shouldFloat If true, adds the float CSS class; otherwise, removes float and shake classes to dock the label.\n */\n MDCFloatingLabelFoundation.prototype.float = function (shouldFloat) {\n var _a = MDCFloatingLabelFoundation.cssClasses,\n LABEL_FLOAT_ABOVE = _a.LABEL_FLOAT_ABOVE,\n LABEL_SHAKE = _a.LABEL_SHAKE;\n if (shouldFloat) {\n this.adapter_.addClass(LABEL_FLOAT_ABOVE);\n } else {\n this.adapter_.removeClass(LABEL_FLOAT_ABOVE);\n this.adapter_.removeClass(LABEL_SHAKE);\n }\n };\n MDCFloatingLabelFoundation.prototype.handleShakeAnimationEnd_ = function () {\n var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;\n this.adapter_.removeClass(LABEL_SHAKE);\n };\n return MDCFloatingLabelFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCFloatingLabelFoundation = MDCFloatingLabelFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCFloatingLabelFoundation;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(40);\nvar MDCLineRipple = /** @class */function (_super) {\n __extends(MDCLineRipple, _super);\n function MDCLineRipple() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCLineRipple.attachTo = function (root) {\n return new MDCLineRipple(root);\n };\n /**\n * Activates the line ripple\n */\n MDCLineRipple.prototype.activate = function () {\n this.foundation_.activate();\n };\n /**\n * Deactivates the line ripple\n */\n MDCLineRipple.prototype.deactivate = function () {\n this.foundation_.deactivate();\n };\n /**\n * Sets the transform origin given a user's click location.\n * The `rippleCenter` is the x-coordinate of the middle of the ripple.\n */\n MDCLineRipple.prototype.setRippleCenter = function (xCoordinate) {\n this.foundation_.setRippleCenter(xCoordinate);\n };\n MDCLineRipple.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n setStyle: function setStyle(propertyName, value) {\n return _this.root_.style.setProperty(propertyName, value);\n },\n registerEventHandler: function registerEventHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterEventHandler: function deregisterEventHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCLineRippleFoundation(adapter);\n };\n return MDCLineRipple;\n}(component_1.MDCComponent);\nexports.MDCLineRipple = MDCLineRipple;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n MENU_SELECTED_LIST_ITEM: 'mdc-menu-item--selected',\n MENU_SELECTION_GROUP: 'mdc-menu__selection-group',\n ROOT: 'mdc-menu'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ARIA_SELECTED_ATTR: 'aria-selected',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]',\n LIST_SELECTOR: '.mdc-list',\n SELECTED_EVENT: 'MDCMenu:selected'\n};\nexports.strings = strings;\nvar numbers = {\n FOCUS_ROOT_INDEX: -1\n};\nexports.numbers = numbers;\nvar DefaultFocusState;\n(function (DefaultFocusState) {\n DefaultFocusState[DefaultFocusState[\"NONE\"] = 0] = \"NONE\";\n DefaultFocusState[DefaultFocusState[\"LIST_ROOT\"] = 1] = \"LIST_ROOT\";\n DefaultFocusState[DefaultFocusState[\"FIRST_ITEM\"] = 2] = \"FIRST_ITEM\";\n DefaultFocusState[DefaultFocusState[\"LAST_ITEM\"] = 3] = \"LAST_ITEM\";\n})(DefaultFocusState || (DefaultFocusState = {}));\nexports.DefaultFocusState = DefaultFocusState;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(16);\nvar constants_1 = __webpack_require__(46);\nvar foundation_2 = __webpack_require__(47);\nvar MDCNotchedOutline = /** @class */function (_super) {\n __extends(MDCNotchedOutline, _super);\n function MDCNotchedOutline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCNotchedOutline.attachTo = function (root) {\n return new MDCNotchedOutline(root);\n };\n MDCNotchedOutline.prototype.initialSyncWithDOM = function () {\n this.notchElement_ = this.root_.querySelector(constants_1.strings.NOTCH_ELEMENT_SELECTOR);\n var label = this.root_.querySelector('.' + foundation_1.MDCFloatingLabelFoundation.cssClasses.ROOT);\n if (label) {\n label.style.transitionDuration = '0s';\n this.root_.classList.add(constants_1.cssClasses.OUTLINE_UPGRADED);\n requestAnimationFrame(function () {\n label.style.transitionDuration = '';\n });\n } else {\n this.root_.classList.add(constants_1.cssClasses.NO_LABEL);\n }\n };\n /**\n * Updates classes and styles to open the notch to the specified width.\n * @param notchWidth The notch width in the outline.\n */\n MDCNotchedOutline.prototype.notch = function (notchWidth) {\n this.foundation_.notch(notchWidth);\n };\n /**\n * Updates classes and styles to close the notch.\n */\n MDCNotchedOutline.prototype.closeNotch = function () {\n this.foundation_.closeNotch();\n };\n MDCNotchedOutline.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setNotchWidthProperty: function setNotchWidthProperty(width) {\n return _this.notchElement_.style.setProperty('width', width + 'px');\n },\n removeNotchWidthProperty: function removeNotchWidthProperty() {\n return _this.notchElement_.style.removeProperty('width');\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_2.MDCNotchedOutlineFoundation(adapter);\n };\n return MDCNotchedOutline;\n}(component_1.MDCComponent);\nexports.MDCNotchedOutline = MDCNotchedOutline;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n CLOSING: 'mdc-snackbar--closing',\n OPEN: 'mdc-snackbar--open',\n OPENING: 'mdc-snackbar--opening'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ACTION_SELECTOR: '.mdc-snackbar__action',\n ARIA_LIVE_LABEL_TEXT_ATTR: 'data-mdc-snackbar-label-text',\n CLOSED_EVENT: 'MDCSnackbar:closed',\n CLOSING_EVENT: 'MDCSnackbar:closing',\n DISMISS_SELECTOR: '.mdc-snackbar__dismiss',\n LABEL_SELECTOR: '.mdc-snackbar__label',\n OPENED_EVENT: 'MDCSnackbar:opened',\n OPENING_EVENT: 'MDCSnackbar:opening',\n REASON_ACTION: 'action',\n REASON_DISMISS: 'dismiss',\n SURFACE_SELECTOR: '.mdc-snackbar__surface'\n};\nexports.strings = strings;\nvar numbers = {\n DEFAULT_AUTO_DISMISS_TIMEOUT_MS: 5000,\n MAX_AUTO_DISMISS_TIMEOUT_MS: 10000,\n MIN_AUTO_DISMISS_TIMEOUT_MS: 4000,\n // These variables need to be kept in sync with the values in _variables.scss.\n SNACKBAR_ANIMATION_CLOSE_TIME_MS: 75,\n SNACKBAR_ANIMATION_OPEN_TIME_MS: 150,\n /**\n * Number of milliseconds to wait between temporarily clearing the label text\n * in the DOM and subsequently restoring it. This is necessary to force IE 11\n * to pick up the `aria-live` content change and announce it to the user.\n */\n ARIA_LIVE_DELAY_MS: 1000\n};\nexports.numbers = numbers;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MDCTabScrollerRTL = /** @class */function () {\n function MDCTabScrollerRTL(adapter) {\n this.adapter_ = adapter;\n }\n return MDCTabScrollerRTL;\n}();\nexports.MDCTabScrollerRTL = MDCTabScrollerRTL;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabScrollerRTL;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(145);\nvar MDCTabFoundation = /** @class */function (_super) {\n __extends(MDCTabFoundation, _super);\n function MDCTabFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCTabFoundation.defaultAdapter, adapter)) || this;\n _this.focusOnActivate_ = true;\n return _this;\n }\n Object.defineProperty(MDCTabFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n setAttr: function setAttr() {\n return undefined;\n },\n activateIndicator: function activateIndicator() {\n return undefined;\n },\n deactivateIndicator: function deactivateIndicator() {\n return undefined;\n },\n notifyInteracted: function notifyInteracted() {\n return undefined;\n },\n getOffsetLeft: function getOffsetLeft() {\n return 0;\n },\n getOffsetWidth: function getOffsetWidth() {\n return 0;\n },\n getContentOffsetLeft: function getContentOffsetLeft() {\n return 0;\n },\n getContentOffsetWidth: function getContentOffsetWidth() {\n return 0;\n },\n focus: function focus() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTabFoundation.prototype.handleClick = function () {\n // It's up to the parent component to keep track of the active Tab and\n // ensure we don't activate a Tab that's already active.\n this.adapter_.notifyInteracted();\n };\n MDCTabFoundation.prototype.isActive = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.ACTIVE);\n };\n /**\n * Sets whether the tab should focus itself when activated\n */\n MDCTabFoundation.prototype.setFocusOnActivate = function (focusOnActivate) {\n this.focusOnActivate_ = focusOnActivate;\n };\n /**\n * Activates the Tab\n */\n MDCTabFoundation.prototype.activate = function (previousIndicatorClientRect) {\n this.adapter_.addClass(constants_1.cssClasses.ACTIVE);\n this.adapter_.setAttr(constants_1.strings.ARIA_SELECTED, 'true');\n this.adapter_.setAttr(constants_1.strings.TABINDEX, '0');\n this.adapter_.activateIndicator(previousIndicatorClientRect);\n if (this.focusOnActivate_) {\n this.adapter_.focus();\n }\n };\n /**\n * Deactivates the Tab\n */\n MDCTabFoundation.prototype.deactivate = function () {\n // Early exit\n if (!this.isActive()) {\n return;\n }\n this.adapter_.removeClass(constants_1.cssClasses.ACTIVE);\n this.adapter_.setAttr(constants_1.strings.ARIA_SELECTED, 'false');\n this.adapter_.setAttr(constants_1.strings.TABINDEX, '-1');\n this.adapter_.deactivateIndicator();\n };\n /**\n * Returns the dimensions of the Tab\n */\n MDCTabFoundation.prototype.computeDimensions = function () {\n var rootWidth = this.adapter_.getOffsetWidth();\n var rootLeft = this.adapter_.getOffsetLeft();\n var contentWidth = this.adapter_.getContentOffsetWidth();\n var contentLeft = this.adapter_.getContentOffsetLeft();\n return {\n contentLeft: rootLeft + contentLeft,\n contentRight: rootLeft + contentLeft + contentWidth,\n rootLeft: rootLeft,\n rootRight: rootLeft + rootWidth\n };\n };\n return MDCTabFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTabFoundation = MDCTabFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabFoundation;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(152);\nvar MDCTextFieldCharacterCounterFoundation = /** @class */function (_super) {\n __extends(MDCTextFieldCharacterCounterFoundation, _super);\n function MDCTextFieldCharacterCounterFoundation(adapter) {\n return _super.call(this, __assign({}, MDCTextFieldCharacterCounterFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCTextFieldCharacterCounterFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldCharacterCounterFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldCharacterCounterFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCTextFieldCharacterCounterAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n return {\n setContent: function setContent() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldCharacterCounterFoundation.prototype.setCounterValue = function (currentLength, maxLength) {\n currentLength = Math.min(currentLength, maxLength);\n this.adapter_.setContent(currentLength + \" / \" + maxLength);\n };\n return MDCTextFieldCharacterCounterFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTextFieldCharacterCounterFoundation = MDCTextFieldCharacterCounterFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTextFieldCharacterCounterFoundation;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(153);\nvar MDCTextFieldHelperTextFoundation = /** @class */function (_super) {\n __extends(MDCTextFieldHelperTextFoundation, _super);\n function MDCTextFieldHelperTextFoundation(adapter) {\n return _super.call(this, __assign({}, MDCTextFieldHelperTextFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCTextFieldHelperTextFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldHelperTextFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldHelperTextFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCTextFieldHelperTextAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n setAttr: function setAttr() {\n return undefined;\n },\n removeAttr: function removeAttr() {\n return undefined;\n },\n setContent: function setContent() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the content of the helper text field.\n */\n MDCTextFieldHelperTextFoundation.prototype.setContent = function (content) {\n this.adapter_.setContent(content);\n };\n /**\n * @param isPersistent Sets the persistency of the helper text.\n */\n MDCTextFieldHelperTextFoundation.prototype.setPersistent = function (isPersistent) {\n if (isPersistent) {\n this.adapter_.addClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n }\n };\n /**\n * @param isValidation True to make the helper text act as an error validation message.\n */\n MDCTextFieldHelperTextFoundation.prototype.setValidation = function (isValidation) {\n if (isValidation) {\n this.adapter_.addClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n }\n };\n /**\n * Makes the helper text visible to the screen reader.\n */\n MDCTextFieldHelperTextFoundation.prototype.showToScreenReader = function () {\n this.adapter_.removeAttr(constants_1.strings.ARIA_HIDDEN);\n };\n /**\n * Sets the validity of the helper text based on the input validity.\n */\n MDCTextFieldHelperTextFoundation.prototype.setValidity = function (inputIsValid) {\n var helperTextIsPersistent = this.adapter_.hasClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n var helperTextIsValidationMsg = this.adapter_.hasClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n var validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid;\n if (validationMsgNeedsDisplay) {\n this.adapter_.setAttr(constants_1.strings.ROLE, 'alert');\n } else {\n this.adapter_.removeAttr(constants_1.strings.ROLE);\n }\n if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {\n this.hide_();\n }\n };\n /**\n * Hides the help text from screen readers.\n */\n MDCTextFieldHelperTextFoundation.prototype.hide_ = function () {\n this.adapter_.setAttr(constants_1.strings.ARIA_HIDDEN, 'true');\n };\n return MDCTextFieldHelperTextFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTextFieldHelperTextFoundation = MDCTextFieldHelperTextFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTextFieldHelperTextFoundation;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(7);\nvar foundation_1 = __webpack_require__(26);\nvar INITIAL_VALUE = 0;\nvar MDCTopAppBarFoundation = /** @class */function (_super) {\n __extends(MDCTopAppBarFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n function MDCTopAppBarFoundation(adapter) {\n var _this = _super.call(this, adapter) || this;\n /**\n * Indicates if the top app bar was docked in the previous scroll handler iteration.\n */\n _this.wasDocked_ = true;\n /**\n * Indicates if the top app bar is docked in the fully shown position.\n */\n _this.isDockedShowing_ = true;\n /**\n * Variable for current scroll position of the top app bar\n */\n _this.currentAppBarOffsetTop_ = 0;\n /**\n * Used to prevent the top app bar from being scrolled out of view during resize events\n */\n _this.isCurrentlyBeingResized_ = false;\n /**\n * The timeout that's used to throttle the resize events\n */\n _this.resizeThrottleId_ = INITIAL_VALUE;\n /**\n * The timeout that's used to debounce toggling the isCurrentlyBeingResized_ variable after a resize\n */\n _this.resizeDebounceId_ = INITIAL_VALUE;\n _this.lastScrollPosition_ = _this.adapter_.getViewportScrollY();\n _this.topAppBarHeight_ = _this.adapter_.getTopAppBarHeight();\n _this.scrollHandler_ = function () {\n return _this.topAppBarScrollHandler_();\n };\n _this.resizeHandler_ = function () {\n return _this.topAppBarResizeHandler_();\n };\n return _this;\n }\n MDCTopAppBarFoundation.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.adapter_.setStyle('top', '');\n };\n /**\n * Function to determine if the DOM needs to update.\n */\n MDCTopAppBarFoundation.prototype.checkForUpdate_ = function () {\n var offscreenBoundaryTop = -this.topAppBarHeight_;\n var hasAnyPixelsOffscreen = this.currentAppBarOffsetTop_ < 0;\n var hasAnyPixelsOnscreen = this.currentAppBarOffsetTop_ > offscreenBoundaryTop;\n var partiallyShowing = hasAnyPixelsOffscreen && hasAnyPixelsOnscreen;\n // If it's partially showing, it can't be docked.\n if (partiallyShowing) {\n this.wasDocked_ = false;\n } else {\n // Not previously docked and not partially showing, it's now docked.\n if (!this.wasDocked_) {\n this.wasDocked_ = true;\n return true;\n } else if (this.isDockedShowing_ !== hasAnyPixelsOnscreen) {\n this.isDockedShowing_ = hasAnyPixelsOnscreen;\n return true;\n }\n }\n return partiallyShowing;\n };\n /**\n * Function to move the top app bar if needed.\n */\n MDCTopAppBarFoundation.prototype.moveTopAppBar_ = function () {\n if (this.checkForUpdate_()) {\n // Once the top app bar is fully hidden we use the max potential top app bar height as our offset\n // so the top app bar doesn't show if the window resizes and the new height > the old height.\n var offset = this.currentAppBarOffsetTop_;\n if (Math.abs(offset) >= this.topAppBarHeight_) {\n offset = -constants_1.numbers.MAX_TOP_APP_BAR_HEIGHT;\n }\n this.adapter_.setStyle('top', offset + 'px');\n }\n };\n /**\n * Scroll handler for the default scroll behavior of the top app bar.\n */\n MDCTopAppBarFoundation.prototype.topAppBarScrollHandler_ = function () {\n var currentScrollPosition = Math.max(this.adapter_.getViewportScrollY(), 0);\n var diff = currentScrollPosition - this.lastScrollPosition_;\n this.lastScrollPosition_ = currentScrollPosition;\n // If the window is being resized the lastScrollPosition_ needs to be updated but the\n // current scroll of the top app bar should stay in the same position.\n if (!this.isCurrentlyBeingResized_) {\n this.currentAppBarOffsetTop_ -= diff;\n if (this.currentAppBarOffsetTop_ > 0) {\n this.currentAppBarOffsetTop_ = 0;\n } else if (Math.abs(this.currentAppBarOffsetTop_) > this.topAppBarHeight_) {\n this.currentAppBarOffsetTop_ = -this.topAppBarHeight_;\n }\n this.moveTopAppBar_();\n }\n };\n /**\n * Top app bar resize handler that throttle/debounce functions that execute updates.\n */\n MDCTopAppBarFoundation.prototype.topAppBarResizeHandler_ = function () {\n var _this = this;\n // Throttle resize events 10 p/s\n if (!this.resizeThrottleId_) {\n this.resizeThrottleId_ = setTimeout(function () {\n _this.resizeThrottleId_ = INITIAL_VALUE;\n _this.throttledResizeHandler_();\n }, constants_1.numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n }\n this.isCurrentlyBeingResized_ = true;\n if (this.resizeDebounceId_) {\n clearTimeout(this.resizeDebounceId_);\n }\n this.resizeDebounceId_ = setTimeout(function () {\n _this.topAppBarScrollHandler_();\n _this.isCurrentlyBeingResized_ = false;\n _this.resizeDebounceId_ = INITIAL_VALUE;\n }, constants_1.numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n };\n /**\n * Throttled function that updates the top app bar scrolled values if the\n * top app bar height changes.\n */\n MDCTopAppBarFoundation.prototype.throttledResizeHandler_ = function () {\n var currentHeight = this.adapter_.getTopAppBarHeight();\n if (this.topAppBarHeight_ !== currentHeight) {\n this.wasDocked_ = false;\n // Since the top app bar has a different height depending on the screen width, this\n // will ensure that the top app bar remains in the correct location if\n // completely hidden and a resize makes the top app bar a different height.\n this.currentAppBarOffsetTop_ -= this.topAppBarHeight_ - currentHeight;\n this.topAppBarHeight_ = currentHeight;\n }\n this.topAppBarScrollHandler_();\n };\n return MDCTopAppBarFoundation;\n}(foundation_1.MDCTopAppBarBaseFoundation);\nexports.MDCTopAppBarFoundation = MDCTopAppBarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTopAppBarFoundation;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(7);\nvar MDCTopAppBarBaseFoundation = /** @class */function (_super) {\n __extends(MDCTopAppBarBaseFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n function MDCTopAppBarBaseFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCTopAppBarBaseFoundation.defaultAdapter, adapter)) || this;\n _this.navClickHandler_ = function () {\n return _this.adapter_.notifyNavigationIconClicked();\n };\n return _this;\n }\n Object.defineProperty(MDCTopAppBarBaseFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTopAppBarBaseFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTopAppBarBaseFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTopAppBarBaseFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCTopAppBarAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n setStyle: function setStyle() {\n return undefined;\n },\n getTopAppBarHeight: function getTopAppBarHeight() {\n return 0;\n },\n registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler() {\n return undefined;\n },\n deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler() {\n return undefined;\n },\n notifyNavigationIconClicked: function notifyNavigationIconClicked() {\n return undefined;\n },\n registerScrollHandler: function registerScrollHandler() {\n return undefined;\n },\n deregisterScrollHandler: function deregisterScrollHandler() {\n return undefined;\n },\n registerResizeHandler: function registerResizeHandler() {\n return undefined;\n },\n deregisterResizeHandler: function deregisterResizeHandler() {\n return undefined;\n },\n getViewportScrollY: function getViewportScrollY() {\n return 0;\n },\n getTotalActionItems: function getTotalActionItems() {\n return 0;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTopAppBarBaseFoundation.prototype.init = function () {\n this.initScrollHandler();\n this.initResizeHandler_();\n this.adapter_.registerNavigationIconInteractionHandler('click', this.navClickHandler_);\n };\n MDCTopAppBarBaseFoundation.prototype.destroy = function () {\n this.destroyScrollHandler();\n this.destroyResizeHandler_();\n this.adapter_.deregisterNavigationIconInteractionHandler('click', this.navClickHandler_);\n };\n MDCTopAppBarBaseFoundation.prototype.initScrollHandler = function () {\n if (this.scrollHandler_) {\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n }\n };\n MDCTopAppBarBaseFoundation.prototype.destroyScrollHandler = function () {\n if (this.scrollHandler_) {\n this.adapter_.deregisterScrollHandler(this.scrollHandler_);\n }\n };\n MDCTopAppBarBaseFoundation.prototype.initResizeHandler_ = function () {\n if (this.resizeHandler_) {\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n };\n MDCTopAppBarBaseFoundation.prototype.destroyResizeHandler_ = function () {\n if (this.resizeHandler_) {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n };\n return MDCTopAppBarBaseFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTopAppBarBaseFoundation = MDCTopAppBarBaseFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTopAppBarBaseFoundation;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(84);\nvar MDCCheckboxFoundation = /** @class */function (_super) {\n __extends(MDCCheckboxFoundation, _super);\n function MDCCheckboxFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCCheckboxFoundation.defaultAdapter, adapter)) || this;\n _this.currentCheckState_ = constants_1.strings.TRANSITION_STATE_INIT;\n _this.currentAnimationClass_ = '';\n _this.animEndLatchTimer_ = 0;\n _this.enableAnimationEndHandler_ = false;\n return _this;\n }\n Object.defineProperty(MDCCheckboxFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckboxFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckboxFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckboxFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n forceLayout: function forceLayout() {\n return undefined;\n },\n hasNativeControl: function hasNativeControl() {\n return false;\n },\n isAttachedToDOM: function isAttachedToDOM() {\n return false;\n },\n isChecked: function isChecked() {\n return false;\n },\n isIndeterminate: function isIndeterminate() {\n return false;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n removeNativeControlAttr: function removeNativeControlAttr() {\n return undefined;\n },\n setNativeControlAttr: function setNativeControlAttr() {\n return undefined;\n },\n setNativeControlDisabled: function setNativeControlDisabled() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCCheckboxFoundation.prototype.init = function () {\n this.currentCheckState_ = this.determineCheckState_();\n this.updateAriaChecked_();\n this.adapter_.addClass(constants_1.cssClasses.UPGRADED);\n };\n MDCCheckboxFoundation.prototype.destroy = function () {\n clearTimeout(this.animEndLatchTimer_);\n };\n MDCCheckboxFoundation.prototype.setDisabled = function (disabled) {\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(constants_1.cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.DISABLED);\n }\n };\n /**\n * Handles the animationend event for the checkbox\n */\n MDCCheckboxFoundation.prototype.handleAnimationEnd = function () {\n var _this = this;\n if (!this.enableAnimationEndHandler_) {\n return;\n }\n clearTimeout(this.animEndLatchTimer_);\n this.animEndLatchTimer_ = setTimeout(function () {\n _this.adapter_.removeClass(_this.currentAnimationClass_);\n _this.enableAnimationEndHandler_ = false;\n }, constants_1.numbers.ANIM_END_LATCH_MS);\n };\n /**\n * Handles the change event for the checkbox\n */\n MDCCheckboxFoundation.prototype.handleChange = function () {\n this.transitionCheckState_();\n };\n MDCCheckboxFoundation.prototype.transitionCheckState_ = function () {\n if (!this.adapter_.hasNativeControl()) {\n return;\n }\n var oldState = this.currentCheckState_;\n var newState = this.determineCheckState_();\n if (oldState === newState) {\n return;\n }\n this.updateAriaChecked_();\n var TRANSITION_STATE_UNCHECKED = constants_1.strings.TRANSITION_STATE_UNCHECKED;\n var SELECTED = constants_1.cssClasses.SELECTED;\n if (newState === TRANSITION_STATE_UNCHECKED) {\n this.adapter_.removeClass(SELECTED);\n } else {\n this.adapter_.addClass(SELECTED);\n }\n // Check to ensure that there isn't a previously existing animation class, in case for example\n // the user interacted with the checkbox before the animation was finished.\n if (this.currentAnimationClass_.length > 0) {\n clearTimeout(this.animEndLatchTimer_);\n this.adapter_.forceLayout();\n this.adapter_.removeClass(this.currentAnimationClass_);\n }\n this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState);\n this.currentCheckState_ = newState;\n // Check for parentNode so that animations are only run when the element is attached\n // to the DOM.\n if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) {\n this.adapter_.addClass(this.currentAnimationClass_);\n this.enableAnimationEndHandler_ = true;\n }\n };\n MDCCheckboxFoundation.prototype.determineCheckState_ = function () {\n var TRANSITION_STATE_INDETERMINATE = constants_1.strings.TRANSITION_STATE_INDETERMINATE,\n TRANSITION_STATE_CHECKED = constants_1.strings.TRANSITION_STATE_CHECKED,\n TRANSITION_STATE_UNCHECKED = constants_1.strings.TRANSITION_STATE_UNCHECKED;\n if (this.adapter_.isIndeterminate()) {\n return TRANSITION_STATE_INDETERMINATE;\n }\n return this.adapter_.isChecked() ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED;\n };\n MDCCheckboxFoundation.prototype.getTransitionAnimationClass_ = function (oldState, newState) {\n var TRANSITION_STATE_INIT = constants_1.strings.TRANSITION_STATE_INIT,\n TRANSITION_STATE_CHECKED = constants_1.strings.TRANSITION_STATE_CHECKED,\n TRANSITION_STATE_UNCHECKED = constants_1.strings.TRANSITION_STATE_UNCHECKED;\n var _a = MDCCheckboxFoundation.cssClasses,\n ANIM_UNCHECKED_CHECKED = _a.ANIM_UNCHECKED_CHECKED,\n ANIM_UNCHECKED_INDETERMINATE = _a.ANIM_UNCHECKED_INDETERMINATE,\n ANIM_CHECKED_UNCHECKED = _a.ANIM_CHECKED_UNCHECKED,\n ANIM_CHECKED_INDETERMINATE = _a.ANIM_CHECKED_INDETERMINATE,\n ANIM_INDETERMINATE_CHECKED = _a.ANIM_INDETERMINATE_CHECKED,\n ANIM_INDETERMINATE_UNCHECKED = _a.ANIM_INDETERMINATE_UNCHECKED;\n switch (oldState) {\n case TRANSITION_STATE_INIT:\n if (newState === TRANSITION_STATE_UNCHECKED) {\n return '';\n }\n return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;\n case TRANSITION_STATE_UNCHECKED:\n return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE;\n case TRANSITION_STATE_CHECKED:\n return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE;\n default:\n // TRANSITION_STATE_INDETERMINATE\n return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;\n }\n };\n MDCCheckboxFoundation.prototype.updateAriaChecked_ = function () {\n // Ensure aria-checked is set to mixed if checkbox is in indeterminate state.\n if (this.adapter_.isIndeterminate()) {\n this.adapter_.setNativeControlAttr(constants_1.strings.ARIA_CHECKED_ATTR, constants_1.strings.ARIA_CHECKED_INDETERMINATE_VALUE);\n } else {\n // The on/off state does not need to keep track of aria-checked, since\n // the screenreader uses the checked property on the checkbox element.\n this.adapter_.removeNativeControlAttr(constants_1.strings.ARIA_CHECKED_ATTR);\n }\n };\n return MDCCheckboxFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCCheckboxFoundation = MDCCheckboxFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCCheckboxFoundation;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar constants_1 = __webpack_require__(29);\nvar foundation_2 = __webpack_require__(12);\nvar INTERACTION_EVENTS = ['click', 'keydown'];\nvar MDCChip = /** @class */function (_super) {\n __extends(MDCChip, _super);\n function MDCChip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MDCChip.prototype, \"selected\", {\n /**\n * @return Whether the chip is selected.\n */\n get: function get() {\n return this.foundation_.isSelected();\n },\n /**\n * Sets selected state on the chip.\n */\n set: function set(selected) {\n this.foundation_.setSelected(selected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChip.prototype, \"shouldRemoveOnTrailingIconClick\", {\n /**\n * @return Whether a trailing icon click should trigger exit/removal of the chip.\n */\n get: function get() {\n return this.foundation_.getShouldRemoveOnTrailingIconClick();\n },\n /**\n * Sets whether a trailing icon click should trigger exit/removal of the chip.\n */\n set: function set(shouldRemove) {\n this.foundation_.setShouldRemoveOnTrailingIconClick(shouldRemove);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChip.prototype, \"ripple\", {\n get: function get() {\n return this.ripple_;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChip.prototype, \"id\", {\n get: function get() {\n return this.root_.id;\n },\n enumerable: true,\n configurable: true\n });\n MDCChip.attachTo = function (root) {\n return new MDCChip(root);\n };\n MDCChip.prototype.initialize = function (rippleFactory) {\n var _this = this;\n if (rippleFactory === void 0) {\n rippleFactory = function rippleFactory(el, foundation) {\n return new component_2.MDCRipple(el, foundation);\n };\n }\n this.leadingIcon_ = this.root_.querySelector(constants_1.strings.LEADING_ICON_SELECTOR);\n this.trailingIcon_ = this.root_.querySelector(constants_1.strings.TRAILING_ICON_SELECTOR);\n this.checkmark_ = this.root_.querySelector(constants_1.strings.CHECKMARK_SELECTOR);\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var rippleAdapter = __assign({}, component_2.MDCRipple.createAdapter(this), { computeBoundingRect: function computeBoundingRect() {\n return _this.foundation_.getDimensions();\n } });\n this.ripple_ = rippleFactory(this.root_, new foundation_1.MDCRippleFoundation(rippleAdapter));\n };\n MDCChip.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleInteraction_ = function (evt) {\n return _this.foundation_.handleInteraction(evt);\n };\n this.handleTransitionEnd_ = function (evt) {\n return _this.foundation_.handleTransitionEnd(evt);\n };\n this.handleTrailingIconInteraction_ = function (evt) {\n return _this.foundation_.handleTrailingIconInteraction(evt);\n };\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.listen(evtType, _this.handleInteraction_);\n });\n this.listen('transitionend', this.handleTransitionEnd_);\n if (this.trailingIcon_) {\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.trailingIcon_.addEventListener(evtType, _this.handleTrailingIconInteraction_);\n });\n }\n };\n MDCChip.prototype.destroy = function () {\n var _this = this;\n this.ripple_.destroy();\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.unlisten(evtType, _this.handleInteraction_);\n });\n this.unlisten('transitionend', this.handleTransitionEnd_);\n if (this.trailingIcon_) {\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.trailingIcon_.removeEventListener(evtType, _this.handleTrailingIconInteraction_);\n });\n }\n _super.prototype.destroy.call(this);\n };\n /**\n * Begins the exit animation which leads to removal of the chip.\n */\n MDCChip.prototype.beginExit = function () {\n this.foundation_.beginExit();\n };\n MDCChip.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n addClassToLeadingIcon: function addClassToLeadingIcon(className) {\n if (_this.leadingIcon_) {\n _this.leadingIcon_.classList.add(className);\n }\n },\n eventTargetHasClass: function eventTargetHasClass(target, className) {\n return target ? target.classList.contains(className) : false;\n },\n getCheckmarkBoundingClientRect: function getCheckmarkBoundingClientRect() {\n return _this.checkmark_ ? _this.checkmark_.getBoundingClientRect() : null;\n },\n getComputedStyleValue: function getComputedStyleValue(propertyName) {\n return window.getComputedStyle(_this.root_).getPropertyValue(propertyName);\n },\n getRootBoundingClientRect: function getRootBoundingClientRect() {\n return _this.root_.getBoundingClientRect();\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n hasLeadingIcon: function hasLeadingIcon() {\n return !!_this.leadingIcon_;\n },\n notifyInteraction: function notifyInteraction() {\n return _this.emit(constants_1.strings.INTERACTION_EVENT, { chipId: _this.id }, true /* shouldBubble */);\n },\n notifyRemoval: function notifyRemoval() {\n return _this.emit(constants_1.strings.REMOVAL_EVENT, { chipId: _this.id, root: _this.root_ }, true /* shouldBubble */);\n },\n notifySelection: function notifySelection(selected) {\n return _this.emit(constants_1.strings.SELECTION_EVENT, { chipId: _this.id, selected: selected }, true /* shouldBubble */);\n },\n notifyTrailingIconInteraction: function notifyTrailingIconInteraction() {\n return _this.emit(constants_1.strings.TRAILING_ICON_INTERACTION_EVENT, { chipId: _this.id }, true /* shouldBubble */);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n removeClassFromLeadingIcon: function removeClassFromLeadingIcon(className) {\n if (_this.leadingIcon_) {\n _this.leadingIcon_.classList.remove(className);\n }\n },\n setStyleProperty: function setStyleProperty(propertyName, value) {\n return _this.root_.style.setProperty(propertyName, value);\n }\n };\n return new foundation_2.MDCChipFoundation(adapter);\n };\n return MDCChip;\n}(component_1.MDCComponent);\nexports.MDCChip = MDCChip;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strings = {\n CHECKMARK_SELECTOR: '.mdc-chip__checkmark',\n ENTRY_ANIMATION_NAME: 'mdc-chip-entry',\n INTERACTION_EVENT: 'MDCChip:interaction',\n LEADING_ICON_SELECTOR: '.mdc-chip__icon--leading',\n REMOVAL_EVENT: 'MDCChip:removal',\n SELECTION_EVENT: 'MDCChip:selection',\n TRAILING_ICON_INTERACTION_EVENT: 'MDCChip:trailingIconInteraction',\n TRAILING_ICON_SELECTOR: '.mdc-chip__icon--trailing'\n};\nexports.cssClasses = {\n CHECKMARK: 'mdc-chip__checkmark',\n CHIP_EXIT: 'mdc-chip--exit',\n HIDDEN_LEADING_ICON: 'mdc-chip__icon--leading-hidden',\n LEADING_ICON: 'mdc-chip__icon--leading',\n SELECTED: 'mdc-chip--selected',\n TRAILING_ICON: 'mdc-chip__icon--trailing'\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(89);\nvar MDCChipSetFoundation = /** @class */function (_super) {\n __extends(MDCChipSetFoundation, _super);\n function MDCChipSetFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCChipSetFoundation.defaultAdapter, adapter)) || this;\n /**\n * The ids of the selected chips in the set. Only used for choice chip set or filter chip set.\n */\n _this.selectedChipIds_ = [];\n return _this;\n }\n Object.defineProperty(MDCChipSetFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChipSetFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChipSetFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n hasClass: function hasClass() {\n return false;\n },\n removeChip: function removeChip() {\n return undefined;\n },\n setSelected: function setSelected() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns an array of the IDs of all selected chips.\n */\n MDCChipSetFoundation.prototype.getSelectedChipIds = function () {\n return this.selectedChipIds_.slice();\n };\n /**\n * Selects the chip with the given id. Deselects all other chips if the chip set is of the choice variant.\n */\n MDCChipSetFoundation.prototype.select = function (chipId) {\n if (this.selectedChipIds_.indexOf(chipId) >= 0) {\n return;\n }\n if (this.adapter_.hasClass(constants_1.cssClasses.CHOICE) && this.selectedChipIds_.length > 0) {\n var previouslySelectedChip = this.selectedChipIds_[0];\n this.selectedChipIds_.length = 0;\n this.adapter_.setSelected(previouslySelectedChip, false);\n }\n this.selectedChipIds_.push(chipId);\n this.adapter_.setSelected(chipId, true);\n };\n /**\n * Handles a chip interaction event\n */\n MDCChipSetFoundation.prototype.handleChipInteraction = function (chipId) {\n if (this.adapter_.hasClass(constants_1.cssClasses.CHOICE) || this.adapter_.hasClass(constants_1.cssClasses.FILTER)) {\n this.toggleSelect_(chipId);\n }\n };\n /**\n * Handles a chip selection event, used to handle discrepancy when selection state is set directly on the Chip.\n */\n MDCChipSetFoundation.prototype.handleChipSelection = function (chipId, selected) {\n var chipIsSelected = this.selectedChipIds_.indexOf(chipId) >= 0;\n if (selected && !chipIsSelected) {\n this.select(chipId);\n } else if (!selected && chipIsSelected) {\n this.deselect_(chipId);\n }\n };\n /**\n * Handles the event when a chip is removed.\n */\n MDCChipSetFoundation.prototype.handleChipRemoval = function (chipId) {\n this.deselect_(chipId);\n this.adapter_.removeChip(chipId);\n };\n /**\n * Deselects the chip with the given id.\n */\n MDCChipSetFoundation.prototype.deselect_ = function (chipId) {\n var index = this.selectedChipIds_.indexOf(chipId);\n if (index >= 0) {\n this.selectedChipIds_.splice(index, 1);\n this.adapter_.setSelected(chipId, false);\n }\n };\n /**\n * Toggles selection of the chip with the given id.\n */\n MDCChipSetFoundation.prototype.toggleSelect_ = function (chipId) {\n if (this.selectedChipIds_.indexOf(chipId) >= 0) {\n this.deselect_(chipId);\n } else {\n this.select(chipId);\n }\n };\n return MDCChipSetFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCChipSetFoundation = MDCChipSetFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCChipSetFoundation;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar focus_trap_1 = __importDefault(__webpack_require__(91));\nfunction createFocusTrapInstance(surfaceEl, focusTrapFactory, initialFocusEl) {\n if (focusTrapFactory === void 0) {\n focusTrapFactory = focus_trap_1.default;\n }\n return focusTrapFactory(surfaceEl, {\n clickOutsideDeactivates: true,\n escapeDeactivates: false,\n initialFocus: initialFocusEl\n });\n}\nexports.createFocusTrapInstance = createFocusTrapInstance;\nfunction isScrollable(el) {\n return el ? el.scrollHeight > el.offsetHeight : false;\n}\nexports.isScrollable = isScrollable;\nfunction areTopsMisaligned(els) {\n var tops = new Set();\n [].forEach.call(els, function (el) {\n return tops.add(el.offsetTop);\n });\n return tops.size > 1;\n}\nexports.areTopsMisaligned = areTopsMisaligned;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(95);\nvar MDCDialogFoundation = /** @class */function (_super) {\n __extends(MDCDialogFoundation, _super);\n function MDCDialogFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCDialogFoundation.defaultAdapter, adapter)) || this;\n _this.isOpen_ = false;\n _this.animationFrame_ = 0;\n _this.animationTimer_ = 0;\n _this.layoutFrame_ = 0;\n _this.escapeKeyAction_ = constants_1.strings.CLOSE_ACTION;\n _this.scrimClickAction_ = constants_1.strings.CLOSE_ACTION;\n _this.autoStackButtons_ = true;\n _this.areButtonsStacked_ = false;\n return _this;\n }\n Object.defineProperty(MDCDialogFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialogFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialogFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialogFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addBodyClass: function addBodyClass() {\n return undefined;\n },\n addClass: function addClass() {\n return undefined;\n },\n areButtonsStacked: function areButtonsStacked() {\n return false;\n },\n clickDefaultButton: function clickDefaultButton() {\n return undefined;\n },\n eventTargetMatches: function eventTargetMatches() {\n return false;\n },\n getActionFromEvent: function getActionFromEvent() {\n return '';\n },\n hasClass: function hasClass() {\n return false;\n },\n isContentScrollable: function isContentScrollable() {\n return false;\n },\n notifyClosed: function notifyClosed() {\n return undefined;\n },\n notifyClosing: function notifyClosing() {\n return undefined;\n },\n notifyOpened: function notifyOpened() {\n return undefined;\n },\n notifyOpening: function notifyOpening() {\n return undefined;\n },\n releaseFocus: function releaseFocus() {\n return undefined;\n },\n removeBodyClass: function removeBodyClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n reverseButtons: function reverseButtons() {\n return undefined;\n },\n trapFocus: function trapFocus() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCDialogFoundation.prototype.init = function () {\n if (this.adapter_.hasClass(constants_1.cssClasses.STACKED)) {\n this.setAutoStackButtons(false);\n }\n };\n MDCDialogFoundation.prototype.destroy = function () {\n if (this.isOpen_) {\n this.close(constants_1.strings.DESTROY_ACTION);\n }\n if (this.animationTimer_) {\n clearTimeout(this.animationTimer_);\n this.handleAnimationTimerEnd_();\n }\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n this.layoutFrame_ = 0;\n }\n };\n MDCDialogFoundation.prototype.open = function () {\n var _this = this;\n this.isOpen_ = true;\n this.adapter_.notifyOpening();\n this.adapter_.addClass(constants_1.cssClasses.OPENING);\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(function () {\n _this.adapter_.addClass(constants_1.cssClasses.OPEN);\n _this.adapter_.addBodyClass(constants_1.cssClasses.SCROLL_LOCK);\n _this.layout();\n _this.animationTimer_ = setTimeout(function () {\n _this.handleAnimationTimerEnd_();\n _this.adapter_.trapFocus();\n _this.adapter_.notifyOpened();\n }, constants_1.numbers.DIALOG_ANIMATION_OPEN_TIME_MS);\n });\n };\n MDCDialogFoundation.prototype.close = function (action) {\n var _this = this;\n if (action === void 0) {\n action = '';\n }\n if (!this.isOpen_) {\n // Avoid redundant close calls (and events), e.g. from keydown on elements that inherently emit click\n return;\n }\n this.isOpen_ = false;\n this.adapter_.notifyClosing(action);\n this.adapter_.addClass(constants_1.cssClasses.CLOSING);\n this.adapter_.removeClass(constants_1.cssClasses.OPEN);\n this.adapter_.removeBodyClass(constants_1.cssClasses.SCROLL_LOCK);\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(function () {\n _this.adapter_.releaseFocus();\n _this.handleAnimationTimerEnd_();\n _this.adapter_.notifyClosed(action);\n }, constants_1.numbers.DIALOG_ANIMATION_CLOSE_TIME_MS);\n };\n MDCDialogFoundation.prototype.isOpen = function () {\n return this.isOpen_;\n };\n MDCDialogFoundation.prototype.getEscapeKeyAction = function () {\n return this.escapeKeyAction_;\n };\n MDCDialogFoundation.prototype.setEscapeKeyAction = function (action) {\n this.escapeKeyAction_ = action;\n };\n MDCDialogFoundation.prototype.getScrimClickAction = function () {\n return this.scrimClickAction_;\n };\n MDCDialogFoundation.prototype.setScrimClickAction = function (action) {\n this.scrimClickAction_ = action;\n };\n MDCDialogFoundation.prototype.getAutoStackButtons = function () {\n return this.autoStackButtons_;\n };\n MDCDialogFoundation.prototype.setAutoStackButtons = function (autoStack) {\n this.autoStackButtons_ = autoStack;\n };\n MDCDialogFoundation.prototype.layout = function () {\n var _this = this;\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n this.layoutFrame_ = requestAnimationFrame(function () {\n _this.layoutInternal_();\n _this.layoutFrame_ = 0;\n });\n };\n MDCDialogFoundation.prototype.handleInteraction = function (evt) {\n var isClick = evt.type === 'click';\n var isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n var isSpace = evt.key === 'Space' || evt.keyCode === 32;\n var isScrim = this.adapter_.eventTargetMatches(evt.target, constants_1.strings.SCRIM_SELECTOR);\n var isDefault = !this.adapter_.eventTargetMatches(evt.target, constants_1.strings.SUPPRESS_DEFAULT_PRESS_SELECTOR);\n // Check for scrim click first since it doesn't require querying ancestors\n if (isClick && isScrim && this.scrimClickAction_ !== '') {\n this.close(this.scrimClickAction_);\n } else if (isClick || isSpace || isEnter) {\n var action = this.adapter_.getActionFromEvent(evt);\n if (action) {\n this.close(action);\n } else if (isEnter && isDefault) {\n this.adapter_.clickDefaultButton();\n }\n }\n };\n MDCDialogFoundation.prototype.handleDocumentKeydown = function (evt) {\n var isEscape = evt.key === 'Escape' || evt.keyCode === 27;\n if (isEscape && this.escapeKeyAction_ !== '') {\n this.close(this.escapeKeyAction_);\n }\n };\n MDCDialogFoundation.prototype.layoutInternal_ = function () {\n if (this.autoStackButtons_) {\n this.detectStackedButtons_();\n }\n this.detectScrollableContent_();\n };\n MDCDialogFoundation.prototype.handleAnimationTimerEnd_ = function () {\n this.animationTimer_ = 0;\n this.adapter_.removeClass(constants_1.cssClasses.OPENING);\n this.adapter_.removeClass(constants_1.cssClasses.CLOSING);\n };\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n MDCDialogFoundation.prototype.runNextAnimationFrame_ = function (callback) {\n var _this = this;\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(function () {\n _this.animationFrame_ = 0;\n clearTimeout(_this.animationTimer_);\n _this.animationTimer_ = setTimeout(callback, 0);\n });\n };\n MDCDialogFoundation.prototype.detectStackedButtons_ = function () {\n // Remove the class first to let us measure the buttons' natural positions.\n this.adapter_.removeClass(constants_1.cssClasses.STACKED);\n var areButtonsStacked = this.adapter_.areButtonsStacked();\n if (areButtonsStacked) {\n this.adapter_.addClass(constants_1.cssClasses.STACKED);\n }\n if (areButtonsStacked !== this.areButtonsStacked_) {\n this.adapter_.reverseButtons();\n this.areButtonsStacked_ = areButtonsStacked;\n }\n };\n MDCDialogFoundation.prototype.detectScrollableContent_ = function () {\n // Remove the class first to let us measure the natural height of the content.\n this.adapter_.removeClass(constants_1.cssClasses.SCROLLABLE);\n if (this.adapter_.isContentScrollable()) {\n this.adapter_.addClass(constants_1.cssClasses.SCROLLABLE);\n }\n };\n return MDCDialogFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCDialogFoundation = MDCDialogFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCDialogFoundation;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar focus_trap_1 = __importDefault(__webpack_require__(34));\nfunction createFocusTrapInstance(surfaceEl, focusTrapFactory) {\n if (focusTrapFactory === void 0) {\n focusTrapFactory = focus_trap_1.default;\n }\n return focusTrapFactory(surfaceEl, {\n clickOutsideDeactivates: true,\n escapeDeactivates: false,\n initialFocus: undefined,\n returnFocusOnDeactivate: false\n });\n}\nexports.createFocusTrapInstance = createFocusTrapInstance;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar tabbable = __webpack_require__(98);\nvar xtend = __webpack_require__(99);\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n LIST_ITEM_ACTIVATED_CLASS: 'mdc-list-item--activated',\n LIST_ITEM_CLASS: 'mdc-list-item',\n LIST_ITEM_DISABLED_CLASS: 'mdc-list-item--disabled',\n LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected',\n ROOT: 'mdc-list'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ACTION_EVENT: 'MDCList:action',\n ARIA_CHECKED: 'aria-checked',\n ARIA_CHECKED_CHECKBOX_SELECTOR: '[role=\"checkbox\"][aria-checked=\"true\"]',\n ARIA_CHECKED_RADIO_SELECTOR: '[role=\"radio\"][aria-checked=\"true\"]',\n ARIA_CURRENT: 'aria-current',\n ARIA_ORIENTATION: 'aria-orientation',\n ARIA_ORIENTATION_HORIZONTAL: 'horizontal',\n ARIA_ROLE_CHECKBOX_SELECTOR: '[role=\"checkbox\"]',\n ARIA_SELECTED: 'aria-selected',\n CHECKBOX_RADIO_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled), input[type=\"radio\"]:not(:disabled)',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled)',\n CHILD_ELEMENTS_TO_TOGGLE_TABINDEX: \"\\n .\" + cssClasses.LIST_ITEM_CLASS + \" button:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" a\\n \",\n FOCUSABLE_CHILD_ELEMENTS: \"\\n .\" + cssClasses.LIST_ITEM_CLASS + \" button:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" a,\\n .\" + cssClasses.LIST_ITEM_CLASS + \" input[type=\\\"radio\\\"]:not(:disabled),\\n .\" + cssClasses.LIST_ITEM_CLASS + \" input[type=\\\"checkbox\\\"]:not(:disabled)\\n \",\n RADIO_SELECTOR: 'input[type=\"radio\"]:not(:disabled)'\n};\nexports.strings = strings;\nvar numbers = {\n UNSET_INDEX: -1\n};\nexports.numbers = numbers;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(14);\n/* istanbul ignore next: subclass is not a branch statement */\nvar MDCModalDrawerFoundation = /** @class */function (_super) {\n __extends(MDCModalDrawerFoundation, _super);\n function MDCModalDrawerFoundation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Handles click event on scrim.\n */\n MDCModalDrawerFoundation.prototype.handleScrimClick = function () {\n this.close();\n };\n /**\n * Called when drawer finishes open animation.\n */\n MDCModalDrawerFoundation.prototype.opened_ = function () {\n this.adapter_.trapFocus();\n };\n /**\n * Called when drawer finishes close animation.\n */\n MDCModalDrawerFoundation.prototype.closed_ = function () {\n this.adapter_.releaseFocus();\n };\n return MDCModalDrawerFoundation;\n}(foundation_1.MDCDismissibleDrawerFoundation);\nexports.MDCModalDrawerFoundation = MDCModalDrawerFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCModalDrawerFoundation;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(106);\nvar MDCFormFieldFoundation = /** @class */function (_super) {\n __extends(MDCFormFieldFoundation, _super);\n function MDCFormFieldFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCFormFieldFoundation.defaultAdapter, adapter)) || this;\n _this.clickHandler_ = function () {\n return _this.handleClick_();\n };\n return _this;\n }\n Object.defineProperty(MDCFormFieldFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFormFieldFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFormFieldFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n activateInputRipple: function activateInputRipple() {\n return undefined;\n },\n deactivateInputRipple: function deactivateInputRipple() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCFormFieldFoundation.prototype.init = function () {\n this.adapter_.registerInteractionHandler('click', this.clickHandler_);\n };\n MDCFormFieldFoundation.prototype.destroy = function () {\n this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);\n };\n MDCFormFieldFoundation.prototype.handleClick_ = function () {\n var _this = this;\n this.adapter_.activateInputRipple();\n requestAnimationFrame(function () {\n return _this.adapter_.deactivateInputRipple();\n });\n };\n return MDCFormFieldFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCFormFieldFoundation = MDCFormFieldFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCFormFieldFoundation;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(109);\nvar MDCGridListFoundation = /** @class */function (_super) {\n __extends(MDCGridListFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n function MDCGridListFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCGridListFoundation.defaultAdapter, adapter)) || this;\n _this.resizeFrame_ = 0;\n _this.resizeHandler_ = _this.alignCenter.bind(_this);\n return _this;\n }\n Object.defineProperty(MDCGridListFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCGridListFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n deregisterResizeHandler: function deregisterResizeHandler() {\n return undefined;\n },\n getNumberOfTiles: function getNumberOfTiles() {\n return 0;\n },\n getOffsetWidth: function getOffsetWidth() {\n return 0;\n },\n getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex() {\n return 0;\n },\n registerResizeHandler: function registerResizeHandler() {\n return undefined;\n },\n setStyleForTilesElement: function setStyleForTilesElement() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCGridListFoundation.prototype.init = function () {\n this.alignCenter();\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n };\n MDCGridListFoundation.prototype.destroy = function () {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n };\n MDCGridListFoundation.prototype.alignCenter = function () {\n var _this = this;\n cancelAnimationFrame(this.resizeFrame_);\n this.resizeFrame_ = requestAnimationFrame(function () {\n _this.alignCenter_();\n _this.resizeFrame_ = 0;\n });\n };\n MDCGridListFoundation.prototype.alignCenter_ = function () {\n if (this.adapter_.getNumberOfTiles() === 0) {\n return;\n }\n var gridWidth = this.adapter_.getOffsetWidth();\n var itemWidth = this.adapter_.getOffsetWidthForTileAtIndex(0);\n var tilesWidth = itemWidth * Math.floor(gridWidth / itemWidth);\n this.adapter_.setStyleForTilesElement('width', tilesWidth + \"px\");\n };\n return MDCGridListFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCGridListFoundation = MDCGridListFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCGridListFoundation;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(112);\nvar MDCIconButtonToggleFoundation = /** @class */function (_super) {\n __extends(MDCIconButtonToggleFoundation, _super);\n function MDCIconButtonToggleFoundation(adapter) {\n return _super.call(this, __assign({}, MDCIconButtonToggleFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCIconButtonToggleFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCIconButtonToggleFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCIconButtonToggleFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n notifyChange: function notifyChange() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n setAttr: function setAttr() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCIconButtonToggleFoundation.prototype.init = function () {\n this.adapter_.setAttr(constants_1.strings.ARIA_PRESSED, \"\" + this.isOn());\n };\n MDCIconButtonToggleFoundation.prototype.handleClick = function () {\n this.toggle();\n this.adapter_.notifyChange({ isOn: this.isOn() });\n };\n MDCIconButtonToggleFoundation.prototype.isOn = function () {\n return this.adapter_.hasClass(constants_1.cssClasses.ICON_BUTTON_ON);\n };\n MDCIconButtonToggleFoundation.prototype.toggle = function (isOn) {\n if (isOn === void 0) {\n isOn = !this.isOn();\n }\n if (isOn) {\n this.adapter_.addClass(constants_1.cssClasses.ICON_BUTTON_ON);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.ICON_BUTTON_ON);\n }\n this.adapter_.setAttr(constants_1.strings.ARIA_PRESSED, \"\" + isOn);\n };\n return MDCIconButtonToggleFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCIconButtonToggleFoundation = MDCIconButtonToggleFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCIconButtonToggleFoundation;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(114);\nvar MDCLineRippleFoundation = /** @class */function (_super) {\n __extends(MDCLineRippleFoundation, _super);\n function MDCLineRippleFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCLineRippleFoundation.defaultAdapter, adapter)) || this;\n _this.transitionEndHandler_ = function (evt) {\n return _this.handleTransitionEnd(evt);\n };\n return _this;\n }\n Object.defineProperty(MDCLineRippleFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLineRippleFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCLineRippleAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n setStyle: function setStyle() {\n return undefined;\n },\n registerEventHandler: function registerEventHandler() {\n return undefined;\n },\n deregisterEventHandler: function deregisterEventHandler() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCLineRippleFoundation.prototype.init = function () {\n this.adapter_.registerEventHandler('transitionend', this.transitionEndHandler_);\n };\n MDCLineRippleFoundation.prototype.destroy = function () {\n this.adapter_.deregisterEventHandler('transitionend', this.transitionEndHandler_);\n };\n MDCLineRippleFoundation.prototype.activate = function () {\n this.adapter_.removeClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);\n this.adapter_.addClass(constants_1.cssClasses.LINE_RIPPLE_ACTIVE);\n };\n MDCLineRippleFoundation.prototype.setRippleCenter = function (xCoordinate) {\n this.adapter_.setStyle('transform-origin', xCoordinate + \"px center\");\n };\n MDCLineRippleFoundation.prototype.deactivate = function () {\n this.adapter_.addClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);\n };\n MDCLineRippleFoundation.prototype.handleTransitionEnd = function (evt) {\n // Wait for the line ripple to be either transparent or opaque\n // before emitting the animation end event\n var isDeactivating = this.adapter_.hasClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);\n if (evt.propertyName === 'opacity') {\n if (isDeactivating) {\n this.adapter_.removeClass(constants_1.cssClasses.LINE_RIPPLE_ACTIVE);\n this.adapter_.removeClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);\n }\n }\n };\n return MDCLineRippleFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCLineRippleFoundation = MDCLineRippleFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCLineRippleFoundation;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = __webpack_require__(10);\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(117);\nvar MDCLinearProgressFoundation = /** @class */function (_super) {\n __extends(MDCLinearProgressFoundation, _super);\n function MDCLinearProgressFoundation(adapter) {\n return _super.call(this, __assign({}, MDCLinearProgressFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCLinearProgressFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLinearProgressFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLinearProgressFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n getBuffer: function getBuffer() {\n return null;\n },\n getPrimaryBar: function getPrimaryBar() {\n return null;\n },\n hasClass: function hasClass() {\n return false;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n setStyle: function setStyle() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCLinearProgressFoundation.prototype.init = function () {\n this.isDeterminate_ = !this.adapter_.hasClass(constants_1.cssClasses.INDETERMINATE_CLASS);\n this.isReversed_ = this.adapter_.hasClass(constants_1.cssClasses.REVERSED_CLASS);\n this.progress_ = 0;\n };\n MDCLinearProgressFoundation.prototype.setDeterminate = function (isDeterminate) {\n this.isDeterminate_ = isDeterminate;\n if (this.isDeterminate_) {\n this.adapter_.removeClass(constants_1.cssClasses.INDETERMINATE_CLASS);\n this.setScale_(this.adapter_.getPrimaryBar(), this.progress_);\n } else {\n this.adapter_.addClass(constants_1.cssClasses.INDETERMINATE_CLASS);\n this.setScale_(this.adapter_.getPrimaryBar(), 1);\n this.setScale_(this.adapter_.getBuffer(), 1);\n }\n };\n MDCLinearProgressFoundation.prototype.setProgress = function (value) {\n this.progress_ = value;\n if (this.isDeterminate_) {\n this.setScale_(this.adapter_.getPrimaryBar(), value);\n }\n };\n MDCLinearProgressFoundation.prototype.setBuffer = function (value) {\n if (this.isDeterminate_) {\n this.setScale_(this.adapter_.getBuffer(), value);\n }\n };\n MDCLinearProgressFoundation.prototype.setReverse = function (isReversed) {\n this.isReversed_ = isReversed;\n if (this.isReversed_) {\n this.adapter_.addClass(constants_1.cssClasses.REVERSED_CLASS);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.REVERSED_CLASS);\n }\n };\n MDCLinearProgressFoundation.prototype.open = function () {\n this.adapter_.removeClass(constants_1.cssClasses.CLOSED_CLASS);\n };\n MDCLinearProgressFoundation.prototype.close = function () {\n this.adapter_.addClass(constants_1.cssClasses.CLOSED_CLASS);\n };\n MDCLinearProgressFoundation.prototype.setScale_ = function (el, scaleValue) {\n if (!el) {\n return;\n }\n var value = \"scaleX(\" + scaleValue + \")\";\n this.adapter_.setStyle(el, util_1.getCorrectPropertyName(window, 'transform'), value);\n };\n return MDCLinearProgressFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCLinearProgressFoundation = MDCLinearProgressFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCLinearProgressFoundation;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cachedCssTransformPropertyName_;\n/**\n * Returns the name of the correct transform property to use on the current browser.\n */\nfunction getTransformPropertyName(globalObj, forceRefresh) {\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n if (cachedCssTransformPropertyName_ === undefined || forceRefresh) {\n var el = globalObj.document.createElement('div');\n cachedCssTransformPropertyName_ = 'transform' in el.style ? 'transform' : 'webkitTransform';\n }\n return cachedCssTransformPropertyName_;\n}\nexports.getTransformPropertyName = getTransformPropertyName;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar constants_1 = __webpack_require__(6);\nvar foundation_1 = __webpack_require__(8);\nvar util = __importStar(__webpack_require__(42));\nvar MDCMenuSurface = /** @class */function (_super) {\n __extends(MDCMenuSurface, _super);\n function MDCMenuSurface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCMenuSurface.attachTo = function (root) {\n return new MDCMenuSurface(root);\n };\n MDCMenuSurface.prototype.initialSyncWithDOM = function () {\n var _this = this;\n var parentEl = this.root_.parentElement;\n this.anchorElement = parentEl && parentEl.classList.contains(constants_1.cssClasses.ANCHOR) ? parentEl : null;\n if (this.root_.classList.contains(constants_1.cssClasses.FIXED)) {\n this.setFixedPosition(true);\n }\n this.handleKeydown_ = function (evt) {\n return _this.foundation_.handleKeydown(evt);\n };\n this.handleBodyClick_ = function (evt) {\n return _this.foundation_.handleBodyClick(evt);\n };\n this.registerBodyClickListener_ = function () {\n return document.body.addEventListener('click', _this.handleBodyClick_);\n };\n this.deregisterBodyClickListener_ = function () {\n return document.body.removeEventListener('click', _this.handleBodyClick_);\n };\n this.listen('keydown', this.handleKeydown_);\n this.listen(constants_1.strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.listen(constants_1.strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n };\n MDCMenuSurface.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(constants_1.strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.unlisten(constants_1.strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(MDCMenuSurface.prototype, \"open\", {\n get: function get() {\n return this.foundation_.isOpen();\n },\n set: function set(value) {\n if (value) {\n var focusableElements = this.root_.querySelectorAll(constants_1.strings.FOCUSABLE_ELEMENTS);\n this.firstFocusableElement_ = focusableElements[0];\n this.lastFocusableElement_ = focusableElements[focusableElements.length - 1];\n this.foundation_.open();\n } else {\n this.foundation_.close();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuSurface.prototype, \"quickOpen\", {\n set: function set(quickOpen) {\n this.foundation_.setQuickOpen(quickOpen);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Removes the menu-surface from it's current location and appends it to the\n * body to overcome any overflow:hidden issues.\n */\n MDCMenuSurface.prototype.hoistMenuToBody = function () {\n document.body.appendChild(this.root_);\n this.setIsHoisted(true);\n };\n /** Sets the foundation to use page offsets for an positioning when the menu is hoisted to the body. */\n MDCMenuSurface.prototype.setIsHoisted = function (isHoisted) {\n this.foundation_.setIsHoisted(isHoisted);\n };\n /** Sets the element that the menu-surface is anchored to. */\n MDCMenuSurface.prototype.setMenuSurfaceAnchorElement = function (element) {\n this.anchorElement = element;\n };\n /** Sets the menu-surface to position: fixed. */\n MDCMenuSurface.prototype.setFixedPosition = function (isFixed) {\n if (isFixed) {\n this.root_.classList.add(constants_1.cssClasses.FIXED);\n } else {\n this.root_.classList.remove(constants_1.cssClasses.FIXED);\n }\n this.foundation_.setFixedPosition(isFixed);\n };\n /** Sets the absolute x/y position to position based on. Requires the menu to be hoisted. */\n MDCMenuSurface.prototype.setAbsolutePosition = function (x, y) {\n this.foundation_.setAbsolutePosition(x, y);\n this.setIsHoisted(true);\n };\n /**\n * @param corner Default anchor corner alignment of top-left surface corner.\n */\n MDCMenuSurface.prototype.setAnchorCorner = function (corner) {\n this.foundation_.setAnchorCorner(corner);\n };\n MDCMenuSurface.prototype.setAnchorMargin = function (margin) {\n this.foundation_.setAnchorMargin(margin);\n };\n MDCMenuSurface.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n hasAnchor: function hasAnchor() {\n return !!_this.anchorElement;\n },\n notifyClose: function notifyClose() {\n return _this.emit(foundation_1.MDCMenuSurfaceFoundation.strings.CLOSED_EVENT, {});\n },\n notifyOpen: function notifyOpen() {\n return _this.emit(foundation_1.MDCMenuSurfaceFoundation.strings.OPENED_EVENT, {});\n },\n isElementInContainer: function isElementInContainer(el) {\n return _this.root_.contains(el);\n },\n isRtl: function isRtl() {\n return getComputedStyle(_this.root_).getPropertyValue('direction') === 'rtl';\n },\n setTransformOrigin: function setTransformOrigin(origin) {\n var propertyName = util.getTransformPropertyName(window) + \"-origin\";\n _this.root_.style.setProperty(propertyName, origin);\n },\n isFocused: function isFocused() {\n return document.activeElement === _this.root_;\n },\n saveFocus: function saveFocus() {\n _this.previousFocus_ = document.activeElement;\n },\n restoreFocus: function restoreFocus() {\n if (_this.root_.contains(document.activeElement)) {\n if (_this.previousFocus_ && _this.previousFocus_.focus) {\n _this.previousFocus_.focus();\n }\n }\n },\n isFirstElementFocused: function isFirstElementFocused() {\n return _this.firstFocusableElement_ ? _this.firstFocusableElement_ === document.activeElement : false;\n },\n isLastElementFocused: function isLastElementFocused() {\n return _this.lastFocusableElement_ ? _this.lastFocusableElement_ === document.activeElement : false;\n },\n focusFirstElement: function focusFirstElement() {\n return _this.firstFocusableElement_ && _this.firstFocusableElement_.focus && _this.firstFocusableElement_.focus();\n },\n focusLastElement: function focusLastElement() {\n return _this.lastFocusableElement_ && _this.lastFocusableElement_.focus && _this.lastFocusableElement_.focus();\n },\n getInnerDimensions: function getInnerDimensions() {\n return { width: _this.root_.offsetWidth, height: _this.root_.offsetHeight };\n },\n getAnchorDimensions: function getAnchorDimensions() {\n return _this.anchorElement ? _this.anchorElement.getBoundingClientRect() : null;\n },\n getWindowDimensions: function getWindowDimensions() {\n return { width: window.innerWidth, height: window.innerHeight };\n },\n getBodyDimensions: function getBodyDimensions() {\n return { width: document.body.clientWidth, height: document.body.clientHeight };\n },\n getWindowScroll: function getWindowScroll() {\n return { x: window.pageXOffset, y: window.pageYOffset };\n },\n setPosition: function setPosition(position) {\n _this.root_.style.left = 'left' in position ? position.left + \"px\" : '';\n _this.root_.style.right = 'right' in position ? position.right + \"px\" : '';\n _this.root_.style.top = 'top' in position ? position.top + \"px\" : '';\n _this.root_.style.bottom = 'bottom' in position ? position.bottom + \"px\" : '';\n },\n setMaxHeight: function setMaxHeight(height) {\n _this.root_.style.maxHeight = height;\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCMenuSurfaceFoundation(adapter);\n };\n return MDCMenuSurface;\n}(component_1.MDCComponent);\nexports.MDCMenuSurface = MDCMenuSurface;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(13);\nvar foundation_1 = __webpack_require__(5);\nvar component_3 = __webpack_require__(43);\nvar foundation_2 = __webpack_require__(8);\nvar constants_1 = __webpack_require__(18);\nvar foundation_3 = __webpack_require__(45);\nvar MDCMenu = /** @class */function (_super) {\n __extends(MDCMenu, _super);\n function MDCMenu() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCMenu.attachTo = function (root) {\n return new MDCMenu(root);\n };\n MDCMenu.prototype.initialize = function (menuSurfaceFactory, listFactory) {\n if (menuSurfaceFactory === void 0) {\n menuSurfaceFactory = function menuSurfaceFactory(el) {\n return new component_3.MDCMenuSurface(el);\n };\n }\n if (listFactory === void 0) {\n listFactory = function listFactory(el) {\n return new component_2.MDCList(el);\n };\n }\n this.menuSurfaceFactory_ = menuSurfaceFactory;\n this.listFactory_ = listFactory;\n };\n MDCMenu.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.menuSurface_ = this.menuSurfaceFactory_(this.root_);\n var list = this.root_.querySelector(constants_1.strings.LIST_SELECTOR);\n if (list) {\n this.list_ = this.listFactory_(list);\n this.list_.wrapFocus = true;\n } else {\n this.list_ = null;\n }\n this.handleKeydown_ = function (evt) {\n return _this.foundation_.handleKeydown(evt);\n };\n this.handleItemAction_ = function (evt) {\n return _this.foundation_.handleItemAction(_this.items[evt.detail.index]);\n };\n this.handleMenuSurfaceOpened_ = function () {\n return _this.foundation_.handleMenuSurfaceOpened();\n };\n this.menuSurface_.listen(foundation_2.MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.listen('keydown', this.handleKeydown_);\n this.listen(foundation_1.MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n };\n MDCMenu.prototype.destroy = function () {\n if (this.list_) {\n this.list_.destroy();\n }\n this.menuSurface_.destroy();\n this.menuSurface_.unlisten(foundation_2.MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(foundation_1.MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(MDCMenu.prototype, \"open\", {\n get: function get() {\n return this.menuSurface_.open;\n },\n set: function set(value) {\n this.menuSurface_.open = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"wrapFocus\", {\n get: function get() {\n return this.list_ ? this.list_.wrapFocus : false;\n },\n set: function set(value) {\n if (this.list_) {\n this.list_.wrapFocus = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"items\", {\n /**\n * Return the items within the menu. Note that this only contains the set of elements within\n * the items container that are proper list items, and not supplemental / presentational DOM\n * elements.\n */\n get: function get() {\n return this.list_ ? this.list_.listElements : [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenu.prototype, \"quickOpen\", {\n set: function set(quickOpen) {\n this.menuSurface_.quickOpen = quickOpen;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n * @param focusState Default focus state.\n */\n MDCMenu.prototype.setDefaultFocusState = function (focusState) {\n this.foundation_.setDefaultFocusState(focusState);\n };\n /**\n * @param corner Default anchor corner alignment of top-left menu corner.\n */\n MDCMenu.prototype.setAnchorCorner = function (corner) {\n this.menuSurface_.setAnchorCorner(corner);\n };\n MDCMenu.prototype.setAnchorMargin = function (margin) {\n this.menuSurface_.setAnchorMargin(margin);\n };\n /**\n * @return The item within the menu at the index specified.\n */\n MDCMenu.prototype.getOptionByIndex = function (index) {\n var items = this.items;\n if (index < items.length) {\n return this.items[index];\n } else {\n return null;\n }\n };\n MDCMenu.prototype.setFixedPosition = function (isFixed) {\n this.menuSurface_.setFixedPosition(isFixed);\n };\n MDCMenu.prototype.hoistMenuToBody = function () {\n this.menuSurface_.hoistMenuToBody();\n };\n MDCMenu.prototype.setIsHoisted = function (isHoisted) {\n this.menuSurface_.setIsHoisted(isHoisted);\n };\n MDCMenu.prototype.setAbsolutePosition = function (x, y) {\n this.menuSurface_.setAbsolutePosition(x, y);\n };\n /**\n * Sets the element that the menu-surface is anchored to.\n */\n MDCMenu.prototype.setAnchorElement = function (element) {\n this.menuSurface_.anchorElement = element;\n };\n MDCMenu.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClassToElementAtIndex: function addClassToElementAtIndex(index, className) {\n var list = _this.items;\n list[index].classList.add(className);\n },\n removeClassFromElementAtIndex: function removeClassFromElementAtIndex(index, className) {\n var list = _this.items;\n list[index].classList.remove(className);\n },\n addAttributeToElementAtIndex: function addAttributeToElementAtIndex(index, attr, value) {\n var list = _this.items;\n list[index].setAttribute(attr, value);\n },\n removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex(index, attr) {\n var list = _this.items;\n list[index].removeAttribute(attr);\n },\n elementContainsClass: function elementContainsClass(element, className) {\n return element.classList.contains(className);\n },\n closeSurface: function closeSurface() {\n return _this.open = false;\n },\n getElementIndex: function getElementIndex(element) {\n return _this.items.indexOf(element);\n },\n getParentElement: function getParentElement(element) {\n return element.parentElement;\n },\n getSelectedElementIndex: function getSelectedElementIndex(selectionGroup) {\n var selectedListItem = selectionGroup.querySelector(\".\" + constants_1.cssClasses.MENU_SELECTED_LIST_ITEM);\n return selectedListItem ? _this.items.indexOf(selectedListItem) : -1;\n },\n notifySelected: function notifySelected(evtData) {\n return _this.emit(constants_1.strings.SELECTED_EVENT, {\n index: evtData.index,\n item: _this.items[evtData.index]\n });\n },\n getMenuItemCount: function getMenuItemCount() {\n return _this.items.length;\n },\n focusItemAtIndex: function focusItemAtIndex(index) {\n return _this.items[index].focus();\n },\n focusListRoot: function focusListRoot() {\n return _this.root_.querySelector(constants_1.strings.LIST_SELECTOR).focus();\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_3.MDCMenuFoundation(adapter);\n };\n return MDCMenu;\n}(component_1.MDCComponent);\nexports.MDCMenu = MDCMenu;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar foundation_2 = __webpack_require__(5);\nvar foundation_3 = __webpack_require__(8);\nvar constants_1 = __webpack_require__(18);\nvar MDCMenuFoundation = /** @class */function (_super) {\n __extends(MDCMenuFoundation, _super);\n function MDCMenuFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCMenuFoundation.defaultAdapter, adapter)) || this;\n _this.closeAnimationEndTimerId_ = 0;\n _this.defaultFocusState_ = constants_1.DefaultFocusState.LIST_ROOT;\n return _this;\n }\n Object.defineProperty(MDCMenuFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCMenuFoundation, \"defaultAdapter\", {\n /**\n * @see {@link MDCMenuAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClassToElementAtIndex: function addClassToElementAtIndex() {\n return undefined;\n },\n removeClassFromElementAtIndex: function removeClassFromElementAtIndex() {\n return undefined;\n },\n addAttributeToElementAtIndex: function addAttributeToElementAtIndex() {\n return undefined;\n },\n removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex() {\n return undefined;\n },\n elementContainsClass: function elementContainsClass() {\n return false;\n },\n closeSurface: function closeSurface() {\n return undefined;\n },\n getElementIndex: function getElementIndex() {\n return -1;\n },\n getParentElement: function getParentElement() {\n return null;\n },\n getSelectedElementIndex: function getSelectedElementIndex() {\n return -1;\n },\n notifySelected: function notifySelected() {\n return undefined;\n },\n getMenuItemCount: function getMenuItemCount() {\n return 0;\n },\n focusItemAtIndex: function focusItemAtIndex() {\n return undefined;\n },\n focusListRoot: function focusListRoot() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCMenuFoundation.prototype.destroy = function () {\n if (this.closeAnimationEndTimerId_) {\n clearTimeout(this.closeAnimationEndTimerId_);\n }\n this.adapter_.closeSurface();\n };\n MDCMenuFoundation.prototype.handleKeydown = function (evt) {\n var key = evt.key,\n keyCode = evt.keyCode;\n var isTab = key === 'Tab' || keyCode === 9;\n if (isTab) {\n this.adapter_.closeSurface();\n }\n };\n MDCMenuFoundation.prototype.handleItemAction = function (listItem) {\n var _this = this;\n var index = this.adapter_.getElementIndex(listItem);\n if (index < 0) {\n return;\n }\n this.adapter_.notifySelected({ index: index });\n this.adapter_.closeSurface();\n // Wait for the menu to close before adding/removing classes that affect styles.\n this.closeAnimationEndTimerId_ = setTimeout(function () {\n var selectionGroup = _this.getSelectionGroup_(listItem);\n if (selectionGroup) {\n _this.handleSelectionGroup_(selectionGroup, index);\n }\n }, foundation_3.MDCMenuSurfaceFoundation.numbers.TRANSITION_CLOSE_DURATION);\n };\n MDCMenuFoundation.prototype.handleMenuSurfaceOpened = function () {\n switch (this.defaultFocusState_) {\n case constants_1.DefaultFocusState.FIRST_ITEM:\n this.adapter_.focusItemAtIndex(0);\n break;\n case constants_1.DefaultFocusState.LAST_ITEM:\n this.adapter_.focusItemAtIndex(this.adapter_.getMenuItemCount() - 1);\n break;\n case constants_1.DefaultFocusState.NONE:\n // Do nothing.\n break;\n default:\n this.adapter_.focusListRoot();\n break;\n }\n };\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n */\n MDCMenuFoundation.prototype.setDefaultFocusState = function (focusState) {\n this.defaultFocusState_ = focusState;\n };\n /**\n * Handles toggling the selected classes in a selection group when a selection is made.\n */\n MDCMenuFoundation.prototype.handleSelectionGroup_ = function (selectionGroup, index) {\n // De-select the previous selection in this group.\n var selectedIndex = this.adapter_.getSelectedElementIndex(selectionGroup);\n if (selectedIndex >= 0) {\n this.adapter_.removeAttributeFromElementAtIndex(selectedIndex, constants_1.strings.ARIA_SELECTED_ATTR);\n this.adapter_.removeClassFromElementAtIndex(selectedIndex, constants_1.cssClasses.MENU_SELECTED_LIST_ITEM);\n }\n // Select the new list item in this group.\n this.adapter_.addClassToElementAtIndex(index, constants_1.cssClasses.MENU_SELECTED_LIST_ITEM);\n this.adapter_.addAttributeToElementAtIndex(index, constants_1.strings.ARIA_SELECTED_ATTR, 'true');\n };\n /**\n * Returns the parent selection group of an element if one exists.\n */\n MDCMenuFoundation.prototype.getSelectionGroup_ = function (listItem) {\n var parent = this.adapter_.getParentElement(listItem);\n if (!parent) {\n return null;\n }\n var isGroup = this.adapter_.elementContainsClass(parent, constants_1.cssClasses.MENU_SELECTION_GROUP);\n // Iterate through ancestors until we find the group or get to the list.\n while (!isGroup && parent && !this.adapter_.elementContainsClass(parent, foundation_2.MDCListFoundation.cssClasses.ROOT)) {\n parent = this.adapter_.getParentElement(parent);\n isGroup = parent ? this.adapter_.elementContainsClass(parent, constants_1.cssClasses.MENU_SELECTION_GROUP) : false;\n }\n if (isGroup) {\n return parent;\n } else {\n return null;\n }\n };\n return MDCMenuFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCMenuFoundation = MDCMenuFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCMenuFoundation;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n NOTCH_ELEMENT_SELECTOR: '.mdc-notched-outline__notch'\n};\nexports.strings = strings;\nvar numbers = {\n // This should stay in sync with $mdc-notched-outline-padding * 2.\n NOTCH_ELEMENT_PADDING: 8\n};\nexports.numbers = numbers;\nvar cssClasses = {\n NO_LABEL: 'mdc-notched-outline--no-label',\n OUTLINE_NOTCHED: 'mdc-notched-outline--notched',\n OUTLINE_UPGRADED: 'mdc-notched-outline--upgraded'\n};\nexports.cssClasses = cssClasses;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(46);\nvar MDCNotchedOutlineFoundation = /** @class */function (_super) {\n __extends(MDCNotchedOutlineFoundation, _super);\n function MDCNotchedOutlineFoundation(adapter) {\n return _super.call(this, __assign({}, MDCNotchedOutlineFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCNotchedOutlineFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCNotchedOutlineFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCNotchedOutlineFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCNotchedOutlineFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCNotchedOutlineAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n setNotchWidthProperty: function setNotchWidthProperty() {\n return undefined;\n },\n removeNotchWidthProperty: function removeNotchWidthProperty() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Adds the outline notched selector and updates the notch width calculated based off of notchWidth.\n */\n MDCNotchedOutlineFoundation.prototype.notch = function (notchWidth) {\n var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;\n if (notchWidth > 0) {\n notchWidth += constants_1.numbers.NOTCH_ELEMENT_PADDING; // Add padding from left/right.\n }\n this.adapter_.setNotchWidthProperty(notchWidth);\n this.adapter_.addClass(OUTLINE_NOTCHED);\n };\n /**\n * Removes notched outline selector to close the notch in the outline.\n */\n MDCNotchedOutlineFoundation.prototype.closeNotch = function () {\n var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;\n this.adapter_.removeClass(OUTLINE_NOTCHED);\n this.adapter_.removeNotchWidthProperty();\n };\n return MDCNotchedOutlineFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCNotchedOutlineFoundation = MDCNotchedOutlineFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCNotchedOutlineFoundation;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(124);\nvar MDCRadioFoundation = /** @class */function (_super) {\n __extends(MDCRadioFoundation, _super);\n function MDCRadioFoundation(adapter) {\n return _super.call(this, __assign({}, MDCRadioFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCRadioFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRadioFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRadioFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n setNativeControlDisabled: function setNativeControlDisabled() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCRadioFoundation.prototype.setDisabled = function (disabled) {\n var DISABLED = MDCRadioFoundation.cssClasses.DISABLED;\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(DISABLED);\n } else {\n this.adapter_.removeClass(DISABLED);\n }\n };\n return MDCRadioFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCRadioFoundation = MDCRadioFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCRadioFoundation;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n DISABLED: 'mdc-select--disabled',\n FOCUSED: 'mdc-select--focused',\n INVALID: 'mdc-select--invalid',\n OUTLINED: 'mdc-select--outlined',\n REQUIRED: 'mdc-select--required',\n ROOT: 'mdc-select',\n SELECTED_ITEM_CLASS: 'mdc-list-item--selected',\n WITH_LEADING_ICON: 'mdc-select--with-leading-icon'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ARIA_CONTROLS: 'aria-controls',\n ARIA_SELECTED_ATTR: 'aria-selected',\n CHANGE_EVENT: 'MDCSelect:change',\n ENHANCED_VALUE_ATTR: 'data-value',\n HIDDEN_INPUT_SELECTOR: 'input[type=\"hidden\"]',\n LABEL_SELECTOR: '.mdc-floating-label',\n LEADING_ICON_SELECTOR: '.mdc-select__icon',\n LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',\n MENU_SELECTOR: '.mdc-select__menu',\n NATIVE_CONTROL_SELECTOR: '.mdc-select__native-control',\n OUTLINE_SELECTOR: '.mdc-notched-outline',\n SELECTED_ITEM_SELECTOR: \".\" + cssClasses.SELECTED_ITEM_CLASS,\n SELECTED_TEXT_SELECTOR: '.mdc-select__selected-text'\n};\nexports.strings = strings;\nvar numbers = {\n LABEL_SCALE: 0.75\n};\nexports.numbers = numbers;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(49);\nvar MDCSelectFoundation = /** @class */function (_super) {\n __extends(MDCSelectFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n /**\n * @param adapter\n * @param foundationMap Map from subcomponent names to their subfoundations.\n */\n function MDCSelectFoundation(adapter, foundationMap) {\n if (foundationMap === void 0) {\n foundationMap = {};\n }\n var _this = _super.call(this, __assign({}, MDCSelectFoundation.defaultAdapter, adapter)) || this;\n _this.leadingIcon_ = foundationMap.leadingIcon;\n _this.helperText_ = foundationMap.helperText;\n return _this;\n }\n Object.defineProperty(MDCSelectFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCSelectAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n activateBottomLine: function activateBottomLine() {\n return undefined;\n },\n deactivateBottomLine: function deactivateBottomLine() {\n return undefined;\n },\n setValue: function setValue() {\n return undefined;\n },\n getValue: function getValue() {\n return '';\n },\n floatLabel: function floatLabel() {\n return undefined;\n },\n getLabelWidth: function getLabelWidth() {\n return 0;\n },\n hasOutline: function hasOutline() {\n return false;\n },\n notchOutline: function notchOutline() {\n return undefined;\n },\n closeOutline: function closeOutline() {\n return undefined;\n },\n openMenu: function openMenu() {\n return undefined;\n },\n closeMenu: function closeMenu() {\n return undefined;\n },\n isMenuOpen: function isMenuOpen() {\n return false;\n },\n setSelectedIndex: function setSelectedIndex() {\n return undefined;\n },\n setDisabled: function setDisabled() {\n return undefined;\n },\n setRippleCenter: function setRippleCenter() {\n return undefined;\n },\n notifyChange: function notifyChange() {\n return undefined;\n },\n checkValidity: function checkValidity() {\n return false;\n },\n setValid: function setValid() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCSelectFoundation.prototype.setSelectedIndex = function (index) {\n this.adapter_.setSelectedIndex(index);\n this.adapter_.closeMenu();\n var didChange = true;\n this.handleChange(didChange);\n };\n MDCSelectFoundation.prototype.setValue = function (value) {\n this.adapter_.setValue(value);\n var didChange = true;\n this.handleChange(didChange);\n };\n MDCSelectFoundation.prototype.getValue = function () {\n return this.adapter_.getValue();\n };\n MDCSelectFoundation.prototype.setDisabled = function (isDisabled) {\n if (isDisabled) {\n this.adapter_.addClass(constants_1.cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.DISABLED);\n }\n this.adapter_.setDisabled(isDisabled);\n this.adapter_.closeMenu();\n if (this.leadingIcon_) {\n this.leadingIcon_.setDisabled(isDisabled);\n }\n };\n /**\n * @param content Sets the content of the helper text.\n */\n MDCSelectFoundation.prototype.setHelperTextContent = function (content) {\n if (this.helperText_) {\n this.helperText_.setContent(content);\n }\n };\n MDCSelectFoundation.prototype.layout = function () {\n var openNotch = this.getValue().length > 0;\n this.notchOutline(openNotch);\n };\n /**\n * Handles value changes, via change event or programmatic updates.\n */\n MDCSelectFoundation.prototype.handleChange = function (didChange) {\n if (didChange === void 0) {\n didChange = true;\n }\n var value = this.getValue();\n var optionHasValue = value.length > 0;\n var isRequired = this.adapter_.hasClass(constants_1.cssClasses.REQUIRED);\n this.notchOutline(optionHasValue);\n if (!this.adapter_.hasClass(constants_1.cssClasses.FOCUSED)) {\n this.adapter_.floatLabel(optionHasValue);\n }\n if (didChange) {\n this.adapter_.notifyChange(value);\n if (isRequired) {\n this.setValid(this.isValid());\n if (this.helperText_) {\n this.helperText_.setValidity(this.isValid());\n }\n }\n }\n };\n /**\n * Handles focus events from select element.\n */\n MDCSelectFoundation.prototype.handleFocus = function () {\n this.adapter_.addClass(constants_1.cssClasses.FOCUSED);\n this.adapter_.floatLabel(true);\n this.notchOutline(true);\n this.adapter_.activateBottomLine();\n if (this.helperText_) {\n this.helperText_.showToScreenReader();\n }\n };\n /**\n * Handles blur events from select element.\n */\n MDCSelectFoundation.prototype.handleBlur = function () {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n this.adapter_.removeClass(constants_1.cssClasses.FOCUSED);\n this.handleChange(false);\n this.adapter_.deactivateBottomLine();\n var isRequired = this.adapter_.hasClass(constants_1.cssClasses.REQUIRED);\n if (isRequired) {\n this.setValid(this.isValid());\n if (this.helperText_) {\n this.helperText_.setValidity(this.isValid());\n }\n }\n };\n MDCSelectFoundation.prototype.handleClick = function (normalizedX) {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n this.adapter_.setRippleCenter(normalizedX);\n this.adapter_.openMenu();\n };\n MDCSelectFoundation.prototype.handleKeydown = function (event) {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n var isEnter = event.key === 'Enter' || event.keyCode === 13;\n var isSpace = event.key === 'Space' || event.keyCode === 32;\n var arrowUp = event.key === 'ArrowUp' || event.keyCode === 38;\n var arrowDown = event.key === 'ArrowDown' || event.keyCode === 40;\n if (this.adapter_.hasClass(constants_1.cssClasses.FOCUSED) && (isEnter || isSpace || arrowUp || arrowDown)) {\n this.adapter_.openMenu();\n event.preventDefault();\n }\n };\n /**\n * Opens/closes the notched outline.\n */\n MDCSelectFoundation.prototype.notchOutline = function (openNotch) {\n if (!this.adapter_.hasOutline()) {\n return;\n }\n var isFocused = this.adapter_.hasClass(constants_1.cssClasses.FOCUSED);\n if (openNotch) {\n var labelScale = constants_1.numbers.LABEL_SCALE;\n var labelWidth = this.adapter_.getLabelWidth() * labelScale;\n this.adapter_.notchOutline(labelWidth);\n } else if (!isFocused) {\n this.adapter_.closeOutline();\n }\n };\n /**\n * Sets the aria label of the leading icon.\n */\n MDCSelectFoundation.prototype.setLeadingIconAriaLabel = function (label) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setAriaLabel(label);\n }\n };\n /**\n * Sets the text content of the leading icon.\n */\n MDCSelectFoundation.prototype.setLeadingIconContent = function (content) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setContent(content);\n }\n };\n MDCSelectFoundation.prototype.setValid = function (isValid) {\n this.adapter_.setValid(isValid);\n };\n MDCSelectFoundation.prototype.isValid = function () {\n return this.adapter_.checkValidity();\n };\n return MDCSelectFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSelectFoundation = MDCSelectFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSelectFoundation;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(52);\nvar MDCSelectHelperText = /** @class */function (_super) {\n __extends(MDCSelectHelperText, _super);\n function MDCSelectHelperText() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSelectHelperText.attachTo = function (root) {\n return new MDCSelectHelperText(root);\n };\n Object.defineProperty(MDCSelectHelperText.prototype, \"foundation\", {\n get: function get() {\n return this.foundation_;\n },\n enumerable: true,\n configurable: true\n });\n MDCSelectHelperText.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n setAttr: function setAttr(attr, value) {\n return _this.root_.setAttribute(attr, value);\n },\n removeAttr: function removeAttr(attr) {\n return _this.root_.removeAttribute(attr);\n },\n setContent: function setContent(content) {\n _this.root_.textContent = content;\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCSelectHelperTextFoundation(adapter);\n };\n return MDCSelectHelperText;\n}(component_1.MDCComponent);\nexports.MDCSelectHelperText = MDCSelectHelperText;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(128);\nvar MDCSelectHelperTextFoundation = /** @class */function (_super) {\n __extends(MDCSelectHelperTextFoundation, _super);\n function MDCSelectHelperTextFoundation(adapter) {\n return _super.call(this, __assign({}, MDCSelectHelperTextFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCSelectHelperTextFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectHelperTextFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectHelperTextFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCSelectHelperTextAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return false;\n },\n setAttr: function setAttr() {\n return undefined;\n },\n removeAttr: function removeAttr() {\n return undefined;\n },\n setContent: function setContent() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the content of the helper text field.\n */\n MDCSelectHelperTextFoundation.prototype.setContent = function (content) {\n this.adapter_.setContent(content);\n };\n /**\n * Sets the persistency of the helper text.\n */\n MDCSelectHelperTextFoundation.prototype.setPersistent = function (isPersistent) {\n if (isPersistent) {\n this.adapter_.addClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n }\n };\n /**\n * @param isValidation True to make the helper text act as an error validation message.\n */\n MDCSelectHelperTextFoundation.prototype.setValidation = function (isValidation) {\n if (isValidation) {\n this.adapter_.addClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n }\n };\n /**\n * Makes the helper text visible to screen readers.\n */\n MDCSelectHelperTextFoundation.prototype.showToScreenReader = function () {\n this.adapter_.removeAttr(constants_1.strings.ARIA_HIDDEN);\n };\n /**\n * Sets the validity of the helper text based on the select validity.\n */\n MDCSelectHelperTextFoundation.prototype.setValidity = function (selectIsValid) {\n var helperTextIsPersistent = this.adapter_.hasClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);\n var helperTextIsValidationMsg = this.adapter_.hasClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);\n var validationMsgNeedsDisplay = helperTextIsValidationMsg && !selectIsValid;\n if (validationMsgNeedsDisplay) {\n this.adapter_.setAttr(constants_1.strings.ROLE, 'alert');\n } else {\n this.adapter_.removeAttr(constants_1.strings.ROLE);\n }\n if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {\n this.hide_();\n }\n };\n /**\n * Hides the help text from screen readers.\n */\n MDCSelectHelperTextFoundation.prototype.hide_ = function () {\n this.adapter_.setAttr(constants_1.strings.ARIA_HIDDEN, 'true');\n };\n return MDCSelectHelperTextFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSelectHelperTextFoundation = MDCSelectHelperTextFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSelectHelperTextFoundation;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(54);\nvar MDCSelectIcon = /** @class */function (_super) {\n __extends(MDCSelectIcon, _super);\n function MDCSelectIcon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSelectIcon.attachTo = function (root) {\n return new MDCSelectIcon(root);\n };\n Object.defineProperty(MDCSelectIcon.prototype, \"foundation\", {\n get: function get() {\n return this.foundation_;\n },\n enumerable: true,\n configurable: true\n });\n MDCSelectIcon.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n getAttr: function getAttr(attr) {\n return _this.root_.getAttribute(attr);\n },\n setAttr: function setAttr(attr, value) {\n return _this.root_.setAttribute(attr, value);\n },\n removeAttr: function removeAttr(attr) {\n return _this.root_.removeAttribute(attr);\n },\n setContent: function setContent(content) {\n _this.root_.textContent = content;\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n },\n notifyIconAction: function notifyIconAction() {\n return _this.emit(foundation_1.MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCSelectIconFoundation(adapter);\n };\n return MDCSelectIcon;\n}(component_1.MDCComponent);\nexports.MDCSelectIcon = MDCSelectIcon;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(129);\nvar INTERACTION_EVENTS = ['click', 'keydown'];\nvar MDCSelectIconFoundation = /** @class */function (_super) {\n __extends(MDCSelectIconFoundation, _super);\n function MDCSelectIconFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCSelectIconFoundation.defaultAdapter, adapter)) || this;\n _this.savedTabIndex_ = null;\n _this.interactionHandler_ = function (evt) {\n return _this.handleInteraction(evt);\n };\n return _this;\n }\n Object.defineProperty(MDCSelectIconFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelectIconFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCSelectIconAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getAttr: function getAttr() {\n return null;\n },\n setAttr: function setAttr() {\n return undefined;\n },\n removeAttr: function removeAttr() {\n return undefined;\n },\n setContent: function setContent() {\n return undefined;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n },\n notifyIconAction: function notifyIconAction() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCSelectIconFoundation.prototype.init = function () {\n var _this = this;\n this.savedTabIndex_ = this.adapter_.getAttr('tabindex');\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.registerInteractionHandler(evtType, _this.interactionHandler_);\n });\n };\n MDCSelectIconFoundation.prototype.destroy = function () {\n var _this = this;\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.deregisterInteractionHandler(evtType, _this.interactionHandler_);\n });\n };\n MDCSelectIconFoundation.prototype.setDisabled = function (disabled) {\n if (!this.savedTabIndex_) {\n return;\n }\n if (disabled) {\n this.adapter_.setAttr('tabindex', '-1');\n this.adapter_.removeAttr('role');\n } else {\n this.adapter_.setAttr('tabindex', this.savedTabIndex_);\n this.adapter_.setAttr('role', constants_1.strings.ICON_ROLE);\n }\n };\n MDCSelectIconFoundation.prototype.setAriaLabel = function (label) {\n this.adapter_.setAttr('aria-label', label);\n };\n MDCSelectIconFoundation.prototype.setContent = function (content) {\n this.adapter_.setContent(content);\n };\n MDCSelectIconFoundation.prototype.handleInteraction = function (evt) {\n var isEnterKey = evt.key === 'Enter' || evt.keyCode === 13;\n if (evt.type === 'click' || isEnterKey) {\n this.adapter_.notifyIconAction();\n }\n };\n return MDCSelectIconFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSelectIconFoundation = MDCSelectIconFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSelectIconFoundation;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ACTIVE: 'mdc-slider--active',\n DISABLED: 'mdc-slider--disabled',\n DISCRETE: 'mdc-slider--discrete',\n FOCUS: 'mdc-slider--focus',\n HAS_TRACK_MARKER: 'mdc-slider--display-markers',\n IN_TRANSIT: 'mdc-slider--in-transit',\n IS_DISCRETE: 'mdc-slider--discrete'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ARIA_DISABLED: 'aria-disabled',\n ARIA_VALUEMAX: 'aria-valuemax',\n ARIA_VALUEMIN: 'aria-valuemin',\n ARIA_VALUENOW: 'aria-valuenow',\n CHANGE_EVENT: 'MDCSlider:change',\n INPUT_EVENT: 'MDCSlider:input',\n LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child',\n PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker',\n STEP_DATA_ATTR: 'data-step',\n THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container',\n TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container',\n TRACK_SELECTOR: '.mdc-slider__track'\n};\nexports.strings = strings;\nvar numbers = {\n PAGE_FACTOR: 4\n};\nexports.numbers = numbers;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = __webpack_require__(10);\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(55);\nvar DOWN_EVENTS = ['mousedown', 'pointerdown', 'touchstart'];\nvar UP_EVENTS = ['mouseup', 'pointerup', 'touchend'];\nvar MOVE_EVENT_MAP = {\n mousedown: 'mousemove',\n pointerdown: 'pointermove',\n touchstart: 'touchmove'\n};\nvar KEY_IDS = {\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_UP: 'ArrowUp',\n END: 'End',\n HOME: 'Home',\n PAGE_DOWN: 'PageDown',\n PAGE_UP: 'PageUp'\n};\nvar MDCSliderFoundation = /** @class */function (_super) {\n __extends(MDCSliderFoundation, _super);\n function MDCSliderFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCSliderFoundation.defaultAdapter, adapter)) || this;\n /**\n * We set this to NaN since we want it to be a number, but we can't use '0' or '-1'\n * because those could be valid tabindices set by the client code.\n */\n _this.savedTabIndex_ = NaN;\n _this.active_ = false;\n _this.inTransit_ = false;\n _this.isDiscrete_ = false;\n _this.hasTrackMarker_ = false;\n _this.handlingThumbTargetEvt_ = false;\n _this.min_ = 0;\n _this.max_ = 100;\n _this.step_ = 0;\n _this.value_ = 0;\n _this.disabled_ = false;\n _this.preventFocusState_ = false;\n _this.thumbContainerPointerHandler_ = function () {\n return _this.handlingThumbTargetEvt_ = true;\n };\n _this.interactionStartHandler_ = function (evt) {\n return _this.handleDown_(evt);\n };\n _this.keydownHandler_ = function (evt) {\n return _this.handleKeydown_(evt);\n };\n _this.focusHandler_ = function () {\n return _this.handleFocus_();\n };\n _this.blurHandler_ = function () {\n return _this.handleBlur_();\n };\n _this.resizeHandler_ = function () {\n return _this.layout();\n };\n return _this;\n }\n Object.defineProperty(MDCSliderFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSliderFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSliderFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSliderFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasClass: function hasClass() {\n return false;\n },\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n getAttribute: function getAttribute() {\n return null;\n },\n setAttribute: function setAttribute() {\n return undefined;\n },\n removeAttribute: function removeAttribute() {\n return undefined;\n },\n computeBoundingRect: function computeBoundingRect() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n getTabIndex: function getTabIndex() {\n return 0;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n },\n registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler() {\n return undefined;\n },\n deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler() {\n return undefined;\n },\n registerBodyInteractionHandler: function registerBodyInteractionHandler() {\n return undefined;\n },\n deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler() {\n return undefined;\n },\n registerResizeHandler: function registerResizeHandler() {\n return undefined;\n },\n deregisterResizeHandler: function deregisterResizeHandler() {\n return undefined;\n },\n notifyInput: function notifyInput() {\n return undefined;\n },\n notifyChange: function notifyChange() {\n return undefined;\n },\n setThumbContainerStyleProperty: function setThumbContainerStyleProperty() {\n return undefined;\n },\n setTrackStyleProperty: function setTrackStyleProperty() {\n return undefined;\n },\n setMarkerValue: function setMarkerValue() {\n return undefined;\n },\n appendTrackMarkers: function appendTrackMarkers() {\n return undefined;\n },\n removeTrackMarkers: function removeTrackMarkers() {\n return undefined;\n },\n setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty() {\n return undefined;\n },\n isRTL: function isRTL() {\n return false;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCSliderFoundation.prototype.init = function () {\n var _this = this;\n this.isDiscrete_ = this.adapter_.hasClass(constants_1.cssClasses.IS_DISCRETE);\n this.hasTrackMarker_ = this.adapter_.hasClass(constants_1.cssClasses.HAS_TRACK_MARKER);\n DOWN_EVENTS.forEach(function (evtName) {\n _this.adapter_.registerInteractionHandler(evtName, _this.interactionStartHandler_);\n _this.adapter_.registerThumbContainerInteractionHandler(evtName, _this.thumbContainerPointerHandler_);\n });\n this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);\n this.adapter_.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter_.registerInteractionHandler('blur', this.blurHandler_);\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n this.layout();\n // At last step, provide a reasonable default value to discrete slider\n if (this.isDiscrete_ && this.getStep() === 0) {\n this.step_ = 1;\n }\n };\n MDCSliderFoundation.prototype.destroy = function () {\n var _this = this;\n DOWN_EVENTS.forEach(function (evtName) {\n _this.adapter_.deregisterInteractionHandler(evtName, _this.interactionStartHandler_);\n _this.adapter_.deregisterThumbContainerInteractionHandler(evtName, _this.thumbContainerPointerHandler_);\n });\n this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);\n this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n };\n MDCSliderFoundation.prototype.setupTrackMarker = function () {\n if (this.isDiscrete_ && this.hasTrackMarker_ && this.getStep() !== 0) {\n var min = this.getMin();\n var max = this.getMax();\n var step = this.getStep();\n var numMarkers = (max - min) / step;\n // In case distance between max & min is indivisible to step,\n // we place the secondary to last marker proportionally at where thumb\n // could reach and place the last marker at max value\n var indivisible = Math.ceil(numMarkers) !== numMarkers;\n if (indivisible) {\n numMarkers = Math.ceil(numMarkers);\n }\n this.adapter_.removeTrackMarkers();\n this.adapter_.appendTrackMarkers(numMarkers);\n if (indivisible) {\n var lastStepRatio = (max - numMarkers * step) / step + 1;\n this.adapter_.setLastTrackMarkersStyleProperty('flex-grow', String(lastStepRatio));\n }\n }\n };\n MDCSliderFoundation.prototype.layout = function () {\n this.rect_ = this.adapter_.computeBoundingRect();\n this.updateUIForCurrentValue_();\n };\n MDCSliderFoundation.prototype.getValue = function () {\n return this.value_;\n };\n MDCSliderFoundation.prototype.setValue = function (value) {\n this.setValue_(value, false);\n };\n MDCSliderFoundation.prototype.getMax = function () {\n return this.max_;\n };\n MDCSliderFoundation.prototype.setMax = function (max) {\n if (max < this.min_) {\n throw new Error('Cannot set max to be less than the slider\\'s minimum value');\n }\n this.max_ = max;\n this.setValue_(this.value_, false, true);\n this.adapter_.setAttribute(constants_1.strings.ARIA_VALUEMAX, String(this.max_));\n this.setupTrackMarker();\n };\n MDCSliderFoundation.prototype.getMin = function () {\n return this.min_;\n };\n MDCSliderFoundation.prototype.setMin = function (min) {\n if (min > this.max_) {\n throw new Error('Cannot set min to be greater than the slider\\'s maximum value');\n }\n this.min_ = min;\n this.setValue_(this.value_, false, true);\n this.adapter_.setAttribute(constants_1.strings.ARIA_VALUEMIN, String(this.min_));\n this.setupTrackMarker();\n };\n MDCSliderFoundation.prototype.getStep = function () {\n return this.step_;\n };\n MDCSliderFoundation.prototype.setStep = function (step) {\n if (step < 0) {\n throw new Error('Step cannot be set to a negative number');\n }\n if (this.isDiscrete_ && (typeof step !== 'number' || step < 1)) {\n step = 1;\n }\n this.step_ = step;\n this.setValue_(this.value_, false, true);\n this.setupTrackMarker();\n };\n MDCSliderFoundation.prototype.isDisabled = function () {\n return this.disabled_;\n };\n MDCSliderFoundation.prototype.setDisabled = function (disabled) {\n this.disabled_ = disabled;\n this.toggleClass_(constants_1.cssClasses.DISABLED, this.disabled_);\n if (this.disabled_) {\n this.savedTabIndex_ = this.adapter_.getTabIndex();\n this.adapter_.setAttribute(constants_1.strings.ARIA_DISABLED, 'true');\n this.adapter_.removeAttribute('tabindex');\n } else {\n this.adapter_.removeAttribute(constants_1.strings.ARIA_DISABLED);\n if (!isNaN(this.savedTabIndex_)) {\n this.adapter_.setAttribute('tabindex', String(this.savedTabIndex_));\n }\n }\n };\n /**\n * Called when the user starts interacting with the slider\n */\n MDCSliderFoundation.prototype.handleDown_ = function (downEvent) {\n var _this = this;\n if (this.disabled_) {\n return;\n }\n this.preventFocusState_ = true;\n this.setInTransit_(!this.handlingThumbTargetEvt_);\n this.handlingThumbTargetEvt_ = false;\n this.setActive_(true);\n var moveHandler = function moveHandler(moveEvent) {\n _this.handleMove_(moveEvent);\n };\n var moveEventType = MOVE_EVENT_MAP[downEvent.type];\n // Note: upHandler is [de]registered on ALL potential pointer-related release event types, since some browsers\n // do not always fire these consistently in pairs.\n // (See https://github.com/material-components/material-components-web/issues/1192)\n var upHandler = function upHandler() {\n _this.handleUp_();\n _this.adapter_.deregisterBodyInteractionHandler(moveEventType, moveHandler);\n UP_EVENTS.forEach(function (evtName) {\n return _this.adapter_.deregisterBodyInteractionHandler(evtName, upHandler);\n });\n };\n this.adapter_.registerBodyInteractionHandler(moveEventType, moveHandler);\n UP_EVENTS.forEach(function (evtName) {\n return _this.adapter_.registerBodyInteractionHandler(evtName, upHandler);\n });\n this.setValueFromEvt_(downEvent);\n };\n /**\n * Called when the user moves the slider\n */\n MDCSliderFoundation.prototype.handleMove_ = function (evt) {\n evt.preventDefault();\n this.setValueFromEvt_(evt);\n };\n /**\n * Called when the user's interaction with the slider ends\n */\n MDCSliderFoundation.prototype.handleUp_ = function () {\n this.setActive_(false);\n this.adapter_.notifyChange();\n };\n /**\n * Returns the pageX of the event\n */\n MDCSliderFoundation.prototype.getPageX_ = function (evt) {\n if (evt.targetTouches && evt.targetTouches.length > 0) {\n return evt.targetTouches[0].pageX;\n }\n return evt.pageX;\n };\n /**\n * Sets the slider value from an event\n */\n MDCSliderFoundation.prototype.setValueFromEvt_ = function (evt) {\n var pageX = this.getPageX_(evt);\n var value = this.computeValueFromPageX_(pageX);\n this.setValue_(value, true);\n };\n /**\n * Computes the new value from the pageX position\n */\n MDCSliderFoundation.prototype.computeValueFromPageX_ = function (pageX) {\n var _a = this,\n max = _a.max_,\n min = _a.min_;\n var xPos = pageX - this.rect_.left;\n var pctComplete = xPos / this.rect_.width;\n if (this.adapter_.isRTL()) {\n pctComplete = 1 - pctComplete;\n }\n // Fit the percentage complete between the range [min,max]\n // by remapping from [0, 1] to [min, min+(max-min)].\n return min + pctComplete * (max - min);\n };\n /**\n * Handles keydown events\n */\n MDCSliderFoundation.prototype.handleKeydown_ = function (evt) {\n var keyId = this.getKeyId_(evt);\n var value = this.getValueForKeyId_(keyId);\n if (isNaN(value)) {\n return;\n }\n // Prevent page from scrolling due to key presses that would normally scroll the page\n evt.preventDefault();\n this.adapter_.addClass(constants_1.cssClasses.FOCUS);\n this.setValue_(value, true);\n this.adapter_.notifyChange();\n };\n /**\n * Returns the computed name of the event\n */\n MDCSliderFoundation.prototype.getKeyId_ = function (kbdEvt) {\n if (kbdEvt.key === KEY_IDS.ARROW_LEFT || kbdEvt.keyCode === 37) {\n return KEY_IDS.ARROW_LEFT;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_RIGHT || kbdEvt.keyCode === 39) {\n return KEY_IDS.ARROW_RIGHT;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_UP || kbdEvt.keyCode === 38) {\n return KEY_IDS.ARROW_UP;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_DOWN || kbdEvt.keyCode === 40) {\n return KEY_IDS.ARROW_DOWN;\n }\n if (kbdEvt.key === KEY_IDS.HOME || kbdEvt.keyCode === 36) {\n return KEY_IDS.HOME;\n }\n if (kbdEvt.key === KEY_IDS.END || kbdEvt.keyCode === 35) {\n return KEY_IDS.END;\n }\n if (kbdEvt.key === KEY_IDS.PAGE_UP || kbdEvt.keyCode === 33) {\n return KEY_IDS.PAGE_UP;\n }\n if (kbdEvt.key === KEY_IDS.PAGE_DOWN || kbdEvt.keyCode === 34) {\n return KEY_IDS.PAGE_DOWN;\n }\n return '';\n };\n /**\n * Computes the value given a keyboard key ID\n */\n MDCSliderFoundation.prototype.getValueForKeyId_ = function (keyId) {\n var _a = this,\n max = _a.max_,\n min = _a.min_,\n step = _a.step_;\n var delta = step || (max - min) / 100;\n var valueNeedsToBeFlipped = this.adapter_.isRTL() && (keyId === KEY_IDS.ARROW_LEFT || keyId === KEY_IDS.ARROW_RIGHT);\n if (valueNeedsToBeFlipped) {\n delta = -delta;\n }\n switch (keyId) {\n case KEY_IDS.ARROW_LEFT:\n case KEY_IDS.ARROW_DOWN:\n return this.value_ - delta;\n case KEY_IDS.ARROW_RIGHT:\n case KEY_IDS.ARROW_UP:\n return this.value_ + delta;\n case KEY_IDS.HOME:\n return this.min_;\n case KEY_IDS.END:\n return this.max_;\n case KEY_IDS.PAGE_UP:\n return this.value_ + delta * constants_1.numbers.PAGE_FACTOR;\n case KEY_IDS.PAGE_DOWN:\n return this.value_ - delta * constants_1.numbers.PAGE_FACTOR;\n default:\n return NaN;\n }\n };\n MDCSliderFoundation.prototype.handleFocus_ = function () {\n if (this.preventFocusState_) {\n return;\n }\n this.adapter_.addClass(constants_1.cssClasses.FOCUS);\n };\n MDCSliderFoundation.prototype.handleBlur_ = function () {\n this.preventFocusState_ = false;\n this.adapter_.removeClass(constants_1.cssClasses.FOCUS);\n };\n /**\n * Sets the value of the slider\n */\n MDCSliderFoundation.prototype.setValue_ = function (value, shouldFireInput, force) {\n if (force === void 0) {\n force = false;\n }\n if (value === this.value_ && !force) {\n return;\n }\n var _a = this,\n min = _a.min_,\n max = _a.max_;\n var valueSetToBoundary = value === min || value === max;\n if (this.step_ && !valueSetToBoundary) {\n value = this.quantize_(value);\n }\n if (value < min) {\n value = min;\n } else if (value > max) {\n value = max;\n }\n this.value_ = value;\n this.adapter_.setAttribute(constants_1.strings.ARIA_VALUENOW, String(this.value_));\n this.updateUIForCurrentValue_();\n if (shouldFireInput) {\n this.adapter_.notifyInput();\n if (this.isDiscrete_) {\n this.adapter_.setMarkerValue(value);\n }\n }\n };\n /**\n * Calculates the quantized value\n */\n MDCSliderFoundation.prototype.quantize_ = function (value) {\n var numSteps = Math.round(value / this.step_);\n return numSteps * this.step_;\n };\n MDCSliderFoundation.prototype.updateUIForCurrentValue_ = function () {\n var _this = this;\n var _a = this,\n max = _a.max_,\n min = _a.min_,\n value = _a.value_;\n var pctComplete = (value - min) / (max - min);\n var translatePx = pctComplete * this.rect_.width;\n if (this.adapter_.isRTL()) {\n translatePx = this.rect_.width - translatePx;\n }\n var transformProp = util_1.getCorrectPropertyName(window, 'transform');\n var transitionendEvtName = util_1.getCorrectEventName(window, 'transitionend');\n if (this.inTransit_) {\n var onTransitionEnd_1 = function onTransitionEnd_1() {\n _this.setInTransit_(false);\n _this.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd_1);\n };\n this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd_1);\n }\n requestAnimationFrame(function () {\n // NOTE(traviskaufman): It would be nice to use calc() here,\n // but IE cannot handle calcs in transforms correctly.\n // See: https://goo.gl/NC2itk\n // Also note that the -50% offset is used to center the slider thumb.\n _this.adapter_.setThumbContainerStyleProperty(transformProp, \"translateX(\" + translatePx + \"px) translateX(-50%)\");\n _this.adapter_.setTrackStyleProperty(transformProp, \"scaleX(\" + pctComplete + \")\");\n });\n };\n /**\n * Toggles the active state of the slider\n */\n MDCSliderFoundation.prototype.setActive_ = function (active) {\n this.active_ = active;\n this.toggleClass_(constants_1.cssClasses.ACTIVE, this.active_);\n };\n /**\n * Toggles the inTransit state of the slider\n */\n MDCSliderFoundation.prototype.setInTransit_ = function (inTransit) {\n this.inTransit_ = inTransit;\n this.toggleClass_(constants_1.cssClasses.IN_TRANSIT, this.inTransit_);\n };\n /**\n * Conditionally adds or removes a class based on shouldBePresent\n */\n MDCSliderFoundation.prototype.toggleClass_ = function (className, shouldBePresent) {\n if (shouldBePresent) {\n this.adapter_.addClass(className);\n } else {\n this.adapter_.removeClass(className);\n }\n };\n return MDCSliderFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSliderFoundation = MDCSliderFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSliderFoundation;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(20);\nvar ARIA_LIVE_DELAY_MS = constants_1.numbers.ARIA_LIVE_DELAY_MS;\nvar ARIA_LIVE_LABEL_TEXT_ATTR = constants_1.strings.ARIA_LIVE_LABEL_TEXT_ATTR;\nfunction announce(ariaEl, labelEl) {\n if (labelEl === void 0) {\n labelEl = ariaEl;\n }\n var priority = ariaEl.getAttribute('aria-live');\n // Trim text to ignore ` ` (see below).\n // textContent is only null if the node is a document, DOCTYPE, or notation.\n var labelText = labelEl.textContent.trim();\n if (!labelText || !priority) {\n return;\n }\n // Temporarily disable `aria-live` to prevent JAWS+Firefox from announcing the message twice.\n ariaEl.setAttribute('aria-live', 'off');\n // Temporarily clear `textContent` to force a DOM mutation event that will be detected by screen readers.\n // `aria-live` elements are only announced when the element's `textContent` *changes*, so snackbars\n // sent to the browser in the initial HTML response won't be read unless we clear the element's `textContent` first.\n // Similarly, displaying the same snackbar message twice in a row doesn't trigger a DOM mutation event,\n // so screen readers won't announce the second message unless we first clear `textContent`.\n //\n // We have to clear the label text two different ways to make it work in all browsers and screen readers:\n //\n // 1. `textContent = ''` is required for IE11 + JAWS\n // 2. `innerHTML = ' '` is required for Chrome + JAWS and NVDA\n //\n // All other browser/screen reader combinations support both methods.\n //\n // The wrapper `<span>` visually hides the space character so that it doesn't cause jank when added/removed.\n // N.B.: Setting `position: absolute`, `opacity: 0`, or `height: 0` prevents Chrome from detecting the DOM change.\n //\n // This technique has been tested in:\n //\n // * JAWS 2019:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * NVDA 2018:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * ChromeVox 53\n labelEl.textContent = '';\n labelEl.innerHTML = '<span style=\"display: inline-block; width: 0; height: 1px;\"> </span>';\n // Prevent visual jank by temporarily displaying the label text in the ::before pseudo-element.\n // CSS generated content is normally announced by screen readers\n // (except in IE 11; see https://tink.uk/accessibility-support-for-css-generated-content/);\n // however, `aria-live` is turned off, so this DOM update will be ignored by screen readers.\n labelEl.setAttribute(ARIA_LIVE_LABEL_TEXT_ATTR, labelText);\n setTimeout(function () {\n // Allow screen readers to announce changes to the DOM again.\n ariaEl.setAttribute('aria-live', priority);\n // Remove the message from the ::before pseudo-element.\n labelEl.removeAttribute(ARIA_LIVE_LABEL_TEXT_ATTR);\n // Restore the original label text, which will be announced by screen readers.\n labelEl.textContent = labelText;\n }, ARIA_LIVE_DELAY_MS);\n}\nexports.announce = announce;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(20);\nvar OPENING = constants_1.cssClasses.OPENING,\n OPEN = constants_1.cssClasses.OPEN,\n CLOSING = constants_1.cssClasses.CLOSING;\nvar REASON_ACTION = constants_1.strings.REASON_ACTION,\n REASON_DISMISS = constants_1.strings.REASON_DISMISS;\nvar MDCSnackbarFoundation = /** @class */function (_super) {\n __extends(MDCSnackbarFoundation, _super);\n function MDCSnackbarFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCSnackbarFoundation.defaultAdapter, adapter)) || this;\n _this.isOpen_ = false;\n _this.animationFrame_ = 0;\n _this.animationTimer_ = 0;\n _this.autoDismissTimer_ = 0;\n _this.autoDismissTimeoutMs_ = constants_1.numbers.DEFAULT_AUTO_DISMISS_TIMEOUT_MS;\n _this.closeOnEscape_ = true;\n return _this;\n }\n Object.defineProperty(MDCSnackbarFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"defaultAdapter\", {\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n announce: function announce() {\n return undefined;\n },\n notifyClosed: function notifyClosed() {\n return undefined;\n },\n notifyClosing: function notifyClosing() {\n return undefined;\n },\n notifyOpened: function notifyOpened() {\n return undefined;\n },\n notifyOpening: function notifyOpening() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n MDCSnackbarFoundation.prototype.destroy = function () {\n this.clearAutoDismissTimer_();\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = 0;\n this.adapter_.removeClass(OPENING);\n this.adapter_.removeClass(OPEN);\n this.adapter_.removeClass(CLOSING);\n };\n MDCSnackbarFoundation.prototype.open = function () {\n var _this = this;\n this.clearAutoDismissTimer_();\n this.isOpen_ = true;\n this.adapter_.notifyOpening();\n this.adapter_.removeClass(CLOSING);\n this.adapter_.addClass(OPENING);\n this.adapter_.announce();\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(function () {\n _this.adapter_.addClass(OPEN);\n _this.animationTimer_ = setTimeout(function () {\n _this.handleAnimationTimerEnd_();\n _this.adapter_.notifyOpened();\n _this.autoDismissTimer_ = setTimeout(function () {\n _this.close(REASON_DISMISS);\n }, _this.getTimeoutMs());\n }, constants_1.numbers.SNACKBAR_ANIMATION_OPEN_TIME_MS);\n });\n };\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n MDCSnackbarFoundation.prototype.close = function (reason) {\n var _this = this;\n if (reason === void 0) {\n reason = '';\n }\n if (!this.isOpen_) {\n // Avoid redundant close calls (and events), e.g. repeated interactions as the snackbar is animating closed\n return;\n }\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n this.clearAutoDismissTimer_();\n this.isOpen_ = false;\n this.adapter_.notifyClosing(reason);\n this.adapter_.addClass(constants_1.cssClasses.CLOSING);\n this.adapter_.removeClass(constants_1.cssClasses.OPEN);\n this.adapter_.removeClass(constants_1.cssClasses.OPENING);\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(function () {\n _this.handleAnimationTimerEnd_();\n _this.adapter_.notifyClosed(reason);\n }, constants_1.numbers.SNACKBAR_ANIMATION_CLOSE_TIME_MS);\n };\n MDCSnackbarFoundation.prototype.isOpen = function () {\n return this.isOpen_;\n };\n MDCSnackbarFoundation.prototype.getTimeoutMs = function () {\n return this.autoDismissTimeoutMs_;\n };\n MDCSnackbarFoundation.prototype.setTimeoutMs = function (timeoutMs) {\n // Use shorter variable names to make the code more readable\n var minValue = constants_1.numbers.MIN_AUTO_DISMISS_TIMEOUT_MS;\n var maxValue = constants_1.numbers.MAX_AUTO_DISMISS_TIMEOUT_MS;\n if (timeoutMs <= maxValue && timeoutMs >= minValue) {\n this.autoDismissTimeoutMs_ = timeoutMs;\n } else {\n throw new Error(\"timeoutMs must be an integer in the range \" + minValue + \"\\u2013\" + maxValue + \", but got '\" + timeoutMs + \"'\");\n }\n };\n MDCSnackbarFoundation.prototype.getCloseOnEscape = function () {\n return this.closeOnEscape_;\n };\n MDCSnackbarFoundation.prototype.setCloseOnEscape = function (closeOnEscape) {\n this.closeOnEscape_ = closeOnEscape;\n };\n MDCSnackbarFoundation.prototype.handleKeyDown = function (evt) {\n var isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n if (isEscapeKey && this.getCloseOnEscape()) {\n this.close(REASON_DISMISS);\n }\n };\n MDCSnackbarFoundation.prototype.handleActionButtonClick = function (_evt) {\n this.close(REASON_ACTION);\n };\n MDCSnackbarFoundation.prototype.handleActionIconClick = function (_evt) {\n this.close(REASON_DISMISS);\n };\n MDCSnackbarFoundation.prototype.clearAutoDismissTimer_ = function () {\n clearTimeout(this.autoDismissTimer_);\n this.autoDismissTimer_ = 0;\n };\n MDCSnackbarFoundation.prototype.handleAnimationTimerEnd_ = function () {\n this.animationTimer_ = 0;\n this.adapter_.removeClass(constants_1.cssClasses.OPENING);\n this.adapter_.removeClass(constants_1.cssClasses.CLOSING);\n };\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n MDCSnackbarFoundation.prototype.runNextAnimationFrame_ = function (callback) {\n var _this = this;\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(function () {\n _this.animationFrame_ = 0;\n clearTimeout(_this.animationTimer_);\n _this.animationTimer_ = setTimeout(callback, 0);\n });\n };\n return MDCSnackbarFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSnackbarFoundation = MDCSnackbarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSnackbarFoundation;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(138);\nvar MDCSwitchFoundation = /** @class */function (_super) {\n __extends(MDCSwitchFoundation, _super);\n function MDCSwitchFoundation(adapter) {\n return _super.call(this, __assign({}, MDCSwitchFoundation.defaultAdapter, adapter)) || this;\n }\n Object.defineProperty(MDCSwitchFoundation, \"strings\", {\n /** The string constants used by the switch. */\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSwitchFoundation, \"cssClasses\", {\n /** The CSS classes used by the switch. */\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSwitchFoundation, \"defaultAdapter\", {\n /** The default Adapter for the switch. */\n get: function get() {\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n setNativeControlChecked: function setNativeControlChecked() {\n return undefined;\n },\n setNativeControlDisabled: function setNativeControlDisabled() {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n /** Sets the checked state of the switch. */\n MDCSwitchFoundation.prototype.setChecked = function (checked) {\n this.adapter_.setNativeControlChecked(checked);\n this.updateCheckedStyling_(checked);\n };\n /** Sets the disabled state of the switch. */\n MDCSwitchFoundation.prototype.setDisabled = function (disabled) {\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(constants_1.cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.DISABLED);\n }\n };\n /** Handles the change event for the switch native control. */\n MDCSwitchFoundation.prototype.handleChange = function (evt) {\n var nativeControl = evt.target;\n this.updateCheckedStyling_(nativeControl.checked);\n };\n /** Updates the styling of the switch based on its checked state. */\n MDCSwitchFoundation.prototype.updateCheckedStyling_ = function (checked) {\n if (checked) {\n this.adapter_.addClass(constants_1.cssClasses.CHECKED);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.CHECKED);\n }\n };\n return MDCSwitchFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCSwitchFoundation = MDCSwitchFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSwitchFoundation;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar foundation_1 = __webpack_require__(61);\nvar util = __importStar(__webpack_require__(63));\nvar MDCTabScroller = /** @class */function (_super) {\n __extends(MDCTabScroller, _super);\n function MDCTabScroller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabScroller.attachTo = function (root) {\n return new MDCTabScroller(root);\n };\n MDCTabScroller.prototype.initialize = function () {\n this.area_ = this.root_.querySelector(foundation_1.MDCTabScrollerFoundation.strings.AREA_SELECTOR);\n this.content_ = this.root_.querySelector(foundation_1.MDCTabScrollerFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTabScroller.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleInteraction_ = function () {\n return _this.foundation_.handleInteraction();\n };\n this.handleTransitionEnd_ = function (evt) {\n return _this.foundation_.handleTransitionEnd(evt);\n };\n this.area_.addEventListener('wheel', this.handleInteraction_);\n this.area_.addEventListener('touchstart', this.handleInteraction_);\n this.area_.addEventListener('pointerdown', this.handleInteraction_);\n this.area_.addEventListener('mousedown', this.handleInteraction_);\n this.area_.addEventListener('keydown', this.handleInteraction_);\n this.content_.addEventListener('transitionend', this.handleTransitionEnd_);\n };\n MDCTabScroller.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.area_.removeEventListener('wheel', this.handleInteraction_);\n this.area_.removeEventListener('touchstart', this.handleInteraction_);\n this.area_.removeEventListener('pointerdown', this.handleInteraction_);\n this.area_.removeEventListener('mousedown', this.handleInteraction_);\n this.area_.removeEventListener('keydown', this.handleInteraction_);\n this.content_.removeEventListener('transitionend', this.handleTransitionEnd_);\n };\n MDCTabScroller.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n eventTargetMatchesSelector: function eventTargetMatchesSelector(evtTarget, selector) {\n return ponyfill_1.matches(evtTarget, selector);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n addScrollAreaClass: function addScrollAreaClass(className) {\n return _this.area_.classList.add(className);\n },\n setScrollAreaStyleProperty: function setScrollAreaStyleProperty(prop, value) {\n return _this.area_.style.setProperty(prop, value);\n },\n setScrollContentStyleProperty: function setScrollContentStyleProperty(prop, value) {\n return _this.content_.style.setProperty(prop, value);\n },\n getScrollContentStyleValue: function getScrollContentStyleValue(propName) {\n return window.getComputedStyle(_this.content_).getPropertyValue(propName);\n },\n setScrollAreaScrollLeft: function setScrollAreaScrollLeft(scrollX) {\n return _this.area_.scrollLeft = scrollX;\n },\n getScrollAreaScrollLeft: function getScrollAreaScrollLeft() {\n return _this.area_.scrollLeft;\n },\n getScrollContentOffsetWidth: function getScrollContentOffsetWidth() {\n return _this.content_.offsetWidth;\n },\n getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() {\n return _this.area_.offsetWidth;\n },\n computeScrollAreaClientRect: function computeScrollAreaClientRect() {\n return _this.area_.getBoundingClientRect();\n },\n computeScrollContentClientRect: function computeScrollContentClientRect() {\n return _this.content_.getBoundingClientRect();\n },\n computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() {\n return util.computeHorizontalScrollbarHeight(document);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCTabScrollerFoundation(adapter);\n };\n /**\n * Returns the current visual scroll position\n */\n MDCTabScroller.prototype.getScrollPosition = function () {\n return this.foundation_.getScrollPosition();\n };\n /**\n * Returns the width of the scroll content\n */\n MDCTabScroller.prototype.getScrollContentWidth = function () {\n return this.content_.offsetWidth;\n };\n /**\n * Increments the scroll value by the given amount\n * @param scrollXIncrement The pixel value by which to increment the scroll value\n */\n MDCTabScroller.prototype.incrementScroll = function (scrollXIncrement) {\n this.foundation_.incrementScroll(scrollXIncrement);\n };\n /**\n * Scrolls to the given pixel position\n * @param scrollX The pixel value to scroll to\n */\n MDCTabScroller.prototype.scrollTo = function (scrollX) {\n this.foundation_.scrollTo(scrollX);\n };\n return MDCTabScroller;\n}(component_1.MDCComponent);\nexports.MDCTabScroller = MDCTabScroller;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(62);\nvar rtl_default_scroller_1 = __webpack_require__(141);\nvar rtl_negative_scroller_1 = __webpack_require__(142);\nvar rtl_reverse_scroller_1 = __webpack_require__(143);\nvar MDCTabScrollerFoundation = /** @class */function (_super) {\n __extends(MDCTabScrollerFoundation, _super);\n function MDCTabScrollerFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCTabScrollerFoundation.defaultAdapter, adapter)) || this;\n /**\n * Controls whether we should handle the transitionend and interaction events during the animation.\n */\n _this.isAnimating_ = false;\n return _this;\n }\n Object.defineProperty(MDCTabScrollerFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n eventTargetMatchesSelector: function eventTargetMatchesSelector() {\n return false;\n },\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n addScrollAreaClass: function addScrollAreaClass() {\n return undefined;\n },\n setScrollAreaStyleProperty: function setScrollAreaStyleProperty() {\n return undefined;\n },\n setScrollContentStyleProperty: function setScrollContentStyleProperty() {\n return undefined;\n },\n getScrollContentStyleValue: function getScrollContentStyleValue() {\n return '';\n },\n setScrollAreaScrollLeft: function setScrollAreaScrollLeft() {\n return undefined;\n },\n getScrollAreaScrollLeft: function getScrollAreaScrollLeft() {\n return 0;\n },\n getScrollContentOffsetWidth: function getScrollContentOffsetWidth() {\n return 0;\n },\n getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() {\n return 0;\n },\n computeScrollAreaClientRect: function computeScrollAreaClientRect() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n computeScrollContentClientRect: function computeScrollContentClientRect() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() {\n return 0;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTabScrollerFoundation.prototype.init = function () {\n // Compute horizontal scrollbar height on scroller with overflow initially hidden, then update overflow to scroll\n // and immediately adjust bottom margin to avoid the scrollbar initially appearing before JS runs.\n var horizontalScrollbarHeight = this.adapter_.computeHorizontalScrollbarHeight();\n this.adapter_.setScrollAreaStyleProperty('margin-bottom', -horizontalScrollbarHeight + 'px');\n this.adapter_.addScrollAreaClass(MDCTabScrollerFoundation.cssClasses.SCROLL_AREA_SCROLL);\n };\n /**\n * Computes the current visual scroll position\n */\n MDCTabScrollerFoundation.prototype.getScrollPosition = function () {\n if (this.isRTL_()) {\n return this.computeCurrentScrollPositionRTL_();\n }\n var currentTranslateX = this.calculateCurrentTranslateX_();\n var scrollLeft = this.adapter_.getScrollAreaScrollLeft();\n return scrollLeft - currentTranslateX;\n };\n /**\n * Handles interaction events that occur during transition\n */\n MDCTabScrollerFoundation.prototype.handleInteraction = function () {\n // Early exit if we aren't animating\n if (!this.isAnimating_) {\n return;\n }\n // Prevent other event listeners from handling this event\n this.stopScrollAnimation_();\n };\n /**\n * Handles the transitionend event\n */\n MDCTabScrollerFoundation.prototype.handleTransitionEnd = function (evt) {\n // Early exit if we aren't animating or the event was triggered by a different element.\n var evtTarget = evt.target;\n if (!this.isAnimating_ || !this.adapter_.eventTargetMatchesSelector(evtTarget, MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)) {\n return;\n }\n this.isAnimating_ = false;\n this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n };\n /**\n * Increment the scroll value by the scrollXIncrement\n * @param scrollXIncrement The value by which to increment the scroll position\n */\n MDCTabScrollerFoundation.prototype.incrementScroll = function (scrollXIncrement) {\n // Early exit for non-operational increment values\n if (scrollXIncrement === 0) {\n return;\n }\n if (this.isRTL_()) {\n return this.incrementScrollRTL_(scrollXIncrement);\n }\n this.incrementScroll_(scrollXIncrement);\n };\n /**\n * Scrolls to the given scrollX value\n */\n MDCTabScrollerFoundation.prototype.scrollTo = function (scrollX) {\n if (this.isRTL_()) {\n return this.scrollToRTL_(scrollX);\n }\n this.scrollTo_(scrollX);\n };\n /**\n * @return Browser-specific {@link MDCTabScrollerRTL} instance.\n */\n MDCTabScrollerFoundation.prototype.getRTLScroller = function () {\n if (!this.rtlScrollerInstance_) {\n this.rtlScrollerInstance_ = this.rtlScrollerFactory_();\n }\n return this.rtlScrollerInstance_;\n };\n /**\n * @return translateX value from a CSS matrix transform function string.\n */\n MDCTabScrollerFoundation.prototype.calculateCurrentTranslateX_ = function () {\n var transformValue = this.adapter_.getScrollContentStyleValue('transform');\n // Early exit if no transform is present\n if (transformValue === 'none') {\n return 0;\n }\n // The transform value comes back as a matrix transformation in the form\n // of `matrix(a, b, c, d, tx, ty)`. We only care about tx (translateX) so\n // we're going to grab all the parenthesized values, strip out tx, and\n // parse it.\n var match = /\\((.+?)\\)/.exec(transformValue);\n if (!match) {\n return 0;\n }\n var matrixParams = match[1];\n // tslint:disable-next-line:ban-ts-ignore \"Unused vars\" should be a linter warning, not a compiler error.\n // @ts-ignore These unused variables should retain their semantic names for clarity.\n var _a = __read(matrixParams.split(','), 6),\n a = _a[0],\n b = _a[1],\n c = _a[2],\n d = _a[3],\n tx = _a[4],\n ty = _a[5];\n return parseFloat(tx); // tslint:disable-line:ban\n };\n /**\n * Calculates a safe scroll value that is > 0 and < the max scroll value\n * @param scrollX The distance to scroll\n */\n MDCTabScrollerFoundation.prototype.clampScrollValue_ = function (scrollX) {\n var edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.left, scrollX), edges.right);\n };\n MDCTabScrollerFoundation.prototype.computeCurrentScrollPositionRTL_ = function () {\n var translateX = this.calculateCurrentTranslateX_();\n return this.getRTLScroller().getScrollPositionRTL(translateX);\n };\n MDCTabScrollerFoundation.prototype.calculateScrollEdges_ = function () {\n var contentWidth = this.adapter_.getScrollContentOffsetWidth();\n var rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: 0,\n right: contentWidth - rootWidth\n };\n };\n /**\n * Internal scroll method\n * @param scrollX The new scroll position\n */\n MDCTabScrollerFoundation.prototype.scrollTo_ = function (scrollX) {\n var currentScrollX = this.getScrollPosition();\n var safeScrollX = this.clampScrollValue_(scrollX);\n var scrollDelta = safeScrollX - currentScrollX;\n this.animate_({\n finalScrollPosition: safeScrollX,\n scrollDelta: scrollDelta\n });\n };\n /**\n * Internal RTL scroll method\n * @param scrollX The new scroll position\n */\n MDCTabScrollerFoundation.prototype.scrollToRTL_ = function (scrollX) {\n var animation = this.getRTLScroller().scrollToRTL(scrollX);\n this.animate_(animation);\n };\n /**\n * Internal increment scroll method\n * @param scrollX The new scroll position increment\n */\n MDCTabScrollerFoundation.prototype.incrementScroll_ = function (scrollX) {\n var currentScrollX = this.getScrollPosition();\n var targetScrollX = scrollX + currentScrollX;\n var safeScrollX = this.clampScrollValue_(targetScrollX);\n var scrollDelta = safeScrollX - currentScrollX;\n this.animate_({\n finalScrollPosition: safeScrollX,\n scrollDelta: scrollDelta\n });\n };\n /**\n * Internal increment scroll RTL method\n * @param scrollX The new scroll position RTL increment\n */\n MDCTabScrollerFoundation.prototype.incrementScrollRTL_ = function (scrollX) {\n var animation = this.getRTLScroller().incrementScrollRTL(scrollX);\n this.animate_(animation);\n };\n /**\n * Animates the tab scrolling\n * @param animation The animation to apply\n */\n MDCTabScrollerFoundation.prototype.animate_ = function (animation) {\n var _this = this;\n // Early exit if translateX is 0, which means there's no animation to perform\n if (animation.scrollDelta === 0) {\n return;\n }\n this.stopScrollAnimation_();\n // This animation uses the FLIP approach.\n // Read more here: https://aerotwist.com/blog/flip-your-animations/\n this.adapter_.setScrollAreaScrollLeft(animation.finalScrollPosition);\n this.adapter_.setScrollContentStyleProperty('transform', \"translateX(\" + animation.scrollDelta + \"px)\");\n // Force repaint\n this.adapter_.computeScrollAreaClientRect();\n requestAnimationFrame(function () {\n _this.adapter_.addClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n _this.adapter_.setScrollContentStyleProperty('transform', 'none');\n });\n this.isAnimating_ = true;\n };\n /**\n * Stops scroll animation\n */\n MDCTabScrollerFoundation.prototype.stopScrollAnimation_ = function () {\n this.isAnimating_ = false;\n var currentScrollPosition = this.getAnimatingScrollPosition_();\n this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n this.adapter_.setScrollContentStyleProperty('transform', 'translateX(0px)');\n this.adapter_.setScrollAreaScrollLeft(currentScrollPosition);\n };\n /**\n * Gets the current scroll position during animation\n */\n MDCTabScrollerFoundation.prototype.getAnimatingScrollPosition_ = function () {\n var currentTranslateX = this.calculateCurrentTranslateX_();\n var scrollLeft = this.adapter_.getScrollAreaScrollLeft();\n if (this.isRTL_()) {\n return this.getRTLScroller().getAnimatingScrollPosition(scrollLeft, currentTranslateX);\n }\n return scrollLeft - currentTranslateX;\n };\n /**\n * Determines the RTL Scroller to use\n */\n MDCTabScrollerFoundation.prototype.rtlScrollerFactory_ = function () {\n // Browsers have three different implementations of scrollLeft in RTL mode,\n // dependent on the browser. The behavior is based off the max LTR\n // scrollLeft value and 0.\n //\n // * Default scrolling in RTL *\n // - Left-most value: 0\n // - Right-most value: Max LTR scrollLeft value\n //\n // * Negative scrolling in RTL *\n // - Left-most value: Negated max LTR scrollLeft value\n // - Right-most value: 0\n //\n // * Reverse scrolling in RTL *\n // - Left-most value: Max LTR scrollLeft value\n // - Right-most value: 0\n //\n // We use those principles below to determine which RTL scrollLeft\n // behavior is implemented in the current browser.\n var initialScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft - 1);\n var newScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n // If the newScrollLeft value is negative,then we know that the browser has\n // implemented negative RTL scrolling, since all other implementations have\n // only positive values.\n if (newScrollLeft < 0) {\n // Undo the scrollLeft test check\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);\n return new rtl_negative_scroller_1.MDCTabScrollerRTLNegative(this.adapter_);\n }\n var rootClientRect = this.adapter_.computeScrollAreaClientRect();\n var contentClientRect = this.adapter_.computeScrollContentClientRect();\n var rightEdgeDelta = Math.round(contentClientRect.right - rootClientRect.right);\n // Undo the scrollLeft test check\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);\n // By calculating the clientRect of the root element and the clientRect of\n // the content element, we can determine how much the scroll value changed\n // when we performed the scrollLeft subtraction above.\n if (rightEdgeDelta === newScrollLeft) {\n return new rtl_reverse_scroller_1.MDCTabScrollerRTLReverse(this.adapter_);\n }\n return new rtl_default_scroller_1.MDCTabScrollerRTLDefault(this.adapter_);\n };\n MDCTabScrollerFoundation.prototype.isRTL_ = function () {\n return this.adapter_.getScrollContentStyleValue('direction') === 'rtl';\n };\n return MDCTabScrollerFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTabScrollerFoundation = MDCTabScrollerFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabScrollerFoundation;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ANIMATING: 'mdc-tab-scroller--animating',\n SCROLL_AREA_SCROLL: 'mdc-tab-scroller__scroll-area--scroll',\n SCROLL_TEST: 'mdc-tab-scroller__test'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n AREA_SELECTOR: '.mdc-tab-scroller__scroll-area',\n CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(62);\n/**\n * Stores result from computeHorizontalScrollbarHeight to avoid redundant processing.\n */\nvar horizontalScrollbarHeight_;\n/**\n * Computes the height of browser-rendered horizontal scrollbars using a self-created test element.\n * May return 0 (e.g. on OS X browsers under default configuration).\n */\nfunction computeHorizontalScrollbarHeight(documentObj, shouldCacheResult) {\n if (shouldCacheResult === void 0) {\n shouldCacheResult = true;\n }\n if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') {\n return horizontalScrollbarHeight_;\n }\n var el = documentObj.createElement('div');\n el.classList.add(constants_1.cssClasses.SCROLL_TEST);\n documentObj.body.appendChild(el);\n var horizontalScrollbarHeight = el.offsetHeight - el.clientHeight;\n documentObj.body.removeChild(el);\n if (shouldCacheResult) {\n horizontalScrollbarHeight_ = horizontalScrollbarHeight;\n }\n return horizontalScrollbarHeight;\n}\nexports.computeHorizontalScrollbarHeight = computeHorizontalScrollbarHeight;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar component_3 = __webpack_require__(65);\nvar foundation_2 = __webpack_require__(22);\nvar MDCTab = /** @class */function (_super) {\n __extends(MDCTab, _super);\n function MDCTab() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTab.attachTo = function (root) {\n return new MDCTab(root);\n };\n MDCTab.prototype.initialize = function (rippleFactory, tabIndicatorFactory) {\n if (rippleFactory === void 0) {\n rippleFactory = function rippleFactory(el, foundation) {\n return new component_2.MDCRipple(el, foundation);\n };\n }\n if (tabIndicatorFactory === void 0) {\n tabIndicatorFactory = function tabIndicatorFactory(el) {\n return new component_3.MDCTabIndicator(el);\n };\n }\n this.id = this.root_.id;\n var rippleSurface = this.root_.querySelector(foundation_2.MDCTabFoundation.strings.RIPPLE_SELECTOR);\n var rippleAdapter = __assign({}, component_2.MDCRipple.createAdapter(this), { addClass: function addClass(className) {\n return rippleSurface.classList.add(className);\n }, removeClass: function removeClass(className) {\n return rippleSurface.classList.remove(className);\n }, updateCssVariable: function updateCssVariable(varName, value) {\n return rippleSurface.style.setProperty(varName, value);\n } });\n var rippleFoundation = new foundation_1.MDCRippleFoundation(rippleAdapter);\n this.ripple_ = rippleFactory(this.root_, rippleFoundation);\n var tabIndicatorElement = this.root_.querySelector(foundation_2.MDCTabFoundation.strings.TAB_INDICATOR_SELECTOR);\n this.tabIndicator_ = tabIndicatorFactory(tabIndicatorElement);\n this.content_ = this.root_.querySelector(foundation_2.MDCTabFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTab.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleClick_ = function () {\n return _this.foundation_.handleClick();\n };\n this.listen('click', this.handleClick_);\n };\n MDCTab.prototype.destroy = function () {\n this.unlisten('click', this.handleClick_);\n this.ripple_.destroy();\n _super.prototype.destroy.call(this);\n };\n MDCTab.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n setAttr: function setAttr(attr, value) {\n return _this.root_.setAttribute(attr, value);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n activateIndicator: function activateIndicator(previousIndicatorClientRect) {\n return _this.tabIndicator_.activate(previousIndicatorClientRect);\n },\n deactivateIndicator: function deactivateIndicator() {\n return _this.tabIndicator_.deactivate();\n },\n notifyInteracted: function notifyInteracted() {\n return _this.emit(foundation_2.MDCTabFoundation.strings.INTERACTED_EVENT, { tabId: _this.id }, true /* bubble */);\n },\n getOffsetLeft: function getOffsetLeft() {\n return _this.root_.offsetLeft;\n },\n getOffsetWidth: function getOffsetWidth() {\n return _this.root_.offsetWidth;\n },\n getContentOffsetLeft: function getContentOffsetLeft() {\n return _this.content_.offsetLeft;\n },\n getContentOffsetWidth: function getContentOffsetWidth() {\n return _this.content_.offsetWidth;\n },\n focus: function focus() {\n return _this.root_.focus();\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_2.MDCTabFoundation(adapter);\n };\n Object.defineProperty(MDCTab.prototype, \"active\", {\n /**\n * Getter for the active state of the tab\n */\n get: function get() {\n return this.foundation_.isActive();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTab.prototype, \"focusOnActivate\", {\n set: function set(focusOnActivate) {\n this.foundation_.setFocusOnActivate(focusOnActivate);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Activates the tab\n */\n MDCTab.prototype.activate = function (computeIndicatorClientRect) {\n this.foundation_.activate(computeIndicatorClientRect);\n };\n /**\n * Deactivates the tab\n */\n MDCTab.prototype.deactivate = function () {\n this.foundation_.deactivate();\n };\n /**\n * Returns the indicator's client rect\n */\n MDCTab.prototype.computeIndicatorClientRect = function () {\n return this.tabIndicator_.computeContentClientRect();\n };\n MDCTab.prototype.computeDimensions = function () {\n return this.foundation_.computeDimensions();\n };\n /**\n * Focuses the tab\n */\n MDCTab.prototype.focus = function () {\n this.root_.focus();\n };\n return MDCTab;\n}(component_1.MDCComponent);\nexports.MDCTab = MDCTab;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar fading_foundation_1 = __webpack_require__(66);\nvar foundation_1 = __webpack_require__(9);\nvar sliding_foundation_1 = __webpack_require__(67);\nvar MDCTabIndicator = /** @class */function (_super) {\n __extends(MDCTabIndicator, _super);\n function MDCTabIndicator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabIndicator.attachTo = function (root) {\n return new MDCTabIndicator(root);\n };\n MDCTabIndicator.prototype.initialize = function () {\n this.content_ = this.root_.querySelector(foundation_1.MDCTabIndicatorFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTabIndicator.prototype.computeContentClientRect = function () {\n return this.foundation_.computeContentClientRect();\n };\n MDCTabIndicator.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n computeContentClientRect: function computeContentClientRect() {\n return _this.content_.getBoundingClientRect();\n },\n setContentStyleProperty: function setContentStyleProperty(prop, value) {\n return _this.content_.style.setProperty(prop, value);\n }\n };\n // tslint:enable:object-literal-sort-keys\n if (this.root_.classList.contains(foundation_1.MDCTabIndicatorFoundation.cssClasses.FADE)) {\n return new fading_foundation_1.MDCFadingTabIndicatorFoundation(adapter);\n }\n // Default to the sliding indicator\n return new sliding_foundation_1.MDCSlidingTabIndicatorFoundation(adapter);\n };\n MDCTabIndicator.prototype.activate = function (previousIndicatorClientRect) {\n this.foundation_.activate(previousIndicatorClientRect);\n };\n MDCTabIndicator.prototype.deactivate = function () {\n this.foundation_.deactivate();\n };\n return MDCTabIndicator;\n}(component_1.MDCComponent);\nexports.MDCTabIndicator = MDCTabIndicator;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(9);\n/* istanbul ignore next: subclass is not a branch statement */\nvar MDCFadingTabIndicatorFoundation = /** @class */function (_super) {\n __extends(MDCFadingTabIndicatorFoundation, _super);\n function MDCFadingTabIndicatorFoundation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCFadingTabIndicatorFoundation.prototype.activate = function () {\n this.adapter_.addClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n MDCFadingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter_.removeClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCFadingTabIndicatorFoundation;\n}(foundation_1.MDCTabIndicatorFoundation);\nexports.MDCFadingTabIndicatorFoundation = MDCFadingTabIndicatorFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCFadingTabIndicatorFoundation;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(9);\n/* istanbul ignore next: subclass is not a branch statement */\nvar MDCSlidingTabIndicatorFoundation = /** @class */function (_super) {\n __extends(MDCSlidingTabIndicatorFoundation, _super);\n function MDCSlidingTabIndicatorFoundation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSlidingTabIndicatorFoundation.prototype.activate = function (previousIndicatorClientRect) {\n // Early exit if no indicator is present to handle cases where an indicator\n // may be activated without a prior indicator state\n if (!previousIndicatorClientRect) {\n this.adapter_.addClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n return;\n }\n // This animation uses the FLIP approach. You can read more about it at the link below:\n // https://aerotwist.com/blog/flip-your-animations/\n // Calculate the dimensions based on the dimensions of the previous indicator\n var currentClientRect = this.computeContentClientRect();\n var widthDelta = previousIndicatorClientRect.width / currentClientRect.width;\n var xPosition = previousIndicatorClientRect.left - currentClientRect.left;\n this.adapter_.addClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter_.setContentStyleProperty('transform', \"translateX(\" + xPosition + \"px) scaleX(\" + widthDelta + \")\");\n // Force repaint before updating classes and transform to ensure the transform properly takes effect\n this.computeContentClientRect();\n this.adapter_.removeClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter_.addClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n this.adapter_.setContentStyleProperty('transform', '');\n };\n MDCSlidingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter_.removeClass(foundation_1.MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCSlidingTabIndicatorFoundation;\n}(foundation_1.MDCTabIndicatorFoundation);\nexports.MDCSlidingTabIndicatorFoundation = MDCSlidingTabIndicatorFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCSlidingTabIndicatorFoundation;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(146);\nvar ACCEPTABLE_KEYS = new Set();\n// IE11 has no support for new Set with iterable so we need to initialize this by hand\nACCEPTABLE_KEYS.add(constants_1.strings.ARROW_LEFT_KEY);\nACCEPTABLE_KEYS.add(constants_1.strings.ARROW_RIGHT_KEY);\nACCEPTABLE_KEYS.add(constants_1.strings.END_KEY);\nACCEPTABLE_KEYS.add(constants_1.strings.HOME_KEY);\nACCEPTABLE_KEYS.add(constants_1.strings.ENTER_KEY);\nACCEPTABLE_KEYS.add(constants_1.strings.SPACE_KEY);\nvar KEYCODE_MAP = new Map();\n// IE11 has no support for new Map with iterable so we need to initialize this by hand\nKEYCODE_MAP.set(constants_1.numbers.ARROW_LEFT_KEYCODE, constants_1.strings.ARROW_LEFT_KEY);\nKEYCODE_MAP.set(constants_1.numbers.ARROW_RIGHT_KEYCODE, constants_1.strings.ARROW_RIGHT_KEY);\nKEYCODE_MAP.set(constants_1.numbers.END_KEYCODE, constants_1.strings.END_KEY);\nKEYCODE_MAP.set(constants_1.numbers.HOME_KEYCODE, constants_1.strings.HOME_KEY);\nKEYCODE_MAP.set(constants_1.numbers.ENTER_KEYCODE, constants_1.strings.ENTER_KEY);\nKEYCODE_MAP.set(constants_1.numbers.SPACE_KEYCODE, constants_1.strings.SPACE_KEY);\nvar MDCTabBarFoundation = /** @class */function (_super) {\n __extends(MDCTabBarFoundation, _super);\n function MDCTabBarFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCTabBarFoundation.defaultAdapter, adapter)) || this;\n _this.useAutomaticActivation_ = false;\n return _this;\n }\n Object.defineProperty(MDCTabBarFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n scrollTo: function scrollTo() {\n return undefined;\n },\n incrementScroll: function incrementScroll() {\n return undefined;\n },\n getScrollPosition: function getScrollPosition() {\n return 0;\n },\n getScrollContentWidth: function getScrollContentWidth() {\n return 0;\n },\n getOffsetWidth: function getOffsetWidth() {\n return 0;\n },\n isRTL: function isRTL() {\n return false;\n },\n setActiveTab: function setActiveTab() {\n return undefined;\n },\n activateTabAtIndex: function activateTabAtIndex() {\n return undefined;\n },\n deactivateTabAtIndex: function deactivateTabAtIndex() {\n return undefined;\n },\n focusTabAtIndex: function focusTabAtIndex() {\n return undefined;\n },\n getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex() {\n return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\n },\n getTabDimensionsAtIndex: function getTabDimensionsAtIndex() {\n return { rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0 };\n },\n getPreviousActiveTabIndex: function getPreviousActiveTabIndex() {\n return -1;\n },\n getFocusedTabIndex: function getFocusedTabIndex() {\n return -1;\n },\n getIndexOfTabById: function getIndexOfTabById() {\n return -1;\n },\n getTabListLength: function getTabListLength() {\n return 0;\n },\n notifyTabActivated: function notifyTabActivated() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Switches between automatic and manual activation modes.\n * See https://www.w3.org/TR/wai-aria-practices/#tabpanel for examples.\n */\n MDCTabBarFoundation.prototype.setUseAutomaticActivation = function (useAutomaticActivation) {\n this.useAutomaticActivation_ = useAutomaticActivation;\n };\n MDCTabBarFoundation.prototype.activateTab = function (index) {\n var previousActiveIndex = this.adapter_.getPreviousActiveTabIndex();\n if (!this.indexIsInRange_(index) || index === previousActiveIndex) {\n return;\n }\n var previousClientRect;\n if (previousActiveIndex !== -1) {\n this.adapter_.deactivateTabAtIndex(previousActiveIndex);\n previousClientRect = this.adapter_.getTabIndicatorClientRectAtIndex(previousActiveIndex);\n }\n this.adapter_.activateTabAtIndex(index, previousClientRect);\n this.scrollIntoView(index);\n this.adapter_.notifyTabActivated(index);\n };\n MDCTabBarFoundation.prototype.handleKeyDown = function (evt) {\n // Get the key from the event\n var key = this.getKeyFromEvent_(evt);\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (key === undefined) {\n return;\n }\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this.isActivationKey_(key)) {\n evt.preventDefault();\n }\n if (this.useAutomaticActivation_) {\n if (this.isActivationKey_(key)) {\n return;\n }\n var index = this.determineTargetFromKey_(this.adapter_.getPreviousActiveTabIndex(), key);\n this.adapter_.setActiveTab(index);\n this.scrollIntoView(index);\n } else {\n var focusedTabIndex = this.adapter_.getFocusedTabIndex();\n if (this.isActivationKey_(key)) {\n this.adapter_.setActiveTab(focusedTabIndex);\n } else {\n var index = this.determineTargetFromKey_(focusedTabIndex, key);\n this.adapter_.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n };\n /**\n * Handles the MDCTab:interacted event\n */\n MDCTabBarFoundation.prototype.handleTabInteraction = function (evt) {\n this.adapter_.setActiveTab(this.adapter_.getIndexOfTabById(evt.detail.tabId));\n };\n /**\n * Scrolls the tab at the given index into view\n * @param index The tab index to make visible\n */\n MDCTabBarFoundation.prototype.scrollIntoView = function (index) {\n // Early exit if the index is out of range\n if (!this.indexIsInRange_(index)) {\n return;\n }\n // Always scroll to 0 if scrolling to the 0th index\n if (index === 0) {\n return this.adapter_.scrollTo(0);\n }\n // Always scroll to the max value if scrolling to the Nth index\n // MDCTabScroller.scrollTo() will never scroll past the max possible value\n if (index === this.adapter_.getTabListLength() - 1) {\n return this.adapter_.scrollTo(this.adapter_.getScrollContentWidth());\n }\n if (this.isRTL_()) {\n return this.scrollIntoViewRTL_(index);\n }\n this.scrollIntoView_(index);\n };\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n MDCTabBarFoundation.prototype.determineTargetFromKey_ = function (origin, key) {\n var isRTL = this.isRTL_();\n var maxIndex = this.adapter_.getTabListLength() - 1;\n var shouldGoToEnd = key === constants_1.strings.END_KEY;\n var shouldDecrement = key === constants_1.strings.ARROW_LEFT_KEY && !isRTL || key === constants_1.strings.ARROW_RIGHT_KEY && isRTL;\n var shouldIncrement = key === constants_1.strings.ARROW_RIGHT_KEY && !isRTL || key === constants_1.strings.ARROW_LEFT_KEY && isRTL;\n var index = origin;\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n return index;\n };\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the Tab Bar\n */\n MDCTabBarFoundation.prototype.calculateScrollIncrement_ = function (index, nextIndex, scrollPosition, barWidth) {\n var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);\n var relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n var relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n var leftIncrement = relativeContentRight - constants_1.numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft + constants_1.numbers.EXTRA_SCROLL_AMOUNT;\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n return Math.max(rightIncrement, 0);\n };\n /**\n * Calculates the scroll increment that will make the tab at the given index visible in RTL\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the Tab Bar\n * @param scrollContentWidth The width of the scroll content\n */\n MDCTabBarFoundation.prototype.calculateScrollIncrementRTL_ = function (index, nextIndex, scrollPosition, barWidth, scrollContentWidth) {\n var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);\n var relativeContentLeft = scrollContentWidth - nextTabDimensions.contentLeft - scrollPosition;\n var relativeContentRight = scrollContentWidth - nextTabDimensions.contentRight - scrollPosition - barWidth;\n var leftIncrement = relativeContentRight + constants_1.numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft - constants_1.numbers.EXTRA_SCROLL_AMOUNT;\n if (nextIndex > index) {\n return Math.max(leftIncrement, 0);\n }\n return Math.min(rightIncrement, 0);\n };\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdge_ = function (index, tabDimensions, scrollPosition, barWidth) {\n /**\n * Tabs are laid out in the Tab Scroller like this:\n *\n * Scroll Position\n * +---+\n * | | Bar Width\n * | +-----------------------------------+\n * | | |\n * | V V\n * | +-----------------------------------+\n * V | Tab Scroller |\n * +------------+--------------+-------------------+\n * | Tab | Tab | Tab |\n * +------------+--------------+-------------------+\n * | |\n * +-----------------------------------+\n *\n * To determine the next adjacent index, we look at the Tab root left and\n * Tab root right, both relative to the scroll position. If the Tab root\n * left is less than 0, then we know it's out of view to the left. If the\n * Tab root right minus the bar width is greater than 0, we know the Tab is\n * out of view to the right. From there, we either increment or decrement\n * the index.\n */\n var relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n var relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n var relativeRootDelta = relativeRootLeft + relativeRootRight;\n var leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n var rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n return -1;\n };\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar in RTL\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n * @param scrollContentWidth The width of the scroller content\n */\n MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdgeRTL_ = function (index, tabDimensions, scrollPosition, barWidth, scrollContentWidth) {\n var rootLeft = scrollContentWidth - tabDimensions.rootLeft - barWidth - scrollPosition;\n var rootRight = scrollContentWidth - tabDimensions.rootRight - scrollPosition;\n var rootDelta = rootLeft + rootRight;\n var leftEdgeIsCloser = rootLeft > 0 || rootDelta > 0;\n var rightEdgeIsCloser = rootRight < 0 || rootDelta < 0;\n if (leftEdgeIsCloser) {\n return index + 1;\n }\n if (rightEdgeIsCloser) {\n return index - 1;\n }\n return -1;\n };\n /**\n * Returns the key associated with a keydown event\n * @param evt The keydown event\n */\n MDCTabBarFoundation.prototype.getKeyFromEvent_ = function (evt) {\n if (ACCEPTABLE_KEYS.has(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP.get(evt.keyCode);\n };\n MDCTabBarFoundation.prototype.isActivationKey_ = function (key) {\n return key === constants_1.strings.SPACE_KEY || key === constants_1.strings.ENTER_KEY;\n };\n /**\n * Returns whether a given index is inclusively between the ends\n * @param index The index to test\n */\n MDCTabBarFoundation.prototype.indexIsInRange_ = function (index) {\n return index >= 0 && index < this.adapter_.getTabListLength();\n };\n /**\n * Returns the view's RTL property\n */\n MDCTabBarFoundation.prototype.isRTL_ = function () {\n return this.adapter_.isRTL();\n };\n /**\n * Scrolls the tab at the given index into view for left-to-right user agents.\n * @param index The index of the tab to scroll into view\n */\n MDCTabBarFoundation.prototype.scrollIntoView_ = function (index) {\n var scrollPosition = this.adapter_.getScrollPosition();\n var barWidth = this.adapter_.getOffsetWidth();\n var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);\n var nextIndex = this.findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth);\n if (!this.indexIsInRange_(nextIndex)) {\n return;\n }\n var scrollIncrement = this.calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth);\n this.adapter_.incrementScroll(scrollIncrement);\n };\n /**\n * Scrolls the tab at the given index into view in RTL\n * @param index The tab index to make visible\n */\n MDCTabBarFoundation.prototype.scrollIntoViewRTL_ = function (index) {\n var scrollPosition = this.adapter_.getScrollPosition();\n var barWidth = this.adapter_.getOffsetWidth();\n var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);\n var scrollWidth = this.adapter_.getScrollContentWidth();\n var nextIndex = this.findAdjacentTabIndexClosestToEdgeRTL_(index, tabDimensions, scrollPosition, barWidth, scrollWidth);\n if (!this.indexIsInRange_(nextIndex)) {\n return;\n }\n var scrollIncrement = this.calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollWidth);\n this.adapter_.incrementScroll(scrollIncrement);\n };\n return MDCTabBarFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTabBarFoundation = MDCTabBarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabBarFoundation;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(23);\nvar MDCTextFieldCharacterCounter = /** @class */function (_super) {\n __extends(MDCTextFieldCharacterCounter, _super);\n function MDCTextFieldCharacterCounter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTextFieldCharacterCounter.attachTo = function (root) {\n return new MDCTextFieldCharacterCounter(root);\n };\n Object.defineProperty(MDCTextFieldCharacterCounter.prototype, \"foundation\", {\n get: function get() {\n return this.foundation_;\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldCharacterCounter.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n setContent: function setContent(content) {\n _this.root_.textContent = content;\n }\n };\n return new foundation_1.MDCTextFieldCharacterCounterFoundation(adapter);\n };\n return MDCTextFieldCharacterCounter;\n}(component_1.MDCComponent);\nexports.MDCTextFieldCharacterCounter = MDCTextFieldCharacterCounter;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n ARIA_CONTROLS: 'aria-controls',\n ICON_SELECTOR: '.mdc-text-field__icon',\n INPUT_SELECTOR: '.mdc-text-field__input',\n LABEL_SELECTOR: '.mdc-floating-label',\n LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',\n OUTLINE_SELECTOR: '.mdc-notched-outline'\n};\nexports.strings = strings;\nvar cssClasses = {\n DENSE: 'mdc-text-field--dense',\n DISABLED: 'mdc-text-field--disabled',\n FOCUSED: 'mdc-text-field--focused',\n FULLWIDTH: 'mdc-text-field--fullwidth',\n HELPER_LINE: 'mdc-text-field-helper-line',\n INVALID: 'mdc-text-field--invalid',\n NO_LABEL: 'mdc-text-field--no-label',\n OUTLINED: 'mdc-text-field--outlined',\n ROOT: 'mdc-text-field',\n TEXTAREA: 'mdc-text-field--textarea',\n WITH_LEADING_ICON: 'mdc-text-field--with-leading-icon',\n WITH_TRAILING_ICON: 'mdc-text-field--with-trailing-icon'\n};\nexports.cssClasses = cssClasses;\nvar numbers = {\n DENSE_LABEL_SCALE: 0.923,\n LABEL_SCALE: 0.75\n};\nexports.numbers = numbers;\n/**\n * Whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation\n * under the \"Validation-related attributes\" section.\n */\nvar VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength'];\nexports.VALIDATION_ATTR_WHITELIST = VALIDATION_ATTR_WHITELIST;\n/**\n * Label should always float for these types as they show some UI even if value is empty.\n */\nvar ALWAYS_FLOAT_TYPES = ['color', 'date', 'datetime-local', 'month', 'range', 'time', 'week'];\nexports.ALWAYS_FLOAT_TYPES = ALWAYS_FLOAT_TYPES;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(70);\nvar POINTERDOWN_EVENTS = ['mousedown', 'touchstart'];\nvar INTERACTION_EVENTS = ['click', 'keydown'];\nvar MDCTextFieldFoundation = /** @class */function (_super) {\n __extends(MDCTextFieldFoundation, _super);\n /**\n * @param adapter\n * @param foundationMap Map from subcomponent names to their subfoundations.\n */\n function MDCTextFieldFoundation(adapter, foundationMap) {\n if (foundationMap === void 0) {\n foundationMap = {};\n }\n var _this = _super.call(this, __assign({}, MDCTextFieldFoundation.defaultAdapter, adapter)) || this;\n _this.isFocused_ = false;\n _this.receivedUserInput_ = false;\n _this.isValid_ = true;\n _this.useNativeValidation_ = true;\n _this.helperText_ = foundationMap.helperText;\n _this.characterCounter_ = foundationMap.characterCounter;\n _this.leadingIcon_ = foundationMap.leadingIcon;\n _this.trailingIcon_ = foundationMap.trailingIcon;\n _this.inputFocusHandler_ = function () {\n return _this.activateFocus();\n };\n _this.inputBlurHandler_ = function () {\n return _this.deactivateFocus();\n };\n _this.inputInputHandler_ = function () {\n return _this.handleInput();\n };\n _this.setPointerXOffset_ = function (evt) {\n return _this.setTransformOrigin(evt);\n };\n _this.textFieldInteractionHandler_ = function () {\n return _this.handleTextFieldInteraction();\n };\n _this.validationAttributeChangeHandler_ = function (attributesList) {\n return _this.handleValidationAttributeChange(attributesList);\n };\n return _this;\n }\n Object.defineProperty(MDCTextFieldFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation.prototype, \"shouldAlwaysFloat_\", {\n get: function get() {\n var type = this.getNativeInput_().type;\n return constants_1.ALWAYS_FLOAT_TYPES.indexOf(type) >= 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation.prototype, \"shouldFloat\", {\n get: function get() {\n return this.shouldAlwaysFloat_ || this.isFocused_ || Boolean(this.getValue()) || this.isBadInput_();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation.prototype, \"shouldShake\", {\n get: function get() {\n return !this.isFocused_ && !this.isValid() && Boolean(this.getValue());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCTextFieldAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n hasClass: function hasClass() {\n return true;\n },\n registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() {\n return undefined;\n },\n deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() {\n return undefined;\n },\n registerInputInteractionHandler: function registerInputInteractionHandler() {\n return undefined;\n },\n deregisterInputInteractionHandler: function deregisterInputInteractionHandler() {\n return undefined;\n },\n registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() {\n return new MutationObserver(function () {\n return undefined;\n });\n },\n deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() {\n return undefined;\n },\n getNativeInput: function getNativeInput() {\n return null;\n },\n isFocused: function isFocused() {\n return false;\n },\n activateLineRipple: function activateLineRipple() {\n return undefined;\n },\n deactivateLineRipple: function deactivateLineRipple() {\n return undefined;\n },\n setLineRippleTransformOrigin: function setLineRippleTransformOrigin() {\n return undefined;\n },\n shakeLabel: function shakeLabel() {\n return undefined;\n },\n floatLabel: function floatLabel() {\n return undefined;\n },\n hasLabel: function hasLabel() {\n return false;\n },\n getLabelWidth: function getLabelWidth() {\n return 0;\n },\n hasOutline: function hasOutline() {\n return false;\n },\n notchOutline: function notchOutline() {\n return undefined;\n },\n closeOutline: function closeOutline() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldFoundation.prototype.init = function () {\n var _this = this;\n if (this.adapter_.isFocused()) {\n this.inputFocusHandler_();\n } else if (this.adapter_.hasLabel() && this.shouldFloat) {\n this.notchOutline(true);\n this.adapter_.floatLabel(true);\n }\n this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_);\n this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_);\n this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_);\n POINTERDOWN_EVENTS.forEach(function (evtType) {\n _this.adapter_.registerInputInteractionHandler(evtType, _this.setPointerXOffset_);\n });\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.registerTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_);\n });\n this.validationObserver_ = this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_);\n this.setCharacterCounter_(this.getValue().length);\n };\n MDCTextFieldFoundation.prototype.destroy = function () {\n var _this = this;\n this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_);\n this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_);\n this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_);\n POINTERDOWN_EVENTS.forEach(function (evtType) {\n _this.adapter_.deregisterInputInteractionHandler(evtType, _this.setPointerXOffset_);\n });\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.deregisterTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_);\n });\n this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_);\n };\n /**\n * Handles user interactions with the Text Field.\n */\n MDCTextFieldFoundation.prototype.handleTextFieldInteraction = function () {\n var nativeInput = this.adapter_.getNativeInput();\n if (nativeInput && nativeInput.disabled) {\n return;\n }\n this.receivedUserInput_ = true;\n };\n /**\n * Handles validation attribute changes\n */\n MDCTextFieldFoundation.prototype.handleValidationAttributeChange = function (attributesList) {\n var _this = this;\n attributesList.some(function (attributeName) {\n if (constants_1.VALIDATION_ATTR_WHITELIST.indexOf(attributeName) > -1) {\n _this.styleValidity_(true);\n return true;\n }\n return false;\n });\n if (attributesList.indexOf('maxlength') > -1) {\n this.setCharacterCounter_(this.getValue().length);\n }\n };\n /**\n * Opens/closes the notched outline.\n */\n MDCTextFieldFoundation.prototype.notchOutline = function (openNotch) {\n if (!this.adapter_.hasOutline()) {\n return;\n }\n if (openNotch) {\n var isDense = this.adapter_.hasClass(constants_1.cssClasses.DENSE);\n var labelScale = isDense ? constants_1.numbers.DENSE_LABEL_SCALE : constants_1.numbers.LABEL_SCALE;\n var labelWidth = this.adapter_.getLabelWidth() * labelScale;\n this.adapter_.notchOutline(labelWidth);\n } else {\n this.adapter_.closeOutline();\n }\n };\n /**\n * Activates the text field focus state.\n */\n MDCTextFieldFoundation.prototype.activateFocus = function () {\n this.isFocused_ = true;\n this.styleFocused_(this.isFocused_);\n this.adapter_.activateLineRipple();\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n if (this.helperText_) {\n this.helperText_.showToScreenReader();\n }\n };\n /**\n * Sets the line ripple's transform origin, so that the line ripple activate\n * animation will animate out from the user's click location.\n */\n MDCTextFieldFoundation.prototype.setTransformOrigin = function (evt) {\n var touches = evt.touches;\n var targetEvent = touches ? touches[0] : evt;\n var targetClientRect = targetEvent.target.getBoundingClientRect();\n var normalizedX = targetEvent.clientX - targetClientRect.left;\n this.adapter_.setLineRippleTransformOrigin(normalizedX);\n };\n /**\n * Handles input change of text input and text area.\n */\n MDCTextFieldFoundation.prototype.handleInput = function () {\n this.autoCompleteFocus();\n this.setCharacterCounter_(this.getValue().length);\n };\n /**\n * Activates the Text Field's focus state in cases when the input value\n * changes without user input (e.g. programmatically).\n */\n MDCTextFieldFoundation.prototype.autoCompleteFocus = function () {\n if (!this.receivedUserInput_) {\n this.activateFocus();\n }\n };\n /**\n * Deactivates the Text Field's focus state.\n */\n MDCTextFieldFoundation.prototype.deactivateFocus = function () {\n this.isFocused_ = false;\n this.adapter_.deactivateLineRipple();\n var isValid = this.isValid();\n this.styleValidity_(isValid);\n this.styleFocused_(this.isFocused_);\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n if (!this.shouldFloat) {\n this.receivedUserInput_ = false;\n }\n };\n MDCTextFieldFoundation.prototype.getValue = function () {\n return this.getNativeInput_().value;\n };\n /**\n * @param value The value to set on the input Element.\n */\n MDCTextFieldFoundation.prototype.setValue = function (value) {\n // Prevent Safari from moving the caret to the end of the input when the value has not changed.\n if (this.getValue() !== value) {\n this.getNativeInput_().value = value;\n }\n this.setCharacterCounter_(value.length);\n var isValid = this.isValid();\n this.styleValidity_(isValid);\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n };\n /**\n * @return The custom validity state, if set; otherwise, the result of a native validity check.\n */\n MDCTextFieldFoundation.prototype.isValid = function () {\n return this.useNativeValidation_ ? this.isNativeInputValid_() : this.isValid_;\n };\n /**\n * @param isValid Sets the custom validity state of the Text Field.\n */\n MDCTextFieldFoundation.prototype.setValid = function (isValid) {\n this.isValid_ = isValid;\n this.styleValidity_(isValid);\n var shouldShake = !isValid && !this.isFocused_;\n if (this.adapter_.hasLabel()) {\n this.adapter_.shakeLabel(shouldShake);\n }\n };\n /**\n * Enables or disables the use of native validation. Use this for custom validation.\n * @param useNativeValidation Set this to false to ignore native input validation.\n */\n MDCTextFieldFoundation.prototype.setUseNativeValidation = function (useNativeValidation) {\n this.useNativeValidation_ = useNativeValidation;\n };\n MDCTextFieldFoundation.prototype.isDisabled = function () {\n return this.getNativeInput_().disabled;\n };\n /**\n * @param disabled Sets the text-field disabled or enabled.\n */\n MDCTextFieldFoundation.prototype.setDisabled = function (disabled) {\n this.getNativeInput_().disabled = disabled;\n this.styleDisabled_(disabled);\n };\n /**\n * @param content Sets the content of the helper text.\n */\n MDCTextFieldFoundation.prototype.setHelperTextContent = function (content) {\n if (this.helperText_) {\n this.helperText_.setContent(content);\n }\n };\n /**\n * Sets the aria label of the leading icon.\n */\n MDCTextFieldFoundation.prototype.setLeadingIconAriaLabel = function (label) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setAriaLabel(label);\n }\n };\n /**\n * Sets the text content of the leading icon.\n */\n MDCTextFieldFoundation.prototype.setLeadingIconContent = function (content) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setContent(content);\n }\n };\n /**\n * Sets the aria label of the trailing icon.\n */\n MDCTextFieldFoundation.prototype.setTrailingIconAriaLabel = function (label) {\n if (this.trailingIcon_) {\n this.trailingIcon_.setAriaLabel(label);\n }\n };\n /**\n * Sets the text content of the trailing icon.\n */\n MDCTextFieldFoundation.prototype.setTrailingIconContent = function (content) {\n if (this.trailingIcon_) {\n this.trailingIcon_.setContent(content);\n }\n };\n /**\n * Sets character counter values that shows characters used and the total character limit.\n */\n MDCTextFieldFoundation.prototype.setCharacterCounter_ = function (currentLength) {\n if (!this.characterCounter_) {\n return;\n }\n var maxLength = this.getNativeInput_().maxLength;\n if (maxLength === -1) {\n throw new Error('MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.');\n }\n this.characterCounter_.setCounterValue(currentLength, maxLength);\n };\n /**\n * @return True if the Text Field input fails in converting the user-supplied value.\n */\n MDCTextFieldFoundation.prototype.isBadInput_ = function () {\n // The badInput property is not supported in IE 11 💩.\n return this.getNativeInput_().validity.badInput || false;\n };\n /**\n * @return The result of native validity checking (ValidityState.valid).\n */\n MDCTextFieldFoundation.prototype.isNativeInputValid_ = function () {\n return this.getNativeInput_().validity.valid;\n };\n /**\n * Styles the component based on the validity state.\n */\n MDCTextFieldFoundation.prototype.styleValidity_ = function (isValid) {\n var INVALID = MDCTextFieldFoundation.cssClasses.INVALID;\n if (isValid) {\n this.adapter_.removeClass(INVALID);\n } else {\n this.adapter_.addClass(INVALID);\n }\n if (this.helperText_) {\n this.helperText_.setValidity(isValid);\n }\n };\n /**\n * Styles the component based on the focused state.\n */\n MDCTextFieldFoundation.prototype.styleFocused_ = function (isFocused) {\n var FOCUSED = MDCTextFieldFoundation.cssClasses.FOCUSED;\n if (isFocused) {\n this.adapter_.addClass(FOCUSED);\n } else {\n this.adapter_.removeClass(FOCUSED);\n }\n };\n /**\n * Styles the component based on the disabled state.\n */\n MDCTextFieldFoundation.prototype.styleDisabled_ = function (isDisabled) {\n var _a = MDCTextFieldFoundation.cssClasses,\n DISABLED = _a.DISABLED,\n INVALID = _a.INVALID;\n if (isDisabled) {\n this.adapter_.addClass(DISABLED);\n this.adapter_.removeClass(INVALID);\n } else {\n this.adapter_.removeClass(DISABLED);\n }\n if (this.leadingIcon_) {\n this.leadingIcon_.setDisabled(isDisabled);\n }\n if (this.trailingIcon_) {\n this.trailingIcon_.setDisabled(isDisabled);\n }\n };\n /**\n * @return The native text input element from the host environment, or an object with the same shape for unit tests.\n */\n MDCTextFieldFoundation.prototype.getNativeInput_ = function () {\n // this.adapter_ may be undefined in foundation unit tests. This happens when testdouble is creating a mock object\n // and invokes the shouldShake/shouldFloat getters (which in turn call getValue(), which calls this method) before\n // init() has been called from the MDCTextField constructor. To work around that issue, we return a dummy object.\n var nativeInput = this.adapter_ ? this.adapter_.getNativeInput() : null;\n return nativeInput || {\n disabled: false,\n maxLength: -1,\n type: 'input',\n validity: {\n badInput: false,\n valid: true\n },\n value: ''\n };\n };\n return MDCTextFieldFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTextFieldFoundation = MDCTextFieldFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTextFieldFoundation;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(24);\nvar MDCTextFieldHelperText = /** @class */function (_super) {\n __extends(MDCTextFieldHelperText, _super);\n function MDCTextFieldHelperText() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTextFieldHelperText.attachTo = function (root) {\n return new MDCTextFieldHelperText(root);\n };\n Object.defineProperty(MDCTextFieldHelperText.prototype, \"foundation\", {\n get: function get() {\n return this.foundation_;\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldHelperText.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n setAttr: function setAttr(attr, value) {\n return _this.root_.setAttribute(attr, value);\n },\n removeAttr: function removeAttr(attr) {\n return _this.root_.removeAttribute(attr);\n },\n setContent: function setContent(content) {\n _this.root_.textContent = content;\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCTextFieldHelperTextFoundation(adapter);\n };\n return MDCTextFieldHelperText;\n}(component_1.MDCComponent);\nexports.MDCTextFieldHelperText = MDCTextFieldHelperText;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(74);\nvar MDCTextFieldIcon = /** @class */function (_super) {\n __extends(MDCTextFieldIcon, _super);\n function MDCTextFieldIcon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTextFieldIcon.attachTo = function (root) {\n return new MDCTextFieldIcon(root);\n };\n Object.defineProperty(MDCTextFieldIcon.prototype, \"foundation\", {\n get: function get() {\n return this.foundation_;\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldIcon.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n getAttr: function getAttr(attr) {\n return _this.root_.getAttribute(attr);\n },\n setAttr: function setAttr(attr, value) {\n return _this.root_.setAttribute(attr, value);\n },\n removeAttr: function removeAttr(attr) {\n return _this.root_.removeAttribute(attr);\n },\n setContent: function setContent(content) {\n _this.root_.textContent = content;\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n },\n notifyIconAction: function notifyIconAction() {\n return _this.emit(foundation_1.MDCTextFieldIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCTextFieldIconFoundation(adapter);\n };\n return MDCTextFieldIcon;\n}(component_1.MDCComponent);\nexports.MDCTextFieldIcon = MDCTextFieldIcon;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(154);\nvar INTERACTION_EVENTS = ['click', 'keydown'];\nvar MDCTextFieldIconFoundation = /** @class */function (_super) {\n __extends(MDCTextFieldIconFoundation, _super);\n function MDCTextFieldIconFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCTextFieldIconFoundation.defaultAdapter, adapter)) || this;\n _this.savedTabIndex_ = null;\n _this.interactionHandler_ = function (evt) {\n return _this.handleInteraction(evt);\n };\n return _this;\n }\n Object.defineProperty(MDCTextFieldIconFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldIconFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextFieldIconFoundation, \"defaultAdapter\", {\n /**\n * See {@link MDCTextFieldIconAdapter} for typing information on parameters and return types.\n */\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getAttr: function getAttr() {\n return null;\n },\n setAttr: function setAttr() {\n return undefined;\n },\n removeAttr: function removeAttr() {\n return undefined;\n },\n setContent: function setContent() {\n return undefined;\n },\n registerInteractionHandler: function registerInteractionHandler() {\n return undefined;\n },\n deregisterInteractionHandler: function deregisterInteractionHandler() {\n return undefined;\n },\n notifyIconAction: function notifyIconAction() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCTextFieldIconFoundation.prototype.init = function () {\n var _this = this;\n this.savedTabIndex_ = this.adapter_.getAttr('tabindex');\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.registerInteractionHandler(evtType, _this.interactionHandler_);\n });\n };\n MDCTextFieldIconFoundation.prototype.destroy = function () {\n var _this = this;\n INTERACTION_EVENTS.forEach(function (evtType) {\n _this.adapter_.deregisterInteractionHandler(evtType, _this.interactionHandler_);\n });\n };\n MDCTextFieldIconFoundation.prototype.setDisabled = function (disabled) {\n if (!this.savedTabIndex_) {\n return;\n }\n if (disabled) {\n this.adapter_.setAttr('tabindex', '-1');\n this.adapter_.removeAttr('role');\n } else {\n this.adapter_.setAttr('tabindex', this.savedTabIndex_);\n this.adapter_.setAttr('role', constants_1.strings.ICON_ROLE);\n }\n };\n MDCTextFieldIconFoundation.prototype.setAriaLabel = function (label) {\n this.adapter_.setAttr('aria-label', label);\n };\n MDCTextFieldIconFoundation.prototype.setContent = function (content) {\n this.adapter_.setContent(content);\n };\n MDCTextFieldIconFoundation.prototype.handleInteraction = function (evt) {\n var isEnterKey = evt.key === 'Enter' || evt.keyCode === 13;\n if (evt.type === 'click' || isEnterKey) {\n this.adapter_.notifyIconAction();\n }\n };\n return MDCTextFieldIconFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCTextFieldIconFoundation = MDCTextFieldIconFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTextFieldIconFoundation;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar foundation_1 = __webpack_require__(0);\nvar constants_1 = __webpack_require__(160);\nvar MDCToolbarFoundation = /** @class */function (_super) {\n __extends(MDCToolbarFoundation, _super);\n function MDCToolbarFoundation(adapter) {\n var _this = _super.call(this, __assign({}, MDCToolbarFoundation.defaultAdapter, adapter)) || this;\n _this.checkRowHeightFrame_ = 0;\n _this.scrollFrame_ = 0;\n _this.executedLastChange_ = false;\n _this.isFixed_ = false;\n _this.isFixedLastRow_ = false;\n _this.hasFlexibleFirstRow_ = false;\n _this.useFlexDefaultBehavior_ = false;\n _this.calculations_ = {\n flexibleExpansionHeight: 0,\n flexibleExpansionRatio: 0,\n maxTranslateYDistance: 0,\n maxTranslateYRatio: 0,\n scrollThreshold: 0,\n scrollThresholdRatio: 0,\n toolbarHeight: 0,\n toolbarRatio: 0,\n toolbarRowHeight: 0\n };\n return _this;\n }\n Object.defineProperty(MDCToolbarFoundation, \"cssClasses\", {\n get: function get() {\n return constants_1.cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCToolbarFoundation, \"strings\", {\n get: function get() {\n return constants_1.strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCToolbarFoundation, \"numbers\", {\n get: function get() {\n return constants_1.numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCToolbarFoundation, \"defaultAdapter\", {\n get: function get() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasClass: function hasClass() {\n return false;\n },\n addClass: function addClass() {\n return undefined;\n },\n removeClass: function removeClass() {\n return undefined;\n },\n registerScrollHandler: function registerScrollHandler() {\n return undefined;\n },\n deregisterScrollHandler: function deregisterScrollHandler() {\n return undefined;\n },\n registerResizeHandler: function registerResizeHandler() {\n return undefined;\n },\n deregisterResizeHandler: function deregisterResizeHandler() {\n return undefined;\n },\n getViewportWidth: function getViewportWidth() {\n return 0;\n },\n getViewportScrollY: function getViewportScrollY() {\n return 0;\n },\n getOffsetHeight: function getOffsetHeight() {\n return 0;\n },\n getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {\n return 0;\n },\n notifyChange: function notifyChange() {\n return undefined;\n },\n setStyle: function setStyle() {\n return undefined;\n },\n setStyleForTitleElement: function setStyleForTitleElement() {\n return undefined;\n },\n setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement() {\n return undefined;\n },\n setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement() {\n return undefined;\n }\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n MDCToolbarFoundation.prototype.init = function () {\n var _this = this;\n this.isFixed_ = this.adapter_.hasClass(constants_1.cssClasses.FIXED);\n this.isFixedLastRow_ = this.adapter_.hasClass(constants_1.cssClasses.FIXED_LASTROW) && this.isFixed_;\n this.hasFlexibleFirstRow_ = this.adapter_.hasClass(constants_1.cssClasses.TOOLBAR_ROW_FLEXIBLE);\n if (this.hasFlexibleFirstRow_) {\n this.useFlexDefaultBehavior_ = this.adapter_.hasClass(constants_1.cssClasses.FLEXIBLE_DEFAULT_BEHAVIOR);\n }\n this.resizeHandler_ = function () {\n return _this.checkRowHeight_();\n };\n this.scrollHandler_ = function () {\n return _this.updateToolbarStyles_();\n };\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n this.initKeyRatio_();\n this.setKeyHeights_();\n };\n MDCToolbarFoundation.prototype.destroy = function () {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n this.adapter_.deregisterScrollHandler(this.scrollHandler_);\n };\n MDCToolbarFoundation.prototype.updateAdjustElementStyles = function () {\n if (this.isFixed_) {\n this.adapter_.setStyleForFixedAdjustElement('margin-top', this.calculations_.toolbarHeight + \"px\");\n }\n };\n MDCToolbarFoundation.prototype.getFlexibleExpansionRatio_ = function (scrollTop) {\n // To prevent division by zero when there is no flexibleExpansionHeight\n var delta = 0.0001;\n return Math.max(0, 1 - scrollTop / (this.calculations_.flexibleExpansionHeight + delta));\n };\n MDCToolbarFoundation.prototype.checkRowHeight_ = function () {\n var _this = this;\n cancelAnimationFrame(this.checkRowHeightFrame_);\n this.checkRowHeightFrame_ = requestAnimationFrame(function () {\n return _this.setKeyHeights_();\n });\n };\n MDCToolbarFoundation.prototype.setKeyHeights_ = function () {\n var newToolbarRowHeight = this.getRowHeight_();\n if (newToolbarRowHeight !== this.calculations_.toolbarRowHeight) {\n this.calculations_.toolbarRowHeight = newToolbarRowHeight;\n this.calculations_.toolbarHeight = this.calculations_.toolbarRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.flexibleExpansionHeight = this.calculations_.flexibleExpansionRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.maxTranslateYDistance = this.calculations_.maxTranslateYRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.scrollThreshold = this.calculations_.scrollThresholdRatio * this.calculations_.toolbarRowHeight;\n this.updateAdjustElementStyles();\n this.updateToolbarStyles_();\n }\n };\n MDCToolbarFoundation.prototype.updateToolbarStyles_ = function () {\n var _this = this;\n cancelAnimationFrame(this.scrollFrame_);\n this.scrollFrame_ = requestAnimationFrame(function () {\n var scrollTop = _this.adapter_.getViewportScrollY();\n var hasScrolledOutOfThreshold = _this.scrolledOutOfThreshold_(scrollTop);\n if (hasScrolledOutOfThreshold && _this.executedLastChange_) {\n return;\n }\n var flexibleExpansionRatio = _this.getFlexibleExpansionRatio_(scrollTop);\n _this.updateToolbarFlexibleState_(flexibleExpansionRatio);\n if (_this.isFixedLastRow_) {\n _this.updateToolbarFixedState_(scrollTop);\n }\n if (_this.hasFlexibleFirstRow_) {\n _this.updateFlexibleRowElementStyles_(flexibleExpansionRatio);\n }\n _this.executedLastChange_ = hasScrolledOutOfThreshold;\n _this.adapter_.notifyChange({ flexibleExpansionRatio: flexibleExpansionRatio });\n });\n };\n MDCToolbarFoundation.prototype.scrolledOutOfThreshold_ = function (scrollTop) {\n return scrollTop > this.calculations_.scrollThreshold;\n };\n MDCToolbarFoundation.prototype.initKeyRatio_ = function () {\n var toolbarRowHeight = this.getRowHeight_();\n var firstRowMaxRatio = this.adapter_.getFirstRowElementOffsetHeight() / toolbarRowHeight;\n this.calculations_.toolbarRatio = this.adapter_.getOffsetHeight() / toolbarRowHeight;\n this.calculations_.flexibleExpansionRatio = firstRowMaxRatio - 1;\n this.calculations_.maxTranslateYRatio = this.isFixedLastRow_ ? this.calculations_.toolbarRatio - firstRowMaxRatio : 0;\n this.calculations_.scrollThresholdRatio = (this.isFixedLastRow_ ? this.calculations_.toolbarRatio : firstRowMaxRatio) - 1;\n };\n MDCToolbarFoundation.prototype.getRowHeight_ = function () {\n var breakpoint = constants_1.numbers.TOOLBAR_MOBILE_BREAKPOINT;\n return this.adapter_.getViewportWidth() < breakpoint ? constants_1.numbers.TOOLBAR_ROW_MOBILE_HEIGHT : constants_1.numbers.TOOLBAR_ROW_HEIGHT;\n };\n MDCToolbarFoundation.prototype.updateToolbarFlexibleState_ = function (flexibleExpansionRatio) {\n this.adapter_.removeClass(constants_1.cssClasses.FLEXIBLE_MAX);\n this.adapter_.removeClass(constants_1.cssClasses.FLEXIBLE_MIN);\n if (flexibleExpansionRatio === 1) {\n this.adapter_.addClass(constants_1.cssClasses.FLEXIBLE_MAX);\n } else if (flexibleExpansionRatio === 0) {\n this.adapter_.addClass(constants_1.cssClasses.FLEXIBLE_MIN);\n }\n };\n MDCToolbarFoundation.prototype.updateToolbarFixedState_ = function (scrollTop) {\n var translateDistance = Math.max(0, Math.min(scrollTop - this.calculations_.flexibleExpansionHeight, this.calculations_.maxTranslateYDistance));\n this.adapter_.setStyle('transform', \"translateY(\" + -translateDistance + \"px)\");\n if (translateDistance === this.calculations_.maxTranslateYDistance) {\n this.adapter_.addClass(constants_1.cssClasses.FIXED_AT_LAST_ROW);\n } else {\n this.adapter_.removeClass(constants_1.cssClasses.FIXED_AT_LAST_ROW);\n }\n };\n MDCToolbarFoundation.prototype.updateFlexibleRowElementStyles_ = function (flexibleExpansionRatio) {\n if (this.isFixed_) {\n var height = this.calculations_.flexibleExpansionHeight * flexibleExpansionRatio;\n this.adapter_.setStyleForFlexibleRowElement('height', height + this.calculations_.toolbarRowHeight + \"px\");\n }\n if (this.useFlexDefaultBehavior_) {\n this.updateElementStylesDefaultBehavior_(flexibleExpansionRatio);\n }\n };\n MDCToolbarFoundation.prototype.updateElementStylesDefaultBehavior_ = function (flexibleExpansionRatio) {\n var maxTitleSize = constants_1.numbers.MAX_TITLE_SIZE;\n var minTitleSize = constants_1.numbers.MIN_TITLE_SIZE;\n var currentTitleSize = (maxTitleSize - minTitleSize) * flexibleExpansionRatio + minTitleSize;\n this.adapter_.setStyleForTitleElement('font-size', currentTitleSize + \"rem\");\n };\n return MDCToolbarFoundation;\n}(foundation_1.MDCFoundation);\nexports.MDCToolbarFoundation = MDCToolbarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCToolbarFoundation;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(7);\nvar foundation_1 = __webpack_require__(25);\nvar MDCFixedTopAppBarFoundation = /** @class */function (_super) {\n __extends(MDCFixedTopAppBarFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n function MDCFixedTopAppBarFoundation(adapter) {\n var _this = _super.call(this, adapter) || this;\n /**\n * State variable for the previous scroll iteration top app bar state\n */\n _this.wasScrolled_ = false;\n _this.scrollHandler_ = function () {\n return _this.fixedScrollHandler_();\n };\n return _this;\n }\n /**\n * Scroll handler for applying/removing the modifier class on the fixed top app bar.\n */\n MDCFixedTopAppBarFoundation.prototype.fixedScrollHandler_ = function () {\n var currentScroll = this.adapter_.getViewportScrollY();\n if (currentScroll <= 0) {\n if (this.wasScrolled_) {\n this.adapter_.removeClass(constants_1.cssClasses.FIXED_SCROLLED_CLASS);\n this.wasScrolled_ = false;\n }\n } else {\n if (!this.wasScrolled_) {\n this.adapter_.addClass(constants_1.cssClasses.FIXED_SCROLLED_CLASS);\n this.wasScrolled_ = true;\n }\n }\n };\n return MDCFixedTopAppBarFoundation;\n}(foundation_1.MDCTopAppBarFoundation);\nexports.MDCFixedTopAppBarFoundation = MDCFixedTopAppBarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCFixedTopAppBarFoundation;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(7);\nvar foundation_1 = __webpack_require__(26);\nvar MDCShortTopAppBarFoundation = /** @class */function (_super) {\n __extends(MDCShortTopAppBarFoundation, _super);\n /* istanbul ignore next: optional argument is not a branch statement */\n function MDCShortTopAppBarFoundation(adapter) {\n var _this = _super.call(this, adapter) || this;\n _this.isCollapsed_ = false;\n return _this;\n }\n Object.defineProperty(MDCShortTopAppBarFoundation.prototype, \"isCollapsed\", {\n // Public visibility for backward compatibility.\n get: function get() {\n return this.isCollapsed_;\n },\n enumerable: true,\n configurable: true\n });\n MDCShortTopAppBarFoundation.prototype.init = function () {\n var _this = this;\n _super.prototype.init.call(this);\n if (this.adapter_.getTotalActionItems() > 0) {\n this.adapter_.addClass(constants_1.cssClasses.SHORT_HAS_ACTION_ITEM_CLASS);\n }\n if (!this.adapter_.hasClass(constants_1.cssClasses.SHORT_COLLAPSED_CLASS)) {\n this.scrollHandler_ = function () {\n return _this.shortAppBarScrollHandler_();\n };\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n this.shortAppBarScrollHandler_();\n }\n };\n MDCShortTopAppBarFoundation.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n /**\n * Scroll handler for applying/removing the collapsed modifier class on the short top app bar.\n */\n MDCShortTopAppBarFoundation.prototype.shortAppBarScrollHandler_ = function () {\n var currentScroll = this.adapter_.getViewportScrollY();\n if (currentScroll <= 0) {\n if (this.isCollapsed_) {\n this.adapter_.removeClass(constants_1.cssClasses.SHORT_COLLAPSED_CLASS);\n this.isCollapsed_ = false;\n }\n } else {\n if (!this.isCollapsed_) {\n this.adapter_.addClass(constants_1.cssClasses.SHORT_COLLAPSED_CLASS);\n this.isCollapsed_ = true;\n }\n }\n };\n return MDCShortTopAppBarFoundation;\n}(foundation_1.MDCTopAppBarBaseFoundation);\nexports.MDCShortTopAppBarFoundation = MDCShortTopAppBarFoundation;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCShortTopAppBarFoundation;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = __importDefault(__webpack_require__(79));\nexports.autoInit = index_1.default;\nvar base = __importStar(__webpack_require__(80));\nexports.base = base;\nvar checkbox = __importStar(__webpack_require__(81));\nexports.checkbox = checkbox;\nvar chips = __importStar(__webpack_require__(85));\nexports.chips = chips;\nvar dialog = __importStar(__webpack_require__(90));\nexports.dialog = dialog;\nvar dom = __importStar(__webpack_require__(96));\nexports.dom = dom;\nvar drawer = __importStar(__webpack_require__(97));\nexports.drawer = drawer;\nvar floatingLabel = __importStar(__webpack_require__(102));\nexports.floatingLabel = floatingLabel;\nvar formField = __importStar(__webpack_require__(104));\nexports.formField = formField;\nvar gridList = __importStar(__webpack_require__(107));\nexports.gridList = gridList;\nvar iconButton = __importStar(__webpack_require__(110));\nexports.iconButton = iconButton;\nvar lineRipple = __importStar(__webpack_require__(113));\nexports.lineRipple = lineRipple;\nvar linearProgress = __importStar(__webpack_require__(115));\nexports.linearProgress = linearProgress;\nvar list = __importStar(__webpack_require__(118));\nexports.list = list;\nvar menuSurface = __importStar(__webpack_require__(119));\nexports.menuSurface = menuSurface;\nvar menu = __importStar(__webpack_require__(120));\nexports.menu = menu;\nvar notchedOutline = __importStar(__webpack_require__(121));\nexports.notchedOutline = notchedOutline;\nvar radio = __importStar(__webpack_require__(122));\nexports.radio = radio;\nvar ripple = __importStar(__webpack_require__(125));\nexports.ripple = ripple;\nvar select = __importStar(__webpack_require__(126));\nexports.select = select;\nvar slider = __importStar(__webpack_require__(132));\nexports.slider = slider;\nvar snackbar = __importStar(__webpack_require__(134));\nexports.snackbar = snackbar;\nvar switchControl = __importStar(__webpack_require__(136));\nexports.switchControl = switchControl;\nvar tabBar = __importStar(__webpack_require__(139));\nexports.tabBar = tabBar;\nvar tabIndicator = __importStar(__webpack_require__(147));\nexports.tabIndicator = tabIndicator;\nvar tabScroller = __importStar(__webpack_require__(148));\nexports.tabScroller = tabScroller;\nvar tab = __importStar(__webpack_require__(149));\nexports.tab = tab;\nvar textField = __importStar(__webpack_require__(150));\nexports.textField = textField;\nvar toolbar = __importStar(__webpack_require__(158));\nexports.toolbar = toolbar;\nvar topAppBar = __importStar(__webpack_require__(161));\nexports.topAppBar = topAppBar;\n// Register all components\nindex_1.default.register('MDCCheckbox', checkbox.MDCCheckbox);\nindex_1.default.register('MDCChip', chips.MDCChip);\nindex_1.default.register('MDCChipSet', chips.MDCChipSet);\nindex_1.default.register('MDCDialog', dialog.MDCDialog);\nindex_1.default.register('MDCDrawer', drawer.MDCDrawer);\nindex_1.default.register('MDCFloatingLabel', floatingLabel.MDCFloatingLabel);\nindex_1.default.register('MDCFormField', formField.MDCFormField);\nindex_1.default.register('MDCGridList', gridList.MDCGridList);\nindex_1.default.register('MDCIconButtonToggle', iconButton.MDCIconButtonToggle);\nindex_1.default.register('MDCLineRipple', lineRipple.MDCLineRipple);\nindex_1.default.register('MDCLinearProgress', linearProgress.MDCLinearProgress);\nindex_1.default.register('MDCList', list.MDCList);\nindex_1.default.register('MDCMenu', menu.MDCMenu);\nindex_1.default.register('MDCMenuSurface', menuSurface.MDCMenuSurface);\nindex_1.default.register('MDCNotchedOutline', notchedOutline.MDCNotchedOutline);\nindex_1.default.register('MDCRadio', radio.MDCRadio);\nindex_1.default.register('MDCRipple', ripple.MDCRipple);\nindex_1.default.register('MDCSelect', select.MDCSelect);\nindex_1.default.register('MDCSlider', slider.MDCSlider);\nindex_1.default.register('MDCSnackbar', snackbar.MDCSnackbar);\nindex_1.default.register('MDCSwitch', switchControl.MDCSwitch);\nindex_1.default.register('MDCTabBar', tabBar.MDCTabBar);\nindex_1.default.register('MDCTextField', textField.MDCTextField);\nindex_1.default.register('MDCToolbar', toolbar.MDCToolbar);\nindex_1.default.register('MDCTopAppBar', topAppBar.MDCTopAppBar);\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __values = this && this.__values || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar registry = {};\nvar CONSOLE_WARN = console.warn.bind(console); // tslint:disable-line:no-console\nfunction emit(evtType, evtData, shouldBubble) {\n if (shouldBubble === void 0) {\n shouldBubble = false;\n }\n var evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent(evtType, {\n bubbles: shouldBubble,\n detail: evtData\n });\n } else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(evtType, shouldBubble, false, evtData);\n }\n document.dispatchEvent(evt);\n}\n/* istanbul ignore next: optional argument is not a branch statement */\n/**\n * Auto-initializes all MDC components on a page.\n */\nfunction mdcAutoInit(root, warn) {\n if (root === void 0) {\n root = document;\n }\n if (warn === void 0) {\n warn = CONSOLE_WARN;\n }\n var e_1, _a;\n var components = [];\n var nodes = [].slice.call(root.querySelectorAll('[data-mdc-auto-init]'));\n try {\n for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n var ctorName = node.getAttribute('data-mdc-auto-init');\n if (!ctorName) {\n throw new Error('(mdc-auto-init) Constructor name must be given.');\n }\n var Constructor = registry[ctorName]; // tslint:disable-line:variable-name\n if (typeof Constructor !== 'function') {\n throw new Error(\"(mdc-auto-init) Could not find constructor in registry for \" + ctorName);\n }\n if (Object.getOwnPropertyDescriptor(node, ctorName)) {\n warn(\"(mdc-auto-init) Component already initialized for \" + node + \". Skipping...\");\n continue;\n }\n // TODO: Should we make an eslint rule for an attachTo() static method?\n // See https://github.com/Microsoft/TypeScript/issues/14600 for discussion of static interface support in TS\n var component = Constructor.attachTo(node);\n Object.defineProperty(node, ctorName, {\n configurable: true,\n enumerable: false,\n value: component,\n writable: false\n });\n components.push(component);\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n emit('MDCAutoInit:End', {});\n return components;\n}\nexports.mdcAutoInit = mdcAutoInit;\n// Constructor is PascalCased because it is a direct reference to a class, rather than an instance of a class.\n// tslint:disable-next-line:variable-name\nmdcAutoInit.register = function (componentName, Constructor, warn) {\n if (warn === void 0) {\n warn = CONSOLE_WARN;\n }\n if (typeof Constructor !== 'function') {\n throw new Error(\"(mdc-auto-init) Invalid Constructor value: \" + Constructor + \". Expected function.\");\n }\n var registryValue = registry[componentName];\n if (registryValue) {\n warn(\"(mdc-auto-init) Overriding registration for \" + componentName + \" with \" + Constructor + \". Was: \" + registryValue);\n }\n registry[componentName] = Constructor;\n};\nmdcAutoInit.deregister = function (componentName) {\n delete registry[componentName];\n};\nmdcAutoInit.deregisterAll = function () {\n var keys = Object.keys(registry);\n keys.forEach(this.deregister, this);\n};\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = mdcAutoInit;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(1));\n__export(__webpack_require__(0));\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(82));\n__export(__webpack_require__(27));\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = __webpack_require__(10);\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar foundation_2 = __webpack_require__(27);\nvar CB_PROTO_PROPS = ['checked', 'indeterminate'];\nvar MDCCheckbox = /** @class */function (_super) {\n __extends(MDCCheckbox, _super);\n function MDCCheckbox() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ripple_ = _this.createRipple_();\n return _this;\n }\n MDCCheckbox.attachTo = function (root) {\n return new MDCCheckbox(root);\n };\n Object.defineProperty(MDCCheckbox.prototype, \"ripple\", {\n get: function get() {\n return this.ripple_;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckbox.prototype, \"checked\", {\n get: function get() {\n return this.nativeControl_.checked;\n },\n set: function set(checked) {\n this.nativeControl_.checked = checked;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckbox.prototype, \"indeterminate\", {\n get: function get() {\n return this.nativeControl_.indeterminate;\n },\n set: function set(indeterminate) {\n this.nativeControl_.indeterminate = indeterminate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckbox.prototype, \"disabled\", {\n get: function get() {\n return this.nativeControl_.disabled;\n },\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCCheckbox.prototype, \"value\", {\n get: function get() {\n return this.nativeControl_.value;\n },\n set: function set(value) {\n this.nativeControl_.value = value;\n },\n enumerable: true,\n configurable: true\n });\n MDCCheckbox.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleChange_ = function () {\n return _this.foundation_.handleChange();\n };\n this.handleAnimationEnd_ = function () {\n return _this.foundation_.handleAnimationEnd();\n };\n this.nativeControl_.addEventListener('change', this.handleChange_);\n this.listen(util_1.getCorrectEventName(window, 'animationend'), this.handleAnimationEnd_);\n this.installPropertyChangeHooks_();\n };\n MDCCheckbox.prototype.destroy = function () {\n this.ripple_.destroy();\n this.nativeControl_.removeEventListener('change', this.handleChange_);\n this.unlisten(util_1.getCorrectEventName(window, 'animationend'), this.handleAnimationEnd_);\n this.uninstallPropertyChangeHooks_();\n _super.prototype.destroy.call(this);\n };\n MDCCheckbox.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n forceLayout: function forceLayout() {\n return _this.root_.offsetWidth;\n },\n hasNativeControl: function hasNativeControl() {\n return !!_this.nativeControl_;\n },\n isAttachedToDOM: function isAttachedToDOM() {\n return Boolean(_this.root_.parentNode);\n },\n isChecked: function isChecked() {\n return _this.checked;\n },\n isIndeterminate: function isIndeterminate() {\n return _this.indeterminate;\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n removeNativeControlAttr: function removeNativeControlAttr(attr) {\n return _this.nativeControl_.removeAttribute(attr);\n },\n setNativeControlAttr: function setNativeControlAttr(attr, value) {\n return _this.nativeControl_.setAttribute(attr, value);\n },\n setNativeControlDisabled: function setNativeControlDisabled(disabled) {\n return _this.nativeControl_.disabled = disabled;\n }\n };\n return new foundation_2.MDCCheckboxFoundation(adapter);\n };\n MDCCheckbox.prototype.createRipple_ = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = __assign({}, component_2.MDCRipple.createAdapter(this), { deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.nativeControl_.removeEventListener(evtType, handler);\n }, isSurfaceActive: function isSurfaceActive() {\n return ponyfill_1.matches(_this.nativeControl_, ':active');\n }, isUnbounded: function isUnbounded() {\n return true;\n }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.nativeControl_.addEventListener(evtType, handler);\n } });\n return new component_2.MDCRipple(this.root_, new foundation_1.MDCRippleFoundation(adapter));\n };\n MDCCheckbox.prototype.installPropertyChangeHooks_ = function () {\n var _this = this;\n var nativeCb = this.nativeControl_;\n var cbProto = Object.getPrototypeOf(nativeCb);\n CB_PROTO_PROPS.forEach(function (controlState) {\n var desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n // We have to check for this descriptor, since some browsers (Safari) don't support its return.\n // See: https://bugs.webkit.org/show_bug.cgi?id=49739\n if (!validDescriptor(desc)) {\n return;\n }\n // Type cast is needed for compatibility with Closure Compiler.\n var nativeGetter = desc.get;\n var nativeCbDesc = {\n configurable: desc.configurable,\n enumerable: desc.enumerable,\n get: nativeGetter,\n set: function set(state) {\n desc.set.call(nativeCb, state);\n _this.foundation_.handleChange();\n }\n };\n Object.defineProperty(nativeCb, controlState, nativeCbDesc);\n });\n };\n MDCCheckbox.prototype.uninstallPropertyChangeHooks_ = function () {\n var nativeCb = this.nativeControl_;\n var cbProto = Object.getPrototypeOf(nativeCb);\n CB_PROTO_PROPS.forEach(function (controlState) {\n var desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n if (!validDescriptor(desc)) {\n return;\n }\n Object.defineProperty(nativeCb, controlState, desc);\n });\n };\n Object.defineProperty(MDCCheckbox.prototype, \"nativeControl_\", {\n get: function get() {\n var NATIVE_CONTROL_SELECTOR = foundation_2.MDCCheckboxFoundation.strings.NATIVE_CONTROL_SELECTOR;\n var el = this.root_.querySelector(NATIVE_CONTROL_SELECTOR);\n if (!el) {\n throw new Error(\"Checkbox component requires a \" + NATIVE_CONTROL_SELECTOR + \" element\");\n }\n return el;\n },\n enumerable: true,\n configurable: true\n });\n return MDCCheckbox;\n}(component_1.MDCComponent);\nexports.MDCCheckbox = MDCCheckbox;\nfunction validDescriptor(inputPropDesc) {\n return !!inputPropDesc && typeof inputPropDesc.set === 'function';\n}\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n // Ripple is a special case where the \"root\" component is really a \"mixin\" of sorts,\n // given that it's an 'upgrade' to an existing component. That being said it is the root\n // CSS class that all other CSS classes derive from.\n BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',\n FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation',\n ROOT: 'mdc-ripple-upgraded',\n UNBOUNDED: 'mdc-ripple-upgraded--unbounded'\n};\nexports.strings = {\n VAR_FG_SCALE: '--mdc-ripple-fg-scale',\n VAR_FG_SIZE: '--mdc-ripple-fg-size',\n VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end',\n VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',\n VAR_LEFT: '--mdc-ripple-left',\n VAR_TOP: '--mdc-ripple-top'\n};\nexports.numbers = {\n DEACTIVATION_TIMEOUT_MS: 225,\n FG_DEACTIVATION_MS: 150,\n INITIAL_ORIGIN_SCALE: 0.6,\n PADDING: 10,\n TAP_DELAY_MS: 300\n};\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate',\n ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked',\n ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked',\n ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked',\n ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked',\n ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate',\n BACKGROUND: 'mdc-checkbox__background',\n CHECKED: 'mdc-checkbox--checked',\n CHECKMARK: 'mdc-checkbox__checkmark',\n CHECKMARK_PATH: 'mdc-checkbox__checkmark-path',\n DISABLED: 'mdc-checkbox--disabled',\n INDETERMINATE: 'mdc-checkbox--indeterminate',\n MIXEDMARK: 'mdc-checkbox__mixedmark',\n NATIVE_CONTROL: 'mdc-checkbox__native-control',\n ROOT: 'mdc-checkbox',\n SELECTED: 'mdc-checkbox--selected',\n UPGRADED: 'mdc-checkbox--upgraded'\n};\nexports.strings = {\n ARIA_CHECKED_ATTR: 'aria-checked',\n ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed',\n NATIVE_CONTROL_SELECTOR: '.mdc-checkbox__native-control',\n TRANSITION_STATE_CHECKED: 'checked',\n TRANSITION_STATE_INDETERMINATE: 'indeterminate',\n TRANSITION_STATE_INIT: 'init',\n TRANSITION_STATE_UNCHECKED: 'unchecked'\n};\nexports.numbers = {\n ANIM_END_LATCH_MS: 250\n};\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(86));\n__export(__webpack_require__(87));\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(28));\n__export(__webpack_require__(12));\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(88));\n__export(__webpack_require__(30));\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(28);\nvar foundation_1 = __webpack_require__(12);\nvar foundation_2 = __webpack_require__(30);\nvar _a = foundation_1.MDCChipFoundation.strings,\n INTERACTION_EVENT = _a.INTERACTION_EVENT,\n SELECTION_EVENT = _a.SELECTION_EVENT,\n REMOVAL_EVENT = _a.REMOVAL_EVENT;\nvar CHIP_SELECTOR = foundation_2.MDCChipSetFoundation.strings.CHIP_SELECTOR;\nvar idCounter = 0;\nvar MDCChipSet = /** @class */function (_super) {\n __extends(MDCChipSet, _super);\n function MDCChipSet() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCChipSet.attachTo = function (root) {\n return new MDCChipSet(root);\n };\n Object.defineProperty(MDCChipSet.prototype, \"chips\", {\n get: function get() {\n return this.chips_.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCChipSet.prototype, \"selectedChipIds\", {\n /**\n * @return An array of the IDs of all selected chips.\n */\n get: function get() {\n return this.foundation_.getSelectedChipIds();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param chipFactory A function which creates a new MDCChip.\n */\n MDCChipSet.prototype.initialize = function (chipFactory) {\n if (chipFactory === void 0) {\n chipFactory = function chipFactory(el) {\n return new component_2.MDCChip(el);\n };\n }\n this.chipFactory_ = chipFactory;\n this.chips_ = this.instantiateChips_(this.chipFactory_);\n };\n MDCChipSet.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.chips_.forEach(function (chip) {\n if (chip.id && chip.selected) {\n _this.foundation_.select(chip.id);\n }\n });\n this.handleChipInteraction_ = function (evt) {\n return _this.foundation_.handleChipInteraction(evt.detail.chipId);\n };\n this.handleChipSelection_ = function (evt) {\n return _this.foundation_.handleChipSelection(evt.detail.chipId, evt.detail.selected);\n };\n this.handleChipRemoval_ = function (evt) {\n return _this.foundation_.handleChipRemoval(evt.detail.chipId);\n };\n this.listen(INTERACTION_EVENT, this.handleChipInteraction_);\n this.listen(SELECTION_EVENT, this.handleChipSelection_);\n this.listen(REMOVAL_EVENT, this.handleChipRemoval_);\n };\n MDCChipSet.prototype.destroy = function () {\n this.chips_.forEach(function (chip) {\n chip.destroy();\n });\n this.unlisten(INTERACTION_EVENT, this.handleChipInteraction_);\n this.unlisten(SELECTION_EVENT, this.handleChipSelection_);\n this.unlisten(REMOVAL_EVENT, this.handleChipRemoval_);\n _super.prototype.destroy.call(this);\n };\n /**\n * Adds a new chip object to the chip set from the given chip element.\n */\n MDCChipSet.prototype.addChip = function (chipEl) {\n chipEl.id = chipEl.id || \"mdc-chip-\" + ++idCounter;\n this.chips_.push(this.chipFactory_(chipEl));\n };\n MDCChipSet.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n removeChip: function removeChip(chipId) {\n var index = _this.findChipIndex_(chipId);\n if (index >= 0) {\n _this.chips_[index].destroy();\n _this.chips_.splice(index, 1);\n }\n },\n setSelected: function setSelected(chipId, selected) {\n var index = _this.findChipIndex_(chipId);\n if (index >= 0) {\n _this.chips_[index].selected = selected;\n }\n }\n };\n return new foundation_2.MDCChipSetFoundation(adapter);\n };\n /**\n * Instantiates chip components on all of the chip set's child chip elements.\n */\n MDCChipSet.prototype.instantiateChips_ = function (chipFactory) {\n var chipElements = [].slice.call(this.root_.querySelectorAll(CHIP_SELECTOR));\n return chipElements.map(function (el) {\n el.id = el.id || \"mdc-chip-\" + ++idCounter;\n return chipFactory(el);\n });\n };\n /**\n * Returns the index of the chip with the given id, or -1 if the chip does not exist.\n */\n MDCChipSet.prototype.findChipIndex_ = function (chipId) {\n for (var i = 0; i < this.chips_.length; i++) {\n if (this.chips_[i].id === chipId) {\n return i;\n }\n }\n return -1;\n };\n return MDCChipSet;\n}(component_1.MDCComponent);\nexports.MDCChipSet = MDCChipSet;\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strings = {\n CHIP_SELECTOR: '.mdc-chip'\n};\nexports.cssClasses = {\n CHOICE: 'mdc-chip-set--choice',\n FILTER: 'mdc-chip-set--filter'\n};\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(31));\nexports.util = util;\n__export(__webpack_require__(94));\n__export(__webpack_require__(32));\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar tabbable = __webpack_require__(92);\nvar xtend = __webpack_require__(93);\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nvar candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __values = this && this.__values || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(32);\nvar util = __importStar(__webpack_require__(31));\nvar strings = foundation_1.MDCDialogFoundation.strings;\nvar MDCDialog = /** @class */function (_super) {\n __extends(MDCDialog, _super);\n function MDCDialog() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MDCDialog.prototype, \"isOpen\", {\n get: function get() {\n return this.foundation_.isOpen();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialog.prototype, \"escapeKeyAction\", {\n get: function get() {\n return this.foundation_.getEscapeKeyAction();\n },\n set: function set(action) {\n this.foundation_.setEscapeKeyAction(action);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialog.prototype, \"scrimClickAction\", {\n get: function get() {\n return this.foundation_.getScrimClickAction();\n },\n set: function set(action) {\n this.foundation_.setScrimClickAction(action);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDialog.prototype, \"autoStackButtons\", {\n get: function get() {\n return this.foundation_.getAutoStackButtons();\n },\n set: function set(autoStack) {\n this.foundation_.setAutoStackButtons(autoStack);\n },\n enumerable: true,\n configurable: true\n });\n MDCDialog.attachTo = function (root) {\n return new MDCDialog(root);\n };\n MDCDialog.prototype.initialize = function (focusTrapFactory, initialFocusEl) {\n var e_1, _a;\n var container = this.root_.querySelector(strings.CONTAINER_SELECTOR);\n if (!container) {\n throw new Error(\"Dialog component requires a \" + strings.CONTAINER_SELECTOR + \" container element\");\n }\n this.container_ = container;\n this.content_ = this.root_.querySelector(strings.CONTENT_SELECTOR);\n this.buttons_ = [].slice.call(this.root_.querySelectorAll(strings.BUTTON_SELECTOR));\n this.defaultButton_ = this.root_.querySelector(strings.DEFAULT_BUTTON_SELECTOR);\n this.focusTrapFactory_ = focusTrapFactory;\n this.initialFocusEl_ = initialFocusEl;\n this.buttonRipples_ = [];\n try {\n for (var _b = __values(this.buttons_), _c = _b.next(); !_c.done; _c = _b.next()) {\n var buttonEl = _c.value;\n this.buttonRipples_.push(new component_2.MDCRipple(buttonEl));\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n MDCDialog.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.focusTrap_ = util.createFocusTrapInstance(this.container_, this.focusTrapFactory_, this.initialFocusEl_);\n this.handleInteraction_ = this.foundation_.handleInteraction.bind(this.foundation_);\n this.handleDocumentKeydown_ = this.foundation_.handleDocumentKeydown.bind(this.foundation_);\n this.handleLayout_ = this.layout.bind(this);\n var LAYOUT_EVENTS = ['resize', 'orientationchange'];\n this.handleOpening_ = function () {\n LAYOUT_EVENTS.forEach(function (evtType) {\n return window.addEventListener(evtType, _this.handleLayout_);\n });\n document.addEventListener('keydown', _this.handleDocumentKeydown_);\n };\n this.handleClosing_ = function () {\n LAYOUT_EVENTS.forEach(function (evtType) {\n return window.removeEventListener(evtType, _this.handleLayout_);\n });\n document.removeEventListener('keydown', _this.handleDocumentKeydown_);\n };\n this.listen('click', this.handleInteraction_);\n this.listen('keydown', this.handleInteraction_);\n this.listen(strings.OPENING_EVENT, this.handleOpening_);\n this.listen(strings.CLOSING_EVENT, this.handleClosing_);\n };\n MDCDialog.prototype.destroy = function () {\n this.unlisten('click', this.handleInteraction_);\n this.unlisten('keydown', this.handleInteraction_);\n this.unlisten(strings.OPENING_EVENT, this.handleOpening_);\n this.unlisten(strings.CLOSING_EVENT, this.handleClosing_);\n this.handleClosing_();\n this.buttonRipples_.forEach(function (ripple) {\n return ripple.destroy();\n });\n _super.prototype.destroy.call(this);\n };\n MDCDialog.prototype.layout = function () {\n this.foundation_.layout();\n };\n MDCDialog.prototype.open = function () {\n this.foundation_.open();\n };\n MDCDialog.prototype.close = function (action) {\n if (action === void 0) {\n action = '';\n }\n this.foundation_.close(action);\n };\n MDCDialog.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addBodyClass: function addBodyClass(className) {\n return document.body.classList.add(className);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n areButtonsStacked: function areButtonsStacked() {\n return util.areTopsMisaligned(_this.buttons_);\n },\n clickDefaultButton: function clickDefaultButton() {\n return _this.defaultButton_ && _this.defaultButton_.click();\n },\n eventTargetMatches: function eventTargetMatches(target, selector) {\n return target ? ponyfill_1.matches(target, selector) : false;\n },\n getActionFromEvent: function getActionFromEvent(evt) {\n if (!evt.target) {\n return '';\n }\n var element = ponyfill_1.closest(evt.target, \"[\" + strings.ACTION_ATTRIBUTE + \"]\");\n return element && element.getAttribute(strings.ACTION_ATTRIBUTE);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n isContentScrollable: function isContentScrollable() {\n return util.isScrollable(_this.content_);\n },\n notifyClosed: function notifyClosed(action) {\n return _this.emit(strings.CLOSED_EVENT, action ? { action: action } : {});\n },\n notifyClosing: function notifyClosing(action) {\n return _this.emit(strings.CLOSING_EVENT, action ? { action: action } : {});\n },\n notifyOpened: function notifyOpened() {\n return _this.emit(strings.OPENED_EVENT, {});\n },\n notifyOpening: function notifyOpening() {\n return _this.emit(strings.OPENING_EVENT, {});\n },\n releaseFocus: function releaseFocus() {\n return _this.focusTrap_.deactivate();\n },\n removeBodyClass: function removeBodyClass(className) {\n return document.body.classList.remove(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n reverseButtons: function reverseButtons() {\n _this.buttons_.reverse();\n _this.buttons_.forEach(function (button) {\n button.parentElement.appendChild(button);\n });\n },\n trapFocus: function trapFocus() {\n return _this.focusTrap_.activate();\n }\n };\n return new foundation_1.MDCDialogFoundation(adapter);\n };\n return MDCDialog;\n}(component_1.MDCComponent);\nexports.MDCDialog = MDCDialog;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n CLOSING: 'mdc-dialog--closing',\n OPEN: 'mdc-dialog--open',\n OPENING: 'mdc-dialog--opening',\n SCROLLABLE: 'mdc-dialog--scrollable',\n SCROLL_LOCK: 'mdc-dialog-scroll-lock',\n STACKED: 'mdc-dialog--stacked'\n};\nexports.strings = {\n ACTION_ATTRIBUTE: 'data-mdc-dialog-action',\n BUTTON_SELECTOR: '.mdc-dialog__button',\n CLOSED_EVENT: 'MDCDialog:closed',\n CLOSE_ACTION: 'close',\n CLOSING_EVENT: 'MDCDialog:closing',\n CONTAINER_SELECTOR: '.mdc-dialog__container',\n CONTENT_SELECTOR: '.mdc-dialog__content',\n DEFAULT_BUTTON_SELECTOR: '.mdc-dialog__button--default',\n DESTROY_ACTION: 'destroy',\n OPENED_EVENT: 'MDCDialog:opened',\n OPENING_EVENT: 'MDCDialog:opening',\n SCRIM_SELECTOR: '.mdc-dialog__scrim',\n SUPPRESS_DEFAULT_PRESS_SELECTOR: ['textarea', '.mdc-menu .mdc-list-item'].join(', '),\n SURFACE_SELECTOR: '.mdc-dialog__surface'\n};\nexports.numbers = {\n DIALOG_ANIMATION_CLOSE_TIME_MS: 75,\n DIALOG_ANIMATION_OPEN_TIME_MS: 150\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ponyfill = __importStar(__webpack_require__(3));\nexports.ponyfill = ponyfill;\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(33));\nexports.util = util;\n__export(__webpack_require__(100));\n__export(__webpack_require__(14));\n__export(__webpack_require__(36));\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nvar candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(13);\nvar foundation_1 = __webpack_require__(5);\nvar focus_trap_1 = __importDefault(__webpack_require__(34));\nvar foundation_2 = __webpack_require__(14);\nvar foundation_3 = __webpack_require__(36);\nvar util = __importStar(__webpack_require__(33));\nvar cssClasses = foundation_2.MDCDismissibleDrawerFoundation.cssClasses,\n strings = foundation_2.MDCDismissibleDrawerFoundation.strings;\nvar MDCDrawer = /** @class */function (_super) {\n __extends(MDCDrawer, _super);\n function MDCDrawer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCDrawer.attachTo = function (root) {\n return new MDCDrawer(root);\n };\n Object.defineProperty(MDCDrawer.prototype, \"open\", {\n /**\n * Returns true if drawer is in the open position.\n */\n get: function get() {\n return this.foundation_.isOpen();\n },\n /**\n * Toggles the drawer open and closed.\n */\n set: function set(isOpen) {\n if (isOpen) {\n this.foundation_.open();\n } else {\n this.foundation_.close();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDrawer.prototype, \"list\", {\n get: function get() {\n return this.list_;\n },\n enumerable: true,\n configurable: true\n });\n MDCDrawer.prototype.initialize = function (focusTrapFactory, listFactory) {\n if (focusTrapFactory === void 0) {\n focusTrapFactory = focus_trap_1.default;\n }\n if (listFactory === void 0) {\n listFactory = function listFactory(el) {\n return new component_2.MDCList(el);\n };\n }\n var listEl = this.root_.querySelector(\".\" + foundation_1.MDCListFoundation.cssClasses.ROOT);\n if (listEl) {\n this.list_ = listFactory(listEl);\n this.list_.wrapFocus = true;\n }\n this.focusTrapFactory_ = focusTrapFactory;\n };\n MDCDrawer.prototype.initialSyncWithDOM = function () {\n var _this = this;\n var MODAL = cssClasses.MODAL;\n var SCRIM_SELECTOR = strings.SCRIM_SELECTOR;\n this.scrim_ = this.root_.parentNode.querySelector(SCRIM_SELECTOR);\n if (this.scrim_ && this.root_.classList.contains(MODAL)) {\n this.handleScrimClick_ = function () {\n return _this.foundation_.handleScrimClick();\n };\n this.scrim_.addEventListener('click', this.handleScrimClick_);\n this.focusTrap_ = util.createFocusTrapInstance(this.root_, this.focusTrapFactory_);\n }\n this.handleKeydown_ = function (evt) {\n return _this.foundation_.handleKeydown(evt);\n };\n this.handleTransitionEnd_ = function (evt) {\n return _this.foundation_.handleTransitionEnd(evt);\n };\n this.listen('keydown', this.handleKeydown_);\n this.listen('transitionend', this.handleTransitionEnd_);\n };\n MDCDrawer.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('transitionend', this.handleTransitionEnd_);\n if (this.list_) {\n this.list_.destroy();\n }\n var MODAL = cssClasses.MODAL;\n if (this.scrim_ && this.handleScrimClick_ && this.root_.classList.contains(MODAL)) {\n this.scrim_.removeEventListener('click', this.handleScrimClick_);\n // Ensure drawer is closed to hide scrim and release focus\n this.open = false;\n }\n };\n MDCDrawer.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n elementHasClass: function elementHasClass(element, className) {\n return element.classList.contains(className);\n },\n saveFocus: function saveFocus() {\n return _this.previousFocus_ = document.activeElement;\n },\n restoreFocus: function restoreFocus() {\n var previousFocus = _this.previousFocus_;\n if (previousFocus && previousFocus.focus && _this.root_.contains(document.activeElement)) {\n previousFocus.focus();\n }\n },\n focusActiveNavigationItem: function focusActiveNavigationItem() {\n var activeNavItemEl = _this.root_.querySelector(\".\" + foundation_1.MDCListFoundation.cssClasses.LIST_ITEM_ACTIVATED_CLASS);\n if (activeNavItemEl) {\n activeNavItemEl.focus();\n }\n },\n notifyClose: function notifyClose() {\n return _this.emit(strings.CLOSE_EVENT, {}, true /* shouldBubble */);\n },\n notifyOpen: function notifyOpen() {\n return _this.emit(strings.OPEN_EVENT, {}, true /* shouldBubble */);\n },\n trapFocus: function trapFocus() {\n return _this.focusTrap_.activate();\n },\n releaseFocus: function releaseFocus() {\n return _this.focusTrap_.deactivate();\n }\n };\n // tslint:enable:object-literal-sort-keys\n var DISMISSIBLE = cssClasses.DISMISSIBLE,\n MODAL = cssClasses.MODAL;\n if (this.root_.classList.contains(DISMISSIBLE)) {\n return new foundation_2.MDCDismissibleDrawerFoundation(adapter);\n } else if (this.root_.classList.contains(MODAL)) {\n return new foundation_3.MDCModalDrawerFoundation(adapter);\n } else {\n throw new Error(\"MDCDrawer: Failed to instantiate component. Supported variants are \" + DISMISSIBLE + \" and \" + MODAL + \".\");\n }\n };\n return MDCDrawer;\n}(component_1.MDCComponent);\nexports.MDCDrawer = MDCDrawer;\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ANIMATE: 'mdc-drawer--animate',\n CLOSING: 'mdc-drawer--closing',\n DISMISSIBLE: 'mdc-drawer--dismissible',\n MODAL: 'mdc-drawer--modal',\n OPEN: 'mdc-drawer--open',\n OPENING: 'mdc-drawer--opening',\n ROOT: 'mdc-drawer'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n APP_CONTENT_SELECTOR: '.mdc-drawer-app-content',\n CLOSE_EVENT: 'MDCDrawer:closed',\n OPEN_EVENT: 'MDCDrawer:opened',\n SCRIM_SELECTOR: '.mdc-drawer-scrim'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(15));\n__export(__webpack_require__(16));\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above',\n LABEL_SHAKE: 'mdc-floating-label--shake',\n ROOT: 'mdc-floating-label'\n};\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(105));\n__export(__webpack_require__(37));\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(37);\nvar MDCFormField = /** @class */function (_super) {\n __extends(MDCFormField, _super);\n function MDCFormField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCFormField.attachTo = function (root) {\n return new MDCFormField(root);\n };\n Object.defineProperty(MDCFormField.prototype, \"input\", {\n get: function get() {\n return this.input_;\n },\n set: function set(input) {\n this.input_ = input;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCFormField.prototype, \"label_\", {\n get: function get() {\n var LABEL_SELECTOR = foundation_1.MDCFormFieldFoundation.strings.LABEL_SELECTOR;\n return this.root_.querySelector(LABEL_SELECTOR);\n },\n enumerable: true,\n configurable: true\n });\n MDCFormField.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n activateInputRipple: function activateInputRipple() {\n if (_this.input_ && _this.input_.ripple) {\n _this.input_.ripple.activate();\n }\n },\n deactivateInputRipple: function deactivateInputRipple() {\n if (_this.input_ && _this.input_.ripple) {\n _this.input_.ripple.deactivate();\n }\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n if (_this.label_) {\n _this.label_.removeEventListener(evtType, handler);\n }\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n if (_this.label_) {\n _this.label_.addEventListener(evtType, handler);\n }\n }\n };\n return new foundation_1.MDCFormFieldFoundation(adapter);\n };\n return MDCFormField;\n}(component_1.MDCComponent);\nexports.MDCFormField = MDCFormField;\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n ROOT: 'mdc-form-field'\n};\nexports.strings = {\n LABEL_SELECTOR: '.mdc-form-field > label'\n};\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(108));\n__export(__webpack_require__(38));\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(38);\nvar MDCGridList = /** @class */function (_super) {\n __extends(MDCGridList, _super);\n function MDCGridList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCGridList.attachTo = function (root) {\n return new MDCGridList(root);\n };\n MDCGridList.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n deregisterResizeHandler: function deregisterResizeHandler(handler) {\n return window.removeEventListener('resize', handler);\n },\n getNumberOfTiles: function getNumberOfTiles() {\n return _this.root_.querySelectorAll(foundation_1.MDCGridListFoundation.strings.TILE_SELECTOR).length;\n },\n getOffsetWidth: function getOffsetWidth() {\n return _this.root_.offsetWidth;\n },\n getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex(index) {\n var tileEl = _this.root_.querySelectorAll(foundation_1.MDCGridListFoundation.strings.TILE_SELECTOR)[index];\n return tileEl.offsetWidth;\n },\n registerResizeHandler: function registerResizeHandler(handler) {\n return window.addEventListener('resize', handler);\n },\n setStyleForTilesElement: function setStyleForTilesElement(property, value) {\n var tilesEl = _this.root_.querySelector(foundation_1.MDCGridListFoundation.strings.TILES_SELECTOR);\n tilesEl.style[property] = value;\n }\n };\n return new foundation_1.MDCGridListFoundation(adapter);\n };\n return MDCGridList;\n}(component_1.MDCComponent);\nexports.MDCGridList = MDCGridList;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strings = {\n TILES_SELECTOR: '.mdc-grid-list__tiles',\n TILE_SELECTOR: '.mdc-grid-tile'\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(111));\n__export(__webpack_require__(39));\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(39);\nvar strings = foundation_1.MDCIconButtonToggleFoundation.strings;\nvar MDCIconButtonToggle = /** @class */function (_super) {\n __extends(MDCIconButtonToggle, _super);\n function MDCIconButtonToggle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ripple_ = _this.createRipple_();\n return _this;\n }\n MDCIconButtonToggle.attachTo = function (root) {\n return new MDCIconButtonToggle(root);\n };\n MDCIconButtonToggle.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleClick_ = function () {\n return _this.foundation_.handleClick();\n };\n this.listen('click', this.handleClick_);\n };\n MDCIconButtonToggle.prototype.destroy = function () {\n this.unlisten('click', this.handleClick_);\n this.ripple_.destroy();\n _super.prototype.destroy.call(this);\n };\n MDCIconButtonToggle.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n notifyChange: function notifyChange(evtData) {\n return _this.emit(strings.CHANGE_EVENT, evtData);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setAttr: function setAttr(attrName, attrValue) {\n return _this.root_.setAttribute(attrName, attrValue);\n }\n };\n return new foundation_1.MDCIconButtonToggleFoundation(adapter);\n };\n Object.defineProperty(MDCIconButtonToggle.prototype, \"ripple\", {\n get: function get() {\n return this.ripple_;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCIconButtonToggle.prototype, \"on\", {\n get: function get() {\n return this.foundation_.isOn();\n },\n set: function set(isOn) {\n this.foundation_.toggle(isOn);\n },\n enumerable: true,\n configurable: true\n });\n MDCIconButtonToggle.prototype.createRipple_ = function () {\n var ripple = new component_2.MDCRipple(this.root_);\n ripple.unbounded = true;\n return ripple;\n };\n return MDCIconButtonToggle;\n}(component_1.MDCComponent);\nexports.MDCIconButtonToggle = MDCIconButtonToggle;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n ICON_BUTTON_ON: 'mdc-icon-button--on',\n ROOT: 'mdc-icon-button'\n};\nexports.strings = {\n ARIA_PRESSED: 'aria-pressed',\n CHANGE_EVENT: 'MDCIconButtonToggle:change'\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(17));\n__export(__webpack_require__(40));\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active',\n LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating'\n};\nexports.cssClasses = cssClasses;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(116));\n__export(__webpack_require__(41));\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar foundation_1 = __webpack_require__(41);\nvar MDCLinearProgress = /** @class */function (_super) {\n __extends(MDCLinearProgress, _super);\n function MDCLinearProgress() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCLinearProgress.attachTo = function (root) {\n return new MDCLinearProgress(root);\n };\n Object.defineProperty(MDCLinearProgress.prototype, \"determinate\", {\n set: function set(value) {\n this.foundation_.setDeterminate(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLinearProgress.prototype, \"progress\", {\n set: function set(value) {\n this.foundation_.setProgress(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLinearProgress.prototype, \"buffer\", {\n set: function set(value) {\n this.foundation_.setBuffer(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCLinearProgress.prototype, \"reverse\", {\n set: function set(value) {\n this.foundation_.setReverse(value);\n },\n enumerable: true,\n configurable: true\n });\n MDCLinearProgress.prototype.open = function () {\n this.foundation_.open();\n };\n MDCLinearProgress.prototype.close = function () {\n this.foundation_.close();\n };\n MDCLinearProgress.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n getBuffer: function getBuffer() {\n return _this.root_.querySelector(foundation_1.MDCLinearProgressFoundation.strings.BUFFER_SELECTOR);\n },\n getPrimaryBar: function getPrimaryBar() {\n return _this.root_.querySelector(foundation_1.MDCLinearProgressFoundation.strings.PRIMARY_BAR_SELECTOR);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setStyle: function setStyle(el, styleProperty, value) {\n return el.style.setProperty(styleProperty, value);\n }\n };\n return new foundation_1.MDCLinearProgressFoundation(adapter);\n };\n return MDCLinearProgress;\n}(component_1.MDCComponent);\nexports.MDCLinearProgress = MDCLinearProgress;\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n CLOSED_CLASS: 'mdc-linear-progress--closed',\n INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate',\n REVERSED_CLASS: 'mdc-linear-progress--reversed'\n};\nexports.strings = {\n BUFFER_SELECTOR: '.mdc-linear-progress__buffer',\n PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar'\n};\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(13));\n__export(__webpack_require__(5));\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(42));\nexports.util = util;\nvar constants_1 = __webpack_require__(6);\nexports.Corner = constants_1.Corner;\nexports.CornerBit = constants_1.CornerBit;\n__export(__webpack_require__(43));\n__export(__webpack_require__(8));\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = __webpack_require__(6); // for backward compatibility\nexports.Corner = constants_1.Corner;\n__export(__webpack_require__(44));\n__export(__webpack_require__(45));\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(19));\n__export(__webpack_require__(47));\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(123));\n__export(__webpack_require__(48));\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar foundation_2 = __webpack_require__(48);\nvar MDCRadio = /** @class */function (_super) {\n __extends(MDCRadio, _super);\n function MDCRadio() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ripple_ = _this.createRipple_();\n return _this;\n }\n MDCRadio.attachTo = function (root) {\n return new MDCRadio(root);\n };\n Object.defineProperty(MDCRadio.prototype, \"checked\", {\n get: function get() {\n return this.nativeControl_.checked;\n },\n set: function set(checked) {\n this.nativeControl_.checked = checked;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRadio.prototype, \"disabled\", {\n get: function get() {\n return this.nativeControl_.disabled;\n },\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRadio.prototype, \"value\", {\n get: function get() {\n return this.nativeControl_.value;\n },\n set: function set(value) {\n this.nativeControl_.value = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRadio.prototype, \"ripple\", {\n get: function get() {\n return this.ripple_;\n },\n enumerable: true,\n configurable: true\n });\n MDCRadio.prototype.destroy = function () {\n this.ripple_.destroy();\n _super.prototype.destroy.call(this);\n };\n MDCRadio.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setNativeControlDisabled: function setNativeControlDisabled(disabled) {\n return _this.nativeControl_.disabled = disabled;\n }\n };\n return new foundation_2.MDCRadioFoundation(adapter);\n };\n MDCRadio.prototype.createRipple_ = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = __assign({}, component_2.MDCRipple.createAdapter(this), { registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.nativeControl_.addEventListener(evtType, handler);\n }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.nativeControl_.removeEventListener(evtType, handler);\n },\n // Radio buttons technically go \"active\" whenever there is *any* keyboard interaction.\n // This is not the UI we desire.\n isSurfaceActive: function isSurfaceActive() {\n return false;\n }, isUnbounded: function isUnbounded() {\n return true;\n } });\n // tslint:enable:object-literal-sort-keys\n return new component_2.MDCRipple(this.root_, new foundation_1.MDCRippleFoundation(adapter));\n };\n Object.defineProperty(MDCRadio.prototype, \"nativeControl_\", {\n get: function get() {\n var NATIVE_CONTROL_SELECTOR = foundation_2.MDCRadioFoundation.strings.NATIVE_CONTROL_SELECTOR;\n var el = this.root_.querySelector(NATIVE_CONTROL_SELECTOR);\n if (!el) {\n throw new Error(\"Radio component requires a \" + NATIVE_CONTROL_SELECTOR + \" element\");\n }\n return el;\n },\n enumerable: true,\n configurable: true\n });\n return MDCRadio;\n}(component_1.MDCComponent);\nexports.MDCRadio = MDCRadio;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control'\n};\nexports.strings = strings;\nvar cssClasses = {\n DISABLED: 'mdc-radio--disabled',\n ROOT: 'mdc-radio'\n};\nexports.cssClasses = cssClasses;\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(11));\nexports.util = util;\n__export(__webpack_require__(2));\n__export(__webpack_require__(4));\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(127));\n__export(__webpack_require__(50));\n__export(__webpack_require__(130));\n__export(__webpack_require__(131));\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(15);\nvar component_3 = __webpack_require__(17);\nvar menuSurfaceConstants = __importStar(__webpack_require__(6));\nvar component_4 = __webpack_require__(44);\nvar menuConstants = __importStar(__webpack_require__(18));\nvar component_5 = __webpack_require__(19);\nvar component_6 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar constants_1 = __webpack_require__(49);\nvar foundation_2 = __webpack_require__(50);\nvar component_7 = __webpack_require__(51);\nvar component_8 = __webpack_require__(53);\nvar VALIDATION_ATTR_WHITELIST = ['required', 'aria-required'];\nvar MDCSelect = /** @class */function (_super) {\n __extends(MDCSelect, _super);\n function MDCSelect() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSelect.attachTo = function (root) {\n return new MDCSelect(root);\n };\n MDCSelect.prototype.initialize = function (labelFactory, lineRippleFactory, outlineFactory, menuFactory, iconFactory, helperTextFactory) {\n if (labelFactory === void 0) {\n labelFactory = function labelFactory(el) {\n return new component_2.MDCFloatingLabel(el);\n };\n }\n if (lineRippleFactory === void 0) {\n lineRippleFactory = function lineRippleFactory(el) {\n return new component_3.MDCLineRipple(el);\n };\n }\n if (outlineFactory === void 0) {\n outlineFactory = function outlineFactory(el) {\n return new component_5.MDCNotchedOutline(el);\n };\n }\n if (menuFactory === void 0) {\n menuFactory = function menuFactory(el) {\n return new component_4.MDCMenu(el);\n };\n }\n if (iconFactory === void 0) {\n iconFactory = function iconFactory(el) {\n return new component_8.MDCSelectIcon(el);\n };\n }\n if (helperTextFactory === void 0) {\n helperTextFactory = function helperTextFactory(el) {\n return new component_7.MDCSelectHelperText(el);\n };\n }\n this.isMenuOpen_ = false;\n this.nativeControl_ = this.root_.querySelector(constants_1.strings.NATIVE_CONTROL_SELECTOR);\n this.selectedText_ = this.root_.querySelector(constants_1.strings.SELECTED_TEXT_SELECTOR);\n var targetElement = this.nativeControl_ || this.selectedText_;\n if (!targetElement) {\n throw new Error('MDCSelect: Missing required element: Exactly one of the following selectors must be present: ' + (\"'\" + constants_1.strings.NATIVE_CONTROL_SELECTOR + \"' or '\" + constants_1.strings.SELECTED_TEXT_SELECTOR + \"'\"));\n }\n this.targetElement_ = targetElement;\n if (this.targetElement_.hasAttribute(constants_1.strings.ARIA_CONTROLS)) {\n var helperTextElement = document.getElementById(this.targetElement_.getAttribute(constants_1.strings.ARIA_CONTROLS));\n if (helperTextElement) {\n this.helperText_ = helperTextFactory(helperTextElement);\n }\n }\n if (this.selectedText_) {\n this.enhancedSelectSetup_(menuFactory);\n }\n var labelElement = this.root_.querySelector(constants_1.strings.LABEL_SELECTOR);\n this.label_ = labelElement ? labelFactory(labelElement) : null;\n var lineRippleElement = this.root_.querySelector(constants_1.strings.LINE_RIPPLE_SELECTOR);\n this.lineRipple_ = lineRippleElement ? lineRippleFactory(lineRippleElement) : null;\n var outlineElement = this.root_.querySelector(constants_1.strings.OUTLINE_SELECTOR);\n this.outline_ = outlineElement ? outlineFactory(outlineElement) : null;\n var leadingIcon = this.root_.querySelector(constants_1.strings.LEADING_ICON_SELECTOR);\n if (leadingIcon) {\n this.root_.classList.add(constants_1.cssClasses.WITH_LEADING_ICON);\n this.leadingIcon_ = iconFactory(leadingIcon);\n if (this.menuElement_) {\n this.menuElement_.classList.add(constants_1.cssClasses.WITH_LEADING_ICON);\n }\n }\n if (!this.root_.classList.contains(constants_1.cssClasses.OUTLINED)) {\n this.ripple = this.createRipple_();\n }\n // The required state needs to be sync'd before the mutation observer is added.\n this.initialSyncRequiredState_();\n this.addMutationObserverForRequired_();\n };\n /**\n * Initializes the select's event listeners and internal state based\n * on the environment's state.\n */\n MDCSelect.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleChange_ = function () {\n return _this.foundation_.handleChange( /* didChange */true);\n };\n this.handleFocus_ = function () {\n return _this.foundation_.handleFocus();\n };\n this.handleBlur_ = function () {\n return _this.foundation_.handleBlur();\n };\n this.handleClick_ = function (evt) {\n if (_this.selectedText_) {\n _this.selectedText_.focus();\n }\n _this.foundation_.handleClick(_this.getNormalizedXCoordinate_(evt));\n };\n this.handleKeydown_ = function (evt) {\n return _this.foundation_.handleKeydown(evt);\n };\n this.handleMenuSelected_ = function (evtData) {\n return _this.selectedIndex = evtData.detail.index;\n };\n this.handleMenuOpened_ = function () {\n if (_this.menu_.items.length === 0) {\n return;\n }\n // Menu should open to the last selected element, should open to first menu item otherwise.\n var focusItemIndex = _this.selectedIndex >= 0 ? _this.selectedIndex : 0;\n var focusItemEl = _this.menu_.items[focusItemIndex];\n focusItemEl.focus();\n };\n this.handleMenuClosed_ = function () {\n // isMenuOpen_ is used to track the state of the menu opening or closing since the menu.open function\n // will return false if the menu is still closing and this method listens to the closed event which\n // occurs after the menu is already closed.\n _this.isMenuOpen_ = false;\n _this.selectedText_.removeAttribute('aria-expanded');\n if (document.activeElement !== _this.selectedText_) {\n _this.foundation_.handleBlur();\n }\n };\n this.targetElement_.addEventListener('change', this.handleChange_);\n this.targetElement_.addEventListener('focus', this.handleFocus_);\n this.targetElement_.addEventListener('blur', this.handleBlur_);\n this.targetElement_.addEventListener('click', this.handleClick_);\n if (this.menuElement_) {\n this.selectedText_.addEventListener('keydown', this.handleKeydown_);\n this.menu_.listen(menuSurfaceConstants.strings.CLOSED_EVENT, this.handleMenuClosed_);\n this.menu_.listen(menuSurfaceConstants.strings.OPENED_EVENT, this.handleMenuOpened_);\n this.menu_.listen(menuConstants.strings.SELECTED_EVENT, this.handleMenuSelected_);\n if (this.hiddenInput_ && this.hiddenInput_.value) {\n // If the hidden input already has a value, use it to restore the select's value.\n // This can happen e.g. if the user goes back or (in some browsers) refreshes the page.\n var enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();\n enhancedAdapterMethods.setValue(this.hiddenInput_.value);\n } else if (this.menuElement_.querySelector(constants_1.strings.SELECTED_ITEM_SELECTOR)) {\n // If an element is selected, the select should set the initial selected text.\n var enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();\n enhancedAdapterMethods.setValue(enhancedAdapterMethods.getValue());\n }\n }\n // Initially sync floating label\n this.foundation_.handleChange( /* didChange */false);\n if (this.root_.classList.contains(constants_1.cssClasses.DISABLED) || this.nativeControl_ && this.nativeControl_.disabled) {\n this.disabled = true;\n }\n };\n MDCSelect.prototype.destroy = function () {\n this.targetElement_.removeEventListener('change', this.handleChange_);\n this.targetElement_.removeEventListener('focus', this.handleFocus_);\n this.targetElement_.removeEventListener('blur', this.handleBlur_);\n this.targetElement_.removeEventListener('keydown', this.handleKeydown_);\n this.targetElement_.removeEventListener('click', this.handleClick_);\n if (this.menu_) {\n this.menu_.unlisten(menuSurfaceConstants.strings.CLOSED_EVENT, this.handleMenuClosed_);\n this.menu_.unlisten(menuSurfaceConstants.strings.OPENED_EVENT, this.handleMenuOpened_);\n this.menu_.unlisten(menuConstants.strings.SELECTED_EVENT, this.handleMenuSelected_);\n this.menu_.destroy();\n }\n if (this.ripple) {\n this.ripple.destroy();\n }\n if (this.outline_) {\n this.outline_.destroy();\n }\n if (this.leadingIcon_) {\n this.leadingIcon_.destroy();\n }\n if (this.helperText_) {\n this.helperText_.destroy();\n }\n if (this.validationObserver_) {\n this.validationObserver_.disconnect();\n }\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(MDCSelect.prototype, \"value\", {\n get: function get() {\n return this.foundation_.getValue();\n },\n set: function set(value) {\n this.foundation_.setValue(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"selectedIndex\", {\n get: function get() {\n var selectedIndex = -1;\n if (this.menuElement_ && this.menu_) {\n var selectedEl = this.menuElement_.querySelector(constants_1.strings.SELECTED_ITEM_SELECTOR);\n selectedIndex = this.menu_.items.indexOf(selectedEl);\n } else if (this.nativeControl_) {\n selectedIndex = this.nativeControl_.selectedIndex;\n }\n return selectedIndex;\n },\n set: function set(selectedIndex) {\n this.foundation_.setSelectedIndex(selectedIndex);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"disabled\", {\n get: function get() {\n return this.root_.classList.contains(constants_1.cssClasses.DISABLED) || (this.nativeControl_ ? this.nativeControl_.disabled : false);\n },\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"leadingIconAriaLabel\", {\n set: function set(label) {\n this.foundation_.setLeadingIconAriaLabel(label);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"leadingIconContent\", {\n /**\n * Sets the text content of the leading icon.\n */\n set: function set(content) {\n this.foundation_.setLeadingIconContent(content);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"helperTextContent\", {\n /**\n * Sets the text content of the helper text.\n */\n set: function set(content) {\n this.foundation_.setHelperTextContent(content);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"valid\", {\n /**\n * Checks if the select is in a valid state.\n */\n get: function get() {\n return this.foundation_.isValid();\n },\n /**\n * Sets the current invalid state of the select.\n */\n set: function set(isValid) {\n this.foundation_.setValid(isValid);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSelect.prototype, \"required\", {\n /**\n * Returns whether the select is required.\n */\n get: function get() {\n if (this.nativeControl_) {\n return this.nativeControl_.required;\n } else {\n return this.selectedText_.getAttribute('aria-required') === 'true';\n }\n },\n /**\n * Sets the control to the required state.\n */\n set: function set(isRequired) {\n if (this.nativeControl_) {\n this.nativeControl_.required = isRequired;\n } else {\n if (isRequired) {\n this.selectedText_.setAttribute('aria-required', isRequired.toString());\n } else {\n this.selectedText_.removeAttribute('aria-required');\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Recomputes the outline SVG path for the outline element.\n */\n MDCSelect.prototype.layout = function () {\n this.foundation_.layout();\n };\n MDCSelect.prototype.getDefaultFoundation = function () {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = __assign({}, this.nativeControl_ ? this.getNativeSelectAdapterMethods_() : this.getEnhancedSelectAdapterMethods_(), this.getCommonAdapterMethods_(), this.getOutlineAdapterMethods_(), this.getLabelAdapterMethods_());\n return new foundation_2.MDCSelectFoundation(adapter, this.getFoundationMap_());\n };\n /**\n * Handles setup for the enhanced menu.\n */\n MDCSelect.prototype.enhancedSelectSetup_ = function (menuFactory) {\n var isDisabled = this.root_.classList.contains(constants_1.cssClasses.DISABLED);\n this.selectedText_.setAttribute('tabindex', isDisabled ? '-1' : '0');\n this.hiddenInput_ = this.root_.querySelector(constants_1.strings.HIDDEN_INPUT_SELECTOR);\n this.menuElement_ = this.root_.querySelector(constants_1.strings.MENU_SELECTOR);\n this.menu_ = menuFactory(this.menuElement_);\n this.menu_.hoistMenuToBody();\n this.menu_.setAnchorElement(this.root_);\n this.menu_.setAnchorCorner(menuSurfaceConstants.Corner.BOTTOM_START);\n this.menu_.wrapFocus = false;\n };\n MDCSelect.prototype.createRipple_ = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = __assign({}, component_6.MDCRipple.createAdapter(this), { registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.targetElement_.addEventListener(evtType, handler);\n }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.targetElement_.removeEventListener(evtType, handler);\n } });\n // tslint:enable:object-literal-sort-keys\n return new component_6.MDCRipple(this.root_, new foundation_1.MDCRippleFoundation(adapter));\n };\n MDCSelect.prototype.getNativeSelectAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getValue: function getValue() {\n return _this.nativeControl_.value;\n },\n setValue: function setValue(value) {\n _this.nativeControl_.value = value;\n },\n openMenu: function openMenu() {\n return undefined;\n },\n closeMenu: function closeMenu() {\n return undefined;\n },\n isMenuOpen: function isMenuOpen() {\n return false;\n },\n setSelectedIndex: function setSelectedIndex(index) {\n _this.nativeControl_.selectedIndex = index;\n },\n setDisabled: function setDisabled(isDisabled) {\n _this.nativeControl_.disabled = isDisabled;\n },\n setValid: function setValid(isValid) {\n if (isValid) {\n _this.root_.classList.remove(constants_1.cssClasses.INVALID);\n } else {\n _this.root_.classList.add(constants_1.cssClasses.INVALID);\n }\n },\n checkValidity: function checkValidity() {\n return _this.nativeControl_.checkValidity();\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCSelect.prototype.getEnhancedSelectAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getValue: function getValue() {\n var listItem = _this.menuElement_.querySelector(constants_1.strings.SELECTED_ITEM_SELECTOR);\n if (listItem && listItem.hasAttribute(constants_1.strings.ENHANCED_VALUE_ATTR)) {\n return listItem.getAttribute(constants_1.strings.ENHANCED_VALUE_ATTR) || '';\n }\n return '';\n },\n setValue: function setValue(value) {\n var element = _this.menuElement_.querySelector(\"[\" + constants_1.strings.ENHANCED_VALUE_ATTR + \"=\\\"\" + value + \"\\\"]\");\n _this.setEnhancedSelectedIndex_(element ? _this.menu_.items.indexOf(element) : -1);\n },\n openMenu: function openMenu() {\n if (_this.menu_ && !_this.menu_.open) {\n _this.menu_.open = true;\n _this.isMenuOpen_ = true;\n _this.selectedText_.setAttribute('aria-expanded', 'true');\n }\n },\n closeMenu: function closeMenu() {\n if (_this.menu_ && _this.menu_.open) {\n _this.menu_.open = false;\n }\n },\n isMenuOpen: function isMenuOpen() {\n return Boolean(_this.menu_) && _this.isMenuOpen_;\n },\n setSelectedIndex: function setSelectedIndex(index) {\n return _this.setEnhancedSelectedIndex_(index);\n },\n setDisabled: function setDisabled(isDisabled) {\n _this.selectedText_.setAttribute('tabindex', isDisabled ? '-1' : '0');\n _this.selectedText_.setAttribute('aria-disabled', isDisabled.toString());\n if (_this.hiddenInput_) {\n _this.hiddenInput_.disabled = isDisabled;\n }\n },\n checkValidity: function checkValidity() {\n var classList = _this.root_.classList;\n if (classList.contains(constants_1.cssClasses.REQUIRED) && !classList.contains(constants_1.cssClasses.DISABLED)) {\n // See notes for required attribute under https://www.w3.org/TR/html52/sec-forms.html#the-select-element\n // TL;DR: Invalid if no index is selected, or if the first index is selected and has an empty value.\n return _this.selectedIndex !== -1 && (_this.selectedIndex !== 0 || Boolean(_this.value));\n } else {\n return true;\n }\n },\n setValid: function setValid(isValid) {\n _this.selectedText_.setAttribute('aria-invalid', (!isValid).toString());\n if (isValid) {\n _this.root_.classList.remove(constants_1.cssClasses.INVALID);\n } else {\n _this.root_.classList.add(constants_1.cssClasses.INVALID);\n }\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCSelect.prototype.getCommonAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n setRippleCenter: function setRippleCenter(normalizedX) {\n return _this.lineRipple_ && _this.lineRipple_.setRippleCenter(normalizedX);\n },\n activateBottomLine: function activateBottomLine() {\n return _this.lineRipple_ && _this.lineRipple_.activate();\n },\n deactivateBottomLine: function deactivateBottomLine() {\n return _this.lineRipple_ && _this.lineRipple_.deactivate();\n },\n notifyChange: function notifyChange(value) {\n var index = _this.selectedIndex;\n _this.emit(constants_1.strings.CHANGE_EVENT, { value: value, index: index }, true /* shouldBubble */);\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCSelect.prototype.getOutlineAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasOutline: function hasOutline() {\n return Boolean(_this.outline_);\n },\n notchOutline: function notchOutline(labelWidth) {\n return _this.outline_ && _this.outline_.notch(labelWidth);\n },\n closeOutline: function closeOutline() {\n return _this.outline_ && _this.outline_.closeNotch();\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCSelect.prototype.getLabelAdapterMethods_ = function () {\n var _this = this;\n return {\n floatLabel: function floatLabel(shouldFloat) {\n return _this.label_ && _this.label_.float(shouldFloat);\n },\n getLabelWidth: function getLabelWidth() {\n return _this.label_ ? _this.label_.getWidth() : 0;\n }\n };\n };\n /**\n * Calculates where the line ripple should start based on the x coordinate within the component.\n */\n MDCSelect.prototype.getNormalizedXCoordinate_ = function (evt) {\n var targetClientRect = evt.target.getBoundingClientRect();\n var xCoordinate = this.isTouchEvent_(evt) ? evt.touches[0].clientX : evt.clientX;\n return xCoordinate - targetClientRect.left;\n };\n MDCSelect.prototype.isTouchEvent_ = function (evt) {\n return Boolean(evt.touches);\n };\n /**\n * Returns a map of all subcomponents to subfoundations.\n */\n MDCSelect.prototype.getFoundationMap_ = function () {\n return {\n helperText: this.helperText_ ? this.helperText_.foundation : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined\n };\n };\n MDCSelect.prototype.setEnhancedSelectedIndex_ = function (index) {\n var selectedItem = this.menu_.items[index];\n this.selectedText_.textContent = selectedItem ? selectedItem.textContent.trim() : '';\n var previouslySelected = this.menuElement_.querySelector(constants_1.strings.SELECTED_ITEM_SELECTOR);\n if (previouslySelected) {\n previouslySelected.classList.remove(constants_1.cssClasses.SELECTED_ITEM_CLASS);\n previouslySelected.removeAttribute(constants_1.strings.ARIA_SELECTED_ATTR);\n }\n if (selectedItem) {\n selectedItem.classList.add(constants_1.cssClasses.SELECTED_ITEM_CLASS);\n selectedItem.setAttribute(constants_1.strings.ARIA_SELECTED_ATTR, 'true');\n }\n // Synchronize hidden input's value with data-value attribute of selected item.\n // This code path is also followed when setting value directly, so this covers all cases.\n if (this.hiddenInput_) {\n this.hiddenInput_.value = selectedItem ? selectedItem.getAttribute(constants_1.strings.ENHANCED_VALUE_ATTR) || '' : '';\n }\n this.layout();\n };\n MDCSelect.prototype.initialSyncRequiredState_ = function () {\n var isRequired = this.targetElement_.required || this.targetElement_.getAttribute('aria-required') === 'true' || this.root_.classList.contains(constants_1.cssClasses.REQUIRED);\n if (isRequired) {\n if (this.nativeControl_) {\n this.nativeControl_.required = true;\n } else {\n this.selectedText_.setAttribute('aria-required', 'true');\n }\n this.root_.classList.add(constants_1.cssClasses.REQUIRED);\n }\n };\n MDCSelect.prototype.addMutationObserverForRequired_ = function () {\n var _this = this;\n var observerHandler = function observerHandler(attributesList) {\n attributesList.some(function (attributeName) {\n if (VALIDATION_ATTR_WHITELIST.indexOf(attributeName) === -1) {\n return false;\n }\n if (_this.selectedText_) {\n if (_this.selectedText_.getAttribute('aria-required') === 'true') {\n _this.root_.classList.add(constants_1.cssClasses.REQUIRED);\n } else {\n _this.root_.classList.remove(constants_1.cssClasses.REQUIRED);\n }\n } else {\n if (_this.nativeControl_.required) {\n _this.root_.classList.add(constants_1.cssClasses.REQUIRED);\n } else {\n _this.root_.classList.remove(constants_1.cssClasses.REQUIRED);\n }\n }\n return true;\n });\n };\n var getAttributesList = function getAttributesList(mutationsList) {\n return mutationsList.map(function (mutation) {\n return mutation.attributeName;\n }).filter(function (attributeName) {\n return attributeName;\n });\n };\n var observer = new MutationObserver(function (mutationsList) {\n return observerHandler(getAttributesList(mutationsList));\n });\n observer.observe(this.targetElement_, { attributes: true });\n this.validationObserver_ = observer;\n };\n return MDCSelect;\n}(component_1.MDCComponent);\nexports.MDCSelect = MDCSelect;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n ARIA_HIDDEN: 'aria-hidden',\n ROLE: 'role'\n};\nexports.strings = strings;\nvar cssClasses = {\n HELPER_TEXT_PERSISTENT: 'mdc-select-helper-text--persistent',\n HELPER_TEXT_VALIDATION_MSG: 'mdc-select-helper-text--validation-msg'\n};\nexports.cssClasses = cssClasses;\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n ICON_EVENT: 'MDCSelect:icon',\n ICON_ROLE: 'button'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(51));\n__export(__webpack_require__(52));\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(53));\n__export(__webpack_require__(54));\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(133));\n__export(__webpack_require__(56));\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar constants_1 = __webpack_require__(55);\nvar foundation_1 = __webpack_require__(56);\nvar MDCSlider = /** @class */function (_super) {\n __extends(MDCSlider, _super);\n function MDCSlider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSlider.attachTo = function (root) {\n return new MDCSlider(root);\n };\n Object.defineProperty(MDCSlider.prototype, \"value\", {\n get: function get() {\n return this.foundation_.getValue();\n },\n set: function set(value) {\n this.foundation_.setValue(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSlider.prototype, \"min\", {\n get: function get() {\n return this.foundation_.getMin();\n },\n set: function set(min) {\n this.foundation_.setMin(min);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSlider.prototype, \"max\", {\n get: function get() {\n return this.foundation_.getMax();\n },\n set: function set(max) {\n this.foundation_.setMax(max);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSlider.prototype, \"step\", {\n get: function get() {\n return this.foundation_.getStep();\n },\n set: function set(step) {\n this.foundation_.setStep(step);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSlider.prototype, \"disabled\", {\n get: function get() {\n return this.foundation_.isDisabled();\n },\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n MDCSlider.prototype.initialize = function () {\n this.thumbContainer_ = this.root_.querySelector(constants_1.strings.THUMB_CONTAINER_SELECTOR);\n this.track_ = this.root_.querySelector(constants_1.strings.TRACK_SELECTOR);\n this.pinValueMarker_ = this.root_.querySelector(constants_1.strings.PIN_VALUE_MARKER_SELECTOR);\n this.trackMarkerContainer_ = this.root_.querySelector(constants_1.strings.TRACK_MARKER_CONTAINER_SELECTOR);\n };\n MDCSlider.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n getAttribute: function getAttribute(name) {\n return _this.root_.getAttribute(name);\n },\n setAttribute: function setAttribute(name, value) {\n return _this.root_.setAttribute(name, value);\n },\n removeAttribute: function removeAttribute(name) {\n return _this.root_.removeAttribute(name);\n },\n computeBoundingRect: function computeBoundingRect() {\n return _this.root_.getBoundingClientRect();\n },\n getTabIndex: function getTabIndex() {\n return _this.root_.tabIndex;\n },\n registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n },\n registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler(evtType, handler) {\n _this.thumbContainer_.addEventListener(evtType, handler);\n },\n deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler(evtType, handler) {\n _this.thumbContainer_.removeEventListener(evtType, handler);\n },\n registerBodyInteractionHandler: function registerBodyInteractionHandler(evtType, handler) {\n return document.body.addEventListener(evtType, handler);\n },\n deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler(evtType, handler) {\n return document.body.removeEventListener(evtType, handler);\n },\n registerResizeHandler: function registerResizeHandler(handler) {\n return window.addEventListener('resize', handler);\n },\n deregisterResizeHandler: function deregisterResizeHandler(handler) {\n return window.removeEventListener('resize', handler);\n },\n notifyInput: function notifyInput() {\n return _this.emit(constants_1.strings.INPUT_EVENT, _this);\n },\n notifyChange: function notifyChange() {\n return _this.emit(constants_1.strings.CHANGE_EVENT, _this);\n },\n setThumbContainerStyleProperty: function setThumbContainerStyleProperty(propertyName, value) {\n _this.thumbContainer_.style.setProperty(propertyName, value);\n },\n setTrackStyleProperty: function setTrackStyleProperty(propertyName, value) {\n return _this.track_.style.setProperty(propertyName, value);\n },\n setMarkerValue: function setMarkerValue(value) {\n return _this.pinValueMarker_.innerText = value.toLocaleString();\n },\n appendTrackMarkers: function appendTrackMarkers(numMarkers) {\n var frag = document.createDocumentFragment();\n for (var i = 0; i < numMarkers; i++) {\n var marker = document.createElement('div');\n marker.classList.add('mdc-slider__track-marker');\n frag.appendChild(marker);\n }\n _this.trackMarkerContainer_.appendChild(frag);\n },\n removeTrackMarkers: function removeTrackMarkers() {\n while (_this.trackMarkerContainer_.firstChild) {\n _this.trackMarkerContainer_.removeChild(_this.trackMarkerContainer_.firstChild);\n }\n },\n setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty(propertyName, value) {\n // We remove and append new nodes, thus, the last track marker must be dynamically found.\n var lastTrackMarker = _this.root_.querySelector(constants_1.strings.LAST_TRACK_MARKER_SELECTOR);\n lastTrackMarker.style.setProperty(propertyName, value);\n },\n isRTL: function isRTL() {\n return getComputedStyle(_this.root_).direction === 'rtl';\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCSliderFoundation(adapter);\n };\n MDCSlider.prototype.initialSyncWithDOM = function () {\n var origValueNow = this.parseFloat_(this.root_.getAttribute(constants_1.strings.ARIA_VALUENOW), this.value);\n var min = this.parseFloat_(this.root_.getAttribute(constants_1.strings.ARIA_VALUEMIN), this.min);\n var max = this.parseFloat_(this.root_.getAttribute(constants_1.strings.ARIA_VALUEMAX), this.max);\n // min and max need to be set in the right order to avoid throwing an error\n // when the new min is greater than the default max.\n if (min >= this.max) {\n this.max = max;\n this.min = min;\n } else {\n this.min = min;\n this.max = max;\n }\n this.step = this.parseFloat_(this.root_.getAttribute(constants_1.strings.STEP_DATA_ATTR), this.step);\n this.value = origValueNow;\n this.disabled = this.root_.hasAttribute(constants_1.strings.ARIA_DISABLED) && this.root_.getAttribute(constants_1.strings.ARIA_DISABLED) !== 'false';\n this.foundation_.setupTrackMarker();\n };\n MDCSlider.prototype.layout = function () {\n this.foundation_.layout();\n };\n MDCSlider.prototype.stepUp = function (amount) {\n if (amount === void 0) {\n amount = this.step || 1;\n }\n this.value += amount;\n };\n MDCSlider.prototype.stepDown = function (amount) {\n if (amount === void 0) {\n amount = this.step || 1;\n }\n this.value -= amount;\n };\n MDCSlider.prototype.parseFloat_ = function (str, defaultValue) {\n var num = parseFloat(str); // tslint:disable-line:ban\n var isNumeric = typeof num === 'number' && isFinite(num);\n return isNumeric ? num : defaultValue;\n };\n return MDCSlider;\n}(component_1.MDCComponent);\nexports.MDCSlider = MDCSlider;\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(57));\nexports.util = util;\n__export(__webpack_require__(135));\n__export(__webpack_require__(58));\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar constants_1 = __webpack_require__(20);\nvar foundation_1 = __webpack_require__(58);\nvar util = __importStar(__webpack_require__(57));\nvar SURFACE_SELECTOR = constants_1.strings.SURFACE_SELECTOR,\n LABEL_SELECTOR = constants_1.strings.LABEL_SELECTOR,\n ACTION_SELECTOR = constants_1.strings.ACTION_SELECTOR,\n DISMISS_SELECTOR = constants_1.strings.DISMISS_SELECTOR,\n OPENING_EVENT = constants_1.strings.OPENING_EVENT,\n OPENED_EVENT = constants_1.strings.OPENED_EVENT,\n CLOSING_EVENT = constants_1.strings.CLOSING_EVENT,\n CLOSED_EVENT = constants_1.strings.CLOSED_EVENT;\nvar MDCSnackbar = /** @class */function (_super) {\n __extends(MDCSnackbar, _super);\n function MDCSnackbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCSnackbar.attachTo = function (root) {\n return new MDCSnackbar(root);\n };\n MDCSnackbar.prototype.initialize = function (announcerFactory) {\n if (announcerFactory === void 0) {\n announcerFactory = function announcerFactory() {\n return util.announce;\n };\n }\n this.announce_ = announcerFactory();\n };\n MDCSnackbar.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.surfaceEl_ = this.root_.querySelector(SURFACE_SELECTOR);\n this.labelEl_ = this.root_.querySelector(LABEL_SELECTOR);\n this.actionEl_ = this.root_.querySelector(ACTION_SELECTOR);\n this.handleKeyDown_ = function (evt) {\n return _this.foundation_.handleKeyDown(evt);\n };\n this.handleSurfaceClick_ = function (evt) {\n var target = evt.target;\n if (_this.isActionButton_(target)) {\n _this.foundation_.handleActionButtonClick(evt);\n } else if (_this.isActionIcon_(target)) {\n _this.foundation_.handleActionIconClick(evt);\n }\n };\n this.registerKeyDownHandler_(this.handleKeyDown_);\n this.registerSurfaceClickHandler_(this.handleSurfaceClick_);\n };\n MDCSnackbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.deregisterKeyDownHandler_(this.handleKeyDown_);\n this.deregisterSurfaceClickHandler_(this.handleSurfaceClick_);\n };\n MDCSnackbar.prototype.open = function () {\n this.foundation_.open();\n };\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n MDCSnackbar.prototype.close = function (reason) {\n if (reason === void 0) {\n reason = '';\n }\n this.foundation_.close(reason);\n };\n MDCSnackbar.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n announce: function announce() {\n return _this.announce_(_this.labelEl_);\n },\n notifyClosed: function notifyClosed(reason) {\n return _this.emit(CLOSED_EVENT, reason ? { reason: reason } : {});\n },\n notifyClosing: function notifyClosing(reason) {\n return _this.emit(CLOSING_EVENT, reason ? { reason: reason } : {});\n },\n notifyOpened: function notifyOpened() {\n return _this.emit(OPENED_EVENT, {});\n },\n notifyOpening: function notifyOpening() {\n return _this.emit(OPENING_EVENT, {});\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n }\n };\n return new foundation_1.MDCSnackbarFoundation(adapter);\n };\n Object.defineProperty(MDCSnackbar.prototype, \"timeoutMs\", {\n get: function get() {\n return this.foundation_.getTimeoutMs();\n },\n set: function set(timeoutMs) {\n this.foundation_.setTimeoutMs(timeoutMs);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"closeOnEscape\", {\n get: function get() {\n return this.foundation_.getCloseOnEscape();\n },\n set: function set(closeOnEscape) {\n this.foundation_.setCloseOnEscape(closeOnEscape);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"isOpen\", {\n get: function get() {\n return this.foundation_.isOpen();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"labelText\", {\n get: function get() {\n // This property only returns null if the node is a document, DOCTYPE, or notation.\n // On Element nodes, it always returns a string.\n return this.labelEl_.textContent;\n },\n set: function set(labelText) {\n this.labelEl_.textContent = labelText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"actionButtonText\", {\n get: function get() {\n return this.actionEl_.textContent;\n },\n set: function set(actionButtonText) {\n this.actionEl_.textContent = actionButtonText;\n },\n enumerable: true,\n configurable: true\n });\n MDCSnackbar.prototype.registerKeyDownHandler_ = function (handler) {\n this.listen('keydown', handler);\n };\n MDCSnackbar.prototype.deregisterKeyDownHandler_ = function (handler) {\n this.unlisten('keydown', handler);\n };\n MDCSnackbar.prototype.registerSurfaceClickHandler_ = function (handler) {\n this.surfaceEl_.addEventListener('click', handler);\n };\n MDCSnackbar.prototype.deregisterSurfaceClickHandler_ = function (handler) {\n this.surfaceEl_.removeEventListener('click', handler);\n };\n MDCSnackbar.prototype.isActionButton_ = function (target) {\n return Boolean(ponyfill_1.closest(target, ACTION_SELECTOR));\n };\n MDCSnackbar.prototype.isActionIcon_ = function (target) {\n return Boolean(ponyfill_1.closest(target, DISMISS_SELECTOR));\n };\n return MDCSnackbar;\n}(component_1.MDCComponent);\nexports.MDCSnackbar = MDCSnackbar;\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(137));\n__export(__webpack_require__(59));\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill_1 = __webpack_require__(3);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar foundation_2 = __webpack_require__(59);\nvar MDCSwitch = /** @class */function (_super) {\n __extends(MDCSwitch, _super);\n function MDCSwitch() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ripple_ = _this.createRipple_();\n return _this;\n }\n MDCSwitch.attachTo = function (root) {\n return new MDCSwitch(root);\n };\n MDCSwitch.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.ripple_.destroy();\n this.nativeControl_.removeEventListener('change', this.changeHandler_);\n };\n MDCSwitch.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.changeHandler_ = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n return (_a = _this.foundation_).handleChange.apply(_a, __spread(args));\n };\n this.nativeControl_.addEventListener('change', this.changeHandler_);\n // Sometimes the checked state of the input element is saved in the history.\n // The switch styling should match the checked state of the input element.\n // Do an initial sync between the native control and the foundation.\n this.checked = this.checked;\n };\n MDCSwitch.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setNativeControlChecked: function setNativeControlChecked(checked) {\n return _this.nativeControl_.checked = checked;\n },\n setNativeControlDisabled: function setNativeControlDisabled(disabled) {\n return _this.nativeControl_.disabled = disabled;\n }\n };\n return new foundation_2.MDCSwitchFoundation(adapter);\n };\n Object.defineProperty(MDCSwitch.prototype, \"ripple\", {\n get: function get() {\n return this.ripple_;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSwitch.prototype, \"checked\", {\n get: function get() {\n return this.nativeControl_.checked;\n },\n set: function set(checked) {\n this.foundation_.setChecked(checked);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSwitch.prototype, \"disabled\", {\n get: function get() {\n return this.nativeControl_.disabled;\n },\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n MDCSwitch.prototype.createRipple_ = function () {\n var _this = this;\n var RIPPLE_SURFACE_SELECTOR = foundation_2.MDCSwitchFoundation.strings.RIPPLE_SURFACE_SELECTOR;\n var rippleSurface = this.root_.querySelector(RIPPLE_SURFACE_SELECTOR);\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n var adapter = __assign({}, component_2.MDCRipple.createAdapter(this), { addClass: function addClass(className) {\n return rippleSurface.classList.add(className);\n }, computeBoundingRect: function computeBoundingRect() {\n return rippleSurface.getBoundingClientRect();\n }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n _this.nativeControl_.removeEventListener(evtType, handler);\n }, isSurfaceActive: function isSurfaceActive() {\n return ponyfill_1.matches(_this.nativeControl_, ':active');\n }, isUnbounded: function isUnbounded() {\n return true;\n }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n _this.nativeControl_.addEventListener(evtType, handler);\n }, removeClass: function removeClass(className) {\n return rippleSurface.classList.remove(className);\n }, updateCssVariable: function updateCssVariable(varName, value) {\n rippleSurface.style.setProperty(varName, value);\n } });\n return new component_2.MDCRipple(this.root_, new foundation_1.MDCRippleFoundation(adapter));\n };\n Object.defineProperty(MDCSwitch.prototype, \"nativeControl_\", {\n get: function get() {\n var NATIVE_CONTROL_SELECTOR = foundation_2.MDCSwitchFoundation.strings.NATIVE_CONTROL_SELECTOR;\n return this.root_.querySelector(NATIVE_CONTROL_SELECTOR);\n },\n enumerable: true,\n configurable: true\n });\n return MDCSwitch;\n}(component_1.MDCComponent);\nexports.MDCSwitch = MDCSwitch;\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** CSS classes used by the switch. */\nvar cssClasses = {\n /** Class used for a switch that is in the \"checked\" (on) position. */\n CHECKED: 'mdc-switch--checked',\n /** Class used for a switch that is disabled. */\n DISABLED: 'mdc-switch--disabled'\n};\nexports.cssClasses = cssClasses;\n/** String constants used by the switch. */\nvar strings = {\n /** A CSS selector used to locate the native HTML control for the switch. */\n NATIVE_CONTROL_SELECTOR: '.mdc-switch__native-control',\n /** A CSS selector used to locate the ripple surface element for the switch. */\n RIPPLE_SURFACE_SELECTOR: '.mdc-switch__thumb-underlay'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(140));\n__export(__webpack_require__(68));\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(60);\nvar component_3 = __webpack_require__(64);\nvar foundation_1 = __webpack_require__(22);\nvar foundation_2 = __webpack_require__(68);\nvar strings = foundation_2.MDCTabBarFoundation.strings;\nvar tabIdCounter = 0;\nvar MDCTabBar = /** @class */function (_super) {\n __extends(MDCTabBar, _super);\n function MDCTabBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabBar.attachTo = function (root) {\n return new MDCTabBar(root);\n };\n Object.defineProperty(MDCTabBar.prototype, \"focusOnActivate\", {\n set: function set(focusOnActivate) {\n this.tabList_.forEach(function (tab) {\n return tab.focusOnActivate = focusOnActivate;\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTabBar.prototype, \"useAutomaticActivation\", {\n set: function set(useAutomaticActivation) {\n this.foundation_.setUseAutomaticActivation(useAutomaticActivation);\n },\n enumerable: true,\n configurable: true\n });\n MDCTabBar.prototype.initialize = function (tabFactory, tabScrollerFactory) {\n if (tabFactory === void 0) {\n tabFactory = function tabFactory(el) {\n return new component_3.MDCTab(el);\n };\n }\n if (tabScrollerFactory === void 0) {\n tabScrollerFactory = function tabScrollerFactory(el) {\n return new component_2.MDCTabScroller(el);\n };\n }\n this.tabList_ = this.instantiateTabs_(tabFactory);\n this.tabScroller_ = this.instantiateTabScroller_(tabScrollerFactory);\n };\n MDCTabBar.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleTabInteraction_ = function (evt) {\n return _this.foundation_.handleTabInteraction(evt);\n };\n this.handleKeyDown_ = function (evt) {\n return _this.foundation_.handleKeyDown(evt);\n };\n this.listen(foundation_1.MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction_);\n this.listen('keydown', this.handleKeyDown_);\n for (var i = 0; i < this.tabList_.length; i++) {\n if (this.tabList_[i].active) {\n this.scrollIntoView(i);\n break;\n }\n }\n };\n MDCTabBar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unlisten(foundation_1.MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction_);\n this.unlisten('keydown', this.handleKeyDown_);\n this.tabList_.forEach(function (tab) {\n return tab.destroy();\n });\n if (this.tabScroller_) {\n this.tabScroller_.destroy();\n }\n };\n MDCTabBar.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n scrollTo: function scrollTo(scrollX) {\n return _this.tabScroller_.scrollTo(scrollX);\n },\n incrementScroll: function incrementScroll(scrollXIncrement) {\n return _this.tabScroller_.incrementScroll(scrollXIncrement);\n },\n getScrollPosition: function getScrollPosition() {\n return _this.tabScroller_.getScrollPosition();\n },\n getScrollContentWidth: function getScrollContentWidth() {\n return _this.tabScroller_.getScrollContentWidth();\n },\n getOffsetWidth: function getOffsetWidth() {\n return _this.root_.offsetWidth;\n },\n isRTL: function isRTL() {\n return window.getComputedStyle(_this.root_).getPropertyValue('direction') === 'rtl';\n },\n setActiveTab: function setActiveTab(index) {\n return _this.foundation_.activateTab(index);\n },\n activateTabAtIndex: function activateTabAtIndex(index, clientRect) {\n return _this.tabList_[index].activate(clientRect);\n },\n deactivateTabAtIndex: function deactivateTabAtIndex(index) {\n return _this.tabList_[index].deactivate();\n },\n focusTabAtIndex: function focusTabAtIndex(index) {\n return _this.tabList_[index].focus();\n },\n getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex(index) {\n return _this.tabList_[index].computeIndicatorClientRect();\n },\n getTabDimensionsAtIndex: function getTabDimensionsAtIndex(index) {\n return _this.tabList_[index].computeDimensions();\n },\n getPreviousActiveTabIndex: function getPreviousActiveTabIndex() {\n for (var i = 0; i < _this.tabList_.length; i++) {\n if (_this.tabList_[i].active) {\n return i;\n }\n }\n return -1;\n },\n getFocusedTabIndex: function getFocusedTabIndex() {\n var tabElements = _this.getTabElements_();\n var activeElement = document.activeElement;\n return tabElements.indexOf(activeElement);\n },\n getIndexOfTabById: function getIndexOfTabById(id) {\n for (var i = 0; i < _this.tabList_.length; i++) {\n if (_this.tabList_[i].id === id) {\n return i;\n }\n }\n return -1;\n },\n getTabListLength: function getTabListLength() {\n return _this.tabList_.length;\n },\n notifyTabActivated: function notifyTabActivated(index) {\n return _this.emit(strings.TAB_ACTIVATED_EVENT, { index: index }, true);\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_2.MDCTabBarFoundation(adapter);\n };\n /**\n * Activates the tab at the given index\n * @param index The index of the tab\n */\n MDCTabBar.prototype.activateTab = function (index) {\n this.foundation_.activateTab(index);\n };\n /**\n * Scrolls the tab at the given index into view\n * @param index THe index of the tab\n */\n MDCTabBar.prototype.scrollIntoView = function (index) {\n this.foundation_.scrollIntoView(index);\n };\n /**\n * Returns all the tab elements in a nice clean array\n */\n MDCTabBar.prototype.getTabElements_ = function () {\n return [].slice.call(this.root_.querySelectorAll(strings.TAB_SELECTOR));\n };\n /**\n * Instantiates tab components on all child tab elements\n */\n MDCTabBar.prototype.instantiateTabs_ = function (tabFactory) {\n return this.getTabElements_().map(function (el) {\n el.id = el.id || \"mdc-tab-\" + ++tabIdCounter;\n return tabFactory(el);\n });\n };\n /**\n * Instantiates tab scroller component on the child tab scroller element\n */\n MDCTabBar.prototype.instantiateTabScroller_ = function (tabScrollerFactory) {\n var tabScrollerElement = this.root_.querySelector(strings.TAB_SCROLLER_SELECTOR);\n if (tabScrollerElement) {\n return tabScrollerFactory(tabScrollerElement);\n }\n return null;\n };\n return MDCTabBar;\n}(component_1.MDCComponent);\nexports.MDCTabBar = MDCTabBar;\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar rtl_scroller_1 = __webpack_require__(21);\nvar MDCTabScrollerRTLDefault = /** @class */function (_super) {\n __extends(MDCTabScrollerRTLDefault, _super);\n function MDCTabScrollerRTLDefault() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabScrollerRTLDefault.prototype.getScrollPositionRTL = function () {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var right = this.calculateScrollEdges_().right;\n // Scroll values on most browsers are ints instead of floats so we round\n return Math.round(right - currentScrollLeft);\n };\n MDCTabScrollerRTLDefault.prototype.scrollToRTL = function (scrollX) {\n var edges = this.calculateScrollEdges_();\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(edges.right - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft\n };\n };\n MDCTabScrollerRTLDefault.prototype.incrementScrollRTL = function (scrollX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft\n };\n };\n MDCTabScrollerRTLDefault.prototype.getAnimatingScrollPosition = function (scrollX) {\n return scrollX;\n };\n MDCTabScrollerRTLDefault.prototype.calculateScrollEdges_ = function () {\n var contentWidth = this.adapter_.getScrollContentOffsetWidth();\n var rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: 0,\n right: contentWidth - rootWidth\n };\n };\n MDCTabScrollerRTLDefault.prototype.clampScrollValue_ = function (scrollX) {\n var edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.left, scrollX), edges.right);\n };\n return MDCTabScrollerRTLDefault;\n}(rtl_scroller_1.MDCTabScrollerRTL);\nexports.MDCTabScrollerRTLDefault = MDCTabScrollerRTLDefault;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabScrollerRTLDefault;\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar rtl_scroller_1 = __webpack_require__(21);\nvar MDCTabScrollerRTLNegative = /** @class */function (_super) {\n __extends(MDCTabScrollerRTLNegative, _super);\n function MDCTabScrollerRTLNegative() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabScrollerRTLNegative.prototype.getScrollPositionRTL = function (translateX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n return Math.round(translateX - currentScrollLeft);\n };\n MDCTabScrollerRTLNegative.prototype.scrollToRTL = function (scrollX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(-scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft\n };\n };\n MDCTabScrollerRTLNegative.prototype.incrementScrollRTL = function (scrollX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft\n };\n };\n MDCTabScrollerRTLNegative.prototype.getAnimatingScrollPosition = function (scrollX, translateX) {\n return scrollX - translateX;\n };\n MDCTabScrollerRTLNegative.prototype.calculateScrollEdges_ = function () {\n var contentWidth = this.adapter_.getScrollContentOffsetWidth();\n var rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: rootWidth - contentWidth,\n right: 0\n };\n };\n MDCTabScrollerRTLNegative.prototype.clampScrollValue_ = function (scrollX) {\n var edges = this.calculateScrollEdges_();\n return Math.max(Math.min(edges.right, scrollX), edges.left);\n };\n return MDCTabScrollerRTLNegative;\n}(rtl_scroller_1.MDCTabScrollerRTL);\nexports.MDCTabScrollerRTLNegative = MDCTabScrollerRTLNegative;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabScrollerRTLNegative;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar rtl_scroller_1 = __webpack_require__(21);\nvar MDCTabScrollerRTLReverse = /** @class */function (_super) {\n __extends(MDCTabScrollerRTLReverse, _super);\n function MDCTabScrollerRTLReverse() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTabScrollerRTLReverse.prototype.getScrollPositionRTL = function (translateX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n // Scroll values on most browsers are ints instead of floats so we round\n return Math.round(currentScrollLeft - translateX);\n };\n MDCTabScrollerRTLReverse.prototype.scrollToRTL = function (scrollX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: currentScrollLeft - clampedScrollLeft\n };\n };\n MDCTabScrollerRTLReverse.prototype.incrementScrollRTL = function (scrollX) {\n var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft + scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: currentScrollLeft - clampedScrollLeft\n };\n };\n MDCTabScrollerRTLReverse.prototype.getAnimatingScrollPosition = function (scrollX, translateX) {\n return scrollX + translateX;\n };\n MDCTabScrollerRTLReverse.prototype.calculateScrollEdges_ = function () {\n var contentWidth = this.adapter_.getScrollContentOffsetWidth();\n var rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: contentWidth - rootWidth,\n right: 0\n };\n };\n MDCTabScrollerRTLReverse.prototype.clampScrollValue_ = function (scrollX) {\n var edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.right, scrollX), edges.left);\n };\n return MDCTabScrollerRTLReverse;\n}(rtl_scroller_1.MDCTabScrollerRTL);\nexports.MDCTabScrollerRTLReverse = MDCTabScrollerRTLReverse;\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexports.default = MDCTabScrollerRTLReverse;\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ACTIVE: 'mdc-tab-indicator--active',\n FADE: 'mdc-tab-indicator--fade',\n NO_TRANSITION: 'mdc-tab-indicator--no-transition'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n CONTENT_SELECTOR: '.mdc-tab-indicator__content'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ACTIVE: 'mdc-tab--active'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ARIA_SELECTED: 'aria-selected',\n CONTENT_SELECTOR: '.mdc-tab__content',\n INTERACTED_EVENT: 'MDCTab:interacted',\n RIPPLE_SELECTOR: '.mdc-tab__ripple',\n TABINDEX: 'tabIndex',\n TAB_INDICATOR_SELECTOR: '.mdc-tab-indicator'\n};\nexports.strings = strings;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space',\n TAB_ACTIVATED_EVENT: 'MDCTabBar:activated',\n TAB_SCROLLER_SELECTOR: '.mdc-tab-scroller',\n TAB_SELECTOR: '.mdc-tab'\n};\nexports.strings = strings;\nvar numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\nexports.numbers = numbers;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(65));\n__export(__webpack_require__(9));\n__export(__webpack_require__(66));\n__export(__webpack_require__(67));\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util = __importStar(__webpack_require__(63));\nexports.util = util;\n__export(__webpack_require__(60));\n__export(__webpack_require__(61));\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(64));\n__export(__webpack_require__(22));\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(151));\n__export(__webpack_require__(71));\n__export(__webpack_require__(155));\n__export(__webpack_require__(156));\n__export(__webpack_require__(157));\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar ponyfill = __importStar(__webpack_require__(3));\nvar component_2 = __webpack_require__(15);\nvar component_3 = __webpack_require__(17);\nvar component_4 = __webpack_require__(19);\nvar component_5 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(4);\nvar component_6 = __webpack_require__(69);\nvar foundation_2 = __webpack_require__(23);\nvar constants_1 = __webpack_require__(70);\nvar foundation_3 = __webpack_require__(71);\nvar component_7 = __webpack_require__(72);\nvar foundation_4 = __webpack_require__(24);\nvar component_8 = __webpack_require__(73);\nvar MDCTextField = /** @class */function (_super) {\n __extends(MDCTextField, _super);\n function MDCTextField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTextField.attachTo = function (root) {\n return new MDCTextField(root);\n };\n MDCTextField.prototype.initialize = function (rippleFactory, lineRippleFactory, helperTextFactory, characterCounterFactory, iconFactory, labelFactory, outlineFactory) {\n if (rippleFactory === void 0) {\n rippleFactory = function rippleFactory(el, foundation) {\n return new component_5.MDCRipple(el, foundation);\n };\n }\n if (lineRippleFactory === void 0) {\n lineRippleFactory = function lineRippleFactory(el) {\n return new component_3.MDCLineRipple(el);\n };\n }\n if (helperTextFactory === void 0) {\n helperTextFactory = function helperTextFactory(el) {\n return new component_7.MDCTextFieldHelperText(el);\n };\n }\n if (characterCounterFactory === void 0) {\n characterCounterFactory = function characterCounterFactory(el) {\n return new component_6.MDCTextFieldCharacterCounter(el);\n };\n }\n if (iconFactory === void 0) {\n iconFactory = function iconFactory(el) {\n return new component_8.MDCTextFieldIcon(el);\n };\n }\n if (labelFactory === void 0) {\n labelFactory = function labelFactory(el) {\n return new component_2.MDCFloatingLabel(el);\n };\n }\n if (outlineFactory === void 0) {\n outlineFactory = function outlineFactory(el) {\n return new component_4.MDCNotchedOutline(el);\n };\n }\n this.input_ = this.root_.querySelector(constants_1.strings.INPUT_SELECTOR);\n var labelElement = this.root_.querySelector(constants_1.strings.LABEL_SELECTOR);\n this.label_ = labelElement ? labelFactory(labelElement) : null;\n var lineRippleElement = this.root_.querySelector(constants_1.strings.LINE_RIPPLE_SELECTOR);\n this.lineRipple_ = lineRippleElement ? lineRippleFactory(lineRippleElement) : null;\n var outlineElement = this.root_.querySelector(constants_1.strings.OUTLINE_SELECTOR);\n this.outline_ = outlineElement ? outlineFactory(outlineElement) : null;\n // Helper text\n var helperTextStrings = foundation_4.MDCTextFieldHelperTextFoundation.strings;\n var nextElementSibling = this.root_.nextElementSibling;\n var hasHelperLine = nextElementSibling && nextElementSibling.classList.contains(constants_1.cssClasses.HELPER_LINE);\n var helperTextEl = hasHelperLine && nextElementSibling && nextElementSibling.querySelector(helperTextStrings.ROOT_SELECTOR);\n this.helperText_ = helperTextEl ? helperTextFactory(helperTextEl) : null;\n // Character counter\n var characterCounterStrings = foundation_2.MDCTextFieldCharacterCounterFoundation.strings;\n var characterCounterEl = this.root_.querySelector(characterCounterStrings.ROOT_SELECTOR);\n // If character counter is not found in root element search in sibling element.\n if (!characterCounterEl && hasHelperLine && nextElementSibling) {\n characterCounterEl = nextElementSibling.querySelector(characterCounterStrings.ROOT_SELECTOR);\n }\n this.characterCounter_ = characterCounterEl ? characterCounterFactory(characterCounterEl) : null;\n this.leadingIcon_ = null;\n this.trailingIcon_ = null;\n var iconElements = this.root_.querySelectorAll(constants_1.strings.ICON_SELECTOR);\n if (iconElements.length > 0) {\n if (iconElements.length > 1) {\n // Has both icons.\n this.leadingIcon_ = iconFactory(iconElements[0]);\n this.trailingIcon_ = iconFactory(iconElements[1]);\n } else {\n if (this.root_.classList.contains(constants_1.cssClasses.WITH_LEADING_ICON)) {\n this.leadingIcon_ = iconFactory(iconElements[0]);\n } else {\n this.trailingIcon_ = iconFactory(iconElements[0]);\n }\n }\n }\n this.ripple = this.createRipple_(rippleFactory);\n };\n MDCTextField.prototype.destroy = function () {\n if (this.ripple) {\n this.ripple.destroy();\n }\n if (this.lineRipple_) {\n this.lineRipple_.destroy();\n }\n if (this.helperText_) {\n this.helperText_.destroy();\n }\n if (this.characterCounter_) {\n this.characterCounter_.destroy();\n }\n if (this.leadingIcon_) {\n this.leadingIcon_.destroy();\n }\n if (this.trailingIcon_) {\n this.trailingIcon_.destroy();\n }\n if (this.label_) {\n this.label_.destroy();\n }\n if (this.outline_) {\n this.outline_.destroy();\n }\n _super.prototype.destroy.call(this);\n };\n /**\n * Initializes the Text Field's internal state based on the environment's\n * state.\n */\n MDCTextField.prototype.initialSyncWithDOM = function () {\n this.disabled = this.input_.disabled;\n };\n Object.defineProperty(MDCTextField.prototype, \"value\", {\n get: function get() {\n return this.foundation_.getValue();\n },\n /**\n * @param value The value to set on the input.\n */\n set: function set(value) {\n this.foundation_.setValue(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"disabled\", {\n get: function get() {\n return this.foundation_.isDisabled();\n },\n /**\n * @param disabled Sets the Text Field disabled or enabled.\n */\n set: function set(disabled) {\n this.foundation_.setDisabled(disabled);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"valid\", {\n get: function get() {\n return this.foundation_.isValid();\n },\n /**\n * @param valid Sets the Text Field valid or invalid.\n */\n set: function set(valid) {\n this.foundation_.setValid(valid);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"required\", {\n get: function get() {\n return this.input_.required;\n },\n /**\n * @param required Sets the Text Field to required.\n */\n set: function set(required) {\n this.input_.required = required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"pattern\", {\n get: function get() {\n return this.input_.pattern;\n },\n /**\n * @param pattern Sets the input element's validation pattern.\n */\n set: function set(pattern) {\n this.input_.pattern = pattern;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"minLength\", {\n get: function get() {\n return this.input_.minLength;\n },\n /**\n * @param minLength Sets the input element's minLength.\n */\n set: function set(minLength) {\n this.input_.minLength = minLength;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"maxLength\", {\n get: function get() {\n return this.input_.maxLength;\n },\n /**\n * @param maxLength Sets the input element's maxLength.\n */\n set: function set(maxLength) {\n // Chrome throws exception if maxLength is set to a value less than zero\n if (maxLength < 0) {\n this.input_.removeAttribute('maxLength');\n } else {\n this.input_.maxLength = maxLength;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"min\", {\n get: function get() {\n return this.input_.min;\n },\n /**\n * @param min Sets the input element's min.\n */\n set: function set(min) {\n this.input_.min = min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"max\", {\n get: function get() {\n return this.input_.max;\n },\n /**\n * @param max Sets the input element's max.\n */\n set: function set(max) {\n this.input_.max = max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"step\", {\n get: function get() {\n return this.input_.step;\n },\n /**\n * @param step Sets the input element's step.\n */\n set: function set(step) {\n this.input_.step = step;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"helperTextContent\", {\n /**\n * Sets the helper text element content.\n */\n set: function set(content) {\n this.foundation_.setHelperTextContent(content);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"leadingIconAriaLabel\", {\n /**\n * Sets the aria label of the leading icon.\n */\n set: function set(label) {\n this.foundation_.setLeadingIconAriaLabel(label);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"leadingIconContent\", {\n /**\n * Sets the text content of the leading icon.\n */\n set: function set(content) {\n this.foundation_.setLeadingIconContent(content);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"trailingIconAriaLabel\", {\n /**\n * Sets the aria label of the trailing icon.\n */\n set: function set(label) {\n this.foundation_.setTrailingIconAriaLabel(label);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"trailingIconContent\", {\n /**\n * Sets the text content of the trailing icon.\n */\n set: function set(content) {\n this.foundation_.setTrailingIconContent(content);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCTextField.prototype, \"useNativeValidation\", {\n /**\n * Enables or disables the use of native validation. Use this for custom validation.\n * @param useNativeValidation Set this to false to ignore native input validation.\n */\n set: function set(useNativeValidation) {\n this.foundation_.setUseNativeValidation(useNativeValidation);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Focuses the input element.\n */\n MDCTextField.prototype.focus = function () {\n this.input_.focus();\n };\n /**\n * Recomputes the outline SVG path for the outline element.\n */\n MDCTextField.prototype.layout = function () {\n var openNotch = this.foundation_.shouldFloat;\n this.foundation_.notchOutline(openNotch);\n };\n MDCTextField.prototype.getDefaultFoundation = function () {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = __assign({}, this.getRootAdapterMethods_(), this.getInputAdapterMethods_(), this.getLabelAdapterMethods_(), this.getLineRippleAdapterMethods_(), this.getOutlineAdapterMethods_());\n // tslint:enable:object-literal-sort-keys\n return new foundation_3.MDCTextFieldFoundation(adapter, this.getFoundationMap_());\n };\n MDCTextField.prototype.getRootAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler(evtType, handler) {\n return _this.listen(evtType, handler);\n },\n deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler(evtType, handler) {\n return _this.unlisten(evtType, handler);\n },\n registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler(handler) {\n var getAttributesList = function getAttributesList(mutationsList) {\n return mutationsList.map(function (mutation) {\n return mutation.attributeName;\n }).filter(function (attributeName) {\n return attributeName;\n });\n };\n var observer = new MutationObserver(function (mutationsList) {\n return handler(getAttributesList(mutationsList));\n });\n var config = { attributes: true };\n observer.observe(_this.input_, config);\n return observer;\n },\n deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler(observer) {\n return observer.disconnect();\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCTextField.prototype.getInputAdapterMethods_ = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getNativeInput: function getNativeInput() {\n return _this.input_;\n },\n isFocused: function isFocused() {\n return document.activeElement === _this.input_;\n },\n registerInputInteractionHandler: function registerInputInteractionHandler(evtType, handler) {\n return _this.input_.addEventListener(evtType, handler);\n },\n deregisterInputInteractionHandler: function deregisterInputInteractionHandler(evtType, handler) {\n return _this.input_.removeEventListener(evtType, handler);\n }\n };\n // tslint:enable:object-literal-sort-keys\n };\n MDCTextField.prototype.getLabelAdapterMethods_ = function () {\n var _this = this;\n return {\n floatLabel: function floatLabel(shouldFloat) {\n return _this.label_ && _this.label_.float(shouldFloat);\n },\n getLabelWidth: function getLabelWidth() {\n return _this.label_ ? _this.label_.getWidth() : 0;\n },\n hasLabel: function hasLabel() {\n return Boolean(_this.label_);\n },\n shakeLabel: function shakeLabel(shouldShake) {\n return _this.label_ && _this.label_.shake(shouldShake);\n }\n };\n };\n MDCTextField.prototype.getLineRippleAdapterMethods_ = function () {\n var _this = this;\n return {\n activateLineRipple: function activateLineRipple() {\n if (_this.lineRipple_) {\n _this.lineRipple_.activate();\n }\n },\n deactivateLineRipple: function deactivateLineRipple() {\n if (_this.lineRipple_) {\n _this.lineRipple_.deactivate();\n }\n },\n setLineRippleTransformOrigin: function setLineRippleTransformOrigin(normalizedX) {\n if (_this.lineRipple_) {\n _this.lineRipple_.setRippleCenter(normalizedX);\n }\n }\n };\n };\n MDCTextField.prototype.getOutlineAdapterMethods_ = function () {\n var _this = this;\n return {\n closeOutline: function closeOutline() {\n return _this.outline_ && _this.outline_.closeNotch();\n },\n hasOutline: function hasOutline() {\n return Boolean(_this.outline_);\n },\n notchOutline: function notchOutline(labelWidth) {\n return _this.outline_ && _this.outline_.notch(labelWidth);\n }\n };\n };\n /**\n * @return A map of all subcomponents to subfoundations.\n */\n MDCTextField.prototype.getFoundationMap_ = function () {\n return {\n characterCounter: this.characterCounter_ ? this.characterCounter_.foundation : undefined,\n helperText: this.helperText_ ? this.helperText_.foundation : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined,\n trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundation : undefined\n };\n };\n MDCTextField.prototype.createRipple_ = function (rippleFactory) {\n var _this = this;\n var isTextArea = this.root_.classList.contains(constants_1.cssClasses.TEXTAREA);\n var isOutlined = this.root_.classList.contains(constants_1.cssClasses.OUTLINED);\n if (isTextArea || isOutlined) {\n return null;\n }\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = __assign({}, component_5.MDCRipple.createAdapter(this), { isSurfaceActive: function isSurfaceActive() {\n return ponyfill.matches(_this.input_, ':active');\n }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) {\n return _this.input_.addEventListener(evtType, handler);\n }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {\n return _this.input_.removeEventListener(evtType, handler);\n } });\n // tslint:enable:object-literal-sort-keys\n return rippleFactory(this.root_, new foundation_1.MDCRippleFoundation(adapter));\n };\n return MDCTextField;\n}(component_1.MDCComponent);\nexports.MDCTextField = MDCTextField;\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n ROOT: 'mdc-text-field-character-counter'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ROOT_SELECTOR: \".\" + cssClasses.ROOT\n};\nexports.strings = strings;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cssClasses = {\n HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent',\n HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg',\n ROOT: 'mdc-text-field-helper-text'\n};\nexports.cssClasses = cssClasses;\nvar strings = {\n ARIA_HIDDEN: 'aria-hidden',\n ROLE: 'role',\n ROOT_SELECTOR: \".\" + cssClasses.ROOT\n};\nexports.strings = strings;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings = {\n ICON_EVENT: 'MDCTextField:icon',\n ICON_ROLE: 'button'\n};\nexports.strings = strings;\nvar cssClasses = {\n ROOT: 'mdc-text-field__icon'\n};\nexports.cssClasses = cssClasses;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(69));\n__export(__webpack_require__(23));\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(72));\n__export(__webpack_require__(24));\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(73));\n__export(__webpack_require__(74));\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(159));\n__export(__webpack_require__(75));\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar foundation_1 = __webpack_require__(75);\nvar strings = foundation_1.MDCToolbarFoundation.strings;\nvar MDCToolbar = /** @class */function (_super) {\n __extends(MDCToolbar, _super);\n function MDCToolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCToolbar.attachTo = function (root) {\n return new MDCToolbar(root);\n };\n MDCToolbar.prototype.initialize = function () {\n var _this = this;\n this.ripples_ = [];\n this.fixedAdjustElement_ = null;\n this.titleElement_ = this.root_.querySelector(strings.TITLE_SELECTOR);\n var firstRowElement = this.root_.querySelector(strings.FIRST_ROW_SELECTOR);\n if (!firstRowElement) {\n throw new Error(\"MDCToolbar: Required sub-element '\" + strings.FIRST_ROW_SELECTOR + \"' is missing\");\n }\n this.firstRowElement_ = firstRowElement;\n [].forEach.call(this.root_.querySelectorAll(strings.ICON_SELECTOR), function (icon) {\n var ripple = component_2.MDCRipple.attachTo(icon);\n ripple.unbounded = true;\n _this.ripples_.push(ripple);\n });\n };\n MDCToolbar.prototype.destroy = function () {\n this.ripples_.forEach(function (ripple) {\n ripple.destroy();\n });\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(MDCToolbar.prototype, \"fixedAdjustElement\", {\n get: function get() {\n return this.fixedAdjustElement_;\n },\n set: function set(element) {\n this.fixedAdjustElement_ = element;\n this.foundation_.updateAdjustElementStyles();\n },\n enumerable: true,\n configurable: true\n });\n MDCToolbar.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n registerScrollHandler: function registerScrollHandler(handler) {\n return window.addEventListener('scroll', handler);\n },\n deregisterScrollHandler: function deregisterScrollHandler(handler) {\n return window.removeEventListener('scroll', handler);\n },\n registerResizeHandler: function registerResizeHandler(handler) {\n return window.addEventListener('resize', handler);\n },\n deregisterResizeHandler: function deregisterResizeHandler(handler) {\n return window.removeEventListener('resize', handler);\n },\n getViewportWidth: function getViewportWidth() {\n return window.innerWidth;\n },\n getViewportScrollY: function getViewportScrollY() {\n return window.pageYOffset;\n },\n getOffsetHeight: function getOffsetHeight() {\n return _this.root_.offsetHeight;\n },\n getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {\n return _this.firstRowElement_.offsetHeight;\n },\n notifyChange: function notifyChange(evtData) {\n return _this.emit(strings.CHANGE_EVENT, evtData);\n },\n setStyle: function setStyle(property, value) {\n return _this.root_.style.setProperty(property, value);\n },\n setStyleForTitleElement: function setStyleForTitleElement(property, value) {\n if (_this.titleElement_) {\n _this.titleElement_.style.setProperty(property, value);\n }\n },\n setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement(property, value) {\n return _this.firstRowElement_.style.setProperty(property, value);\n },\n setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement(property, value) {\n if (_this.fixedAdjustElement) {\n _this.fixedAdjustElement.style.setProperty(property, value);\n }\n }\n };\n // tslint:enable:object-literal-sort-keys\n return new foundation_1.MDCToolbarFoundation(adapter);\n };\n return MDCToolbar;\n}(component_1.MDCComponent);\nexports.MDCToolbar = MDCToolbar;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssClasses = {\n FIXED: 'mdc-toolbar--fixed',\n FIXED_AT_LAST_ROW: 'mdc-toolbar--fixed-at-last-row',\n FIXED_LASTROW: 'mdc-toolbar--fixed-lastrow-only',\n FLEXIBLE_DEFAULT_BEHAVIOR: 'mdc-toolbar--flexible-default-behavior',\n FLEXIBLE_MAX: 'mdc-toolbar--flexible-space-maximized',\n FLEXIBLE_MIN: 'mdc-toolbar--flexible-space-minimized',\n TOOLBAR_ROW_FLEXIBLE: 'mdc-toolbar--flexible'\n};\nexports.strings = {\n CHANGE_EVENT: 'MDCToolbar:change',\n FIRST_ROW_SELECTOR: '.mdc-toolbar__row:first-child',\n ICON_SELECTOR: '.mdc-toolbar__icon',\n TITLE_SELECTOR: '.mdc-toolbar__title'\n};\nexports.numbers = {\n MAX_TITLE_SIZE: 2.125,\n MIN_TITLE_SIZE: 1.25,\n TOOLBAR_MOBILE_BREAKPOINT: 600,\n TOOLBAR_ROW_HEIGHT: 64,\n TOOLBAR_ROW_MOBILE_HEIGHT: 56\n};\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(__webpack_require__(162));\n__export(__webpack_require__(26));\n__export(__webpack_require__(76));\n__export(__webpack_require__(77));\n__export(__webpack_require__(25));\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = __webpack_require__(1);\nvar component_2 = __webpack_require__(2);\nvar constants_1 = __webpack_require__(7);\nvar foundation_1 = __webpack_require__(76);\nvar foundation_2 = __webpack_require__(77);\nvar foundation_3 = __webpack_require__(25);\nvar MDCTopAppBar = /** @class */function (_super) {\n __extends(MDCTopAppBar, _super);\n function MDCTopAppBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCTopAppBar.attachTo = function (root) {\n return new MDCTopAppBar(root);\n };\n MDCTopAppBar.prototype.initialize = function (rippleFactory) {\n if (rippleFactory === void 0) {\n rippleFactory = function rippleFactory(el) {\n return component_2.MDCRipple.attachTo(el);\n };\n }\n this.navIcon_ = this.root_.querySelector(constants_1.strings.NAVIGATION_ICON_SELECTOR);\n // Get all icons in the toolbar and instantiate the ripples\n var icons = [].slice.call(this.root_.querySelectorAll(constants_1.strings.ACTION_ITEM_SELECTOR));\n if (this.navIcon_) {\n icons.push(this.navIcon_);\n }\n this.iconRipples_ = icons.map(function (icon) {\n var ripple = rippleFactory(icon);\n ripple.unbounded = true;\n return ripple;\n });\n this.scrollTarget_ = window;\n };\n MDCTopAppBar.prototype.destroy = function () {\n this.iconRipples_.forEach(function (iconRipple) {\n return iconRipple.destroy();\n });\n _super.prototype.destroy.call(this);\n };\n MDCTopAppBar.prototype.setScrollTarget = function (target) {\n // Remove scroll handler from the previous scroll target\n this.foundation_.destroyScrollHandler();\n this.scrollTarget_ = target;\n // Initialize scroll handler on the new scroll target\n this.foundation_.initScrollHandler();\n };\n MDCTopAppBar.prototype.getDefaultFoundation = function () {\n var _this = this;\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n var adapter = {\n hasClass: function hasClass(className) {\n return _this.root_.classList.contains(className);\n },\n addClass: function addClass(className) {\n return _this.root_.classList.add(className);\n },\n removeClass: function removeClass(className) {\n return _this.root_.classList.remove(className);\n },\n setStyle: function setStyle(property, value) {\n return _this.root_.style.setProperty(property, value);\n },\n getTopAppBarHeight: function getTopAppBarHeight() {\n return _this.root_.clientHeight;\n },\n registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler(evtType, handler) {\n if (_this.navIcon_) {\n _this.navIcon_.addEventListener(evtType, handler);\n }\n },\n deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler(evtType, handler) {\n if (_this.navIcon_) {\n _this.navIcon_.removeEventListener(evtType, handler);\n }\n },\n notifyNavigationIconClicked: function notifyNavigationIconClicked() {\n return _this.emit(constants_1.strings.NAVIGATION_EVENT, {});\n },\n registerScrollHandler: function registerScrollHandler(handler) {\n return _this.scrollTarget_.addEventListener('scroll', handler);\n },\n deregisterScrollHandler: function deregisterScrollHandler(handler) {\n return _this.scrollTarget_.removeEventListener('scroll', handler);\n },\n registerResizeHandler: function registerResizeHandler(handler) {\n return window.addEventListener('resize', handler);\n },\n deregisterResizeHandler: function deregisterResizeHandler(handler) {\n return window.removeEventListener('resize', handler);\n },\n getViewportScrollY: function getViewportScrollY() {\n var win = _this.scrollTarget_;\n var el = _this.scrollTarget_;\n return win.pageYOffset !== undefined ? win.pageYOffset : el.scrollTop;\n },\n getTotalActionItems: function getTotalActionItems() {\n return _this.root_.querySelectorAll(constants_1.strings.ACTION_ITEM_SELECTOR).length;\n }\n };\n // tslint:enable:object-literal-sort-keys\n var foundation;\n if (this.root_.classList.contains(constants_1.cssClasses.SHORT_CLASS)) {\n foundation = new foundation_2.MDCShortTopAppBarFoundation(adapter);\n } else if (this.root_.classList.contains(constants_1.cssClasses.FIXED_CLASS)) {\n foundation = new foundation_1.MDCFixedTopAppBarFoundation(adapter);\n } else {\n foundation = new foundation_3.MDCTopAppBarFoundation(adapter);\n }\n return foundation;\n };\n return MDCTopAppBar;\n}(component_1.MDCComponent);\nexports.MDCTopAppBar = MDCTopAppBar;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// material-components-web.js"," \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 78);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8965aaa3d7ba6e7e327f","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport class MDCFoundation<AdapterType extends {} = {}> {\n static get cssClasses(): { [key: string]: string } {\n // Classes extending MDCFoundation should implement this method to return an object which exports every\n // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}\n return {};\n }\n\n static get strings(): { [key: string]: string } {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}\n return {};\n }\n\n static get numbers(): { [key: string]: number } {\n // Classes extending MDCFoundation should implement this method to return an object which exports all\n // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}\n return {};\n }\n\n static get defaultAdapter(): {} {\n // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient\n // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter\n // validation.\n return {};\n }\n\n protected adapter_: AdapterType;\n\n constructor(adapter: AdapterType = {} as AdapterType) {\n this.adapter_ = adapter;\n }\n\n init() {\n // Subclasses should override this method to perform initialization routines (registering events, etc.)\n }\n\n destroy() {\n // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-base/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from './foundation';\nimport {CustomEventListener, EventType, SpecificEventListener} from './types';\n\nexport class MDCComponent<FoundationType extends MDCFoundation> {\n static attachTo(root: Element): MDCComponent<MDCFoundation<{}>> {\n // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and\n // returns an instantiated component with its root set to that element. Also note that in the cases of\n // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized\n // from getDefaultFoundation().\n return new MDCComponent(root, new MDCFoundation({}));\n }\n\n protected root_: Element;\n protected foundation_: FoundationType;\n\n constructor(\n root: Element,\n foundation?: FoundationType,\n ...args: Array<unknown>\n ) {\n this.root_ = root;\n this.initialize(...args);\n // Note that we initialize foundation here and not within the constructor's default param so that\n // this.root_ is defined and can be used within the foundation class.\n this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation;\n this.foundation_.init();\n this.initialSyncWithDOM();\n }\n\n /* istanbul ignore next: method param only exists for typing purposes; it does not need to be unit tested */\n initialize(..._args: Array<unknown>) {\n // Subclasses can override this to do any additional setup work that would be considered part of a\n // \"constructor\". Essentially, it is a hook into the parent constructor before the foundation is\n // initialized. Any additional arguments besides root and foundation will be passed in here.\n }\n\n getDefaultFoundation(): FoundationType {\n // Subclasses must override this method to return a properly configured foundation class for the\n // component.\n throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' +\n 'foundation class');\n }\n\n initialSyncWithDOM() {\n // Subclasses should override this method if they need to perform work to synchronize with a host DOM\n // object. An example of this would be a form control wrapper that needs to synchronize its internal state\n // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM\n // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.\n }\n\n destroy() {\n // Subclasses may implement this method to release any resources / deregister any listeners they have\n // attached. An example of this might be deregistering a resize event from the window object.\n this.foundation_.destroy();\n }\n\n /**\n * Wrapper method to add an event listener to the component's root element. This is most useful when\n * listening for custom events.\n */\n listen<K extends EventType>(evtType: K, handler: SpecificEventListener<K>): void;\n listen<E extends Event>(evtType: string, handler: CustomEventListener<E>): void;\n listen(evtType: string, handler: EventListener) {\n this.root_.addEventListener(evtType, handler);\n }\n\n /**\n * Wrapper method to remove an event listener to the component's root element. This is most useful when\n * unlistening for custom events.\n */\n unlisten<K extends EventType>(evtType: K, handler: SpecificEventListener<K>): void;\n unlisten<E extends Event>(evtType: string, handler: CustomEventListener<E>): void;\n unlisten(evtType: string, handler: EventListener) {\n this.root_.removeEventListener(evtType, handler);\n }\n\n /**\n * Fires a cross-browser-compatible custom event from the component root of the given type, with the given data.\n */\n emit<T extends object>(evtType: string, evtData: T, shouldBubble = false) {\n let evt: CustomEvent<T>;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent<T>(evtType, {\n bubbles: shouldBubble,\n detail: evtData,\n });\n } else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(evtType, shouldBubble, false, evtData);\n }\n\n this.root_.dispatchEvent(evt);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-base/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {matches} from '@material/dom/ponyfill';\nimport {MDCRippleAdapter} from './adapter';\nimport {MDCRippleFoundation} from './foundation';\nimport {MDCRippleAttachOpts, MDCRippleCapableSurface} from './types';\nimport * as util from './util';\n\nexport type MDCRippleFactory = (el: Element, foundation?: MDCRippleFoundation) => MDCRipple;\n\nexport class MDCRipple extends MDCComponent<MDCRippleFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element, opts: MDCRippleAttachOpts = {isUnbounded: undefined}): MDCRipple {\n const ripple = new MDCRipple(root);\n // Only override unbounded behavior if option is explicitly specified\n if (opts.isUnbounded !== undefined) {\n ripple.unbounded = opts.isUnbounded;\n }\n return ripple;\n }\n\n static createAdapter(instance: MDCRippleCapableSurface): MDCRippleAdapter {\n return {\n addClass: (className) => instance.root_.classList.add(className),\n browserSupportsCssVars: () => util.supportsCssVariables(window),\n computeBoundingRect: () => instance.root_.getBoundingClientRect(),\n containsEventTarget: (target) => instance.root_.contains(target as Node),\n deregisterDocumentInteractionHandler: (evtType, handler) =>\n document.documentElement.removeEventListener(evtType, handler, util.applyPassive()),\n deregisterInteractionHandler: (evtType, handler) =>\n instance.root_.removeEventListener(evtType, handler, util.applyPassive()),\n deregisterResizeHandler: (handler) => window.removeEventListener('resize', handler),\n getWindowPageOffset: () => ({x: window.pageXOffset, y: window.pageYOffset}),\n isSurfaceActive: () => matches(instance.root_, ':active'),\n isSurfaceDisabled: () => Boolean(instance.disabled),\n isUnbounded: () => Boolean(instance.unbounded),\n registerDocumentInteractionHandler: (evtType, handler) =>\n document.documentElement.addEventListener(evtType, handler, util.applyPassive()),\n registerInteractionHandler: (evtType, handler) =>\n instance.root_.addEventListener(evtType, handler, util.applyPassive()),\n registerResizeHandler: (handler) => window.addEventListener('resize', handler),\n removeClass: (className) => instance.root_.classList.remove(className),\n updateCssVariable: (varName, value) => (instance.root_ as HTMLElement).style.setProperty(varName, value),\n };\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: Element; // assigned in MDCComponent constructor\n\n disabled = false;\n\n private unbounded_?: boolean;\n\n get unbounded(): boolean {\n return Boolean(this.unbounded_);\n }\n\n set unbounded(unbounded: boolean) {\n this.unbounded_ = Boolean(unbounded);\n this.setUnbounded_();\n }\n\n activate() {\n this.foundation_.activate();\n }\n\n deactivate() {\n this.foundation_.deactivate();\n }\n\n layout() {\n this.foundation_.layout();\n }\n\n getDefaultFoundation() {\n return new MDCRippleFoundation(MDCRipple.createAdapter(this));\n }\n\n initialSyncWithDOM() {\n const root = this.root_ as HTMLElement;\n this.unbounded = 'mdcRippleIsUnbounded' in root.dataset;\n }\n\n /**\n * Closure Compiler throws an access control error when directly accessing a\n * protected or private property inside a getter/setter, like unbounded above.\n * By accessing the protected property inside a method, we solve that problem.\n * That's why this function exists.\n */\n private setUnbounded_() {\n this.foundation_.setUnbounded(Boolean(this.unbounded_));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-ripple/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * @fileoverview A \"ponyfill\" is a polyfill that doesn't modify the global prototype chain.\n * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.\n */\n\nexport function closest(element: Element, selector: string): Element | null {\n if (element.closest) {\n return element.closest(selector);\n }\n\n let el: Element | null = element;\n while (el) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n}\n\nexport function matches(element: Element, selector: string): boolean {\n const nativeMatches = element.matches\n || element.webkitMatchesSelector\n || element.msMatchesSelector;\n return nativeMatches.call(element, selector);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dom/ponyfill.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCRippleAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\nimport {MDCRipplePoint} from './types';\nimport {getNormalizedEventCoords} from './util';\n\ninterface ActivationStateType {\n isActivated?: boolean;\n hasDeactivationUXRun?: boolean;\n wasActivatedByPointer?: boolean;\n wasElementMadeActive?: boolean;\n activationEvent?: Event;\n isProgrammatic?: boolean;\n}\n\ninterface FgTranslationCoordinates {\n startPoint: MDCRipplePoint;\n endPoint: MDCRipplePoint;\n}\n\ninterface Coordinates {\n left: number;\n top: number;\n}\n\ntype ActivationEventType = 'touchstart' | 'pointerdown' | 'mousedown' | 'keydown';\ntype DeactivationEventType = 'touchend' | 'pointerup' | 'mouseup' | 'contextmenu';\n\n// Activation events registered on the root element of each instance for activation\nconst ACTIVATION_EVENT_TYPES: ActivationEventType[] = [\n 'touchstart', 'pointerdown', 'mousedown', 'keydown',\n];\n\n// Deactivation events registered on documentElement when a pointer-related down event occurs\nconst POINTER_DEACTIVATION_EVENT_TYPES: DeactivationEventType[] = [\n 'touchend', 'pointerup', 'mouseup', 'contextmenu',\n];\n\n// simultaneous nested activations\nlet activatedTargets: Array<EventTarget | null> = [];\n\nexport class MDCRippleFoundation extends MDCFoundation<MDCRippleAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCRippleAdapter {\n return {\n addClass: () => undefined,\n browserSupportsCssVars: () => true,\n computeBoundingRect: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n containsEventTarget: () => true,\n deregisterDocumentInteractionHandler: () => undefined,\n deregisterInteractionHandler: () => undefined,\n deregisterResizeHandler: () => undefined,\n getWindowPageOffset: () => ({x: 0, y: 0}),\n isSurfaceActive: () => true,\n isSurfaceDisabled: () => true,\n isUnbounded: () => true,\n registerDocumentInteractionHandler: () => undefined,\n registerInteractionHandler: () => undefined,\n registerResizeHandler: () => undefined,\n removeClass: () => undefined,\n updateCssVariable: () => undefined,\n };\n }\n\n private activationAnimationHasEnded_ = false;\n private activationState_: ActivationStateType;\n private activationTimer_ = 0;\n private fgDeactivationRemovalTimer_ = 0;\n private fgScale_ = '0';\n private frame_ = {width: 0, height: 0};\n private initialSize_ = 0;\n private layoutFrame_ = 0;\n private maxRadius_ = 0;\n private unboundedCoords_: Coordinates = {left: 0, top: 0};\n\n private readonly activationTimerCallback_: () => void;\n private readonly activateHandler_: EventHandlerNonNull;\n private readonly deactivateHandler_: EventHandlerNonNull;\n private readonly focusHandler_: EventHandlerNonNull;\n private readonly blurHandler_: EventHandlerNonNull;\n private readonly resizeHandler_: EventHandlerNonNull;\n\n private previousActivationEvent_?: Event;\n\n constructor(adapter?: Partial<MDCRippleAdapter>) {\n super({...MDCRippleFoundation.defaultAdapter, ...adapter});\n\n this.activationState_ = this.defaultActivationState_();\n\n this.activationTimerCallback_ = () => {\n this.activationAnimationHasEnded_ = true;\n this.runDeactivationUXLogicIfReady_();\n };\n this.activateHandler_ = (e) => this.activate_(e);\n this.deactivateHandler_ = () => this.deactivate_();\n this.focusHandler_ = () => this.handleFocus();\n this.blurHandler_ = () => this.handleBlur();\n this.resizeHandler_ = () => this.layout();\n }\n\n init() {\n const supportsPressRipple = this.supportsPressRipple_();\n\n this.registerRootHandlers_(supportsPressRipple);\n\n if (supportsPressRipple) {\n const {ROOT, UNBOUNDED} = MDCRippleFoundation.cssClasses;\n requestAnimationFrame(() => {\n this.adapter_.addClass(ROOT);\n if (this.adapter_.isUnbounded()) {\n this.adapter_.addClass(UNBOUNDED);\n // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple\n this.layoutInternal_();\n }\n });\n }\n }\n\n destroy() {\n if (this.supportsPressRipple_()) {\n if (this.activationTimer_) {\n clearTimeout(this.activationTimer_);\n this.activationTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);\n }\n\n if (this.fgDeactivationRemovalTimer_) {\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.fgDeactivationRemovalTimer_ = 0;\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);\n }\n\n const {ROOT, UNBOUNDED} = MDCRippleFoundation.cssClasses;\n requestAnimationFrame(() => {\n this.adapter_.removeClass(ROOT);\n this.adapter_.removeClass(UNBOUNDED);\n this.removeCssVars_();\n });\n }\n\n this.deregisterRootHandlers_();\n this.deregisterDeactivationHandlers_();\n }\n\n /**\n * @param evt Optional event containing position information.\n */\n activate(evt?: Event): void {\n this.activate_(evt);\n }\n\n deactivate(): void {\n this.deactivate_();\n }\n\n layout(): void {\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n this.layoutFrame_ = requestAnimationFrame(() => {\n this.layoutInternal_();\n this.layoutFrame_ = 0;\n });\n }\n\n setUnbounded(unbounded: boolean): void {\n const {UNBOUNDED} = MDCRippleFoundation.cssClasses;\n if (unbounded) {\n this.adapter_.addClass(UNBOUNDED);\n } else {\n this.adapter_.removeClass(UNBOUNDED);\n }\n }\n\n handleFocus(): void {\n requestAnimationFrame(() =>\n this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED));\n }\n\n handleBlur(): void {\n requestAnimationFrame(() =>\n this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED));\n }\n\n /**\n * We compute this property so that we are not querying information about the client\n * until the point in time where the foundation requests it. This prevents scenarios where\n * client-side feature-detection may happen too early, such as when components are rendered on the server\n * and then initialized at mount time on the client.\n */\n private supportsPressRipple_(): boolean {\n return this.adapter_.browserSupportsCssVars();\n }\n\n private defaultActivationState_(): ActivationStateType {\n return {\n activationEvent: undefined,\n hasDeactivationUXRun: false,\n isActivated: false,\n isProgrammatic: false,\n wasActivatedByPointer: false,\n wasElementMadeActive: false,\n };\n }\n\n /**\n * supportsPressRipple Passed from init to save a redundant function call\n */\n private registerRootHandlers_(supportsPressRipple: boolean) {\n if (supportsPressRipple) {\n ACTIVATION_EVENT_TYPES.forEach((evtType) => {\n this.adapter_.registerInteractionHandler(evtType, this.activateHandler_);\n });\n if (this.adapter_.isUnbounded()) {\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n }\n\n this.adapter_.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter_.registerInteractionHandler('blur', this.blurHandler_);\n }\n\n private registerDeactivationHandlers_(evt: Event) {\n if (evt.type === 'keydown') {\n this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_);\n } else {\n POINTER_DEACTIVATION_EVENT_TYPES.forEach((evtType) => {\n this.adapter_.registerDocumentInteractionHandler(evtType, this.deactivateHandler_);\n });\n }\n }\n\n private deregisterRootHandlers_() {\n ACTIVATION_EVENT_TYPES.forEach((evtType) => {\n this.adapter_.deregisterInteractionHandler(evtType, this.activateHandler_);\n });\n this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);\n\n if (this.adapter_.isUnbounded()) {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n }\n\n private deregisterDeactivationHandlers_() {\n this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_);\n POINTER_DEACTIVATION_EVENT_TYPES.forEach((evtType) => {\n this.adapter_.deregisterDocumentInteractionHandler(evtType, this.deactivateHandler_);\n });\n }\n\n private removeCssVars_() {\n const rippleStrings = MDCRippleFoundation.strings;\n const keys = Object.keys(rippleStrings) as Array<keyof typeof rippleStrings>;\n keys.forEach((key) => {\n if (key.indexOf('VAR_') === 0) {\n this.adapter_.updateCssVariable(rippleStrings[key], null);\n }\n });\n }\n\n private activate_(evt?: Event) {\n if (this.adapter_.isSurfaceDisabled()) {\n return;\n }\n\n const activationState = this.activationState_;\n if (activationState.isActivated) {\n return;\n }\n\n // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction\n const previousActivationEvent = this.previousActivationEvent_;\n const isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type;\n if (isSameInteraction) {\n return;\n }\n\n activationState.isActivated = true;\n activationState.isProgrammatic = evt === undefined;\n activationState.activationEvent = evt;\n activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (\n evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown'\n );\n\n const hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(\n (target) => this.adapter_.containsEventTarget(target));\n if (hasActivatedChild) {\n // Immediately reset activation state, while preserving logic that prevents touch follow-on events\n this.resetActivationState_();\n return;\n }\n\n if (evt !== undefined) {\n activatedTargets.push(evt.target);\n this.registerDeactivationHandlers_(evt);\n }\n\n activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n this.animateActivation_();\n }\n\n requestAnimationFrame(() => {\n // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples\n activatedTargets = [];\n\n if (!activationState.wasElementMadeActive\n && evt !== undefined\n && ((evt as KeyboardEvent).key === ' ' || (evt as KeyboardEvent).keyCode === 32)) {\n // If space was pressed, try again within an rAF call to detect :active, because different UAs report\n // active states inconsistently when they're called within event handling code:\n // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971\n // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741\n // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS\n // variable is set within a rAF callback for a submit button interaction (#2241).\n activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);\n if (activationState.wasElementMadeActive) {\n this.animateActivation_();\n }\n }\n\n if (!activationState.wasElementMadeActive) {\n // Reset activation state immediately if element was not made active.\n this.activationState_ = this.defaultActivationState_();\n }\n });\n }\n\n private checkElementMadeActive_(evt?: Event) {\n return (evt !== undefined && evt.type === 'keydown') ? this.adapter_.isSurfaceActive() : true;\n }\n\n private animateActivation_() {\n const {VAR_FG_TRANSLATE_START, VAR_FG_TRANSLATE_END} = MDCRippleFoundation.strings;\n const {FG_DEACTIVATION, FG_ACTIVATION} = MDCRippleFoundation.cssClasses;\n const {DEACTIVATION_TIMEOUT_MS} = MDCRippleFoundation.numbers;\n\n this.layoutInternal_();\n\n let translateStart = '';\n let translateEnd = '';\n\n if (!this.adapter_.isUnbounded()) {\n const {startPoint, endPoint} = this.getFgTranslationCoordinates_();\n translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n }\n\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);\n this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);\n // Cancel any ongoing activation/deactivation animations\n clearTimeout(this.activationTimer_);\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.rmBoundedActivationClasses_();\n this.adapter_.removeClass(FG_DEACTIVATION);\n\n // Force layout in order to re-trigger the animation.\n this.adapter_.computeBoundingRect();\n this.adapter_.addClass(FG_ACTIVATION);\n this.activationTimer_ = setTimeout(() => this.activationTimerCallback_(), DEACTIVATION_TIMEOUT_MS);\n }\n\n private getFgTranslationCoordinates_(): FgTranslationCoordinates {\n const {activationEvent, wasActivatedByPointer} = this.activationState_;\n\n let startPoint;\n if (wasActivatedByPointer) {\n startPoint = getNormalizedEventCoords(\n activationEvent,\n this.adapter_.getWindowPageOffset(),\n this.adapter_.computeBoundingRect(),\n );\n } else {\n startPoint = {\n x: this.frame_.width / 2,\n y: this.frame_.height / 2,\n };\n }\n // Center the element around the start point.\n startPoint = {\n x: startPoint.x - (this.initialSize_ / 2),\n y: startPoint.y - (this.initialSize_ / 2),\n };\n\n const endPoint = {\n x: (this.frame_.width / 2) - (this.initialSize_ / 2),\n y: (this.frame_.height / 2) - (this.initialSize_ / 2),\n };\n\n return {startPoint, endPoint};\n }\n\n private runDeactivationUXLogicIfReady_() {\n // This method is called both when a pointing device is released, and when the activation animation ends.\n // The deactivation animation should only run after both of those occur.\n const {FG_DEACTIVATION} = MDCRippleFoundation.cssClasses;\n const {hasDeactivationUXRun, isActivated} = this.activationState_;\n const activationHasEnded = hasDeactivationUXRun || !isActivated;\n\n if (activationHasEnded && this.activationAnimationHasEnded_) {\n this.rmBoundedActivationClasses_();\n this.adapter_.addClass(FG_DEACTIVATION);\n this.fgDeactivationRemovalTimer_ = setTimeout(() => {\n this.adapter_.removeClass(FG_DEACTIVATION);\n }, numbers.FG_DEACTIVATION_MS);\n }\n }\n\n private rmBoundedActivationClasses_() {\n const {FG_ACTIVATION} = MDCRippleFoundation.cssClasses;\n this.adapter_.removeClass(FG_ACTIVATION);\n this.activationAnimationHasEnded_ = false;\n this.adapter_.computeBoundingRect();\n }\n\n private resetActivationState_() {\n this.previousActivationEvent_ = this.activationState_.activationEvent;\n this.activationState_ = this.defaultActivationState_();\n // Touch devices may fire additional events for the same interaction within a short time.\n // Store the previous event until it's safe to assume that subsequent events are for new interactions.\n setTimeout(() => this.previousActivationEvent_ = undefined, MDCRippleFoundation.numbers.TAP_DELAY_MS);\n }\n\n private deactivate_(): void {\n const activationState = this.activationState_;\n // This can happen in scenarios such as when you have a keyup event that blurs the element.\n if (!activationState.isActivated) {\n return;\n }\n\n const state: ActivationStateType = {...activationState};\n\n if (activationState.isProgrammatic) {\n requestAnimationFrame(() => this.animateDeactivation_(state));\n this.resetActivationState_();\n } else {\n this.deregisterDeactivationHandlers_();\n requestAnimationFrame(() => {\n this.activationState_.hasDeactivationUXRun = true;\n this.animateDeactivation_(state);\n this.resetActivationState_();\n });\n }\n }\n\n private animateDeactivation_({wasActivatedByPointer, wasElementMadeActive}: ActivationStateType) {\n if (wasActivatedByPointer || wasElementMadeActive) {\n this.runDeactivationUXLogicIfReady_();\n }\n }\n\n private layoutInternal_() {\n this.frame_ = this.adapter_.computeBoundingRect();\n const maxDim = Math.max(this.frame_.height, this.frame_.width);\n\n // Surface diameter is treated differently for unbounded vs. bounded ripples.\n // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\n // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\n // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\n // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\n // `overflow: hidden`.\n const getBoundedRadius = () => {\n const hypotenuse = Math.sqrt(Math.pow(this.frame_.width, 2) + Math.pow(this.frame_.height, 2));\n return hypotenuse + MDCRippleFoundation.numbers.PADDING;\n };\n\n this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius();\n\n // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\n this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE);\n this.fgScale_ = `${this.maxRadius_ / this.initialSize_}`;\n\n this.updateLayoutCssVars_();\n }\n\n private updateLayoutCssVars_() {\n const {\n VAR_FG_SIZE, VAR_LEFT, VAR_TOP, VAR_FG_SCALE,\n } = MDCRippleFoundation.strings;\n\n this.adapter_.updateCssVariable(VAR_FG_SIZE, `${this.initialSize_}px`);\n this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_);\n\n if (this.adapter_.isUnbounded()) {\n this.unboundedCoords_ = {\n left: Math.round((this.frame_.width / 2) - (this.initialSize_ / 2)),\n top: Math.round((this.frame_.height / 2) - (this.initialSize_ / 2)),\n };\n\n this.adapter_.updateCssVariable(VAR_LEFT, `${this.unboundedCoords_.left}px`);\n this.adapter_.updateCssVariable(VAR_TOP, `${this.unboundedCoords_.top}px`);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCRippleFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-ripple/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCListAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\nimport {MDCListIndex} from './types';\n\nconst ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select'];\n\nfunction isNumberArray(selectedIndex: MDCListIndex): selectedIndex is number[] {\n return selectedIndex instanceof Array;\n}\n\nexport class MDCListFoundation extends MDCFoundation<MDCListAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCListAdapter {\n return {\n addClassForElementIndex: () => undefined,\n focusItemAtIndex: () => undefined,\n getAttributeForElementIndex: () => null,\n getFocusedElementIndex: () => 0,\n getListItemCount: () => 0,\n hasCheckboxAtIndex: () => false,\n hasRadioAtIndex: () => false,\n isCheckboxCheckedAtIndex: () => false,\n isFocusInsideList: () => false,\n isRootFocused: () => false,\n notifyAction: () => undefined,\n removeClassForElementIndex: () => undefined,\n setAttributeForElementIndex: () => undefined,\n setCheckedCheckboxOrRadioAtIndex: () => undefined,\n setTabIndexForListItemChildren: () => undefined,\n };\n }\n\n private wrapFocus_ = false;\n private isVertical_ = true;\n private isSingleSelectionList_ = false;\n private selectedIndex_: MDCListIndex = numbers.UNSET_INDEX;\n private focusedItemIndex_ = numbers.UNSET_INDEX;\n private useActivatedClass_ = false;\n private ariaCurrentAttrValue_: string | null = null;\n private isCheckboxList_ = false;\n private isRadioList_ = false;\n\n constructor(adapter?: Partial<MDCListAdapter>) {\n super({...MDCListFoundation.defaultAdapter, ...adapter});\n }\n\n layout() {\n if (this.adapter_.getListItemCount() === 0) {\n return;\n }\n\n if (this.adapter_.hasCheckboxAtIndex(0)) {\n this.isCheckboxList_ = true;\n } else if (this.adapter_.hasRadioAtIndex(0)) {\n this.isRadioList_ = true;\n }\n }\n\n /**\n * Sets the private wrapFocus_ variable.\n */\n setWrapFocus(value: boolean) {\n this.wrapFocus_ = value;\n }\n\n /**\n * Sets the isVertical_ private variable.\n */\n setVerticalOrientation(value: boolean) {\n this.isVertical_ = value;\n }\n\n /**\n * Sets the isSingleSelectionList_ private variable.\n */\n setSingleSelection(value: boolean) {\n this.isSingleSelectionList_ = value;\n }\n\n /**\n * Sets the useActivatedClass_ private variable.\n */\n setUseActivatedClass(useActivated: boolean) {\n this.useActivatedClass_ = useActivated;\n }\n\n getSelectedIndex(): MDCListIndex {\n return this.selectedIndex_;\n }\n\n setSelectedIndex(index: MDCListIndex) {\n if (!this.isIndexValid_(index)) {\n return;\n }\n\n if (this.isCheckboxList_) {\n this.setCheckboxAtIndex_(index as number[]);\n } else if (this.isRadioList_) {\n this.setRadioAtIndex_(index as number);\n } else {\n this.setSingleSelectionAtIndex_(index as number);\n }\n }\n\n /**\n * Focus in handler for the list items.\n */\n handleFocusIn(_: FocusEvent, listItemIndex: number) {\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '0');\n }\n }\n\n /**\n * Focus out handler for the list items.\n */\n handleFocusOut(_: FocusEvent, listItemIndex: number) {\n if (listItemIndex >= 0) {\n this.adapter_.setTabIndexForListItemChildren(listItemIndex, '-1');\n }\n\n /**\n * Between Focusout & Focusin some browsers do not have focus on any element. Setting a delay to wait till the focus\n * is moved to next element.\n */\n setTimeout(() => {\n if (!this.adapter_.isFocusInsideList()) {\n this.setTabindexToFirstSelectedItem_();\n }\n }, 0);\n }\n\n /**\n * Key handler for the list.\n */\n handleKeydown(evt: KeyboardEvent, isRootListItem: boolean, listItemIndex: number) {\n const isArrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n const isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;\n const isArrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39;\n const isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;\n const isHome = evt.key === 'Home' || evt.keyCode === 36;\n const isEnd = evt.key === 'End' || evt.keyCode === 35;\n const isEnter = evt.key === 'Enter' || evt.keyCode === 13;\n const isSpace = evt.key === 'Space' || evt.keyCode === 32;\n\n if (this.adapter_.isRootFocused()) {\n if (isArrowUp || isEnd) {\n evt.preventDefault();\n this.focusLastElement();\n } else if (isArrowDown || isHome) {\n evt.preventDefault();\n this.focusFirstElement();\n }\n\n return;\n }\n\n let currentIndex = this.adapter_.getFocusedElementIndex();\n if (currentIndex === -1) {\n currentIndex = listItemIndex;\n if (currentIndex < 0) {\n // If this event doesn't have a mdc-list-item ancestor from the\n // current list (not from a sublist), return early.\n return;\n }\n }\n\n let nextIndex;\n if ((this.isVertical_ && isArrowDown) || (!this.isVertical_ && isArrowRight)) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusNextElement(currentIndex);\n } else if ((this.isVertical_ && isArrowUp) || (!this.isVertical_ && isArrowLeft)) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusPrevElement(currentIndex);\n } else if (isHome) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusFirstElement();\n } else if (isEnd) {\n this.preventDefaultEvent_(evt);\n nextIndex = this.focusLastElement();\n } else if (isEnter || isSpace) {\n if (isRootListItem) {\n // Return early if enter key is pressed on anchor element which triggers synthetic MouseEvent event.\n const target = evt.target as Element | null;\n if (target && target.tagName === 'A' && isEnter) {\n return;\n }\n this.preventDefaultEvent_(evt);\n\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(currentIndex);\n }\n\n this.adapter_.notifyAction(currentIndex);\n }\n }\n\n this.focusedItemIndex_ = currentIndex;\n\n if (nextIndex !== undefined) {\n this.setTabindexAtIndex_(nextIndex);\n this.focusedItemIndex_ = nextIndex;\n }\n }\n\n /**\n * Click handler for the list.\n */\n handleClick(index: number, toggleCheckbox: boolean) {\n if (index === numbers.UNSET_INDEX) {\n return;\n }\n\n if (this.isSelectableList_()) {\n this.setSelectedIndexOnAction_(index, toggleCheckbox);\n }\n\n this.adapter_.notifyAction(index);\n\n this.setTabindexAtIndex_(index);\n this.focusedItemIndex_ = index;\n }\n\n /**\n * Focuses the next element on the list.\n */\n focusNextElement(index: number) {\n const count = this.adapter_.getListItemCount();\n let nextIndex = index + 1;\n if (nextIndex >= count) {\n if (this.wrapFocus_) {\n nextIndex = 0;\n } else {\n // Return early because last item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(nextIndex);\n\n return nextIndex;\n }\n\n /**\n * Focuses the previous element on the list.\n */\n focusPrevElement(index: number) {\n let prevIndex = index - 1;\n if (prevIndex < 0) {\n if (this.wrapFocus_) {\n prevIndex = this.adapter_.getListItemCount() - 1;\n } else {\n // Return early because first item is already focused.\n return index;\n }\n }\n this.adapter_.focusItemAtIndex(prevIndex);\n\n return prevIndex;\n }\n\n focusFirstElement() {\n this.adapter_.focusItemAtIndex(0);\n return 0;\n }\n\n focusLastElement() {\n const lastIndex = this.adapter_.getListItemCount() - 1;\n this.adapter_.focusItemAtIndex(lastIndex);\n return lastIndex;\n }\n\n /**\n * Ensures that preventDefault is only called if the containing element doesn't\n * consume the event, and it will cause an unintended scroll.\n */\n private preventDefaultEvent_(evt: KeyboardEvent) {\n const target = evt.target as Element;\n const tagName = `${target.tagName}`.toLowerCase();\n if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {\n evt.preventDefault();\n }\n }\n\n private setSingleSelectionAtIndex_(index: number) {\n if (this.selectedIndex_ === index) {\n return;\n }\n\n let selectedClassName = cssClasses.LIST_ITEM_SELECTED_CLASS;\n if (this.useActivatedClass_) {\n selectedClassName = cssClasses.LIST_ITEM_ACTIVATED_CLASS;\n }\n\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.removeClassForElementIndex(this.selectedIndex_ as number, selectedClassName);\n }\n this.adapter_.addClassForElementIndex(index, selectedClassName);\n this.setAriaForSingleSelectionAtIndex_(index);\n\n this.selectedIndex_ = index;\n }\n\n /**\n * Sets aria attribute for single selection at given index.\n */\n private setAriaForSingleSelectionAtIndex_(index: number) {\n // Detect the presence of aria-current and get the value only during list initialization when it is in unset state.\n if (this.selectedIndex_ === numbers.UNSET_INDEX) {\n this.ariaCurrentAttrValue_ =\n this.adapter_.getAttributeForElementIndex(index, strings.ARIA_CURRENT);\n }\n\n const isAriaCurrent = this.ariaCurrentAttrValue_ !== null;\n const ariaAttribute = isAriaCurrent ? strings.ARIA_CURRENT : strings.ARIA_SELECTED;\n\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_ as number, ariaAttribute, 'false');\n }\n\n const ariaAttributeValue = isAriaCurrent ? this.ariaCurrentAttrValue_ : 'true';\n this.adapter_.setAttributeForElementIndex(index, ariaAttribute, ariaAttributeValue as string);\n }\n\n /**\n * Toggles radio at give index. Radio doesn't change the checked state if it is already checked.\n */\n private setRadioAtIndex_(index: number) {\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, true);\n\n if (this.selectedIndex_ !== numbers.UNSET_INDEX) {\n this.adapter_.setAttributeForElementIndex(this.selectedIndex_ as number, strings.ARIA_CHECKED, 'false');\n }\n\n this.adapter_.setAttributeForElementIndex(index, strings.ARIA_CHECKED, 'true');\n\n this.selectedIndex_ = index;\n }\n\n private setCheckboxAtIndex_(index: number[]) {\n for (let i = 0; i < this.adapter_.getListItemCount(); i++) {\n let isChecked = false;\n if (index.indexOf(i) >= 0) {\n isChecked = true;\n }\n\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(i, isChecked);\n this.adapter_.setAttributeForElementIndex(i, strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n }\n\n this.selectedIndex_ = index;\n }\n\n private setTabindexAtIndex_(index: number) {\n if (this.focusedItemIndex_ === numbers.UNSET_INDEX && index !== 0) {\n // If no list item was selected set first list item's tabindex to -1.\n // Generally, tabindex is set to 0 on first list item of list that has no preselected items.\n this.adapter_.setAttributeForElementIndex(0, 'tabindex', '-1');\n } else if (this.focusedItemIndex_ >= 0 && this.focusedItemIndex_ !== index) {\n this.adapter_.setAttributeForElementIndex(this.focusedItemIndex_, 'tabindex', '-1');\n }\n\n this.adapter_.setAttributeForElementIndex(index, 'tabindex', '0');\n }\n\n /**\n * @return Return true if it is single selectin list, checkbox list or radio list.\n */\n private isSelectableList_() {\n return this.isSingleSelectionList_ || this.isCheckboxList_ || this.isRadioList_;\n }\n\n private setTabindexToFirstSelectedItem_() {\n let targetIndex = 0;\n\n if (this.isSelectableList_()) {\n if (typeof this.selectedIndex_ === 'number' && this.selectedIndex_ !== numbers.UNSET_INDEX) {\n targetIndex = this.selectedIndex_;\n } else if (isNumberArray(this.selectedIndex_) && this.selectedIndex_.length > 0) {\n targetIndex = this.selectedIndex_.reduce((currentIndex, minIndex) => Math.min(currentIndex, minIndex));\n }\n }\n\n this.setTabindexAtIndex_(targetIndex);\n }\n\n private isIndexValid_(index: MDCListIndex) {\n if (index instanceof Array) {\n if (!this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Array of index is only supported for checkbox based list');\n }\n\n if (index.length === 0) {\n return true;\n } else {\n return index.some((i) => this.isIndexInRange_(i));\n }\n } else if (typeof index === 'number') {\n if (this.isCheckboxList_) {\n throw new Error('MDCListFoundation: Expected array of index for checkbox based list but got number: ' + index);\n }\n return this.isIndexInRange_(index);\n } else {\n return false;\n }\n }\n\n private isIndexInRange_(index: number) {\n const listSize = this.adapter_.getListItemCount();\n return index >= 0 && index < listSize;\n }\n\n private setSelectedIndexOnAction_(index: number, toggleCheckbox = true) {\n if (this.isCheckboxList_) {\n this.toggleCheckboxAtIndex_(index, toggleCheckbox);\n } else {\n this.setSelectedIndex(index);\n }\n }\n\n private toggleCheckboxAtIndex_(index: number, toggleCheckbox: boolean) {\n let isChecked = this.adapter_.isCheckboxCheckedAtIndex(index);\n\n if (toggleCheckbox) {\n isChecked = !isChecked;\n this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, isChecked);\n }\n\n this.adapter_.setAttributeForElementIndex(index, strings.ARIA_CHECKED, isChecked ? 'true' : 'false');\n\n // If none of the checkbox items are selected and selectedIndex is not initialized then provide a default value.\n let selectedIndexes = this.selectedIndex_ === numbers.UNSET_INDEX ? [] : (this.selectedIndex_ as number[]).slice();\n\n if (isChecked) {\n selectedIndexes.push(index);\n } else {\n selectedIndexes = selectedIndexes.filter((i) => i !== index);\n }\n\n this.selectedIndex_ = selectedIndexes;\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCListFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-list/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ANCHOR: 'mdc-menu-surface--anchor',\n ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed',\n ANIMATING_OPEN: 'mdc-menu-surface--animating-open',\n FIXED: 'mdc-menu-surface--fixed',\n OPEN: 'mdc-menu-surface--open',\n ROOT: 'mdc-menu-surface',\n};\n\n// tslint:disable:object-literal-sort-keys\nconst strings = {\n CLOSED_EVENT: 'MDCMenuSurface:closed',\n OPENED_EVENT: 'MDCMenuSurface:opened',\n FOCUSABLE_ELEMENTS: [\n 'button:not(:disabled)', '[href]:not([aria-disabled=\"true\"])', 'input:not(:disabled)',\n 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]:not([tabindex=\"-1\"]):not([aria-disabled=\"true\"])',\n ].join(', '),\n};\n// tslint:enable:object-literal-sort-keys\n\nconst numbers = {\n /** Total duration of menu-surface open animation. */\n TRANSITION_OPEN_DURATION: 120,\n\n /** Total duration of menu-surface close animation. */\n TRANSITION_CLOSE_DURATION: 75,\n\n /** Margin left to the edge of the viewport when menu-surface is at maximum possible height. */\n MARGIN_TO_EDGE: 32,\n\n /** Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning. */\n ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67,\n};\n\n/**\n * Enum for bits in the {@see Corner) bitmap.\n */\nenum CornerBit {\n BOTTOM = 1,\n CENTER = 2,\n RIGHT = 4,\n FLIP_RTL = 8,\n}\n\n/**\n * Enum for representing an element corner for positioning the menu-surface.\n *\n * The START constants map to LEFT if element directionality is left\n * to right and RIGHT if the directionality is right to left.\n * Likewise END maps to RIGHT or LEFT depending on the directionality.\n */\nenum Corner {\n TOP_LEFT = 0,\n TOP_RIGHT = CornerBit.RIGHT,\n BOTTOM_LEFT = CornerBit.BOTTOM,\n BOTTOM_RIGHT = CornerBit.BOTTOM | CornerBit.RIGHT, // tslint:disable-line:no-bitwise\n TOP_START = CornerBit.FLIP_RTL,\n TOP_END = CornerBit.FLIP_RTL | CornerBit.RIGHT, // tslint:disable-line:no-bitwise\n BOTTOM_START = CornerBit.BOTTOM | CornerBit.FLIP_RTL, // tslint:disable-line:no-bitwise\n BOTTOM_END = CornerBit.BOTTOM | CornerBit.RIGHT | CornerBit.FLIP_RTL, // tslint:disable-line:no-bitwise\n}\n\nexport {cssClasses, strings, numbers, CornerBit, Corner};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu-surface/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n FIXED_CLASS: 'mdc-top-app-bar--fixed',\n FIXED_SCROLLED_CLASS: 'mdc-top-app-bar--fixed-scrolled',\n SHORT_CLASS: 'mdc-top-app-bar--short',\n SHORT_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed',\n SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item',\n};\n\nconst numbers = {\n DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100,\n MAX_TOP_APP_BAR_HEIGHT: 128,\n};\n\nconst strings = {\n ACTION_ITEM_SELECTOR: '.mdc-top-app-bar__action-item',\n NAVIGATION_EVENT: 'MDCTopAppBar:nav',\n NAVIGATION_ICON_SELECTOR: '.mdc-top-app-bar__navigation-icon',\n ROOT_SELECTOR: '.mdc-top-app-bar',\n TITLE_SELECTOR: '.mdc-top-app-bar__title',\n};\n\nexport {cssClasses, numbers, strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCMenuSurfaceAdapter} from './adapter';\nimport {Corner, CornerBit, cssClasses, numbers, strings} from './constants';\nimport {MDCMenuDimensions, MDCMenuDistance, MDCMenuPoint} from './types';\n\ninterface AutoLayoutMeasurements {\n anchorSize: MDCMenuDimensions;\n bodySize: MDCMenuDimensions;\n surfaceSize: MDCMenuDimensions;\n viewportDistance: MDCMenuDistance;\n viewportSize: MDCMenuDimensions;\n windowScroll: MDCMenuPoint;\n}\n\nexport class MDCMenuSurfaceFoundation extends MDCFoundation<MDCMenuSurfaceAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get Corner() {\n return Corner;\n }\n\n /**\n * @see {@link MDCMenuSurfaceAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCMenuSurfaceAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n hasAnchor: () => false,\n\n isElementInContainer: () => false,\n isFocused: () => false,\n isFirstElementFocused: () => false,\n isLastElementFocused: () => false,\n isRtl: () => false,\n\n getInnerDimensions: () => ({height: 0, width: 0}),\n getAnchorDimensions: () => null,\n getWindowDimensions: () => ({height: 0, width: 0}),\n getBodyDimensions: () => ({height: 0, width: 0}),\n getWindowScroll: () => ({x: 0, y: 0}),\n setPosition: () => undefined,\n setMaxHeight: () => undefined,\n setTransformOrigin: () => undefined,\n\n saveFocus: () => undefined,\n restoreFocus: () => undefined,\n focusFirstElement: () => undefined,\n focusLastElement: () => undefined,\n\n notifyClose: () => undefined,\n notifyOpen: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private isOpen_ = false;\n private isQuickOpen_ = false;\n private isHoistedElement_ = false;\n private isFixedPosition_ = false;\n\n private openAnimationEndTimerId_ = 0;\n private closeAnimationEndTimerId_ = 0;\n private animationRequestId_ = 0;\n\n private anchorCorner_: Corner = Corner.TOP_START;\n private anchorMargin_: MDCMenuDistance = {top: 0, right: 0, bottom: 0, left: 0};\n private position_: MDCMenuPoint = {x: 0, y: 0};\n\n private dimensions_!: MDCMenuDimensions; // assigned in open()\n private measurements_!: AutoLayoutMeasurements; // assigned in open()\n\n constructor(adapter?: Partial<MDCMenuSurfaceAdapter>) {\n super({...MDCMenuSurfaceFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n const {ROOT, OPEN} = MDCMenuSurfaceFoundation.cssClasses;\n\n if (!this.adapter_.hasClass(ROOT)) {\n throw new Error(`${ROOT} class required in root element.`);\n }\n\n if (this.adapter_.hasClass(OPEN)) {\n this.isOpen_ = true;\n }\n }\n\n destroy() {\n clearTimeout(this.openAnimationEndTimerId_);\n clearTimeout(this.closeAnimationEndTimerId_);\n // Cancel any currently running animations.\n cancelAnimationFrame(this.animationRequestId_);\n }\n\n /**\n * @param corner Default anchor corner alignment of top-left menu surface corner.\n */\n setAnchorCorner(corner: Corner) {\n this.anchorCorner_ = corner;\n }\n\n /**\n * @param margin Set of margin values from anchor.\n */\n setAnchorMargin(margin: Partial<MDCMenuDistance>) {\n this.anchorMargin_.top = margin.top || 0;\n this.anchorMargin_.right = margin.right || 0;\n this.anchorMargin_.bottom = margin.bottom || 0;\n this.anchorMargin_.left = margin.left || 0;\n }\n\n /** Used to indicate if the menu-surface is hoisted to the body. */\n setIsHoisted(isHoisted: boolean) {\n this.isHoistedElement_ = isHoisted;\n }\n\n /** Used to set the menu-surface calculations based on a fixed position menu. */\n setFixedPosition(isFixedPosition: boolean) {\n this.isFixedPosition_ = isFixedPosition;\n }\n\n /** Sets the menu-surface position on the page. */\n setAbsolutePosition(x: number, y: number) {\n this.position_.x = this.isFinite_(x) ? x : 0;\n this.position_.y = this.isFinite_(y) ? y : 0;\n }\n\n setQuickOpen(quickOpen: boolean) {\n this.isQuickOpen_ = quickOpen;\n }\n\n isOpen() {\n return this.isOpen_;\n }\n\n /**\n * Open the menu surface.\n */\n open() {\n this.adapter_.saveFocus();\n\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n }\n\n this.animationRequestId_ = requestAnimationFrame(() => {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n this.dimensions_ = this.adapter_.getInnerDimensions();\n this.autoPosition_();\n if (this.isQuickOpen_) {\n this.adapter_.notifyOpen();\n } else {\n this.openAnimationEndTimerId_ = setTimeout(() => {\n this.openAnimationEndTimerId_ = 0;\n this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);\n this.adapter_.notifyOpen();\n }, numbers.TRANSITION_OPEN_DURATION);\n }\n });\n\n this.isOpen_ = true;\n }\n\n /**\n * Closes the menu surface.\n */\n close() {\n if (!this.isQuickOpen_) {\n this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n }\n\n requestAnimationFrame(() => {\n this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);\n if (this.isQuickOpen_) {\n this.adapter_.notifyClose();\n } else {\n this.closeAnimationEndTimerId_ = setTimeout(() => {\n this.closeAnimationEndTimerId_ = 0;\n this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);\n this.adapter_.notifyClose();\n }, numbers.TRANSITION_CLOSE_DURATION);\n }\n });\n\n this.isOpen_ = false;\n this.maybeRestoreFocus_();\n }\n\n /** Handle clicks and close if not within menu-surface element. */\n handleBodyClick(evt: MouseEvent) {\n const el = evt.target as Element;\n if (this.adapter_.isElementInContainer(el)) {\n return;\n }\n this.close();\n }\n\n /** Handle keys that close the surface. */\n handleKeydown(evt: KeyboardEvent) {\n const {keyCode, key, shiftKey} = evt;\n\n const isEscape = key === 'Escape' || keyCode === 27;\n const isTab = key === 'Tab' || keyCode === 9;\n\n if (isEscape) {\n this.close();\n } else if (isTab) {\n if (this.adapter_.isLastElementFocused() && !shiftKey) {\n this.adapter_.focusFirstElement();\n evt.preventDefault();\n } else if (this.adapter_.isFirstElementFocused() && shiftKey) {\n this.adapter_.focusLastElement();\n evt.preventDefault();\n }\n }\n }\n\n private autoPosition_() {\n // Compute measurements for autoposition methods reuse.\n this.measurements_ = this.getAutoLayoutMeasurements_();\n\n const corner = this.getOriginCorner_();\n const maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight_(corner);\n const verticalAlignment = this.hasBit_(corner, CornerBit.BOTTOM) ? 'bottom' : 'top';\n let horizontalAlignment = this.hasBit_(corner, CornerBit.RIGHT) ? 'right' : 'left';\n const horizontalOffset = this.getHorizontalOriginOffset_(corner);\n const verticalOffset = this.getVerticalOriginOffset_(corner);\n const {anchorSize, surfaceSize} = this.measurements_;\n\n const position: Partial<MDCMenuDistance> = {\n [horizontalAlignment]: horizontalOffset,\n [verticalAlignment]: verticalOffset,\n };\n\n // Center align when anchor width is comparable or greater than menu surface, otherwise keep corner.\n if (anchorSize.width / surfaceSize.width > numbers.ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) {\n horizontalAlignment = 'center';\n }\n\n // If the menu-surface has been hoisted to the body, it's no longer relative to the anchor element\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n this.adjustPositionForHoistedElement_(position);\n }\n\n this.adapter_.setTransformOrigin(`${horizontalAlignment} ${verticalAlignment}`);\n this.adapter_.setPosition(position);\n this.adapter_.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : '');\n }\n\n /**\n * @return Measurements used to position menu surface popup.\n */\n private getAutoLayoutMeasurements_(): AutoLayoutMeasurements {\n let anchorRect = this.adapter_.getAnchorDimensions();\n const bodySize = this.adapter_.getBodyDimensions();\n const viewportSize = this.adapter_.getWindowDimensions();\n const windowScroll = this.adapter_.getWindowScroll();\n\n if (!anchorRect) {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n anchorRect = {\n top: this.position_.y,\n right: this.position_.x,\n bottom: this.position_.y,\n left: this.position_.x,\n width: 0,\n height: 0,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n return {\n anchorSize: anchorRect,\n bodySize,\n surfaceSize: this.dimensions_,\n viewportDistance: {\n // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together\n top: anchorRect.top,\n right: viewportSize.width - anchorRect.right,\n bottom: viewportSize.height - anchorRect.bottom,\n left: anchorRect.left,\n // tslint:enable:object-literal-sort-keys\n },\n viewportSize,\n windowScroll,\n };\n }\n\n /**\n * Computes the corner of the anchor from which to animate and position the menu surface.\n */\n private getOriginCorner_(): Corner {\n // Defaults: open from the top left.\n let corner = Corner.TOP_LEFT;\n\n const {viewportDistance, anchorSize, surfaceSize} = this.measurements_;\n\n const isBottomAligned = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n const availableTop = isBottomAligned ? viewportDistance.top + anchorSize.height + this.anchorMargin_.bottom\n : viewportDistance.top + this.anchorMargin_.top;\n const availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom\n : viewportDistance.bottom + anchorSize.height - this.anchorMargin_.top;\n\n const topOverflow = surfaceSize.height - availableTop;\n const bottomOverflow = surfaceSize.height - availableBottom;\n if (bottomOverflow > 0 && topOverflow < bottomOverflow) {\n corner = this.setBit_(corner, CornerBit.BOTTOM);\n }\n\n const isRtl = this.adapter_.isRtl();\n const isFlipRtl = this.hasBit_(this.anchorCorner_, CornerBit.FLIP_RTL);\n const avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.RIGHT);\n const isAlignedRight = (avoidHorizontalOverlap && !isRtl) ||\n (!avoidHorizontalOverlap && isFlipRtl && isRtl);\n const availableLeft = isAlignedRight ? viewportDistance.left + anchorSize.width + this.anchorMargin_.right :\n viewportDistance.left + this.anchorMargin_.left;\n const availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right :\n viewportDistance.right + anchorSize.width - this.anchorMargin_.left;\n\n const leftOverflow = surfaceSize.width - availableLeft;\n const rightOverflow = surfaceSize.width - availableRight;\n\n if ((leftOverflow < 0 && isAlignedRight && isRtl) ||\n (avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0) ||\n (rightOverflow > 0 && leftOverflow < rightOverflow)) {\n corner = this.setBit_(corner, CornerBit.RIGHT);\n }\n\n return corner;\n }\n\n /**\n * @param corner Origin corner of the menu surface.\n * @return Maximum height of the menu surface, based on available space. 0 indicates should not be set.\n */\n private getMenuSurfaceMaxHeight_(corner: Corner): number {\n const {viewportDistance} = this.measurements_;\n\n let maxHeight = 0;\n const isBottomAligned = this.hasBit_(corner, CornerBit.BOTTOM);\n const isBottomAnchored = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n const {MARGIN_TO_EDGE} = MDCMenuSurfaceFoundation.numbers;\n\n // When maximum height is not specified, it is handled from CSS.\n if (isBottomAligned) {\n maxHeight = viewportDistance.top + this.anchorMargin_.top - MARGIN_TO_EDGE;\n if (!isBottomAnchored) {\n maxHeight += this.measurements_.anchorSize.height;\n }\n } else {\n maxHeight =\n viewportDistance.bottom - this.anchorMargin_.bottom + this.measurements_.anchorSize.height - MARGIN_TO_EDGE;\n if (isBottomAnchored) {\n maxHeight -= this.measurements_.anchorSize.height;\n }\n }\n\n return maxHeight;\n }\n\n /**\n * @param corner Origin corner of the menu surface.\n * @return Horizontal offset of menu surface origin corner from corresponding anchor corner.\n */\n private getHorizontalOriginOffset_(corner: Corner): number {\n const {anchorSize} = this.measurements_;\n\n // isRightAligned corresponds to using the 'right' property on the surface.\n const isRightAligned = this.hasBit_(corner, CornerBit.RIGHT);\n const avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.RIGHT);\n\n if (isRightAligned) {\n const rightOffset =\n avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.left : this.anchorMargin_.right;\n\n // For hoisted or fixed elements, adjust the offset by the difference between viewport width and body width so\n // when we calculate the right value (`adjustPositionForHoistedElement_`) based on the element position,\n // the right property is correct.\n if (this.isHoistedElement_ || this.isFixedPosition_) {\n return rightOffset - (this.measurements_.viewportSize.width - this.measurements_.bodySize.width);\n }\n\n return rightOffset;\n }\n\n return avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.right : this.anchorMargin_.left;\n }\n\n /**\n * @param corner Origin corner of the menu surface.\n * @return Vertical offset of menu surface origin corner from corresponding anchor corner.\n */\n private getVerticalOriginOffset_(corner: Corner): number {\n const {anchorSize} = this.measurements_;\n const isBottomAligned = this.hasBit_(corner, CornerBit.BOTTOM);\n const avoidVerticalOverlap = this.hasBit_(this.anchorCorner_, CornerBit.BOTTOM);\n\n let y = 0;\n if (isBottomAligned) {\n y = avoidVerticalOverlap ? anchorSize.height - this.anchorMargin_.top : -this.anchorMargin_.bottom;\n } else {\n y = avoidVerticalOverlap ? (anchorSize.height + this.anchorMargin_.bottom) : this.anchorMargin_.top;\n }\n return y;\n }\n\n /** Calculates the offsets for positioning the menu-surface when the menu-surface has been hoisted to the body. */\n private adjustPositionForHoistedElement_(position: Partial<MDCMenuDistance>) {\n const {windowScroll, viewportDistance} = this.measurements_;\n\n const props = Object.keys(position) as Array<keyof Partial<MDCMenuDistance>>;\n\n for (const prop of props) {\n let value = position[prop] || 0;\n\n // Hoisted surfaces need to have the anchor elements location on the page added to the\n // position properties for proper alignment on the body.\n value += viewportDistance[prop];\n\n // Surfaces that are absolutely positioned need to have additional calculations for scroll\n // and bottom positioning.\n if (!this.isFixedPosition_) {\n if (prop === 'top') {\n value += windowScroll.y;\n } else if (prop === 'bottom') {\n value -= windowScroll.y;\n } else if (prop === 'left') {\n value += windowScroll.x;\n } else { // prop === 'right'\n value -= windowScroll.x;\n }\n }\n\n position[prop] = value;\n }\n }\n\n /**\n * The last focused element when the menu surface was opened should regain focus, if the user is\n * focused on or within the menu surface when it is closed.\n */\n private maybeRestoreFocus_() {\n const isRootFocused = this.adapter_.isFocused();\n const childHasFocus = document.activeElement && this.adapter_.isElementInContainer(document.activeElement);\n if (isRootFocused || childHasFocus) {\n this.adapter_.restoreFocus();\n }\n }\n\n private hasBit_(corner: Corner, bit: CornerBit): boolean {\n return Boolean(corner & bit); // tslint:disable-line:no-bitwise\n }\n\n private setBit_(corner: Corner, bit: CornerBit): Corner {\n return corner | bit; // tslint:disable-line:no-bitwise\n }\n\n /**\n * isFinite that doesn't force conversion to number type.\n * Equivalent to Number.isFinite in ES2015, which is not supported in IE.\n */\n private isFinite_(num: number): boolean {\n return typeof num === 'number' && isFinite(num);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCMenuSurfaceFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu-surface/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTabIndicatorAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport abstract class MDCTabIndicatorFoundation extends MDCFoundation<MDCTabIndicatorAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCTabIndicatorAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n computeContentClientRect: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n setContentStyleProperty: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n constructor(adapter?: Partial<MDCTabIndicatorAdapter>) {\n super({...MDCTabIndicatorFoundation.defaultAdapter, ...adapter});\n }\n\n computeContentClientRect(): ClientRect {\n return this.adapter_.computeContentClientRect();\n }\n\n abstract activate(previousIndicatorClientRect?: ClientRect): void;\n abstract deactivate(): void;\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabIndicatorFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {\n CssVendorPropertyMap, JsVendorPropertyMap,\n PrefixedCssPropertyName, PrefixedJsEventType,\n StandardCssPropertyName, StandardJsEventType,\n} from './types';\n\nconst cssPropertyNameMap: CssVendorPropertyMap = {\n animation: {\n prefixed: '-webkit-animation',\n standard: 'animation',\n },\n transform: {\n prefixed: '-webkit-transform',\n standard: 'transform',\n },\n transition: {\n prefixed: '-webkit-transition',\n standard: 'transition',\n },\n};\n\nconst jsEventTypeMap: JsVendorPropertyMap = {\n animationend: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationEnd',\n standard: 'animationend',\n },\n animationiteration: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationIteration',\n standard: 'animationiteration',\n },\n animationstart: {\n cssProperty: 'animation',\n prefixed: 'webkitAnimationStart',\n standard: 'animationstart',\n },\n transitionend: {\n cssProperty: 'transition',\n prefixed: 'webkitTransitionEnd',\n standard: 'transitionend',\n },\n};\n\nfunction isWindow(windowObj: Window): boolean {\n return Boolean(windowObj.document) && typeof windowObj.document.createElement === 'function';\n}\n\nexport function getCorrectPropertyName(windowObj: Window, cssProperty: StandardCssPropertyName):\n StandardCssPropertyName | PrefixedCssPropertyName {\n if (isWindow(windowObj) && cssProperty in cssPropertyNameMap) {\n const el = windowObj.document.createElement('div');\n const {standard, prefixed} = cssPropertyNameMap[cssProperty];\n const isStandard = standard in el.style;\n return isStandard ? standard : prefixed;\n }\n return cssProperty;\n}\n\nexport function getCorrectEventName(windowObj: Window, eventType: StandardJsEventType):\n StandardJsEventType | PrefixedJsEventType {\n if (isWindow(windowObj) && eventType in jsEventTypeMap) {\n const el = windowObj.document.createElement('div');\n const {standard, prefixed, cssProperty} = jsEventTypeMap[eventType];\n const isStandard = cssProperty in el.style;\n return isStandard ? standard : prefixed;\n }\n return eventType;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-animation/util.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport {MDCRipplePoint} from './types';\n\n/**\n * Stores result from supportsCssVariables to avoid redundant processing to\n * detect CSS custom variable support.\n */\nlet supportsCssVariables_: boolean | undefined;\n\n/**\n * Stores result from applyPassive to avoid redundant processing to detect\n * passive event listener support.\n */\nlet supportsPassive_: boolean | undefined;\n\nfunction detectEdgePseudoVarBug(windowObj: Window): boolean {\n // Detect versions of Edge with buggy var() support\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/\n const document = windowObj.document;\n const node = document.createElement('div');\n node.className = 'mdc-ripple-surface--test-edge-var-bug';\n document.body.appendChild(node);\n\n // The bug exists if ::before style ends up propagating to the parent element.\n // Additionally, getComputedStyle returns null in iframes with display: \"none\" in Firefox,\n // but Firefox is known to support CSS custom properties correctly.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n const computedStyle = windowObj.getComputedStyle(node);\n const hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid';\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return hasPseudoVarBug;\n}\n\nexport function supportsCssVariables(windowObj: Window, forceRefresh = false): boolean {\n const {CSS} = windowObj;\n let supportsCssVars = supportsCssVariables_;\n if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {\n return supportsCssVariables_;\n }\n\n const supportsFunctionPresent = CSS && typeof CSS.supports === 'function';\n if (!supportsFunctionPresent) {\n return false;\n }\n\n const explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes');\n // See: https://bugs.webkit.org/show_bug.cgi?id=154669\n // See: README section on Safari\n const weAreFeatureDetectingSafari10plus = (\n CSS.supports('(--css-vars: yes)') &&\n CSS.supports('color', '#00000000')\n );\n\n if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) {\n supportsCssVars = !detectEdgePseudoVarBug(windowObj);\n } else {\n supportsCssVars = false;\n }\n\n if (!forceRefresh) {\n supportsCssVariables_ = supportsCssVars;\n }\n return supportsCssVars;\n}\n\n/**\n * Determine whether the current browser supports passive event listeners, and\n * if so, use them.\n */\nexport function applyPassive(globalObj: Window = window, forceRefresh = false):\n boolean | EventListenerOptions {\n if (supportsPassive_ === undefined || forceRefresh) {\n let isSupported = false;\n try {\n globalObj.document.addEventListener('test', () => undefined, {\n get passive() {\n isSupported = true;\n return isSupported;\n },\n });\n } catch (e) {\n } // tslint:disable-line:no-empty cannot throw error due to tests. tslint also disables console.log.\n\n supportsPassive_ = isSupported;\n }\n\n return supportsPassive_ ? {passive: true} as EventListenerOptions : false;\n}\n\nexport function getNormalizedEventCoords(evt: Event | undefined, pageOffset: MDCRipplePoint, clientRect: ClientRect):\n MDCRipplePoint {\n if (!evt) {\n return {x: 0, y: 0};\n }\n const {x, y} = pageOffset;\n const documentX = x + clientRect.left;\n const documentY = y + clientRect.top;\n\n let normalizedX;\n let normalizedY;\n // Determine touch point relative to the ripple container.\n if (evt.type === 'touchstart') {\n const touchEvent = evt as TouchEvent;\n normalizedX = touchEvent.changedTouches[0].pageX - documentX;\n normalizedY = touchEvent.changedTouches[0].pageY - documentY;\n } else {\n const mouseEvent = evt as MouseEvent;\n normalizedX = mouseEvent.pageX - documentX;\n normalizedY = mouseEvent.pageY - documentY;\n }\n\n return {x: normalizedX, y: normalizedY};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-ripple/util.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCChipAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nconst emptyClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\nexport class MDCChipFoundation extends MDCFoundation<MDCChipAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get defaultAdapter(): MDCChipAdapter {\n return {\n addClass: () => undefined,\n addClassToLeadingIcon: () => undefined,\n eventTargetHasClass: () => false,\n getCheckmarkBoundingClientRect: () => emptyClientRect,\n getComputedStyleValue: () => '',\n getRootBoundingClientRect: () => emptyClientRect,\n hasClass: () => false,\n hasLeadingIcon: () => false,\n notifyInteraction: () => undefined,\n notifyRemoval: () => undefined,\n notifySelection: () => undefined,\n notifyTrailingIconInteraction: () => undefined,\n removeClass: () => undefined,\n removeClassFromLeadingIcon: () => undefined,\n setStyleProperty: () => undefined,\n };\n }\n\n /**\n * Whether a trailing icon click should immediately trigger exit/removal of the chip.\n */\n private shouldRemoveOnTrailingIconClick_ = true;\n\n constructor(adapter?: Partial<MDCChipAdapter>) {\n super({...MDCChipFoundation.defaultAdapter, ...adapter});\n }\n\n isSelected() {\n return this.adapter_.hasClass(cssClasses.SELECTED);\n }\n\n setSelected(selected: boolean) {\n if (selected) {\n this.adapter_.addClass(cssClasses.SELECTED);\n } else {\n this.adapter_.removeClass(cssClasses.SELECTED);\n }\n this.adapter_.notifySelection(selected);\n }\n\n getShouldRemoveOnTrailingIconClick() {\n return this.shouldRemoveOnTrailingIconClick_;\n }\n\n setShouldRemoveOnTrailingIconClick(shouldRemove: boolean) {\n this.shouldRemoveOnTrailingIconClick_ = shouldRemove;\n }\n\n getDimensions(): ClientRect {\n const getRootRect = () => this.adapter_.getRootBoundingClientRect();\n const getCheckmarkRect = () => this.adapter_.getCheckmarkBoundingClientRect();\n\n // When a chip has a checkmark and not a leading icon, the bounding rect changes in size depending on the current\n // size of the checkmark.\n if (!this.adapter_.hasLeadingIcon()) {\n const checkmarkRect = getCheckmarkRect();\n if (checkmarkRect) {\n const rootRect = getRootRect();\n // Checkmark is a square, meaning the client rect's width and height are identical once the animation completes.\n // However, the checkbox is initially hidden by setting the width to 0.\n // To account for an initial width of 0, we use the checkbox's height instead (which equals the end-state width)\n // when adding it to the root client rect's width.\n return {\n bottom: rootRect.bottom,\n height: rootRect.height,\n left: rootRect.left,\n right: rootRect.right,\n top: rootRect.top,\n width: rootRect.width + checkmarkRect.height,\n };\n }\n }\n\n return getRootRect();\n }\n\n /**\n * Begins the exit animation which leads to removal of the chip.\n */\n beginExit() {\n this.adapter_.addClass(cssClasses.CHIP_EXIT);\n }\n\n /**\n * Handles an interaction event on the root element.\n */\n handleInteraction(evt: MouseEvent | KeyboardEvent) {\n const isEnter = (evt as KeyboardEvent).key === 'Enter' || (evt as KeyboardEvent).keyCode === 13;\n if (evt.type === 'click' || isEnter) {\n this.adapter_.notifyInteraction();\n }\n }\n\n /**\n * Handles a transition end event on the root element.\n */\n handleTransitionEnd(evt: TransitionEvent) {\n // Handle transition end event on the chip when it is about to be removed.\n if (this.adapter_.eventTargetHasClass(evt.target, cssClasses.CHIP_EXIT)) {\n if (evt.propertyName === 'width') {\n this.adapter_.notifyRemoval();\n } else if (evt.propertyName === 'opacity') {\n // See: https://css-tricks.com/using-css-transitions-auto-dimensions/#article-header-id-5\n const chipWidth = this.adapter_.getComputedStyleValue('width');\n\n // On the next frame (once we get the computed width), explicitly set the chip's width\n // to its current pixel width, so we aren't transitioning out of 'auto'.\n requestAnimationFrame(() => {\n this.adapter_.setStyleProperty('width', chipWidth);\n\n // To mitigate jitter, start transitioning padding and margin before width.\n this.adapter_.setStyleProperty('padding', '0');\n this.adapter_.setStyleProperty('margin', '0');\n\n // On the next frame (once width is explicitly set), transition width to 0.\n requestAnimationFrame(() => {\n this.adapter_.setStyleProperty('width', '0');\n });\n });\n }\n return;\n }\n\n // Handle a transition end event on the leading icon or checkmark, since the transition end event bubbles.\n if (evt.propertyName !== 'opacity') {\n return;\n }\n if (this.adapter_.eventTargetHasClass(evt.target, cssClasses.LEADING_ICON) &&\n this.adapter_.hasClass(cssClasses.SELECTED)) {\n this.adapter_.addClassToLeadingIcon(cssClasses.HIDDEN_LEADING_ICON);\n } else if (this.adapter_.eventTargetHasClass(evt.target, cssClasses.CHECKMARK) &&\n !this.adapter_.hasClass(cssClasses.SELECTED)) {\n this.adapter_.removeClassFromLeadingIcon(cssClasses.HIDDEN_LEADING_ICON);\n }\n }\n\n /**\n * Handles an interaction event on the trailing icon element. This is used to\n * prevent the ripple from activating on interaction with the trailing icon.\n */\n handleTrailingIconInteraction(evt: MouseEvent | KeyboardEvent) {\n const isEnter = (evt as KeyboardEvent).key === 'Enter' || (evt as KeyboardEvent).keyCode === 13;\n evt.stopPropagation();\n if (evt.type === 'click' || isEnter) {\n this.adapter_.notifyTrailingIconInteraction();\n if (this.shouldRemoveOnTrailingIconClick_) {\n this.beginExit();\n }\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCChipFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {closest, matches} from '@material/dom/ponyfill';\nimport {MDCListAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCListFoundation} from './foundation';\nimport {MDCListActionEventDetail, MDCListIndex} from './types';\n\nexport type MDCListFactory = (el: Element, foundation?: MDCListFoundation) => MDCList;\n\nexport class MDCList extends MDCComponent<MDCListFoundation> {\n set vertical(value: boolean) {\n this.foundation_.setVerticalOrientation(value);\n }\n\n get listElements(): Element[] {\n return [].slice.call(this.root_.querySelectorAll(`.${cssClasses.LIST_ITEM_CLASS}`));\n }\n\n set wrapFocus(value: boolean) {\n this.foundation_.setWrapFocus(value);\n }\n\n set singleSelection(isSingleSelectionList: boolean) {\n this.foundation_.setSingleSelection(isSingleSelectionList);\n }\n\n get selectedIndex(): MDCListIndex {\n return this.foundation_.getSelectedIndex();\n }\n\n set selectedIndex(index: MDCListIndex) {\n this.foundation_.setSelectedIndex(index);\n }\n\n static attachTo(root: Element) {\n return new MDCList(root);\n }\n\n private handleKeydown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n private handleClick_!: SpecificEventListener<'click'>; // assigned in initialSyncWithDOM()\n private focusInEventListener_!: SpecificEventListener<'focus'>; // assigned in initialSyncWithDOM()\n private focusOutEventListener_!: SpecificEventListener<'focus'>; // assigned in initialSyncWithDOM()\n\n initialSyncWithDOM() {\n this.handleClick_ = this.handleClickEvent_.bind(this);\n this.handleKeydown_ = this.handleKeydownEvent_.bind(this);\n this.focusInEventListener_ = this.handleFocusInEvent_.bind(this);\n this.focusOutEventListener_ = this.handleFocusOutEvent_.bind(this);\n this.listen('keydown', this.handleKeydown_);\n this.listen('click', this.handleClick_);\n this.listen('focusin', this.focusInEventListener_);\n this.listen('focusout', this.focusOutEventListener_);\n this.layout();\n this.initializeListType();\n }\n\n destroy() {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('click', this.handleClick_);\n this.unlisten('focusin', this.focusInEventListener_);\n this.unlisten('focusout', this.focusOutEventListener_);\n }\n\n layout() {\n const direction = this.root_.getAttribute(strings.ARIA_ORIENTATION);\n this.vertical = direction !== strings.ARIA_ORIENTATION_HORIZONTAL;\n\n // List items need to have at least tabindex=-1 to be focusable.\n [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])'))\n .forEach((el: Element) => {\n el.setAttribute('tabindex', '-1');\n });\n\n // Child button/a elements are not tabbable until the list item is focused.\n [].slice.call(this.root_.querySelectorAll(strings.FOCUSABLE_CHILD_ELEMENTS))\n .forEach((el: Element) => el.setAttribute('tabindex', '-1'));\n\n this.foundation_.layout();\n }\n\n /**\n * Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio.\n */\n initializeListType() {\n const checkboxListItems = this.root_.querySelectorAll(strings.ARIA_ROLE_CHECKBOX_SELECTOR);\n const singleSelectedListItem = this.root_.querySelector(`\n .${cssClasses.LIST_ITEM_ACTIVATED_CLASS},\n .${cssClasses.LIST_ITEM_SELECTED_CLASS}\n `);\n const radioSelectedListItem = this.root_.querySelector(strings.ARIA_CHECKED_RADIO_SELECTOR);\n\n if (checkboxListItems.length) {\n const preselectedItems = this.root_.querySelectorAll(strings.ARIA_CHECKED_CHECKBOX_SELECTOR);\n this.selectedIndex =\n [].map.call(preselectedItems, (listItem: Element) => this.listElements.indexOf(listItem)) as number[];\n } else if (singleSelectedListItem) {\n if (singleSelectedListItem.classList.contains(cssClasses.LIST_ITEM_ACTIVATED_CLASS)) {\n this.foundation_.setUseActivatedClass(true);\n }\n\n this.singleSelection = true;\n this.selectedIndex = this.listElements.indexOf(singleSelectedListItem);\n } else if (radioSelectedListItem) {\n this.selectedIndex = this.listElements.indexOf(radioSelectedListItem);\n }\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCListAdapter = {\n addClassForElementIndex: (index, className) => {\n const element = this.listElements[index];\n if (element) {\n element.classList.add(className);\n }\n },\n focusItemAtIndex: (index) => {\n const element = this.listElements[index] as HTMLElement | undefined;\n if (element) {\n element.focus();\n }\n },\n getAttributeForElementIndex: (index, attr) => this.listElements[index].getAttribute(attr),\n getFocusedElementIndex: () => this.listElements.indexOf(document.activeElement!),\n getListItemCount: () => this.listElements.length,\n hasCheckboxAtIndex: (index) => {\n const listItem = this.listElements[index];\n return !!listItem.querySelector(strings.CHECKBOX_SELECTOR);\n },\n hasRadioAtIndex: (index) => {\n const listItem = this.listElements[index];\n return !!listItem.querySelector(strings.RADIO_SELECTOR);\n },\n isCheckboxCheckedAtIndex: (index) => {\n const listItem = this.listElements[index];\n const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_SELECTOR);\n return toggleEl!.checked;\n },\n isFocusInsideList: () => {\n return this.root_.contains(document.activeElement);\n },\n isRootFocused: () => document.activeElement === this.root_,\n notifyAction: (index) => {\n this.emit<MDCListActionEventDetail>(strings.ACTION_EVENT, {index}, /** shouldBubble */ true);\n },\n removeClassForElementIndex: (index, className) => {\n const element = this.listElements[index];\n if (element) {\n element.classList.remove(className);\n }\n },\n setAttributeForElementIndex: (index, attr, value) => {\n const element = this.listElements[index];\n if (element) {\n element.setAttribute(attr, value);\n }\n },\n setCheckedCheckboxOrRadioAtIndex: (index, isChecked) => {\n const listItem = this.listElements[index];\n const toggleEl = listItem.querySelector<HTMLInputElement>(strings.CHECKBOX_RADIO_SELECTOR);\n toggleEl!.checked = isChecked;\n\n const event = document.createEvent('Event');\n event.initEvent('change', true, true);\n toggleEl!.dispatchEvent(event);\n },\n setTabIndexForListItemChildren: (listItemIndex, tabIndexValue) => {\n const element = this.listElements[listItemIndex];\n const listItemChildren: Element[] =\n [].slice.call(element.querySelectorAll(strings.CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));\n listItemChildren.forEach((el) => el.setAttribute('tabindex', tabIndexValue));\n },\n };\n return new MDCListFoundation(adapter);\n }\n\n /**\n * Used to figure out which list item this event is targetting. Or returns -1 if\n * there is no list item\n */\n private getListItemIndex_(evt: Event) {\n const eventTarget = evt.target as Element;\n const nearestParent = closest(eventTarget, `.${cssClasses.LIST_ITEM_CLASS}, .${cssClasses.ROOT}`);\n\n // Get the index of the element if it is a list item.\n if (nearestParent && matches(nearestParent, `.${cssClasses.LIST_ITEM_CLASS}`)) {\n return this.listElements.indexOf(nearestParent);\n }\n\n return -1;\n }\n\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n private handleFocusInEvent_(evt: FocusEvent) {\n const index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusIn(evt, index);\n }\n\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n private handleFocusOutEvent_(evt: FocusEvent) {\n const index = this.getListItemIndex_(evt);\n this.foundation_.handleFocusOut(evt, index);\n }\n\n /**\n * Used to figure out which element was focused when keydown event occurred before sending the event to the\n * foundation.\n */\n private handleKeydownEvent_(evt: KeyboardEvent) {\n const index = this.getListItemIndex_(evt);\n const target = evt.target as Element;\n this.foundation_.handleKeydown(evt, target.classList.contains(cssClasses.LIST_ITEM_CLASS), index);\n }\n\n /**\n * Used to figure out which element was clicked before sending the event to the foundation.\n */\n private handleClickEvent_(evt: MouseEvent) {\n const index = this.getListItemIndex_(evt);\n const target = evt.target as Element;\n\n // Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.\n const toggleCheckbox = !matches(target, strings.CHECKBOX_RADIO_SELECTOR);\n this.foundation_.handleClick(index, toggleCheckbox);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-list/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCDrawerAdapter} from '../adapter';\nimport {cssClasses, strings} from '../constants';\n\nexport class MDCDismissibleDrawerFoundation extends MDCFoundation<MDCDrawerAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get defaultAdapter(): MDCDrawerAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n elementHasClass: () => false,\n notifyClose: () => undefined,\n notifyOpen: () => undefined,\n saveFocus: () => undefined,\n restoreFocus: () => undefined,\n focusActiveNavigationItem: () => undefined,\n trapFocus: () => undefined,\n releaseFocus: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private animationFrame_ = 0;\n private animationTimer_ = 0;\n\n constructor(adapter?: Partial<MDCDrawerAdapter>) {\n super({...MDCDismissibleDrawerFoundation.defaultAdapter, ...adapter});\n }\n\n destroy() {\n if (this.animationFrame_) {\n cancelAnimationFrame(this.animationFrame_);\n }\n if (this.animationTimer_) {\n clearTimeout(this.animationTimer_);\n }\n }\n\n open() {\n if (this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n\n this.adapter_.addClass(cssClasses.OPEN);\n this.adapter_.addClass(cssClasses.ANIMATE);\n\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(() => {\n this.adapter_.addClass(cssClasses.OPENING);\n });\n\n this.adapter_.saveFocus();\n }\n\n close() {\n if (!this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n\n this.adapter_.addClass(cssClasses.CLOSING);\n }\n\n /**\n * @return true if drawer is in open state.\n */\n isOpen(): boolean {\n return this.adapter_.hasClass(cssClasses.OPEN);\n }\n\n /**\n * @return true if drawer is animating open.\n */\n isOpening(): boolean {\n return this.adapter_.hasClass(cssClasses.OPENING) || this.adapter_.hasClass(cssClasses.ANIMATE);\n }\n\n /**\n * @return true if drawer is animating closed.\n */\n isClosing(): boolean {\n return this.adapter_.hasClass(cssClasses.CLOSING);\n }\n\n /**\n * Keydown handler to close drawer when key is escape.\n */\n handleKeydown(evt: KeyboardEvent) {\n const {keyCode, key} = evt;\n const isEscape = key === 'Escape' || keyCode === 27;\n if (isEscape) {\n this.close();\n }\n }\n\n /**\n * Handles a transition end event on the root element.\n */\n handleTransitionEnd(evt: TransitionEvent) {\n const {OPENING, CLOSING, OPEN, ANIMATE, ROOT} = cssClasses;\n\n // In Edge, transitionend on ripple pseudo-elements yields a target without classList, so check for Element first.\n const isRootElement = this.isElement_(evt.target) && this.adapter_.elementHasClass(evt.target, ROOT);\n if (!isRootElement) {\n return;\n }\n\n if (this.isClosing()) {\n this.adapter_.removeClass(OPEN);\n this.closed_();\n this.adapter_.restoreFocus();\n this.adapter_.notifyClose();\n } else {\n this.adapter_.focusActiveNavigationItem();\n this.opened_();\n this.adapter_.notifyOpen();\n }\n\n this.adapter_.removeClass(ANIMATE);\n this.adapter_.removeClass(OPENING);\n this.adapter_.removeClass(CLOSING);\n }\n\n /**\n * Extension point for when drawer finishes open animation.\n */\n protected opened_() {} // tslint:disable-line:no-empty\n\n /**\n * Extension point for when drawer finishes close animation.\n */\n protected closed_() {} // tslint:disable-line:no-empty\n\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n private runNextAnimationFrame_(callback: () => void) {\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(() => {\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(callback, 0);\n });\n }\n\n private isElement_(element: unknown): element is Element {\n // In Edge, transitionend on ripple pseudo-elements yields a target without classList.\n return Boolean((element as Element).classList);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCDismissibleDrawerFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/dismissible/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCFloatingLabelAdapter} from './adapter';\nimport {MDCFloatingLabelFoundation} from './foundation';\n\nexport type MDCFloatingLabelFactory = (el: Element, foundation?: MDCFloatingLabelFoundation) => MDCFloatingLabel;\n\nexport class MDCFloatingLabel extends MDCComponent<MDCFloatingLabelFoundation> {\n static attachTo(root: Element): MDCFloatingLabel {\n return new MDCFloatingLabel(root);\n }\n\n /**\n * Styles the label to produce the label shake for errors.\n * @param shouldShake If true, shakes the label by adding a CSS class; otherwise, stops shaking by removing the class.\n */\n shake(shouldShake: boolean) {\n this.foundation_.shake(shouldShake);\n }\n\n /**\n * Styles the label to float/dock.\n * @param shouldFloat If true, floats the label by adding a CSS class; otherwise, docks it by removing the class.\n */\n float(shouldFloat: boolean) {\n this.foundation_.float(shouldFloat);\n }\n\n getWidth(): number {\n return this.foundation_.getWidth();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCFloatingLabelAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n getWidth: () => this.root_.scrollWidth,\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCFloatingLabelFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-floating-label/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCFloatingLabelAdapter} from './adapter';\nimport {cssClasses} from './constants';\n\nexport class MDCFloatingLabelFoundation extends MDCFoundation<MDCFloatingLabelAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n /**\n * See {@link MDCFloatingLabelAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCFloatingLabelAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n getWidth: () => 0,\n registerInteractionHandler: () => undefined,\n deregisterInteractionHandler: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private readonly shakeAnimationEndHandler_: SpecificEventListener<'animationend'>;\n\n constructor(adapter?: Partial<MDCFloatingLabelAdapter>) {\n super({...MDCFloatingLabelFoundation.defaultAdapter, ...adapter});\n\n this.shakeAnimationEndHandler_ = () => this.handleShakeAnimationEnd_();\n }\n\n init() {\n this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_);\n }\n\n destroy() {\n this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_);\n }\n\n /**\n * Returns the width of the label element.\n */\n getWidth(): number {\n return this.adapter_.getWidth();\n }\n\n /**\n * Styles the label to produce a shake animation to indicate an error.\n * @param shouldShake If true, adds the shake CSS class; otherwise, removes shake class.\n */\n shake(shouldShake: boolean) {\n const {LABEL_SHAKE} = MDCFloatingLabelFoundation.cssClasses;\n if (shouldShake) {\n this.adapter_.addClass(LABEL_SHAKE);\n } else {\n this.adapter_.removeClass(LABEL_SHAKE);\n }\n }\n\n /**\n * Styles the label to float or dock.\n * @param shouldFloat If true, adds the float CSS class; otherwise, removes float and shake classes to dock the label.\n */\n float(shouldFloat: boolean) {\n const {LABEL_FLOAT_ABOVE, LABEL_SHAKE} = MDCFloatingLabelFoundation.cssClasses;\n if (shouldFloat) {\n this.adapter_.addClass(LABEL_FLOAT_ABOVE);\n } else {\n this.adapter_.removeClass(LABEL_FLOAT_ABOVE);\n this.adapter_.removeClass(LABEL_SHAKE);\n }\n }\n\n private handleShakeAnimationEnd_() {\n const {LABEL_SHAKE} = MDCFloatingLabelFoundation.cssClasses;\n this.adapter_.removeClass(LABEL_SHAKE);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFloatingLabelFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-floating-label/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCLineRippleAdapter} from './adapter';\nimport {MDCLineRippleFoundation} from './foundation';\n\nexport type MDCLineRippleFactory = (el: Element, foundation?: MDCLineRippleFoundation) => MDCLineRipple;\n\nexport class MDCLineRipple extends MDCComponent<MDCLineRippleFoundation> {\n static attachTo(root: Element): MDCLineRipple {\n return new MDCLineRipple(root);\n }\n\n /**\n * Activates the line ripple\n */\n activate() {\n this.foundation_.activate();\n }\n\n /**\n * Deactivates the line ripple\n */\n deactivate() {\n this.foundation_.deactivate();\n }\n\n /**\n * Sets the transform origin given a user's click location.\n * The `rippleCenter` is the x-coordinate of the middle of the ripple.\n */\n setRippleCenter(xCoordinate: number) {\n this.foundation_.setRippleCenter(xCoordinate);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCLineRippleAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n setStyle: (propertyName, value) => (this.root_ as HTMLElement).style.setProperty(propertyName, value),\n registerEventHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterEventHandler: (evtType, handler) => this.unlisten(evtType, handler),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCLineRippleFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-line-ripple/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n MENU_SELECTED_LIST_ITEM: 'mdc-menu-item--selected',\n MENU_SELECTION_GROUP: 'mdc-menu__selection-group',\n ROOT: 'mdc-menu',\n};\n\nconst strings = {\n ARIA_SELECTED_ATTR: 'aria-selected',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]',\n LIST_SELECTOR: '.mdc-list',\n SELECTED_EVENT: 'MDCMenu:selected',\n};\n\nconst numbers = {\n FOCUS_ROOT_INDEX: -1,\n};\n\nenum DefaultFocusState {\n NONE = 0,\n LIST_ROOT = 1,\n FIRST_ITEM = 2,\n LAST_ITEM = 3,\n}\n\nexport {cssClasses, strings, numbers, DefaultFocusState};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu/constants.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCFloatingLabelFoundation} from '@material/floating-label/foundation';\nimport {MDCNotchedOutlineAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCNotchedOutlineFoundation} from './foundation';\n\nexport type MDCNotchedOutlineFactory = (el: Element, foundation?: MDCNotchedOutlineFoundation) => MDCNotchedOutline;\n\nexport class MDCNotchedOutline extends MDCComponent<MDCNotchedOutlineFoundation> {\n static attachTo(root: Element): MDCNotchedOutline {\n return new MDCNotchedOutline(root);\n }\n\n private notchElement_!: HTMLElement; // assigned in initialSyncWithDOM()\n\n initialSyncWithDOM() {\n this.notchElement_ = this.root_.querySelector<HTMLElement>(strings.NOTCH_ELEMENT_SELECTOR)!;\n\n const label = this.root_.querySelector<HTMLElement>('.' + MDCFloatingLabelFoundation.cssClasses.ROOT);\n if (label) {\n label.style.transitionDuration = '0s';\n this.root_.classList.add(cssClasses.OUTLINE_UPGRADED);\n requestAnimationFrame(() => {\n label.style.transitionDuration = '';\n });\n } else {\n this.root_.classList.add(cssClasses.NO_LABEL);\n }\n }\n\n /**\n * Updates classes and styles to open the notch to the specified width.\n * @param notchWidth The notch width in the outline.\n */\n notch(notchWidth: number) {\n this.foundation_.notch(notchWidth);\n }\n\n /**\n * Updates classes and styles to close the notch.\n */\n closeNotch() {\n this.foundation_.closeNotch();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCNotchedOutlineAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n setNotchWidthProperty: (width) => this.notchElement_.style.setProperty('width', width + 'px'),\n removeNotchWidthProperty: () => this.notchElement_.style.removeProperty('width'),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCNotchedOutlineFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-notched-outline/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n CLOSING: 'mdc-snackbar--closing',\n OPEN: 'mdc-snackbar--open',\n OPENING: 'mdc-snackbar--opening',\n};\n\nconst strings = {\n ACTION_SELECTOR: '.mdc-snackbar__action',\n ARIA_LIVE_LABEL_TEXT_ATTR: 'data-mdc-snackbar-label-text',\n CLOSED_EVENT: 'MDCSnackbar:closed',\n CLOSING_EVENT: 'MDCSnackbar:closing',\n DISMISS_SELECTOR: '.mdc-snackbar__dismiss',\n LABEL_SELECTOR: '.mdc-snackbar__label',\n OPENED_EVENT: 'MDCSnackbar:opened',\n OPENING_EVENT: 'MDCSnackbar:opening',\n REASON_ACTION: 'action',\n REASON_DISMISS: 'dismiss',\n SURFACE_SELECTOR: '.mdc-snackbar__surface',\n};\n\nconst numbers = {\n DEFAULT_AUTO_DISMISS_TIMEOUT_MS: 5000,\n MAX_AUTO_DISMISS_TIMEOUT_MS: 10000,\n MIN_AUTO_DISMISS_TIMEOUT_MS: 4000,\n\n // These variables need to be kept in sync with the values in _variables.scss.\n SNACKBAR_ANIMATION_CLOSE_TIME_MS: 75,\n SNACKBAR_ANIMATION_OPEN_TIME_MS: 150,\n\n /**\n * Number of milliseconds to wait between temporarily clearing the label text\n * in the DOM and subsequently restoring it. This is necessary to force IE 11\n * to pick up the `aria-live` content change and announce it to the user.\n */\n ARIA_LIVE_DELAY_MS: 1000,\n};\n\nexport {cssClasses, strings, numbers};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-snackbar/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabScrollerAdapter} from './adapter';\nimport {MDCTabScrollerAnimation} from './types';\n\nexport abstract class MDCTabScrollerRTL {\n protected readonly adapter_: MDCTabScrollerAdapter;\n\n constructor(adapter: MDCTabScrollerAdapter) {\n this.adapter_ = adapter;\n }\n\n abstract getScrollPositionRTL(translateX: number): number;\n\n abstract scrollToRTL(scrollX: number): MDCTabScrollerAnimation;\n\n abstract incrementScrollRTL(scrollX: number): MDCTabScrollerAnimation;\n\n /**\n * @param scrollX The current scrollX position\n * @param translateX The current translateX position\n */\n abstract getAnimatingScrollPosition(scrollX: number, translateX: number): number;\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTL;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/rtl-scroller.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTabAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCTabDimensions} from './types';\n\nexport class MDCTabFoundation extends MDCFoundation<MDCTabAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCTabAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n setAttr: () => undefined,\n activateIndicator: () => undefined,\n deactivateIndicator: () => undefined,\n notifyInteracted: () => undefined,\n getOffsetLeft: () => 0,\n getOffsetWidth: () => 0,\n getContentOffsetLeft: () => 0,\n getContentOffsetWidth: () => 0,\n focus: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private focusOnActivate_ = true;\n\n constructor(adapter?: Partial<MDCTabAdapter>) {\n super({...MDCTabFoundation.defaultAdapter, ...adapter});\n }\n\n handleClick() {\n // It's up to the parent component to keep track of the active Tab and\n // ensure we don't activate a Tab that's already active.\n this.adapter_.notifyInteracted();\n }\n\n isActive(): boolean {\n return this.adapter_.hasClass(cssClasses.ACTIVE);\n }\n\n /**\n * Sets whether the tab should focus itself when activated\n */\n setFocusOnActivate(focusOnActivate: boolean) {\n this.focusOnActivate_ = focusOnActivate;\n }\n\n /**\n * Activates the Tab\n */\n activate(previousIndicatorClientRect?: ClientRect) {\n this.adapter_.addClass(cssClasses.ACTIVE);\n this.adapter_.setAttr(strings.ARIA_SELECTED, 'true');\n this.adapter_.setAttr(strings.TABINDEX, '0');\n this.adapter_.activateIndicator(previousIndicatorClientRect);\n if (this.focusOnActivate_) {\n this.adapter_.focus();\n }\n }\n\n /**\n * Deactivates the Tab\n */\n deactivate() {\n // Early exit\n if (!this.isActive()) {\n return;\n }\n\n this.adapter_.removeClass(cssClasses.ACTIVE);\n this.adapter_.setAttr(strings.ARIA_SELECTED, 'false');\n this.adapter_.setAttr(strings.TABINDEX, '-1');\n this.adapter_.deactivateIndicator();\n }\n\n /**\n * Returns the dimensions of the Tab\n */\n computeDimensions(): MDCTabDimensions {\n const rootWidth = this.adapter_.getOffsetWidth();\n const rootLeft = this.adapter_.getOffsetLeft();\n const contentWidth = this.adapter_.getContentOffsetWidth();\n const contentLeft = this.adapter_.getContentOffsetLeft();\n\n return {\n contentLeft: rootLeft + contentLeft,\n contentRight: rootLeft + contentLeft + contentWidth,\n rootLeft,\n rootRight: rootLeft + rootWidth,\n };\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab/foundation.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTextFieldCharacterCounterAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCTextFieldCharacterCounterFoundation extends MDCFoundation<MDCTextFieldCharacterCounterAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n /**\n * See {@link MDCTextFieldCharacterCounterAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCTextFieldCharacterCounterAdapter {\n return {\n setContent: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCTextFieldCharacterCounterAdapter>) {\n super({...MDCTextFieldCharacterCounterFoundation.defaultAdapter, ...adapter});\n }\n\n setCounterValue(currentLength: number, maxLength: number) {\n currentLength = Math.min(currentLength, maxLength);\n this.adapter_.setContent(`${currentLength} / ${maxLength}`);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTextFieldCharacterCounterFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/character-counter/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTextFieldHelperTextAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCTextFieldHelperTextFoundation extends MDCFoundation<MDCTextFieldHelperTextAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n /**\n * See {@link MDCTextFieldHelperTextAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCTextFieldHelperTextAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n setAttr: () => undefined,\n removeAttr: () => undefined,\n setContent: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n constructor(adapter?: Partial<MDCTextFieldHelperTextAdapter>) {\n super({...MDCTextFieldHelperTextFoundation.defaultAdapter, ...adapter});\n }\n\n /**\n * Sets the content of the helper text field.\n */\n setContent(content: string) {\n this.adapter_.setContent(content);\n }\n\n /**\n * @param isPersistent Sets the persistency of the helper text.\n */\n setPersistent(isPersistent: boolean) {\n if (isPersistent) {\n this.adapter_.addClass(cssClasses.HELPER_TEXT_PERSISTENT);\n } else {\n this.adapter_.removeClass(cssClasses.HELPER_TEXT_PERSISTENT);\n }\n }\n\n /**\n * @param isValidation True to make the helper text act as an error validation message.\n */\n setValidation(isValidation: boolean) {\n if (isValidation) {\n this.adapter_.addClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n } else {\n this.adapter_.removeClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n }\n }\n\n /**\n * Makes the helper text visible to the screen reader.\n */\n showToScreenReader() {\n this.adapter_.removeAttr(strings.ARIA_HIDDEN);\n }\n\n /**\n * Sets the validity of the helper text based on the input validity.\n */\n setValidity(inputIsValid: boolean) {\n const helperTextIsPersistent = this.adapter_.hasClass(cssClasses.HELPER_TEXT_PERSISTENT);\n const helperTextIsValidationMsg = this.adapter_.hasClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n const validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid;\n\n if (validationMsgNeedsDisplay) {\n this.adapter_.setAttr(strings.ROLE, 'alert');\n } else {\n this.adapter_.removeAttr(strings.ROLE);\n }\n\n if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {\n this.hide_();\n }\n }\n\n /**\n * Hides the help text from screen readers.\n */\n private hide_() {\n this.adapter_.setAttr(strings.ARIA_HIDDEN, 'true');\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTextFieldHelperTextFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/helper-text/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTopAppBarAdapter} from '../adapter';\nimport {numbers} from '../constants';\nimport {MDCTopAppBarBaseFoundation} from '../foundation';\n\nconst INITIAL_VALUE = 0;\n\nexport class MDCTopAppBarFoundation extends MDCTopAppBarBaseFoundation {\n /**\n * Indicates if the top app bar was docked in the previous scroll handler iteration.\n */\n private wasDocked_ = true;\n\n /**\n * Indicates if the top app bar is docked in the fully shown position.\n */\n private isDockedShowing_ = true;\n\n /**\n * Variable for current scroll position of the top app bar\n */\n private currentAppBarOffsetTop_ = 0;\n\n /**\n * Used to prevent the top app bar from being scrolled out of view during resize events\n */\n private isCurrentlyBeingResized_ = false;\n\n /**\n * The timeout that's used to throttle the resize events\n */\n private resizeThrottleId_ = INITIAL_VALUE;\n\n /**\n * Used for diffs of current scroll position vs previous scroll position\n */\n private lastScrollPosition_: number;\n\n /**\n * Used to verify when the top app bar is completely showing or completely hidden\n */\n private topAppBarHeight_: number;\n\n /**\n * The timeout that's used to debounce toggling the isCurrentlyBeingResized_ variable after a resize\n */\n private resizeDebounceId_ = INITIAL_VALUE;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n constructor(adapter?: Partial<MDCTopAppBarAdapter>) {\n super(adapter);\n\n this.lastScrollPosition_ = this.adapter_.getViewportScrollY();\n this.topAppBarHeight_ = this.adapter_.getTopAppBarHeight();\n\n this.scrollHandler_ = () => this.topAppBarScrollHandler_();\n this.resizeHandler_ = () => this.topAppBarResizeHandler_();\n }\n\n destroy() {\n super.destroy();\n this.adapter_.setStyle('top', '');\n }\n\n /**\n * Function to determine if the DOM needs to update.\n */\n private checkForUpdate_(): boolean {\n const offscreenBoundaryTop = -this.topAppBarHeight_;\n const hasAnyPixelsOffscreen = this.currentAppBarOffsetTop_ < 0;\n const hasAnyPixelsOnscreen = this.currentAppBarOffsetTop_ > offscreenBoundaryTop;\n const partiallyShowing = hasAnyPixelsOffscreen && hasAnyPixelsOnscreen;\n\n // If it's partially showing, it can't be docked.\n if (partiallyShowing) {\n this.wasDocked_ = false;\n } else {\n // Not previously docked and not partially showing, it's now docked.\n if (!this.wasDocked_) {\n this.wasDocked_ = true;\n return true;\n } else if (this.isDockedShowing_ !== hasAnyPixelsOnscreen) {\n this.isDockedShowing_ = hasAnyPixelsOnscreen;\n return true;\n }\n }\n\n return partiallyShowing;\n }\n\n /**\n * Function to move the top app bar if needed.\n */\n private moveTopAppBar_() {\n if (this.checkForUpdate_()) {\n // Once the top app bar is fully hidden we use the max potential top app bar height as our offset\n // so the top app bar doesn't show if the window resizes and the new height > the old height.\n let offset = this.currentAppBarOffsetTop_;\n if (Math.abs(offset) >= this.topAppBarHeight_) {\n offset = -numbers.MAX_TOP_APP_BAR_HEIGHT;\n }\n\n this.adapter_.setStyle('top', offset + 'px');\n }\n }\n\n /**\n * Scroll handler for the default scroll behavior of the top app bar.\n */\n private topAppBarScrollHandler_() {\n const currentScrollPosition = Math.max(this.adapter_.getViewportScrollY(), 0);\n const diff = currentScrollPosition - this.lastScrollPosition_;\n this.lastScrollPosition_ = currentScrollPosition;\n\n // If the window is being resized the lastScrollPosition_ needs to be updated but the\n // current scroll of the top app bar should stay in the same position.\n if (!this.isCurrentlyBeingResized_) {\n this.currentAppBarOffsetTop_ -= diff;\n\n if (this.currentAppBarOffsetTop_ > 0) {\n this.currentAppBarOffsetTop_ = 0;\n } else if (Math.abs(this.currentAppBarOffsetTop_) > this.topAppBarHeight_) {\n this.currentAppBarOffsetTop_ = -this.topAppBarHeight_;\n }\n\n this.moveTopAppBar_();\n }\n }\n\n /**\n * Top app bar resize handler that throttle/debounce functions that execute updates.\n */\n private topAppBarResizeHandler_() {\n // Throttle resize events 10 p/s\n if (!this.resizeThrottleId_) {\n this.resizeThrottleId_ = setTimeout(() => {\n this.resizeThrottleId_ = INITIAL_VALUE;\n this.throttledResizeHandler_();\n }, numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n }\n\n this.isCurrentlyBeingResized_ = true;\n\n if (this.resizeDebounceId_) {\n clearTimeout(this.resizeDebounceId_);\n }\n\n this.resizeDebounceId_ = setTimeout(() => {\n this.topAppBarScrollHandler_();\n this.isCurrentlyBeingResized_ = false;\n this.resizeDebounceId_ = INITIAL_VALUE;\n }, numbers.DEBOUNCE_THROTTLE_RESIZE_TIME_MS);\n }\n\n /**\n * Throttled function that updates the top app bar scrolled values if the\n * top app bar height changes.\n */\n private throttledResizeHandler_() {\n const currentHeight = this.adapter_.getTopAppBarHeight();\n if (this.topAppBarHeight_ !== currentHeight) {\n this.wasDocked_ = false;\n\n // Since the top app bar has a different height depending on the screen width, this\n // will ensure that the top app bar remains in the correct location if\n // completely hidden and a resize makes the top app bar a different height.\n this.currentAppBarOffsetTop_ -= this.topAppBarHeight_ - currentHeight;\n this.topAppBarHeight_ = currentHeight;\n }\n this.topAppBarScrollHandler_();\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTopAppBarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/standard/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCTopAppBarAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\nexport class MDCTopAppBarBaseFoundation extends MDCFoundation<MDCTopAppBarAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get numbers() {\n return numbers;\n }\n\n /**\n * See {@link MDCTopAppBarAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCTopAppBarAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n setStyle: () => undefined,\n getTopAppBarHeight: () => 0,\n registerNavigationIconInteractionHandler: () => undefined,\n deregisterNavigationIconInteractionHandler: () => undefined,\n notifyNavigationIconClicked: () => undefined,\n registerScrollHandler: () => undefined,\n deregisterScrollHandler: () => undefined,\n registerResizeHandler: () => undefined,\n deregisterResizeHandler: () => undefined,\n getViewportScrollY: () => 0,\n getTotalActionItems: () => 0,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n protected scrollHandler_?: SpecificEventListener<'scroll'>;\n protected resizeHandler_?: SpecificEventListener<'resize'>;\n private readonly navClickHandler_: SpecificEventListener<'click'>;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n constructor(adapter?: Partial<MDCTopAppBarAdapter>) {\n super({...MDCTopAppBarBaseFoundation.defaultAdapter, ...adapter});\n\n this.navClickHandler_ = () => this.adapter_.notifyNavigationIconClicked();\n }\n\n init() {\n this.initScrollHandler();\n this.initResizeHandler_();\n this.adapter_.registerNavigationIconInteractionHandler('click', this.navClickHandler_);\n }\n\n destroy() {\n this.destroyScrollHandler();\n this.destroyResizeHandler_();\n this.adapter_.deregisterNavigationIconInteractionHandler('click', this.navClickHandler_);\n }\n\n initScrollHandler() {\n if (this.scrollHandler_) {\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n }\n }\n\n destroyScrollHandler() {\n if (this.scrollHandler_) {\n this.adapter_.deregisterScrollHandler(this.scrollHandler_);\n }\n }\n\n private initResizeHandler_() {\n if (this.resizeHandler_) {\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n }\n\n private destroyResizeHandler_() {\n if (this.resizeHandler_) {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTopAppBarBaseFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCCheckboxAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\nexport class MDCCheckboxFoundation extends MDCFoundation<MDCCheckboxAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCCheckboxAdapter {\n return {\n addClass: () => undefined,\n forceLayout: () => undefined,\n hasNativeControl: () => false,\n isAttachedToDOM: () => false,\n isChecked: () => false,\n isIndeterminate: () => false,\n removeClass: () => undefined,\n removeNativeControlAttr: () => undefined,\n setNativeControlAttr: () => undefined,\n setNativeControlDisabled: () => undefined,\n };\n }\n\n private currentCheckState_ = strings.TRANSITION_STATE_INIT;\n private currentAnimationClass_ = '';\n private animEndLatchTimer_ = 0;\n private enableAnimationEndHandler_ = false;\n\n constructor(adapter?: Partial<MDCCheckboxAdapter>) {\n super({...MDCCheckboxFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n this.currentCheckState_ = this.determineCheckState_();\n this.updateAriaChecked_();\n this.adapter_.addClass(cssClasses.UPGRADED);\n }\n\n destroy() {\n clearTimeout(this.animEndLatchTimer_);\n }\n\n setDisabled(disabled: boolean) {\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(cssClasses.DISABLED);\n }\n }\n\n /**\n * Handles the animationend event for the checkbox\n */\n handleAnimationEnd() {\n if (!this.enableAnimationEndHandler_) {\n return;\n }\n\n clearTimeout(this.animEndLatchTimer_);\n\n this.animEndLatchTimer_ = setTimeout(() => {\n this.adapter_.removeClass(this.currentAnimationClass_);\n this.enableAnimationEndHandler_ = false;\n }, numbers.ANIM_END_LATCH_MS);\n }\n\n /**\n * Handles the change event for the checkbox\n */\n handleChange() {\n this.transitionCheckState_();\n }\n\n private transitionCheckState_() {\n if (!this.adapter_.hasNativeControl()) {\n return;\n }\n const oldState = this.currentCheckState_;\n const newState = this.determineCheckState_();\n\n if (oldState === newState) {\n return;\n }\n\n this.updateAriaChecked_();\n\n const {TRANSITION_STATE_UNCHECKED} = strings;\n const {SELECTED} = cssClasses;\n if (newState === TRANSITION_STATE_UNCHECKED) {\n this.adapter_.removeClass(SELECTED);\n } else {\n this.adapter_.addClass(SELECTED);\n }\n\n // Check to ensure that there isn't a previously existing animation class, in case for example\n // the user interacted with the checkbox before the animation was finished.\n if (this.currentAnimationClass_.length > 0) {\n clearTimeout(this.animEndLatchTimer_);\n this.adapter_.forceLayout();\n this.adapter_.removeClass(this.currentAnimationClass_);\n }\n\n this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState);\n this.currentCheckState_ = newState;\n\n // Check for parentNode so that animations are only run when the element is attached\n // to the DOM.\n if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) {\n this.adapter_.addClass(this.currentAnimationClass_);\n this.enableAnimationEndHandler_ = true;\n }\n }\n\n private determineCheckState_(): string {\n const {\n TRANSITION_STATE_INDETERMINATE,\n TRANSITION_STATE_CHECKED,\n TRANSITION_STATE_UNCHECKED,\n } = strings;\n\n if (this.adapter_.isIndeterminate()) {\n return TRANSITION_STATE_INDETERMINATE;\n }\n return this.adapter_.isChecked() ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED;\n }\n\n private getTransitionAnimationClass_(oldState: string, newState: string): string {\n const {\n TRANSITION_STATE_INIT,\n TRANSITION_STATE_CHECKED,\n TRANSITION_STATE_UNCHECKED,\n } = strings;\n\n const {\n ANIM_UNCHECKED_CHECKED,\n ANIM_UNCHECKED_INDETERMINATE,\n ANIM_CHECKED_UNCHECKED,\n ANIM_CHECKED_INDETERMINATE,\n ANIM_INDETERMINATE_CHECKED,\n ANIM_INDETERMINATE_UNCHECKED,\n } = MDCCheckboxFoundation.cssClasses;\n\n switch (oldState) {\n case TRANSITION_STATE_INIT:\n if (newState === TRANSITION_STATE_UNCHECKED) {\n return '';\n }\n return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;\n case TRANSITION_STATE_UNCHECKED:\n return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE;\n case TRANSITION_STATE_CHECKED:\n return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE;\n default: // TRANSITION_STATE_INDETERMINATE\n return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;\n }\n }\n\n private updateAriaChecked_() {\n // Ensure aria-checked is set to mixed if checkbox is in indeterminate state.\n if (this.adapter_.isIndeterminate()) {\n this.adapter_.setNativeControlAttr(\n strings.ARIA_CHECKED_ATTR, strings.ARIA_CHECKED_INDETERMINATE_VALUE);\n } else {\n // The on/off state does not need to keep track of aria-checked, since\n // the screenreader uses the checked property on the checkbox element.\n this.adapter_.removeNativeControlAttr(strings.ARIA_CHECKED_ATTR);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCCheckboxFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-checkbox/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple, MDCRippleFactory} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCChipAdapter} from './adapter';\nimport {strings} from './constants';\nimport {MDCChipFoundation} from './foundation';\nimport {MDCChipInteractionEventDetail, MDCChipRemovalEventDetail, MDCChipSelectionEventDetail} from './types';\n\ntype InteractionType = 'click' | 'keydown';\n\nconst INTERACTION_EVENTS: InteractionType[] = ['click', 'keydown'];\n\nexport type MDCChipFactory = (el: Element, foundation?: MDCChipFoundation) => MDCChip;\n\nexport class MDCChip extends MDCComponent<MDCChipFoundation> implements MDCRippleCapableSurface {\n /**\n * @return Whether the chip is selected.\n */\n get selected(): boolean {\n return this.foundation_.isSelected();\n }\n\n /**\n * Sets selected state on the chip.\n */\n set selected(selected: boolean) {\n this.foundation_.setSelected(selected);\n }\n\n /**\n * @return Whether a trailing icon click should trigger exit/removal of the chip.\n */\n get shouldRemoveOnTrailingIconClick(): boolean {\n return this.foundation_.getShouldRemoveOnTrailingIconClick();\n }\n\n /**\n * Sets whether a trailing icon click should trigger exit/removal of the chip.\n */\n set shouldRemoveOnTrailingIconClick(shouldRemove: boolean) {\n this.foundation_.setShouldRemoveOnTrailingIconClick(shouldRemove);\n }\n\n get ripple(): MDCRipple {\n return this.ripple_;\n }\n\n get id(): string {\n return this.root_.id;\n }\n\n static attachTo(root: Element) {\n return new MDCChip(root);\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private leadingIcon_!: Element | null; // assigned in initialize()\n private trailingIcon_!: Element | null; // assigned in initialize()\n private checkmark_!: Element | null; // assigned in initialize()\n private ripple_!: MDCRipple; // assigned in initialize()\n\n private handleInteraction_!: SpecificEventListener<InteractionType>; // assigned in initialSyncWithDOM()\n private handleTransitionEnd_!: SpecificEventListener<'transitionend'>; // assigned in initialSyncWithDOM()\n private handleTrailingIconInteraction_!: SpecificEventListener<InteractionType>; // assigned in initialSyncWithDOM()\n\n initialize(rippleFactory: MDCRippleFactory = (el, foundation) => new MDCRipple(el, foundation)) {\n this.leadingIcon_ = this.root_.querySelector(strings.LEADING_ICON_SELECTOR);\n this.trailingIcon_ = this.root_.querySelector(strings.TRAILING_ICON_SELECTOR);\n this.checkmark_ = this.root_.querySelector(strings.CHECKMARK_SELECTOR);\n\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const rippleAdapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n computeBoundingRect: () => this.foundation_.getDimensions(),\n };\n this.ripple_ = rippleFactory(this.root_, new MDCRippleFoundation(rippleAdapter));\n }\n\n initialSyncWithDOM() {\n this.handleInteraction_ = (evt: MouseEvent | KeyboardEvent) => this.foundation_.handleInteraction(evt);\n this.handleTransitionEnd_ = (evt: TransitionEvent) => this.foundation_.handleTransitionEnd(evt);\n this.handleTrailingIconInteraction_ = (evt: MouseEvent | KeyboardEvent) =>\n this.foundation_.handleTrailingIconInteraction(evt);\n\n INTERACTION_EVENTS.forEach((evtType) => {\n this.listen(evtType, this.handleInteraction_);\n });\n this.listen('transitionend', this.handleTransitionEnd_);\n\n if (this.trailingIcon_) {\n INTERACTION_EVENTS.forEach((evtType) => {\n this.trailingIcon_!.addEventListener(evtType, this.handleTrailingIconInteraction_ as EventListener);\n });\n }\n }\n\n destroy() {\n this.ripple_.destroy();\n\n INTERACTION_EVENTS.forEach((evtType) => {\n this.unlisten(evtType, this.handleInteraction_);\n });\n this.unlisten('transitionend', this.handleTransitionEnd_);\n\n if (this.trailingIcon_) {\n INTERACTION_EVENTS.forEach((evtType) => {\n this.trailingIcon_!.removeEventListener(evtType, this.handleTrailingIconInteraction_ as EventListener);\n });\n }\n\n super.destroy();\n }\n\n /**\n * Begins the exit animation which leads to removal of the chip.\n */\n beginExit() {\n this.foundation_.beginExit();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCChipAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n addClassToLeadingIcon: (className) => {\n if (this.leadingIcon_) {\n this.leadingIcon_.classList.add(className);\n }\n },\n eventTargetHasClass: (target, className) => target ? (target as Element).classList.contains(className) : false,\n getCheckmarkBoundingClientRect: () => this.checkmark_ ? this.checkmark_.getBoundingClientRect() : null,\n getComputedStyleValue: (propertyName) => window.getComputedStyle(this.root_).getPropertyValue(propertyName),\n getRootBoundingClientRect: () => this.root_.getBoundingClientRect(),\n hasClass: (className) => this.root_.classList.contains(className),\n hasLeadingIcon: () => !!this.leadingIcon_,\n notifyInteraction: () => this.emit<MDCChipInteractionEventDetail>(\n strings.INTERACTION_EVENT, {chipId: this.id}, true /* shouldBubble */),\n notifyRemoval: () => this.emit<MDCChipRemovalEventDetail>(\n strings.REMOVAL_EVENT, {chipId: this.id, root: this.root_}, true /* shouldBubble */),\n notifySelection: (selected) => this.emit<MDCChipSelectionEventDetail>(\n strings.SELECTION_EVENT, {chipId: this.id, selected}, true /* shouldBubble */),\n notifyTrailingIconInteraction: () => this.emit<MDCChipInteractionEventDetail>(\n strings.TRAILING_ICON_INTERACTION_EVENT, {chipId: this.id}, true /* shouldBubble */),\n removeClass: (className) => this.root_.classList.remove(className),\n removeClassFromLeadingIcon: (className) => {\n if (this.leadingIcon_) {\n this.leadingIcon_.classList.remove(className);\n }\n },\n setStyleProperty: (propertyName, value) => this.root_.style.setProperty(propertyName, value),\n };\n return new MDCChipFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const strings = {\n CHECKMARK_SELECTOR: '.mdc-chip__checkmark',\n ENTRY_ANIMATION_NAME: 'mdc-chip-entry',\n INTERACTION_EVENT: 'MDCChip:interaction',\n LEADING_ICON_SELECTOR: '.mdc-chip__icon--leading',\n REMOVAL_EVENT: 'MDCChip:removal',\n SELECTION_EVENT: 'MDCChip:selection',\n TRAILING_ICON_INTERACTION_EVENT: 'MDCChip:trailingIconInteraction',\n TRAILING_ICON_SELECTOR: '.mdc-chip__icon--trailing',\n};\n\nexport const cssClasses = {\n CHECKMARK: 'mdc-chip__checkmark',\n CHIP_EXIT: 'mdc-chip--exit',\n HIDDEN_LEADING_ICON: 'mdc-chip__icon--leading-hidden',\n LEADING_ICON: 'mdc-chip__icon--leading',\n SELECTED: 'mdc-chip--selected',\n TRAILING_ICON: 'mdc-chip__icon--trailing',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip/constants.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCChipSetAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCChipSetFoundation extends MDCFoundation<MDCChipSetAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get defaultAdapter(): MDCChipSetAdapter {\n return {\n hasClass: () => false,\n removeChip: () => undefined,\n setSelected: () => undefined,\n };\n }\n\n /**\n * The ids of the selected chips in the set. Only used for choice chip set or filter chip set.\n */\n private selectedChipIds_: string[] = [];\n\n constructor(adapter?: Partial<MDCChipSetAdapter>) {\n super({...MDCChipSetFoundation.defaultAdapter, ...adapter});\n }\n\n /**\n * Returns an array of the IDs of all selected chips.\n */\n getSelectedChipIds(): ReadonlyArray<string> {\n return this.selectedChipIds_.slice();\n }\n\n /**\n * Selects the chip with the given id. Deselects all other chips if the chip set is of the choice variant.\n */\n select(chipId: string) {\n if (this.selectedChipIds_.indexOf(chipId) >= 0) {\n return;\n }\n\n if (this.adapter_.hasClass(cssClasses.CHOICE) && this.selectedChipIds_.length > 0) {\n const previouslySelectedChip = this.selectedChipIds_[0];\n this.selectedChipIds_.length = 0;\n this.adapter_.setSelected(previouslySelectedChip, false);\n }\n this.selectedChipIds_.push(chipId);\n this.adapter_.setSelected(chipId, true);\n }\n\n /**\n * Handles a chip interaction event\n */\n handleChipInteraction(chipId: string) {\n if (this.adapter_.hasClass(cssClasses.CHOICE) || this.adapter_.hasClass(cssClasses.FILTER)) {\n this.toggleSelect_(chipId);\n }\n }\n\n /**\n * Handles a chip selection event, used to handle discrepancy when selection state is set directly on the Chip.\n */\n handleChipSelection(chipId: string, selected: boolean) {\n const chipIsSelected = this.selectedChipIds_.indexOf(chipId) >= 0;\n if (selected && !chipIsSelected) {\n this.select(chipId);\n } else if (!selected && chipIsSelected) {\n this.deselect_(chipId);\n }\n }\n\n /**\n * Handles the event when a chip is removed.\n */\n handleChipRemoval(chipId: string) {\n this.deselect_(chipId);\n this.adapter_.removeChip(chipId);\n }\n\n /**\n * Deselects the chip with the given id.\n */\n private deselect_(chipId: string) {\n const index = this.selectedChipIds_.indexOf(chipId);\n if (index >= 0) {\n this.selectedChipIds_.splice(index, 1);\n this.adapter_.setSelected(chipId, false);\n }\n }\n\n /**\n * Toggles selection of the chip with the given id.\n */\n private toggleSelect_(chipId: string) {\n if (this.selectedChipIds_.indexOf(chipId) >= 0) {\n this.deselect_(chipId);\n } else {\n this.select(chipId);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCChipSetFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip-set/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {default as createFocusTrap, FocusTarget, FocusTrap, Options} from 'focus-trap';\n\nexport type MDCDialogFocusTrapFactory = (\n element: HTMLElement | string,\n userOptions?: Options,\n) => FocusTrap;\n\nexport function createFocusTrapInstance(\n surfaceEl: HTMLElement,\n focusTrapFactory: MDCDialogFocusTrapFactory = createFocusTrap as unknown as MDCDialogFocusTrapFactory,\n initialFocusEl?: FocusTarget,\n): FocusTrap {\n return focusTrapFactory(surfaceEl, {\n clickOutsideDeactivates: true, // Allow handling of scrim clicks.\n escapeDeactivates: false, // Foundation handles ESC key.\n initialFocus: initialFocusEl,\n });\n}\n\nexport function isScrollable(el: HTMLElement | null): boolean {\n return el ? el.scrollHeight > el.offsetHeight : false;\n}\n\nexport function areTopsMisaligned(els: HTMLElement[]): boolean {\n const tops = new Set();\n [].forEach.call(els, (el: HTMLElement) => tops.add(el.offsetTop));\n return tops.size > 1;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dialog/util.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCDialogAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\nexport class MDCDialogFoundation extends MDCFoundation<MDCDialogAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCDialogAdapter {\n return {\n addBodyClass: () => undefined,\n addClass: () => undefined,\n areButtonsStacked: () => false,\n clickDefaultButton: () => undefined,\n eventTargetMatches: () => false,\n getActionFromEvent: () => '',\n hasClass: () => false,\n isContentScrollable: () => false,\n notifyClosed: () => undefined,\n notifyClosing: () => undefined,\n notifyOpened: () => undefined,\n notifyOpening: () => undefined,\n releaseFocus: () => undefined,\n removeBodyClass: () => undefined,\n removeClass: () => undefined,\n reverseButtons: () => undefined,\n trapFocus: () => undefined,\n };\n }\n\n private isOpen_ = false;\n private animationFrame_ = 0;\n private animationTimer_ = 0;\n private layoutFrame_ = 0;\n private escapeKeyAction_ = strings.CLOSE_ACTION;\n private scrimClickAction_ = strings.CLOSE_ACTION;\n private autoStackButtons_ = true;\n private areButtonsStacked_ = false;\n\n constructor(adapter?: Partial<MDCDialogAdapter>) {\n super({...MDCDialogFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n if (this.adapter_.hasClass(cssClasses.STACKED)) {\n this.setAutoStackButtons(false);\n }\n }\n\n destroy() {\n if (this.isOpen_) {\n this.close(strings.DESTROY_ACTION);\n }\n\n if (this.animationTimer_) {\n clearTimeout(this.animationTimer_);\n this.handleAnimationTimerEnd_();\n }\n\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n this.layoutFrame_ = 0;\n }\n }\n\n open() {\n this.isOpen_ = true;\n this.adapter_.notifyOpening();\n this.adapter_.addClass(cssClasses.OPENING);\n\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(() => {\n this.adapter_.addClass(cssClasses.OPEN);\n this.adapter_.addBodyClass(cssClasses.SCROLL_LOCK);\n\n this.layout();\n\n this.animationTimer_ = setTimeout(() => {\n this.handleAnimationTimerEnd_();\n this.adapter_.trapFocus();\n this.adapter_.notifyOpened();\n }, numbers.DIALOG_ANIMATION_OPEN_TIME_MS);\n });\n }\n\n close(action = '') {\n if (!this.isOpen_) {\n // Avoid redundant close calls (and events), e.g. from keydown on elements that inherently emit click\n return;\n }\n\n this.isOpen_ = false;\n this.adapter_.notifyClosing(action);\n this.adapter_.addClass(cssClasses.CLOSING);\n this.adapter_.removeClass(cssClasses.OPEN);\n this.adapter_.removeBodyClass(cssClasses.SCROLL_LOCK);\n\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(() => {\n this.adapter_.releaseFocus();\n this.handleAnimationTimerEnd_();\n this.adapter_.notifyClosed(action);\n }, numbers.DIALOG_ANIMATION_CLOSE_TIME_MS);\n }\n\n isOpen() {\n return this.isOpen_;\n }\n\n getEscapeKeyAction(): string {\n return this.escapeKeyAction_;\n }\n\n setEscapeKeyAction(action: string) {\n this.escapeKeyAction_ = action;\n }\n\n getScrimClickAction(): string {\n return this.scrimClickAction_;\n }\n\n setScrimClickAction(action: string) {\n this.scrimClickAction_ = action;\n }\n\n getAutoStackButtons(): boolean {\n return this.autoStackButtons_;\n }\n\n setAutoStackButtons(autoStack: boolean) {\n this.autoStackButtons_ = autoStack;\n }\n\n layout() {\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n this.layoutFrame_ = requestAnimationFrame(() => {\n this.layoutInternal_();\n this.layoutFrame_ = 0;\n });\n }\n\n handleInteraction(evt: MouseEvent | KeyboardEvent) {\n const isClick = evt.type === 'click';\n const isEnter = (evt as KeyboardEvent).key === 'Enter' || (evt as KeyboardEvent).keyCode === 13;\n const isSpace = (evt as KeyboardEvent).key === 'Space' || (evt as KeyboardEvent).keyCode === 32;\n const isScrim = this.adapter_.eventTargetMatches(evt.target, strings.SCRIM_SELECTOR);\n const isDefault = !this.adapter_.eventTargetMatches(evt.target, strings.SUPPRESS_DEFAULT_PRESS_SELECTOR);\n\n // Check for scrim click first since it doesn't require querying ancestors\n if (isClick && isScrim && this.scrimClickAction_ !== '') {\n this.close(this.scrimClickAction_);\n } else if (isClick || isSpace || isEnter) {\n const action = this.adapter_.getActionFromEvent(evt);\n if (action) {\n this.close(action);\n } else if (isEnter && isDefault) {\n this.adapter_.clickDefaultButton();\n }\n }\n }\n\n handleDocumentKeydown(evt: KeyboardEvent) {\n const isEscape = evt.key === 'Escape' || evt.keyCode === 27;\n if (isEscape && this.escapeKeyAction_ !== '') {\n this.close(this.escapeKeyAction_);\n }\n }\n\n private layoutInternal_() {\n if (this.autoStackButtons_) {\n this.detectStackedButtons_();\n }\n this.detectScrollableContent_();\n }\n\n private handleAnimationTimerEnd_() {\n this.animationTimer_ = 0;\n this.adapter_.removeClass(cssClasses.OPENING);\n this.adapter_.removeClass(cssClasses.CLOSING);\n }\n\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n private runNextAnimationFrame_(callback: () => void) {\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(() => {\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(callback, 0);\n });\n }\n\n private detectStackedButtons_() {\n // Remove the class first to let us measure the buttons' natural positions.\n this.adapter_.removeClass(cssClasses.STACKED);\n\n const areButtonsStacked = this.adapter_.areButtonsStacked();\n\n if (areButtonsStacked) {\n this.adapter_.addClass(cssClasses.STACKED);\n }\n\n if (areButtonsStacked !== this.areButtonsStacked_) {\n this.adapter_.reverseButtons();\n this.areButtonsStacked_ = areButtonsStacked;\n }\n }\n\n private detectScrollableContent_() {\n // Remove the class first to let us measure the natural height of the content.\n this.adapter_.removeClass(cssClasses.SCROLLABLE);\n if (this.adapter_.isContentScrollable()) {\n this.adapter_.addClass(cssClasses.SCROLLABLE);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCDialogFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dialog/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {default as createFocusTrap, FocusTrap, Options} from 'focus-trap';\n\nexport type MDCDrawerFocusTrapFactory = (\n element: HTMLElement | string,\n userOptions?: Options,\n) => FocusTrap;\n\nexport function createFocusTrapInstance(\n surfaceEl: HTMLElement,\n focusTrapFactory: MDCDrawerFocusTrapFactory = createFocusTrap as unknown as MDCDrawerFocusTrapFactory,\n): FocusTrap {\n return focusTrapFactory(surfaceEl, {\n clickOutsideDeactivates: true, // Allow handling of scrim clicks.\n escapeDeactivates: false, // Foundation handles ESC key.\n initialFocus: undefined, // Component handles focusing on active nav item.\n returnFocusOnDeactivate: false, // Component handles restoring focus.\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/util.ts","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-drawer/node_modules/focus-trap/index.js\n// module id = 34\n// module chunks = 0","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n LIST_ITEM_ACTIVATED_CLASS: 'mdc-list-item--activated',\n LIST_ITEM_CLASS: 'mdc-list-item',\n LIST_ITEM_DISABLED_CLASS: 'mdc-list-item--disabled',\n LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected',\n ROOT: 'mdc-list',\n};\n\nconst strings = {\n ACTION_EVENT: 'MDCList:action',\n ARIA_CHECKED: 'aria-checked',\n ARIA_CHECKED_CHECKBOX_SELECTOR: '[role=\"checkbox\"][aria-checked=\"true\"]',\n ARIA_CHECKED_RADIO_SELECTOR: '[role=\"radio\"][aria-checked=\"true\"]',\n ARIA_CURRENT: 'aria-current',\n ARIA_ORIENTATION: 'aria-orientation',\n ARIA_ORIENTATION_HORIZONTAL: 'horizontal',\n ARIA_ROLE_CHECKBOX_SELECTOR: '[role=\"checkbox\"]',\n ARIA_SELECTED: 'aria-selected',\n CHECKBOX_RADIO_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled), input[type=\"radio\"]:not(:disabled)',\n CHECKBOX_SELECTOR: 'input[type=\"checkbox\"]:not(:disabled)',\n CHILD_ELEMENTS_TO_TOGGLE_TABINDEX: `\n .${cssClasses.LIST_ITEM_CLASS} button:not(:disabled),\n .${cssClasses.LIST_ITEM_CLASS} a\n `,\n FOCUSABLE_CHILD_ELEMENTS: `\n .${cssClasses.LIST_ITEM_CLASS} button:not(:disabled),\n .${cssClasses.LIST_ITEM_CLASS} a,\n .${cssClasses.LIST_ITEM_CLASS} input[type=\"radio\"]:not(:disabled),\n .${cssClasses.LIST_ITEM_CLASS} input[type=\"checkbox\"]:not(:disabled)\n `,\n RADIO_SELECTOR: 'input[type=\"radio\"]:not(:disabled)',\n};\n\nconst numbers = {\n UNSET_INDEX: -1,\n};\n\nexport {strings, cssClasses, numbers};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-list/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCDismissibleDrawerFoundation} from '../dismissible/foundation';\n\n/* istanbul ignore next: subclass is not a branch statement */\nexport class MDCModalDrawerFoundation extends MDCDismissibleDrawerFoundation {\n /**\n * Handles click event on scrim.\n */\n handleScrimClick() {\n this.close();\n }\n\n /**\n * Called when drawer finishes open animation.\n */\n protected opened_() {\n this.adapter_.trapFocus();\n }\n\n /**\n * Called when drawer finishes close animation.\n */\n protected closed_() {\n this.adapter_.releaseFocus();\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCModalDrawerFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/modal/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCFormFieldAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCFormFieldFoundation extends MDCFoundation<MDCFormFieldAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCFormFieldAdapter {\n return {\n activateInputRipple: () => undefined,\n deactivateInputRipple: () => undefined,\n deregisterInteractionHandler: () => undefined,\n registerInteractionHandler: () => undefined,\n };\n }\n\n private readonly clickHandler_: () => void;\n\n constructor(adapter?: Partial<MDCFormFieldAdapter>) {\n super({...MDCFormFieldFoundation.defaultAdapter, ...adapter});\n\n this.clickHandler_ = () => this.handleClick_();\n }\n\n init() {\n this.adapter_.registerInteractionHandler('click', this.clickHandler_);\n }\n\n destroy() {\n this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);\n }\n\n private handleClick_() {\n this.adapter_.activateInputRipple();\n requestAnimationFrame(() => this.adapter_.deactivateInputRipple());\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFormFieldFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-form-field/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCGridListAdapter} from './adapter';\nimport {strings} from './constants';\n\nexport class MDCGridListFoundation extends MDCFoundation<MDCGridListAdapter> {\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCGridListAdapter {\n return {\n deregisterResizeHandler: () => undefined,\n getNumberOfTiles: () => 0,\n getOffsetWidth: () => 0,\n getOffsetWidthForTileAtIndex: () => 0,\n registerResizeHandler: () => undefined,\n setStyleForTilesElement: () => undefined,\n };\n }\n\n private readonly resizeHandler_: EventListener;\n private resizeFrame_ = 0;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n constructor(adapter?: Partial<MDCGridListAdapter>) {\n super({...MDCGridListFoundation.defaultAdapter, ...adapter});\n\n this.resizeHandler_ = this.alignCenter.bind(this);\n }\n\n init() {\n this.alignCenter();\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n }\n\n destroy() {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n\n alignCenter() {\n cancelAnimationFrame(this.resizeFrame_);\n this.resizeFrame_ = requestAnimationFrame(() => {\n this.alignCenter_();\n this.resizeFrame_ = 0;\n });\n }\n\n private alignCenter_() {\n if (this.adapter_.getNumberOfTiles() === 0) {\n return;\n }\n const gridWidth = this.adapter_.getOffsetWidth();\n const itemWidth = this.adapter_.getOffsetWidthForTileAtIndex(0);\n const tilesWidth = itemWidth * Math.floor(gridWidth / itemWidth);\n this.adapter_.setStyleForTilesElement('width', `${tilesWidth}px`);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCGridListFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-grid-list/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCIconButtonToggleAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCIconButtonToggleFoundation extends MDCFoundation<MDCIconButtonToggleAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCIconButtonToggleAdapter {\n return {\n addClass: () => undefined,\n hasClass: () => false,\n notifyChange: () => undefined,\n removeClass: () => undefined,\n setAttr: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCIconButtonToggleAdapter>) {\n super({...MDCIconButtonToggleFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n this.adapter_.setAttr(strings.ARIA_PRESSED, `${this.isOn()}`);\n }\n\n handleClick() {\n this.toggle();\n this.adapter_.notifyChange({isOn: this.isOn()});\n }\n\n isOn(): boolean {\n return this.adapter_.hasClass(cssClasses.ICON_BUTTON_ON);\n }\n\n toggle(isOn: boolean = !this.isOn()) {\n if (isOn) {\n this.adapter_.addClass(cssClasses.ICON_BUTTON_ON);\n } else {\n this.adapter_.removeClass(cssClasses.ICON_BUTTON_ON);\n }\n\n this.adapter_.setAttr(strings.ARIA_PRESSED, `${isOn}`);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCIconButtonToggleFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-icon-button/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCLineRippleAdapter} from './adapter';\nimport {cssClasses} from './constants';\n\nexport class MDCLineRippleFoundation extends MDCFoundation<MDCLineRippleAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n /**\n * See {@link MDCLineRippleAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCLineRippleAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n setStyle: () => undefined,\n registerEventHandler: () => undefined,\n deregisterEventHandler: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private readonly transitionEndHandler_: SpecificEventListener<'transitionend'>;\n\n constructor(adapter?: Partial<MDCLineRippleAdapter>) {\n super({...MDCLineRippleFoundation.defaultAdapter, ...adapter});\n\n this.transitionEndHandler_ = (evt) => this.handleTransitionEnd(evt);\n }\n\n init() {\n this.adapter_.registerEventHandler('transitionend', this.transitionEndHandler_);\n }\n\n destroy() {\n this.adapter_.deregisterEventHandler('transitionend', this.transitionEndHandler_);\n }\n\n activate() {\n this.adapter_.removeClass(cssClasses.LINE_RIPPLE_DEACTIVATING);\n this.adapter_.addClass(cssClasses.LINE_RIPPLE_ACTIVE);\n }\n\n setRippleCenter(xCoordinate: number) {\n this.adapter_.setStyle('transform-origin', `${xCoordinate}px center`);\n }\n\n deactivate() {\n this.adapter_.addClass(cssClasses.LINE_RIPPLE_DEACTIVATING);\n }\n\n handleTransitionEnd(evt: TransitionEvent) {\n // Wait for the line ripple to be either transparent or opaque\n // before emitting the animation end event\n const isDeactivating = this.adapter_.hasClass(cssClasses.LINE_RIPPLE_DEACTIVATING);\n\n if (evt.propertyName === 'opacity') {\n if (isDeactivating) {\n this.adapter_.removeClass(cssClasses.LINE_RIPPLE_ACTIVE);\n this.adapter_.removeClass(cssClasses.LINE_RIPPLE_DEACTIVATING);\n }\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCLineRippleFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-line-ripple/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {getCorrectPropertyName} from '@material/animation/util';\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCLinearProgressAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCLinearProgressFoundation extends MDCFoundation<MDCLinearProgressAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCLinearProgressAdapter {\n return {\n addClass: () => undefined,\n getBuffer: () => null,\n getPrimaryBar: () => null,\n hasClass: () => false,\n removeClass: () => undefined,\n setStyle: () => undefined,\n };\n }\n\n private isDeterminate_!: boolean;\n private isReversed_!: boolean;\n private progress_!: number;\n\n constructor(adapter?: Partial<MDCLinearProgressAdapter>) {\n super({...MDCLinearProgressFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n this.isDeterminate_ = !this.adapter_.hasClass(cssClasses.INDETERMINATE_CLASS);\n this.isReversed_ = this.adapter_.hasClass(cssClasses.REVERSED_CLASS);\n this.progress_ = 0;\n }\n\n setDeterminate(isDeterminate: boolean) {\n this.isDeterminate_ = isDeterminate;\n if (this.isDeterminate_) {\n this.adapter_.removeClass(cssClasses.INDETERMINATE_CLASS);\n this.setScale_(this.adapter_.getPrimaryBar(), this.progress_);\n } else {\n this.adapter_.addClass(cssClasses.INDETERMINATE_CLASS);\n this.setScale_(this.adapter_.getPrimaryBar(), 1);\n this.setScale_(this.adapter_.getBuffer(), 1);\n }\n }\n\n setProgress(value: number) {\n this.progress_ = value;\n if (this.isDeterminate_) {\n this.setScale_(this.adapter_.getPrimaryBar(), value);\n }\n }\n\n setBuffer(value: number) {\n if (this.isDeterminate_) {\n this.setScale_(this.adapter_.getBuffer(), value);\n }\n }\n\n setReverse(isReversed: boolean) {\n this.isReversed_ = isReversed;\n if (this.isReversed_) {\n this.adapter_.addClass(cssClasses.REVERSED_CLASS);\n } else {\n this.adapter_.removeClass(cssClasses.REVERSED_CLASS);\n }\n }\n\n open() {\n this.adapter_.removeClass(cssClasses.CLOSED_CLASS);\n }\n\n close() {\n this.adapter_.addClass(cssClasses.CLOSED_CLASS);\n }\n\n private setScale_(el: HTMLElement | null, scaleValue: number) {\n if (!el) {\n return;\n }\n const value = `scaleX(${scaleValue})`;\n this.adapter_.setStyle(el, getCorrectPropertyName(window, 'transform'), value);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCLinearProgressFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-linear-progress/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\ntype CssTransformPropertyName = ('transform' | 'webkitTransform');\n\nlet cachedCssTransformPropertyName_: CssTransformPropertyName | undefined;\n\n/**\n * Returns the name of the correct transform property to use on the current browser.\n */\nfunction getTransformPropertyName(globalObj: Window, forceRefresh = false): CssTransformPropertyName {\n if (cachedCssTransformPropertyName_ === undefined || forceRefresh) {\n const el = globalObj.document.createElement('div');\n cachedCssTransformPropertyName_ = 'transform' in el.style ? 'transform' : 'webkitTransform';\n }\n return cachedCssTransformPropertyName_;\n}\n\nexport {getTransformPropertyName};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu-surface/util.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCMenuSurfaceAdapter} from './adapter';\nimport {Corner, cssClasses, strings} from './constants';\nimport {MDCMenuSurfaceFoundation} from './foundation';\nimport {MDCMenuDistance} from './types';\nimport * as util from './util';\n\ntype RegisterFunction = () => void;\n\nexport type MDCMenuSurfaceFactory = (el: Element, foundation?: MDCMenuSurfaceFoundation) => MDCMenuSurface;\n\nexport class MDCMenuSurface extends MDCComponent<MDCMenuSurfaceFoundation> {\n static attachTo(root: Element): MDCMenuSurface {\n return new MDCMenuSurface(root);\n }\n\n anchorElement!: Element | null; // assigned in initialSyncWithDOM()\n\n protected root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private previousFocus_?: HTMLElement | SVGElement | null;\n private firstFocusableElement_?: HTMLElement | SVGElement;\n private lastFocusableElement_?: HTMLElement | SVGElement;\n\n private handleKeydown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n private handleBodyClick_!: SpecificEventListener<'click'>; // assigned in initialSyncWithDOM()\n\n private registerBodyClickListener_!: RegisterFunction; // assigned in initialSyncWithDOM()\n private deregisterBodyClickListener_!: RegisterFunction; // assigned in initialSyncWithDOM()\n\n initialSyncWithDOM() {\n const parentEl = this.root_.parentElement;\n this.anchorElement = parentEl && parentEl.classList.contains(cssClasses.ANCHOR) ? parentEl : null;\n\n if (this.root_.classList.contains(cssClasses.FIXED)) {\n this.setFixedPosition(true);\n }\n\n this.handleKeydown_ = (evt) => this.foundation_.handleKeydown(evt);\n this.handleBodyClick_ = (evt) => this.foundation_.handleBodyClick(evt);\n\n this.registerBodyClickListener_ = () => document.body.addEventListener('click', this.handleBodyClick_);\n this.deregisterBodyClickListener_ = () => document.body.removeEventListener('click', this.handleBodyClick_);\n\n this.listen('keydown', this.handleKeydown_);\n this.listen(strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.listen(strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n }\n\n destroy() {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(strings.OPENED_EVENT, this.registerBodyClickListener_);\n this.unlisten(strings.CLOSED_EVENT, this.deregisterBodyClickListener_);\n super.destroy();\n }\n\n get open(): boolean {\n return this.foundation_.isOpen();\n }\n\n set open(value: boolean) {\n if (value) {\n const focusableElements = this.root_.querySelectorAll<HTMLElement | SVGElement>(strings.FOCUSABLE_ELEMENTS);\n this.firstFocusableElement_ = focusableElements[0];\n this.lastFocusableElement_ = focusableElements[focusableElements.length - 1];\n this.foundation_.open();\n } else {\n this.foundation_.close();\n }\n }\n\n set quickOpen(quickOpen: boolean) {\n this.foundation_.setQuickOpen(quickOpen);\n }\n\n /**\n * Removes the menu-surface from it's current location and appends it to the\n * body to overcome any overflow:hidden issues.\n */\n hoistMenuToBody() {\n document.body.appendChild(this.root_);\n this.setIsHoisted(true);\n }\n\n /** Sets the foundation to use page offsets for an positioning when the menu is hoisted to the body. */\n setIsHoisted(isHoisted: boolean) {\n this.foundation_.setIsHoisted(isHoisted);\n }\n\n /** Sets the element that the menu-surface is anchored to. */\n setMenuSurfaceAnchorElement(element: Element) {\n this.anchorElement = element;\n }\n\n /** Sets the menu-surface to position: fixed. */\n setFixedPosition(isFixed: boolean) {\n if (isFixed) {\n this.root_.classList.add(cssClasses.FIXED);\n } else {\n this.root_.classList.remove(cssClasses.FIXED);\n }\n\n this.foundation_.setFixedPosition(isFixed);\n }\n\n /** Sets the absolute x/y position to position based on. Requires the menu to be hoisted. */\n setAbsolutePosition(x: number, y: number) {\n this.foundation_.setAbsolutePosition(x, y);\n this.setIsHoisted(true);\n }\n\n /**\n * @param corner Default anchor corner alignment of top-left surface corner.\n */\n setAnchorCorner(corner: Corner) {\n this.foundation_.setAnchorCorner(corner);\n }\n\n setAnchorMargin(margin: Partial<MDCMenuDistance>) {\n this.foundation_.setAnchorMargin(margin);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCMenuSurfaceAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n hasAnchor: () => !!this.anchorElement,\n notifyClose: () => this.emit(MDCMenuSurfaceFoundation.strings.CLOSED_EVENT, {}),\n notifyOpen: () => this.emit(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, {}),\n isElementInContainer: (el) => this.root_.contains(el),\n isRtl: () => getComputedStyle(this.root_).getPropertyValue('direction') === 'rtl',\n setTransformOrigin: (origin) => {\n const propertyName = `${util.getTransformPropertyName(window)}-origin`;\n this.root_.style.setProperty(propertyName, origin);\n },\n\n isFocused: () => document.activeElement === this.root_,\n saveFocus: () => {\n this.previousFocus_ = document.activeElement as HTMLElement | SVGElement | null;\n },\n restoreFocus: () => {\n if (this.root_.contains(document.activeElement)) {\n if (this.previousFocus_ && this.previousFocus_.focus) {\n this.previousFocus_.focus();\n }\n }\n },\n isFirstElementFocused: () =>\n this.firstFocusableElement_ ? this.firstFocusableElement_ === document.activeElement : false,\n isLastElementFocused: () =>\n this.lastFocusableElement_ ? this.lastFocusableElement_ === document.activeElement : false,\n focusFirstElement: () =>\n this.firstFocusableElement_ && this.firstFocusableElement_.focus && this.firstFocusableElement_.focus(),\n focusLastElement: () =>\n this.lastFocusableElement_ && this.lastFocusableElement_.focus && this.lastFocusableElement_.focus(),\n\n getInnerDimensions: () => {\n return {width: this.root_.offsetWidth, height: this.root_.offsetHeight};\n },\n getAnchorDimensions: () => this.anchorElement ? this.anchorElement.getBoundingClientRect() : null,\n getWindowDimensions: () => {\n return {width: window.innerWidth, height: window.innerHeight};\n },\n getBodyDimensions: () => {\n return {width: document.body.clientWidth, height: document.body.clientHeight};\n },\n getWindowScroll: () => {\n return {x: window.pageXOffset, y: window.pageYOffset};\n },\n setPosition: (position) => {\n this.root_.style.left = 'left' in position ? `${position.left}px` : '';\n this.root_.style.right = 'right' in position ? `${position.right}px` : '';\n this.root_.style.top = 'top' in position ? `${position.top}px` : '';\n this.root_.style.bottom = 'bottom' in position ? `${position.bottom}px` : '';\n },\n setMaxHeight: (height) => {\n this.root_.style.maxHeight = height;\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCMenuSurfaceFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu-surface/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {CustomEventListener, SpecificEventListener} from '@material/base/types';\nimport {MDCList, MDCListFactory} from '@material/list/component';\nimport {MDCListFoundation} from '@material/list/foundation';\nimport {MDCListActionEvent} from '@material/list/types';\nimport {MDCMenuSurface, MDCMenuSurfaceFactory} from '@material/menu-surface/component';\nimport {Corner} from '@material/menu-surface/constants';\nimport {MDCMenuSurfaceFoundation} from '@material/menu-surface/foundation';\nimport {MDCMenuDistance} from '@material/menu-surface/types';\nimport {MDCMenuAdapter} from './adapter';\nimport {cssClasses, DefaultFocusState, strings} from './constants';\nimport {MDCMenuFoundation} from './foundation';\nimport {MDCMenuItemComponentEventDetail} from './types';\n\nexport type MDCMenuFactory = (el: Element, foundation?: MDCMenuFoundation) => MDCMenu;\n\nexport class MDCMenu extends MDCComponent<MDCMenuFoundation> {\n static attachTo(root: Element) {\n return new MDCMenu(root);\n }\n\n private menuSurfaceFactory_!: MDCMenuSurfaceFactory; // assigned in initialize()\n private listFactory_!: MDCListFactory; // assigned in initialize()\n\n private menuSurface_!: MDCMenuSurface; // assigned in initialSyncWithDOM()\n private list_!: MDCList | null; // assigned in initialSyncWithDOM()\n\n private handleKeydown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n private handleItemAction_!: CustomEventListener<MDCListActionEvent>; // assigned in initialSyncWithDOM()\n private handleMenuSurfaceOpened_!: EventListener; // assigned in initialSyncWithDOM()\n\n initialize(\n menuSurfaceFactory: MDCMenuSurfaceFactory = (el) => new MDCMenuSurface(el),\n listFactory: MDCListFactory = (el) => new MDCList(el)) {\n this.menuSurfaceFactory_ = menuSurfaceFactory;\n this.listFactory_ = listFactory;\n }\n\n initialSyncWithDOM() {\n this.menuSurface_ = this.menuSurfaceFactory_(this.root_);\n\n const list = this.root_.querySelector(strings.LIST_SELECTOR);\n if (list) {\n this.list_ = this.listFactory_(list);\n this.list_.wrapFocus = true;\n } else {\n this.list_ = null;\n }\n\n this.handleKeydown_ = (evt) => this.foundation_.handleKeydown(evt);\n this.handleItemAction_ = (evt) => this.foundation_.handleItemAction(this.items[evt.detail.index]);\n this.handleMenuSurfaceOpened_ = () => this.foundation_.handleMenuSurfaceOpened();\n\n this.menuSurface_.listen(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.listen('keydown', this.handleKeydown_);\n this.listen(MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n }\n\n destroy() {\n if (this.list_) {\n this.list_.destroy();\n }\n\n this.menuSurface_.destroy();\n this.menuSurface_.unlisten(MDCMenuSurfaceFoundation.strings.OPENED_EVENT, this.handleMenuSurfaceOpened_);\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten(MDCListFoundation.strings.ACTION_EVENT, this.handleItemAction_);\n super.destroy();\n }\n\n get open(): boolean {\n return this.menuSurface_.open;\n }\n\n set open(value: boolean) {\n this.menuSurface_.open = value;\n }\n\n get wrapFocus(): boolean {\n return this.list_ ? this.list_.wrapFocus : false;\n }\n\n set wrapFocus(value: boolean) {\n if (this.list_) {\n this.list_.wrapFocus = value;\n }\n }\n\n /**\n * Return the items within the menu. Note that this only contains the set of elements within\n * the items container that are proper list items, and not supplemental / presentational DOM\n * elements.\n */\n get items(): Element[] {\n return this.list_ ? this.list_.listElements : [];\n }\n\n set quickOpen(quickOpen: boolean) {\n this.menuSurface_.quickOpen = quickOpen;\n }\n\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n * @param focusState Default focus state.\n */\n setDefaultFocusState(focusState: DefaultFocusState) {\n this.foundation_.setDefaultFocusState(focusState);\n }\n\n /**\n * @param corner Default anchor corner alignment of top-left menu corner.\n */\n setAnchorCorner(corner: Corner) {\n this.menuSurface_.setAnchorCorner(corner);\n }\n\n setAnchorMargin(margin: Partial<MDCMenuDistance>) {\n this.menuSurface_.setAnchorMargin(margin);\n }\n\n /**\n * @return The item within the menu at the index specified.\n */\n getOptionByIndex(index: number): Element | null {\n const items = this.items;\n\n if (index < items.length) {\n return this.items[index];\n } else {\n return null;\n }\n }\n\n setFixedPosition(isFixed: boolean) {\n this.menuSurface_.setFixedPosition(isFixed);\n }\n\n hoistMenuToBody() {\n this.menuSurface_.hoistMenuToBody();\n }\n\n setIsHoisted(isHoisted: boolean) {\n this.menuSurface_.setIsHoisted(isHoisted);\n }\n\n setAbsolutePosition(x: number, y: number) {\n this.menuSurface_.setAbsolutePosition(x, y);\n }\n\n /**\n * Sets the element that the menu-surface is anchored to.\n */\n setAnchorElement(element: Element) {\n this.menuSurface_.anchorElement = element;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCMenuAdapter = {\n addClassToElementAtIndex: (index, className) => {\n const list = this.items;\n list[index].classList.add(className);\n },\n removeClassFromElementAtIndex: (index, className) => {\n const list = this.items;\n list[index].classList.remove(className);\n },\n addAttributeToElementAtIndex: (index, attr, value) => {\n const list = this.items;\n list[index].setAttribute(attr, value);\n },\n removeAttributeFromElementAtIndex: (index, attr) => {\n const list = this.items;\n list[index].removeAttribute(attr);\n },\n elementContainsClass: (element, className) => element.classList.contains(className),\n closeSurface: () => this.open = false,\n getElementIndex: (element) => this.items.indexOf(element),\n getParentElement: (element) => element.parentElement,\n getSelectedElementIndex: (selectionGroup) => {\n const selectedListItem = selectionGroup.querySelector(`.${cssClasses.MENU_SELECTED_LIST_ITEM}`);\n return selectedListItem ? this.items.indexOf(selectedListItem) : -1;\n },\n notifySelected: (evtData) => this.emit<MDCMenuItemComponentEventDetail>(strings.SELECTED_EVENT, {\n index: evtData.index,\n item: this.items[evtData.index],\n }),\n getMenuItemCount: () => this.items.length,\n focusItemAtIndex: (index) => (this.items[index] as HTMLElement).focus(),\n focusListRoot: () => (this.root_.querySelector(strings.LIST_SELECTOR) as HTMLElement).focus(),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCMenuFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCListFoundation} from '@material/list/foundation';\nimport {MDCMenuSurfaceFoundation} from '@material/menu-surface/foundation';\nimport {MDCMenuAdapter} from './adapter';\nimport {cssClasses, DefaultFocusState, numbers, strings} from './constants';\n\nexport class MDCMenuFoundation extends MDCFoundation<MDCMenuAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n private closeAnimationEndTimerId_ = 0;\n private defaultFocusState_ = DefaultFocusState.LIST_ROOT;\n\n /**\n * @see {@link MDCMenuAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCMenuAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClassToElementAtIndex: () => undefined,\n removeClassFromElementAtIndex: () => undefined,\n addAttributeToElementAtIndex: () => undefined,\n removeAttributeFromElementAtIndex: () => undefined,\n elementContainsClass: () => false,\n closeSurface: () => undefined,\n getElementIndex: () => -1,\n getParentElement: () => null,\n getSelectedElementIndex: () => -1,\n notifySelected: () => undefined,\n getMenuItemCount: () => 0,\n focusItemAtIndex: () => undefined,\n focusListRoot: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n constructor(adapter?: Partial<MDCMenuAdapter>) {\n super({...MDCMenuFoundation.defaultAdapter, ...adapter});\n }\n\n destroy() {\n if (this.closeAnimationEndTimerId_) {\n clearTimeout(this.closeAnimationEndTimerId_);\n }\n\n this.adapter_.closeSurface();\n }\n\n handleKeydown(evt: KeyboardEvent) {\n const {key, keyCode} = evt;\n const isTab = key === 'Tab' || keyCode === 9;\n\n if (isTab) {\n this.adapter_.closeSurface();\n }\n }\n\n handleItemAction(listItem: Element) {\n const index = this.adapter_.getElementIndex(listItem);\n if (index < 0) {\n return;\n }\n\n this.adapter_.notifySelected({index});\n this.adapter_.closeSurface();\n\n // Wait for the menu to close before adding/removing classes that affect styles.\n this.closeAnimationEndTimerId_ = setTimeout(() => {\n const selectionGroup = this.getSelectionGroup_(listItem);\n if (selectionGroup) {\n this.handleSelectionGroup_(selectionGroup, index);\n }\n }, MDCMenuSurfaceFoundation.numbers.TRANSITION_CLOSE_DURATION);\n }\n\n handleMenuSurfaceOpened() {\n switch (this.defaultFocusState_) {\n case DefaultFocusState.FIRST_ITEM:\n this.adapter_.focusItemAtIndex(0);\n break;\n case DefaultFocusState.LAST_ITEM:\n this.adapter_.focusItemAtIndex(this.adapter_.getMenuItemCount() - 1);\n break;\n case DefaultFocusState.NONE:\n // Do nothing.\n break;\n default:\n this.adapter_.focusListRoot();\n break;\n }\n }\n\n /**\n * Sets default focus state where the menu should focus every time when menu\n * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by\n * default.\n */\n setDefaultFocusState(focusState: DefaultFocusState) {\n this.defaultFocusState_ = focusState;\n }\n\n /**\n * Handles toggling the selected classes in a selection group when a selection is made.\n */\n private handleSelectionGroup_(selectionGroup: Element, index: number) {\n // De-select the previous selection in this group.\n const selectedIndex = this.adapter_.getSelectedElementIndex(selectionGroup);\n if (selectedIndex >= 0) {\n this.adapter_.removeAttributeFromElementAtIndex(selectedIndex, strings.ARIA_SELECTED_ATTR);\n this.adapter_.removeClassFromElementAtIndex(selectedIndex, cssClasses.MENU_SELECTED_LIST_ITEM);\n }\n // Select the new list item in this group.\n this.adapter_.addClassToElementAtIndex(index, cssClasses.MENU_SELECTED_LIST_ITEM);\n this.adapter_.addAttributeToElementAtIndex(index, strings.ARIA_SELECTED_ATTR, 'true');\n }\n\n /**\n * Returns the parent selection group of an element if one exists.\n */\n private getSelectionGroup_(listItem: Element): Element | null {\n let parent = this.adapter_.getParentElement(listItem);\n if (!parent) {\n return null;\n }\n\n let isGroup = this.adapter_.elementContainsClass(parent, cssClasses.MENU_SELECTION_GROUP);\n\n // Iterate through ancestors until we find the group or get to the list.\n while (!isGroup && parent && !this.adapter_.elementContainsClass(parent, MDCListFoundation.cssClasses.ROOT)) {\n parent = this.adapter_.getParentElement(parent);\n isGroup = parent ? this.adapter_.elementContainsClass(parent, cssClasses.MENU_SELECTION_GROUP) : false;\n }\n\n if (isGroup) {\n return parent;\n } else {\n return null;\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCMenuFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n NOTCH_ELEMENT_SELECTOR: '.mdc-notched-outline__notch',\n};\n\nconst numbers = {\n // This should stay in sync with $mdc-notched-outline-padding * 2.\n NOTCH_ELEMENT_PADDING: 8,\n};\n\nconst cssClasses = {\n NO_LABEL: 'mdc-notched-outline--no-label',\n OUTLINE_NOTCHED: 'mdc-notched-outline--notched',\n OUTLINE_UPGRADED: 'mdc-notched-outline--upgraded',\n};\n\nexport {cssClasses, numbers, strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-notched-outline/constants.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCNotchedOutlineAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\nexport class MDCNotchedOutlineFoundation extends MDCFoundation<MDCNotchedOutlineAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n static get numbers() {\n return numbers;\n }\n\n /**\n * See {@link MDCNotchedOutlineAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCNotchedOutlineAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n setNotchWidthProperty: () => undefined,\n removeNotchWidthProperty: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n constructor(adapter?: Partial<MDCNotchedOutlineAdapter>) {\n super({...MDCNotchedOutlineFoundation.defaultAdapter, ...adapter});\n }\n\n /**\n * Adds the outline notched selector and updates the notch width calculated based off of notchWidth.\n */\n notch(notchWidth: number) {\n const {OUTLINE_NOTCHED} = MDCNotchedOutlineFoundation.cssClasses;\n\n if (notchWidth > 0) {\n notchWidth += numbers.NOTCH_ELEMENT_PADDING; // Add padding from left/right.\n }\n\n this.adapter_.setNotchWidthProperty(notchWidth);\n this.adapter_.addClass(OUTLINE_NOTCHED);\n }\n\n /**\n * Removes notched outline selector to close the notch in the outline.\n */\n closeNotch() {\n const {OUTLINE_NOTCHED} = MDCNotchedOutlineFoundation.cssClasses;\n this.adapter_.removeClass(OUTLINE_NOTCHED);\n this.adapter_.removeNotchWidthProperty();\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCNotchedOutlineFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-notched-outline/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCRadioAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCRadioFoundation extends MDCFoundation<MDCRadioAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCRadioAdapter {\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n setNativeControlDisabled: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCRadioAdapter>) {\n super({...MDCRadioFoundation.defaultAdapter, ...adapter});\n }\n\n setDisabled(disabled: boolean) {\n const {DISABLED} = MDCRadioFoundation.cssClasses;\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(DISABLED);\n } else {\n this.adapter_.removeClass(DISABLED);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCRadioFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-radio/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n DISABLED: 'mdc-select--disabled',\n FOCUSED: 'mdc-select--focused',\n INVALID: 'mdc-select--invalid',\n OUTLINED: 'mdc-select--outlined',\n REQUIRED: 'mdc-select--required',\n ROOT: 'mdc-select',\n SELECTED_ITEM_CLASS: 'mdc-list-item--selected',\n WITH_LEADING_ICON: 'mdc-select--with-leading-icon',\n};\n\nconst strings = {\n ARIA_CONTROLS: 'aria-controls',\n ARIA_SELECTED_ATTR: 'aria-selected',\n CHANGE_EVENT: 'MDCSelect:change',\n ENHANCED_VALUE_ATTR: 'data-value',\n HIDDEN_INPUT_SELECTOR: 'input[type=\"hidden\"]',\n LABEL_SELECTOR: '.mdc-floating-label',\n LEADING_ICON_SELECTOR: '.mdc-select__icon',\n LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',\n MENU_SELECTOR: '.mdc-select__menu',\n NATIVE_CONTROL_SELECTOR: '.mdc-select__native-control',\n OUTLINE_SELECTOR: '.mdc-notched-outline',\n SELECTED_ITEM_SELECTOR: `.${cssClasses.SELECTED_ITEM_CLASS}`,\n SELECTED_TEXT_SELECTOR: '.mdc-select__selected-text',\n};\n\nconst numbers = {\n LABEL_SCALE: 0.75,\n};\n\nexport {cssClasses, strings, numbers};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/constants.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCSelectAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\nimport {MDCSelectHelperTextFoundation} from './helper-text/foundation';\nimport {MDCSelectIconFoundation} from './icon/foundation';\nimport {MDCSelectFoundationMap} from './types';\n\nexport class MDCSelectFoundation extends MDCFoundation<MDCSelectAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get strings() {\n return strings;\n }\n\n /**\n * See {@link MDCSelectAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCSelectAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n activateBottomLine: () => undefined,\n deactivateBottomLine: () => undefined,\n setValue: () => undefined,\n getValue: () => '',\n floatLabel: () => undefined,\n getLabelWidth: () => 0,\n hasOutline: () => false,\n notchOutline: () => undefined,\n closeOutline: () => undefined,\n openMenu: () => undefined,\n closeMenu: () => undefined,\n isMenuOpen: () => false,\n setSelectedIndex: () => undefined,\n setDisabled: () => undefined,\n setRippleCenter: () => undefined,\n notifyChange: () => undefined,\n checkValidity: () => false,\n setValid: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private readonly leadingIcon_: MDCSelectIconFoundation | undefined;\n private readonly helperText_: MDCSelectHelperTextFoundation | undefined;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n /**\n * @param adapter\n * @param foundationMap Map from subcomponent names to their subfoundations.\n */\n constructor(adapter?: Partial<MDCSelectAdapter>, foundationMap: Partial<MDCSelectFoundationMap> = {}) {\n super({...MDCSelectFoundation.defaultAdapter, ...adapter});\n\n this.leadingIcon_ = foundationMap.leadingIcon;\n this.helperText_ = foundationMap.helperText;\n }\n\n setSelectedIndex(index: number) {\n this.adapter_.setSelectedIndex(index);\n this.adapter_.closeMenu();\n const didChange = true;\n this.handleChange(didChange);\n }\n\n setValue(value: string) {\n this.adapter_.setValue(value);\n const didChange = true;\n this.handleChange(didChange);\n }\n\n getValue() {\n return this.adapter_.getValue();\n }\n\n setDisabled(isDisabled: boolean) {\n if (isDisabled) {\n this.adapter_.addClass(cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(cssClasses.DISABLED);\n }\n this.adapter_.setDisabled(isDisabled);\n this.adapter_.closeMenu();\n\n if (this.leadingIcon_) {\n this.leadingIcon_.setDisabled(isDisabled);\n }\n }\n\n /**\n * @param content Sets the content of the helper text.\n */\n setHelperTextContent(content: string) {\n if (this.helperText_) {\n this.helperText_.setContent(content);\n }\n }\n\n layout() {\n const openNotch = this.getValue().length > 0;\n this.notchOutline(openNotch);\n }\n\n /**\n * Handles value changes, via change event or programmatic updates.\n */\n handleChange(didChange = true) {\n const value = this.getValue();\n const optionHasValue = value.length > 0;\n const isRequired = this.adapter_.hasClass(cssClasses.REQUIRED);\n\n this.notchOutline(optionHasValue);\n\n if (!this.adapter_.hasClass(cssClasses.FOCUSED)) {\n this.adapter_.floatLabel(optionHasValue);\n }\n\n if (didChange) {\n this.adapter_.notifyChange(value);\n\n if (isRequired) {\n this.setValid(this.isValid());\n if (this.helperText_) {\n this.helperText_.setValidity(this.isValid());\n }\n }\n }\n }\n\n /**\n * Handles focus events from select element.\n */\n handleFocus() {\n this.adapter_.addClass(cssClasses.FOCUSED);\n this.adapter_.floatLabel(true);\n this.notchOutline(true);\n this.adapter_.activateBottomLine();\n if (this.helperText_) {\n this.helperText_.showToScreenReader();\n }\n }\n\n /**\n * Handles blur events from select element.\n */\n handleBlur() {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n this.adapter_.removeClass(cssClasses.FOCUSED);\n this.handleChange(false);\n this.adapter_.deactivateBottomLine();\n\n const isRequired = this.adapter_.hasClass(cssClasses.REQUIRED);\n\n if (isRequired) {\n this.setValid(this.isValid());\n if (this.helperText_) {\n this.helperText_.setValidity(this.isValid());\n }\n }\n }\n\n handleClick(normalizedX: number) {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n this.adapter_.setRippleCenter(normalizedX);\n\n this.adapter_.openMenu();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (this.adapter_.isMenuOpen()) {\n return;\n }\n\n const isEnter = event.key === 'Enter' || event.keyCode === 13;\n const isSpace = event.key === 'Space' || event.keyCode === 32;\n const arrowUp = event.key === 'ArrowUp' || event.keyCode === 38;\n const arrowDown = event.key === 'ArrowDown' || event.keyCode === 40;\n\n if (this.adapter_.hasClass(cssClasses.FOCUSED) && (isEnter || isSpace || arrowUp || arrowDown)) {\n this.adapter_.openMenu();\n event.preventDefault();\n }\n }\n\n /**\n * Opens/closes the notched outline.\n */\n notchOutline(openNotch: boolean) {\n if (!this.adapter_.hasOutline()) {\n return;\n }\n const isFocused = this.adapter_.hasClass(cssClasses.FOCUSED);\n\n if (openNotch) {\n const labelScale = numbers.LABEL_SCALE;\n const labelWidth = this.adapter_.getLabelWidth() * labelScale;\n this.adapter_.notchOutline(labelWidth);\n } else if (!isFocused) {\n this.adapter_.closeOutline();\n }\n }\n\n /**\n * Sets the aria label of the leading icon.\n */\n setLeadingIconAriaLabel(label: string) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setAriaLabel(label);\n }\n }\n\n /**\n * Sets the text content of the leading icon.\n */\n setLeadingIconContent(content: string) {\n if (this.leadingIcon_) {\n this.leadingIcon_.setContent(content);\n }\n }\n\n setValid(isValid: boolean) {\n this.adapter_.setValid(isValid);\n }\n\n isValid() {\n return this.adapter_.checkValidity();\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSelectFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCSelectHelperTextAdapter} from './adapter';\nimport {MDCSelectHelperTextFoundation} from './foundation';\n\nexport type MDCSelectHelperTextFactory =\n (el: Element, foundation?: MDCSelectHelperTextFoundation) => MDCSelectHelperText;\n\nexport class MDCSelectHelperText extends MDCComponent<MDCSelectHelperTextFoundation> {\n static attachTo(root: Element): MDCSelectHelperText {\n return new MDCSelectHelperText(root);\n }\n\n get foundation(): MDCSelectHelperTextFoundation {\n return this.foundation_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCSelectHelperTextAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n setAttr: (attr, value) => this.root_.setAttribute(attr, value),\n removeAttr: (attr) => this.root_.removeAttribute(attr),\n setContent: (content) => {\n this.root_.textContent = content;\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCSelectHelperTextFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/helper-text/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCSelectHelperTextAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCSelectHelperTextFoundation extends MDCFoundation<MDCSelectHelperTextAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n /**\n * See {@link MDCSelectHelperTextAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCSelectHelperTextAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => false,\n setAttr: () => undefined,\n removeAttr: () => undefined,\n setContent: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n constructor(adapter?: Partial<MDCSelectHelperTextAdapter>) {\n super({...MDCSelectHelperTextFoundation.defaultAdapter, ...adapter});\n }\n\n /**\n * Sets the content of the helper text field.\n */\n setContent(content: string) {\n this.adapter_.setContent(content);\n }\n\n /**\n * Sets the persistency of the helper text.\n */\n setPersistent(isPersistent: boolean) {\n if (isPersistent) {\n this.adapter_.addClass(cssClasses.HELPER_TEXT_PERSISTENT);\n } else {\n this.adapter_.removeClass(cssClasses.HELPER_TEXT_PERSISTENT);\n }\n }\n\n /**\n * @param isValidation True to make the helper text act as an error validation message.\n */\n setValidation(isValidation: boolean) {\n if (isValidation) {\n this.adapter_.addClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n } else {\n this.adapter_.removeClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n }\n }\n\n /**\n * Makes the helper text visible to screen readers.\n */\n showToScreenReader() {\n this.adapter_.removeAttr(strings.ARIA_HIDDEN);\n }\n\n /**\n * Sets the validity of the helper text based on the select validity.\n */\n setValidity(selectIsValid: boolean) {\n const helperTextIsPersistent = this.adapter_.hasClass(cssClasses.HELPER_TEXT_PERSISTENT);\n const helperTextIsValidationMsg = this.adapter_.hasClass(cssClasses.HELPER_TEXT_VALIDATION_MSG);\n const validationMsgNeedsDisplay = helperTextIsValidationMsg && !selectIsValid;\n\n if (validationMsgNeedsDisplay) {\n this.adapter_.setAttr(strings.ROLE, 'alert');\n } else {\n this.adapter_.removeAttr(strings.ROLE);\n }\n\n if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {\n this.hide_();\n }\n }\n\n /**\n * Hides the help text from screen readers.\n */\n private hide_() {\n this.adapter_.setAttr(strings.ARIA_HIDDEN, 'true');\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSelectHelperTextFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/helper-text/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCSelectIconAdapter} from './adapter';\nimport {MDCSelectIconFoundation} from './foundation';\n\nexport type MDCSelectIconFactory = (el: Element, foundation?: MDCSelectIconFoundation) => MDCSelectIcon;\n\nexport class MDCSelectIcon extends MDCComponent<MDCSelectIconFoundation> {\n static attachTo(root: Element): MDCSelectIcon {\n return new MDCSelectIcon(root);\n }\n\n get foundation(): MDCSelectIconFoundation {\n return this.foundation_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCSelectIconAdapter = {\n getAttr: (attr) => this.root_.getAttribute(attr),\n setAttr: (attr, value) => this.root_.setAttribute(attr, value),\n removeAttr: (attr) => this.root_.removeAttribute(attr),\n setContent: (content) => {\n this.root_.textContent = content;\n },\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n notifyIconAction: () => this.emit(\n MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCSelectIconFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/icon/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCSelectIconAdapter} from './adapter';\nimport {strings} from './constants';\n\ntype InteractionEventType = 'click' | 'keydown';\n\nconst INTERACTION_EVENTS: InteractionEventType[] = ['click', 'keydown'];\n\nexport class MDCSelectIconFoundation extends MDCFoundation<MDCSelectIconAdapter> {\n static get strings() {\n return strings;\n }\n\n /**\n * See {@link MDCSelectIconAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCSelectIconAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getAttr: () => null,\n setAttr: () => undefined,\n removeAttr: () => undefined,\n setContent: () => undefined,\n registerInteractionHandler: () => undefined,\n deregisterInteractionHandler: () => undefined,\n notifyIconAction: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private savedTabIndex_: string | null = null;\n\n // assigned in initialSyncWithDOM()\n private readonly interactionHandler_!: SpecificEventListener<InteractionEventType>;\n\n constructor(adapter?: Partial<MDCSelectIconAdapter>) {\n super({...MDCSelectIconFoundation.defaultAdapter, ...adapter});\n\n this.interactionHandler_ = (evt) => this.handleInteraction(evt);\n }\n\n init() {\n this.savedTabIndex_ = this.adapter_.getAttr('tabindex');\n\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.registerInteractionHandler(evtType, this.interactionHandler_);\n });\n }\n\n destroy() {\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.deregisterInteractionHandler(evtType, this.interactionHandler_);\n });\n }\n\n setDisabled(disabled: boolean) {\n if (!this.savedTabIndex_) {\n return;\n }\n\n if (disabled) {\n this.adapter_.setAttr('tabindex', '-1');\n this.adapter_.removeAttr('role');\n } else {\n this.adapter_.setAttr('tabindex', this.savedTabIndex_);\n this.adapter_.setAttr('role', strings.ICON_ROLE);\n }\n }\n\n setAriaLabel(label: string) {\n this.adapter_.setAttr('aria-label', label);\n }\n\n setContent(content: string) {\n this.adapter_.setContent(content);\n }\n\n handleInteraction(evt: MouseEvent | KeyboardEvent) {\n const isEnterKey = (evt as KeyboardEvent).key === 'Enter' || (evt as KeyboardEvent).keyCode === 13;\n if (evt.type === 'click' || isEnterKey) {\n this.adapter_.notifyIconAction();\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSelectIconFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/icon/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ACTIVE: 'mdc-slider--active',\n DISABLED: 'mdc-slider--disabled',\n DISCRETE: 'mdc-slider--discrete',\n FOCUS: 'mdc-slider--focus',\n HAS_TRACK_MARKER: 'mdc-slider--display-markers',\n IN_TRANSIT: 'mdc-slider--in-transit',\n IS_DISCRETE: 'mdc-slider--discrete',\n};\n\nconst strings = {\n ARIA_DISABLED: 'aria-disabled',\n ARIA_VALUEMAX: 'aria-valuemax',\n ARIA_VALUEMIN: 'aria-valuemin',\n ARIA_VALUENOW: 'aria-valuenow',\n CHANGE_EVENT: 'MDCSlider:change',\n INPUT_EVENT: 'MDCSlider:input',\n LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child',\n PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker',\n STEP_DATA_ATTR: 'data-step',\n THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container',\n TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container',\n TRACK_SELECTOR: '.mdc-slider__track',\n};\n\nconst numbers = {\n PAGE_FACTOR: 4,\n};\n\nexport {cssClasses, strings, numbers};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-slider/constants.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {getCorrectEventName, getCorrectPropertyName} from '@material/animation/util';\nimport {MDCFoundation} from '@material/base/foundation';\nimport {EventType, SpecificEventListener} from '@material/base/types';\nimport {MDCSliderAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\ntype UpEventType = 'mouseup' | 'pointerup' | 'touchend';\ntype DownEventType = 'mousedown' | 'pointerdown' | 'touchstart';\ntype MoveEventType = 'mousemove' | 'pointermove' | 'touchmove';\ntype MouseLikeEvent = MouseEvent | PointerEvent | TouchEvent;\n\ntype MoveEventMap = {\n readonly [K in DownEventType]: MoveEventType;\n};\n\nconst DOWN_EVENTS: DownEventType[] = ['mousedown', 'pointerdown', 'touchstart'];\nconst UP_EVENTS: UpEventType[] = ['mouseup', 'pointerup', 'touchend'];\n\nconst MOVE_EVENT_MAP: MoveEventMap = {\n mousedown: 'mousemove',\n pointerdown: 'pointermove',\n touchstart: 'touchmove',\n};\n\nconst KEY_IDS = {\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_UP: 'ArrowUp',\n END: 'End',\n HOME: 'Home',\n PAGE_DOWN: 'PageDown',\n PAGE_UP: 'PageUp',\n};\n\nexport class MDCSliderFoundation extends MDCFoundation<MDCSliderAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCSliderAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasClass: () => false,\n addClass: () => undefined,\n removeClass: () => undefined,\n getAttribute: () => null,\n setAttribute: () => undefined,\n removeAttribute: () => undefined,\n computeBoundingRect: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n getTabIndex: () => 0,\n registerInteractionHandler: () => undefined,\n deregisterInteractionHandler: () => undefined,\n registerThumbContainerInteractionHandler: () => undefined,\n deregisterThumbContainerInteractionHandler: () => undefined,\n registerBodyInteractionHandler: () => undefined,\n deregisterBodyInteractionHandler: () => undefined,\n registerResizeHandler: () => undefined,\n deregisterResizeHandler: () => undefined,\n notifyInput: () => undefined,\n notifyChange: () => undefined,\n setThumbContainerStyleProperty: () => undefined,\n setTrackStyleProperty: () => undefined,\n setMarkerValue: () => undefined,\n appendTrackMarkers: () => undefined,\n removeTrackMarkers: () => undefined,\n setLastTrackMarkersStyleProperty: () => undefined,\n isRTL: () => false,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private rect_!: ClientRect; // assigned in layout() via init()\n\n /**\n * We set this to NaN since we want it to be a number, but we can't use '0' or '-1'\n * because those could be valid tabindices set by the client code.\n */\n private savedTabIndex_ = NaN;\n\n private active_ = false;\n private inTransit_ = false;\n private isDiscrete_ = false;\n private hasTrackMarker_ = false;\n private handlingThumbTargetEvt_ = false;\n private min_ = 0;\n private max_ = 100;\n private step_ = 0;\n private value_ = 0;\n private disabled_ = false;\n private preventFocusState_ = false;\n\n private readonly thumbContainerPointerHandler_: SpecificEventListener<DownEventType>;\n private readonly interactionStartHandler_: SpecificEventListener<DownEventType>;\n private readonly keydownHandler_: SpecificEventListener<'keydown'>;\n private readonly focusHandler_: SpecificEventListener<'focus'>;\n private readonly blurHandler_: SpecificEventListener<'blur'>;\n private readonly resizeHandler_: SpecificEventListener<'resize'>;\n\n constructor(adapter?: Partial<MDCSliderAdapter>) {\n super({...MDCSliderFoundation.defaultAdapter, ...adapter});\n\n this.thumbContainerPointerHandler_ = () => this.handlingThumbTargetEvt_ = true;\n this.interactionStartHandler_ = (evt: MouseLikeEvent) => this.handleDown_(evt);\n this.keydownHandler_ = (evt) => this.handleKeydown_(evt);\n this.focusHandler_ = () => this.handleFocus_();\n this.blurHandler_ = () => this.handleBlur_();\n this.resizeHandler_ = () => this.layout();\n }\n\n init() {\n this.isDiscrete_ = this.adapter_.hasClass(cssClasses.IS_DISCRETE);\n this.hasTrackMarker_ = this.adapter_.hasClass(cssClasses.HAS_TRACK_MARKER);\n\n DOWN_EVENTS.forEach((evtName) => {\n this.adapter_.registerInteractionHandler(evtName, this.interactionStartHandler_);\n this.adapter_.registerThumbContainerInteractionHandler(evtName, this.thumbContainerPointerHandler_);\n });\n\n this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);\n this.adapter_.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter_.registerInteractionHandler('blur', this.blurHandler_);\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n\n this.layout();\n\n // At last step, provide a reasonable default value to discrete slider\n if (this.isDiscrete_ && this.getStep() === 0) {\n this.step_ = 1;\n }\n }\n\n destroy() {\n DOWN_EVENTS.forEach((evtName) => {\n this.adapter_.deregisterInteractionHandler(evtName, this.interactionStartHandler_);\n this.adapter_.deregisterThumbContainerInteractionHandler(evtName, this.thumbContainerPointerHandler_);\n });\n\n this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);\n this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n }\n\n setupTrackMarker() {\n if (this.isDiscrete_ && this.hasTrackMarker_ && this.getStep() !== 0) {\n const min = this.getMin();\n const max = this.getMax();\n const step = this.getStep();\n let numMarkers = (max - min) / step;\n\n // In case distance between max & min is indivisible to step,\n // we place the secondary to last marker proportionally at where thumb\n // could reach and place the last marker at max value\n const indivisible = Math.ceil(numMarkers) !== numMarkers;\n if (indivisible) {\n numMarkers = Math.ceil(numMarkers);\n }\n\n this.adapter_.removeTrackMarkers();\n this.adapter_.appendTrackMarkers(numMarkers);\n\n if (indivisible) {\n const lastStepRatio = (max - numMarkers * step) / step + 1;\n this.adapter_.setLastTrackMarkersStyleProperty('flex-grow', String(lastStepRatio));\n }\n }\n }\n\n layout() {\n this.rect_ = this.adapter_.computeBoundingRect();\n this.updateUIForCurrentValue_();\n }\n\n getValue(): number {\n return this.value_;\n }\n\n setValue(value: number) {\n this.setValue_(value, false);\n }\n\n getMax(): number {\n return this.max_;\n }\n\n setMax(max: number) {\n if (max < this.min_) {\n throw new Error('Cannot set max to be less than the slider\\'s minimum value');\n }\n this.max_ = max;\n this.setValue_(this.value_, false, true);\n this.adapter_.setAttribute(strings.ARIA_VALUEMAX, String(this.max_));\n this.setupTrackMarker();\n }\n\n getMin(): number {\n return this.min_;\n }\n\n setMin(min: number) {\n if (min > this.max_) {\n throw new Error('Cannot set min to be greater than the slider\\'s maximum value');\n }\n this.min_ = min;\n this.setValue_(this.value_, false, true);\n this.adapter_.setAttribute(strings.ARIA_VALUEMIN, String(this.min_));\n this.setupTrackMarker();\n }\n\n getStep(): number {\n return this.step_;\n }\n\n setStep(step: number) {\n if (step < 0) {\n throw new Error('Step cannot be set to a negative number');\n }\n if (this.isDiscrete_ && (typeof (step) !== 'number' || step < 1)) {\n step = 1;\n }\n this.step_ = step;\n this.setValue_(this.value_, false, true);\n this.setupTrackMarker();\n }\n\n isDisabled(): boolean {\n return this.disabled_;\n }\n\n setDisabled(disabled: boolean) {\n this.disabled_ = disabled;\n this.toggleClass_(cssClasses.DISABLED, this.disabled_);\n if (this.disabled_) {\n this.savedTabIndex_ = this.adapter_.getTabIndex();\n this.adapter_.setAttribute(strings.ARIA_DISABLED, 'true');\n this.adapter_.removeAttribute('tabindex');\n } else {\n this.adapter_.removeAttribute(strings.ARIA_DISABLED);\n if (!isNaN(this.savedTabIndex_)) {\n this.adapter_.setAttribute('tabindex', String(this.savedTabIndex_));\n }\n }\n }\n\n /**\n * Called when the user starts interacting with the slider\n */\n private handleDown_(downEvent: MouseLikeEvent) {\n if (this.disabled_) {\n return;\n }\n\n this.preventFocusState_ = true;\n this.setInTransit_(!this.handlingThumbTargetEvt_);\n this.handlingThumbTargetEvt_ = false;\n this.setActive_(true);\n\n const moveHandler = (moveEvent: MouseLikeEvent) => {\n this.handleMove_(moveEvent);\n };\n\n const moveEventType = MOVE_EVENT_MAP[downEvent.type as DownEventType];\n\n // Note: upHandler is [de]registered on ALL potential pointer-related release event types, since some browsers\n // do not always fire these consistently in pairs.\n // (See https://github.com/material-components/material-components-web/issues/1192)\n const upHandler = () => {\n this.handleUp_();\n this.adapter_.deregisterBodyInteractionHandler(moveEventType, moveHandler);\n UP_EVENTS.forEach((evtName) => this.adapter_.deregisterBodyInteractionHandler(evtName, upHandler));\n };\n\n this.adapter_.registerBodyInteractionHandler(moveEventType, moveHandler);\n UP_EVENTS.forEach((evtName) => this.adapter_.registerBodyInteractionHandler(evtName, upHandler));\n this.setValueFromEvt_(downEvent);\n }\n\n /**\n * Called when the user moves the slider\n */\n private handleMove_(evt: MouseLikeEvent) {\n evt.preventDefault();\n this.setValueFromEvt_(evt);\n }\n\n /**\n * Called when the user's interaction with the slider ends\n */\n private handleUp_() {\n this.setActive_(false);\n this.adapter_.notifyChange();\n }\n\n /**\n * Returns the pageX of the event\n */\n private getPageX_(evt: MouseLikeEvent): number {\n if ((evt as TouchEvent).targetTouches && (evt as TouchEvent).targetTouches.length > 0) {\n return (evt as TouchEvent).targetTouches[0].pageX;\n }\n return (evt as MouseEvent).pageX;\n }\n\n /**\n * Sets the slider value from an event\n */\n private setValueFromEvt_(evt: MouseLikeEvent) {\n const pageX = this.getPageX_(evt);\n const value = this.computeValueFromPageX_(pageX);\n this.setValue_(value, true);\n }\n\n /**\n * Computes the new value from the pageX position\n */\n private computeValueFromPageX_(pageX: number): number {\n const {max_: max, min_: min} = this;\n const xPos = pageX - this.rect_.left;\n let pctComplete = xPos / this.rect_.width;\n if (this.adapter_.isRTL()) {\n pctComplete = 1 - pctComplete;\n }\n // Fit the percentage complete between the range [min,max]\n // by remapping from [0, 1] to [min, min+(max-min)].\n return min + pctComplete * (max - min);\n }\n\n /**\n * Handles keydown events\n */\n private handleKeydown_(evt: KeyboardEvent) {\n const keyId = this.getKeyId_(evt);\n const value = this.getValueForKeyId_(keyId);\n if (isNaN(value)) {\n return;\n }\n\n // Prevent page from scrolling due to key presses that would normally scroll the page\n evt.preventDefault();\n this.adapter_.addClass(cssClasses.FOCUS);\n this.setValue_(value, true);\n this.adapter_.notifyChange();\n }\n\n /**\n * Returns the computed name of the event\n */\n private getKeyId_(kbdEvt: KeyboardEvent): string {\n if (kbdEvt.key === KEY_IDS.ARROW_LEFT || kbdEvt.keyCode === 37) {\n return KEY_IDS.ARROW_LEFT;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_RIGHT || kbdEvt.keyCode === 39) {\n return KEY_IDS.ARROW_RIGHT;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_UP || kbdEvt.keyCode === 38) {\n return KEY_IDS.ARROW_UP;\n }\n if (kbdEvt.key === KEY_IDS.ARROW_DOWN || kbdEvt.keyCode === 40) {\n return KEY_IDS.ARROW_DOWN;\n }\n if (kbdEvt.key === KEY_IDS.HOME || kbdEvt.keyCode === 36) {\n return KEY_IDS.HOME;\n }\n if (kbdEvt.key === KEY_IDS.END || kbdEvt.keyCode === 35) {\n return KEY_IDS.END;\n }\n if (kbdEvt.key === KEY_IDS.PAGE_UP || kbdEvt.keyCode === 33) {\n return KEY_IDS.PAGE_UP;\n }\n if (kbdEvt.key === KEY_IDS.PAGE_DOWN || kbdEvt.keyCode === 34) {\n return KEY_IDS.PAGE_DOWN;\n }\n return '';\n }\n\n /**\n * Computes the value given a keyboard key ID\n */\n private getValueForKeyId_(keyId: string): number {\n const {max_: max, min_: min, step_: step} = this;\n let delta = step || (max - min) / 100;\n const valueNeedsToBeFlipped = this.adapter_.isRTL() && (\n keyId === KEY_IDS.ARROW_LEFT || keyId === KEY_IDS.ARROW_RIGHT\n );\n if (valueNeedsToBeFlipped) {\n delta = -delta;\n }\n\n switch (keyId) {\n case KEY_IDS.ARROW_LEFT:\n case KEY_IDS.ARROW_DOWN:\n return this.value_ - delta;\n case KEY_IDS.ARROW_RIGHT:\n case KEY_IDS.ARROW_UP:\n return this.value_ + delta;\n case KEY_IDS.HOME:\n return this.min_;\n case KEY_IDS.END:\n return this.max_;\n case KEY_IDS.PAGE_UP:\n return this.value_ + delta * numbers.PAGE_FACTOR;\n case KEY_IDS.PAGE_DOWN:\n return this.value_ - delta * numbers.PAGE_FACTOR;\n default:\n return NaN;\n }\n }\n\n private handleFocus_() {\n if (this.preventFocusState_) {\n return;\n }\n this.adapter_.addClass(cssClasses.FOCUS);\n }\n\n private handleBlur_() {\n this.preventFocusState_ = false;\n this.adapter_.removeClass(cssClasses.FOCUS);\n }\n\n /**\n * Sets the value of the slider\n */\n private setValue_(value: number, shouldFireInput: boolean, force = false) {\n if (value === this.value_ && !force) {\n return;\n }\n\n const {min_: min, max_: max} = this;\n const valueSetToBoundary = value === min || value === max;\n if (this.step_ && !valueSetToBoundary) {\n value = this.quantize_(value);\n }\n if (value < min) {\n value = min;\n } else if (value > max) {\n value = max;\n }\n this.value_ = value;\n this.adapter_.setAttribute(strings.ARIA_VALUENOW, String(this.value_));\n this.updateUIForCurrentValue_();\n\n if (shouldFireInput) {\n this.adapter_.notifyInput();\n if (this.isDiscrete_) {\n this.adapter_.setMarkerValue(value);\n }\n }\n }\n\n /**\n * Calculates the quantized value\n */\n private quantize_(value: number): number {\n const numSteps = Math.round(value / this.step_);\n return numSteps * this.step_;\n }\n\n private updateUIForCurrentValue_() {\n const {max_: max, min_: min, value_: value} = this;\n const pctComplete = (value - min) / (max - min);\n let translatePx = pctComplete * this.rect_.width;\n if (this.adapter_.isRTL()) {\n translatePx = this.rect_.width - translatePx;\n }\n\n const transformProp = getCorrectPropertyName(window, 'transform');\n const transitionendEvtName = getCorrectEventName(window, 'transitionend') as EventType;\n\n if (this.inTransit_) {\n const onTransitionEnd = () => {\n this.setInTransit_(false);\n this.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);\n };\n this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);\n }\n\n requestAnimationFrame(() => {\n // NOTE(traviskaufman): It would be nice to use calc() here,\n // but IE cannot handle calcs in transforms correctly.\n // See: https://goo.gl/NC2itk\n // Also note that the -50% offset is used to center the slider thumb.\n this.adapter_.setThumbContainerStyleProperty(transformProp, `translateX(${translatePx}px) translateX(-50%)`);\n this.adapter_.setTrackStyleProperty(transformProp, `scaleX(${pctComplete})`);\n });\n }\n\n /**\n * Toggles the active state of the slider\n */\n private setActive_(active: boolean) {\n this.active_ = active;\n this.toggleClass_(cssClasses.ACTIVE, this.active_);\n }\n\n /**\n * Toggles the inTransit state of the slider\n */\n private setInTransit_(inTransit: boolean) {\n this.inTransit_ = inTransit;\n this.toggleClass_(cssClasses.IN_TRANSIT, this.inTransit_);\n }\n\n /**\n * Conditionally adds or removes a class based on shouldBePresent\n */\n private toggleClass_(className: string, shouldBePresent: boolean) {\n if (shouldBePresent) {\n this.adapter_.addClass(className);\n } else {\n this.adapter_.removeClass(className);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSliderFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-slider/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {numbers, strings} from './constants';\n\nconst {ARIA_LIVE_DELAY_MS} = numbers;\nconst {ARIA_LIVE_LABEL_TEXT_ATTR} = strings;\n\nfunction announce(ariaEl: Element, labelEl: Element = ariaEl) {\n const priority = ariaEl.getAttribute('aria-live');\n\n // Trim text to ignore ` ` (see below).\n // textContent is only null if the node is a document, DOCTYPE, or notation.\n const labelText = labelEl.textContent!.trim();\n if (!labelText || !priority) {\n return;\n }\n\n // Temporarily disable `aria-live` to prevent JAWS+Firefox from announcing the message twice.\n ariaEl.setAttribute('aria-live', 'off');\n\n // Temporarily clear `textContent` to force a DOM mutation event that will be detected by screen readers.\n // `aria-live` elements are only announced when the element's `textContent` *changes*, so snackbars\n // sent to the browser in the initial HTML response won't be read unless we clear the element's `textContent` first.\n // Similarly, displaying the same snackbar message twice in a row doesn't trigger a DOM mutation event,\n // so screen readers won't announce the second message unless we first clear `textContent`.\n //\n // We have to clear the label text two different ways to make it work in all browsers and screen readers:\n //\n // 1. `textContent = ''` is required for IE11 + JAWS\n // 2. `innerHTML = ' '` is required for Chrome + JAWS and NVDA\n //\n // All other browser/screen reader combinations support both methods.\n //\n // The wrapper `<span>` visually hides the space character so that it doesn't cause jank when added/removed.\n // N.B.: Setting `position: absolute`, `opacity: 0`, or `height: 0` prevents Chrome from detecting the DOM change.\n //\n // This technique has been tested in:\n //\n // * JAWS 2019:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * NVDA 2018:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * ChromeVox 53\n labelEl.textContent = '';\n labelEl.innerHTML = '<span style=\"display: inline-block; width: 0; height: 1px;\"> </span>';\n\n // Prevent visual jank by temporarily displaying the label text in the ::before pseudo-element.\n // CSS generated content is normally announced by screen readers\n // (except in IE 11; see https://tink.uk/accessibility-support-for-css-generated-content/);\n // however, `aria-live` is turned off, so this DOM update will be ignored by screen readers.\n labelEl.setAttribute(ARIA_LIVE_LABEL_TEXT_ATTR, labelText);\n\n setTimeout(() => {\n // Allow screen readers to announce changes to the DOM again.\n ariaEl.setAttribute('aria-live', priority);\n\n // Remove the message from the ::before pseudo-element.\n labelEl.removeAttribute(ARIA_LIVE_LABEL_TEXT_ATTR);\n\n // Restore the original label text, which will be announced by screen readers.\n labelEl.textContent = labelText;\n }, ARIA_LIVE_DELAY_MS);\n}\n\nexport {announce};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-snackbar/util.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCSnackbarAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\nconst {OPENING, OPEN, CLOSING} = cssClasses;\nconst {REASON_ACTION, REASON_DISMISS} = strings;\n\nexport class MDCSnackbarFoundation extends MDCFoundation<MDCSnackbarAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCSnackbarAdapter {\n return {\n addClass: () => undefined,\n announce: () => undefined,\n notifyClosed: () => undefined,\n notifyClosing: () => undefined,\n notifyOpened: () => undefined,\n notifyOpening: () => undefined,\n removeClass: () => undefined,\n };\n }\n\n private isOpen_ = false;\n private animationFrame_ = 0;\n private animationTimer_ = 0;\n private autoDismissTimer_ = 0;\n private autoDismissTimeoutMs_ = numbers.DEFAULT_AUTO_DISMISS_TIMEOUT_MS;\n private closeOnEscape_ = true;\n\n constructor(adapter?: Partial<MDCSnackbarAdapter>) {\n super({...MDCSnackbarFoundation.defaultAdapter, ...adapter});\n }\n\n destroy() {\n this.clearAutoDismissTimer_();\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = 0;\n this.adapter_.removeClass(OPENING);\n this.adapter_.removeClass(OPEN);\n this.adapter_.removeClass(CLOSING);\n }\n\n open() {\n this.clearAutoDismissTimer_();\n this.isOpen_ = true;\n this.adapter_.notifyOpening();\n this.adapter_.removeClass(CLOSING);\n this.adapter_.addClass(OPENING);\n this.adapter_.announce();\n\n // Wait a frame once display is no longer \"none\", to establish basis for animation\n this.runNextAnimationFrame_(() => {\n this.adapter_.addClass(OPEN);\n\n this.animationTimer_ = setTimeout(() => {\n this.handleAnimationTimerEnd_();\n this.adapter_.notifyOpened();\n this.autoDismissTimer_ = setTimeout(() => {\n this.close(REASON_DISMISS);\n }, this.getTimeoutMs());\n }, numbers.SNACKBAR_ANIMATION_OPEN_TIME_MS);\n });\n }\n\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n close(reason = '') {\n if (!this.isOpen_) {\n // Avoid redundant close calls (and events), e.g. repeated interactions as the snackbar is animating closed\n return;\n }\n\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n this.clearAutoDismissTimer_();\n\n this.isOpen_ = false;\n this.adapter_.notifyClosing(reason);\n this.adapter_.addClass(cssClasses.CLOSING);\n this.adapter_.removeClass(cssClasses.OPEN);\n this.adapter_.removeClass(cssClasses.OPENING);\n\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(() => {\n this.handleAnimationTimerEnd_();\n this.adapter_.notifyClosed(reason);\n }, numbers.SNACKBAR_ANIMATION_CLOSE_TIME_MS);\n }\n\n isOpen(): boolean {\n return this.isOpen_;\n }\n\n getTimeoutMs(): number {\n return this.autoDismissTimeoutMs_;\n }\n\n setTimeoutMs(timeoutMs: number) {\n // Use shorter variable names to make the code more readable\n const minValue = numbers.MIN_AUTO_DISMISS_TIMEOUT_MS;\n const maxValue = numbers.MAX_AUTO_DISMISS_TIMEOUT_MS;\n\n if (timeoutMs <= maxValue && timeoutMs >= minValue) {\n this.autoDismissTimeoutMs_ = timeoutMs;\n } else {\n throw new Error(`timeoutMs must be an integer in the range ${minValue}–${maxValue}, but got '${timeoutMs}'`);\n }\n }\n\n getCloseOnEscape(): boolean {\n return this.closeOnEscape_;\n }\n\n setCloseOnEscape(closeOnEscape: boolean) {\n this.closeOnEscape_ = closeOnEscape;\n }\n\n handleKeyDown(evt: KeyboardEvent) {\n const isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n if (isEscapeKey && this.getCloseOnEscape()) {\n this.close(REASON_DISMISS);\n }\n }\n\n handleActionButtonClick(_evt: MouseEvent) {\n this.close(REASON_ACTION);\n }\n\n handleActionIconClick(_evt: MouseEvent) {\n this.close(REASON_DISMISS);\n }\n\n private clearAutoDismissTimer_() {\n clearTimeout(this.autoDismissTimer_);\n this.autoDismissTimer_ = 0;\n }\n\n private handleAnimationTimerEnd_() {\n this.animationTimer_ = 0;\n this.adapter_.removeClass(cssClasses.OPENING);\n this.adapter_.removeClass(cssClasses.CLOSING);\n }\n\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n private runNextAnimationFrame_(callback: () => void) {\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(() => {\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(callback, 0);\n });\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSnackbarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-snackbar/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCSwitchAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\nexport class MDCSwitchFoundation extends MDCFoundation<MDCSwitchAdapter> {\n /** The string constants used by the switch. */\n static get strings() {\n return strings;\n }\n\n /** The CSS classes used by the switch. */\n static get cssClasses() {\n return cssClasses;\n }\n\n /** The default Adapter for the switch. */\n static get defaultAdapter(): MDCSwitchAdapter {\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n setNativeControlChecked: () => undefined,\n setNativeControlDisabled: () => undefined,\n };\n }\n\n constructor(adapter?: Partial<MDCSwitchAdapter>) {\n super({...MDCSwitchFoundation.defaultAdapter, ...adapter});\n }\n\n /** Sets the checked state of the switch. */\n setChecked(checked: boolean) {\n this.adapter_.setNativeControlChecked(checked);\n this.updateCheckedStyling_(checked);\n }\n\n /** Sets the disabled state of the switch. */\n setDisabled(disabled: boolean) {\n this.adapter_.setNativeControlDisabled(disabled);\n if (disabled) {\n this.adapter_.addClass(cssClasses.DISABLED);\n } else {\n this.adapter_.removeClass(cssClasses.DISABLED);\n }\n }\n\n /** Handles the change event for the switch native control. */\n handleChange(evt: Event) {\n const nativeControl = evt.target as HTMLInputElement;\n this.updateCheckedStyling_(nativeControl.checked);\n }\n\n /** Updates the styling of the switch based on its checked state. */\n private updateCheckedStyling_(checked: boolean) {\n if (checked) {\n this.adapter_.addClass(cssClasses.CHECKED);\n } else {\n this.adapter_.removeClass(cssClasses.CHECKED);\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSwitchFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-switch/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {matches} from '@material/dom/ponyfill';\nimport {MDCTabScrollerAdapter} from './adapter';\nimport {MDCTabScrollerFoundation} from './foundation';\nimport * as util from './util';\n\ntype InteractionEventType = 'wheel' | 'touchstart' | 'pointerdown' | 'mousedown' | 'keydown';\n\nexport type MDCTabScrollerFactory = (el: Element, foundation?: MDCTabScrollerFoundation) => MDCTabScroller;\n\nexport class MDCTabScroller extends MDCComponent<MDCTabScrollerFoundation> {\n static attachTo(root: Element): MDCTabScroller {\n return new MDCTabScroller(root);\n }\n\n private content_!: HTMLElement; // assigned in initialize()\n private area_!: HTMLElement; // assigned in initialize()\n private handleInteraction_!: SpecificEventListener<InteractionEventType>; // assigned in initialSyncWithDOM()\n private handleTransitionEnd_!: SpecificEventListener<'transitionend'>; // assigned in initialSyncWithDOM()\n\n initialize() {\n this.area_ = this.root_.querySelector<HTMLElement>(MDCTabScrollerFoundation.strings.AREA_SELECTOR)!;\n this.content_ = this.root_.querySelector<HTMLElement>(MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)!;\n }\n\n initialSyncWithDOM() {\n this.handleInteraction_ = () => this.foundation_.handleInteraction();\n this.handleTransitionEnd_ = (evt) => this.foundation_.handleTransitionEnd(evt);\n\n this.area_.addEventListener('wheel', this.handleInteraction_);\n this.area_.addEventListener('touchstart', this.handleInteraction_);\n this.area_.addEventListener('pointerdown', this.handleInteraction_);\n this.area_.addEventListener('mousedown', this.handleInteraction_);\n this.area_.addEventListener('keydown', this.handleInteraction_);\n this.content_.addEventListener('transitionend', this.handleTransitionEnd_);\n }\n\n destroy() {\n super.destroy();\n\n this.area_.removeEventListener('wheel', this.handleInteraction_);\n this.area_.removeEventListener('touchstart', this.handleInteraction_);\n this.area_.removeEventListener('pointerdown', this.handleInteraction_);\n this.area_.removeEventListener('mousedown', this.handleInteraction_);\n this.area_.removeEventListener('keydown', this.handleInteraction_);\n this.content_.removeEventListener('transitionend', this.handleTransitionEnd_);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTabScrollerAdapter = {\n eventTargetMatchesSelector: (evtTarget, selector) => matches(evtTarget as Element, selector),\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n addScrollAreaClass: (className) => this.area_.classList.add(className),\n setScrollAreaStyleProperty: (prop, value) => this.area_.style.setProperty(prop, value),\n setScrollContentStyleProperty: (prop, value) => this.content_.style.setProperty(prop, value),\n getScrollContentStyleValue: (propName) => window.getComputedStyle(this.content_).getPropertyValue(propName),\n setScrollAreaScrollLeft: (scrollX) => this.area_.scrollLeft = scrollX,\n getScrollAreaScrollLeft: () => this.area_.scrollLeft,\n getScrollContentOffsetWidth: () => this.content_.offsetWidth,\n getScrollAreaOffsetWidth: () => this.area_.offsetWidth,\n computeScrollAreaClientRect: () => this.area_.getBoundingClientRect(),\n computeScrollContentClientRect: () => this.content_.getBoundingClientRect(),\n computeHorizontalScrollbarHeight: () => util.computeHorizontalScrollbarHeight(document),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTabScrollerFoundation(adapter);\n }\n\n /**\n * Returns the current visual scroll position\n */\n getScrollPosition(): number {\n return this.foundation_.getScrollPosition();\n }\n\n /**\n * Returns the width of the scroll content\n */\n getScrollContentWidth(): number {\n return this.content_.offsetWidth;\n }\n\n /**\n * Increments the scroll value by the given amount\n * @param scrollXIncrement The pixel value by which to increment the scroll value\n */\n incrementScroll(scrollXIncrement: number) {\n this.foundation_.incrementScroll(scrollXIncrement);\n }\n\n /**\n * Scrolls to the given pixel position\n * @param scrollX The pixel value to scroll to\n */\n scrollTo(scrollX: number) {\n this.foundation_.scrollTo(scrollX);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTabScrollerAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCTabScrollerRTLDefault} from './rtl-default-scroller';\nimport {MDCTabScrollerRTLNegative} from './rtl-negative-scroller';\nimport {MDCTabScrollerRTLReverse} from './rtl-reverse-scroller';\nimport {MDCTabScrollerRTL} from './rtl-scroller';\nimport {MDCTabScrollerAnimation, MDCTabScrollerHorizontalEdges} from './types';\n\nexport class MDCTabScrollerFoundation extends MDCFoundation<MDCTabScrollerAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get defaultAdapter(): MDCTabScrollerAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n eventTargetMatchesSelector: () => false,\n addClass: () => undefined,\n removeClass: () => undefined,\n addScrollAreaClass: () => undefined,\n setScrollAreaStyleProperty: () => undefined,\n setScrollContentStyleProperty: () => undefined,\n getScrollContentStyleValue: () => '',\n setScrollAreaScrollLeft: () => undefined,\n getScrollAreaScrollLeft: () => 0,\n getScrollContentOffsetWidth: () => 0,\n getScrollAreaOffsetWidth: () => 0,\n computeScrollAreaClientRect: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n computeScrollContentClientRect: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n computeHorizontalScrollbarHeight: () => 0,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n /**\n * Controls whether we should handle the transitionend and interaction events during the animation.\n */\n private isAnimating_ = false;\n\n /**\n * The MDCTabScrollerRTL instance varies per browser and allows us to encapsulate the peculiar browser behavior\n * of RTL scrolling in it's own class.\n */\n private rtlScrollerInstance_?: MDCTabScrollerRTL;\n\n constructor(adapter?: Partial<MDCTabScrollerAdapter>) {\n super({...MDCTabScrollerFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n // Compute horizontal scrollbar height on scroller with overflow initially hidden, then update overflow to scroll\n // and immediately adjust bottom margin to avoid the scrollbar initially appearing before JS runs.\n const horizontalScrollbarHeight = this.adapter_.computeHorizontalScrollbarHeight();\n this.adapter_.setScrollAreaStyleProperty('margin-bottom', -horizontalScrollbarHeight + 'px');\n this.adapter_.addScrollAreaClass(MDCTabScrollerFoundation.cssClasses.SCROLL_AREA_SCROLL);\n }\n\n /**\n * Computes the current visual scroll position\n */\n getScrollPosition(): number {\n if (this.isRTL_()) {\n return this.computeCurrentScrollPositionRTL_();\n }\n\n const currentTranslateX = this.calculateCurrentTranslateX_();\n const scrollLeft = this.adapter_.getScrollAreaScrollLeft();\n return scrollLeft - currentTranslateX;\n }\n\n /**\n * Handles interaction events that occur during transition\n */\n handleInteraction() {\n // Early exit if we aren't animating\n if (!this.isAnimating_) {\n return;\n }\n\n // Prevent other event listeners from handling this event\n this.stopScrollAnimation_();\n }\n\n /**\n * Handles the transitionend event\n */\n handleTransitionEnd(evt: Event) {\n // Early exit if we aren't animating or the event was triggered by a different element.\n const evtTarget = evt.target as Element;\n if (!this.isAnimating_ ||\n !this.adapter_.eventTargetMatchesSelector(evtTarget, MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)) {\n return;\n }\n\n this.isAnimating_ = false;\n this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n }\n\n /**\n * Increment the scroll value by the scrollXIncrement\n * @param scrollXIncrement The value by which to increment the scroll position\n */\n incrementScroll(scrollXIncrement: number) {\n // Early exit for non-operational increment values\n if (scrollXIncrement === 0) {\n return;\n }\n\n if (this.isRTL_()) {\n return this.incrementScrollRTL_(scrollXIncrement);\n }\n\n this.incrementScroll_(scrollXIncrement);\n }\n\n /**\n * Scrolls to the given scrollX value\n */\n scrollTo(scrollX: number) {\n if (this.isRTL_()) {\n return this.scrollToRTL_(scrollX);\n }\n\n this.scrollTo_(scrollX);\n }\n\n /**\n * @return Browser-specific {@link MDCTabScrollerRTL} instance.\n */\n getRTLScroller(): MDCTabScrollerRTL {\n if (!this.rtlScrollerInstance_) {\n this.rtlScrollerInstance_ = this.rtlScrollerFactory_();\n }\n\n return this.rtlScrollerInstance_;\n }\n\n /**\n * @return translateX value from a CSS matrix transform function string.\n */\n private calculateCurrentTranslateX_(): number {\n const transformValue = this.adapter_.getScrollContentStyleValue('transform');\n // Early exit if no transform is present\n if (transformValue === 'none') {\n return 0;\n }\n\n // The transform value comes back as a matrix transformation in the form\n // of `matrix(a, b, c, d, tx, ty)`. We only care about tx (translateX) so\n // we're going to grab all the parenthesized values, strip out tx, and\n // parse it.\n const match = /\\((.+?)\\)/.exec(transformValue);\n if (!match) {\n return 0;\n }\n\n const matrixParams = match[1];\n\n // tslint:disable-next-line:ban-ts-ignore \"Unused vars\" should be a linter warning, not a compiler error.\n // @ts-ignore These unused variables should retain their semantic names for clarity.\n const [a, b, c, d, tx, ty] = matrixParams.split(',');\n\n return parseFloat(tx); // tslint:disable-line:ban\n }\n\n /**\n * Calculates a safe scroll value that is > 0 and < the max scroll value\n * @param scrollX The distance to scroll\n */\n private clampScrollValue_(scrollX: number): number {\n const edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.left, scrollX), edges.right);\n }\n\n private computeCurrentScrollPositionRTL_(): number {\n const translateX = this.calculateCurrentTranslateX_();\n return this.getRTLScroller().getScrollPositionRTL(translateX);\n }\n\n private calculateScrollEdges_(): MDCTabScrollerHorizontalEdges {\n const contentWidth = this.adapter_.getScrollContentOffsetWidth();\n const rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: 0,\n right: contentWidth - rootWidth,\n };\n }\n\n /**\n * Internal scroll method\n * @param scrollX The new scroll position\n */\n private scrollTo_(scrollX: number) {\n const currentScrollX = this.getScrollPosition();\n const safeScrollX = this.clampScrollValue_(scrollX);\n const scrollDelta = safeScrollX - currentScrollX;\n this.animate_({\n finalScrollPosition: safeScrollX,\n scrollDelta,\n });\n }\n\n /**\n * Internal RTL scroll method\n * @param scrollX The new scroll position\n */\n private scrollToRTL_(scrollX: number) {\n const animation = this.getRTLScroller().scrollToRTL(scrollX);\n this.animate_(animation);\n }\n\n /**\n * Internal increment scroll method\n * @param scrollX The new scroll position increment\n */\n private incrementScroll_(scrollX: number) {\n const currentScrollX = this.getScrollPosition();\n const targetScrollX = scrollX + currentScrollX;\n const safeScrollX = this.clampScrollValue_(targetScrollX);\n const scrollDelta = safeScrollX - currentScrollX;\n this.animate_({\n finalScrollPosition: safeScrollX,\n scrollDelta,\n });\n }\n\n /**\n * Internal increment scroll RTL method\n * @param scrollX The new scroll position RTL increment\n */\n private incrementScrollRTL_(scrollX: number) {\n const animation = this.getRTLScroller().incrementScrollRTL(scrollX);\n this.animate_(animation);\n }\n\n /**\n * Animates the tab scrolling\n * @param animation The animation to apply\n */\n private animate_(animation: MDCTabScrollerAnimation) {\n // Early exit if translateX is 0, which means there's no animation to perform\n if (animation.scrollDelta === 0) {\n return;\n }\n\n this.stopScrollAnimation_();\n // This animation uses the FLIP approach.\n // Read more here: https://aerotwist.com/blog/flip-your-animations/\n this.adapter_.setScrollAreaScrollLeft(animation.finalScrollPosition);\n this.adapter_.setScrollContentStyleProperty('transform', `translateX(${animation.scrollDelta}px)`);\n // Force repaint\n this.adapter_.computeScrollAreaClientRect();\n\n requestAnimationFrame(() => {\n this.adapter_.addClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n this.adapter_.setScrollContentStyleProperty('transform', 'none');\n });\n\n this.isAnimating_ = true;\n }\n\n /**\n * Stops scroll animation\n */\n private stopScrollAnimation_() {\n this.isAnimating_ = false;\n const currentScrollPosition = this.getAnimatingScrollPosition_();\n this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);\n this.adapter_.setScrollContentStyleProperty('transform', 'translateX(0px)');\n this.adapter_.setScrollAreaScrollLeft(currentScrollPosition);\n }\n\n /**\n * Gets the current scroll position during animation\n */\n private getAnimatingScrollPosition_(): number {\n const currentTranslateX = this.calculateCurrentTranslateX_();\n const scrollLeft = this.adapter_.getScrollAreaScrollLeft();\n if (this.isRTL_()) {\n return this.getRTLScroller().getAnimatingScrollPosition(scrollLeft, currentTranslateX);\n }\n\n return scrollLeft - currentTranslateX;\n }\n\n /**\n * Determines the RTL Scroller to use\n */\n private rtlScrollerFactory_(): MDCTabScrollerRTL {\n // Browsers have three different implementations of scrollLeft in RTL mode,\n // dependent on the browser. The behavior is based off the max LTR\n // scrollLeft value and 0.\n //\n // * Default scrolling in RTL *\n // - Left-most value: 0\n // - Right-most value: Max LTR scrollLeft value\n //\n // * Negative scrolling in RTL *\n // - Left-most value: Negated max LTR scrollLeft value\n // - Right-most value: 0\n //\n // * Reverse scrolling in RTL *\n // - Left-most value: Max LTR scrollLeft value\n // - Right-most value: 0\n //\n // We use those principles below to determine which RTL scrollLeft\n // behavior is implemented in the current browser.\n const initialScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft - 1);\n const newScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n\n // If the newScrollLeft value is negative,then we know that the browser has\n // implemented negative RTL scrolling, since all other implementations have\n // only positive values.\n if (newScrollLeft < 0) {\n // Undo the scrollLeft test check\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);\n return new MDCTabScrollerRTLNegative(this.adapter_);\n }\n\n const rootClientRect = this.adapter_.computeScrollAreaClientRect();\n const contentClientRect = this.adapter_.computeScrollContentClientRect();\n const rightEdgeDelta = Math.round(contentClientRect.right - rootClientRect.right);\n // Undo the scrollLeft test check\n this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);\n\n // By calculating the clientRect of the root element and the clientRect of\n // the content element, we can determine how much the scroll value changed\n // when we performed the scrollLeft subtraction above.\n if (rightEdgeDelta === newScrollLeft) {\n return new MDCTabScrollerRTLReverse(this.adapter_);\n }\n\n return new MDCTabScrollerRTLDefault(this.adapter_);\n }\n\n private isRTL_(): boolean {\n return this.adapter_.getScrollContentStyleValue('direction') === 'rtl';\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ANIMATING: 'mdc-tab-scroller--animating',\n SCROLL_AREA_SCROLL: 'mdc-tab-scroller__scroll-area--scroll',\n SCROLL_TEST: 'mdc-tab-scroller__test',\n};\n\nconst strings = {\n AREA_SELECTOR: '.mdc-tab-scroller__scroll-area',\n CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content',\n};\n\nexport {\n cssClasses,\n strings,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {cssClasses} from './constants';\n\n/**\n * Stores result from computeHorizontalScrollbarHeight to avoid redundant processing.\n */\nlet horizontalScrollbarHeight_: number | undefined;\n\n/**\n * Computes the height of browser-rendered horizontal scrollbars using a self-created test element.\n * May return 0 (e.g. on OS X browsers under default configuration).\n */\nexport function computeHorizontalScrollbarHeight(documentObj: Document, shouldCacheResult = true): number {\n if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') {\n return horizontalScrollbarHeight_;\n }\n\n const el = documentObj.createElement('div');\n el.classList.add(cssClasses.SCROLL_TEST);\n documentObj.body.appendChild(el);\n\n const horizontalScrollbarHeight = el.offsetHeight - el.clientHeight;\n documentObj.body.removeChild(el);\n\n if (shouldCacheResult) {\n horizontalScrollbarHeight_ = horizontalScrollbarHeight;\n }\n return horizontalScrollbarHeight;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/util.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCRipple, MDCRippleFactory} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCTabIndicator, MDCTabIndicatorFactory} from '@material/tab-indicator/component';\nimport {MDCTabAdapter} from './adapter';\nimport {MDCTabFoundation} from './foundation';\nimport {MDCTabDimensions, MDCTabInteractionEventDetail} from './types';\n\nexport type MDCTabFactory = (el: Element, foundation?: MDCTabFoundation) => MDCTab;\n\nexport class MDCTab extends MDCComponent<MDCTabFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element): MDCTab {\n return new MDCTab(root);\n }\n\n id!: string; // assigned in initialize();\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private ripple_!: MDCRipple; // assigned in initialize();\n private tabIndicator_!: MDCTabIndicator; // assigned in initialize();\n private content_!: HTMLElement; // assigned in initialize();\n private handleClick_!: SpecificEventListener<'click'>; // assigned in initialize();\n\n initialize(\n rippleFactory: MDCRippleFactory = (el, foundation) => new MDCRipple(el, foundation),\n tabIndicatorFactory: MDCTabIndicatorFactory = (el) => new MDCTabIndicator(el),\n ) {\n this.id = this.root_.id;\n const rippleSurface = this.root_.querySelector<HTMLElement>(MDCTabFoundation.strings.RIPPLE_SELECTOR)!;\n const rippleAdapter = {\n ...MDCRipple.createAdapter(this),\n addClass: (className: string) => rippleSurface.classList.add(className),\n removeClass: (className: string) => rippleSurface.classList.remove(className),\n updateCssVariable: (varName: string, value: string) => rippleSurface.style.setProperty(varName, value),\n };\n const rippleFoundation = new MDCRippleFoundation(rippleAdapter);\n this.ripple_ = rippleFactory(this.root_, rippleFoundation);\n\n const tabIndicatorElement = this.root_.querySelector(MDCTabFoundation.strings.TAB_INDICATOR_SELECTOR)!;\n this.tabIndicator_ = tabIndicatorFactory(tabIndicatorElement);\n this.content_ = this.root_.querySelector<HTMLElement>(MDCTabFoundation.strings.CONTENT_SELECTOR)!;\n }\n\n initialSyncWithDOM() {\n this.handleClick_ = () => this.foundation_.handleClick();\n this.listen('click', this.handleClick_);\n }\n\n destroy() {\n this.unlisten('click', this.handleClick_);\n this.ripple_.destroy();\n super.destroy();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTabAdapter = {\n setAttr: (attr, value) => this.root_.setAttribute(attr, value),\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n activateIndicator: (previousIndicatorClientRect) => this.tabIndicator_.activate(previousIndicatorClientRect),\n deactivateIndicator: () => this.tabIndicator_.deactivate(),\n notifyInteracted: () => this.emit<MDCTabInteractionEventDetail>(\n MDCTabFoundation.strings.INTERACTED_EVENT, {tabId: this.id}, true /* bubble */),\n getOffsetLeft: () => this.root_.offsetLeft,\n getOffsetWidth: () => this.root_.offsetWidth,\n getContentOffsetLeft: () => this.content_.offsetLeft,\n getContentOffsetWidth: () => this.content_.offsetWidth,\n focus: () => this.root_.focus(),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTabFoundation(adapter);\n }\n\n /**\n * Getter for the active state of the tab\n */\n get active(): boolean {\n return this.foundation_.isActive();\n }\n\n set focusOnActivate(focusOnActivate: boolean) {\n this.foundation_.setFocusOnActivate(focusOnActivate);\n }\n\n /**\n * Activates the tab\n */\n activate(computeIndicatorClientRect?: ClientRect) {\n this.foundation_.activate(computeIndicatorClientRect);\n }\n\n /**\n * Deactivates the tab\n */\n deactivate() {\n this.foundation_.deactivate();\n }\n\n /**\n * Returns the indicator's client rect\n */\n computeIndicatorClientRect(): ClientRect {\n return this.tabIndicator_.computeContentClientRect();\n }\n\n computeDimensions(): MDCTabDimensions {\n return this.foundation_.computeDimensions();\n }\n\n /**\n * Focuses the tab\n */\n focus() {\n this.root_.focus();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\n\nimport {MDCTabIndicatorAdapter} from './adapter';\nimport {MDCFadingTabIndicatorFoundation} from './fading-foundation';\nimport {MDCTabIndicatorFoundation} from './foundation';\nimport {MDCSlidingTabIndicatorFoundation} from './sliding-foundation';\n\nexport type MDCTabIndicatorFactory = (el: Element, foundation?: MDCTabIndicatorFoundation) => MDCTabIndicator;\n\nexport class MDCTabIndicator extends MDCComponent<MDCTabIndicatorFoundation> {\n static attachTo(root: Element): MDCTabIndicator {\n return new MDCTabIndicator(root);\n }\n\n private content_!: HTMLElement; // assigned in initialize()\n\n initialize() {\n this.content_ = this.root_.querySelector<HTMLElement>(MDCTabIndicatorFoundation.strings.CONTENT_SELECTOR)!;\n }\n\n computeContentClientRect(): ClientRect {\n return this.foundation_.computeContentClientRect();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTabIndicatorAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n computeContentClientRect: () => this.content_.getBoundingClientRect(),\n setContentStyleProperty: (prop, value) => this.content_.style.setProperty(prop, value),\n };\n // tslint:enable:object-literal-sort-keys\n\n if (this.root_.classList.contains(MDCTabIndicatorFoundation.cssClasses.FADE)) {\n return new MDCFadingTabIndicatorFoundation(adapter);\n }\n\n // Default to the sliding indicator\n return new MDCSlidingTabIndicatorFoundation(adapter);\n }\n\n activate(previousIndicatorClientRect?: ClientRect) {\n this.foundation_.activate(previousIndicatorClientRect);\n }\n\n deactivate() {\n this.foundation_.deactivate();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabIndicatorFoundation} from './foundation';\n\n/* istanbul ignore next: subclass is not a branch statement */\nexport class MDCFadingTabIndicatorFoundation extends MDCTabIndicatorFoundation {\n activate() {\n this.adapter_.addClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n }\n\n deactivate() {\n this.adapter_.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFadingTabIndicatorFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/fading-foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabIndicatorFoundation} from './foundation';\n\n/* istanbul ignore next: subclass is not a branch statement */\nexport class MDCSlidingTabIndicatorFoundation extends MDCTabIndicatorFoundation {\n activate(previousIndicatorClientRect?: ClientRect) {\n // Early exit if no indicator is present to handle cases where an indicator\n // may be activated without a prior indicator state\n if (!previousIndicatorClientRect) {\n this.adapter_.addClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n return;\n }\n\n // This animation uses the FLIP approach. You can read more about it at the link below:\n // https://aerotwist.com/blog/flip-your-animations/\n\n // Calculate the dimensions based on the dimensions of the previous indicator\n const currentClientRect = this.computeContentClientRect();\n const widthDelta = previousIndicatorClientRect.width / currentClientRect.width;\n const xPosition = previousIndicatorClientRect.left - currentClientRect.left;\n this.adapter_.addClass(MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter_.setContentStyleProperty('transform', `translateX(${xPosition}px) scaleX(${widthDelta})`);\n\n // Force repaint before updating classes and transform to ensure the transform properly takes effect\n this.computeContentClientRect();\n\n this.adapter_.removeClass(MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter_.addClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n this.adapter_.setContentStyleProperty('transform', '');\n }\n\n deactivate() {\n this.adapter_.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSlidingTabIndicatorFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/sliding-foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {MDCTabDimensions, MDCTabInteractionEvent} from '@material/tab/types';\nimport {MDCTabBarAdapter} from './adapter';\nimport {numbers, strings} from './constants';\n\nconst ACCEPTABLE_KEYS = new Set<string>();\n// IE11 has no support for new Set with iterable so we need to initialize this by hand\nACCEPTABLE_KEYS.add(strings.ARROW_LEFT_KEY);\nACCEPTABLE_KEYS.add(strings.ARROW_RIGHT_KEY);\nACCEPTABLE_KEYS.add(strings.END_KEY);\nACCEPTABLE_KEYS.add(strings.HOME_KEY);\nACCEPTABLE_KEYS.add(strings.ENTER_KEY);\nACCEPTABLE_KEYS.add(strings.SPACE_KEY);\n\nconst KEYCODE_MAP = new Map<number, string>();\n// IE11 has no support for new Map with iterable so we need to initialize this by hand\nKEYCODE_MAP.set(numbers.ARROW_LEFT_KEYCODE, strings.ARROW_LEFT_KEY);\nKEYCODE_MAP.set(numbers.ARROW_RIGHT_KEYCODE, strings.ARROW_RIGHT_KEY);\nKEYCODE_MAP.set(numbers.END_KEYCODE, strings.END_KEY);\nKEYCODE_MAP.set(numbers.HOME_KEYCODE, strings.HOME_KEY);\nKEYCODE_MAP.set(numbers.ENTER_KEYCODE, strings.ENTER_KEY);\nKEYCODE_MAP.set(numbers.SPACE_KEYCODE, strings.SPACE_KEY);\n\nexport class MDCTabBarFoundation extends MDCFoundation<MDCTabBarAdapter> {\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCTabBarAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n scrollTo: () => undefined,\n incrementScroll: () => undefined,\n getScrollPosition: () => 0,\n getScrollContentWidth: () => 0,\n getOffsetWidth: () => 0,\n isRTL: () => false,\n setActiveTab: () => undefined,\n activateTabAtIndex: () => undefined,\n deactivateTabAtIndex: () => undefined,\n focusTabAtIndex: () => undefined,\n getTabIndicatorClientRectAtIndex: () => ({top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0}),\n getTabDimensionsAtIndex: () => ({rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0}),\n getPreviousActiveTabIndex: () => -1,\n getFocusedTabIndex: () => -1,\n getIndexOfTabById: () => -1,\n getTabListLength: () => 0,\n notifyTabActivated: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private useAutomaticActivation_ = false;\n\n constructor(adapter?: Partial<MDCTabBarAdapter>) {\n super({...MDCTabBarFoundation.defaultAdapter, ...adapter});\n }\n\n /**\n * Switches between automatic and manual activation modes.\n * See https://www.w3.org/TR/wai-aria-practices/#tabpanel for examples.\n */\n setUseAutomaticActivation(useAutomaticActivation: boolean) {\n this.useAutomaticActivation_ = useAutomaticActivation;\n }\n\n activateTab(index: number) {\n const previousActiveIndex = this.adapter_.getPreviousActiveTabIndex();\n if (!this.indexIsInRange_(index) || index === previousActiveIndex) {\n return;\n }\n\n let previousClientRect;\n if (previousActiveIndex !== -1) {\n this.adapter_.deactivateTabAtIndex(previousActiveIndex);\n previousClientRect = this.adapter_.getTabIndicatorClientRectAtIndex(previousActiveIndex);\n }\n\n this.adapter_.activateTabAtIndex(index, previousClientRect);\n this.scrollIntoView(index);\n\n this.adapter_.notifyTabActivated(index);\n }\n\n handleKeyDown(evt: KeyboardEvent) {\n // Get the key from the event\n const key = this.getKeyFromEvent_(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (key === undefined) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this.isActivationKey_(key)) {\n evt.preventDefault();\n }\n\n if (this.useAutomaticActivation_) {\n if (this.isActivationKey_(key)) {\n return;\n }\n\n const index = this.determineTargetFromKey_(this.adapter_.getPreviousActiveTabIndex(), key);\n this.adapter_.setActiveTab(index);\n this.scrollIntoView(index);\n } else {\n const focusedTabIndex = this.adapter_.getFocusedTabIndex();\n if (this.isActivationKey_(key)) {\n this.adapter_.setActiveTab(focusedTabIndex);\n } else {\n const index = this.determineTargetFromKey_(focusedTabIndex, key);\n this.adapter_.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n /**\n * Handles the MDCTab:interacted event\n */\n handleTabInteraction(evt: MDCTabInteractionEvent) {\n this.adapter_.setActiveTab(this.adapter_.getIndexOfTabById(evt.detail.tabId));\n }\n\n /**\n * Scrolls the tab at the given index into view\n * @param index The tab index to make visible\n */\n scrollIntoView(index: number) {\n // Early exit if the index is out of range\n if (!this.indexIsInRange_(index)) {\n return;\n }\n\n // Always scroll to 0 if scrolling to the 0th index\n if (index === 0) {\n return this.adapter_.scrollTo(0);\n }\n\n // Always scroll to the max value if scrolling to the Nth index\n // MDCTabScroller.scrollTo() will never scroll past the max possible value\n if (index === this.adapter_.getTabListLength() - 1) {\n return this.adapter_.scrollTo(this.adapter_.getScrollContentWidth());\n }\n\n if (this.isRTL_()) {\n return this.scrollIntoViewRTL_(index);\n }\n\n this.scrollIntoView_(index);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private determineTargetFromKey_(origin: number, key: string): number {\n const isRTL = this.isRTL_();\n const maxIndex = this.adapter_.getTabListLength() - 1;\n const shouldGoToEnd = key === strings.END_KEY;\n const shouldDecrement = key === strings.ARROW_LEFT_KEY && !isRTL || key === strings.ARROW_RIGHT_KEY && isRTL;\n const shouldIncrement = key === strings.ARROW_RIGHT_KEY && !isRTL || key === strings.ARROW_LEFT_KEY && isRTL;\n let index = origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n return index;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the Tab Bar\n */\n private calculateScrollIncrement_(\n index: number,\n nextIndex: number,\n scrollPosition: number,\n barWidth: number,\n ): number {\n const nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible in RTL\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the Tab Bar\n * @param scrollContentWidth The width of the scroll content\n */\n private calculateScrollIncrementRTL_(\n index: number,\n nextIndex: number,\n scrollPosition: number,\n barWidth: number,\n scrollContentWidth: number,\n ): number {\n const nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = scrollContentWidth - nextTabDimensions.contentLeft - scrollPosition;\n const relativeContentRight = scrollContentWidth - nextTabDimensions.contentRight - scrollPosition - barWidth;\n const leftIncrement = relativeContentRight + numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft - numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex > index) {\n return Math.max(leftIncrement, 0);\n }\n\n return Math.min(rightIncrement, 0);\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private findAdjacentTabIndexClosestToEdge_(\n index: number,\n tabDimensions: MDCTabDimensions,\n scrollPosition: number,\n barWidth: number,\n ): number {\n /**\n * Tabs are laid out in the Tab Scroller like this:\n *\n * Scroll Position\n * +---+\n * | | Bar Width\n * | +-----------------------------------+\n * | | |\n * | V V\n * | +-----------------------------------+\n * V | Tab Scroller |\n * +------------+--------------+-------------------+\n * | Tab | Tab | Tab |\n * +------------+--------------+-------------------+\n * | |\n * +-----------------------------------+\n *\n * To determine the next adjacent index, we look at the Tab root left and\n * Tab root right, both relative to the scroll position. If the Tab root\n * left is less than 0, then we know it's out of view to the left. If the\n * Tab root right minus the bar width is greater than 0, we know the Tab is\n * out of view to the right. From there, we either increment or decrement\n * the index.\n */\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar in RTL\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n * @param scrollContentWidth The width of the scroller content\n */\n private findAdjacentTabIndexClosestToEdgeRTL_(\n index: number,\n tabDimensions: MDCTabDimensions,\n scrollPosition: number,\n barWidth: number,\n scrollContentWidth: number,\n ): number {\n const rootLeft = scrollContentWidth - tabDimensions.rootLeft - barWidth - scrollPosition;\n const rootRight = scrollContentWidth - tabDimensions.rootRight - scrollPosition;\n const rootDelta = rootLeft + rootRight;\n const leftEdgeIsCloser = rootLeft > 0 || rootDelta > 0;\n const rightEdgeIsCloser = rootRight < 0 || rootDelta < 0;\n\n if (leftEdgeIsCloser) {\n return index + 1;\n }\n\n if (rightEdgeIsCloser) {\n return index - 1;\n }\n\n return -1;\n }\n\n /**\n * Returns the key associated with a keydown event\n * @param evt The keydown event\n */\n private getKeyFromEvent_(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.has(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP.get(evt.keyCode)!;\n }\n\n private isActivationKey_(key: string) {\n return key === strings.SPACE_KEY || key === strings.ENTER_KEY;\n }\n\n /**\n * Returns whether a given index is inclusively between the ends\n * @param index The index to test\n */\n private indexIsInRange_(index: number) {\n return index >= 0 && index < this.adapter_.getTabListLength();\n }\n\n /**\n * Returns the view's RTL property\n */\n private isRTL_(): boolean {\n return this.adapter_.isRTL();\n }\n\n /**\n * Scrolls the tab at the given index into view for left-to-right user agents.\n * @param index The index of the tab to scroll into view\n */\n private scrollIntoView_(index: number) {\n const scrollPosition = this.adapter_.getScrollPosition();\n const barWidth = this.adapter_.getOffsetWidth();\n const tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);\n const nextIndex = this.findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this.indexIsInRange_(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this.calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth);\n this.adapter_.incrementScroll(scrollIncrement);\n }\n\n /**\n * Scrolls the tab at the given index into view in RTL\n * @param index The tab index to make visible\n */\n private scrollIntoViewRTL_(index: number) {\n const scrollPosition = this.adapter_.getScrollPosition();\n const barWidth = this.adapter_.getOffsetWidth();\n const tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);\n const scrollWidth = this.adapter_.getScrollContentWidth();\n const nextIndex = this.findAdjacentTabIndexClosestToEdgeRTL_(\n index, tabDimensions, scrollPosition, barWidth, scrollWidth);\n\n if (!this.indexIsInRange_(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this.calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollWidth);\n this.adapter_.incrementScroll(scrollIncrement);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabBarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-bar/foundation.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCTextFieldCharacterCounterAdapter} from './adapter';\nimport {MDCTextFieldCharacterCounterFoundation} from './foundation';\n\nexport type MDCTextFieldCharacterCounterFactory =\n (el: Element, foundation?: MDCTextFieldCharacterCounterFoundation) => MDCTextFieldCharacterCounter;\n\nexport class MDCTextFieldCharacterCounter extends MDCComponent<MDCTextFieldCharacterCounterFoundation> {\n static attachTo(root: Element): MDCTextFieldCharacterCounter {\n return new MDCTextFieldCharacterCounter(root);\n }\n\n get foundation(): MDCTextFieldCharacterCounterFoundation {\n return this.foundation_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCTextFieldCharacterCounterAdapter = {\n setContent: (content) => {\n this.root_.textContent = content;\n },\n };\n return new MDCTextFieldCharacterCounterFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/character-counter/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n ARIA_CONTROLS: 'aria-controls',\n ICON_SELECTOR: '.mdc-text-field__icon',\n INPUT_SELECTOR: '.mdc-text-field__input',\n LABEL_SELECTOR: '.mdc-floating-label',\n LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',\n OUTLINE_SELECTOR: '.mdc-notched-outline',\n};\n\nconst cssClasses = {\n DENSE: 'mdc-text-field--dense',\n DISABLED: 'mdc-text-field--disabled',\n FOCUSED: 'mdc-text-field--focused',\n FULLWIDTH: 'mdc-text-field--fullwidth',\n HELPER_LINE: 'mdc-text-field-helper-line',\n INVALID: 'mdc-text-field--invalid',\n NO_LABEL: 'mdc-text-field--no-label',\n OUTLINED: 'mdc-text-field--outlined',\n ROOT: 'mdc-text-field',\n TEXTAREA: 'mdc-text-field--textarea',\n WITH_LEADING_ICON: 'mdc-text-field--with-leading-icon',\n WITH_TRAILING_ICON: 'mdc-text-field--with-trailing-icon',\n};\n\nconst numbers = {\n DENSE_LABEL_SCALE: 0.923,\n LABEL_SCALE: 0.75,\n};\n\n/**\n * Whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation\n * under the \"Validation-related attributes\" section.\n */\nconst VALIDATION_ATTR_WHITELIST = [\n 'pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength',\n];\n\n/**\n * Label should always float for these types as they show some UI even if value is empty.\n */\nconst ALWAYS_FLOAT_TYPES = [\n 'color', 'date', 'datetime-local', 'month', 'range', 'time', 'week',\n];\n\nexport {cssClasses, strings, numbers, VALIDATION_ATTR_WHITELIST, ALWAYS_FLOAT_TYPES};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/constants.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCTextFieldAdapter} from './adapter';\nimport {MDCTextFieldCharacterCounterFoundation} from './character-counter/foundation';\nimport {ALWAYS_FLOAT_TYPES, cssClasses, numbers, strings, VALIDATION_ATTR_WHITELIST} from './constants';\nimport {MDCTextFieldHelperTextFoundation} from './helper-text/foundation';\nimport {MDCTextFieldIconFoundation} from './icon/foundation';\nimport {MDCTextFieldFoundationMap, MDCTextFieldNativeInputElement} from './types';\n\ntype PointerDownEventType = 'mousedown' | 'touchstart';\ntype InteractionEventType = 'click' | 'keydown';\n\nconst POINTERDOWN_EVENTS: PointerDownEventType[] = ['mousedown', 'touchstart'];\nconst INTERACTION_EVENTS: InteractionEventType[] = ['click', 'keydown'];\n\nexport class MDCTextFieldFoundation extends MDCFoundation<MDCTextFieldAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n private get shouldAlwaysFloat_(): boolean {\n const type = this.getNativeInput_().type;\n return ALWAYS_FLOAT_TYPES.indexOf(type) >= 0;\n }\n\n get shouldFloat(): boolean {\n return this.shouldAlwaysFloat_ || this.isFocused_ || Boolean(this.getValue()) || this.isBadInput_();\n }\n\n get shouldShake(): boolean {\n return !this.isFocused_ && !this.isValid() && Boolean(this.getValue());\n }\n\n /**\n * See {@link MDCTextFieldAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCTextFieldAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: () => undefined,\n removeClass: () => undefined,\n hasClass: () => true,\n registerTextFieldInteractionHandler: () => undefined,\n deregisterTextFieldInteractionHandler: () => undefined,\n registerInputInteractionHandler: () => undefined,\n deregisterInputInteractionHandler: () => undefined,\n registerValidationAttributeChangeHandler: () => new MutationObserver(() => undefined),\n deregisterValidationAttributeChangeHandler: () => undefined,\n getNativeInput: () => null,\n isFocused: () => false,\n activateLineRipple: () => undefined,\n deactivateLineRipple: () => undefined,\n setLineRippleTransformOrigin: () => undefined,\n shakeLabel: () => undefined,\n floatLabel: () => undefined,\n hasLabel: () => false,\n getLabelWidth: () => 0,\n hasOutline: () => false,\n notchOutline: () => undefined,\n closeOutline: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private isFocused_ = false;\n private receivedUserInput_ = false;\n private isValid_ = true;\n private useNativeValidation_ = true;\n\n private readonly inputFocusHandler_: () => void;\n private readonly inputBlurHandler_: SpecificEventListener<'blur'>;\n private readonly inputInputHandler_: SpecificEventListener<'input'>;\n private readonly setPointerXOffset_: SpecificEventListener<PointerDownEventType>;\n private readonly textFieldInteractionHandler_: SpecificEventListener<InteractionEventType>;\n private readonly validationAttributeChangeHandler_: (attributesList: string[]) => void;\n private validationObserver_!: MutationObserver; // assigned in init()\n\n private readonly helperText_?: MDCTextFieldHelperTextFoundation;\n private readonly characterCounter_?: MDCTextFieldCharacterCounterFoundation;\n private readonly leadingIcon_?: MDCTextFieldIconFoundation;\n private readonly trailingIcon_?: MDCTextFieldIconFoundation;\n\n /**\n * @param adapter\n * @param foundationMap Map from subcomponent names to their subfoundations.\n */\n constructor(adapter?: Partial<MDCTextFieldAdapter>, foundationMap: Partial<MDCTextFieldFoundationMap> = {}) {\n super({...MDCTextFieldFoundation.defaultAdapter, ...adapter});\n\n this.helperText_ = foundationMap.helperText;\n this.characterCounter_ = foundationMap.characterCounter;\n this.leadingIcon_ = foundationMap.leadingIcon;\n this.trailingIcon_ = foundationMap.trailingIcon;\n\n this.inputFocusHandler_ = () => this.activateFocus();\n this.inputBlurHandler_ = () => this.deactivateFocus();\n this.inputInputHandler_ = () => this.handleInput();\n this.setPointerXOffset_ = (evt) => this.setTransformOrigin(evt);\n this.textFieldInteractionHandler_ = () => this.handleTextFieldInteraction();\n this.validationAttributeChangeHandler_ = (attributesList) => this.handleValidationAttributeChange(attributesList);\n }\n\n init() {\n if (this.adapter_.isFocused()) {\n this.inputFocusHandler_();\n } else if (this.adapter_.hasLabel() && this.shouldFloat) {\n this.notchOutline(true);\n this.adapter_.floatLabel(true);\n }\n\n this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_);\n this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_);\n this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_);\n POINTERDOWN_EVENTS.forEach((evtType) => {\n this.adapter_.registerInputInteractionHandler(evtType, this.setPointerXOffset_);\n });\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.registerTextFieldInteractionHandler(evtType, this.textFieldInteractionHandler_);\n });\n this.validationObserver_ =\n this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_);\n this.setCharacterCounter_(this.getValue().length);\n }\n\n destroy() {\n this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_);\n this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_);\n this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_);\n POINTERDOWN_EVENTS.forEach((evtType) => {\n this.adapter_.deregisterInputInteractionHandler(evtType, this.setPointerXOffset_);\n });\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.deregisterTextFieldInteractionHandler(evtType, this.textFieldInteractionHandler_);\n });\n this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_);\n }\n\n /**\n * Handles user interactions with the Text Field.\n */\n handleTextFieldInteraction() {\n const nativeInput = this.adapter_.getNativeInput();\n if (nativeInput && nativeInput.disabled) {\n return;\n }\n this.receivedUserInput_ = true;\n }\n\n /**\n * Handles validation attribute changes\n */\n handleValidationAttributeChange(attributesList: string[]): void {\n attributesList.some((attributeName) => {\n if (VALIDATION_ATTR_WHITELIST.indexOf(attributeName) > -1) {\n this.styleValidity_(true);\n return true;\n }\n return false;\n });\n\n if (attributesList.indexOf('maxlength') > -1) {\n this.setCharacterCounter_(this.getValue().length);\n }\n }\n\n /**\n * Opens/closes the notched outline.\n */\n notchOutline(openNotch: boolean) {\n if (!this.adapter_.hasOutline()) {\n return;\n }\n\n if (openNotch) {\n const isDense = this.adapter_.hasClass(cssClasses.DENSE);\n const labelScale = isDense ? numbers.DENSE_LABEL_SCALE : numbers.LABEL_SCALE;\n const labelWidth = this.adapter_.getLabelWidth() * labelScale;\n this.adapter_.notchOutline(labelWidth);\n } else {\n this.adapter_.closeOutline();\n }\n }\n\n /**\n * Activates the text field focus state.\n */\n activateFocus() {\n this.isFocused_ = true;\n this.styleFocused_(this.isFocused_);\n this.adapter_.activateLineRipple();\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n if (this.helperText_) {\n this.helperText_.showToScreenReader();\n }\n }\n\n /**\n * Sets the line ripple's transform origin, so that the line ripple activate\n * animation will animate out from the user's click location.\n */\n setTransformOrigin(evt: TouchEvent | MouseEvent): void {\n const touches = (evt as TouchEvent).touches;\n const targetEvent = touches ? touches[0] : evt;\n const targetClientRect = (targetEvent.target as Element).getBoundingClientRect();\n const normalizedX = (targetEvent as MouseEvent).clientX - targetClientRect.left;\n this.adapter_.setLineRippleTransformOrigin(normalizedX);\n }\n\n /**\n * Handles input change of text input and text area.\n */\n handleInput() {\n this.autoCompleteFocus();\n this.setCharacterCounter_(this.getValue().length);\n }\n\n /**\n * Activates the Text Field's focus state in cases when the input value\n * changes without user input (e.g. programmatically).\n */\n autoCompleteFocus() {\n if (!this.receivedUserInput_) {\n this.activateFocus();\n }\n }\n\n /**\n * Deactivates the Text Field's focus state.\n */\n deactivateFocus() {\n this.isFocused_ = false;\n this.adapter_.deactivateLineRipple();\n const isValid = this.isValid();\n this.styleValidity_(isValid);\n this.styleFocused_(this.isFocused_);\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n if (!this.shouldFloat) {\n this.receivedUserInput_ = false;\n }\n }\n\n getValue(): string {\n return this.getNativeInput_().value;\n }\n\n /**\n * @param value The value to set on the input Element.\n */\n setValue(value: string): void {\n // Prevent Safari from moving the caret to the end of the input when the value has not changed.\n if (this.getValue() !== value) {\n this.getNativeInput_().value = value;\n }\n this.setCharacterCounter_(value.length);\n const isValid = this.isValid();\n this.styleValidity_(isValid);\n if (this.adapter_.hasLabel()) {\n this.notchOutline(this.shouldFloat);\n this.adapter_.floatLabel(this.shouldFloat);\n this.adapter_.shakeLabel(this.shouldShake);\n }\n }\n\n /**\n * @return The custom validity state, if set; otherwise, the result of a native validity check.\n */\n isValid(): boolean {\n return this.useNativeValidation_\n ? this.isNativeInputValid_() : this.isValid_;\n }\n\n /**\n * @param isValid Sets the custom validity state of the Text Field.\n */\n setValid(isValid: boolean): void {\n this.isValid_ = isValid;\n this.styleValidity_(isValid);\n\n const shouldShake = !isValid && !this.isFocused_;\n if (this.adapter_.hasLabel()) {\n this.adapter_.shakeLabel(shouldShake);\n }\n }\n\n /**\n * Enables or disables the use of native validation. Use this for custom validation.\n * @param useNativeValidation Set this to false to ignore native input validation.\n */\n setUseNativeValidation(useNativeValidation: boolean): void {\n this.useNativeValidation_ = useNativeValidation;\n }\n\n isDisabled(): boolean {\n return this.getNativeInput_().disabled;\n }\n\n /**\n * @param disabled Sets the text-field disabled or enabled.\n */\n setDisabled(disabled: boolean): void {\n this.getNativeInput_().disabled = disabled;\n this.styleDisabled_(disabled);\n }\n\n /**\n * @param content Sets the content of the helper text.\n */\n setHelperTextContent(content: string): void {\n if (this.helperText_) {\n this.helperText_.setContent(content);\n }\n }\n\n /**\n * Sets the aria label of the leading icon.\n */\n setLeadingIconAriaLabel(label: string): void {\n if (this.leadingIcon_) {\n this.leadingIcon_.setAriaLabel(label);\n }\n }\n\n /**\n * Sets the text content of the leading icon.\n */\n setLeadingIconContent(content: string): void {\n if (this.leadingIcon_) {\n this.leadingIcon_.setContent(content);\n }\n }\n\n /**\n * Sets the aria label of the trailing icon.\n */\n setTrailingIconAriaLabel(label: string): void {\n if (this.trailingIcon_) {\n this.trailingIcon_.setAriaLabel(label);\n }\n }\n\n /**\n * Sets the text content of the trailing icon.\n */\n setTrailingIconContent(content: string): void {\n if (this.trailingIcon_) {\n this.trailingIcon_.setContent(content);\n }\n }\n\n /**\n * Sets character counter values that shows characters used and the total character limit.\n */\n private setCharacterCounter_(currentLength: number): void {\n if (!this.characterCounter_) {\n return;\n }\n\n const maxLength = this.getNativeInput_().maxLength;\n if (maxLength === -1) {\n throw new Error('MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.');\n }\n\n this.characterCounter_.setCounterValue(currentLength, maxLength);\n }\n\n /**\n * @return True if the Text Field input fails in converting the user-supplied value.\n */\n private isBadInput_(): boolean {\n // The badInput property is not supported in IE 11 💩.\n return this.getNativeInput_().validity.badInput || false;\n }\n\n /**\n * @return The result of native validity checking (ValidityState.valid).\n */\n private isNativeInputValid_(): boolean {\n return this.getNativeInput_().validity.valid;\n }\n\n /**\n * Styles the component based on the validity state.\n */\n private styleValidity_(isValid: boolean): void {\n const {INVALID} = MDCTextFieldFoundation.cssClasses;\n if (isValid) {\n this.adapter_.removeClass(INVALID);\n } else {\n this.adapter_.addClass(INVALID);\n }\n if (this.helperText_) {\n this.helperText_.setValidity(isValid);\n }\n }\n\n /**\n * Styles the component based on the focused state.\n */\n private styleFocused_(isFocused: boolean): void {\n const {FOCUSED} = MDCTextFieldFoundation.cssClasses;\n if (isFocused) {\n this.adapter_.addClass(FOCUSED);\n } else {\n this.adapter_.removeClass(FOCUSED);\n }\n }\n\n /**\n * Styles the component based on the disabled state.\n */\n private styleDisabled_(isDisabled: boolean): void {\n const {DISABLED, INVALID} = MDCTextFieldFoundation.cssClasses;\n if (isDisabled) {\n this.adapter_.addClass(DISABLED);\n this.adapter_.removeClass(INVALID);\n } else {\n this.adapter_.removeClass(DISABLED);\n }\n\n if (this.leadingIcon_) {\n this.leadingIcon_.setDisabled(isDisabled);\n }\n\n if (this.trailingIcon_) {\n this.trailingIcon_.setDisabled(isDisabled);\n }\n }\n\n /**\n * @return The native text input element from the host environment, or an object with the same shape for unit tests.\n */\n private getNativeInput_(): MDCTextFieldNativeInputElement {\n // this.adapter_ may be undefined in foundation unit tests. This happens when testdouble is creating a mock object\n // and invokes the shouldShake/shouldFloat getters (which in turn call getValue(), which calls this method) before\n // init() has been called from the MDCTextField constructor. To work around that issue, we return a dummy object.\n const nativeInput = this.adapter_ ? this.adapter_.getNativeInput() : null;\n return nativeInput || {\n disabled: false,\n maxLength: -1,\n type: 'input',\n validity: {\n badInput: false,\n valid: true,\n },\n value: '',\n };\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTextFieldFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCTextFieldHelperTextAdapter} from './adapter';\nimport {MDCTextFieldHelperTextFoundation} from './foundation';\n\nexport type MDCTextFieldHelperTextFactory =\n (el: Element, foundation?: MDCTextFieldHelperTextFoundation) => MDCTextFieldHelperText;\n\nexport class MDCTextFieldHelperText extends MDCComponent<MDCTextFieldHelperTextFoundation> {\n static attachTo(root: Element): MDCTextFieldHelperText {\n return new MDCTextFieldHelperText(root);\n }\n\n get foundation(): MDCTextFieldHelperTextFoundation {\n return this.foundation_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTextFieldHelperTextAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n setAttr: (attr, value) => this.root_.setAttribute(attr, value),\n removeAttr: (attr) => this.root_.removeAttribute(attr),\n setContent: (content) => {\n this.root_.textContent = content;\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTextFieldHelperTextFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/helper-text/component.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCTextFieldIconAdapter} from './adapter';\nimport {MDCTextFieldIconFoundation} from './foundation';\n\nexport type MDCTextFieldIconFactory = (el: Element, foundation?: MDCTextFieldIconFoundation) => MDCTextFieldIcon;\n\nexport class MDCTextFieldIcon extends MDCComponent<MDCTextFieldIconFoundation> {\n static attachTo(root: Element): MDCTextFieldIcon {\n return new MDCTextFieldIcon(root);\n }\n\n get foundation(): MDCTextFieldIconFoundation {\n return this.foundation_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTextFieldIconAdapter = {\n getAttr: (attr) => this.root_.getAttribute(attr),\n setAttr: (attr, value) => this.root_.setAttribute(attr, value),\n removeAttr: (attr) => this.root_.removeAttribute(attr),\n setContent: (content) => {\n this.root_.textContent = content;\n },\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n notifyIconAction: () => this.emit(\n MDCTextFieldIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTextFieldIconFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/icon/component.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCTextFieldIconAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\n\ntype InteractionEventType = 'click' | 'keydown';\n\nconst INTERACTION_EVENTS: InteractionEventType[] = ['click', 'keydown'];\n\nexport class MDCTextFieldIconFoundation extends MDCFoundation<MDCTextFieldIconAdapter> {\n static get strings() {\n return strings;\n }\n\n static get cssClasses() {\n return cssClasses;\n }\n\n /**\n * See {@link MDCTextFieldIconAdapter} for typing information on parameters and return types.\n */\n static get defaultAdapter(): MDCTextFieldIconAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getAttr: () => null,\n setAttr: () => undefined,\n removeAttr: () => undefined,\n setContent: () => undefined,\n registerInteractionHandler: () => undefined,\n deregisterInteractionHandler: () => undefined,\n notifyIconAction: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private savedTabIndex_: string | null = null;\n private readonly interactionHandler_: SpecificEventListener<InteractionEventType>;\n\n constructor(adapter?: Partial<MDCTextFieldIconAdapter>) {\n super({...MDCTextFieldIconFoundation.defaultAdapter, ...adapter});\n\n this.interactionHandler_ = (evt) => this.handleInteraction(evt);\n }\n\n init() {\n this.savedTabIndex_ = this.adapter_.getAttr('tabindex');\n\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.registerInteractionHandler(evtType, this.interactionHandler_);\n });\n }\n\n destroy() {\n INTERACTION_EVENTS.forEach((evtType) => {\n this.adapter_.deregisterInteractionHandler(evtType, this.interactionHandler_);\n });\n }\n\n setDisabled(disabled: boolean) {\n if (!this.savedTabIndex_) {\n return;\n }\n\n if (disabled) {\n this.adapter_.setAttr('tabindex', '-1');\n this.adapter_.removeAttr('role');\n } else {\n this.adapter_.setAttr('tabindex', this.savedTabIndex_);\n this.adapter_.setAttr('role', strings.ICON_ROLE);\n }\n }\n\n setAriaLabel(label: string) {\n this.adapter_.setAttr('aria-label', label);\n }\n\n setContent(content: string) {\n this.adapter_.setContent(content);\n }\n\n handleInteraction(evt: MouseEvent | KeyboardEvent) {\n const isEnterKey = (evt as KeyboardEvent).key === 'Enter' || (evt as KeyboardEvent).keyCode === 13;\n if (evt.type === 'click' || isEnterKey) {\n this.adapter_.notifyIconAction();\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTextFieldIconFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/icon/foundation.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCFoundation} from '@material/base/foundation';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCToolbarAdapter} from './adapter';\nimport {cssClasses, numbers, strings} from './constants';\n\ninterface Calculations {\n toolbarRowHeight: number;\n\n /*\n * Calculated height ratios. We use ratio to calculate corresponding heights in resize event.\n */\n\n /** The ratio of toolbar height to row height. */\n toolbarRatio: number;\n\n /** The ratio of flexible space height to row height. */\n flexibleExpansionRatio: number;\n\n /** The ratio of max toolbar move up distance to row height. */\n maxTranslateYRatio: number;\n\n /** The ratio of max scrollTop that we should listen to to row height. */\n scrollThresholdRatio: number;\n\n /*\n * Derived heights based on the above ratios.\n */\n\n toolbarHeight: number;\n\n /** Flexible row minus toolbar height (derived). */\n flexibleExpansionHeight: number;\n\n /** When toolbar only fix last row (derived). */\n maxTranslateYDistance: number;\n\n scrollThreshold: number;\n}\n\nexport class MDCToolbarFoundation extends MDCFoundation<MDCToolbarAdapter> {\n static get cssClasses() {\n return cssClasses;\n }\n\n static get strings() {\n return strings;\n }\n\n static get numbers() {\n return numbers;\n }\n\n static get defaultAdapter(): MDCToolbarAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasClass: () => false,\n addClass: () => undefined,\n removeClass: () => undefined,\n registerScrollHandler: () => undefined,\n deregisterScrollHandler: () => undefined,\n registerResizeHandler: () => undefined,\n deregisterResizeHandler: () => undefined,\n getViewportWidth: () => 0,\n getViewportScrollY: () => 0,\n getOffsetHeight: () => 0,\n getFirstRowElementOffsetHeight: () => 0,\n notifyChange: () => undefined,\n setStyle: () => undefined,\n setStyleForTitleElement: () => undefined,\n setStyleForFlexibleRowElement: () => undefined,\n setStyleForFixedAdjustElement: () => undefined,\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private checkRowHeightFrame_ = 0;\n private scrollFrame_ = 0;\n private executedLastChange_ = false;\n private isFixed_ = false;\n private isFixedLastRow_ = false;\n private hasFlexibleFirstRow_ = false;\n private useFlexDefaultBehavior_ = false;\n private calculations_: Calculations = {\n flexibleExpansionHeight: 0,\n flexibleExpansionRatio: 0,\n maxTranslateYDistance: 0,\n maxTranslateYRatio: 0,\n scrollThreshold: 0,\n scrollThresholdRatio: 0,\n toolbarHeight: 0,\n toolbarRatio: 0,\n toolbarRowHeight: 0,\n };\n\n private resizeHandler_!: SpecificEventListener<'resize'>; // assigned in init()\n private scrollHandler_!: SpecificEventListener<'scroll'>; // assigned in init()\n\n constructor(adapter?: Partial<MDCToolbarAdapter>) {\n super({...MDCToolbarFoundation.defaultAdapter, ...adapter});\n }\n\n init() {\n this.isFixed_ = this.adapter_.hasClass(cssClasses.FIXED);\n this.isFixedLastRow_ = this.adapter_.hasClass(cssClasses.FIXED_LASTROW) && this.isFixed_;\n this.hasFlexibleFirstRow_ = this.adapter_.hasClass(cssClasses.TOOLBAR_ROW_FLEXIBLE);\n\n if (this.hasFlexibleFirstRow_) {\n this.useFlexDefaultBehavior_ = this.adapter_.hasClass(cssClasses.FLEXIBLE_DEFAULT_BEHAVIOR);\n }\n\n this.resizeHandler_ = () => this.checkRowHeight_();\n this.scrollHandler_ = () => this.updateToolbarStyles_();\n\n this.adapter_.registerResizeHandler(this.resizeHandler_);\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n\n this.initKeyRatio_();\n this.setKeyHeights_();\n }\n\n destroy() {\n this.adapter_.deregisterResizeHandler(this.resizeHandler_);\n this.adapter_.deregisterScrollHandler(this.scrollHandler_);\n }\n\n updateAdjustElementStyles() {\n if (this.isFixed_) {\n this.adapter_.setStyleForFixedAdjustElement('margin-top', `${this.calculations_.toolbarHeight}px`);\n }\n }\n\n private getFlexibleExpansionRatio_(scrollTop: number) {\n // To prevent division by zero when there is no flexibleExpansionHeight\n const delta = 0.0001;\n return Math.max(0, 1 - scrollTop / (this.calculations_.flexibleExpansionHeight + delta));\n }\n\n private checkRowHeight_() {\n cancelAnimationFrame(this.checkRowHeightFrame_);\n this.checkRowHeightFrame_ = requestAnimationFrame(() => this.setKeyHeights_());\n }\n\n private setKeyHeights_() {\n const newToolbarRowHeight = this.getRowHeight_();\n if (newToolbarRowHeight !== this.calculations_.toolbarRowHeight) {\n this.calculations_.toolbarRowHeight = newToolbarRowHeight;\n this.calculations_.toolbarHeight = this.calculations_.toolbarRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.flexibleExpansionHeight =\n this.calculations_.flexibleExpansionRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.maxTranslateYDistance =\n this.calculations_.maxTranslateYRatio * this.calculations_.toolbarRowHeight;\n this.calculations_.scrollThreshold =\n this.calculations_.scrollThresholdRatio * this.calculations_.toolbarRowHeight;\n this.updateAdjustElementStyles();\n this.updateToolbarStyles_();\n }\n }\n\n private updateToolbarStyles_() {\n cancelAnimationFrame(this.scrollFrame_);\n this.scrollFrame_ = requestAnimationFrame(() => {\n const scrollTop = this.adapter_.getViewportScrollY();\n const hasScrolledOutOfThreshold = this.scrolledOutOfThreshold_(scrollTop);\n\n if (hasScrolledOutOfThreshold && this.executedLastChange_) {\n return;\n }\n\n const flexibleExpansionRatio = this.getFlexibleExpansionRatio_(scrollTop);\n\n this.updateToolbarFlexibleState_(flexibleExpansionRatio);\n if (this.isFixedLastRow_) {\n this.updateToolbarFixedState_(scrollTop);\n }\n if (this.hasFlexibleFirstRow_) {\n this.updateFlexibleRowElementStyles_(flexibleExpansionRatio);\n }\n this.executedLastChange_ = hasScrolledOutOfThreshold;\n this.adapter_.notifyChange({flexibleExpansionRatio});\n });\n }\n\n private scrolledOutOfThreshold_(scrollTop: number) {\n return scrollTop > this.calculations_.scrollThreshold;\n }\n\n private initKeyRatio_() {\n const toolbarRowHeight = this.getRowHeight_();\n const firstRowMaxRatio = this.adapter_.getFirstRowElementOffsetHeight() / toolbarRowHeight;\n this.calculations_.toolbarRatio = this.adapter_.getOffsetHeight() / toolbarRowHeight;\n this.calculations_.flexibleExpansionRatio = firstRowMaxRatio - 1;\n this.calculations_.maxTranslateYRatio =\n this.isFixedLastRow_ ? this.calculations_.toolbarRatio - firstRowMaxRatio : 0;\n this.calculations_.scrollThresholdRatio =\n (this.isFixedLastRow_ ? this.calculations_.toolbarRatio : firstRowMaxRatio) - 1;\n }\n\n private getRowHeight_() {\n const breakpoint = numbers.TOOLBAR_MOBILE_BREAKPOINT;\n return this.adapter_.getViewportWidth() < breakpoint ?\n numbers.TOOLBAR_ROW_MOBILE_HEIGHT : numbers.TOOLBAR_ROW_HEIGHT;\n }\n\n private updateToolbarFlexibleState_(flexibleExpansionRatio: number) {\n this.adapter_.removeClass(cssClasses.FLEXIBLE_MAX);\n this.adapter_.removeClass(cssClasses.FLEXIBLE_MIN);\n if (flexibleExpansionRatio === 1) {\n this.adapter_.addClass(cssClasses.FLEXIBLE_MAX);\n } else if (flexibleExpansionRatio === 0) {\n this.adapter_.addClass(cssClasses.FLEXIBLE_MIN);\n }\n }\n\n private updateToolbarFixedState_(scrollTop: number) {\n const translateDistance = Math.max(0, Math.min(\n scrollTop - this.calculations_.flexibleExpansionHeight,\n this.calculations_.maxTranslateYDistance));\n this.adapter_.setStyle('transform', `translateY(${-translateDistance}px)`);\n\n if (translateDistance === this.calculations_.maxTranslateYDistance) {\n this.adapter_.addClass(cssClasses.FIXED_AT_LAST_ROW);\n } else {\n this.adapter_.removeClass(cssClasses.FIXED_AT_LAST_ROW);\n }\n }\n\n private updateFlexibleRowElementStyles_(flexibleExpansionRatio: number) {\n if (this.isFixed_) {\n const height = this.calculations_.flexibleExpansionHeight * flexibleExpansionRatio;\n this.adapter_.setStyleForFlexibleRowElement('height',\n `${height + this.calculations_.toolbarRowHeight}px`);\n }\n if (this.useFlexDefaultBehavior_) {\n this.updateElementStylesDefaultBehavior_(flexibleExpansionRatio);\n }\n }\n\n private updateElementStylesDefaultBehavior_(flexibleExpansionRatio: number) {\n const maxTitleSize = numbers.MAX_TITLE_SIZE;\n const minTitleSize = numbers.MIN_TITLE_SIZE;\n const currentTitleSize = (maxTitleSize - minTitleSize) * flexibleExpansionRatio + minTitleSize;\n\n this.adapter_.setStyleForTitleElement('font-size', `${currentTitleSize}rem`);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCToolbarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-toolbar/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTopAppBarAdapter} from '../adapter';\nimport {cssClasses} from '../constants';\nimport {MDCTopAppBarFoundation} from '../standard/foundation';\n\nexport class MDCFixedTopAppBarFoundation extends MDCTopAppBarFoundation {\n /**\n * State variable for the previous scroll iteration top app bar state\n */\n private wasScrolled_ = false;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n constructor(adapter?: Partial<MDCTopAppBarAdapter>) {\n super(adapter);\n\n this.scrollHandler_ = () => this.fixedScrollHandler_();\n }\n\n /**\n * Scroll handler for applying/removing the modifier class on the fixed top app bar.\n */\n private fixedScrollHandler_() {\n const currentScroll = this.adapter_.getViewportScrollY();\n\n if (currentScroll <= 0) {\n if (this.wasScrolled_) {\n this.adapter_.removeClass(cssClasses.FIXED_SCROLLED_CLASS);\n this.wasScrolled_ = false;\n }\n } else {\n if (!this.wasScrolled_) {\n this.adapter_.addClass(cssClasses.FIXED_SCROLLED_CLASS);\n this.wasScrolled_ = true;\n }\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFixedTopAppBarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/fixed/foundation.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTopAppBarAdapter} from '../adapter';\nimport {cssClasses} from '../constants';\nimport {MDCTopAppBarBaseFoundation} from '../foundation';\n\nexport class MDCShortTopAppBarFoundation extends MDCTopAppBarBaseFoundation {\n // Public visibility for backward compatibility.\n get isCollapsed(): boolean {\n return this.isCollapsed_;\n }\n\n private isCollapsed_ = false;\n\n /* istanbul ignore next: optional argument is not a branch statement */\n constructor(adapter?: Partial<MDCTopAppBarAdapter>) {\n super(adapter);\n }\n\n init() {\n super.init();\n\n if (this.adapter_.getTotalActionItems() > 0) {\n this.adapter_.addClass(cssClasses.SHORT_HAS_ACTION_ITEM_CLASS);\n }\n\n if (!this.adapter_.hasClass(cssClasses.SHORT_COLLAPSED_CLASS)) {\n this.scrollHandler_ = () => this.shortAppBarScrollHandler_();\n this.adapter_.registerScrollHandler(this.scrollHandler_);\n this.shortAppBarScrollHandler_();\n }\n }\n\n destroy() {\n super.destroy();\n }\n\n /**\n * Scroll handler for applying/removing the collapsed modifier class on the short top app bar.\n */\n private shortAppBarScrollHandler_() {\n const currentScroll = this.adapter_.getViewportScrollY();\n\n if (currentScroll <= 0) {\n if (this.isCollapsed_) {\n this.adapter_.removeClass(cssClasses.SHORT_COLLAPSED_CLASS);\n this.isCollapsed_ = false;\n }\n } else {\n if (!this.isCollapsed_) {\n this.adapter_.addClass(cssClasses.SHORT_COLLAPSED_CLASS);\n this.isCollapsed_ = true;\n }\n }\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCShortTopAppBarFoundation;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/short/foundation.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport autoInit from '@material/auto-init/index';\nimport * as base from '@material/base/index';\nimport * as checkbox from '@material/checkbox/index';\nimport * as chips from '@material/chips/index';\nimport * as dialog from '@material/dialog/index';\nimport * as dom from '@material/dom/index';\nimport * as drawer from '@material/drawer/index';\nimport * as floatingLabel from '@material/floating-label/index';\nimport * as formField from '@material/form-field/index';\nimport * as gridList from '@material/grid-list/index';\nimport * as iconButton from '@material/icon-button/index';\nimport * as lineRipple from '@material/line-ripple/index';\nimport * as linearProgress from '@material/linear-progress/index';\nimport * as list from '@material/list/index';\nimport * as menuSurface from '@material/menu-surface/index';\nimport * as menu from '@material/menu/index';\nimport * as notchedOutline from '@material/notched-outline/index';\nimport * as radio from '@material/radio/index';\nimport * as ripple from '@material/ripple/index';\nimport * as select from '@material/select/index';\nimport * as slider from '@material/slider/index';\nimport * as snackbar from '@material/snackbar/index';\nimport * as switchControl from '@material/switch/index';\nimport * as tabBar from '@material/tab-bar/index';\nimport * as tabIndicator from '@material/tab-indicator/index';\nimport * as tabScroller from '@material/tab-scroller/index';\nimport * as tab from '@material/tab/index';\nimport * as textField from '@material/textfield/index';\nimport * as toolbar from '@material/toolbar/index';\nimport * as topAppBar from '@material/top-app-bar/index';\n\n// Register all components\nautoInit.register('MDCCheckbox', checkbox.MDCCheckbox);\nautoInit.register('MDCChip', chips.MDCChip);\nautoInit.register('MDCChipSet', chips.MDCChipSet);\nautoInit.register('MDCDialog', dialog.MDCDialog);\nautoInit.register('MDCDrawer', drawer.MDCDrawer);\nautoInit.register('MDCFloatingLabel', floatingLabel.MDCFloatingLabel);\nautoInit.register('MDCFormField', formField.MDCFormField);\nautoInit.register('MDCGridList', gridList.MDCGridList);\nautoInit.register('MDCIconButtonToggle', iconButton.MDCIconButtonToggle);\nautoInit.register('MDCLineRipple', lineRipple.MDCLineRipple);\nautoInit.register('MDCLinearProgress', linearProgress.MDCLinearProgress);\nautoInit.register('MDCList', list.MDCList);\nautoInit.register('MDCMenu', menu.MDCMenu);\nautoInit.register('MDCMenuSurface', menuSurface.MDCMenuSurface);\nautoInit.register('MDCNotchedOutline', notchedOutline.MDCNotchedOutline);\nautoInit.register('MDCRadio', radio.MDCRadio);\nautoInit.register('MDCRipple', ripple.MDCRipple);\nautoInit.register('MDCSelect', select.MDCSelect);\nautoInit.register('MDCSlider', slider.MDCSlider);\nautoInit.register('MDCSnackbar', snackbar.MDCSnackbar);\nautoInit.register('MDCSwitch', switchControl.MDCSwitch);\nautoInit.register('MDCTabBar', tabBar.MDCTabBar);\nautoInit.register('MDCTextField', textField.MDCTextField);\nautoInit.register('MDCToolbar', toolbar.MDCToolbar);\nautoInit.register('MDCTopAppBar', topAppBar.MDCTopAppBar);\n\n// Export all components.\nexport {\n autoInit,\n base,\n checkbox,\n chips,\n dialog,\n dom,\n drawer,\n floatingLabel,\n formField,\n gridList,\n iconButton,\n lineRipple,\n linearProgress,\n list,\n menu,\n menuSurface,\n notchedOutline,\n radio,\n ripple,\n select,\n slider,\n snackbar,\n switchControl,\n tab,\n tabBar,\n tabIndicator,\n tabScroller,\n textField,\n toolbar,\n topAppBar,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/material-components-web/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n// tslint:disable:only-arrow-functions\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCFoundation} from '@material/base/foundation';\n\nexport interface MDCAttachable {\n new<F extends MDCFoundation>(root: Element, foundation?: F, ...args: Array<unknown>): MDCComponent<F>;\n\n // Static method.\n attachTo<F extends MDCFoundation>(root: Element): MDCComponent<F>;\n}\n\ninterface InternalComponentRegistry {\n [key: string]: MDCAttachable;\n}\n\nconst registry: InternalComponentRegistry = {};\n\nconst CONSOLE_WARN = console.warn.bind(console); // tslint:disable-line:no-console\n\nfunction emit<T extends object>(evtType: string, evtData: T, shouldBubble = false) {\n let evt;\n if (typeof CustomEvent === 'function') {\n evt = new CustomEvent<T>(evtType, {\n bubbles: shouldBubble,\n detail: evtData,\n });\n } else {\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(evtType, shouldBubble, false, evtData);\n }\n\n document.dispatchEvent(evt);\n}\n\n/* istanbul ignore next: optional argument is not a branch statement */\n/**\n * Auto-initializes all MDC components on a page.\n */\nexport function mdcAutoInit(root = document, warn = CONSOLE_WARN) {\n const components = [];\n const nodes: Element[] = [].slice.call(root.querySelectorAll('[data-mdc-auto-init]'));\n\n for (const node of nodes) {\n const ctorName = node.getAttribute('data-mdc-auto-init');\n if (!ctorName) {\n throw new Error('(mdc-auto-init) Constructor name must be given.');\n }\n\n const Constructor = registry[ctorName]; // tslint:disable-line:variable-name\n if (typeof Constructor !== 'function') {\n throw new Error(\n `(mdc-auto-init) Could not find constructor in registry for ${ctorName}`);\n }\n\n if (Object.getOwnPropertyDescriptor(node, ctorName)) {\n warn(`(mdc-auto-init) Component already initialized for ${node}. Skipping...`);\n continue;\n }\n\n // TODO: Should we make an eslint rule for an attachTo() static method?\n // See https://github.com/Microsoft/TypeScript/issues/14600 for discussion of static interface support in TS\n const component = Constructor.attachTo(node);\n Object.defineProperty(node, ctorName, {\n configurable: true,\n enumerable: false,\n value: component,\n writable: false,\n });\n components.push(component);\n }\n\n emit('MDCAutoInit:End', {});\n return components;\n}\n\n// Constructor is PascalCased because it is a direct reference to a class, rather than an instance of a class.\n// tslint:disable-next-line:variable-name\nmdcAutoInit.register = function(componentName: string, Constructor: MDCAttachable, warn = CONSOLE_WARN) {\n if (typeof Constructor !== 'function') {\n throw new Error(`(mdc-auto-init) Invalid Constructor value: ${Constructor}. Expected function.`);\n }\n const registryValue = registry[componentName];\n if (registryValue) {\n warn(`(mdc-auto-init) Overriding registration for ${componentName} with ${Constructor}. Was: ${registryValue}`);\n }\n registry[componentName] = Constructor;\n};\n\nmdcAutoInit.deregister = function(componentName: string) {\n delete registry[componentName];\n};\n\nmdcAutoInit.deregisterAll = function() {\n const keys = Object.keys(registry) as string[];\n keys.forEach(this.deregister, this);\n};\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default mdcAutoInit;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-auto-init/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-base/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-checkbox/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {getCorrectEventName} from '@material/animation/util';\nimport {MDCComponent} from '@material/base/component';\nimport {matches} from '@material/dom/ponyfill';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCCheckboxAdapter} from './adapter';\nimport {MDCCheckboxFoundation} from './foundation';\n\n/**\n * This type is needed for compatibility with Closure Compiler.\n */\ntype PropertyDescriptorGetter = (() => unknown) | undefined;\n\nconst CB_PROTO_PROPS = ['checked', 'indeterminate'];\n\nexport class MDCCheckbox extends MDCComponent<MDCCheckboxFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element) {\n return new MDCCheckbox(root);\n }\n\n get ripple(): MDCRipple {\n return this.ripple_;\n }\n\n get checked(): boolean {\n return this.nativeControl_.checked;\n }\n\n set checked(checked: boolean) {\n this.nativeControl_.checked = checked;\n }\n\n get indeterminate(): boolean {\n return this.nativeControl_.indeterminate;\n }\n\n set indeterminate(indeterminate: boolean) {\n this.nativeControl_.indeterminate = indeterminate;\n }\n\n get disabled(): boolean {\n return this.nativeControl_.disabled;\n }\n\n set disabled(disabled: boolean) {\n this.foundation_.setDisabled(disabled);\n }\n\n get value(): string {\n return this.nativeControl_.value;\n }\n\n set value(value: string) {\n this.nativeControl_.value = value;\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: Element; // assigned in MDCComponent constructor\n\n private readonly ripple_: MDCRipple = this.createRipple_();\n private handleChange_!: EventListener; // assigned in initialSyncWithDOM()\n private handleAnimationEnd_!: EventListener; // assigned in initialSyncWithDOM()\n\n initialSyncWithDOM() {\n this.handleChange_ = () => this.foundation_.handleChange();\n this.handleAnimationEnd_ = () => this.foundation_.handleAnimationEnd();\n this.nativeControl_.addEventListener('change', this.handleChange_);\n this.listen(getCorrectEventName(window, 'animationend'), this.handleAnimationEnd_);\n this.installPropertyChangeHooks_();\n }\n\n destroy() {\n this.ripple_.destroy();\n this.nativeControl_.removeEventListener('change', this.handleChange_);\n this.unlisten(getCorrectEventName(window, 'animationend'), this.handleAnimationEnd_);\n this.uninstallPropertyChangeHooks_();\n super.destroy();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCCheckboxAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n forceLayout: () => (this.root_ as HTMLElement).offsetWidth,\n hasNativeControl: () => !!this.nativeControl_,\n isAttachedToDOM: () => Boolean(this.root_.parentNode),\n isChecked: () => this.checked,\n isIndeterminate: () => this.indeterminate,\n removeClass: (className) => this.root_.classList.remove(className),\n removeNativeControlAttr: (attr) => this.nativeControl_.removeAttribute(attr),\n setNativeControlAttr: (attr, value) => this.nativeControl_.setAttribute(attr, value),\n setNativeControlDisabled: (disabled) => this.nativeControl_.disabled = disabled,\n };\n return new MDCCheckboxFoundation(adapter);\n }\n\n private createRipple_(): MDCRipple {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n deregisterInteractionHandler: (evtType, handler) => this.nativeControl_.removeEventListener(evtType, handler),\n isSurfaceActive: () => matches(this.nativeControl_, ':active'),\n isUnbounded: () => true,\n registerInteractionHandler: (evtType, handler) => this.nativeControl_.addEventListener(evtType, handler),\n };\n return new MDCRipple(this.root_, new MDCRippleFoundation(adapter));\n }\n\n private installPropertyChangeHooks_() {\n const nativeCb = this.nativeControl_;\n const cbProto = Object.getPrototypeOf(nativeCb);\n\n CB_PROTO_PROPS.forEach((controlState) => {\n const desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n // We have to check for this descriptor, since some browsers (Safari) don't support its return.\n // See: https://bugs.webkit.org/show_bug.cgi?id=49739\n if (!validDescriptor(desc)) {\n return;\n }\n\n // Type cast is needed for compatibility with Closure Compiler.\n const nativeGetter = (desc as {get: PropertyDescriptorGetter}).get;\n\n const nativeCbDesc = {\n configurable: desc.configurable,\n enumerable: desc.enumerable,\n get: nativeGetter,\n set: (state: boolean) => {\n desc.set!.call(nativeCb, state);\n this.foundation_.handleChange();\n },\n };\n Object.defineProperty(nativeCb, controlState, nativeCbDesc);\n });\n }\n\n private uninstallPropertyChangeHooks_() {\n const nativeCb = this.nativeControl_;\n const cbProto = Object.getPrototypeOf(nativeCb);\n\n CB_PROTO_PROPS.forEach((controlState) => {\n const desc = Object.getOwnPropertyDescriptor(cbProto, controlState);\n if (!validDescriptor(desc)) {\n return;\n }\n Object.defineProperty(nativeCb, controlState, desc);\n });\n }\n\n private get nativeControl_(): HTMLInputElement {\n const {NATIVE_CONTROL_SELECTOR} = MDCCheckboxFoundation.strings;\n const el = this.root_.querySelector<HTMLInputElement>(NATIVE_CONTROL_SELECTOR);\n if (!el) {\n throw new Error(`Checkbox component requires a ${NATIVE_CONTROL_SELECTOR} element`);\n }\n return el;\n }\n}\n\nfunction validDescriptor(inputPropDesc: PropertyDescriptor | undefined): inputPropDesc is PropertyDescriptor {\n return !!inputPropDesc && typeof inputPropDesc.set === 'function';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-checkbox/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n // Ripple is a special case where the \"root\" component is really a \"mixin\" of sorts,\n // given that it's an 'upgrade' to an existing component. That being said it is the root\n // CSS class that all other CSS classes derive from.\n BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',\n FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation',\n ROOT: 'mdc-ripple-upgraded',\n UNBOUNDED: 'mdc-ripple-upgraded--unbounded',\n};\n\nexport const strings = {\n VAR_FG_SCALE: '--mdc-ripple-fg-scale',\n VAR_FG_SIZE: '--mdc-ripple-fg-size',\n VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end',\n VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',\n VAR_LEFT: '--mdc-ripple-left',\n VAR_TOP: '--mdc-ripple-top',\n};\n\nexport const numbers = {\n DEACTIVATION_TIMEOUT_MS: 225, // Corresponds to $mdc-ripple-translate-duration (i.e. activation animation duration)\n FG_DEACTIVATION_MS: 150, // Corresponds to $mdc-ripple-fade-out-duration (i.e. deactivation animation duration)\n INITIAL_ORIGIN_SCALE: 0.6,\n PADDING: 10,\n TAP_DELAY_MS: 300, // Delay between touch and simulated mouse events on touch devices\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-ripple/constants.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate',\n ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked',\n ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked',\n ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked',\n ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked',\n ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate',\n BACKGROUND: 'mdc-checkbox__background',\n CHECKED: 'mdc-checkbox--checked',\n CHECKMARK: 'mdc-checkbox__checkmark',\n CHECKMARK_PATH: 'mdc-checkbox__checkmark-path',\n DISABLED: 'mdc-checkbox--disabled',\n INDETERMINATE: 'mdc-checkbox--indeterminate',\n MIXEDMARK: 'mdc-checkbox__mixedmark',\n NATIVE_CONTROL: 'mdc-checkbox__native-control',\n ROOT: 'mdc-checkbox',\n SELECTED: 'mdc-checkbox--selected',\n UPGRADED: 'mdc-checkbox--upgraded',\n};\n\nexport const strings = {\n ARIA_CHECKED_ATTR: 'aria-checked',\n ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed',\n NATIVE_CONTROL_SELECTOR: '.mdc-checkbox__native-control',\n TRANSITION_STATE_CHECKED: 'checked',\n TRANSITION_STATE_INDETERMINATE: 'indeterminate',\n TRANSITION_STATE_INIT: 'init',\n TRANSITION_STATE_UNCHECKED: 'unchecked',\n};\n\nexport const numbers = {\n ANIM_END_LATCH_MS: 250,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-checkbox/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './chip/index';\nexport * from './chip-set/index';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip-set/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCChip, MDCChipFactory} from '../chip/component';\nimport {MDCChipFoundation} from '../chip/foundation';\nimport {MDCChipInteractionEvent, MDCChipRemovalEvent, MDCChipSelectionEvent} from '../chip/types';\nimport {MDCChipSetAdapter} from './adapter';\nimport {MDCChipSetFoundation} from './foundation';\n\nconst {INTERACTION_EVENT, SELECTION_EVENT, REMOVAL_EVENT} = MDCChipFoundation.strings;\nconst {CHIP_SELECTOR} = MDCChipSetFoundation.strings;\n\nlet idCounter = 0;\n\nexport class MDCChipSet extends MDCComponent<MDCChipSetFoundation> {\n static attachTo(root: Element) {\n return new MDCChipSet(root);\n }\n\n get chips(): ReadonlyArray<MDCChip> {\n return this.chips_.slice();\n }\n\n /**\n * @return An array of the IDs of all selected chips.\n */\n get selectedChipIds(): ReadonlyArray<string> {\n return this.foundation_.getSelectedChipIds();\n }\n\n private chips_!: MDCChip[]; // assigned in initialize()\n private chipFactory_!: (el: Element) => MDCChip; // assigned in initialize()\n private handleChipInteraction_!: (evt: MDCChipInteractionEvent) => void; // assigned in initialSyncWithDOM()\n private handleChipSelection_!: (evt: MDCChipSelectionEvent) => void; // assigned in initialSyncWithDOM()\n private handleChipRemoval_!: (evt: MDCChipRemovalEvent) => void; // assigned in initialSyncWithDOM()\n\n /**\n * @param chipFactory A function which creates a new MDCChip.\n */\n initialize(chipFactory: MDCChipFactory = (el) => new MDCChip(el)) {\n this.chipFactory_ = chipFactory;\n this.chips_ = this.instantiateChips_(this.chipFactory_);\n }\n\n initialSyncWithDOM() {\n this.chips_.forEach((chip) => {\n if (chip.id && chip.selected) {\n this.foundation_.select(chip.id);\n }\n });\n\n this.handleChipInteraction_ = (evt) => this.foundation_.handleChipInteraction(evt.detail.chipId);\n this.handleChipSelection_ = (evt) => this.foundation_.handleChipSelection(evt.detail.chipId, evt.detail.selected);\n this.handleChipRemoval_ = (evt) => this.foundation_.handleChipRemoval(evt.detail.chipId);\n this.listen(INTERACTION_EVENT, this.handleChipInteraction_);\n this.listen(SELECTION_EVENT, this.handleChipSelection_);\n this.listen(REMOVAL_EVENT, this.handleChipRemoval_);\n }\n\n destroy() {\n this.chips_.forEach((chip) => {\n chip.destroy();\n });\n\n this.unlisten(INTERACTION_EVENT, this.handleChipInteraction_);\n this.unlisten(SELECTION_EVENT, this.handleChipSelection_);\n this.unlisten(REMOVAL_EVENT, this.handleChipRemoval_);\n\n super.destroy();\n }\n\n /**\n * Adds a new chip object to the chip set from the given chip element.\n */\n addChip(chipEl: Element) {\n chipEl.id = chipEl.id || `mdc-chip-${++idCounter}`;\n this.chips_.push(this.chipFactory_(chipEl));\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCChipSetAdapter = {\n hasClass: (className) => this.root_.classList.contains(className),\n removeChip: (chipId) => {\n const index = this.findChipIndex_(chipId);\n if (index >= 0) {\n this.chips_[index].destroy();\n this.chips_.splice(index, 1);\n }\n },\n setSelected: (chipId, selected) => {\n const index = this.findChipIndex_(chipId);\n if (index >= 0) {\n this.chips_[index].selected = selected;\n }\n },\n };\n return new MDCChipSetFoundation(adapter);\n }\n\n /**\n * Instantiates chip components on all of the chip set's child chip elements.\n */\n private instantiateChips_(chipFactory: MDCChipFactory): MDCChip[] {\n const chipElements: Element[] =\n [].slice.call(this.root_.querySelectorAll(CHIP_SELECTOR));\n return chipElements.map((el) => {\n el.id = el.id || `mdc-chip-${++idCounter}`;\n return chipFactory(el);\n });\n }\n\n /**\n * Returns the index of the chip with the given id, or -1 if the chip does not exist.\n */\n private findChipIndex_(chipId: string): number {\n for (let i = 0; i < this.chips_.length; i++) {\n if (this.chips_[i].id === chipId) {\n return i;\n }\n }\n return -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip-set/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const strings = {\n CHIP_SELECTOR: '.mdc-chip',\n};\n\nexport const cssClasses = {\n CHOICE: 'mdc-chip-set--choice',\n FILTER: 'mdc-chip-set--filter',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-chips/chip-set/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dialog/index.ts","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-dialog/node_modules/focus-trap/index.js\n// module id = 91\n// module chunks = 0","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-dialog/node_modules/tabbable/index.js\n// module id = 92\n// module chunks = 0","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-dialog/node_modules/xtend/immutable.js\n// module id = 93\n// module chunks = 0","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {closest, matches} from '@material/dom/ponyfill';\nimport {MDCRipple} from '@material/ripple/component';\nimport {FocusTrap} from 'focus-trap';\nimport {MDCDialogAdapter} from './adapter';\nimport {MDCDialogFoundation} from './foundation';\nimport {MDCDialogCloseEventDetail} from './types';\nimport * as util from './util';\nimport {MDCDialogFocusTrapFactory} from './util';\n\nconst {strings} = MDCDialogFoundation;\n\nexport class MDCDialog extends MDCComponent<MDCDialogFoundation> {\n get isOpen() {\n return this.foundation_.isOpen();\n }\n\n get escapeKeyAction() {\n return this.foundation_.getEscapeKeyAction();\n }\n\n set escapeKeyAction(action) {\n this.foundation_.setEscapeKeyAction(action);\n }\n\n get scrimClickAction() {\n return this.foundation_.getScrimClickAction();\n }\n\n set scrimClickAction(action) {\n this.foundation_.setScrimClickAction(action);\n }\n\n get autoStackButtons() {\n return this.foundation_.getAutoStackButtons();\n }\n\n set autoStackButtons(autoStack) {\n this.foundation_.setAutoStackButtons(autoStack);\n }\n\n static attachTo(root: Element) {\n return new MDCDialog(root);\n }\n\n private buttonRipples_!: MDCRipple[]; // assigned in initialize()\n private buttons_!: HTMLElement[]; // assigned in initialize()\n private container_!: HTMLElement; // assigned in initialize()\n private content_!: HTMLElement | null; // assigned in initialize()\n private defaultButton_!: HTMLElement | null; // assigned in initialize()\n private initialFocusEl_?: HTMLElement; // assigned in initialize()\n\n private focusTrap_!: FocusTrap; // assigned in initialSyncWithDOM()\n private focusTrapFactory_?: MDCDialogFocusTrapFactory; // assigned in initialize()\n\n private handleInteraction_!: SpecificEventListener<'click' | 'keydown'>; // assigned in initialSyncWithDOM()\n private handleDocumentKeydown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n private handleLayout_!: EventListener; // assigned in initialSyncWithDOM()\n private handleOpening_!: EventListener; // assigned in initialSyncWithDOM()\n private handleClosing_!: () => void; // assigned in initialSyncWithDOM()\n\n initialize(\n focusTrapFactory?: MDCDialogFocusTrapFactory,\n initialFocusEl?: HTMLElement,\n ) {\n const container = this.root_.querySelector<HTMLElement>(strings.CONTAINER_SELECTOR);\n if (!container) {\n throw new Error(`Dialog component requires a ${strings.CONTAINER_SELECTOR} container element`);\n }\n this.container_ = container;\n this.content_ = this.root_.querySelector<HTMLElement>(strings.CONTENT_SELECTOR);\n this.buttons_ = [].slice.call(this.root_.querySelectorAll<HTMLElement>(strings.BUTTON_SELECTOR));\n this.defaultButton_ = this.root_.querySelector<HTMLElement>(strings.DEFAULT_BUTTON_SELECTOR);\n this.focusTrapFactory_ = focusTrapFactory;\n this.initialFocusEl_ = initialFocusEl;\n this.buttonRipples_ = [];\n\n for (const buttonEl of this.buttons_) {\n this.buttonRipples_.push(new MDCRipple(buttonEl));\n }\n }\n\n initialSyncWithDOM() {\n this.focusTrap_ = util.createFocusTrapInstance(this.container_, this.focusTrapFactory_, this.initialFocusEl_);\n\n this.handleInteraction_ = this.foundation_.handleInteraction.bind(this.foundation_);\n this.handleDocumentKeydown_ = this.foundation_.handleDocumentKeydown.bind(this.foundation_);\n this.handleLayout_ = this.layout.bind(this);\n\n const LAYOUT_EVENTS = ['resize', 'orientationchange'];\n this.handleOpening_ = () => {\n LAYOUT_EVENTS.forEach((evtType) => window.addEventListener(evtType, this.handleLayout_));\n document.addEventListener('keydown', this.handleDocumentKeydown_);\n };\n this.handleClosing_ = () => {\n LAYOUT_EVENTS.forEach((evtType) => window.removeEventListener(evtType, this.handleLayout_));\n document.removeEventListener('keydown', this.handleDocumentKeydown_);\n };\n\n this.listen('click', this.handleInteraction_);\n this.listen('keydown', this.handleInteraction_);\n this.listen(strings.OPENING_EVENT, this.handleOpening_);\n this.listen(strings.CLOSING_EVENT, this.handleClosing_);\n }\n\n destroy() {\n this.unlisten('click', this.handleInteraction_);\n this.unlisten('keydown', this.handleInteraction_);\n this.unlisten(strings.OPENING_EVENT, this.handleOpening_);\n this.unlisten(strings.CLOSING_EVENT, this.handleClosing_);\n this.handleClosing_();\n\n this.buttonRipples_.forEach((ripple) => ripple.destroy());\n super.destroy();\n }\n\n layout() {\n this.foundation_.layout();\n }\n\n open() {\n this.foundation_.open();\n }\n\n close(action = '') {\n this.foundation_.close(action);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCDialogAdapter = {\n addBodyClass: (className) => document.body.classList.add(className),\n addClass: (className) => this.root_.classList.add(className),\n areButtonsStacked: () => util.areTopsMisaligned(this.buttons_),\n clickDefaultButton: () => this.defaultButton_ && this.defaultButton_.click(),\n eventTargetMatches: (target, selector) => target ? matches(target as Element, selector) : false,\n getActionFromEvent: (evt: Event) => {\n if (!evt.target) {\n return '';\n }\n const element = closest(evt.target as Element, `[${strings.ACTION_ATTRIBUTE}]`);\n return element && element.getAttribute(strings.ACTION_ATTRIBUTE);\n },\n hasClass: (className) => this.root_.classList.contains(className),\n isContentScrollable: () => util.isScrollable(this.content_),\n notifyClosed: (action) => this.emit<MDCDialogCloseEventDetail>(strings.CLOSED_EVENT, action ? {action} : {}),\n notifyClosing: (action) => this.emit<MDCDialogCloseEventDetail>(strings.CLOSING_EVENT, action ? {action} : {}),\n notifyOpened: () => this.emit(strings.OPENED_EVENT, {}),\n notifyOpening: () => this.emit(strings.OPENING_EVENT, {}),\n releaseFocus: () => this.focusTrap_.deactivate(),\n removeBodyClass: (className) => document.body.classList.remove(className),\n removeClass: (className) => this.root_.classList.remove(className),\n reverseButtons: () => {\n this.buttons_.reverse();\n this.buttons_.forEach((button) => {\n button.parentElement!.appendChild(button);\n });\n },\n trapFocus: () => this.focusTrap_.activate(),\n };\n return new MDCDialogFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dialog/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n CLOSING: 'mdc-dialog--closing',\n OPEN: 'mdc-dialog--open',\n OPENING: 'mdc-dialog--opening',\n SCROLLABLE: 'mdc-dialog--scrollable',\n SCROLL_LOCK: 'mdc-dialog-scroll-lock',\n STACKED: 'mdc-dialog--stacked',\n};\n\nexport const strings = {\n ACTION_ATTRIBUTE: 'data-mdc-dialog-action',\n BUTTON_SELECTOR: '.mdc-dialog__button',\n CLOSED_EVENT: 'MDCDialog:closed',\n CLOSE_ACTION: 'close',\n CLOSING_EVENT: 'MDCDialog:closing',\n CONTAINER_SELECTOR: '.mdc-dialog__container',\n CONTENT_SELECTOR: '.mdc-dialog__content',\n DEFAULT_BUTTON_SELECTOR: '.mdc-dialog__button--default',\n DESTROY_ACTION: 'destroy',\n OPENED_EVENT: 'MDCDialog:opened',\n OPENING_EVENT: 'MDCDialog:opening',\n SCRIM_SELECTOR: '.mdc-dialog__scrim',\n SUPPRESS_DEFAULT_PRESS_SELECTOR: [\n 'textarea',\n '.mdc-menu .mdc-list-item',\n ].join(', '),\n SURFACE_SELECTOR: '.mdc-dialog__surface',\n};\n\nexport const numbers = {\n DIALOG_ANIMATION_CLOSE_TIME_MS: 75,\n DIALOG_ANIMATION_OPEN_TIME_MS: 150,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dialog/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as ponyfill from './ponyfill';\n\nexport {ponyfill};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-dom/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './dismissible/foundation';\nexport * from './modal/foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/index.ts","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-drawer/node_modules/tabbable/index.js\n// module id = 98\n// module chunks = 0","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./packages/mdc-drawer/node_modules/xtend/immutable.js\n// module id = 99\n// module chunks = 0","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCList, MDCListFactory} from '@material/list/component';\nimport {MDCListFoundation} from '@material/list/foundation';\nimport {default as createFocusTrap, FocusTrap} from 'focus-trap';\nimport {MDCDrawerAdapter} from './adapter';\nimport {MDCDismissibleDrawerFoundation} from './dismissible/foundation';\nimport {MDCModalDrawerFoundation} from './modal/foundation';\nimport * as util from './util';\nimport {MDCDrawerFocusTrapFactory} from './util';\n\nconst {cssClasses, strings} = MDCDismissibleDrawerFoundation;\n\nexport class MDCDrawer extends MDCComponent<MDCDismissibleDrawerFoundation> {\n static attachTo(root: Element): MDCDrawer {\n return new MDCDrawer(root);\n }\n\n /**\n * Returns true if drawer is in the open position.\n */\n get open(): boolean {\n return this.foundation_.isOpen();\n }\n\n /**\n * Toggles the drawer open and closed.\n */\n set open(isOpen: boolean) {\n if (isOpen) {\n this.foundation_.open();\n } else {\n this.foundation_.close();\n }\n }\n\n private previousFocus_?: Element | null;\n private scrim_!: HTMLElement | null; // assigned in initialSyncWithDOM()\n private list_?: MDCList; // assigned in initialize()\n\n private focusTrap_?: FocusTrap; // assigned in initialSyncWithDOM()\n private focusTrapFactory_!: MDCDrawerFocusTrapFactory; // assigned in initialize()\n\n private handleScrimClick_?: SpecificEventListener<'click'>; // initialized in initialSyncWithDOM()\n private handleKeydown_!: SpecificEventListener<'keydown'>; // initialized in initialSyncWithDOM()\n private handleTransitionEnd_!: SpecificEventListener<'transitionend'>; // initialized in initialSyncWithDOM()\n\n get list(): MDCList | undefined {\n return this.list_;\n }\n\n initialize(\n focusTrapFactory: MDCDrawerFocusTrapFactory = createFocusTrap as unknown as MDCDrawerFocusTrapFactory,\n listFactory: MDCListFactory = (el) => new MDCList(el),\n ) {\n const listEl = this.root_.querySelector(`.${MDCListFoundation.cssClasses.ROOT}`);\n if (listEl) {\n this.list_ = listFactory(listEl);\n this.list_.wrapFocus = true;\n }\n this.focusTrapFactory_ = focusTrapFactory;\n }\n\n initialSyncWithDOM() {\n const {MODAL} = cssClasses;\n const {SCRIM_SELECTOR} = strings;\n\n this.scrim_ = (this.root_.parentNode as Element).querySelector<HTMLElement>(SCRIM_SELECTOR);\n\n if (this.scrim_ && this.root_.classList.contains(MODAL)) {\n this.handleScrimClick_ = () => (this.foundation_ as MDCModalDrawerFoundation).handleScrimClick();\n this.scrim_.addEventListener('click', this.handleScrimClick_);\n this.focusTrap_ = util.createFocusTrapInstance(this.root_ as HTMLElement, this.focusTrapFactory_);\n }\n\n this.handleKeydown_ = (evt) => this.foundation_.handleKeydown(evt);\n this.handleTransitionEnd_ = (evt) => this.foundation_.handleTransitionEnd(evt);\n\n this.listen('keydown', this.handleKeydown_);\n this.listen('transitionend', this.handleTransitionEnd_);\n }\n\n destroy() {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('transitionend', this.handleTransitionEnd_);\n\n if (this.list_) {\n this.list_.destroy();\n }\n\n const {MODAL} = cssClasses;\n if (this.scrim_ && this.handleScrimClick_ && this.root_.classList.contains(MODAL)) {\n this.scrim_.removeEventListener('click', this.handleScrimClick_);\n // Ensure drawer is closed to hide scrim and release focus\n this.open = false;\n }\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCDrawerAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n elementHasClass: (element, className) => element.classList.contains(className),\n saveFocus: () => this.previousFocus_ = document.activeElement,\n restoreFocus: () => {\n const previousFocus = this.previousFocus_ as HTMLOrSVGElement | null;\n if (previousFocus && previousFocus.focus && this.root_.contains(document.activeElement)) {\n previousFocus.focus();\n }\n },\n focusActiveNavigationItem: () => {\n const activeNavItemEl =\n this.root_.querySelector<HTMLElement>(`.${MDCListFoundation.cssClasses.LIST_ITEM_ACTIVATED_CLASS}`);\n if (activeNavItemEl) {\n activeNavItemEl.focus();\n }\n },\n notifyClose: () => this.emit(strings.CLOSE_EVENT, {}, true /* shouldBubble */),\n notifyOpen: () => this.emit(strings.OPEN_EVENT, {}, true /* shouldBubble */),\n trapFocus: () => this.focusTrap_!.activate(),\n releaseFocus: () => this.focusTrap_!.deactivate(),\n };\n // tslint:enable:object-literal-sort-keys\n\n const {DISMISSIBLE, MODAL} = cssClasses;\n if (this.root_.classList.contains(DISMISSIBLE)) {\n return new MDCDismissibleDrawerFoundation(adapter);\n } else if (this.root_.classList.contains(MODAL)) {\n return new MDCModalDrawerFoundation(adapter);\n } else {\n throw new Error(\n `MDCDrawer: Failed to instantiate component. Supported variants are ${DISMISSIBLE} and ${MODAL}.`);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ANIMATE: 'mdc-drawer--animate',\n CLOSING: 'mdc-drawer--closing',\n DISMISSIBLE: 'mdc-drawer--dismissible',\n MODAL: 'mdc-drawer--modal',\n OPEN: 'mdc-drawer--open',\n OPENING: 'mdc-drawer--opening',\n ROOT: 'mdc-drawer',\n};\n\nconst strings = {\n APP_CONTENT_SELECTOR: '.mdc-drawer-app-content',\n CLOSE_EVENT: 'MDCDrawer:closed',\n OPEN_EVENT: 'MDCDrawer:opened',\n SCRIM_SELECTOR: '.mdc-drawer-scrim',\n};\n\nexport {cssClasses, strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-drawer/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-floating-label/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above',\n LABEL_SHAKE: 'mdc-floating-label--shake',\n ROOT: 'mdc-floating-label',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-floating-label/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-form-field/index.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCFormFieldAdapter} from './adapter';\nimport {MDCFormFieldFoundation} from './foundation';\n\nexport interface MDCFormFieldInput {\n readonly ripple: MDCRipple | undefined;\n}\n\nexport class MDCFormField extends MDCComponent<MDCFormFieldFoundation> {\n static attachTo(root: HTMLElement) {\n return new MDCFormField(root);\n }\n\n private input_?: MDCFormFieldInput;\n\n set input(input: MDCFormFieldInput | undefined) {\n this.input_ = input;\n }\n\n get input(): MDCFormFieldInput | undefined {\n return this.input_;\n }\n\n private get label_(): Element | null {\n const {LABEL_SELECTOR} = MDCFormFieldFoundation.strings;\n return this.root_.querySelector(LABEL_SELECTOR);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCFormFieldAdapter = {\n activateInputRipple: () => {\n if (this.input_ && this.input_.ripple) {\n this.input_.ripple.activate();\n }\n },\n deactivateInputRipple: () => {\n if (this.input_ && this.input_.ripple) {\n this.input_.ripple.deactivate();\n }\n },\n deregisterInteractionHandler: (evtType, handler) => {\n if (this.label_) {\n this.label_.removeEventListener(evtType, handler);\n }\n },\n registerInteractionHandler: (evtType, handler) => {\n if (this.label_) {\n this.label_.addEventListener(evtType, handler);\n }\n },\n };\n return new MDCFormFieldFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-form-field/component.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n ROOT: 'mdc-form-field',\n};\n\nexport const strings = {\n LABEL_SELECTOR: '.mdc-form-field > label',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-form-field/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-grid-list/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCGridListAdapter} from './adapter';\nimport {MDCGridListFoundation} from './foundation';\n\nexport class MDCGridList extends MDCComponent<MDCGridListFoundation> {\n static attachTo(root: Element) {\n return new MDCGridList(root);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCGridListAdapter = {\n deregisterResizeHandler: (handler) => window.removeEventListener('resize', handler),\n getNumberOfTiles: () => {\n return this.root_.querySelectorAll(MDCGridListFoundation.strings.TILE_SELECTOR).length;\n },\n getOffsetWidth: () => (this.root_ as HTMLElement).offsetWidth,\n getOffsetWidthForTileAtIndex: (index) => {\n const tileEl = this.root_.querySelectorAll<HTMLElement>(MDCGridListFoundation.strings.TILE_SELECTOR)[index];\n return tileEl.offsetWidth;\n },\n registerResizeHandler: (handler) => window.addEventListener('resize', handler),\n setStyleForTilesElement: (property, value) => {\n const tilesEl = this.root_.querySelector<HTMLElement>(MDCGridListFoundation.strings.TILES_SELECTOR);\n tilesEl!.style[property] = value;\n },\n };\n return new MDCGridListFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-grid-list/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const strings = {\n TILES_SELECTOR: '.mdc-grid-list__tiles',\n TILE_SELECTOR: '.mdc-grid-tile',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-grid-list/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-icon-button/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCIconButtonToggleAdapter} from './adapter';\nimport {MDCIconButtonToggleFoundation} from './foundation';\nimport {MDCIconButtonToggleEventDetail} from './types';\n\nconst {strings} = MDCIconButtonToggleFoundation;\n\nexport class MDCIconButtonToggle extends MDCComponent<MDCIconButtonToggleFoundation> {\n static attachTo(root: HTMLElement) {\n return new MDCIconButtonToggle(root);\n }\n\n protected root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private readonly ripple_: MDCRipple = this.createRipple_();\n private handleClick_!: SpecificEventListener<'click'>; // assigned in initialSyncWithDOM()\n\n initialSyncWithDOM() {\n this.handleClick_ = () => this.foundation_.handleClick();\n this.listen('click', this.handleClick_);\n }\n\n destroy() {\n this.unlisten('click', this.handleClick_);\n this.ripple_.destroy();\n super.destroy();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCIconButtonToggleAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n hasClass: (className) => this.root_.classList.contains(className),\n notifyChange: (evtData) => this.emit<MDCIconButtonToggleEventDetail>(strings.CHANGE_EVENT, evtData),\n removeClass: (className) => this.root_.classList.remove(className),\n setAttr: (attrName, attrValue) => this.root_.setAttribute(attrName, attrValue),\n };\n return new MDCIconButtonToggleFoundation(adapter);\n }\n\n get ripple(): MDCRipple {\n return this.ripple_;\n }\n\n get on(): boolean {\n return this.foundation_.isOn();\n }\n\n set on(isOn: boolean) {\n this.foundation_.toggle(isOn);\n }\n\n private createRipple_(): MDCRipple {\n const ripple = new MDCRipple(this.root_);\n ripple.unbounded = true;\n return ripple;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-icon-button/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n ICON_BUTTON_ON: 'mdc-icon-button--on',\n ROOT: 'mdc-icon-button',\n};\n\nexport const strings = {\n ARIA_PRESSED: 'aria-pressed',\n CHANGE_EVENT: 'MDCIconButtonToggle:change',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-icon-button/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-line-ripple/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active',\n LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating',\n};\n\nexport {cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-line-ripple/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-linear-progress/index.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCLinearProgressAdapter} from './adapter';\nimport {MDCLinearProgressFoundation} from './foundation';\n\nexport class MDCLinearProgress extends MDCComponent<MDCLinearProgressFoundation> {\n static attachTo(root: Element) {\n return new MDCLinearProgress(root);\n }\n\n set determinate(value: boolean) {\n this.foundation_.setDeterminate(value);\n }\n\n set progress(value: number) {\n this.foundation_.setProgress(value);\n }\n\n set buffer(value: number) {\n this.foundation_.setBuffer(value);\n }\n\n set reverse(value: boolean) {\n this.foundation_.setReverse(value);\n }\n\n open() {\n this.foundation_.open();\n }\n\n close() {\n this.foundation_.close();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCLinearProgressAdapter = {\n addClass: (className: string) => this.root_.classList.add(className),\n getBuffer: () => this.root_.querySelector(MDCLinearProgressFoundation.strings.BUFFER_SELECTOR),\n getPrimaryBar: () => this.root_.querySelector(MDCLinearProgressFoundation.strings.PRIMARY_BAR_SELECTOR),\n hasClass: (className: string) => this.root_.classList.contains(className),\n removeClass: (className: string) => this.root_.classList.remove(className),\n setStyle: (el: HTMLElement, styleProperty: string, value: string) => el.style.setProperty(styleProperty, value),\n };\n return new MDCLinearProgressFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-linear-progress/component.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n CLOSED_CLASS: 'mdc-linear-progress--closed',\n INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate',\n REVERSED_CLASS: 'mdc-linear-progress--reversed',\n};\n\nexport const strings = {\n BUFFER_SELECTOR: '.mdc-linear-progress__buffer',\n PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-linear-progress/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-list/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {Corner, CornerBit} from './constants';\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu-surface/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport {Corner} from '@material/menu-surface/constants'; // for backward compatibility\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-menu/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-notched-outline/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-radio/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCRadioAdapter} from './adapter';\nimport {MDCRadioFoundation} from './foundation';\n\nexport class MDCRadio extends MDCComponent<MDCRadioFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element) {\n return new MDCRadio(root);\n }\n\n get checked(): boolean {\n return this.nativeControl_.checked;\n }\n\n set checked(checked: boolean) {\n this.nativeControl_.checked = checked;\n }\n\n get disabled() {\n return this.nativeControl_.disabled;\n }\n\n set disabled(disabled: boolean) {\n this.foundation_.setDisabled(disabled);\n }\n\n get value() {\n return this.nativeControl_.value;\n }\n\n set value(value: string) {\n this.nativeControl_.value = value;\n }\n\n get ripple(): MDCRipple {\n return this.ripple_;\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: Element; // assigned in MDCComponent constructor\n\n private readonly ripple_: MDCRipple = this.createRipple_();\n\n destroy() {\n this.ripple_.destroy();\n super.destroy();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCRadioAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n setNativeControlDisabled: (disabled) => this.nativeControl_.disabled = disabled,\n };\n return new MDCRadioFoundation(adapter);\n }\n\n private createRipple_(): MDCRipple {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n registerInteractionHandler: (evtType, handler) => this.nativeControl_.addEventListener(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.nativeControl_.removeEventListener(evtType, handler),\n // Radio buttons technically go \"active\" whenever there is *any* keyboard interaction.\n // This is not the UI we desire.\n isSurfaceActive: () => false,\n isUnbounded: () => true,\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCRipple(this.root_, new MDCRippleFoundation(adapter));\n }\n\n private get nativeControl_(): HTMLInputElement {\n const {NATIVE_CONTROL_SELECTOR} = MDCRadioFoundation.strings;\n const el = this.root_.querySelector<HTMLInputElement>(NATIVE_CONTROL_SELECTOR);\n if (!el) {\n throw new Error(`Radio component requires a ${NATIVE_CONTROL_SELECTOR} element`);\n }\n return el;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-radio/component.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control',\n};\n\nconst cssClasses = {\n DISABLED: 'mdc-radio--disabled',\n ROOT: 'mdc-radio',\n};\n\nexport {strings, cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-radio/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-ripple/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\nexport * from './helper-text/index';\nexport * from './icon/index';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {CustomEventListener, SpecificEventListener} from '@material/base/types';\nimport {MDCFloatingLabel, MDCFloatingLabelFactory} from '@material/floating-label/component';\nimport {MDCLineRipple, MDCLineRippleFactory} from '@material/line-ripple/component';\nimport * as menuSurfaceConstants from '@material/menu-surface/constants';\nimport {MDCMenu, MDCMenuFactory} from '@material/menu/component';\nimport * as menuConstants from '@material/menu/constants';\nimport {MDCMenuItemEvent} from '@material/menu/types';\nimport {MDCNotchedOutline, MDCNotchedOutlineFactory} from '@material/notched-outline/component';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCSelectAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCSelectFoundation} from './foundation';\nimport {MDCSelectHelperText, MDCSelectHelperTextFactory} from './helper-text/component';\nimport {MDCSelectIcon, MDCSelectIconFactory} from './icon/component';\nimport {MDCSelectEventDetail, MDCSelectFoundationMap} from './types';\n\nconst VALIDATION_ATTR_WHITELIST = ['required', 'aria-required'];\n\nexport class MDCSelect extends MDCComponent<MDCSelectFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element): MDCSelect {\n return new MDCSelect(root);\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: HTMLElement; // assigned in MDCComponent constructor\n\n ripple!: MDCRipple | null;\n\n private menu_!: MDCMenu | null; // assigned in enhancedSelectSetup_()\n private isMenuOpen_!: boolean; // assigned in initialize()\n\n // Exactly one of these fields must be non-null.\n private nativeControl_!: HTMLSelectElement | null; // assigned in initialize()\n private selectedText_!: HTMLElement | null; // assigned in initialize()\n\n private targetElement_!: HTMLElement; // assigned in initialize()\n\n private hiddenInput_!: HTMLInputElement | null; // assigned in enhancedSelectSetup_()\n private menuElement_!: Element | null; // assigned in enhancedSelectSetup_()\n private leadingIcon_?: MDCSelectIcon; // assigned in initialize()\n private helperText_!: MDCSelectHelperText | null; // assigned in initialize()\n private lineRipple_!: MDCLineRipple | null; // assigned in initialize()\n private label_!: MDCFloatingLabel | null; // assigned in initialize()\n private outline_!: MDCNotchedOutline | null; // assigned in initialize()\n private handleChange_!: SpecificEventListener<'change'>; // assigned in initialize()\n private handleFocus_!: SpecificEventListener<'focus'>; // assigned in initialize()\n private handleBlur_!: SpecificEventListener<'blur'>; // assigned in initialize()\n private handleClick_!: SpecificEventListener<'click'>; // assigned in initialize()\n private handleKeydown_!: SpecificEventListener<'keydown'>; // assigned in initialize()\n private handleMenuOpened_!: EventListener; // assigned in initialize()\n private handleMenuClosed_!: EventListener; // assigned in initialize()\n private handleMenuSelected_!: CustomEventListener<MDCMenuItemEvent>; // assigned in initialize()\n private validationObserver_!: MutationObserver; // assigned in initialize()\n\n initialize(\n labelFactory: MDCFloatingLabelFactory = (el) => new MDCFloatingLabel(el),\n lineRippleFactory: MDCLineRippleFactory = (el) => new MDCLineRipple(el),\n outlineFactory: MDCNotchedOutlineFactory = (el) => new MDCNotchedOutline(el),\n menuFactory: MDCMenuFactory = (el) => new MDCMenu(el),\n iconFactory: MDCSelectIconFactory = (el) => new MDCSelectIcon(el),\n helperTextFactory: MDCSelectHelperTextFactory = (el) => new MDCSelectHelperText(el),\n ) {\n this.isMenuOpen_ = false;\n this.nativeControl_ = this.root_.querySelector(strings.NATIVE_CONTROL_SELECTOR);\n this.selectedText_ = this.root_.querySelector(strings.SELECTED_TEXT_SELECTOR);\n\n const targetElement = this.nativeControl_ || this.selectedText_;\n if (!targetElement) {\n throw new Error(\n 'MDCSelect: Missing required element: Exactly one of the following selectors must be present: ' +\n `'${strings.NATIVE_CONTROL_SELECTOR}' or '${strings.SELECTED_TEXT_SELECTOR}'`,\n );\n }\n\n this.targetElement_ = targetElement;\n if (this.targetElement_.hasAttribute(strings.ARIA_CONTROLS)) {\n const helperTextElement = document.getElementById(this.targetElement_.getAttribute(strings.ARIA_CONTROLS)!);\n if (helperTextElement) {\n this.helperText_ = helperTextFactory(helperTextElement);\n }\n }\n\n if (this.selectedText_) {\n this.enhancedSelectSetup_(menuFactory);\n }\n\n const labelElement = this.root_.querySelector(strings.LABEL_SELECTOR);\n this.label_ = labelElement ? labelFactory(labelElement) : null;\n\n const lineRippleElement = this.root_.querySelector(strings.LINE_RIPPLE_SELECTOR);\n this.lineRipple_ = lineRippleElement ? lineRippleFactory(lineRippleElement) : null;\n\n const outlineElement = this.root_.querySelector(strings.OUTLINE_SELECTOR);\n this.outline_ = outlineElement ? outlineFactory(outlineElement) : null;\n\n const leadingIcon = this.root_.querySelector(strings.LEADING_ICON_SELECTOR);\n if (leadingIcon) {\n this.root_.classList.add(cssClasses.WITH_LEADING_ICON);\n this.leadingIcon_ = iconFactory(leadingIcon);\n\n if (this.menuElement_) {\n this.menuElement_.classList.add(cssClasses.WITH_LEADING_ICON);\n }\n }\n\n if (!this.root_.classList.contains(cssClasses.OUTLINED)) {\n this.ripple = this.createRipple_();\n }\n\n // The required state needs to be sync'd before the mutation observer is added.\n this.initialSyncRequiredState_();\n this.addMutationObserverForRequired_();\n }\n\n /**\n * Initializes the select's event listeners and internal state based\n * on the environment's state.\n */\n initialSyncWithDOM() {\n this.handleChange_ = () => this.foundation_.handleChange(/* didChange */ true);\n this.handleFocus_ = () => this.foundation_.handleFocus();\n this.handleBlur_ = () => this.foundation_.handleBlur();\n this.handleClick_ = (evt) => {\n if (this.selectedText_) {\n this.selectedText_.focus();\n }\n this.foundation_.handleClick(this.getNormalizedXCoordinate_(evt));\n };\n this.handleKeydown_ = (evt) => this.foundation_.handleKeydown(evt);\n this.handleMenuSelected_ = (evtData) => this.selectedIndex = evtData.detail.index;\n this.handleMenuOpened_ = () => {\n if (this.menu_!.items.length === 0) {\n return;\n }\n\n // Menu should open to the last selected element, should open to first menu item otherwise.\n const focusItemIndex = this.selectedIndex >= 0 ? this.selectedIndex : 0;\n const focusItemEl = this.menu_!.items[focusItemIndex] as HTMLElement;\n focusItemEl.focus();\n };\n this.handleMenuClosed_ = () => {\n // isMenuOpen_ is used to track the state of the menu opening or closing since the menu.open function\n // will return false if the menu is still closing and this method listens to the closed event which\n // occurs after the menu is already closed.\n this.isMenuOpen_ = false;\n this.selectedText_!.removeAttribute('aria-expanded');\n if (document.activeElement !== this.selectedText_) {\n this.foundation_.handleBlur();\n }\n };\n\n this.targetElement_.addEventListener('change', this.handleChange_);\n this.targetElement_.addEventListener('focus', this.handleFocus_);\n this.targetElement_.addEventListener('blur', this.handleBlur_);\n\n this.targetElement_.addEventListener('click', this.handleClick_ as EventListener);\n\n if (this.menuElement_) {\n this.selectedText_!.addEventListener('keydown', this.handleKeydown_);\n this.menu_!.listen(menuSurfaceConstants.strings.CLOSED_EVENT, this.handleMenuClosed_);\n this.menu_!.listen(menuSurfaceConstants.strings.OPENED_EVENT, this.handleMenuOpened_);\n this.menu_!.listen(menuConstants.strings.SELECTED_EVENT, this.handleMenuSelected_);\n\n if (this.hiddenInput_ && this.hiddenInput_.value) {\n // If the hidden input already has a value, use it to restore the select's value.\n // This can happen e.g. if the user goes back or (in some browsers) refreshes the page.\n const enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();\n enhancedAdapterMethods.setValue(this.hiddenInput_.value);\n } else if (this.menuElement_.querySelector(strings.SELECTED_ITEM_SELECTOR)) {\n // If an element is selected, the select should set the initial selected text.\n const enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();\n enhancedAdapterMethods.setValue(enhancedAdapterMethods.getValue());\n }\n }\n\n // Initially sync floating label\n this.foundation_.handleChange(/* didChange */ false);\n\n if (this.root_.classList.contains(cssClasses.DISABLED)\n || (this.nativeControl_ && this.nativeControl_.disabled)) {\n this.disabled = true;\n }\n }\n\n destroy() {\n this.targetElement_.removeEventListener('change', this.handleChange_);\n this.targetElement_.removeEventListener('focus', this.handleFocus_);\n this.targetElement_.removeEventListener('blur', this.handleBlur_);\n this.targetElement_.removeEventListener('keydown', this.handleKeydown_);\n this.targetElement_.removeEventListener('click', this.handleClick_ as EventListener);\n\n if (this.menu_) {\n this.menu_.unlisten(menuSurfaceConstants.strings.CLOSED_EVENT, this.handleMenuClosed_);\n this.menu_.unlisten(menuSurfaceConstants.strings.OPENED_EVENT, this.handleMenuOpened_);\n this.menu_.unlisten(menuConstants.strings.SELECTED_EVENT, this.handleMenuSelected_);\n this.menu_.destroy();\n }\n\n if (this.ripple) {\n this.ripple.destroy();\n }\n if (this.outline_) {\n this.outline_.destroy();\n }\n if (this.leadingIcon_) {\n this.leadingIcon_.destroy();\n }\n if (this.helperText_) {\n this.helperText_.destroy();\n }\n if (this.validationObserver_) {\n this.validationObserver_.disconnect();\n }\n\n super.destroy();\n }\n\n get value(): string {\n return this.foundation_.getValue();\n }\n\n set value(value: string) {\n this.foundation_.setValue(value);\n }\n\n get selectedIndex(): number {\n let selectedIndex = -1;\n if (this.menuElement_ && this.menu_) {\n const selectedEl = this.menuElement_.querySelector(strings.SELECTED_ITEM_SELECTOR)!;\n selectedIndex = this.menu_.items.indexOf(selectedEl);\n } else if (this.nativeControl_) {\n selectedIndex = this.nativeControl_.selectedIndex;\n }\n return selectedIndex;\n }\n\n set selectedIndex(selectedIndex: number) {\n this.foundation_.setSelectedIndex(selectedIndex);\n }\n\n get disabled(): boolean {\n return this.root_.classList.contains(cssClasses.DISABLED) ||\n (this.nativeControl_ ? this.nativeControl_.disabled : false);\n }\n\n set disabled(disabled: boolean) {\n this.foundation_.setDisabled(disabled);\n }\n\n set leadingIconAriaLabel(label: string) {\n this.foundation_.setLeadingIconAriaLabel(label);\n }\n\n /**\n * Sets the text content of the leading icon.\n */\n set leadingIconContent(content: string) {\n this.foundation_.setLeadingIconContent(content);\n }\n\n /**\n * Sets the text content of the helper text.\n */\n set helperTextContent(content: string) {\n this.foundation_.setHelperTextContent(content);\n }\n\n /**\n * Sets the current invalid state of the select.\n */\n set valid(isValid: boolean) {\n this.foundation_.setValid(isValid);\n }\n\n /**\n * Checks if the select is in a valid state.\n */\n get valid(): boolean {\n return this.foundation_.isValid();\n }\n\n /**\n * Sets the control to the required state.\n */\n set required(isRequired: boolean) {\n if (this.nativeControl_) {\n this.nativeControl_.required = isRequired;\n } else {\n if (isRequired) {\n this.selectedText_!.setAttribute('aria-required', isRequired.toString());\n } else {\n this.selectedText_!.removeAttribute('aria-required');\n }\n }\n }\n\n /**\n * Returns whether the select is required.\n */\n get required(): boolean {\n if (this.nativeControl_) {\n return this.nativeControl_.required;\n } else {\n return this.selectedText_!.getAttribute('aria-required') === 'true';\n }\n }\n\n /**\n * Recomputes the outline SVG path for the outline element.\n */\n layout() {\n this.foundation_.layout();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSelectAdapter = {\n ...(this.nativeControl_ ? this.getNativeSelectAdapterMethods_() : this.getEnhancedSelectAdapterMethods_()),\n ...this.getCommonAdapterMethods_(),\n ...this.getOutlineAdapterMethods_(),\n ...this.getLabelAdapterMethods_(),\n };\n return new MDCSelectFoundation(adapter, this.getFoundationMap_());\n }\n\n /**\n * Handles setup for the enhanced menu.\n */\n private enhancedSelectSetup_(menuFactory: MDCMenuFactory) {\n const isDisabled = this.root_.classList.contains(cssClasses.DISABLED);\n this.selectedText_!.setAttribute('tabindex', isDisabled ? '-1' : '0');\n this.hiddenInput_ = this.root_.querySelector(strings.HIDDEN_INPUT_SELECTOR);\n this.menuElement_ = this.root_.querySelector(strings.MENU_SELECTOR)!;\n this.menu_ = menuFactory(this.menuElement_);\n this.menu_.hoistMenuToBody();\n this.menu_.setAnchorElement(this.root_);\n this.menu_.setAnchorCorner(menuSurfaceConstants.Corner.BOTTOM_START);\n this.menu_.wrapFocus = false;\n }\n\n private createRipple_(): MDCRipple {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n registerInteractionHandler: (evtType, handler) => this.targetElement_.addEventListener(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.targetElement_.removeEventListener(evtType, handler),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCRipple(this.root_, new MDCRippleFoundation(adapter));\n }\n\n private getNativeSelectAdapterMethods_() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getValue: () => this.nativeControl_!.value,\n setValue: (value: string) => {\n this.nativeControl_!.value = value;\n },\n openMenu: () => undefined,\n closeMenu: () => undefined,\n isMenuOpen: () => false,\n setSelectedIndex: (index: number) => {\n this.nativeControl_!.selectedIndex = index;\n },\n setDisabled: (isDisabled: boolean) => {\n this.nativeControl_!.disabled = isDisabled;\n },\n setValid: (isValid: boolean) => {\n if (isValid) {\n this.root_.classList.remove(cssClasses.INVALID);\n } else {\n this.root_.classList.add(cssClasses.INVALID);\n }\n },\n checkValidity: () => this.nativeControl_!.checkValidity(),\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getEnhancedSelectAdapterMethods_() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getValue: () => {\n const listItem = this.menuElement_!.querySelector(strings.SELECTED_ITEM_SELECTOR);\n if (listItem && listItem.hasAttribute(strings.ENHANCED_VALUE_ATTR)) {\n return listItem.getAttribute(strings.ENHANCED_VALUE_ATTR) || '';\n }\n return '';\n },\n setValue: (value: string) => {\n const element = this.menuElement_!.querySelector(`[${strings.ENHANCED_VALUE_ATTR}=\"${value}\"]`);\n this.setEnhancedSelectedIndex_(element ? this.menu_!.items.indexOf(element) : -1);\n },\n openMenu: () => {\n if (this.menu_ && !this.menu_.open) {\n this.menu_.open = true;\n this.isMenuOpen_ = true;\n this.selectedText_!.setAttribute('aria-expanded', 'true');\n }\n },\n closeMenu: () => {\n if (this.menu_ && this.menu_.open) {\n this.menu_.open = false;\n }\n },\n isMenuOpen: () => Boolean(this.menu_) && this.isMenuOpen_,\n setSelectedIndex: (index: number) => this.setEnhancedSelectedIndex_(index),\n setDisabled: (isDisabled: boolean) => {\n this.selectedText_!.setAttribute('tabindex', isDisabled ? '-1' : '0');\n this.selectedText_!.setAttribute('aria-disabled', isDisabled.toString());\n if (this.hiddenInput_) {\n this.hiddenInput_.disabled = isDisabled;\n }\n },\n checkValidity: () => {\n const classList = this.root_.classList;\n if (classList.contains(cssClasses.REQUIRED) && !classList.contains(cssClasses.DISABLED)) {\n // See notes for required attribute under https://www.w3.org/TR/html52/sec-forms.html#the-select-element\n // TL;DR: Invalid if no index is selected, or if the first index is selected and has an empty value.\n return this.selectedIndex !== -1 && (this.selectedIndex !== 0 || Boolean(this.value));\n } else {\n return true;\n }\n },\n setValid: (isValid: boolean) => {\n this.selectedText_!.setAttribute('aria-invalid', (!isValid).toString());\n if (isValid) {\n this.root_.classList.remove(cssClasses.INVALID);\n } else {\n this.root_.classList.add(cssClasses.INVALID);\n }\n },\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getCommonAdapterMethods_() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: (className: string) => this.root_.classList.add(className),\n removeClass: (className: string) => this.root_.classList.remove(className),\n hasClass: (className: string) => this.root_.classList.contains(className),\n setRippleCenter: (normalizedX: number) => this.lineRipple_ && this.lineRipple_.setRippleCenter(normalizedX),\n activateBottomLine: () => this.lineRipple_ && this.lineRipple_.activate(),\n deactivateBottomLine: () => this.lineRipple_ && this.lineRipple_.deactivate(),\n notifyChange: (value: string) => {\n const index = this.selectedIndex;\n this.emit<MDCSelectEventDetail>(strings.CHANGE_EVENT, {value, index}, true /* shouldBubble */);\n },\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getOutlineAdapterMethods_() {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n hasOutline: () => Boolean(this.outline_),\n notchOutline: (labelWidth: number) => this.outline_ && this.outline_.notch(labelWidth),\n closeOutline: () => this.outline_ && this.outline_.closeNotch(),\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getLabelAdapterMethods_() {\n return {\n floatLabel: (shouldFloat: boolean) => this.label_ && this.label_.float(shouldFloat),\n getLabelWidth: () => this.label_ ? this.label_.getWidth() : 0,\n };\n }\n\n /**\n * Calculates where the line ripple should start based on the x coordinate within the component.\n */\n private getNormalizedXCoordinate_(evt: MouseEvent | TouchEvent): number {\n const targetClientRect = (evt.target as Element).getBoundingClientRect();\n const xCoordinate = this.isTouchEvent_(evt) ? evt.touches[0].clientX : evt.clientX;\n return xCoordinate - targetClientRect.left;\n }\n\n private isTouchEvent_(evt: MouseEvent | TouchEvent): evt is TouchEvent {\n return Boolean((evt as TouchEvent).touches);\n }\n\n /**\n * Returns a map of all subcomponents to subfoundations.\n */\n private getFoundationMap_(): Partial<MDCSelectFoundationMap> {\n return {\n helperText: this.helperText_ ? this.helperText_.foundation : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined,\n };\n }\n\n private setEnhancedSelectedIndex_(index: number) {\n const selectedItem = this.menu_!.items[index];\n this.selectedText_!.textContent = selectedItem ? selectedItem.textContent!.trim() : '';\n const previouslySelected = this.menuElement_!.querySelector(strings.SELECTED_ITEM_SELECTOR);\n\n if (previouslySelected) {\n previouslySelected.classList.remove(cssClasses.SELECTED_ITEM_CLASS);\n previouslySelected.removeAttribute(strings.ARIA_SELECTED_ATTR);\n }\n\n if (selectedItem) {\n selectedItem.classList.add(cssClasses.SELECTED_ITEM_CLASS);\n selectedItem.setAttribute(strings.ARIA_SELECTED_ATTR, 'true');\n }\n\n // Synchronize hidden input's value with data-value attribute of selected item.\n // This code path is also followed when setting value directly, so this covers all cases.\n if (this.hiddenInput_) {\n this.hiddenInput_.value = selectedItem ? selectedItem.getAttribute(strings.ENHANCED_VALUE_ATTR) || '' : '';\n }\n\n this.layout();\n }\n\n private initialSyncRequiredState_() {\n const isRequired =\n (this.targetElement_ as HTMLSelectElement).required\n || this.targetElement_.getAttribute('aria-required') === 'true'\n || this.root_.classList.contains(cssClasses.REQUIRED);\n if (isRequired) {\n if (this.nativeControl_) {\n this.nativeControl_.required = true;\n } else {\n this.selectedText_!.setAttribute('aria-required', 'true');\n }\n this.root_.classList.add(cssClasses.REQUIRED);\n }\n }\n\n private addMutationObserverForRequired_() {\n const observerHandler = (attributesList: string[]) => {\n attributesList.some((attributeName) => {\n if (VALIDATION_ATTR_WHITELIST.indexOf(attributeName) === -1) {\n return false;\n }\n\n if (this.selectedText_) {\n if (this.selectedText_.getAttribute('aria-required') === 'true') {\n this.root_.classList.add(cssClasses.REQUIRED);\n } else {\n this.root_.classList.remove(cssClasses.REQUIRED);\n }\n } else {\n if (this.nativeControl_!.required) {\n this.root_.classList.add(cssClasses.REQUIRED);\n } else {\n this.root_.classList.remove(cssClasses.REQUIRED);\n }\n }\n\n return true;\n });\n };\n\n const getAttributesList = (mutationsList: MutationRecord[]): string[] => {\n return mutationsList\n .map((mutation) => mutation.attributeName)\n .filter((attributeName) => attributeName) as string[];\n };\n const observer = new MutationObserver((mutationsList) => observerHandler(getAttributesList(mutationsList)));\n observer.observe(this.targetElement_, {attributes: true});\n this.validationObserver_ = observer;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n ARIA_HIDDEN: 'aria-hidden',\n ROLE: 'role',\n};\n\nconst cssClasses = {\n HELPER_TEXT_PERSISTENT: 'mdc-select-helper-text--persistent',\n HELPER_TEXT_VALIDATION_MSG: 'mdc-select-helper-text--validation-msg',\n};\n\nexport {strings, cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/helper-text/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n ICON_EVENT: 'MDCSelect:icon',\n ICON_ROLE: 'button',\n};\n\nexport {strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/icon/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/helper-text/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-select/icon/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-slider/index.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCSliderAdapter} from './adapter';\nimport {strings} from './constants';\nimport {MDCSliderFoundation} from './foundation';\n\nexport class MDCSlider extends MDCComponent<MDCSliderFoundation> {\n static attachTo(root: Element) {\n return new MDCSlider(root);\n }\n\n protected root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private thumbContainer_!: HTMLElement; // assigned in initialize()\n private track_!: HTMLElement; // assigned in initialize()\n private pinValueMarker_!: HTMLElement; // assigned in initialize()\n private trackMarkerContainer_!: HTMLElement; // assigned in initialize()\n\n get value(): number {\n return this.foundation_.getValue();\n }\n\n set value(value: number) {\n this.foundation_.setValue(value);\n }\n\n get min(): number {\n return this.foundation_.getMin();\n }\n\n set min(min: number) {\n this.foundation_.setMin(min);\n }\n\n get max(): number {\n return this.foundation_.getMax();\n }\n\n set max(max: number) {\n this.foundation_.setMax(max);\n }\n\n get step(): number {\n return this.foundation_.getStep();\n }\n\n set step(step: number) {\n this.foundation_.setStep(step);\n }\n\n get disabled(): boolean {\n return this.foundation_.isDisabled();\n }\n\n set disabled(disabled: boolean) {\n this.foundation_.setDisabled(disabled);\n }\n\n initialize() {\n this.thumbContainer_ = this.root_.querySelector<HTMLElement>(strings.THUMB_CONTAINER_SELECTOR)!;\n this.track_ = this.root_.querySelector<HTMLElement>(strings.TRACK_SELECTOR)!;\n this.pinValueMarker_ = this.root_.querySelector<HTMLElement>(strings.PIN_VALUE_MARKER_SELECTOR)!;\n this.trackMarkerContainer_ = this.root_.querySelector<HTMLElement>(strings.TRACK_MARKER_CONTAINER_SELECTOR)!;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCSliderAdapter = {\n hasClass: (className) => this.root_.classList.contains(className),\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n getAttribute: (name) => this.root_.getAttribute(name),\n setAttribute: (name, value) => this.root_.setAttribute(name, value),\n removeAttribute: (name) => this.root_.removeAttribute(name),\n computeBoundingRect: () => this.root_.getBoundingClientRect(),\n getTabIndex: () => this.root_.tabIndex,\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n registerThumbContainerInteractionHandler: (evtType, handler) => {\n this.thumbContainer_.addEventListener(evtType, handler);\n },\n deregisterThumbContainerInteractionHandler: (evtType, handler) => {\n this.thumbContainer_.removeEventListener(evtType, handler);\n },\n registerBodyInteractionHandler: (evtType, handler) => document.body.addEventListener(evtType, handler),\n deregisterBodyInteractionHandler: (evtType, handler) => document.body.removeEventListener(evtType, handler),\n registerResizeHandler: (handler) => window.addEventListener('resize', handler),\n deregisterResizeHandler: (handler) => window.removeEventListener('resize', handler),\n notifyInput: () => this.emit<MDCSlider>(strings.INPUT_EVENT, this), // TODO(acdvorak): Create detail interface\n notifyChange: () => this.emit<MDCSlider>(strings.CHANGE_EVENT, this), // TODO(acdvorak): Create detail interface\n setThumbContainerStyleProperty: (propertyName, value) => {\n this.thumbContainer_.style.setProperty(propertyName, value);\n },\n setTrackStyleProperty: (propertyName, value) => this.track_.style.setProperty(propertyName, value),\n setMarkerValue: (value) => this.pinValueMarker_.innerText = value.toLocaleString(),\n appendTrackMarkers: (numMarkers) => {\n const frag = document.createDocumentFragment();\n for (let i = 0; i < numMarkers; i++) {\n const marker = document.createElement('div');\n marker.classList.add('mdc-slider__track-marker');\n frag.appendChild(marker);\n }\n this.trackMarkerContainer_.appendChild(frag);\n },\n removeTrackMarkers: () => {\n while (this.trackMarkerContainer_.firstChild) {\n this.trackMarkerContainer_.removeChild(this.trackMarkerContainer_.firstChild);\n }\n },\n setLastTrackMarkersStyleProperty: (propertyName, value) => {\n // We remove and append new nodes, thus, the last track marker must be dynamically found.\n const lastTrackMarker = this.root_.querySelector<HTMLElement>(strings.LAST_TRACK_MARKER_SELECTOR)!;\n lastTrackMarker.style.setProperty(propertyName, value);\n },\n isRTL: () => getComputedStyle(this.root_).direction === 'rtl',\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCSliderFoundation(adapter);\n }\n\n initialSyncWithDOM() {\n const origValueNow = this.parseFloat_(this.root_.getAttribute(strings.ARIA_VALUENOW), this.value);\n const min = this.parseFloat_(this.root_.getAttribute(strings.ARIA_VALUEMIN), this.min);\n const max = this.parseFloat_(this.root_.getAttribute(strings.ARIA_VALUEMAX), this.max);\n\n // min and max need to be set in the right order to avoid throwing an error\n // when the new min is greater than the default max.\n if (min >= this.max) {\n this.max = max;\n this.min = min;\n } else {\n this.min = min;\n this.max = max;\n }\n\n this.step = this.parseFloat_(this.root_.getAttribute(strings.STEP_DATA_ATTR), this.step);\n this.value = origValueNow;\n this.disabled = (\n this.root_.hasAttribute(strings.ARIA_DISABLED) &&\n this.root_.getAttribute(strings.ARIA_DISABLED) !== 'false'\n );\n this.foundation_.setupTrackMarker();\n }\n\n layout() {\n this.foundation_.layout();\n }\n\n stepUp(amount = (this.step || 1)) {\n this.value += amount;\n }\n\n stepDown(amount = (this.step || 1)) {\n this.value -= amount;\n }\n\n private parseFloat_(str: string | null, defaultValue: number) {\n const num = parseFloat(str!); // tslint:disable-line:ban\n const isNumeric = typeof num === 'number' && isFinite(num);\n return isNumeric ? num : defaultValue;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-slider/component.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-snackbar/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {SpecificEventListener} from '@material/base/types';\nimport {closest} from '@material/dom/ponyfill';\nimport {MDCSnackbarAdapter} from './adapter';\nimport {strings} from './constants';\nimport {MDCSnackbarFoundation} from './foundation';\nimport {MDCSnackbarAnnouncer, MDCSnackbarAnnouncerFactory, MDCSnackbarCloseEventDetail} from './types';\nimport * as util from './util';\n\nconst {\n SURFACE_SELECTOR, LABEL_SELECTOR, ACTION_SELECTOR, DISMISS_SELECTOR,\n OPENING_EVENT, OPENED_EVENT, CLOSING_EVENT, CLOSED_EVENT,\n} = strings;\n\nexport class MDCSnackbar extends MDCComponent<MDCSnackbarFoundation> {\n static attachTo(root: Element) {\n return new MDCSnackbar(root);\n }\n\n private announce_!: MDCSnackbarAnnouncer; // assigned in initialize()\n\n private actionEl_!: Element; // assigned in initialSyncWithDOM()\n private labelEl_!: Element; // assigned in initialSyncWithDOM()\n private surfaceEl_!: Element; // assigned in initialSyncWithDOM()\n\n private handleKeyDown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n private handleSurfaceClick_!: SpecificEventListener<'click'>; // assigned in initialSyncWithDOM()\n\n initialize(announcerFactory: MDCSnackbarAnnouncerFactory = () => util.announce) {\n this.announce_ = announcerFactory();\n }\n\n initialSyncWithDOM() {\n this.surfaceEl_ = this.root_.querySelector(SURFACE_SELECTOR)!;\n this.labelEl_ = this.root_.querySelector(LABEL_SELECTOR)!;\n this.actionEl_ = this.root_.querySelector(ACTION_SELECTOR)!;\n\n this.handleKeyDown_ = (evt) => this.foundation_.handleKeyDown(evt);\n this.handleSurfaceClick_ = (evt) => {\n const target = evt.target as Element;\n if (this.isActionButton_(target)) {\n this.foundation_.handleActionButtonClick(evt);\n } else if (this.isActionIcon_(target)) {\n this.foundation_.handleActionIconClick(evt);\n }\n };\n\n this.registerKeyDownHandler_(this.handleKeyDown_);\n this.registerSurfaceClickHandler_(this.handleSurfaceClick_);\n }\n\n destroy() {\n super.destroy();\n this.deregisterKeyDownHandler_(this.handleKeyDown_);\n this.deregisterSurfaceClickHandler_(this.handleSurfaceClick_);\n }\n\n open() {\n this.foundation_.open();\n }\n\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n close(reason = '') {\n this.foundation_.close(reason);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSnackbarAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n announce: () => this.announce_(this.labelEl_),\n notifyClosed: (reason) => this.emit<MDCSnackbarCloseEventDetail>(CLOSED_EVENT, reason ? {reason} : {}),\n notifyClosing: (reason) => this.emit<MDCSnackbarCloseEventDetail>(CLOSING_EVENT, reason ? {reason} : {}),\n notifyOpened: () => this.emit(OPENED_EVENT, {}),\n notifyOpening: () => this.emit(OPENING_EVENT, {}),\n removeClass: (className) => this.root_.classList.remove(className),\n };\n return new MDCSnackbarFoundation(adapter);\n }\n\n get timeoutMs(): number {\n return this.foundation_.getTimeoutMs();\n }\n\n set timeoutMs(timeoutMs: number) {\n this.foundation_.setTimeoutMs(timeoutMs);\n }\n\n get closeOnEscape(): boolean {\n return this.foundation_.getCloseOnEscape();\n }\n\n set closeOnEscape(closeOnEscape: boolean) {\n this.foundation_.setCloseOnEscape(closeOnEscape);\n }\n\n get isOpen(): boolean {\n return this.foundation_.isOpen();\n }\n\n get labelText(): string {\n // This property only returns null if the node is a document, DOCTYPE, or notation.\n // On Element nodes, it always returns a string.\n return this.labelEl_.textContent!;\n }\n\n set labelText(labelText: string) {\n this.labelEl_.textContent = labelText;\n }\n\n get actionButtonText(): string {\n return this.actionEl_.textContent!;\n }\n\n set actionButtonText(actionButtonText: string) {\n this.actionEl_.textContent = actionButtonText;\n }\n\n private registerKeyDownHandler_(handler: SpecificEventListener<'keydown'>) {\n this.listen('keydown', handler);\n }\n\n private deregisterKeyDownHandler_(handler: SpecificEventListener<'keydown'>) {\n this.unlisten('keydown', handler);\n }\n\n private registerSurfaceClickHandler_(handler: SpecificEventListener<'click'>) {\n this.surfaceEl_.addEventListener('click', handler as EventListener);\n }\n\n private deregisterSurfaceClickHandler_(handler: SpecificEventListener<'click'>) {\n this.surfaceEl_.removeEventListener('click', handler as EventListener);\n }\n\n private isActionButton_(target: Element): boolean {\n return Boolean(closest(target, ACTION_SELECTOR));\n }\n\n private isActionIcon_(target: Element): boolean {\n return Boolean(closest(target, DISMISS_SELECTOR));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-snackbar/component.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-switch/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {EventType} from '@material/base/types';\nimport {matches} from '@material/dom/ponyfill';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {MDCSwitchAdapter} from './adapter';\nimport {MDCSwitchFoundation} from './foundation';\n\nexport class MDCSwitch extends MDCComponent<MDCSwitchFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: HTMLElement) {\n return new MDCSwitch(root);\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: Element; // assigned in MDCComponent constructor\n\n private readonly ripple_ = this.createRipple_();\n\n // Initialized in `initialSyncWithDOM`.\n private changeHandler_!: EventListener;\n\n destroy() {\n super.destroy();\n this.ripple_.destroy();\n this.nativeControl_.removeEventListener('change', this.changeHandler_);\n }\n\n initialSyncWithDOM() {\n this.changeHandler_ = (...args) => this.foundation_.handleChange(...args);\n this.nativeControl_.addEventListener('change', this.changeHandler_);\n\n // Sometimes the checked state of the input element is saved in the history.\n // The switch styling should match the checked state of the input element.\n // Do an initial sync between the native control and the foundation.\n this.checked = this.checked;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSwitchAdapter = {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n setNativeControlChecked: (checked) => this.nativeControl_.checked = checked,\n setNativeControlDisabled: (disabled) => this.nativeControl_.disabled = disabled,\n };\n return new MDCSwitchFoundation(adapter);\n }\n\n get ripple() {\n return this.ripple_;\n }\n\n get checked() {\n return this.nativeControl_.checked;\n }\n\n set checked(checked) {\n this.foundation_.setChecked(checked);\n }\n\n get disabled() {\n return this.nativeControl_.disabled;\n }\n\n set disabled(disabled) {\n this.foundation_.setDisabled(disabled);\n }\n\n private createRipple_(): MDCRipple {\n const {RIPPLE_SURFACE_SELECTOR} = MDCSwitchFoundation.strings;\n const rippleSurface = this.root_.querySelector(RIPPLE_SURFACE_SELECTOR) as HTMLElement;\n\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n addClass: (className: string) => rippleSurface.classList.add(className),\n computeBoundingRect: () => rippleSurface.getBoundingClientRect(),\n deregisterInteractionHandler: (evtType: EventType, handler: EventListener) => {\n this.nativeControl_.removeEventListener(evtType, handler);\n },\n isSurfaceActive: () => matches(this.nativeControl_, ':active'),\n isUnbounded: () => true,\n registerInteractionHandler: (evtType: EventType, handler: EventListener) => {\n this.nativeControl_.addEventListener(evtType, handler);\n },\n removeClass: (className: string) => rippleSurface.classList.remove(className),\n updateCssVariable: (varName: string, value: string) => {\n rippleSurface.style.setProperty(varName, value);\n },\n };\n return new MDCRipple(this.root_, new MDCRippleFoundation(adapter));\n }\n\n private get nativeControl_() {\n const {NATIVE_CONTROL_SELECTOR} = MDCSwitchFoundation.strings;\n return this.root_.querySelector(NATIVE_CONTROL_SELECTOR) as HTMLInputElement;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-switch/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/** CSS classes used by the switch. */\nconst cssClasses = {\n /** Class used for a switch that is in the \"checked\" (on) position. */\n CHECKED: 'mdc-switch--checked',\n /** Class used for a switch that is disabled. */\n DISABLED: 'mdc-switch--disabled',\n};\n\n/** String constants used by the switch. */\nconst strings = {\n /** A CSS selector used to locate the native HTML control for the switch. */\n NATIVE_CONTROL_SELECTOR: '.mdc-switch__native-control',\n /** A CSS selector used to locate the ripple surface element for the switch. */\n RIPPLE_SURFACE_SELECTOR: '.mdc-switch__thumb-underlay',\n};\n\nexport {cssClasses, strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-switch/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-bar/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {CustomEventListener, SpecificEventListener} from '@material/base/types';\nimport {MDCTabScroller, MDCTabScrollerFactory} from '@material/tab-scroller/component';\nimport {MDCTab, MDCTabFactory} from '@material/tab/component';\nimport {MDCTabFoundation} from '@material/tab/foundation';\nimport {MDCTabInteractionEvent} from '@material/tab/types';\nimport {MDCTabBarAdapter} from './adapter';\nimport {MDCTabBarFoundation} from './foundation';\nimport {MDCTabBarActivatedEventDetail} from './types';\n\nconst {strings} = MDCTabBarFoundation;\n\nlet tabIdCounter = 0;\n\nexport class MDCTabBar extends MDCComponent<MDCTabBarFoundation> {\n static attachTo(root: Element): MDCTabBar {\n return new MDCTabBar(root);\n }\n\n private tabList_!: MDCTab[]; // assigned in initialize()\n private tabScroller_!: MDCTabScroller | null; // assigned in initialize()\n private handleTabInteraction_!: CustomEventListener<MDCTabInteractionEvent>; // assigned in initialSyncWithDOM()\n private handleKeyDown_!: SpecificEventListener<'keydown'>; // assigned in initialSyncWithDOM()\n\n set focusOnActivate(focusOnActivate: boolean) {\n this.tabList_.forEach((tab) => tab.focusOnActivate = focusOnActivate);\n }\n\n set useAutomaticActivation(useAutomaticActivation: boolean) {\n this.foundation_.setUseAutomaticActivation(useAutomaticActivation);\n }\n\n initialize(\n tabFactory: MDCTabFactory = (el) => new MDCTab(el),\n tabScrollerFactory: MDCTabScrollerFactory = (el) => new MDCTabScroller(el),\n ) {\n this.tabList_ = this.instantiateTabs_(tabFactory);\n this.tabScroller_ = this.instantiateTabScroller_(tabScrollerFactory);\n }\n\n initialSyncWithDOM() {\n this.handleTabInteraction_ = (evt) => this.foundation_.handleTabInteraction(evt);\n this.handleKeyDown_ = (evt) => this.foundation_.handleKeyDown(evt);\n\n this.listen(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction_);\n this.listen('keydown', this.handleKeyDown_);\n\n for (let i = 0; i < this.tabList_.length; i++) {\n if (this.tabList_[i].active) {\n this.scrollIntoView(i);\n break;\n }\n }\n }\n\n destroy() {\n super.destroy();\n this.unlisten(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction_);\n this.unlisten('keydown', this.handleKeyDown_);\n this.tabList_.forEach((tab) => tab.destroy());\n\n if (this.tabScroller_) {\n this.tabScroller_.destroy();\n }\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTabBarAdapter = {\n scrollTo: (scrollX) => this.tabScroller_!.scrollTo(scrollX),\n incrementScroll: (scrollXIncrement) => this.tabScroller_!.incrementScroll(scrollXIncrement),\n getScrollPosition: () => this.tabScroller_!.getScrollPosition(),\n getScrollContentWidth: () => this.tabScroller_!.getScrollContentWidth(),\n getOffsetWidth: () => (this.root_ as HTMLElement).offsetWidth,\n isRTL: () => window.getComputedStyle(this.root_).getPropertyValue('direction') === 'rtl',\n setActiveTab: (index) => this.foundation_.activateTab(index),\n activateTabAtIndex: (index, clientRect) => this.tabList_[index].activate(clientRect),\n deactivateTabAtIndex: (index) => this.tabList_[index].deactivate(),\n focusTabAtIndex: (index) => this.tabList_[index].focus(),\n getTabIndicatorClientRectAtIndex: (index) => this.tabList_[index].computeIndicatorClientRect(),\n getTabDimensionsAtIndex: (index) => this.tabList_[index].computeDimensions(),\n getPreviousActiveTabIndex: () => {\n for (let i = 0; i < this.tabList_.length; i++) {\n if (this.tabList_[i].active) {\n return i;\n }\n }\n return -1;\n },\n getFocusedTabIndex: () => {\n const tabElements = this.getTabElements_();\n const activeElement = document.activeElement!;\n return tabElements.indexOf(activeElement);\n },\n getIndexOfTabById: (id) => {\n for (let i = 0; i < this.tabList_.length; i++) {\n if (this.tabList_[i].id === id) {\n return i;\n }\n }\n return -1;\n },\n getTabListLength: () => this.tabList_.length,\n notifyTabActivated: (index) =>\n this.emit<MDCTabBarActivatedEventDetail>(strings.TAB_ACTIVATED_EVENT, {index}, true),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTabBarFoundation(adapter);\n }\n\n /**\n * Activates the tab at the given index\n * @param index The index of the tab\n */\n activateTab(index: number) {\n this.foundation_.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view\n * @param index THe index of the tab\n */\n scrollIntoView(index: number) {\n this.foundation_.scrollIntoView(index);\n }\n\n /**\n * Returns all the tab elements in a nice clean array\n */\n private getTabElements_(): Element[] {\n return [].slice.call(this.root_.querySelectorAll(strings.TAB_SELECTOR));\n }\n\n /**\n * Instantiates tab components on all child tab elements\n */\n private instantiateTabs_(tabFactory: MDCTabFactory) {\n return this.getTabElements_().map((el) => {\n el.id = el.id || `mdc-tab-${++tabIdCounter}`;\n return tabFactory(el);\n });\n }\n\n /**\n * Instantiates tab scroller component on the child tab scroller element\n */\n private instantiateTabScroller_(tabScrollerFactory: MDCTabScrollerFactory): MDCTabScroller | null {\n const tabScrollerElement = this.root_.querySelector(strings.TAB_SCROLLER_SELECTOR);\n if (tabScrollerElement) {\n return tabScrollerFactory(tabScrollerElement);\n }\n return null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-bar/component.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabScrollerRTL} from './rtl-scroller';\nimport {MDCTabScrollerAnimation, MDCTabScrollerHorizontalEdges} from './types';\n\nexport class MDCTabScrollerRTLDefault extends MDCTabScrollerRTL {\n getScrollPositionRTL(): number {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const {right} = this.calculateScrollEdges_();\n // Scroll values on most browsers are ints instead of floats so we round\n return Math.round(right - currentScrollLeft);\n }\n\n scrollToRTL(scrollX: number): MDCTabScrollerAnimation {\n const edges = this.calculateScrollEdges_();\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(edges.right - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft,\n };\n }\n\n incrementScrollRTL(scrollX: number): MDCTabScrollerAnimation {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft,\n };\n }\n\n getAnimatingScrollPosition(scrollX: number): number {\n return scrollX;\n }\n\n private calculateScrollEdges_(): MDCTabScrollerHorizontalEdges {\n const contentWidth = this.adapter_.getScrollContentOffsetWidth();\n const rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: 0,\n right: contentWidth - rootWidth,\n };\n }\n\n private clampScrollValue_(scrollX: number): number {\n const edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.left, scrollX), edges.right);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLDefault;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/rtl-default-scroller.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabScrollerRTL} from './rtl-scroller';\nimport {MDCTabScrollerAnimation, MDCTabScrollerHorizontalEdges} from './types';\n\nexport class MDCTabScrollerRTLNegative extends MDCTabScrollerRTL {\n getScrollPositionRTL(translateX: number): number {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n return Math.round(translateX - currentScrollLeft);\n }\n\n scrollToRTL(scrollX: number): MDCTabScrollerAnimation {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(-scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft,\n };\n }\n\n incrementScrollRTL(scrollX: number): MDCTabScrollerAnimation {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: clampedScrollLeft - currentScrollLeft,\n };\n }\n\n getAnimatingScrollPosition(scrollX: number, translateX: number): number {\n return scrollX - translateX;\n }\n\n private calculateScrollEdges_(): MDCTabScrollerHorizontalEdges {\n const contentWidth = this.adapter_.getScrollContentOffsetWidth();\n const rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: rootWidth - contentWidth,\n right: 0,\n };\n }\n\n private clampScrollValue_(scrollX: number): number {\n const edges = this.calculateScrollEdges_();\n return Math.max(Math.min(edges.right, scrollX), edges.left);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLNegative;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/rtl-negative-scroller.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCTabScrollerRTL} from './rtl-scroller';\nimport {MDCTabScrollerAnimation, MDCTabScrollerHorizontalEdges} from './types';\n\nexport class MDCTabScrollerRTLReverse extends MDCTabScrollerRTL {\n getScrollPositionRTL(translateX: number): number {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n // Scroll values on most browsers are ints instead of floats so we round\n return Math.round(currentScrollLeft - translateX);\n }\n\n scrollToRTL(scrollX: number): MDCTabScrollerAnimation {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: currentScrollLeft - clampedScrollLeft,\n };\n }\n\n incrementScrollRTL(scrollX: number): MDCTabScrollerAnimation {\n const currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();\n const clampedScrollLeft = this.clampScrollValue_(currentScrollLeft + scrollX);\n return {\n finalScrollPosition: clampedScrollLeft,\n scrollDelta: currentScrollLeft - clampedScrollLeft,\n };\n }\n\n getAnimatingScrollPosition(scrollX: number, translateX: number): number {\n return scrollX + translateX;\n }\n\n private calculateScrollEdges_(): MDCTabScrollerHorizontalEdges {\n const contentWidth = this.adapter_.getScrollContentOffsetWidth();\n const rootWidth = this.adapter_.getScrollAreaOffsetWidth();\n return {\n left: contentWidth - rootWidth,\n right: 0,\n };\n }\n\n private clampScrollValue_(scrollX: number): number {\n const edges = this.calculateScrollEdges_();\n return Math.min(Math.max(edges.right, scrollX), edges.left);\n }\n}\n\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLReverse;\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/rtl-reverse-scroller.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ACTIVE: 'mdc-tab-indicator--active',\n FADE: 'mdc-tab-indicator--fade',\n NO_TRANSITION: 'mdc-tab-indicator--no-transition',\n};\n\nconst strings = {\n CONTENT_SELECTOR: '.mdc-tab-indicator__content',\n};\n\nexport {\n cssClasses,\n strings,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ACTIVE: 'mdc-tab--active',\n};\n\nconst strings = {\n ARIA_SELECTED: 'aria-selected',\n CONTENT_SELECTOR: '.mdc-tab__content',\n INTERACTED_EVENT: 'MDCTab:interacted',\n RIPPLE_SELECTOR: '.mdc-tab__ripple',\n TABINDEX: 'tabIndex',\n TAB_INDICATOR_SELECTOR: '.mdc-tab-indicator',\n};\n\nexport {\n cssClasses,\n strings,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab/constants.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space',\n TAB_ACTIVATED_EVENT: 'MDCTabBar:activated',\n TAB_SCROLLER_SELECTOR: '.mdc-tab-scroller',\n TAB_SELECTOR: '.mdc-tab',\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32,\n};\n\nexport {numbers, strings};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-bar/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './fading-foundation';\nexport * from './sliding-foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-indicator/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport * as util from './util';\n\nexport {util};\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab-scroller/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-tab/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\nexport * from './character-counter/index';\nexport * from './helper-text/index';\nexport * from './icon/index';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/index.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport * as ponyfill from '@material/dom/ponyfill';\nimport {MDCFloatingLabel, MDCFloatingLabelFactory} from '@material/floating-label/component';\nimport {MDCLineRipple, MDCLineRippleFactory} from '@material/line-ripple/component';\nimport {MDCNotchedOutline, MDCNotchedOutlineFactory} from '@material/notched-outline/component';\nimport {MDCRippleAdapter} from '@material/ripple/adapter';\nimport {MDCRipple, MDCRippleFactory} from '@material/ripple/component';\nimport {MDCRippleFoundation} from '@material/ripple/foundation';\nimport {MDCRippleCapableSurface} from '@material/ripple/types';\nimport {\n MDCTextFieldAdapter,\n MDCTextFieldInputAdapter,\n MDCTextFieldLabelAdapter,\n MDCTextFieldLineRippleAdapter,\n MDCTextFieldOutlineAdapter,\n MDCTextFieldRootAdapter,\n} from './adapter';\nimport {\n MDCTextFieldCharacterCounter,\n MDCTextFieldCharacterCounterFactory,\n} from './character-counter/component';\nimport {MDCTextFieldCharacterCounterFoundation} from './character-counter/foundation';\nimport {cssClasses, strings} from './constants';\nimport {MDCTextFieldFoundation} from './foundation';\nimport {\n MDCTextFieldHelperText,\n MDCTextFieldHelperTextFactory,\n} from './helper-text/component';\nimport {MDCTextFieldHelperTextFoundation} from './helper-text/foundation';\nimport {MDCTextFieldIcon, MDCTextFieldIconFactory} from './icon/component';\nimport {MDCTextFieldFoundationMap} from './types';\n\nexport class MDCTextField extends MDCComponent<MDCTextFieldFoundation> implements MDCRippleCapableSurface {\n static attachTo(root: Element): MDCTextField {\n return new MDCTextField(root);\n }\n\n // Public visibility for this property is required by MDCRippleCapableSurface.\n root_!: HTMLElement; // assigned in MDCComponent constructor\n\n ripple!: MDCRipple | null; // assigned in initialize()\n\n // The only required sub-element.\n private input_!: HTMLInputElement; // assigned in initialize()\n\n // Optional sub-elements.\n private characterCounter_!: MDCTextFieldCharacterCounter | null; // assigned in initialize()\n private helperText_!: MDCTextFieldHelperText | null; // assigned in initialize()\n private label_!: MDCFloatingLabel | null; // assigned in initialize()\n private leadingIcon_!: MDCTextFieldIcon | null; // assigned in initialize()\n private lineRipple_!: MDCLineRipple | null; // assigned in initialize()\n private outline_!: MDCNotchedOutline | null; // assigned in initialize()\n private trailingIcon_!: MDCTextFieldIcon | null; // assigned in initialize()\n\n initialize(\n rippleFactory: MDCRippleFactory = (el, foundation) => new MDCRipple(el, foundation),\n lineRippleFactory: MDCLineRippleFactory = (el) => new MDCLineRipple(el),\n helperTextFactory: MDCTextFieldHelperTextFactory = (el) => new MDCTextFieldHelperText(el),\n characterCounterFactory: MDCTextFieldCharacterCounterFactory = (el) => new MDCTextFieldCharacterCounter(el),\n iconFactory: MDCTextFieldIconFactory = (el) => new MDCTextFieldIcon(el),\n labelFactory: MDCFloatingLabelFactory = (el) => new MDCFloatingLabel(el),\n outlineFactory: MDCNotchedOutlineFactory = (el) => new MDCNotchedOutline(el),\n ) {\n this.input_ = this.root_.querySelector<HTMLInputElement>(strings.INPUT_SELECTOR)!;\n\n const labelElement = this.root_.querySelector(strings.LABEL_SELECTOR);\n this.label_ = labelElement ? labelFactory(labelElement) : null;\n\n const lineRippleElement = this.root_.querySelector(strings.LINE_RIPPLE_SELECTOR);\n this.lineRipple_ = lineRippleElement ? lineRippleFactory(lineRippleElement) : null;\n\n const outlineElement = this.root_.querySelector(strings.OUTLINE_SELECTOR);\n this.outline_ = outlineElement ? outlineFactory(outlineElement) : null;\n\n // Helper text\n const helperTextStrings = MDCTextFieldHelperTextFoundation.strings;\n const nextElementSibling = this.root_.nextElementSibling;\n const hasHelperLine = (nextElementSibling && nextElementSibling.classList.contains(cssClasses.HELPER_LINE));\n const helperTextEl =\n hasHelperLine && nextElementSibling && nextElementSibling.querySelector(helperTextStrings.ROOT_SELECTOR);\n this.helperText_ = helperTextEl ? helperTextFactory(helperTextEl) : null;\n\n // Character counter\n const characterCounterStrings = MDCTextFieldCharacterCounterFoundation.strings;\n let characterCounterEl = this.root_.querySelector(characterCounterStrings.ROOT_SELECTOR);\n // If character counter is not found in root element search in sibling element.\n if (!characterCounterEl && hasHelperLine && nextElementSibling) {\n characterCounterEl = nextElementSibling.querySelector(characterCounterStrings.ROOT_SELECTOR);\n }\n this.characterCounter_ = characterCounterEl ? characterCounterFactory(characterCounterEl) : null;\n\n this.leadingIcon_ = null;\n this.trailingIcon_ = null;\n const iconElements = this.root_.querySelectorAll(strings.ICON_SELECTOR);\n if (iconElements.length > 0) {\n if (iconElements.length > 1) { // Has both icons.\n this.leadingIcon_ = iconFactory(iconElements[0]);\n this.trailingIcon_ = iconFactory(iconElements[1]);\n } else {\n if (this.root_.classList.contains(cssClasses.WITH_LEADING_ICON)) {\n this.leadingIcon_ = iconFactory(iconElements[0]);\n } else {\n this.trailingIcon_ = iconFactory(iconElements[0]);\n }\n }\n }\n\n this.ripple = this.createRipple_(rippleFactory);\n }\n\n destroy() {\n if (this.ripple) {\n this.ripple.destroy();\n }\n if (this.lineRipple_) {\n this.lineRipple_.destroy();\n }\n if (this.helperText_) {\n this.helperText_.destroy();\n }\n if (this.characterCounter_) {\n this.characterCounter_.destroy();\n }\n if (this.leadingIcon_) {\n this.leadingIcon_.destroy();\n }\n if (this.trailingIcon_) {\n this.trailingIcon_.destroy();\n }\n if (this.label_) {\n this.label_.destroy();\n }\n if (this.outline_) {\n this.outline_.destroy();\n }\n super.destroy();\n }\n\n /**\n * Initializes the Text Field's internal state based on the environment's\n * state.\n */\n initialSyncWithDOM() {\n this.disabled = this.input_.disabled;\n }\n\n get value(): string {\n return this.foundation_.getValue();\n }\n\n /**\n * @param value The value to set on the input.\n */\n set value(value: string) {\n this.foundation_.setValue(value);\n }\n\n get disabled(): boolean {\n return this.foundation_.isDisabled();\n }\n\n /**\n * @param disabled Sets the Text Field disabled or enabled.\n */\n set disabled(disabled: boolean) {\n this.foundation_.setDisabled(disabled);\n }\n\n get valid(): boolean {\n return this.foundation_.isValid();\n }\n\n /**\n * @param valid Sets the Text Field valid or invalid.\n */\n set valid(valid: boolean) {\n this.foundation_.setValid(valid);\n }\n\n get required(): boolean {\n return this.input_.required;\n }\n\n /**\n * @param required Sets the Text Field to required.\n */\n set required(required: boolean) {\n this.input_.required = required;\n }\n\n get pattern(): string {\n return this.input_.pattern;\n }\n\n /**\n * @param pattern Sets the input element's validation pattern.\n */\n set pattern(pattern: string) {\n this.input_.pattern = pattern;\n }\n\n get minLength(): number {\n return this.input_.minLength;\n }\n\n /**\n * @param minLength Sets the input element's minLength.\n */\n set minLength(minLength: number) {\n this.input_.minLength = minLength;\n }\n\n get maxLength(): number {\n return this.input_.maxLength;\n }\n\n /**\n * @param maxLength Sets the input element's maxLength.\n */\n set maxLength(maxLength: number) {\n // Chrome throws exception if maxLength is set to a value less than zero\n if (maxLength < 0) {\n this.input_.removeAttribute('maxLength');\n } else {\n this.input_.maxLength = maxLength;\n }\n }\n\n get min(): string {\n return this.input_.min;\n }\n\n /**\n * @param min Sets the input element's min.\n */\n set min(min: string) {\n this.input_.min = min;\n }\n\n get max(): string {\n return this.input_.max;\n }\n\n /**\n * @param max Sets the input element's max.\n */\n set max(max: string) {\n this.input_.max = max;\n }\n\n get step(): string {\n return this.input_.step;\n }\n\n /**\n * @param step Sets the input element's step.\n */\n set step(step: string) {\n this.input_.step = step;\n }\n\n /**\n * Sets the helper text element content.\n */\n set helperTextContent(content: string) {\n this.foundation_.setHelperTextContent(content);\n }\n\n /**\n * Sets the aria label of the leading icon.\n */\n set leadingIconAriaLabel(label: string) {\n this.foundation_.setLeadingIconAriaLabel(label);\n }\n\n /**\n * Sets the text content of the leading icon.\n */\n set leadingIconContent(content: string) {\n this.foundation_.setLeadingIconContent(content);\n }\n\n /**\n * Sets the aria label of the trailing icon.\n */\n set trailingIconAriaLabel(label: string) {\n this.foundation_.setTrailingIconAriaLabel(label);\n }\n\n /**\n * Sets the text content of the trailing icon.\n */\n set trailingIconContent(content: string) {\n this.foundation_.setTrailingIconContent(content);\n }\n\n /**\n * Enables or disables the use of native validation. Use this for custom validation.\n * @param useNativeValidation Set this to false to ignore native input validation.\n */\n set useNativeValidation(useNativeValidation: boolean) {\n this.foundation_.setUseNativeValidation(useNativeValidation);\n }\n\n /**\n * Focuses the input element.\n */\n focus() {\n this.input_.focus();\n }\n\n /**\n * Recomputes the outline SVG path for the outline element.\n */\n layout() {\n const openNotch = this.foundation_.shouldFloat;\n this.foundation_.notchOutline(openNotch);\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTextFieldAdapter = {\n ...this.getRootAdapterMethods_(),\n ...this.getInputAdapterMethods_(),\n ...this.getLabelAdapterMethods_(),\n ...this.getLineRippleAdapterMethods_(),\n ...this.getOutlineAdapterMethods_(),\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTextFieldFoundation(adapter, this.getFoundationMap_());\n }\n\n private getRootAdapterMethods_(): MDCTextFieldRootAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n hasClass: (className) => this.root_.classList.contains(className),\n registerTextFieldInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterTextFieldInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n registerValidationAttributeChangeHandler: (handler) => {\n const getAttributesList = (mutationsList: MutationRecord[]): string[] => {\n return mutationsList\n .map((mutation) => mutation.attributeName)\n .filter((attributeName) => attributeName) as string[];\n };\n const observer = new MutationObserver((mutationsList) => handler(getAttributesList(mutationsList)));\n const config = {attributes: true};\n observer.observe(this.input_, config);\n return observer;\n },\n deregisterValidationAttributeChangeHandler: (observer) => observer.disconnect(),\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getInputAdapterMethods_(): MDCTextFieldInputAdapter {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n getNativeInput: () => this.input_,\n isFocused: () => document.activeElement === this.input_,\n registerInputInteractionHandler: (evtType, handler) => this.input_.addEventListener(evtType, handler),\n deregisterInputInteractionHandler: (evtType, handler) => this.input_.removeEventListener(evtType, handler),\n };\n // tslint:enable:object-literal-sort-keys\n }\n\n private getLabelAdapterMethods_(): MDCTextFieldLabelAdapter {\n return {\n floatLabel: (shouldFloat) => this.label_ && this.label_.float(shouldFloat),\n getLabelWidth: () => this.label_ ? this.label_.getWidth() : 0,\n hasLabel: () => Boolean(this.label_),\n shakeLabel: (shouldShake) => this.label_ && this.label_.shake(shouldShake),\n };\n }\n\n private getLineRippleAdapterMethods_(): MDCTextFieldLineRippleAdapter {\n return {\n activateLineRipple: () => {\n if (this.lineRipple_) {\n this.lineRipple_.activate();\n }\n },\n deactivateLineRipple: () => {\n if (this.lineRipple_) {\n this.lineRipple_.deactivate();\n }\n },\n setLineRippleTransformOrigin: (normalizedX) => {\n if (this.lineRipple_) {\n this.lineRipple_.setRippleCenter(normalizedX);\n }\n },\n };\n }\n\n private getOutlineAdapterMethods_(): MDCTextFieldOutlineAdapter {\n return {\n closeOutline: () => this.outline_ && this.outline_.closeNotch(),\n hasOutline: () => Boolean(this.outline_),\n notchOutline: (labelWidth) => this.outline_ && this.outline_.notch(labelWidth),\n };\n }\n\n /**\n * @return A map of all subcomponents to subfoundations.\n */\n private getFoundationMap_(): Partial<MDCTextFieldFoundationMap> {\n return {\n characterCounter: this.characterCounter_ ? this.characterCounter_.foundation : undefined,\n helperText: this.helperText_ ? this.helperText_.foundation : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined,\n trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundation : undefined,\n };\n }\n\n private createRipple_(rippleFactory: MDCRippleFactory): MDCRipple | null {\n const isTextArea = this.root_.classList.contains(cssClasses.TEXTAREA);\n const isOutlined = this.root_.classList.contains(cssClasses.OUTLINED);\n\n if (isTextArea || isOutlined) {\n return null;\n }\n\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCRippleAdapter = {\n ...MDCRipple.createAdapter(this),\n isSurfaceActive: () => ponyfill.matches(this.input_, ':active'),\n registerInteractionHandler: (evtType, handler) => this.input_.addEventListener(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.input_.removeEventListener(evtType, handler),\n };\n // tslint:enable:object-literal-sort-keys\n return rippleFactory(this.root_, new MDCRippleFoundation(adapter));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/component.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n ROOT: 'mdc-text-field-character-counter',\n};\n\nconst strings = {\n ROOT_SELECTOR: `.${cssClasses.ROOT}`,\n};\n\nexport {strings, cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/character-counter/constants.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst cssClasses = {\n HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent',\n HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg',\n ROOT: 'mdc-text-field-helper-text',\n};\n\nconst strings = {\n ARIA_HIDDEN: 'aria-hidden',\n ROLE: 'role',\n ROOT_SELECTOR: `.${cssClasses.ROOT}`,\n};\n\nexport {strings, cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/helper-text/constants.ts","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nconst strings = {\n ICON_EVENT: 'MDCTextField:icon',\n ICON_ROLE: 'button',\n};\n\nconst cssClasses = {\n ROOT: 'mdc-text-field__icon',\n};\n\nexport {strings, cssClasses};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/icon/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/character-counter/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/helper-text/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-textfield/icon/index.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-toolbar/index.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCRipple} from '@material/ripple/component';\nimport {MDCToolbarAdapter} from './adapter';\nimport {MDCToolbarFoundation} from './foundation';\nimport {MDCToolbarEventDetail} from './types';\n\nconst {strings} = MDCToolbarFoundation;\n\nexport class MDCToolbar extends MDCComponent<MDCToolbarFoundation> {\n static attachTo(root: Element) {\n return new MDCToolbar(root);\n }\n\n protected root_!: HTMLElement; // assigned in MDCComponent constructor\n\n private ripples_!: MDCRipple[]; // assigned in initialize()\n private firstRowElement_!: HTMLElement; // assigned in initialize()\n private fixedAdjustElement_!: HTMLElement | null; // assigned in initialize()\n private titleElement_!: HTMLElement | null; // assigned in initialize()\n\n initialize() {\n this.ripples_ = [];\n this.fixedAdjustElement_ = null;\n this.titleElement_ = this.root_.querySelector<HTMLElement>(strings.TITLE_SELECTOR);\n const firstRowElement = this.root_.querySelector<HTMLElement>(strings.FIRST_ROW_SELECTOR);\n if (!firstRowElement) {\n throw new Error(`MDCToolbar: Required sub-element '${strings.FIRST_ROW_SELECTOR}' is missing`);\n }\n this.firstRowElement_ = firstRowElement;\n\n [].forEach.call(this.root_.querySelectorAll(strings.ICON_SELECTOR), (icon: HTMLElement) => {\n const ripple = MDCRipple.attachTo(icon);\n ripple.unbounded = true;\n this.ripples_.push(ripple);\n });\n }\n\n destroy() {\n this.ripples_.forEach((ripple) => {\n ripple.destroy();\n });\n super.destroy();\n }\n\n set fixedAdjustElement(element: HTMLElement | null) {\n this.fixedAdjustElement_ = element;\n this.foundation_.updateAdjustElementStyles();\n }\n\n get fixedAdjustElement(): HTMLElement | null {\n return this.fixedAdjustElement_;\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCToolbarAdapter = {\n hasClass: (className) => this.root_.classList.contains(className),\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n registerScrollHandler: (handler) => window.addEventListener('scroll', handler),\n deregisterScrollHandler: (handler) => window.removeEventListener('scroll', handler),\n registerResizeHandler: (handler) => window.addEventListener('resize', handler),\n deregisterResizeHandler: (handler) => window.removeEventListener('resize', handler),\n getViewportWidth: () => window.innerWidth,\n getViewportScrollY: () => window.pageYOffset,\n getOffsetHeight: () => this.root_.offsetHeight,\n getFirstRowElementOffsetHeight: () => this.firstRowElement_.offsetHeight,\n notifyChange: (evtData) => this.emit<MDCToolbarEventDetail>(strings.CHANGE_EVENT, evtData),\n setStyle: (property, value) => this.root_.style.setProperty(property, value),\n setStyleForTitleElement: (property, value) => {\n if (this.titleElement_) {\n this.titleElement_.style.setProperty(property, value);\n }\n },\n setStyleForFlexibleRowElement: (property, value) => this.firstRowElement_.style.setProperty(property, value),\n setStyleForFixedAdjustElement: (property, value) => {\n if (this.fixedAdjustElement) {\n this.fixedAdjustElement.style.setProperty(property, value);\n }\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCToolbarFoundation(adapter);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-toolbar/component.ts","/**\n * @license\n * Copyright 2017 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport const cssClasses = {\n FIXED: 'mdc-toolbar--fixed',\n FIXED_AT_LAST_ROW: 'mdc-toolbar--fixed-at-last-row',\n FIXED_LASTROW: 'mdc-toolbar--fixed-lastrow-only',\n FLEXIBLE_DEFAULT_BEHAVIOR: 'mdc-toolbar--flexible-default-behavior',\n FLEXIBLE_MAX: 'mdc-toolbar--flexible-space-maximized',\n FLEXIBLE_MIN: 'mdc-toolbar--flexible-space-minimized',\n TOOLBAR_ROW_FLEXIBLE: 'mdc-toolbar--flexible',\n};\n\nexport const strings = {\n CHANGE_EVENT: 'MDCToolbar:change',\n FIRST_ROW_SELECTOR: '.mdc-toolbar__row:first-child',\n ICON_SELECTOR: '.mdc-toolbar__icon',\n TITLE_SELECTOR: '.mdc-toolbar__title',\n};\n\nexport const numbers = {\n MAX_TITLE_SIZE: 2.125,\n MIN_TITLE_SIZE: 1.25,\n TOOLBAR_MOBILE_BREAKPOINT: 600,\n TOOLBAR_ROW_HEIGHT: 64,\n TOOLBAR_ROW_MOBILE_HEIGHT: 56,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-toolbar/constants.ts","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport * from './adapter';\nexport * from './component';\nexport * from './foundation';\nexport * from './fixed/foundation';\nexport * from './short/foundation';\nexport * from './standard/foundation';\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/index.ts","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {MDCComponent} from '@material/base/component';\nimport {MDCRipple, MDCRippleFactory} from '@material/ripple/component';\nimport {MDCTopAppBarAdapter} from './adapter';\nimport {cssClasses, strings} from './constants';\nimport {MDCFixedTopAppBarFoundation} from './fixed/foundation';\nimport {MDCTopAppBarBaseFoundation} from './foundation';\nimport {MDCShortTopAppBarFoundation} from './short/foundation';\nimport {MDCTopAppBarFoundation} from './standard/foundation';\n\nexport class MDCTopAppBar extends MDCComponent<MDCTopAppBarBaseFoundation> {\n static attachTo(root: Element): MDCTopAppBar {\n return new MDCTopAppBar(root);\n }\n\n private navIcon_!: Element | null;\n private iconRipples_!: MDCRipple[];\n private scrollTarget_!: EventTarget;\n\n initialize(rippleFactory: MDCRippleFactory = (el) => MDCRipple.attachTo(el)) {\n this.navIcon_ = this.root_.querySelector(strings.NAVIGATION_ICON_SELECTOR);\n\n // Get all icons in the toolbar and instantiate the ripples\n const icons: Element[] = [].slice.call(this.root_.querySelectorAll(strings.ACTION_ITEM_SELECTOR));\n if (this.navIcon_) {\n icons.push(this.navIcon_);\n }\n\n this.iconRipples_ = icons.map((icon) => {\n const ripple = rippleFactory(icon);\n ripple.unbounded = true;\n return ripple;\n });\n\n this.scrollTarget_ = window;\n }\n\n destroy() {\n this.iconRipples_.forEach((iconRipple) => iconRipple.destroy());\n super.destroy();\n }\n\n setScrollTarget(target: EventTarget) {\n // Remove scroll handler from the previous scroll target\n this.foundation_.destroyScrollHandler();\n\n this.scrollTarget_ = target;\n\n // Initialize scroll handler on the new scroll target\n this.foundation_.initScrollHandler();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n const adapter: MDCTopAppBarAdapter = {\n hasClass: (className) => this.root_.classList.contains(className),\n addClass: (className) => this.root_.classList.add(className),\n removeClass: (className) => this.root_.classList.remove(className),\n setStyle: (property, value) => (this.root_ as HTMLElement).style.setProperty(property, value),\n getTopAppBarHeight: () => this.root_.clientHeight,\n registerNavigationIconInteractionHandler: (evtType, handler) => {\n if (this.navIcon_) {\n this.navIcon_.addEventListener(evtType, handler);\n }\n },\n deregisterNavigationIconInteractionHandler: (evtType, handler) => {\n if (this.navIcon_) {\n this.navIcon_.removeEventListener(evtType, handler);\n }\n },\n notifyNavigationIconClicked: () => this.emit(strings.NAVIGATION_EVENT, {}),\n registerScrollHandler: (handler) => this.scrollTarget_.addEventListener('scroll', handler as EventListener),\n deregisterScrollHandler: (handler) => this.scrollTarget_.removeEventListener('scroll', handler as EventListener),\n registerResizeHandler: (handler) => window.addEventListener('resize', handler),\n deregisterResizeHandler: (handler) => window.removeEventListener('resize', handler),\n getViewportScrollY: () => {\n const win = this.scrollTarget_ as Window;\n const el = this.scrollTarget_ as Element;\n return win.pageYOffset !== undefined ? win.pageYOffset : el.scrollTop;\n },\n getTotalActionItems: () => this.root_.querySelectorAll(strings.ACTION_ITEM_SELECTOR).length,\n };\n // tslint:enable:object-literal-sort-keys\n\n let foundation: MDCTopAppBarBaseFoundation;\n if (this.root_.classList.contains(cssClasses.SHORT_CLASS)) {\n foundation = new MDCShortTopAppBarFoundation(adapter);\n } else if (this.root_.classList.contains(cssClasses.FIXED_CLASS)) {\n foundation = new MDCFixedTopAppBarFoundation(adapter);\n } else {\n foundation = new MDCTopAppBarFoundation(adapter);\n }\n\n return foundation;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./packages/mdc-top-app-bar/component.ts"],"sourceRoot":""}
|