@limetech/lime-elements 38.33.5 → 38.33.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/cjs/limel-badge.cjs.entry.js +1 -1
- package/dist/cjs/limel-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
- package/dist/cjs/limel-tab-bar.cjs.entry.js.map +1 -1
- package/dist/collection/components/badge/badge.css +1 -0
- package/dist/collection/components/tab-bar/tab-bar.css +5 -3
- package/dist/esm/limel-badge.entry.js +1 -1
- package/dist/esm/limel-badge.entry.js.map +1 -1
- package/dist/esm/limel-tab-bar.entry.js +1 -1
- package/dist/esm/limel-tab-bar.entry.js.map +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-18256ad9.entry.js +2 -0
- package/dist/lime-elements/p-18256ad9.entry.js.map +1 -0
- package/dist/lime-elements/{p-d80e776d.entry.js → p-407a0e61.entry.js} +2 -2
- package/dist/lime-elements/{p-d80e776d.entry.js.map → p-407a0e61.entry.js.map} +1 -1
- package/package.json +1 -1
- package/dist/lime-elements/p-18a3c28a.entry.js +0 -2
- package/dist/lime-elements/p-18a3c28a.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"limel-tab-bar.entry.cjs.js","mappings":"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","names":["arrayIncludes","arrayMap","baseUnary","arrayIncludesWith","cacheHas","SetCache","baseRest","isArrayLikeObject","baseFlatten","cssClasses","strings","__extends","__assign","__read","MDCFoundation","applyPassive","matches","util.computeHorizontalScrollbarHeight","MDCComponent","MDCRipple","MDCRippleFoundation","__values","h","isEqual","getIconName","getIconColor"],"sources":["./node_modules/lodash-es/_baseDifference.js","./node_modules/lodash-es/difference.js","./node_modules/@material/tab-scroller/constants.js","./node_modules/@material/tab-scroller/rtl-scroller.js","./node_modules/@material/tab-scroller/rtl-default-scroller.js","./node_modules/@material/tab-scroller/rtl-negative-scroller.js","./node_modules/@material/tab-scroller/rtl-reverse-scroller.js","./node_modules/@material/tab-scroller/foundation.js","./node_modules/@material/tab-scroller/util.js","./node_modules/@material/tab-scroller/component.js","./node_modules/@material/tab-indicator/constants.js","./node_modules/@material/tab-indicator/foundation.js","./node_modules/@material/tab-indicator/fading-foundation.js","./node_modules/@material/tab-indicator/sliding-foundation.js","./node_modules/@material/tab-indicator/component.js","./node_modules/@material/tab/constants.js","./node_modules/@material/tab/foundation.js","./node_modules/@material/tab/component.js","./node_modules/@material/tab-bar/constants.js","./node_modules/@material/tab-bar/foundation.js","./node_modules/@material/tab-bar/component.js","./src/components/tab-bar/tabs.ts","./src/components/tab-bar/tab-bar.scss?tag=limel-tab-bar&encapsulation=shadow","./src/components/tab-bar/tab-bar.tsx"],"sourcesContent":["import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\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 */\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};\nvar strings = {\n AREA_SELECTOR: '.mdc-tab-scroller__scroll-area',\n CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content',\n};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nvar MDCTabScrollerRTL = /** @class */ (function () {\n function MDCTabScrollerRTL(adapter) {\n this.adapter = adapter;\n }\n return MDCTabScrollerRTL;\n}());\nexport { MDCTabScrollerRTL };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTL;\n//# sourceMappingURL=rtl-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLDefault };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLDefault;\n//# sourceMappingURL=rtl-default-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLNegative };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLNegative;\n//# sourceMappingURL=rtl-negative-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLReverse };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLReverse;\n//# sourceMappingURL=rtl-reverse-scroller.js.map","/**\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 */\nimport { __assign, __extends, __read } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nimport { MDCTabScrollerRTLDefault } from './rtl-default-scroller';\nimport { MDCTabScrollerRTLNegative } from './rtl-negative-scroller';\nimport { MDCTabScrollerRTLReverse } from './rtl-reverse-scroller';\nvar MDCTabScrollerFoundation = /** @class */ (function (_super) {\n __extends(MDCTabScrollerFoundation, _super);\n function MDCTabScrollerFoundation(adapter) {\n var _this = _super.call(this, __assign(__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 () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n eventTargetMatchesSelector: function () { return false; },\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n addScrollAreaClass: function () { return undefined; },\n setScrollAreaStyleProperty: function () { return undefined; },\n setScrollContentStyleProperty: function () { return undefined; },\n getScrollContentStyleValue: function () { return ''; },\n setScrollAreaScrollLeft: function () { return undefined; },\n getScrollAreaScrollLeft: function () { return 0; },\n getScrollContentOffsetWidth: function () { return 0; },\n getScrollAreaOffsetWidth: function () { return 0; },\n computeScrollAreaClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n computeScrollContentClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n computeHorizontalScrollbarHeight: function () { return 0; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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 ||\n !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 using animation.\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 this.animate(this.getIncrementScrollOperation(scrollXIncrement));\n };\n /**\n * Increment the scroll value by the scrollXIncrement without animation.\n * @param scrollXIncrement The value by which to increment the scroll position\n */\n MDCTabScrollerFoundation.prototype.incrementScrollImmediate = function (scrollXIncrement) {\n // Early exit for non-operational increment values\n if (scrollXIncrement === 0) {\n return;\n }\n var operation = this.getIncrementScrollOperation(scrollXIncrement);\n if (operation.scrollDelta === 0) {\n return;\n }\n this.stopScrollAnimation();\n this.adapter.setScrollAreaScrollLeft(operation.finalScrollPosition);\n };\n /**\n * Scrolls to the given scrollX value\n */\n MDCTabScrollerFoundation.prototype.scrollTo = function (scrollX) {\n if (this.isRTL()) {\n this.scrollToImplRTL(scrollX);\n return;\n }\n this.scrollToImpl(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), a = _a[0], b = _a[1], c = _a[2], d = _a[3], tx = _a[4], 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.scrollToImpl = 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.scrollToImplRTL = function (scrollX) {\n var animation = this.getRTLScroller().scrollToRTL(scrollX);\n this.animate(animation);\n };\n /**\n * Internal method to compute the increment scroll operation values.\n * @param scrollX The desired scroll position increment\n * @return MDCTabScrollerAnimation with the sanitized values for performing the scroll operation.\n */\n MDCTabScrollerFoundation.prototype.getIncrementScrollOperation = function (scrollX) {\n if (this.isRTL()) {\n return this.getRTLScroller().incrementScrollRTL(scrollX);\n }\n var currentScrollX = this.getScrollPosition();\n var targetScrollX = scrollX + currentScrollX;\n var safeScrollX = this.clampScrollValue(targetScrollX);\n var scrollDelta = safeScrollX - currentScrollX;\n return {\n finalScrollPosition: safeScrollX,\n scrollDelta: scrollDelta,\n };\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 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 MDCTabScrollerRTLReverse(this.adapter);\n }\n return new MDCTabScrollerRTLDefault(this.adapter);\n };\n MDCTabScrollerFoundation.prototype.isRTL = function () {\n return this.adapter.getScrollContentStyleValue('direction') === 'rtl';\n };\n return MDCTabScrollerFoundation;\n}(MDCFoundation));\nexport { MDCTabScrollerFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { cssClasses } from './constants';\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 */\nexport function computeHorizontalScrollbarHeight(documentObj, shouldCacheResult) {\n if (shouldCacheResult === void 0) { shouldCacheResult = true; }\n if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') {\n return horizontalScrollbarHeight_;\n }\n var el = documentObj.createElement('div');\n el.classList.add(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}\n//# sourceMappingURL=util.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { applyPassive } from '@material/dom/events';\nimport { matches } from '@material/dom/ponyfill';\nimport { MDCTabScrollerFoundation } from './foundation';\nimport * as util from './util';\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 // initialSyncWithDOM()\n MDCTabScroller.prototype.initialize = function () {\n this.area = this.root.querySelector(MDCTabScrollerFoundation.strings.AREA_SELECTOR);\n this.content = this.root.querySelector(MDCTabScrollerFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTabScroller.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleInteraction = function () {\n _this.foundation.handleInteraction();\n };\n this.handleTransitionEnd = function (evt) {\n _this.foundation.handleTransitionEnd(evt);\n };\n this.area.addEventListener('wheel', this.handleInteraction, applyPassive());\n this.area.addEventListener('touchstart', this.handleInteraction, applyPassive());\n this.area.addEventListener('pointerdown', this.handleInteraction, applyPassive());\n this.area.addEventListener('mousedown', this.handleInteraction, applyPassive());\n this.area.addEventListener('keydown', this.handleInteraction, applyPassive());\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, applyPassive());\n this.area.removeEventListener('touchstart', this.handleInteraction, applyPassive());\n this.area.removeEventListener('pointerdown', this.handleInteraction, applyPassive());\n this.area.removeEventListener('mousedown', this.handleInteraction, applyPassive());\n this.area.removeEventListener('keydown', this.handleInteraction, applyPassive());\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 (evtTarget, selector) {\n return matches(evtTarget, selector);\n },\n addClass: function (className) {\n _this.root.classList.add(className);\n },\n removeClass: function (className) {\n _this.root.classList.remove(className);\n },\n addScrollAreaClass: function (className) {\n _this.area.classList.add(className);\n },\n setScrollAreaStyleProperty: function (prop, value) {\n _this.area.style.setProperty(prop, value);\n },\n setScrollContentStyleProperty: function (prop, value) {\n _this.content.style.setProperty(prop, value);\n },\n getScrollContentStyleValue: function (propName) {\n return window.getComputedStyle(_this.content).getPropertyValue(propName);\n },\n setScrollAreaScrollLeft: function (scrollX) { return _this.area.scrollLeft = scrollX; },\n getScrollAreaScrollLeft: function () { return _this.area.scrollLeft; },\n getScrollContentOffsetWidth: function () { return _this.content.offsetWidth; },\n getScrollAreaOffsetWidth: function () { return _this.area.offsetWidth; },\n computeScrollAreaClientRect: function () { return _this.area.getBoundingClientRect(); },\n computeScrollContentClientRect: function () {\n return _this.content.getBoundingClientRect();\n },\n computeHorizontalScrollbarHeight: function () {\n return util.computeHorizontalScrollbarHeight(document);\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new 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}(MDCComponent));\nexport { MDCTabScroller };\n//# sourceMappingURL=component.js.map","/**\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 */\nvar cssClasses = {\n ACTIVE: 'mdc-tab-indicator--active',\n FADE: 'mdc-tab-indicator--fade',\n NO_TRANSITION: 'mdc-tab-indicator--no-transition',\n};\nvar strings = {\n CONTENT_SELECTOR: '.mdc-tab-indicator__content',\n};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nvar MDCTabIndicatorFoundation = /** @class */ (function (_super) {\n __extends(MDCTabIndicatorFoundation, _super);\n function MDCTabIndicatorFoundation(adapter) {\n return _super.call(this, __assign(__assign({}, MDCTabIndicatorFoundation.defaultAdapter), adapter)) || this;\n }\n Object.defineProperty(MDCTabIndicatorFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n computeContentClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n setContentStyleProperty: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\n configurable: true\n });\n MDCTabIndicatorFoundation.prototype.computeContentClientRect = function () {\n return this.adapter.computeContentClientRect();\n };\n return MDCTabIndicatorFoundation;\n}(MDCFoundation));\nexport { MDCTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabIndicatorFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabIndicatorFoundation } from './foundation';\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(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n MDCFadingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCFadingTabIndicatorFoundation;\n}(MDCTabIndicatorFoundation));\nexport { MDCFadingTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFadingTabIndicatorFoundation;\n//# sourceMappingURL=fading-foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabIndicatorFoundation } from './foundation';\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(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(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(MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter.addClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n this.adapter.setContentStyleProperty('transform', '');\n };\n MDCSlidingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCSlidingTabIndicatorFoundation;\n}(MDCTabIndicatorFoundation));\nexport { MDCSlidingTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSlidingTabIndicatorFoundation;\n//# sourceMappingURL=sliding-foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCFadingTabIndicatorFoundation } from './fading-foundation';\nimport { MDCTabIndicatorFoundation } from './foundation';\nimport { MDCSlidingTabIndicatorFoundation } from './sliding-foundation';\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(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 (className) { return _this.root.classList.add(className); },\n removeClass: function (className) { return _this.root.classList.remove(className); },\n computeContentClientRect: function () { return _this.content.getBoundingClientRect(); },\n setContentStyleProperty: function (prop, value) {\n _this.content.style.setProperty(prop, value);\n },\n };\n // tslint:enable:object-literal-sort-keys\n if (this.root.classList.contains(MDCTabIndicatorFoundation.cssClasses.FADE)) {\n return new MDCFadingTabIndicatorFoundation(adapter);\n }\n // Default to the sliding indicator\n return new 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}(MDCComponent));\nexport { MDCTabIndicator };\n//# sourceMappingURL=component.js.map","/**\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 */\nvar cssClasses = {\n ACTIVE: 'mdc-tab--active',\n};\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};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nvar MDCTabFoundation = /** @class */ (function (_super) {\n __extends(MDCTabFoundation, _super);\n function MDCTabFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCTabFoundation.defaultAdapter), adapter)) || this;\n _this.focusOnActivate = true;\n return _this;\n }\n Object.defineProperty(MDCTabFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n hasClass: function () { return false; },\n setAttr: function () { return undefined; },\n activateIndicator: function () { return undefined; },\n deactivateIndicator: function () { return undefined; },\n notifyInteracted: function () { return undefined; },\n getOffsetLeft: function () { return 0; },\n getOffsetWidth: function () { return 0; },\n getContentOffsetLeft: function () { return 0; },\n getContentOffsetWidth: function () { return 0; },\n focus: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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(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(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 * Deactivates the Tab\n */\n MDCTabFoundation.prototype.deactivate = function () {\n // Early exit\n if (!this.isActive()) {\n return;\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 * 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}(MDCFoundation));\nexport { MDCTabFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCRipple } from '@material/ripple/component';\nimport { MDCRippleFoundation } from '@material/ripple/foundation';\nimport { MDCTabIndicator } from '@material/tab-indicator/component';\nimport { MDCTabFoundation } from './foundation';\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) { rippleFactory = function (el, foundation) { return new MDCRipple(el, foundation); }; }\n if (tabIndicatorFactory === void 0) { tabIndicatorFactory = function (el) { return new MDCTabIndicator(el); }; }\n this.id = this.root.id;\n var rippleFoundation = new MDCRippleFoundation(MDCRipple.createAdapter(this));\n this.ripple = rippleFactory(this.root, rippleFoundation);\n var tabIndicatorElement = this.root.querySelector(MDCTabFoundation.strings.TAB_INDICATOR_SELECTOR);\n this.tabIndicator = tabIndicatorFactory(tabIndicatorElement);\n this.content = this.root.querySelector(MDCTabFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTab.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleClick = function () {\n _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 (attr, value) { return _this.root.setAttribute(attr, value); },\n addClass: function (className) { return _this.root.classList.add(className); },\n removeClass: function (className) { return _this.root.classList.remove(className); },\n hasClass: function (className) { return _this.root.classList.contains(className); },\n activateIndicator: function (previousIndicatorClientRect) {\n _this.tabIndicator.activate(previousIndicatorClientRect);\n },\n deactivateIndicator: function () {\n _this.tabIndicator.deactivate();\n },\n notifyInteracted: function () { return _this.emit(MDCTabFoundation.strings.INTERACTED_EVENT, { tabId: _this.id }, true /* bubble */); },\n getOffsetLeft: function () { return _this.root.offsetLeft; },\n getOffsetWidth: function () { return _this.root.offsetWidth; },\n getContentOffsetLeft: function () { return _this.content.offsetLeft; },\n getContentOffsetWidth: function () { return _this.content.offsetWidth; },\n focus: function () { return _this.root.focus(); },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTabFoundation(adapter);\n };\n Object.defineProperty(MDCTab.prototype, \"active\", {\n /**\n * Getter for the active state of the tab\n */\n get: function () {\n return this.foundation.isActive();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTab.prototype, \"focusOnActivate\", {\n set: function (focusOnActivate) {\n this.foundation.setFocusOnActivate(focusOnActivate);\n },\n enumerable: false,\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}(MDCComponent));\nexport { MDCTab };\n//# sourceMappingURL=component.js.map","/**\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 */\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};\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};\nexport { numbers, strings };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { numbers, strings } from './constants';\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(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);\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(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);\nvar MDCTabBarFoundation = /** @class */ (function (_super) {\n __extends(MDCTabBarFoundation, _super);\n function MDCTabBarFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCTabBarFoundation.defaultAdapter), adapter)) || this;\n _this.useAutomaticActivation = false;\n return _this;\n }\n Object.defineProperty(MDCTabBarFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n scrollTo: function () { return undefined; },\n incrementScroll: function () { return undefined; },\n getScrollPosition: function () { return 0; },\n getScrollContentWidth: function () { return 0; },\n getOffsetWidth: function () { return 0; },\n isRTL: function () { return false; },\n setActiveTab: function () { return undefined; },\n activateTabAtIndex: function () { return undefined; },\n deactivateTabAtIndex: function () { return undefined; },\n focusTabAtIndex: function () { return undefined; },\n getTabIndicatorClientRectAtIndex: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n getTabDimensionsAtIndex: function () {\n return ({ rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0 });\n },\n getPreviousActiveTabIndex: function () { return -1; },\n getFocusedTabIndex: function () { return -1; },\n getIndexOfTabById: function () { return -1; },\n getTabListLength: function () { return 0; },\n notifyTabActivated: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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 =\n 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 }\n else {\n var focusedTabIndex = this.adapter.getFocusedTabIndex();\n if (this.isActivationKey(key)) {\n this.adapter.setActiveTab(focusedTabIndex);\n }\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 this.adapter.scrollTo(0);\n return;\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 this.adapter.scrollTo(this.adapter.getScrollContentWidth());\n return;\n }\n if (this.isRTL()) {\n this.scrollIntoViewImplRTL(index);\n return;\n }\n this.scrollIntoViewImpl(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 === strings.END_KEY;\n var shouldDecrement = key === strings.ARROW_LEFT_KEY && !isRTL || key === strings.ARROW_RIGHT_KEY && isRTL;\n var shouldIncrement = key === strings.ARROW_RIGHT_KEY && !isRTL || key === strings.ARROW_LEFT_KEY && isRTL;\n var index = origin;\n if (shouldGoToEnd) {\n index = maxIndex;\n }\n else if (shouldDecrement) {\n index -= 1;\n }\n else if (shouldIncrement) {\n index += 1;\n }\n else {\n index = 0;\n }\n if (index < 0) {\n index = maxIndex;\n }\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 - numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft + 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 + numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft - 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 === strings.SPACE_KEY || key === 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.scrollIntoViewImpl = 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.scrollIntoViewImplRTL = 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}(MDCFoundation));\nexport { MDCTabBarFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabBarFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends, __values } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCTabScroller } from '@material/tab-scroller/component';\nimport { MDCTab } from '@material/tab/component';\nimport { MDCTabFoundation } from '@material/tab/foundation';\nimport { MDCTabBarFoundation } from './foundation';\nvar strings = 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 (focusOnActivate) {\n var e_1, _a;\n try {\n for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {\n var tab = _c.value;\n tab.focusOnActivate = focusOnActivate;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBar.prototype, \"useAutomaticActivation\", {\n set: function (useAutomaticActivation) {\n this.foundation.setUseAutomaticActivation(useAutomaticActivation);\n },\n enumerable: false,\n configurable: true\n });\n MDCTabBar.prototype.initialize = function (tabFactory, tabScrollerFactory) {\n if (tabFactory === void 0) { tabFactory = function (el) { return new MDCTab(el); }; }\n if (tabScrollerFactory === void 0) { tabScrollerFactory = function (el) { return new MDCTabScroller(el); }; }\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 _this.foundation.handleTabInteraction(evt);\n };\n this.handleKeyDown = function (evt) {\n _this.foundation.handleKeyDown(evt);\n };\n this.listen(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 var e_2, _a;\n _super.prototype.destroy.call(this);\n this.unlisten(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction);\n this.unlisten('keydown', this.handleKeyDown);\n try {\n for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {\n var tab = _c.value;\n tab.destroy();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\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 (scrollX) {\n _this.tabScroller.scrollTo(scrollX);\n },\n incrementScroll: function (scrollXIncrement) {\n _this.tabScroller.incrementScroll(scrollXIncrement);\n },\n getScrollPosition: function () { return _this.tabScroller.getScrollPosition(); },\n getScrollContentWidth: function () { return _this.tabScroller.getScrollContentWidth(); },\n getOffsetWidth: function () { return _this.root.offsetWidth; },\n isRTL: function () { return window.getComputedStyle(_this.root).getPropertyValue('direction') === 'rtl'; },\n setActiveTab: function (index) {\n _this.foundation.activateTab(index);\n },\n activateTabAtIndex: function (index, clientRect) {\n _this.tabList[index].activate(clientRect);\n },\n deactivateTabAtIndex: function (index) {\n _this.tabList[index].deactivate();\n },\n focusTabAtIndex: function (index) {\n _this.tabList[index].focus();\n },\n getTabIndicatorClientRectAtIndex: function (index) {\n return _this.tabList[index].computeIndicatorClientRect();\n },\n getTabDimensionsAtIndex: function (index) {\n return _this.tabList[index].computeDimensions();\n },\n getPreviousActiveTabIndex: function () {\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 () {\n var tabElements = _this.getTabElements();\n var activeElement = document.activeElement;\n return tabElements.indexOf(activeElement);\n },\n getIndexOfTabById: function (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 () { return _this.tabList.length; },\n notifyTabActivated: function (index) { return _this.emit(strings.TAB_ACTIVATED_EVENT, { index: index }, true); },\n };\n // tslint:enable:object-literal-sort-keys\n return new 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}(MDCComponent));\nexport { MDCTabBar };\n//# sourceMappingURL=component.js.map","import { Tab } from './tab.types';\n\n/**\n * Set a tabs `active` state to true in a list of tabs. The previous tab with\n * `active` set to true will have it set to `false` instead.\n *\n * @param tabs - list of tabs\n * @param index - the index of the tab to set to active\n * @returns a copy of the list of tabs with the changed tabs replaced\n */\nexport function setActiveTab(tabs: Tab[], index: number): Tab[] {\n const oldSelectedTabIndex = tabs.findIndex((t) => t.active === true);\n const result = [...tabs];\n\n if (oldSelectedTabIndex !== -1) {\n result[oldSelectedTabIndex] = {\n ...tabs[oldSelectedTabIndex],\n active: false,\n };\n }\n\n result[index] = { ...tabs[index], active: true };\n\n return result;\n}\n","@use '@material/tab-bar/mdc-tab-bar';\n@use '@material/tab-scroller/mdc-tab-scroller';\n@use '@material/tab-indicator/mdc-tab-indicator';\n@use '@material/tab/mdc-tab';\n\n$tab-background-color: var(--contrast-300);\n$tab-border-radius: 0.625rem;\n$tab-active-outer-edge-curve-size: 0.75rem;\n$tab-separator-width: 0.125rem;\n$tab-separator-background-color: rgb(var(--contrast-600));\n\n@import './partial-styles/tab-bar-scroller.scss';\n\n:host(limel-tab-bar) {\n --limel-active-tab-background-color: var(\n --tab-panel-background-color,\n rgb(var(--contrast-100))\n );\n isolation: isolate;\n display: block;\n position: relative;\n}\n\n:host(.has-tabs-with-equal-width) {\n .mdc-tab {\n flex: 1 0 auto;\n }\n}\n\n.mdc-tab {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n font-weight: 400;\n letter-spacing: normal;\n font-size: var(--limel-theme-default-font-size);\n text-transform: none;\n}\n\n.mdc-tab-indicator {\n .mdc-tab-indicator__content {\n border: none;\n }\n}\n\n.mdc-tab__ripple {\n box-sizing: border-box;\n border-radius: $tab-border-radius;\n border: {\n style: solid;\n color: transparent;\n width: 0.25rem;\n }\n opacity: 0.7;\n\n &:before,\n &:after {\n transition: background-color 0.5s ease;\n }\n}\n\n.mdc-tab {\n border-radius: 0;\n padding-right: 1rem;\n padding-left: 1rem;\n min-width: 2.5rem;\n background-color: transparent;\n flex: 0 0 auto;\n height: 2.5rem;\n\n &:not(.mdc-tab--active) {\n --badge-background-color: rgb(var(--contrast-600));\n\n &:after {\n content: '';\n display: block;\n background-color: $tab-separator-background-color;\n width: $tab-separator-width;\n height: 1rem;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n border-radius: 1rem;\n right: -$tab-separator-width;\n }\n\n &:last-of-type {\n &:after {\n display: none;\n }\n }\n }\n\n .mdc-tab__icon {\n margin-left: -0.25rem;\n }\n\n limel-badge {\n margin-right: -0.25rem;\n }\n}\n\n.mdc-tab--active {\n border-radius: $tab-border-radius $tab-border-radius 0 0;\n background-color: var(--limel-active-tab-background-color);\n z-index: 2;\n\n &:before,\n &:after {\n content: '';\n display: block;\n width: $tab-active-outer-edge-curve-size;\n height: $tab-active-outer-edge-curve-size;\n position: absolute;\n bottom: 0;\n background-color: var(--limel-active-tab-background-color);\n\n -webkit-mask-image: url(\"data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2' clip-rule='evenodd' viewBox='0 0 50 50'><defs/><path d='M0 0c0 27.594 22.406 50 50 50H0V0z'/></svg>\"); //For chrome and Safari the browser prefix is needed. (last checked Apr 2020)\n mask-image: url(\"data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2' clip-rule='evenodd' viewBox='0 0 50 50'><defs/><path d='M0 0c0 27.594 22.406 50 50 50H0V0z'/></svg>\");\n }\n\n &:before {\n left: -$tab-active-outer-edge-curve-size;\n transform: rotateY(180deg);\n }\n &:after {\n right: -$tab-active-outer-edge-curve-size;\n }\n\n .mdc-ripple-upgraded--background-focused {\n &:before {\n background-color: transparent;\n transition: background-color 1s ease;\n }\n }\n}\n\n.mdc-tab__content {\n gap: 0.375rem;\n}\n\n.mdc-tab {\n .mdc-tab__text-label {\n transition: color 0.2s ease;\n padding-left: 0 !important;\n color: var(--limel-theme-on-surface-color);\n }\n &:hover {\n .mdc-tab__text-label {\n color: var(--limel-theme-text-primary-on-background-color);\n }\n }\n &.mdc-tab--active {\n .mdc-tab__text-label {\n color: var(--lime-primary-color, var(--limel-theme-primary-color));\n }\n }\n}\n","import {\n Component,\n h,\n Listen,\n Prop,\n Element,\n EventEmitter,\n Event,\n State,\n Watch,\n} from '@stencil/core';\nimport { MDCTabBar, MDCTabBarActivatedEvent } from '@material/tab-bar';\nimport { strings } from '@material/tab-bar/constants';\nimport { Tab } from './tab.types';\nimport { isEqual, difference } from 'lodash-es';\nimport { setActiveTab } from './tabs';\nimport { getIconColor, getIconName } from '../icon/get-icon-props';\n\nconst { TAB_ACTIVATED_EVENT } = strings;\nconst SCROLL_DISTANCE_ON_CLICK_PX = 150;\nconst HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX = 40;\nconst TOTAL_WIDTH_PERCENTAGE = 100;\nconst OVERLAP_PERCENTAGE = 20;\n\n/**\n * Tabs are great to organize information hierarchically in the interface and divide it into distinct categories. Using tabs, you can create groups of content that are related and at the same level in the hierarchy.\n * :::warning\n * Tab bars should be strictly used for navigation at the top levels.\n * They should never be used to perform actions, or navigate away from the view which contains them.\n * :::\n * An exception for using tab bars in a high level of hierarchy is their usage in modals. This is because modals are perceived as a separate place and not a part of the current context. Therefore you can use tab bars in a modal to group and organize its content.\n * A tab bar can contain an unlimited number of tabs. However, depending on the device width and width of the tabs, the number of tabs that are visible at the same time will vary. When there is limited horizontal space, the component shows a left-arrow and/or right-arrow button, which scrolls and reveals the additional tabs. The tab bar can also be swiped left and right on a touch-device.\n * :::tip Other things to consider\n * Never divide the content of a tab using a nested tab bar.\n * Never place two tab bars within the same screen.\n * Never use background color for icons in tabs.\n * Avoid having long labels for tabs.\n * A tab will never be removed or get disabled, even if there is no content under it.\n * :::\n *\n * @exampleComponent limel-example-tab-bar\n * @exampleComponent limel-example-tab-bar-with-dynamic-tab-width\n * @exampleComponent limel-example-tab-bar-with-equal-tab-width\n */\n@Component({\n tag: 'limel-tab-bar',\n styleUrl: 'tab-bar.scss',\n shadow: true,\n})\nexport class TabBar {\n /**\n * List of tabs to display\n */\n @Prop({ mutable: true })\n public tabs: Tab[] = [];\n\n /**\n * Emitted when a tab has been changed\n */\n @Event()\n private changeTab: EventEmitter<Tab>;\n\n @Element()\n private host: HTMLLimelTabBarElement;\n\n @State()\n private canScrollLeft = false;\n\n @State()\n private canScrollRight = false;\n\n private mdcTabBar: MDCTabBar;\n private setupMdc = false;\n private scrollArea: HTMLElement;\n private scrollContent: HTMLElement;\n\n constructor() {\n this.handleTabActivated = this.handleTabActivated.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleLeftScrollClick = this.handleLeftScrollClick.bind(this);\n this.handleRightScrollClick = this.handleRightScrollClick.bind(this);\n this.renderTab = this.renderTab.bind(this);\n }\n\n public connectedCallback() {\n this.setup();\n }\n\n public componentDidLoad() {\n this.setup();\n this.triggerIconColorWarning();\n }\n\n public componentDidUpdate() {\n if (!this.setupMdc) {\n return;\n }\n\n this.setup();\n this.setupMdc = false;\n }\n\n public disconnectedCallback() {\n this.tearDown();\n }\n\n public render() {\n return (\n <div class=\"mdc-tab-bar\" role=\"tablist\">\n <div\n class={{\n 'mdc-tab-scroller': true,\n 'can-scroll-left': this.canScrollLeft,\n 'can-scroll-right': this.canScrollRight,\n }}\n >\n <div class=\"mdc-tab-scroller__scroll-area lime-hide-scrollbars\">\n <div class=\"mdc-tab-scroller__scroll-content\">\n {this.tabs.map(this.renderTab)}\n </div>\n </div>\n <div class=\"scroll-fade left\" />\n <div class=\"scroll-button left\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n disabled={!this.canScrollLeft}\n onClick={this.handleLeftScrollClick}\n >\n <limel-icon name=\"angle_left\" />\n </button>\n </div>\n <div class=\"scroll-fade right\" />\n <div class=\"scroll-button right\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n disabled={!this.canScrollRight}\n onClick={this.handleRightScrollClick}\n >\n <limel-icon name=\"angle_right\" />\n </button>\n </div>\n </div>\n </div>\n );\n }\n\n @Watch('tabs')\n protected tabsChanged(newTabs: Tab[] = [], oldTabs: Tab[] = []) {\n const newIds = newTabs.map((tab) => tab.id);\n const oldIds = oldTabs.map((tab) => tab.id);\n\n if (isEqual(newIds, oldIds)) {\n return;\n }\n\n this.setupMdc = true;\n this.tearDown();\n }\n\n @Listen('resize', { passive: true, target: 'window' })\n protected handleWindowResize() {\n if (!this.scrollArea) {\n return;\n }\n\n this.handleScroll();\n }\n\n private setup() {\n const element = this.host.shadowRoot.querySelector('.mdc-tab-bar');\n if (!element) {\n return;\n }\n\n this.mdcTabBar = new MDCTabBar(element);\n this.mdcTabBar.focusOnActivate = true;\n this.mdcTabBar.useAutomaticActivation = true;\n this.scrollArea = element.querySelector(\n '.mdc-tab-scroller__scroll-area'\n );\n this.scrollContent = element.querySelector(\n '.mdc-tab-scroller__scroll-content'\n );\n\n this.setupListeners();\n\n // Use timeout to avoid Stencil warning about re-renders. /Ads\n setTimeout(this.handleScroll, 0);\n }\n\n private tearDown() {\n if (this.scrollArea) {\n this.scrollArea.removeEventListener('scroll', this.handleScroll);\n }\n\n if (this.mdcTabBar) {\n this.mdcTabBar.unlisten(\n TAB_ACTIVATED_EVENT,\n this.handleTabActivated\n );\n this.mdcTabBar.destroy();\n }\n }\n\n private setupListeners() {\n this.mdcTabBar.listen(TAB_ACTIVATED_EVENT, this.handleTabActivated);\n this.scrollArea.addEventListener('scroll', this.handleScroll, {\n passive: true,\n });\n }\n\n private handleTabActivated(event: MDCTabBarActivatedEvent) {\n const index = event.detail.index;\n const newTabs = setActiveTab(this.tabs, index);\n\n difference(newTabs, this.tabs)\n .sort(this.sortByInactive)\n // eslint-disable-next-line unicorn/no-array-for-each\n .forEach((tab: Tab) => {\n this.changeTab.emit(tab);\n });\n\n this.tabs = newTabs;\n }\n\n private sortByInactive(a: Tab, b: Tab) {\n return Number(a.active) - Number(b.active);\n }\n\n private handleScroll() {\n const scrollLeft = this.scrollArea.scrollLeft;\n const scrollRight = Math.floor(\n this.scrollContent.getBoundingClientRect().width -\n this.scrollArea.getBoundingClientRect().width -\n scrollLeft\n );\n\n if (scrollLeft > HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX) {\n this.canScrollLeft = true;\n } else {\n this.canScrollLeft = false;\n }\n\n if (scrollRight > HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX) {\n this.canScrollRight = true;\n } else {\n this.canScrollRight = false;\n }\n }\n\n private handleLeftScrollClick() {\n const scrollDistance = this.getScrollDistance();\n this.scrollArea.scroll({\n left: this.scrollArea.scrollLeft - scrollDistance,\n behavior: 'smooth',\n });\n }\n\n private handleRightScrollClick() {\n const scrollDistance = this.getScrollDistance();\n this.scrollArea.scroll({\n left: this.scrollArea.scrollLeft + scrollDistance,\n behavior: 'smooth',\n });\n }\n\n /**\n * Calculates how far to scroll when navigation buttons are clicked.\n * Returns the visible width minus an overlap percentage to maintain context.\n * Falls back to the constant value if something goes wrong.\n */\n private getScrollDistance(): number {\n if (!this.scrollArea) {\n return SCROLL_DISTANCE_ON_CLICK_PX;\n }\n\n const containerWidth = this.scrollArea.getBoundingClientRect().width;\n const scrollDistance =\n containerWidth * (1 - OVERLAP_PERCENTAGE / TOTAL_WIDTH_PERCENTAGE);\n\n return Math.max(scrollDistance, SCROLL_DISTANCE_ON_CLICK_PX);\n }\n\n private renderIcon(tab: Tab) {\n if (!tab.icon) {\n return;\n }\n\n const name = getIconName(tab.icon);\n\n const color = getIconColor(tab.icon, tab.iconColor);\n const style = { color: '' };\n\n if (color) {\n style.color = color;\n }\n\n return (\n <limel-icon\n class=\"mdc-tab__icon\"\n name={name}\n style={style}\n size=\"small\"\n aria-hidden=\"true\"\n />\n );\n }\n\n private renderTab(tab: Tab) {\n return (\n <button\n class={{\n 'mdc-tab': true,\n 'mdc-tab--active': !!tab.active,\n }}\n role=\"tab\"\n aria-selected={tab.active ? 'true' : 'false'}\n tabindex={tab.active ? 0 : -1}\n >\n <span class=\"mdc-tab__content\">\n {this.renderIcon(tab)}\n <span class=\"mdc-tab__text-label\">{tab.text}</span>\n {tab.badge ? <limel-badge label={tab.badge} /> : ''}\n </span>\n <span\n class={{\n 'mdc-tab-indicator': true,\n 'mdc-tab-indicator--active': !!tab.active,\n }}\n >\n <span class=\"mdc-tab-indicator__content mdc-tab-indicator__content--underline\" />\n </span>\n <span class=\"mdc-tab__ripple\" />\n </button>\n );\n }\n\n private triggerIconColorWarning() {\n if (this.tabs.some((tab) => tab.iconColor)) {\n console.warn(\n \"The `iconColor` prop is deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name'` write `icon {name: 'icon-name', color: 'color-name'}`.\"\n );\n }\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"limel-tab-bar.entry.cjs.js","mappings":"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","names":["arrayIncludes","arrayMap","baseUnary","arrayIncludesWith","cacheHas","SetCache","baseRest","isArrayLikeObject","baseFlatten","cssClasses","strings","__extends","__assign","__read","MDCFoundation","applyPassive","matches","util.computeHorizontalScrollbarHeight","MDCComponent","MDCRipple","MDCRippleFoundation","__values","h","isEqual","getIconName","getIconColor"],"sources":["./node_modules/lodash-es/_baseDifference.js","./node_modules/lodash-es/difference.js","./node_modules/@material/tab-scroller/constants.js","./node_modules/@material/tab-scroller/rtl-scroller.js","./node_modules/@material/tab-scroller/rtl-default-scroller.js","./node_modules/@material/tab-scroller/rtl-negative-scroller.js","./node_modules/@material/tab-scroller/rtl-reverse-scroller.js","./node_modules/@material/tab-scroller/foundation.js","./node_modules/@material/tab-scroller/util.js","./node_modules/@material/tab-scroller/component.js","./node_modules/@material/tab-indicator/constants.js","./node_modules/@material/tab-indicator/foundation.js","./node_modules/@material/tab-indicator/fading-foundation.js","./node_modules/@material/tab-indicator/sliding-foundation.js","./node_modules/@material/tab-indicator/component.js","./node_modules/@material/tab/constants.js","./node_modules/@material/tab/foundation.js","./node_modules/@material/tab/component.js","./node_modules/@material/tab-bar/constants.js","./node_modules/@material/tab-bar/foundation.js","./node_modules/@material/tab-bar/component.js","./src/components/tab-bar/tabs.ts","./src/components/tab-bar/tab-bar.scss?tag=limel-tab-bar&encapsulation=shadow","./src/components/tab-bar/tab-bar.tsx"],"sourcesContent":["import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\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 */\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};\nvar strings = {\n AREA_SELECTOR: '.mdc-tab-scroller__scroll-area',\n CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content',\n};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nvar MDCTabScrollerRTL = /** @class */ (function () {\n function MDCTabScrollerRTL(adapter) {\n this.adapter = adapter;\n }\n return MDCTabScrollerRTL;\n}());\nexport { MDCTabScrollerRTL };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTL;\n//# sourceMappingURL=rtl-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLDefault };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLDefault;\n//# sourceMappingURL=rtl-default-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLNegative };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLNegative;\n//# sourceMappingURL=rtl-negative-scroller.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabScrollerRTL } from './rtl-scroller';\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}(MDCTabScrollerRTL));\nexport { MDCTabScrollerRTLReverse };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerRTLReverse;\n//# sourceMappingURL=rtl-reverse-scroller.js.map","/**\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 */\nimport { __assign, __extends, __read } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nimport { MDCTabScrollerRTLDefault } from './rtl-default-scroller';\nimport { MDCTabScrollerRTLNegative } from './rtl-negative-scroller';\nimport { MDCTabScrollerRTLReverse } from './rtl-reverse-scroller';\nvar MDCTabScrollerFoundation = /** @class */ (function (_super) {\n __extends(MDCTabScrollerFoundation, _super);\n function MDCTabScrollerFoundation(adapter) {\n var _this = _super.call(this, __assign(__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 () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabScrollerFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n eventTargetMatchesSelector: function () { return false; },\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n addScrollAreaClass: function () { return undefined; },\n setScrollAreaStyleProperty: function () { return undefined; },\n setScrollContentStyleProperty: function () { return undefined; },\n getScrollContentStyleValue: function () { return ''; },\n setScrollAreaScrollLeft: function () { return undefined; },\n getScrollAreaScrollLeft: function () { return 0; },\n getScrollContentOffsetWidth: function () { return 0; },\n getScrollAreaOffsetWidth: function () { return 0; },\n computeScrollAreaClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n computeScrollContentClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n computeHorizontalScrollbarHeight: function () { return 0; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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 ||\n !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 using animation.\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 this.animate(this.getIncrementScrollOperation(scrollXIncrement));\n };\n /**\n * Increment the scroll value by the scrollXIncrement without animation.\n * @param scrollXIncrement The value by which to increment the scroll position\n */\n MDCTabScrollerFoundation.prototype.incrementScrollImmediate = function (scrollXIncrement) {\n // Early exit for non-operational increment values\n if (scrollXIncrement === 0) {\n return;\n }\n var operation = this.getIncrementScrollOperation(scrollXIncrement);\n if (operation.scrollDelta === 0) {\n return;\n }\n this.stopScrollAnimation();\n this.adapter.setScrollAreaScrollLeft(operation.finalScrollPosition);\n };\n /**\n * Scrolls to the given scrollX value\n */\n MDCTabScrollerFoundation.prototype.scrollTo = function (scrollX) {\n if (this.isRTL()) {\n this.scrollToImplRTL(scrollX);\n return;\n }\n this.scrollToImpl(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), a = _a[0], b = _a[1], c = _a[2], d = _a[3], tx = _a[4], 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.scrollToImpl = 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.scrollToImplRTL = function (scrollX) {\n var animation = this.getRTLScroller().scrollToRTL(scrollX);\n this.animate(animation);\n };\n /**\n * Internal method to compute the increment scroll operation values.\n * @param scrollX The desired scroll position increment\n * @return MDCTabScrollerAnimation with the sanitized values for performing the scroll operation.\n */\n MDCTabScrollerFoundation.prototype.getIncrementScrollOperation = function (scrollX) {\n if (this.isRTL()) {\n return this.getRTLScroller().incrementScrollRTL(scrollX);\n }\n var currentScrollX = this.getScrollPosition();\n var targetScrollX = scrollX + currentScrollX;\n var safeScrollX = this.clampScrollValue(targetScrollX);\n var scrollDelta = safeScrollX - currentScrollX;\n return {\n finalScrollPosition: safeScrollX,\n scrollDelta: scrollDelta,\n };\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 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 MDCTabScrollerRTLReverse(this.adapter);\n }\n return new MDCTabScrollerRTLDefault(this.adapter);\n };\n MDCTabScrollerFoundation.prototype.isRTL = function () {\n return this.adapter.getScrollContentStyleValue('direction') === 'rtl';\n };\n return MDCTabScrollerFoundation;\n}(MDCFoundation));\nexport { MDCTabScrollerFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabScrollerFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { cssClasses } from './constants';\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 */\nexport function computeHorizontalScrollbarHeight(documentObj, shouldCacheResult) {\n if (shouldCacheResult === void 0) { shouldCacheResult = true; }\n if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') {\n return horizontalScrollbarHeight_;\n }\n var el = documentObj.createElement('div');\n el.classList.add(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}\n//# sourceMappingURL=util.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { applyPassive } from '@material/dom/events';\nimport { matches } from '@material/dom/ponyfill';\nimport { MDCTabScrollerFoundation } from './foundation';\nimport * as util from './util';\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 // initialSyncWithDOM()\n MDCTabScroller.prototype.initialize = function () {\n this.area = this.root.querySelector(MDCTabScrollerFoundation.strings.AREA_SELECTOR);\n this.content = this.root.querySelector(MDCTabScrollerFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTabScroller.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleInteraction = function () {\n _this.foundation.handleInteraction();\n };\n this.handleTransitionEnd = function (evt) {\n _this.foundation.handleTransitionEnd(evt);\n };\n this.area.addEventListener('wheel', this.handleInteraction, applyPassive());\n this.area.addEventListener('touchstart', this.handleInteraction, applyPassive());\n this.area.addEventListener('pointerdown', this.handleInteraction, applyPassive());\n this.area.addEventListener('mousedown', this.handleInteraction, applyPassive());\n this.area.addEventListener('keydown', this.handleInteraction, applyPassive());\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, applyPassive());\n this.area.removeEventListener('touchstart', this.handleInteraction, applyPassive());\n this.area.removeEventListener('pointerdown', this.handleInteraction, applyPassive());\n this.area.removeEventListener('mousedown', this.handleInteraction, applyPassive());\n this.area.removeEventListener('keydown', this.handleInteraction, applyPassive());\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 (evtTarget, selector) {\n return matches(evtTarget, selector);\n },\n addClass: function (className) {\n _this.root.classList.add(className);\n },\n removeClass: function (className) {\n _this.root.classList.remove(className);\n },\n addScrollAreaClass: function (className) {\n _this.area.classList.add(className);\n },\n setScrollAreaStyleProperty: function (prop, value) {\n _this.area.style.setProperty(prop, value);\n },\n setScrollContentStyleProperty: function (prop, value) {\n _this.content.style.setProperty(prop, value);\n },\n getScrollContentStyleValue: function (propName) {\n return window.getComputedStyle(_this.content).getPropertyValue(propName);\n },\n setScrollAreaScrollLeft: function (scrollX) { return _this.area.scrollLeft = scrollX; },\n getScrollAreaScrollLeft: function () { return _this.area.scrollLeft; },\n getScrollContentOffsetWidth: function () { return _this.content.offsetWidth; },\n getScrollAreaOffsetWidth: function () { return _this.area.offsetWidth; },\n computeScrollAreaClientRect: function () { return _this.area.getBoundingClientRect(); },\n computeScrollContentClientRect: function () {\n return _this.content.getBoundingClientRect();\n },\n computeHorizontalScrollbarHeight: function () {\n return util.computeHorizontalScrollbarHeight(document);\n },\n };\n // tslint:enable:object-literal-sort-keys\n return new 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}(MDCComponent));\nexport { MDCTabScroller };\n//# sourceMappingURL=component.js.map","/**\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 */\nvar cssClasses = {\n ACTIVE: 'mdc-tab-indicator--active',\n FADE: 'mdc-tab-indicator--fade',\n NO_TRANSITION: 'mdc-tab-indicator--no-transition',\n};\nvar strings = {\n CONTENT_SELECTOR: '.mdc-tab-indicator__content',\n};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nvar MDCTabIndicatorFoundation = /** @class */ (function (_super) {\n __extends(MDCTabIndicatorFoundation, _super);\n function MDCTabIndicatorFoundation(adapter) {\n return _super.call(this, __assign(__assign({}, MDCTabIndicatorFoundation.defaultAdapter), adapter)) || this;\n }\n Object.defineProperty(MDCTabIndicatorFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabIndicatorFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n computeContentClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n setContentStyleProperty: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\n configurable: true\n });\n MDCTabIndicatorFoundation.prototype.computeContentClientRect = function () {\n return this.adapter.computeContentClientRect();\n };\n return MDCTabIndicatorFoundation;\n}(MDCFoundation));\nexport { MDCTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabIndicatorFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabIndicatorFoundation } from './foundation';\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(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n MDCFadingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCFadingTabIndicatorFoundation;\n}(MDCTabIndicatorFoundation));\nexport { MDCFadingTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCFadingTabIndicatorFoundation;\n//# sourceMappingURL=fading-foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCTabIndicatorFoundation } from './foundation';\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(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(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(MDCTabIndicatorFoundation.cssClasses.NO_TRANSITION);\n this.adapter.addClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n this.adapter.setContentStyleProperty('transform', '');\n };\n MDCSlidingTabIndicatorFoundation.prototype.deactivate = function () {\n this.adapter.removeClass(MDCTabIndicatorFoundation.cssClasses.ACTIVE);\n };\n return MDCSlidingTabIndicatorFoundation;\n}(MDCTabIndicatorFoundation));\nexport { MDCSlidingTabIndicatorFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSlidingTabIndicatorFoundation;\n//# sourceMappingURL=sliding-foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCFadingTabIndicatorFoundation } from './fading-foundation';\nimport { MDCTabIndicatorFoundation } from './foundation';\nimport { MDCSlidingTabIndicatorFoundation } from './sliding-foundation';\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(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 (className) { return _this.root.classList.add(className); },\n removeClass: function (className) { return _this.root.classList.remove(className); },\n computeContentClientRect: function () { return _this.content.getBoundingClientRect(); },\n setContentStyleProperty: function (prop, value) {\n _this.content.style.setProperty(prop, value);\n },\n };\n // tslint:enable:object-literal-sort-keys\n if (this.root.classList.contains(MDCTabIndicatorFoundation.cssClasses.FADE)) {\n return new MDCFadingTabIndicatorFoundation(adapter);\n }\n // Default to the sliding indicator\n return new 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}(MDCComponent));\nexport { MDCTabIndicator };\n//# sourceMappingURL=component.js.map","/**\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 */\nvar cssClasses = {\n ACTIVE: 'mdc-tab--active',\n};\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};\nexport { cssClasses, strings, };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from './constants';\nvar MDCTabFoundation = /** @class */ (function (_super) {\n __extends(MDCTabFoundation, _super);\n function MDCTabFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCTabFoundation.defaultAdapter), adapter)) || this;\n _this.focusOnActivate = true;\n return _this;\n }\n Object.defineProperty(MDCTabFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n hasClass: function () { return false; },\n setAttr: function () { return undefined; },\n activateIndicator: function () { return undefined; },\n deactivateIndicator: function () { return undefined; },\n notifyInteracted: function () { return undefined; },\n getOffsetLeft: function () { return 0; },\n getOffsetWidth: function () { return 0; },\n getContentOffsetLeft: function () { return 0; },\n getContentOffsetWidth: function () { return 0; },\n focus: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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(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(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 * Deactivates the Tab\n */\n MDCTabFoundation.prototype.deactivate = function () {\n // Early exit\n if (!this.isActive()) {\n return;\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 * 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}(MDCFoundation));\nexport { MDCTabFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCRipple } from '@material/ripple/component';\nimport { MDCRippleFoundation } from '@material/ripple/foundation';\nimport { MDCTabIndicator } from '@material/tab-indicator/component';\nimport { MDCTabFoundation } from './foundation';\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) { rippleFactory = function (el, foundation) { return new MDCRipple(el, foundation); }; }\n if (tabIndicatorFactory === void 0) { tabIndicatorFactory = function (el) { return new MDCTabIndicator(el); }; }\n this.id = this.root.id;\n var rippleFoundation = new MDCRippleFoundation(MDCRipple.createAdapter(this));\n this.ripple = rippleFactory(this.root, rippleFoundation);\n var tabIndicatorElement = this.root.querySelector(MDCTabFoundation.strings.TAB_INDICATOR_SELECTOR);\n this.tabIndicator = tabIndicatorFactory(tabIndicatorElement);\n this.content = this.root.querySelector(MDCTabFoundation.strings.CONTENT_SELECTOR);\n };\n MDCTab.prototype.initialSyncWithDOM = function () {\n var _this = this;\n this.handleClick = function () {\n _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 (attr, value) { return _this.root.setAttribute(attr, value); },\n addClass: function (className) { return _this.root.classList.add(className); },\n removeClass: function (className) { return _this.root.classList.remove(className); },\n hasClass: function (className) { return _this.root.classList.contains(className); },\n activateIndicator: function (previousIndicatorClientRect) {\n _this.tabIndicator.activate(previousIndicatorClientRect);\n },\n deactivateIndicator: function () {\n _this.tabIndicator.deactivate();\n },\n notifyInteracted: function () { return _this.emit(MDCTabFoundation.strings.INTERACTED_EVENT, { tabId: _this.id }, true /* bubble */); },\n getOffsetLeft: function () { return _this.root.offsetLeft; },\n getOffsetWidth: function () { return _this.root.offsetWidth; },\n getContentOffsetLeft: function () { return _this.content.offsetLeft; },\n getContentOffsetWidth: function () { return _this.content.offsetWidth; },\n focus: function () { return _this.root.focus(); },\n };\n // tslint:enable:object-literal-sort-keys\n return new MDCTabFoundation(adapter);\n };\n Object.defineProperty(MDCTab.prototype, \"active\", {\n /**\n * Getter for the active state of the tab\n */\n get: function () {\n return this.foundation.isActive();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTab.prototype, \"focusOnActivate\", {\n set: function (focusOnActivate) {\n this.foundation.setFocusOnActivate(focusOnActivate);\n },\n enumerable: false,\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}(MDCComponent));\nexport { MDCTab };\n//# sourceMappingURL=component.js.map","/**\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 */\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};\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};\nexport { numbers, strings };\n//# sourceMappingURL=constants.js.map","/**\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 */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { numbers, strings } from './constants';\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(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);\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(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);\nvar MDCTabBarFoundation = /** @class */ (function (_super) {\n __extends(MDCTabBarFoundation, _super);\n function MDCTabBarFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCTabBarFoundation.defaultAdapter), adapter)) || this;\n _this.useAutomaticActivation = false;\n return _this;\n }\n Object.defineProperty(MDCTabBarFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBarFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n scrollTo: function () { return undefined; },\n incrementScroll: function () { return undefined; },\n getScrollPosition: function () { return 0; },\n getScrollContentWidth: function () { return 0; },\n getOffsetWidth: function () { return 0; },\n isRTL: function () { return false; },\n setActiveTab: function () { return undefined; },\n activateTabAtIndex: function () { return undefined; },\n deactivateTabAtIndex: function () { return undefined; },\n focusTabAtIndex: function () { return undefined; },\n getTabIndicatorClientRectAtIndex: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n getTabDimensionsAtIndex: function () {\n return ({ rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0 });\n },\n getPreviousActiveTabIndex: function () { return -1; },\n getFocusedTabIndex: function () { return -1; },\n getIndexOfTabById: function () { return -1; },\n getTabListLength: function () { return 0; },\n notifyTabActivated: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\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 =\n 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 }\n else {\n var focusedTabIndex = this.adapter.getFocusedTabIndex();\n if (this.isActivationKey(key)) {\n this.adapter.setActiveTab(focusedTabIndex);\n }\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 this.adapter.scrollTo(0);\n return;\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 this.adapter.scrollTo(this.adapter.getScrollContentWidth());\n return;\n }\n if (this.isRTL()) {\n this.scrollIntoViewImplRTL(index);\n return;\n }\n this.scrollIntoViewImpl(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 === strings.END_KEY;\n var shouldDecrement = key === strings.ARROW_LEFT_KEY && !isRTL || key === strings.ARROW_RIGHT_KEY && isRTL;\n var shouldIncrement = key === strings.ARROW_RIGHT_KEY && !isRTL || key === strings.ARROW_LEFT_KEY && isRTL;\n var index = origin;\n if (shouldGoToEnd) {\n index = maxIndex;\n }\n else if (shouldDecrement) {\n index -= 1;\n }\n else if (shouldIncrement) {\n index += 1;\n }\n else {\n index = 0;\n }\n if (index < 0) {\n index = maxIndex;\n }\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 - numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft + 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 + numbers.EXTRA_SCROLL_AMOUNT;\n var rightIncrement = relativeContentLeft - 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 === strings.SPACE_KEY || key === 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.scrollIntoViewImpl = 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.scrollIntoViewImplRTL = 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}(MDCFoundation));\nexport { MDCTabBarFoundation };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCTabBarFoundation;\n//# sourceMappingURL=foundation.js.map","/**\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 */\nimport { __extends, __values } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCTabScroller } from '@material/tab-scroller/component';\nimport { MDCTab } from '@material/tab/component';\nimport { MDCTabFoundation } from '@material/tab/foundation';\nimport { MDCTabBarFoundation } from './foundation';\nvar strings = 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 (focusOnActivate) {\n var e_1, _a;\n try {\n for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {\n var tab = _c.value;\n tab.focusOnActivate = focusOnActivate;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MDCTabBar.prototype, \"useAutomaticActivation\", {\n set: function (useAutomaticActivation) {\n this.foundation.setUseAutomaticActivation(useAutomaticActivation);\n },\n enumerable: false,\n configurable: true\n });\n MDCTabBar.prototype.initialize = function (tabFactory, tabScrollerFactory) {\n if (tabFactory === void 0) { tabFactory = function (el) { return new MDCTab(el); }; }\n if (tabScrollerFactory === void 0) { tabScrollerFactory = function (el) { return new MDCTabScroller(el); }; }\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 _this.foundation.handleTabInteraction(evt);\n };\n this.handleKeyDown = function (evt) {\n _this.foundation.handleKeyDown(evt);\n };\n this.listen(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 var e_2, _a;\n _super.prototype.destroy.call(this);\n this.unlisten(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction);\n this.unlisten('keydown', this.handleKeyDown);\n try {\n for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {\n var tab = _c.value;\n tab.destroy();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\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 (scrollX) {\n _this.tabScroller.scrollTo(scrollX);\n },\n incrementScroll: function (scrollXIncrement) {\n _this.tabScroller.incrementScroll(scrollXIncrement);\n },\n getScrollPosition: function () { return _this.tabScroller.getScrollPosition(); },\n getScrollContentWidth: function () { return _this.tabScroller.getScrollContentWidth(); },\n getOffsetWidth: function () { return _this.root.offsetWidth; },\n isRTL: function () { return window.getComputedStyle(_this.root).getPropertyValue('direction') === 'rtl'; },\n setActiveTab: function (index) {\n _this.foundation.activateTab(index);\n },\n activateTabAtIndex: function (index, clientRect) {\n _this.tabList[index].activate(clientRect);\n },\n deactivateTabAtIndex: function (index) {\n _this.tabList[index].deactivate();\n },\n focusTabAtIndex: function (index) {\n _this.tabList[index].focus();\n },\n getTabIndicatorClientRectAtIndex: function (index) {\n return _this.tabList[index].computeIndicatorClientRect();\n },\n getTabDimensionsAtIndex: function (index) {\n return _this.tabList[index].computeDimensions();\n },\n getPreviousActiveTabIndex: function () {\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 () {\n var tabElements = _this.getTabElements();\n var activeElement = document.activeElement;\n return tabElements.indexOf(activeElement);\n },\n getIndexOfTabById: function (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 () { return _this.tabList.length; },\n notifyTabActivated: function (index) { return _this.emit(strings.TAB_ACTIVATED_EVENT, { index: index }, true); },\n };\n // tslint:enable:object-literal-sort-keys\n return new 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}(MDCComponent));\nexport { MDCTabBar };\n//# sourceMappingURL=component.js.map","import { Tab } from './tab.types';\n\n/**\n * Set a tabs `active` state to true in a list of tabs. The previous tab with\n * `active` set to true will have it set to `false` instead.\n *\n * @param tabs - list of tabs\n * @param index - the index of the tab to set to active\n * @returns a copy of the list of tabs with the changed tabs replaced\n */\nexport function setActiveTab(tabs: Tab[], index: number): Tab[] {\n const oldSelectedTabIndex = tabs.findIndex((t) => t.active === true);\n const result = [...tabs];\n\n if (oldSelectedTabIndex !== -1) {\n result[oldSelectedTabIndex] = {\n ...tabs[oldSelectedTabIndex],\n active: false,\n };\n }\n\n result[index] = { ...tabs[index], active: true };\n\n return result;\n}\n","@use '@material/tab-bar/mdc-tab-bar';\n@use '@material/tab-scroller/mdc-tab-scroller';\n@use '@material/tab-indicator/mdc-tab-indicator';\n@use '@material/tab/mdc-tab';\n\n$tab-background-color: var(--contrast-300);\n$tab-border-radius: 0.625rem;\n$tab-active-outer-edge-curve-size: 0.75rem;\n$tab-separator-width: 0.125rem;\n$tab-separator-background-color: rgb(var(--contrast-600));\n\n@import './partial-styles/tab-bar-scroller.scss';\n\n:host(limel-tab-bar) {\n --limel-active-tab-background-color: var(\n --tab-panel-background-color,\n rgb(var(--contrast-100))\n );\n isolation: isolate;\n display: block;\n position: relative;\n}\n\n:host(.has-tabs-with-equal-width) {\n .mdc-tab {\n flex: 1 0 auto;\n }\n}\n\n.mdc-tab {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n font-weight: 400;\n letter-spacing: normal;\n font-size: var(--limel-theme-default-font-size);\n text-transform: none;\n}\n\n.mdc-tab-indicator {\n .mdc-tab-indicator__content {\n border: none;\n }\n}\n\n.mdc-tab__ripple {\n box-sizing: border-box;\n border-radius: $tab-border-radius;\n border: {\n style: solid;\n color: transparent;\n width: 0.25rem;\n }\n opacity: 0.7;\n\n &:before,\n &:after {\n transition: background-color 0.5s ease;\n }\n}\n\n.mdc-tab {\n border-radius: 0;\n padding-right: 1rem;\n padding-left: 1rem;\n min-width: 2.5rem;\n background-color: transparent;\n flex: 0 0 auto;\n height: 2.5rem;\n\n &:not(.mdc-tab--active) {\n &:after {\n content: '';\n display: block;\n background-color: $tab-separator-background-color;\n width: $tab-separator-width;\n height: 1rem;\n margin: auto;\n position: absolute;\n top: 0;\n bottom: 0;\n border-radius: 1rem;\n right: -$tab-separator-width;\n }\n\n &:last-of-type {\n &:after {\n display: none;\n }\n }\n }\n\n .mdc-tab__icon {\n color: rgb(\n var(--contrast-800)\n ); // inactive tab's icon color, unless defined by tab item itself\n margin-left: -0.25rem;\n }\n\n limel-badge {\n margin-right: -0.25rem;\n box-shadow: 0 0 0 1px rgb(var(--contrast-600));\n }\n}\n\n.mdc-tab--active {\n border-radius: $tab-border-radius $tab-border-radius 0 0;\n background-color: var(--limel-active-tab-background-color);\n z-index: 2;\n\n &:before,\n &:after {\n content: '';\n display: block;\n width: $tab-active-outer-edge-curve-size;\n height: $tab-active-outer-edge-curve-size;\n position: absolute;\n bottom: 0;\n background-color: var(--limel-active-tab-background-color);\n\n -webkit-mask-image: url(\"data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2' clip-rule='evenodd' viewBox='0 0 50 50'><defs/><path d='M0 0c0 27.594 22.406 50 50 50H0V0z'/></svg>\"); //For chrome and Safari the browser prefix is needed. (last checked Apr 2020)\n mask-image: url(\"data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2' clip-rule='evenodd' viewBox='0 0 50 50'><defs/><path d='M0 0c0 27.594 22.406 50 50 50H0V0z'/></svg>\");\n }\n\n &:before {\n left: -$tab-active-outer-edge-curve-size;\n transform: rotateY(180deg);\n }\n &:after {\n right: -$tab-active-outer-edge-curve-size;\n }\n\n .mdc-ripple-upgraded--background-focused {\n &:before {\n background-color: transparent;\n transition: background-color 1s ease;\n }\n }\n\n .mdc-tab__icon {\n color: var(\n --mdc-theme-primary\n ); // active tab's icon color, unless defined by tab item itself\n }\n}\n\n.mdc-tab__content {\n gap: 0.375rem;\n}\n\n.mdc-tab {\n .mdc-tab__text-label {\n transition: color 0.2s ease;\n padding-left: 0 !important;\n color: var(--limel-theme-on-surface-color);\n }\n &:hover {\n .mdc-tab__text-label {\n color: var(--limel-theme-text-primary-on-background-color);\n }\n }\n &.mdc-tab--active {\n .mdc-tab__text-label {\n color: var(--lime-primary-color, var(--limel-theme-primary-color));\n }\n }\n}\n","import {\n Component,\n h,\n Listen,\n Prop,\n Element,\n EventEmitter,\n Event,\n State,\n Watch,\n} from '@stencil/core';\nimport { MDCTabBar, MDCTabBarActivatedEvent } from '@material/tab-bar';\nimport { strings } from '@material/tab-bar/constants';\nimport { Tab } from './tab.types';\nimport { isEqual, difference } from 'lodash-es';\nimport { setActiveTab } from './tabs';\nimport { getIconColor, getIconName } from '../icon/get-icon-props';\n\nconst { TAB_ACTIVATED_EVENT } = strings;\nconst SCROLL_DISTANCE_ON_CLICK_PX = 150;\nconst HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX = 40;\nconst TOTAL_WIDTH_PERCENTAGE = 100;\nconst OVERLAP_PERCENTAGE = 20;\n\n/**\n * Tabs are great to organize information hierarchically in the interface and divide it into distinct categories. Using tabs, you can create groups of content that are related and at the same level in the hierarchy.\n * :::warning\n * Tab bars should be strictly used for navigation at the top levels.\n * They should never be used to perform actions, or navigate away from the view which contains them.\n * :::\n * An exception for using tab bars in a high level of hierarchy is their usage in modals. This is because modals are perceived as a separate place and not a part of the current context. Therefore you can use tab bars in a modal to group and organize its content.\n * A tab bar can contain an unlimited number of tabs. However, depending on the device width and width of the tabs, the number of tabs that are visible at the same time will vary. When there is limited horizontal space, the component shows a left-arrow and/or right-arrow button, which scrolls and reveals the additional tabs. The tab bar can also be swiped left and right on a touch-device.\n * :::tip Other things to consider\n * Never divide the content of a tab using a nested tab bar.\n * Never place two tab bars within the same screen.\n * Never use background color for icons in tabs.\n * Avoid having long labels for tabs.\n * A tab will never be removed or get disabled, even if there is no content under it.\n * :::\n *\n * @exampleComponent limel-example-tab-bar\n * @exampleComponent limel-example-tab-bar-with-dynamic-tab-width\n * @exampleComponent limel-example-tab-bar-with-equal-tab-width\n */\n@Component({\n tag: 'limel-tab-bar',\n styleUrl: 'tab-bar.scss',\n shadow: true,\n})\nexport class TabBar {\n /**\n * List of tabs to display\n */\n @Prop({ mutable: true })\n public tabs: Tab[] = [];\n\n /**\n * Emitted when a tab has been changed\n */\n @Event()\n private changeTab: EventEmitter<Tab>;\n\n @Element()\n private host: HTMLLimelTabBarElement;\n\n @State()\n private canScrollLeft = false;\n\n @State()\n private canScrollRight = false;\n\n private mdcTabBar: MDCTabBar;\n private setupMdc = false;\n private scrollArea: HTMLElement;\n private scrollContent: HTMLElement;\n\n constructor() {\n this.handleTabActivated = this.handleTabActivated.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleLeftScrollClick = this.handleLeftScrollClick.bind(this);\n this.handleRightScrollClick = this.handleRightScrollClick.bind(this);\n this.renderTab = this.renderTab.bind(this);\n }\n\n public connectedCallback() {\n this.setup();\n }\n\n public componentDidLoad() {\n this.setup();\n this.triggerIconColorWarning();\n }\n\n public componentDidUpdate() {\n if (!this.setupMdc) {\n return;\n }\n\n this.setup();\n this.setupMdc = false;\n }\n\n public disconnectedCallback() {\n this.tearDown();\n }\n\n public render() {\n return (\n <div class=\"mdc-tab-bar\" role=\"tablist\">\n <div\n class={{\n 'mdc-tab-scroller': true,\n 'can-scroll-left': this.canScrollLeft,\n 'can-scroll-right': this.canScrollRight,\n }}\n >\n <div class=\"mdc-tab-scroller__scroll-area lime-hide-scrollbars\">\n <div class=\"mdc-tab-scroller__scroll-content\">\n {this.tabs.map(this.renderTab)}\n </div>\n </div>\n <div class=\"scroll-fade left\" />\n <div class=\"scroll-button left\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n disabled={!this.canScrollLeft}\n onClick={this.handleLeftScrollClick}\n >\n <limel-icon name=\"angle_left\" />\n </button>\n </div>\n <div class=\"scroll-fade right\" />\n <div class=\"scroll-button right\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n disabled={!this.canScrollRight}\n onClick={this.handleRightScrollClick}\n >\n <limel-icon name=\"angle_right\" />\n </button>\n </div>\n </div>\n </div>\n );\n }\n\n @Watch('tabs')\n protected tabsChanged(newTabs: Tab[] = [], oldTabs: Tab[] = []) {\n const newIds = newTabs.map((tab) => tab.id);\n const oldIds = oldTabs.map((tab) => tab.id);\n\n if (isEqual(newIds, oldIds)) {\n return;\n }\n\n this.setupMdc = true;\n this.tearDown();\n }\n\n @Listen('resize', { passive: true, target: 'window' })\n protected handleWindowResize() {\n if (!this.scrollArea) {\n return;\n }\n\n this.handleScroll();\n }\n\n private setup() {\n const element = this.host.shadowRoot.querySelector('.mdc-tab-bar');\n if (!element) {\n return;\n }\n\n this.mdcTabBar = new MDCTabBar(element);\n this.mdcTabBar.focusOnActivate = true;\n this.mdcTabBar.useAutomaticActivation = true;\n this.scrollArea = element.querySelector(\n '.mdc-tab-scroller__scroll-area'\n );\n this.scrollContent = element.querySelector(\n '.mdc-tab-scroller__scroll-content'\n );\n\n this.setupListeners();\n\n // Use timeout to avoid Stencil warning about re-renders. /Ads\n setTimeout(this.handleScroll, 0);\n }\n\n private tearDown() {\n if (this.scrollArea) {\n this.scrollArea.removeEventListener('scroll', this.handleScroll);\n }\n\n if (this.mdcTabBar) {\n this.mdcTabBar.unlisten(\n TAB_ACTIVATED_EVENT,\n this.handleTabActivated\n );\n this.mdcTabBar.destroy();\n }\n }\n\n private setupListeners() {\n this.mdcTabBar.listen(TAB_ACTIVATED_EVENT, this.handleTabActivated);\n this.scrollArea.addEventListener('scroll', this.handleScroll, {\n passive: true,\n });\n }\n\n private handleTabActivated(event: MDCTabBarActivatedEvent) {\n const index = event.detail.index;\n const newTabs = setActiveTab(this.tabs, index);\n\n difference(newTabs, this.tabs)\n .sort(this.sortByInactive)\n // eslint-disable-next-line unicorn/no-array-for-each\n .forEach((tab: Tab) => {\n this.changeTab.emit(tab);\n });\n\n this.tabs = newTabs;\n }\n\n private sortByInactive(a: Tab, b: Tab) {\n return Number(a.active) - Number(b.active);\n }\n\n private handleScroll() {\n const scrollLeft = this.scrollArea.scrollLeft;\n const scrollRight = Math.floor(\n this.scrollContent.getBoundingClientRect().width -\n this.scrollArea.getBoundingClientRect().width -\n scrollLeft\n );\n\n if (scrollLeft > HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX) {\n this.canScrollLeft = true;\n } else {\n this.canScrollLeft = false;\n }\n\n if (scrollRight > HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX) {\n this.canScrollRight = true;\n } else {\n this.canScrollRight = false;\n }\n }\n\n private handleLeftScrollClick() {\n const scrollDistance = this.getScrollDistance();\n this.scrollArea.scroll({\n left: this.scrollArea.scrollLeft - scrollDistance,\n behavior: 'smooth',\n });\n }\n\n private handleRightScrollClick() {\n const scrollDistance = this.getScrollDistance();\n this.scrollArea.scroll({\n left: this.scrollArea.scrollLeft + scrollDistance,\n behavior: 'smooth',\n });\n }\n\n /**\n * Calculates how far to scroll when navigation buttons are clicked.\n * Returns the visible width minus an overlap percentage to maintain context.\n * Falls back to the constant value if something goes wrong.\n */\n private getScrollDistance(): number {\n if (!this.scrollArea) {\n return SCROLL_DISTANCE_ON_CLICK_PX;\n }\n\n const containerWidth = this.scrollArea.getBoundingClientRect().width;\n const scrollDistance =\n containerWidth * (1 - OVERLAP_PERCENTAGE / TOTAL_WIDTH_PERCENTAGE);\n\n return Math.max(scrollDistance, SCROLL_DISTANCE_ON_CLICK_PX);\n }\n\n private renderIcon(tab: Tab) {\n if (!tab.icon) {\n return;\n }\n\n const name = getIconName(tab.icon);\n\n const color = getIconColor(tab.icon, tab.iconColor);\n const style = { color: '' };\n\n if (color) {\n style.color = color;\n }\n\n return (\n <limel-icon\n class=\"mdc-tab__icon\"\n name={name}\n style={style}\n size=\"small\"\n aria-hidden=\"true\"\n />\n );\n }\n\n private renderTab(tab: Tab) {\n return (\n <button\n class={{\n 'mdc-tab': true,\n 'mdc-tab--active': !!tab.active,\n }}\n role=\"tab\"\n aria-selected={tab.active ? 'true' : 'false'}\n tabindex={tab.active ? 0 : -1}\n >\n <span class=\"mdc-tab__content\">\n {this.renderIcon(tab)}\n <span class=\"mdc-tab__text-label\">{tab.text}</span>\n {tab.badge ? <limel-badge label={tab.badge} /> : ''}\n </span>\n <span\n class={{\n 'mdc-tab-indicator': true,\n 'mdc-tab-indicator--active': !!tab.active,\n }}\n >\n <span class=\"mdc-tab-indicator__content mdc-tab-indicator__content--underline\" />\n </span>\n <span class=\"mdc-tab__ripple\" />\n </button>\n );\n }\n\n private triggerIconColorWarning() {\n if (this.tabs.some((tab) => tab.iconColor)) {\n console.warn(\n \"The `iconColor` prop is deprecated now! Use the new `Icon` interface and instead of `iconColor: 'color-name'` write `icon {name: 'icon-name', color: 'color-name'}`.\"\n );\n }\n }\n}\n"],"version":3}
|