1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | import * as tslib_1 from "tslib";
|
24 | import { getCorrectPropertyName } from '@material/animation/util';
|
25 | import { MDCComponent } from '@material/base/component';
|
26 | import { MDCTabBar } from '../tab-bar/component';
|
27 | import { MDCTabBarScrollerFoundation } from './foundation';
|
28 | var MDCTabBarScroller = (function (_super) {
|
29 | tslib_1.__extends(MDCTabBarScroller, _super);
|
30 | function MDCTabBarScroller() {
|
31 | return _super !== null && _super.apply(this, arguments) || this;
|
32 | }
|
33 | MDCTabBarScroller.attachTo = function (root) {
|
34 | return new MDCTabBarScroller(root);
|
35 | };
|
36 | Object.defineProperty(MDCTabBarScroller.prototype, "tabBar", {
|
37 | get: function () {
|
38 | return this.tabBar_;
|
39 | },
|
40 | enumerable: true,
|
41 | configurable: true
|
42 | });
|
43 | MDCTabBarScroller.prototype.initialize = function (tabBarFactory) {
|
44 | if (tabBarFactory === void 0) { tabBarFactory = function (el) { return new MDCTabBar(el); }; }
|
45 | this.scrollFrame_ =
|
46 | this.root_.querySelector(MDCTabBarScrollerFoundation.strings.FRAME_SELECTOR);
|
47 | this.tabBarEl_ =
|
48 | this.root_.querySelector(MDCTabBarScrollerFoundation.strings.TABS_SELECTOR);
|
49 | this.forwardIndicator_ =
|
50 | this.root_.querySelector(MDCTabBarScrollerFoundation.strings.INDICATOR_FORWARD_SELECTOR);
|
51 | this.backIndicator_ =
|
52 | this.root_.querySelector(MDCTabBarScrollerFoundation.strings.INDICATOR_BACK_SELECTOR);
|
53 | this.tabBar_ = tabBarFactory(this.tabBarEl_);
|
54 | };
|
55 | MDCTabBarScroller.prototype.getDefaultFoundation = function () {
|
56 | var _this = this;
|
57 |
|
58 |
|
59 |
|
60 | var adapter = {
|
61 | addClass: function (className) { return _this.root_.classList.add(className); },
|
62 | removeClass: function (className) { return _this.root_.classList.remove(className); },
|
63 | eventTargetHasClass: function (target, className) { return target.classList.contains(className); },
|
64 | addClassToForwardIndicator: function (className) { return _this.forwardIndicator_.classList.add(className); },
|
65 | removeClassFromForwardIndicator: function (className) { return _this.forwardIndicator_.classList.remove(className); },
|
66 | addClassToBackIndicator: function (className) { return _this.backIndicator_.classList.add(className); },
|
67 | removeClassFromBackIndicator: function (className) { return _this.backIndicator_.classList.remove(className); },
|
68 | isRTL: function () { return getComputedStyle(_this.root_).getPropertyValue('direction') === 'rtl'; },
|
69 | registerBackIndicatorClickHandler: function (handler) { return _this.backIndicator_.addEventListener('click', handler); },
|
70 | deregisterBackIndicatorClickHandler: function (handler) { return _this.backIndicator_.removeEventListener('click', handler); },
|
71 | registerForwardIndicatorClickHandler: function (handler) { return _this.forwardIndicator_.addEventListener('click', handler); },
|
72 | deregisterForwardIndicatorClickHandler: function (handler) { return _this.forwardIndicator_.removeEventListener('click', handler); },
|
73 | registerCapturedInteractionHandler: function (evt, handler) { return _this.root_.addEventListener(evt, handler, true); },
|
74 | deregisterCapturedInteractionHandler: function (evt, handler) { return _this.root_.removeEventListener(evt, handler, true); },
|
75 | registerWindowResizeHandler: function (handler) { return window.addEventListener('resize', handler); },
|
76 | deregisterWindowResizeHandler: function (handler) { return window.removeEventListener('resize', handler); },
|
77 | getNumberOfTabs: function () { return _this.tabBar.tabs.length; },
|
78 | getComputedWidthForTabAtIndex: function (index) { return _this.tabBar.tabs[index].computedWidth; },
|
79 | getComputedLeftForTabAtIndex: function (index) { return _this.tabBar.tabs[index].computedLeft; },
|
80 | getOffsetWidthForScrollFrame: function () { return _this.scrollFrame_.offsetWidth; },
|
81 | getScrollLeftForScrollFrame: function () { return _this.scrollFrame_.scrollLeft; },
|
82 | setScrollLeftForScrollFrame: function (scrollLeftAmount) { return _this.scrollFrame_.scrollLeft = scrollLeftAmount; },
|
83 | getOffsetWidthForTabBar: function () { return _this.tabBarEl_.offsetWidth; },
|
84 | setTransformStyleForTabBar: function (value) {
|
85 | _this.tabBarEl_.style.setProperty(getCorrectPropertyName(window, 'transform'), value);
|
86 | },
|
87 | getOffsetLeftForEventTarget: function (target) { return target.offsetLeft; },
|
88 | getOffsetWidthForEventTarget: function (target) { return target.offsetWidth; },
|
89 | };
|
90 |
|
91 | return new MDCTabBarScrollerFoundation(adapter);
|
92 | };
|
93 | MDCTabBarScroller.prototype.layout = function () {
|
94 | this.foundation_.layout();
|
95 | };
|
96 | return MDCTabBarScroller;
|
97 | }(MDCComponent));
|
98 | export { MDCTabBarScroller };
|
99 |
|
\ | No newline at end of file |