@limetech/lime-elements 35.0.0-next.7 → 35.0.0
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/dist/cjs/checkbox.template-b6c6562c.js +43 -0
- package/dist/cjs/{component-f7ef9087.js → component-66df95e7.js} +190 -132
- package/dist/cjs/{component-f532119f.js → component-67144c1c.js} +47 -3
- package/dist/cjs/{component-ed21410d.js → component-ae3bfacf.js} +367 -235
- package/dist/cjs/{component-2faaa141.js → component-cf490570.js} +213 -143
- package/dist/cjs/{component-10dbdd60.js → component-dd795ff0.js} +7 -5
- package/dist/cjs/{dateFormatter-26eac73a.js → dateFormatter-34b77ead.js} +37 -31
- package/dist/cjs/{index-e63a89d7.js → index-2a28697b.js} +27 -1
- package/dist/cjs/lime-elements.cjs.js +3 -3
- package/dist/cjs/limel-badge.cjs.entry.js +4 -4
- package/dist/cjs/limel-banner.cjs.entry.js +2 -2
- package/dist/cjs/limel-button-group.cjs.entry.js +3 -3
- package/dist/cjs/limel-button.cjs.entry.js +3 -3
- package/dist/cjs/limel-checkbox.cjs.entry.js +136 -90
- package/dist/cjs/limel-chip-set.cjs.entry.js +235 -191
- package/dist/cjs/limel-circular-progress.cjs.entry.js +3 -3
- package/dist/cjs/limel-code-editor.cjs.entry.js +50 -23
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
- package/dist/cjs/limel-color-picker-palette_2.cjs.entry.js +3 -3
- package/dist/cjs/limel-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/limel-config.cjs.entry.js +2 -2
- package/dist/cjs/limel-date-picker.cjs.entry.js +8 -8
- package/dist/cjs/limel-dialog.cjs.entry.js +9 -10
- package/dist/cjs/limel-file.cjs.entry.js +11 -9
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +971 -657
- package/dist/cjs/limel-flex-container.cjs.entry.js +6 -2
- package/dist/cjs/limel-form.cjs.entry.js +423 -449
- package/dist/cjs/limel-grid.cjs.entry.js +2 -2
- package/dist/cjs/limel-header.cjs.entry.js +2 -2
- package/dist/cjs/limel-icon-button.cjs.entry.js +6 -6
- package/dist/cjs/limel-icon.cjs.entry.js +2 -2
- package/dist/cjs/limel-input-field.cjs.entry.js +12 -10
- package/dist/cjs/limel-linear-progress.cjs.entry.js +4 -4
- package/dist/cjs/limel-list_3.cjs.entry.js +154 -91
- package/dist/cjs/limel-menu-list.cjs.entry.js +87 -74
- package/dist/cjs/limel-menu.cjs.entry.js +2 -2
- package/dist/cjs/limel-picker.cjs.entry.js +4 -7
- package/dist/cjs/limel-popover-surface.cjs.entry.js +3 -3
- package/dist/cjs/limel-progress-flow-item.cjs.entry.js +2 -2
- package/dist/cjs/limel-progress-flow.cjs.entry.js +2 -2
- package/dist/cjs/limel-select.cjs.entry.js +6 -6
- package/dist/cjs/limel-slider.cjs.entry.js +34 -7
- package/dist/cjs/limel-snackbar.cjs.entry.js +79 -73
- package/dist/cjs/limel-spinner.cjs.entry.js +2 -2
- package/dist/cjs/limel-switch.cjs.entry.js +498 -202
- package/dist/cjs/limel-tab-bar.cjs.entry.js +263 -186
- package/dist/cjs/limel-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/limel-table.cjs.entry.js +78 -17
- package/dist/cjs/limel-tooltip_2.cjs.entry.js +3 -3
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{moment-d287c0ed.js → moment-5c6581b7.js} +94 -79
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/badge/badge.css +9 -15
- package/dist/collection/components/badge/badge.js +2 -2
- package/dist/collection/components/button/button.css +333 -145
- package/dist/collection/components/button-group/button-group.css +30 -5
- package/dist/collection/components/checkbox/checkbox.css +70 -17
- package/dist/collection/components/checkbox/checkbox.js +5 -4
- package/dist/collection/components/checkbox/checkbox.template.js +24 -20
- package/dist/collection/components/chip-set/chip-set.css +367 -34
- package/dist/collection/components/circular-progress/circular-progress.css +2 -2
- package/dist/collection/components/code-editor/code-editor.css +8 -13
- package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.css +1 -1
- package/dist/collection/components/dialog/dialog.css +153 -109
- package/dist/collection/components/dialog/dialog.js +7 -0
- package/dist/collection/components/file/icon-background-colors.js +2 -1
- package/dist/collection/components/file/icon-fill-colors.js +2 -1
- package/dist/collection/components/file/icons.js +1 -1
- package/dist/collection/components/flex-container/flex-container.js +10 -0
- package/dist/collection/components/form/fields/schema-field.js +0 -1
- package/dist/collection/components/form/form.css +5 -1
- package/dist/collection/components/form/form.js +34 -0
- package/dist/collection/components/form/form.types.js +0 -1
- package/dist/collection/components/form/templates/common.js +4 -1
- package/dist/collection/components/icon-button/icon-button.css +116 -59
- package/dist/collection/components/icon-button/icon-button.js +1 -0
- package/dist/collection/components/input-field/input-field.css +344 -29
- package/dist/collection/components/input-field/input-field.js +5 -3
- package/dist/collection/components/linear-progress/linear-progress.css +14 -2
- package/dist/collection/components/list/list-renderer.js +1 -4
- package/dist/collection/components/list/list.css +937 -90
- package/dist/collection/components/list/list.js +13 -6
- package/dist/collection/components/menu-list/menu-list-renderer.js +1 -4
- package/dist/collection/components/menu-list/menu-list.css +937 -90
- package/dist/collection/components/menu-surface/menu-surface.css +31 -7
- package/dist/collection/components/picker/picker.js +4 -6
- package/dist/collection/components/popover-surface/popover-surface.css +1 -0
- package/dist/collection/components/select/select.css +424 -17
- package/dist/collection/components/select/select.template.js +1 -1
- package/dist/collection/components/slider/slider.css +49 -2
- package/dist/collection/components/snackbar/snackbar.css +588 -301
- package/dist/collection/components/switch/switch.css +592 -222
- package/dist/collection/components/switch/switch.js +18 -12
- package/dist/collection/components/tab-bar/tab-bar.css +77 -48
- package/dist/collection/components/table/table.css +219 -165
- package/dist/collection/components/table/table.js +104 -19
- package/dist/collection/components/table/table.types.js +0 -1
- package/dist/collection/style/functions.scss +3 -1
- package/dist/collection/style/internal/lime-theme.scss +30 -31
- package/dist/collection/style/internal/lime-typography.scss +55 -56
- package/dist/esm/checkbox.template-2f1bbc98.js +41 -0
- package/dist/esm/{component-89e0ce26.js → component-19eb6e2b.js} +7 -5
- package/dist/esm/{component-2630c3d7.js → component-288691f3.js} +367 -235
- package/dist/esm/{component-d682c974.js → component-410aad5a.js} +44 -4
- package/dist/esm/{component-429e92ee.js → component-5b4ac85a.js} +213 -143
- package/dist/esm/{component-834d85a1.js → component-fffa3419.js} +190 -132
- package/dist/esm/{dateFormatter-c9b41548.js → dateFormatter-ed618478.js} +37 -31
- package/dist/esm/{index-2316f345.js → index-11cd0b60.js} +27 -1
- package/dist/esm/lime-elements.js +3 -3
- package/dist/esm/limel-badge.entry.js +4 -4
- package/dist/esm/limel-banner.entry.js +2 -2
- package/dist/esm/limel-button-group.entry.js +3 -3
- package/dist/esm/limel-button.entry.js +3 -3
- package/dist/esm/limel-checkbox.entry.js +136 -90
- package/dist/esm/limel-chip-set.entry.js +235 -191
- package/dist/esm/limel-circular-progress.entry.js +3 -3
- package/dist/esm/limel-code-editor.entry.js +50 -23
- package/dist/esm/limel-collapsible-section.entry.js +2 -2
- package/dist/esm/limel-color-picker-palette_2.entry.js +3 -3
- package/dist/esm/limel-color-picker.entry.js +2 -2
- package/dist/esm/limel-config.entry.js +2 -2
- package/dist/esm/limel-date-picker.entry.js +8 -8
- package/dist/esm/limel-dialog.entry.js +9 -10
- package/dist/esm/limel-file.entry.js +11 -9
- package/dist/esm/limel-flatpickr-adapter.entry.js +971 -657
- package/dist/esm/limel-flex-container.entry.js +6 -2
- package/dist/esm/limel-form.entry.js +424 -450
- package/dist/esm/limel-grid.entry.js +2 -2
- package/dist/esm/limel-header.entry.js +2 -2
- package/dist/esm/limel-icon-button.entry.js +6 -6
- package/dist/esm/limel-icon.entry.js +2 -2
- package/dist/esm/limel-input-field.entry.js +12 -10
- package/dist/esm/limel-linear-progress.entry.js +4 -4
- package/dist/esm/limel-list_3.entry.js +154 -91
- package/dist/esm/limel-menu-list.entry.js +87 -74
- package/dist/esm/limel-menu.entry.js +2 -2
- package/dist/esm/limel-picker.entry.js +4 -7
- package/dist/esm/limel-popover-surface.entry.js +3 -3
- package/dist/esm/limel-progress-flow-item.entry.js +2 -2
- package/dist/esm/limel-progress-flow.entry.js +2 -2
- package/dist/esm/limel-select.entry.js +6 -6
- package/dist/esm/limel-slider.entry.js +34 -7
- package/dist/esm/limel-snackbar.entry.js +79 -73
- package/dist/esm/limel-spinner.entry.js +2 -2
- package/dist/esm/limel-switch.entry.js +498 -202
- package/dist/esm/limel-tab-bar.entry.js +263 -186
- package/dist/esm/limel-tab-panel.entry.js +2 -2
- package/dist/esm/limel-table.entry.js +78 -17
- package/dist/esm/limel-tooltip_2.entry.js +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{moment-8dadd938.js → moment-29c213b7.js} +94 -79
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-04b5bc13.entry.js +82 -0
- package/dist/lime-elements/p-101af376.entry.js +1 -0
- package/dist/lime-elements/p-1c284626.js +73 -0
- package/dist/lime-elements/p-1ede893b.js +1 -0
- package/dist/lime-elements/p-2639edf9.entry.js +73 -0
- package/dist/lime-elements/p-2da6e2a3.entry.js +1 -0
- package/dist/lime-elements/p-2ff40ce6.js +3 -0
- package/dist/lime-elements/{p-cd619c16.entry.js → p-358706b6.entry.js} +1 -1
- package/dist/lime-elements/p-36ecbd03.entry.js +1 -0
- package/dist/lime-elements/p-404e1465.entry.js +1 -0
- package/dist/lime-elements/p-42b67933.entry.js +1 -0
- package/dist/lime-elements/p-440454ed.entry.js +1 -0
- package/dist/lime-elements/{p-076bd4dc.js → p-48d4ef20.js} +3 -3
- package/dist/lime-elements/p-53e01330.entry.js +1 -0
- package/dist/lime-elements/p-5908c21d.entry.js +1 -0
- package/dist/lime-elements/p-5b7a8c61.entry.js +20 -0
- package/dist/lime-elements/p-63e25a0a.entry.js +1 -0
- package/dist/lime-elements/p-6e7809a6.entry.js +1 -0
- package/dist/lime-elements/p-705334c1.entry.js +1 -0
- package/dist/lime-elements/p-716a6acd.entry.js +16 -0
- package/dist/lime-elements/p-71efe2ca.entry.js +37 -0
- package/dist/lime-elements/{p-e1928c0e.js → p-72e03943.js} +1 -1
- package/dist/lime-elements/p-80327bb8.entry.js +16 -0
- package/dist/lime-elements/p-83ea517b.entry.js +1 -0
- package/dist/lime-elements/p-87a1e1cb.entry.js +1 -0
- package/dist/lime-elements/{p-8ad5e143.entry.js → p-94899019.entry.js} +1 -1
- package/dist/lime-elements/p-95f275ab.entry.js +1 -0
- package/dist/lime-elements/p-96f4b892.entry.js +131 -0
- package/dist/lime-elements/p-97d6c4a6.entry.js +1 -0
- package/dist/lime-elements/p-a465084b.entry.js +82 -0
- package/dist/lime-elements/p-a5af84a7.entry.js +1 -0
- package/dist/lime-elements/p-b91dc1ef.entry.js +1 -0
- package/dist/lime-elements/p-bd8c9384.entry.js +1 -0
- package/dist/lime-elements/p-c4b38454.entry.js +1 -0
- package/dist/lime-elements/p-c7953a05.entry.js +82 -0
- package/dist/lime-elements/p-c80acfb2.entry.js +59 -0
- package/dist/lime-elements/p-cbc43682.js +81 -0
- package/dist/lime-elements/{p-ace9affc.js → p-d0a7de87.js} +2 -2
- package/dist/lime-elements/p-d1ee4501.entry.js +37 -0
- package/dist/lime-elements/p-d74fa89e.entry.js +1 -0
- package/dist/lime-elements/p-da962c64.entry.js +1 -0
- package/dist/lime-elements/p-dfba92de.js +126 -0
- package/dist/lime-elements/p-dfbe015e.entry.js +1 -0
- package/dist/lime-elements/p-e83dddcd.entry.js +126 -0
- package/dist/lime-elements/p-e98d76e8.entry.js +59 -0
- package/dist/lime-elements/{p-92146da6.js → p-e9a95b8f.js} +1 -1
- package/dist/lime-elements/p-eae8c615.entry.js +1 -0
- package/dist/lime-elements/p-ed65468d.entry.js +1 -0
- package/dist/lime-elements/p-f0c9dadd.entry.js +1 -0
- package/dist/lime-elements/style/functions.scss +3 -1
- package/dist/lime-elements/style/internal/lime-theme.scss +30 -31
- package/dist/lime-elements/style/internal/lime-typography.scss +55 -56
- package/dist/types/components/badge/badge.d.ts +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +3 -2
- package/dist/types/components/checkbox/checkbox.template.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +7 -0
- package/dist/types/components/flex-container/flex-container.d.ts +7 -0
- package/dist/types/components/form/fields/array-field.d.ts +0 -1
- package/dist/types/components/form/fields/object-field.d.ts +2 -2
- package/dist/types/components/form/form.d.ts +8 -1
- package/dist/types/components/form/form.types.d.ts +6 -0
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/table/table.d.ts +10 -1
- package/dist/types/components/table/table.types.d.ts +13 -0
- package/dist/types/components.d.ts +20 -4
- package/dist/types/stencil-public-runtime.d.ts +6 -4
- package/package.json +30 -43
- package/dist/cjs/checkbox.template-50eb8b76.js +0 -39
- package/dist/esm/checkbox.template-50f7c07b.js +0 -37
- package/dist/lime-elements/p-041ae00c.entry.js +0 -1
- package/dist/lime-elements/p-0ce9165f.entry.js +0 -1
- package/dist/lime-elements/p-0fd208f3.entry.js +0 -82
- package/dist/lime-elements/p-143705b1.entry.js +0 -1
- package/dist/lime-elements/p-1876a96a.entry.js +0 -1
- package/dist/lime-elements/p-1fb5340d.entry.js +0 -1
- package/dist/lime-elements/p-250f55be.js +0 -1
- package/dist/lime-elements/p-29f054cc.entry.js +0 -37
- package/dist/lime-elements/p-31fecf5d.entry.js +0 -1
- package/dist/lime-elements/p-34c7872e.entry.js +0 -1
- package/dist/lime-elements/p-468e940e.entry.js +0 -16
- package/dist/lime-elements/p-4932c029.entry.js +0 -1
- package/dist/lime-elements/p-4b5af81b.entry.js +0 -1
- package/dist/lime-elements/p-510bb5a4.entry.js +0 -1
- package/dist/lime-elements/p-58cbe99d.entry.js +0 -1
- package/dist/lime-elements/p-597cbe05.entry.js +0 -1
- package/dist/lime-elements/p-6003f817.entry.js +0 -1
- package/dist/lime-elements/p-668795a7.js +0 -73
- package/dist/lime-elements/p-714fde78.entry.js +0 -1
- package/dist/lime-elements/p-7476efe0.entry.js +0 -1
- package/dist/lime-elements/p-8707d77b.entry.js +0 -73
- package/dist/lime-elements/p-8a2c1038.entry.js +0 -16
- package/dist/lime-elements/p-902347b9.js +0 -81
- package/dist/lime-elements/p-90c6fa15.js +0 -126
- package/dist/lime-elements/p-90f3e17c.entry.js +0 -37
- package/dist/lime-elements/p-98d50f52.entry.js +0 -1
- package/dist/lime-elements/p-a2cf74c1.entry.js +0 -1
- package/dist/lime-elements/p-a397bab7.js +0 -3
- package/dist/lime-elements/p-a4c532a7.entry.js +0 -1
- package/dist/lime-elements/p-a93f4190.entry.js +0 -82
- package/dist/lime-elements/p-be56ffab.entry.js +0 -1
- package/dist/lime-elements/p-c35874db.entry.js +0 -1
- package/dist/lime-elements/p-c8c8a946.entry.js +0 -59
- package/dist/lime-elements/p-ca664c9f.entry.js +0 -1
- package/dist/lime-elements/p-d2c74396.entry.js +0 -1
- package/dist/lime-elements/p-d48ad9f7.entry.js +0 -126
- package/dist/lime-elements/p-d93a3b07.entry.js +0 -16
- package/dist/lime-elements/p-df8faeb4.entry.js +0 -59
- package/dist/lime-elements/p-dfe0a58b.entry.js +0 -1
- package/dist/lime-elements/p-e275f502.entry.js +0 -37
- package/dist/lime-elements/p-e881e98d.entry.js +0 -1
- package/dist/lime-elements/p-f2c706b8.entry.js +0 -131
- package/dist/lime-elements/p-fc30b8e3.entry.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-11cd0b60.js';
|
|
2
2
|
import { a as arrayMap, w as baseUnary, f as SetCache, h as cacheHas, j as isEqual } from './isEqual-4f22635f.js';
|
|
3
|
-
import { M as MDCFoundation, a as MDCComponent } from './component-
|
|
4
|
-
import { a as applyPassive, b as MDCRippleFoundation, M as MDCRipple } from './component-
|
|
3
|
+
import { M as MDCFoundation, a as MDCComponent } from './component-410aad5a.js';
|
|
4
|
+
import { a as applyPassive, b as MDCRippleFoundation, M as MDCRipple } from './component-5b4ac85a.js';
|
|
5
5
|
import { m as matches } from './ponyfill-30263d5e.js';
|
|
6
6
|
import { a as arrayIncludes, b as arrayIncludesWith, c as baseRest, i as isArrayLikeObject, d as baseFlatten } from './_arrayIncludesWith-b5d3fd9e.js';
|
|
7
7
|
import './eq-c1c7f528.js';
|
|
@@ -137,7 +137,19 @@ var __assign$3 = function() {
|
|
|
137
137
|
return t;
|
|
138
138
|
};
|
|
139
139
|
return __assign$3.apply(this, arguments);
|
|
140
|
-
};
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
function __values(o) {
|
|
143
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
144
|
+
if (m) return m.call(o);
|
|
145
|
+
if (o && typeof o.length === "number") return {
|
|
146
|
+
next: function () {
|
|
147
|
+
if (o && i >= o.length) o = void 0;
|
|
148
|
+
return { value: o && o[i++], done: !o };
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
152
|
+
}
|
|
141
153
|
|
|
142
154
|
/*! *****************************************************************************
|
|
143
155
|
Copyright (c) Microsoft Corporation.
|
|
@@ -288,14 +300,14 @@ var MDCTabScrollerRTLDefault = /** @class */ (function (_super) {
|
|
|
288
300
|
}
|
|
289
301
|
MDCTabScrollerRTLDefault.prototype.getScrollPositionRTL = function () {
|
|
290
302
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
291
|
-
var right = this.
|
|
303
|
+
var right = this.calculateScrollEdges().right;
|
|
292
304
|
// Scroll values on most browsers are ints instead of floats so we round
|
|
293
305
|
return Math.round(right - currentScrollLeft);
|
|
294
306
|
};
|
|
295
307
|
MDCTabScrollerRTLDefault.prototype.scrollToRTL = function (scrollX) {
|
|
296
|
-
var edges = this.
|
|
308
|
+
var edges = this.calculateScrollEdges();
|
|
297
309
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
298
|
-
var clampedScrollLeft = this.
|
|
310
|
+
var clampedScrollLeft = this.clampScrollValue(edges.right - scrollX);
|
|
299
311
|
return {
|
|
300
312
|
finalScrollPosition: clampedScrollLeft,
|
|
301
313
|
scrollDelta: clampedScrollLeft - currentScrollLeft,
|
|
@@ -303,7 +315,7 @@ var MDCTabScrollerRTLDefault = /** @class */ (function (_super) {
|
|
|
303
315
|
};
|
|
304
316
|
MDCTabScrollerRTLDefault.prototype.incrementScrollRTL = function (scrollX) {
|
|
305
317
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
306
|
-
var clampedScrollLeft = this.
|
|
318
|
+
var clampedScrollLeft = this.clampScrollValue(currentScrollLeft - scrollX);
|
|
307
319
|
return {
|
|
308
320
|
finalScrollPosition: clampedScrollLeft,
|
|
309
321
|
scrollDelta: clampedScrollLeft - currentScrollLeft,
|
|
@@ -312,7 +324,7 @@ var MDCTabScrollerRTLDefault = /** @class */ (function (_super) {
|
|
|
312
324
|
MDCTabScrollerRTLDefault.prototype.getAnimatingScrollPosition = function (scrollX) {
|
|
313
325
|
return scrollX;
|
|
314
326
|
};
|
|
315
|
-
MDCTabScrollerRTLDefault.prototype.
|
|
327
|
+
MDCTabScrollerRTLDefault.prototype.calculateScrollEdges = function () {
|
|
316
328
|
var contentWidth = this.adapter.getScrollContentOffsetWidth();
|
|
317
329
|
var rootWidth = this.adapter.getScrollAreaOffsetWidth();
|
|
318
330
|
return {
|
|
@@ -320,8 +332,8 @@ var MDCTabScrollerRTLDefault = /** @class */ (function (_super) {
|
|
|
320
332
|
right: contentWidth - rootWidth,
|
|
321
333
|
};
|
|
322
334
|
};
|
|
323
|
-
MDCTabScrollerRTLDefault.prototype.
|
|
324
|
-
var edges = this.
|
|
335
|
+
MDCTabScrollerRTLDefault.prototype.clampScrollValue = function (scrollX) {
|
|
336
|
+
var edges = this.calculateScrollEdges();
|
|
325
337
|
return Math.min(Math.max(edges.left, scrollX), edges.right);
|
|
326
338
|
};
|
|
327
339
|
return MDCTabScrollerRTLDefault;
|
|
@@ -360,7 +372,7 @@ var MDCTabScrollerRTLNegative = /** @class */ (function (_super) {
|
|
|
360
372
|
};
|
|
361
373
|
MDCTabScrollerRTLNegative.prototype.scrollToRTL = function (scrollX) {
|
|
362
374
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
363
|
-
var clampedScrollLeft = this.
|
|
375
|
+
var clampedScrollLeft = this.clampScrollValue(-scrollX);
|
|
364
376
|
return {
|
|
365
377
|
finalScrollPosition: clampedScrollLeft,
|
|
366
378
|
scrollDelta: clampedScrollLeft - currentScrollLeft,
|
|
@@ -368,7 +380,7 @@ var MDCTabScrollerRTLNegative = /** @class */ (function (_super) {
|
|
|
368
380
|
};
|
|
369
381
|
MDCTabScrollerRTLNegative.prototype.incrementScrollRTL = function (scrollX) {
|
|
370
382
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
371
|
-
var clampedScrollLeft = this.
|
|
383
|
+
var clampedScrollLeft = this.clampScrollValue(currentScrollLeft - scrollX);
|
|
372
384
|
return {
|
|
373
385
|
finalScrollPosition: clampedScrollLeft,
|
|
374
386
|
scrollDelta: clampedScrollLeft - currentScrollLeft,
|
|
@@ -377,7 +389,7 @@ var MDCTabScrollerRTLNegative = /** @class */ (function (_super) {
|
|
|
377
389
|
MDCTabScrollerRTLNegative.prototype.getAnimatingScrollPosition = function (scrollX, translateX) {
|
|
378
390
|
return scrollX - translateX;
|
|
379
391
|
};
|
|
380
|
-
MDCTabScrollerRTLNegative.prototype.
|
|
392
|
+
MDCTabScrollerRTLNegative.prototype.calculateScrollEdges = function () {
|
|
381
393
|
var contentWidth = this.adapter.getScrollContentOffsetWidth();
|
|
382
394
|
var rootWidth = this.adapter.getScrollAreaOffsetWidth();
|
|
383
395
|
return {
|
|
@@ -385,8 +397,8 @@ var MDCTabScrollerRTLNegative = /** @class */ (function (_super) {
|
|
|
385
397
|
right: 0,
|
|
386
398
|
};
|
|
387
399
|
};
|
|
388
|
-
MDCTabScrollerRTLNegative.prototype.
|
|
389
|
-
var edges = this.
|
|
400
|
+
MDCTabScrollerRTLNegative.prototype.clampScrollValue = function (scrollX) {
|
|
401
|
+
var edges = this.calculateScrollEdges();
|
|
390
402
|
return Math.max(Math.min(edges.right, scrollX), edges.left);
|
|
391
403
|
};
|
|
392
404
|
return MDCTabScrollerRTLNegative;
|
|
@@ -426,7 +438,7 @@ var MDCTabScrollerRTLReverse = /** @class */ (function (_super) {
|
|
|
426
438
|
};
|
|
427
439
|
MDCTabScrollerRTLReverse.prototype.scrollToRTL = function (scrollX) {
|
|
428
440
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
429
|
-
var clampedScrollLeft = this.
|
|
441
|
+
var clampedScrollLeft = this.clampScrollValue(scrollX);
|
|
430
442
|
return {
|
|
431
443
|
finalScrollPosition: clampedScrollLeft,
|
|
432
444
|
scrollDelta: currentScrollLeft - clampedScrollLeft,
|
|
@@ -434,7 +446,7 @@ var MDCTabScrollerRTLReverse = /** @class */ (function (_super) {
|
|
|
434
446
|
};
|
|
435
447
|
MDCTabScrollerRTLReverse.prototype.incrementScrollRTL = function (scrollX) {
|
|
436
448
|
var currentScrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
437
|
-
var clampedScrollLeft = this.
|
|
449
|
+
var clampedScrollLeft = this.clampScrollValue(currentScrollLeft + scrollX);
|
|
438
450
|
return {
|
|
439
451
|
finalScrollPosition: clampedScrollLeft,
|
|
440
452
|
scrollDelta: currentScrollLeft - clampedScrollLeft,
|
|
@@ -443,7 +455,7 @@ var MDCTabScrollerRTLReverse = /** @class */ (function (_super) {
|
|
|
443
455
|
MDCTabScrollerRTLReverse.prototype.getAnimatingScrollPosition = function (scrollX, translateX) {
|
|
444
456
|
return scrollX + translateX;
|
|
445
457
|
};
|
|
446
|
-
MDCTabScrollerRTLReverse.prototype.
|
|
458
|
+
MDCTabScrollerRTLReverse.prototype.calculateScrollEdges = function () {
|
|
447
459
|
var contentWidth = this.adapter.getScrollContentOffsetWidth();
|
|
448
460
|
var rootWidth = this.adapter.getScrollAreaOffsetWidth();
|
|
449
461
|
return {
|
|
@@ -451,8 +463,8 @@ var MDCTabScrollerRTLReverse = /** @class */ (function (_super) {
|
|
|
451
463
|
right: 0,
|
|
452
464
|
};
|
|
453
465
|
};
|
|
454
|
-
MDCTabScrollerRTLReverse.prototype.
|
|
455
|
-
var edges = this.
|
|
466
|
+
MDCTabScrollerRTLReverse.prototype.clampScrollValue = function (scrollX) {
|
|
467
|
+
var edges = this.calculateScrollEdges();
|
|
456
468
|
return Math.min(Math.max(edges.right, scrollX), edges.left);
|
|
457
469
|
};
|
|
458
470
|
return MDCTabScrollerRTLReverse;
|
|
@@ -487,7 +499,7 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
487
499
|
/**
|
|
488
500
|
* Controls whether we should handle the transitionend and interaction events during the animation.
|
|
489
501
|
*/
|
|
490
|
-
_this.
|
|
502
|
+
_this.isAnimating = false;
|
|
491
503
|
return _this;
|
|
492
504
|
}
|
|
493
505
|
Object.defineProperty(MDCTabScrollerFoundation, "cssClasses", {
|
|
@@ -519,8 +531,12 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
519
531
|
getScrollAreaScrollLeft: function () { return 0; },
|
|
520
532
|
getScrollContentOffsetWidth: function () { return 0; },
|
|
521
533
|
getScrollAreaOffsetWidth: function () { return 0; },
|
|
522
|
-
computeScrollAreaClientRect: function () {
|
|
523
|
-
|
|
534
|
+
computeScrollAreaClientRect: function () {
|
|
535
|
+
return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
|
|
536
|
+
},
|
|
537
|
+
computeScrollContentClientRect: function () {
|
|
538
|
+
return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
|
|
539
|
+
},
|
|
524
540
|
computeHorizontalScrollbarHeight: function () { return 0; },
|
|
525
541
|
};
|
|
526
542
|
// tslint:enable:object-literal-sort-keys
|
|
@@ -539,10 +555,10 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
539
555
|
* Computes the current visual scroll position
|
|
540
556
|
*/
|
|
541
557
|
MDCTabScrollerFoundation.prototype.getScrollPosition = function () {
|
|
542
|
-
if (this.
|
|
543
|
-
return this.
|
|
558
|
+
if (this.isRTL()) {
|
|
559
|
+
return this.computeCurrentScrollPositionRTL();
|
|
544
560
|
}
|
|
545
|
-
var currentTranslateX = this.
|
|
561
|
+
var currentTranslateX = this.calculateCurrentTranslateX();
|
|
546
562
|
var scrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
547
563
|
return scrollLeft - currentTranslateX;
|
|
548
564
|
};
|
|
@@ -551,11 +567,11 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
551
567
|
*/
|
|
552
568
|
MDCTabScrollerFoundation.prototype.handleInteraction = function () {
|
|
553
569
|
// Early exit if we aren't animating
|
|
554
|
-
if (!this.
|
|
570
|
+
if (!this.isAnimating) {
|
|
555
571
|
return;
|
|
556
572
|
}
|
|
557
573
|
// Prevent other event listeners from handling this event
|
|
558
|
-
this.
|
|
574
|
+
this.stopScrollAnimation();
|
|
559
575
|
};
|
|
560
576
|
/**
|
|
561
577
|
* Handles the transitionend event
|
|
@@ -563,11 +579,11 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
563
579
|
MDCTabScrollerFoundation.prototype.handleTransitionEnd = function (evt) {
|
|
564
580
|
// Early exit if we aren't animating or the event was triggered by a different element.
|
|
565
581
|
var evtTarget = evt.target;
|
|
566
|
-
if (!this.
|
|
582
|
+
if (!this.isAnimating ||
|
|
567
583
|
!this.adapter.eventTargetMatchesSelector(evtTarget, MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)) {
|
|
568
584
|
return;
|
|
569
585
|
}
|
|
570
|
-
this.
|
|
586
|
+
this.isAnimating = false;
|
|
571
587
|
this.adapter.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
|
|
572
588
|
};
|
|
573
589
|
/**
|
|
@@ -579,7 +595,7 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
579
595
|
if (scrollXIncrement === 0) {
|
|
580
596
|
return;
|
|
581
597
|
}
|
|
582
|
-
this.
|
|
598
|
+
this.animate(this.getIncrementScrollOperation(scrollXIncrement));
|
|
583
599
|
};
|
|
584
600
|
/**
|
|
585
601
|
* Increment the scroll value by the scrollXIncrement without animation.
|
|
@@ -590,35 +606,36 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
590
606
|
if (scrollXIncrement === 0) {
|
|
591
607
|
return;
|
|
592
608
|
}
|
|
593
|
-
var operation = this.
|
|
609
|
+
var operation = this.getIncrementScrollOperation(scrollXIncrement);
|
|
594
610
|
if (operation.scrollDelta === 0) {
|
|
595
611
|
return;
|
|
596
612
|
}
|
|
597
|
-
this.
|
|
613
|
+
this.stopScrollAnimation();
|
|
598
614
|
this.adapter.setScrollAreaScrollLeft(operation.finalScrollPosition);
|
|
599
615
|
};
|
|
600
616
|
/**
|
|
601
617
|
* Scrolls to the given scrollX value
|
|
602
618
|
*/
|
|
603
619
|
MDCTabScrollerFoundation.prototype.scrollTo = function (scrollX) {
|
|
604
|
-
if (this.
|
|
605
|
-
|
|
620
|
+
if (this.isRTL()) {
|
|
621
|
+
this.scrollToImplRTL(scrollX);
|
|
622
|
+
return;
|
|
606
623
|
}
|
|
607
|
-
this.
|
|
624
|
+
this.scrollToImpl(scrollX);
|
|
608
625
|
};
|
|
609
626
|
/**
|
|
610
627
|
* @return Browser-specific {@link MDCTabScrollerRTL} instance.
|
|
611
628
|
*/
|
|
612
629
|
MDCTabScrollerFoundation.prototype.getRTLScroller = function () {
|
|
613
|
-
if (!this.
|
|
614
|
-
this.
|
|
630
|
+
if (!this.rtlScrollerInstance) {
|
|
631
|
+
this.rtlScrollerInstance = this.rtlScrollerFactory();
|
|
615
632
|
}
|
|
616
|
-
return this.
|
|
633
|
+
return this.rtlScrollerInstance;
|
|
617
634
|
};
|
|
618
635
|
/**
|
|
619
636
|
* @return translateX value from a CSS matrix transform function string.
|
|
620
637
|
*/
|
|
621
|
-
MDCTabScrollerFoundation.prototype.
|
|
638
|
+
MDCTabScrollerFoundation.prototype.calculateCurrentTranslateX = function () {
|
|
622
639
|
var transformValue = this.adapter.getScrollContentStyleValue('transform');
|
|
623
640
|
// Early exit if no transform is present
|
|
624
641
|
if (transformValue === 'none') {
|
|
@@ -642,15 +659,15 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
642
659
|
* Calculates a safe scroll value that is > 0 and < the max scroll value
|
|
643
660
|
* @param scrollX The distance to scroll
|
|
644
661
|
*/
|
|
645
|
-
MDCTabScrollerFoundation.prototype.
|
|
646
|
-
var edges = this.
|
|
662
|
+
MDCTabScrollerFoundation.prototype.clampScrollValue = function (scrollX) {
|
|
663
|
+
var edges = this.calculateScrollEdges();
|
|
647
664
|
return Math.min(Math.max(edges.left, scrollX), edges.right);
|
|
648
665
|
};
|
|
649
|
-
MDCTabScrollerFoundation.prototype.
|
|
650
|
-
var translateX = this.
|
|
666
|
+
MDCTabScrollerFoundation.prototype.computeCurrentScrollPositionRTL = function () {
|
|
667
|
+
var translateX = this.calculateCurrentTranslateX();
|
|
651
668
|
return this.getRTLScroller().getScrollPositionRTL(translateX);
|
|
652
669
|
};
|
|
653
|
-
MDCTabScrollerFoundation.prototype.
|
|
670
|
+
MDCTabScrollerFoundation.prototype.calculateScrollEdges = function () {
|
|
654
671
|
var contentWidth = this.adapter.getScrollContentOffsetWidth();
|
|
655
672
|
var rootWidth = this.adapter.getScrollAreaOffsetWidth();
|
|
656
673
|
return {
|
|
@@ -662,11 +679,11 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
662
679
|
* Internal scroll method
|
|
663
680
|
* @param scrollX The new scroll position
|
|
664
681
|
*/
|
|
665
|
-
MDCTabScrollerFoundation.prototype.
|
|
682
|
+
MDCTabScrollerFoundation.prototype.scrollToImpl = function (scrollX) {
|
|
666
683
|
var currentScrollX = this.getScrollPosition();
|
|
667
|
-
var safeScrollX = this.
|
|
684
|
+
var safeScrollX = this.clampScrollValue(scrollX);
|
|
668
685
|
var scrollDelta = safeScrollX - currentScrollX;
|
|
669
|
-
this.
|
|
686
|
+
this.animate({
|
|
670
687
|
finalScrollPosition: safeScrollX,
|
|
671
688
|
scrollDelta: scrollDelta,
|
|
672
689
|
});
|
|
@@ -675,22 +692,22 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
675
692
|
* Internal RTL scroll method
|
|
676
693
|
* @param scrollX The new scroll position
|
|
677
694
|
*/
|
|
678
|
-
MDCTabScrollerFoundation.prototype.
|
|
695
|
+
MDCTabScrollerFoundation.prototype.scrollToImplRTL = function (scrollX) {
|
|
679
696
|
var animation = this.getRTLScroller().scrollToRTL(scrollX);
|
|
680
|
-
this.
|
|
697
|
+
this.animate(animation);
|
|
681
698
|
};
|
|
682
699
|
/**
|
|
683
700
|
* Internal method to compute the increment scroll operation values.
|
|
684
701
|
* @param scrollX The desired scroll position increment
|
|
685
702
|
* @return MDCTabScrollerAnimation with the sanitized values for performing the scroll operation.
|
|
686
703
|
*/
|
|
687
|
-
MDCTabScrollerFoundation.prototype.
|
|
688
|
-
if (this.
|
|
704
|
+
MDCTabScrollerFoundation.prototype.getIncrementScrollOperation = function (scrollX) {
|
|
705
|
+
if (this.isRTL()) {
|
|
689
706
|
return this.getRTLScroller().incrementScrollRTL(scrollX);
|
|
690
707
|
}
|
|
691
708
|
var currentScrollX = this.getScrollPosition();
|
|
692
709
|
var targetScrollX = scrollX + currentScrollX;
|
|
693
|
-
var safeScrollX = this.
|
|
710
|
+
var safeScrollX = this.clampScrollValue(targetScrollX);
|
|
694
711
|
var scrollDelta = safeScrollX - currentScrollX;
|
|
695
712
|
return {
|
|
696
713
|
finalScrollPosition: safeScrollX,
|
|
@@ -701,13 +718,13 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
701
718
|
* Animates the tab scrolling
|
|
702
719
|
* @param animation The animation to apply
|
|
703
720
|
*/
|
|
704
|
-
MDCTabScrollerFoundation.prototype.
|
|
721
|
+
MDCTabScrollerFoundation.prototype.animate = function (animation) {
|
|
705
722
|
var _this = this;
|
|
706
723
|
// Early exit if translateX is 0, which means there's no animation to perform
|
|
707
724
|
if (animation.scrollDelta === 0) {
|
|
708
725
|
return;
|
|
709
726
|
}
|
|
710
|
-
this.
|
|
727
|
+
this.stopScrollAnimation();
|
|
711
728
|
// This animation uses the FLIP approach.
|
|
712
729
|
// Read more here: https://aerotwist.com/blog/flip-your-animations/
|
|
713
730
|
this.adapter.setScrollAreaScrollLeft(animation.finalScrollPosition);
|
|
@@ -718,14 +735,14 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
718
735
|
_this.adapter.addClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
|
|
719
736
|
_this.adapter.setScrollContentStyleProperty('transform', 'none');
|
|
720
737
|
});
|
|
721
|
-
this.
|
|
738
|
+
this.isAnimating = true;
|
|
722
739
|
};
|
|
723
740
|
/**
|
|
724
741
|
* Stops scroll animation
|
|
725
742
|
*/
|
|
726
|
-
MDCTabScrollerFoundation.prototype.
|
|
727
|
-
this.
|
|
728
|
-
var currentScrollPosition = this.
|
|
743
|
+
MDCTabScrollerFoundation.prototype.stopScrollAnimation = function () {
|
|
744
|
+
this.isAnimating = false;
|
|
745
|
+
var currentScrollPosition = this.getAnimatingScrollPosition();
|
|
729
746
|
this.adapter.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
|
|
730
747
|
this.adapter.setScrollContentStyleProperty('transform', 'translateX(0px)');
|
|
731
748
|
this.adapter.setScrollAreaScrollLeft(currentScrollPosition);
|
|
@@ -733,10 +750,10 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
733
750
|
/**
|
|
734
751
|
* Gets the current scroll position during animation
|
|
735
752
|
*/
|
|
736
|
-
MDCTabScrollerFoundation.prototype.
|
|
737
|
-
var currentTranslateX = this.
|
|
753
|
+
MDCTabScrollerFoundation.prototype.getAnimatingScrollPosition = function () {
|
|
754
|
+
var currentTranslateX = this.calculateCurrentTranslateX();
|
|
738
755
|
var scrollLeft = this.adapter.getScrollAreaScrollLeft();
|
|
739
|
-
if (this.
|
|
756
|
+
if (this.isRTL()) {
|
|
740
757
|
return this.getRTLScroller().getAnimatingScrollPosition(scrollLeft, currentTranslateX);
|
|
741
758
|
}
|
|
742
759
|
return scrollLeft - currentTranslateX;
|
|
@@ -744,7 +761,7 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
744
761
|
/**
|
|
745
762
|
* Determines the RTL Scroller to use
|
|
746
763
|
*/
|
|
747
|
-
MDCTabScrollerFoundation.prototype.
|
|
764
|
+
MDCTabScrollerFoundation.prototype.rtlScrollerFactory = function () {
|
|
748
765
|
// Browsers have three different implementations of scrollLeft in RTL mode,
|
|
749
766
|
// dependent on the browser. The behavior is based off the max LTR
|
|
750
767
|
// scrollLeft value and 0.
|
|
@@ -787,7 +804,7 @@ var MDCTabScrollerFoundation = /** @class */ (function (_super) {
|
|
|
787
804
|
}
|
|
788
805
|
return new MDCTabScrollerRTLDefault(this.adapter);
|
|
789
806
|
};
|
|
790
|
-
MDCTabScrollerFoundation.prototype.
|
|
807
|
+
MDCTabScrollerFoundation.prototype.isRTL = function () {
|
|
791
808
|
return this.adapter.getScrollContentStyleValue('direction') === 'rtl';
|
|
792
809
|
};
|
|
793
810
|
return MDCTabScrollerFoundation;
|
|
@@ -869,29 +886,34 @@ var MDCTabScroller = /** @class */ (function (_super) {
|
|
|
869
886
|
MDCTabScroller.attachTo = function (root) {
|
|
870
887
|
return new MDCTabScroller(root);
|
|
871
888
|
};
|
|
889
|
+
// initialSyncWithDOM()
|
|
872
890
|
MDCTabScroller.prototype.initialize = function () {
|
|
873
|
-
this.
|
|
874
|
-
this.
|
|
891
|
+
this.area = this.root.querySelector(MDCTabScrollerFoundation.strings.AREA_SELECTOR);
|
|
892
|
+
this.content = this.root.querySelector(MDCTabScrollerFoundation.strings.CONTENT_SELECTOR);
|
|
875
893
|
};
|
|
876
894
|
MDCTabScroller.prototype.initialSyncWithDOM = function () {
|
|
877
895
|
var _this = this;
|
|
878
|
-
this.
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
this.
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
this.
|
|
885
|
-
this.
|
|
896
|
+
this.handleInteraction = function () {
|
|
897
|
+
_this.foundation.handleInteraction();
|
|
898
|
+
};
|
|
899
|
+
this.handleTransitionEnd = function (evt) {
|
|
900
|
+
_this.foundation.handleTransitionEnd(evt);
|
|
901
|
+
};
|
|
902
|
+
this.area.addEventListener('wheel', this.handleInteraction, applyPassive());
|
|
903
|
+
this.area.addEventListener('touchstart', this.handleInteraction, applyPassive());
|
|
904
|
+
this.area.addEventListener('pointerdown', this.handleInteraction, applyPassive());
|
|
905
|
+
this.area.addEventListener('mousedown', this.handleInteraction, applyPassive());
|
|
906
|
+
this.area.addEventListener('keydown', this.handleInteraction, applyPassive());
|
|
907
|
+
this.content.addEventListener('transitionend', this.handleTransitionEnd);
|
|
886
908
|
};
|
|
887
909
|
MDCTabScroller.prototype.destroy = function () {
|
|
888
910
|
_super.prototype.destroy.call(this);
|
|
889
|
-
this.
|
|
890
|
-
this.
|
|
891
|
-
this.
|
|
892
|
-
this.
|
|
893
|
-
this.
|
|
894
|
-
this.
|
|
911
|
+
this.area.removeEventListener('wheel', this.handleInteraction, applyPassive());
|
|
912
|
+
this.area.removeEventListener('touchstart', this.handleInteraction, applyPassive());
|
|
913
|
+
this.area.removeEventListener('pointerdown', this.handleInteraction, applyPassive());
|
|
914
|
+
this.area.removeEventListener('mousedown', this.handleInteraction, applyPassive());
|
|
915
|
+
this.area.removeEventListener('keydown', this.handleInteraction, applyPassive());
|
|
916
|
+
this.content.removeEventListener('transitionend', this.handleTransitionEnd);
|
|
895
917
|
};
|
|
896
918
|
MDCTabScroller.prototype.getDefaultFoundation = function () {
|
|
897
919
|
var _this = this;
|
|
@@ -902,25 +924,31 @@ var MDCTabScroller = /** @class */ (function (_super) {
|
|
|
902
924
|
eventTargetMatchesSelector: function (evtTarget, selector) {
|
|
903
925
|
return matches(evtTarget, selector);
|
|
904
926
|
},
|
|
905
|
-
addClass: function (className) {
|
|
906
|
-
|
|
907
|
-
|
|
927
|
+
addClass: function (className) {
|
|
928
|
+
_this.root.classList.add(className);
|
|
929
|
+
},
|
|
930
|
+
removeClass: function (className) {
|
|
931
|
+
_this.root.classList.remove(className);
|
|
932
|
+
},
|
|
933
|
+
addScrollAreaClass: function (className) {
|
|
934
|
+
_this.area.classList.add(className);
|
|
935
|
+
},
|
|
908
936
|
setScrollAreaStyleProperty: function (prop, value) {
|
|
909
|
-
|
|
937
|
+
_this.area.style.setProperty(prop, value);
|
|
910
938
|
},
|
|
911
939
|
setScrollContentStyleProperty: function (prop, value) {
|
|
912
|
-
|
|
940
|
+
_this.content.style.setProperty(prop, value);
|
|
913
941
|
},
|
|
914
942
|
getScrollContentStyleValue: function (propName) {
|
|
915
|
-
return window.getComputedStyle(_this.
|
|
943
|
+
return window.getComputedStyle(_this.content).getPropertyValue(propName);
|
|
916
944
|
},
|
|
917
|
-
setScrollAreaScrollLeft: function (scrollX) { return _this.
|
|
918
|
-
getScrollAreaScrollLeft: function () { return _this.
|
|
919
|
-
getScrollContentOffsetWidth: function () { return _this.
|
|
920
|
-
getScrollAreaOffsetWidth: function () { return _this.
|
|
921
|
-
computeScrollAreaClientRect: function () { return _this.
|
|
945
|
+
setScrollAreaScrollLeft: function (scrollX) { return _this.area.scrollLeft = scrollX; },
|
|
946
|
+
getScrollAreaScrollLeft: function () { return _this.area.scrollLeft; },
|
|
947
|
+
getScrollContentOffsetWidth: function () { return _this.content.offsetWidth; },
|
|
948
|
+
getScrollAreaOffsetWidth: function () { return _this.area.offsetWidth; },
|
|
949
|
+
computeScrollAreaClientRect: function () { return _this.area.getBoundingClientRect(); },
|
|
922
950
|
computeScrollContentClientRect: function () {
|
|
923
|
-
return _this.
|
|
951
|
+
return _this.content.getBoundingClientRect();
|
|
924
952
|
},
|
|
925
953
|
computeHorizontalScrollbarHeight: function () {
|
|
926
954
|
return computeHorizontalScrollbarHeight(document);
|
|
@@ -939,7 +967,7 @@ var MDCTabScroller = /** @class */ (function (_super) {
|
|
|
939
967
|
* Returns the width of the scroll content
|
|
940
968
|
*/
|
|
941
969
|
MDCTabScroller.prototype.getScrollContentWidth = function () {
|
|
942
|
-
return this.
|
|
970
|
+
return this.content.offsetWidth;
|
|
943
971
|
};
|
|
944
972
|
/**
|
|
945
973
|
* Increments the scroll value by the given amount
|
|
@@ -1120,7 +1148,9 @@ var MDCTabIndicatorFoundation = /** @class */ (function (_super) {
|
|
|
1120
1148
|
return {
|
|
1121
1149
|
addClass: function () { return undefined; },
|
|
1122
1150
|
removeClass: function () { return undefined; },
|
|
1123
|
-
computeContentClientRect: function () {
|
|
1151
|
+
computeContentClientRect: function () {
|
|
1152
|
+
return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
|
|
1153
|
+
},
|
|
1124
1154
|
setContentStyleProperty: function () { return undefined; },
|
|
1125
1155
|
};
|
|
1126
1156
|
// tslint:enable:object-literal-sort-keys
|
|
@@ -1257,7 +1287,7 @@ var MDCTabIndicator = /** @class */ (function (_super) {
|
|
|
1257
1287
|
return new MDCTabIndicator(root);
|
|
1258
1288
|
};
|
|
1259
1289
|
MDCTabIndicator.prototype.initialize = function () {
|
|
1260
|
-
this.
|
|
1290
|
+
this.content = this.root.querySelector(MDCTabIndicatorFoundation.strings.CONTENT_SELECTOR);
|
|
1261
1291
|
};
|
|
1262
1292
|
MDCTabIndicator.prototype.computeContentClientRect = function () {
|
|
1263
1293
|
return this.foundation.computeContentClientRect();
|
|
@@ -1270,9 +1300,9 @@ var MDCTabIndicator = /** @class */ (function (_super) {
|
|
|
1270
1300
|
var adapter = {
|
|
1271
1301
|
addClass: function (className) { return _this.root.classList.add(className); },
|
|
1272
1302
|
removeClass: function (className) { return _this.root.classList.remove(className); },
|
|
1273
|
-
computeContentClientRect: function () { return _this.
|
|
1303
|
+
computeContentClientRect: function () { return _this.content.getBoundingClientRect(); },
|
|
1274
1304
|
setContentStyleProperty: function (prop, value) {
|
|
1275
|
-
|
|
1305
|
+
_this.content.style.setProperty(prop, value);
|
|
1276
1306
|
},
|
|
1277
1307
|
};
|
|
1278
1308
|
// tslint:enable:object-literal-sort-keys
|
|
@@ -1351,7 +1381,7 @@ var MDCTabFoundation = /** @class */ (function (_super) {
|
|
|
1351
1381
|
__extends$1(MDCTabFoundation, _super);
|
|
1352
1382
|
function MDCTabFoundation(adapter) {
|
|
1353
1383
|
var _this = _super.call(this, __assign$1(__assign$1({}, MDCTabFoundation.defaultAdapter), adapter)) || this;
|
|
1354
|
-
_this.
|
|
1384
|
+
_this.focusOnActivate = true;
|
|
1355
1385
|
return _this;
|
|
1356
1386
|
}
|
|
1357
1387
|
Object.defineProperty(MDCTabFoundation, "cssClasses", {
|
|
@@ -1402,7 +1432,7 @@ var MDCTabFoundation = /** @class */ (function (_super) {
|
|
|
1402
1432
|
* Sets whether the tab should focus itself when activated
|
|
1403
1433
|
*/
|
|
1404
1434
|
MDCTabFoundation.prototype.setFocusOnActivate = function (focusOnActivate) {
|
|
1405
|
-
this.
|
|
1435
|
+
this.focusOnActivate = focusOnActivate;
|
|
1406
1436
|
};
|
|
1407
1437
|
/**
|
|
1408
1438
|
* Activates the Tab
|
|
@@ -1412,7 +1442,7 @@ var MDCTabFoundation = /** @class */ (function (_super) {
|
|
|
1412
1442
|
this.adapter.setAttr(strings$2.ARIA_SELECTED, 'true');
|
|
1413
1443
|
this.adapter.setAttr(strings$2.TABINDEX, '0');
|
|
1414
1444
|
this.adapter.activateIndicator(previousIndicatorClientRect);
|
|
1415
|
-
if (this.
|
|
1445
|
+
if (this.focusOnActivate) {
|
|
1416
1446
|
this.adapter.focus();
|
|
1417
1447
|
}
|
|
1418
1448
|
};
|
|
@@ -1482,19 +1512,21 @@ var MDCTab = /** @class */ (function (_super) {
|
|
|
1482
1512
|
if (tabIndicatorFactory === void 0) { tabIndicatorFactory = function (el) { return new MDCTabIndicator(el); }; }
|
|
1483
1513
|
this.id = this.root.id;
|
|
1484
1514
|
var rippleFoundation = new MDCRippleFoundation(MDCRipple.createAdapter(this));
|
|
1485
|
-
this.
|
|
1515
|
+
this.ripple = rippleFactory(this.root, rippleFoundation);
|
|
1486
1516
|
var tabIndicatorElement = this.root.querySelector(MDCTabFoundation.strings.TAB_INDICATOR_SELECTOR);
|
|
1487
|
-
this.
|
|
1488
|
-
this.
|
|
1517
|
+
this.tabIndicator = tabIndicatorFactory(tabIndicatorElement);
|
|
1518
|
+
this.content = this.root.querySelector(MDCTabFoundation.strings.CONTENT_SELECTOR);
|
|
1489
1519
|
};
|
|
1490
1520
|
MDCTab.prototype.initialSyncWithDOM = function () {
|
|
1491
1521
|
var _this = this;
|
|
1492
|
-
this.
|
|
1493
|
-
|
|
1522
|
+
this.handleClick = function () {
|
|
1523
|
+
_this.foundation.handleClick();
|
|
1524
|
+
};
|
|
1525
|
+
this.listen('click', this.handleClick);
|
|
1494
1526
|
};
|
|
1495
1527
|
MDCTab.prototype.destroy = function () {
|
|
1496
|
-
this.unlisten('click', this.
|
|
1497
|
-
this.
|
|
1528
|
+
this.unlisten('click', this.handleClick);
|
|
1529
|
+
this.ripple.destroy();
|
|
1498
1530
|
_super.prototype.destroy.call(this);
|
|
1499
1531
|
};
|
|
1500
1532
|
MDCTab.prototype.getDefaultFoundation = function () {
|
|
@@ -1508,14 +1540,16 @@ var MDCTab = /** @class */ (function (_super) {
|
|
|
1508
1540
|
removeClass: function (className) { return _this.root.classList.remove(className); },
|
|
1509
1541
|
hasClass: function (className) { return _this.root.classList.contains(className); },
|
|
1510
1542
|
activateIndicator: function (previousIndicatorClientRect) {
|
|
1511
|
-
|
|
1543
|
+
_this.tabIndicator.activate(previousIndicatorClientRect);
|
|
1544
|
+
},
|
|
1545
|
+
deactivateIndicator: function () {
|
|
1546
|
+
_this.tabIndicator.deactivate();
|
|
1512
1547
|
},
|
|
1513
|
-
deactivateIndicator: function () { return _this.tabIndicator_.deactivate(); },
|
|
1514
1548
|
notifyInteracted: function () { return _this.emit(MDCTabFoundation.strings.INTERACTED_EVENT, { tabId: _this.id }, true /* bubble */); },
|
|
1515
1549
|
getOffsetLeft: function () { return _this.root.offsetLeft; },
|
|
1516
1550
|
getOffsetWidth: function () { return _this.root.offsetWidth; },
|
|
1517
|
-
getContentOffsetLeft: function () { return _this.
|
|
1518
|
-
getContentOffsetWidth: function () { return _this.
|
|
1551
|
+
getContentOffsetLeft: function () { return _this.content.offsetLeft; },
|
|
1552
|
+
getContentOffsetWidth: function () { return _this.content.offsetWidth; },
|
|
1519
1553
|
focus: function () { return _this.root.focus(); },
|
|
1520
1554
|
};
|
|
1521
1555
|
// tslint:enable:object-literal-sort-keys
|
|
@@ -1554,7 +1588,7 @@ var MDCTab = /** @class */ (function (_super) {
|
|
|
1554
1588
|
* Returns the indicator's client rect
|
|
1555
1589
|
*/
|
|
1556
1590
|
MDCTab.prototype.computeIndicatorClientRect = function () {
|
|
1557
|
-
return this.
|
|
1591
|
+
return this.tabIndicator.computeContentClientRect();
|
|
1558
1592
|
};
|
|
1559
1593
|
MDCTab.prototype.computeDimensions = function () {
|
|
1560
1594
|
return this.foundation.computeDimensions();
|
|
@@ -1653,7 +1687,7 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1653
1687
|
__extends$3(MDCTabBarFoundation, _super);
|
|
1654
1688
|
function MDCTabBarFoundation(adapter) {
|
|
1655
1689
|
var _this = _super.call(this, __assign$3(__assign$3({}, MDCTabBarFoundation.defaultAdapter), adapter)) || this;
|
|
1656
|
-
_this.
|
|
1690
|
+
_this.useAutomaticActivation = false;
|
|
1657
1691
|
return _this;
|
|
1658
1692
|
}
|
|
1659
1693
|
Object.defineProperty(MDCTabBarFoundation, "strings", {
|
|
@@ -1684,8 +1718,12 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1684
1718
|
activateTabAtIndex: function () { return undefined; },
|
|
1685
1719
|
deactivateTabAtIndex: function () { return undefined; },
|
|
1686
1720
|
focusTabAtIndex: function () { return undefined; },
|
|
1687
|
-
getTabIndicatorClientRectAtIndex: function () {
|
|
1688
|
-
|
|
1721
|
+
getTabIndicatorClientRectAtIndex: function () {
|
|
1722
|
+
return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
|
|
1723
|
+
},
|
|
1724
|
+
getTabDimensionsAtIndex: function () {
|
|
1725
|
+
return ({ rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0 });
|
|
1726
|
+
},
|
|
1689
1727
|
getPreviousActiveTabIndex: function () { return -1; },
|
|
1690
1728
|
getFocusedTabIndex: function () { return -1; },
|
|
1691
1729
|
getIndexOfTabById: function () { return -1; },
|
|
@@ -1702,11 +1740,11 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1702
1740
|
* See https://www.w3.org/TR/wai-aria-practices/#tabpanel for examples.
|
|
1703
1741
|
*/
|
|
1704
1742
|
MDCTabBarFoundation.prototype.setUseAutomaticActivation = function (useAutomaticActivation) {
|
|
1705
|
-
this.
|
|
1743
|
+
this.useAutomaticActivation = useAutomaticActivation;
|
|
1706
1744
|
};
|
|
1707
1745
|
MDCTabBarFoundation.prototype.activateTab = function (index) {
|
|
1708
1746
|
var previousActiveIndex = this.adapter.getPreviousActiveTabIndex();
|
|
1709
|
-
if (!this.
|
|
1747
|
+
if (!this.indexIsInRange(index) || index === previousActiveIndex) {
|
|
1710
1748
|
return;
|
|
1711
1749
|
}
|
|
1712
1750
|
var previousClientRect;
|
|
@@ -1721,30 +1759,30 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1721
1759
|
};
|
|
1722
1760
|
MDCTabBarFoundation.prototype.handleKeyDown = function (evt) {
|
|
1723
1761
|
// Get the key from the event
|
|
1724
|
-
var key = this.
|
|
1762
|
+
var key = this.getKeyFromEvent(evt);
|
|
1725
1763
|
// Early exit if the event key isn't one of the keyboard navigation keys
|
|
1726
1764
|
if (key === undefined) {
|
|
1727
1765
|
return;
|
|
1728
1766
|
}
|
|
1729
1767
|
// Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple
|
|
1730
|
-
if (!this.
|
|
1768
|
+
if (!this.isActivationKey(key)) {
|
|
1731
1769
|
evt.preventDefault();
|
|
1732
1770
|
}
|
|
1733
|
-
if (this.
|
|
1734
|
-
if (this.
|
|
1771
|
+
if (this.useAutomaticActivation) {
|
|
1772
|
+
if (this.isActivationKey(key)) {
|
|
1735
1773
|
return;
|
|
1736
1774
|
}
|
|
1737
|
-
var index = this.
|
|
1775
|
+
var index = this.determineTargetFromKey(this.adapter.getPreviousActiveTabIndex(), key);
|
|
1738
1776
|
this.adapter.setActiveTab(index);
|
|
1739
1777
|
this.scrollIntoView(index);
|
|
1740
1778
|
}
|
|
1741
1779
|
else {
|
|
1742
1780
|
var focusedTabIndex = this.adapter.getFocusedTabIndex();
|
|
1743
|
-
if (this.
|
|
1781
|
+
if (this.isActivationKey(key)) {
|
|
1744
1782
|
this.adapter.setActiveTab(focusedTabIndex);
|
|
1745
1783
|
}
|
|
1746
1784
|
else {
|
|
1747
|
-
var index = this.
|
|
1785
|
+
var index = this.determineTargetFromKey(focusedTabIndex, key);
|
|
1748
1786
|
this.adapter.focusTabAtIndex(index);
|
|
1749
1787
|
this.scrollIntoView(index);
|
|
1750
1788
|
}
|
|
@@ -1762,30 +1800,33 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1762
1800
|
*/
|
|
1763
1801
|
MDCTabBarFoundation.prototype.scrollIntoView = function (index) {
|
|
1764
1802
|
// Early exit if the index is out of range
|
|
1765
|
-
if (!this.
|
|
1803
|
+
if (!this.indexIsInRange(index)) {
|
|
1766
1804
|
return;
|
|
1767
1805
|
}
|
|
1768
1806
|
// Always scroll to 0 if scrolling to the 0th index
|
|
1769
1807
|
if (index === 0) {
|
|
1770
|
-
|
|
1808
|
+
this.adapter.scrollTo(0);
|
|
1809
|
+
return;
|
|
1771
1810
|
}
|
|
1772
1811
|
// Always scroll to the max value if scrolling to the Nth index
|
|
1773
1812
|
// MDCTabScroller.scrollTo() will never scroll past the max possible value
|
|
1774
1813
|
if (index === this.adapter.getTabListLength() - 1) {
|
|
1775
|
-
|
|
1814
|
+
this.adapter.scrollTo(this.adapter.getScrollContentWidth());
|
|
1815
|
+
return;
|
|
1776
1816
|
}
|
|
1777
|
-
if (this.
|
|
1778
|
-
|
|
1817
|
+
if (this.isRTL()) {
|
|
1818
|
+
this.scrollIntoViewImplRTL(index);
|
|
1819
|
+
return;
|
|
1779
1820
|
}
|
|
1780
|
-
this.
|
|
1821
|
+
this.scrollIntoViewImpl(index);
|
|
1781
1822
|
};
|
|
1782
1823
|
/**
|
|
1783
1824
|
* Private method for determining the index of the destination tab based on what key was pressed
|
|
1784
1825
|
* @param origin The original index from which to determine the destination
|
|
1785
1826
|
* @param key The name of the key
|
|
1786
1827
|
*/
|
|
1787
|
-
MDCTabBarFoundation.prototype.
|
|
1788
|
-
var isRTL = this.
|
|
1828
|
+
MDCTabBarFoundation.prototype.determineTargetFromKey = function (origin, key) {
|
|
1829
|
+
var isRTL = this.isRTL();
|
|
1789
1830
|
var maxIndex = this.adapter.getTabListLength() - 1;
|
|
1790
1831
|
var shouldGoToEnd = key === strings$1.END_KEY;
|
|
1791
1832
|
var shouldDecrement = key === strings$1.ARROW_LEFT_KEY && !isRTL || key === strings$1.ARROW_RIGHT_KEY && isRTL;
|
|
@@ -1818,7 +1859,7 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1818
1859
|
* @param scrollPosition The current scroll position
|
|
1819
1860
|
* @param barWidth The width of the Tab Bar
|
|
1820
1861
|
*/
|
|
1821
|
-
MDCTabBarFoundation.prototype.
|
|
1862
|
+
MDCTabBarFoundation.prototype.calculateScrollIncrement = function (index, nextIndex, scrollPosition, barWidth) {
|
|
1822
1863
|
var nextTabDimensions = this.adapter.getTabDimensionsAtIndex(nextIndex);
|
|
1823
1864
|
var relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;
|
|
1824
1865
|
var relativeContentRight = nextTabDimensions.contentRight - scrollPosition;
|
|
@@ -1837,7 +1878,7 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1837
1878
|
* @param barWidth The width of the Tab Bar
|
|
1838
1879
|
* @param scrollContentWidth The width of the scroll content
|
|
1839
1880
|
*/
|
|
1840
|
-
MDCTabBarFoundation.prototype.
|
|
1881
|
+
MDCTabBarFoundation.prototype.calculateScrollIncrementRTL = function (index, nextIndex, scrollPosition, barWidth, scrollContentWidth) {
|
|
1841
1882
|
var nextTabDimensions = this.adapter.getTabDimensionsAtIndex(nextIndex);
|
|
1842
1883
|
var relativeContentLeft = scrollContentWidth - nextTabDimensions.contentLeft - scrollPosition;
|
|
1843
1884
|
var relativeContentRight = scrollContentWidth - nextTabDimensions.contentRight - scrollPosition - barWidth;
|
|
@@ -1855,7 +1896,7 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1855
1896
|
* @param scrollPosition The current scroll position
|
|
1856
1897
|
* @param barWidth The width of the tab bar
|
|
1857
1898
|
*/
|
|
1858
|
-
MDCTabBarFoundation.prototype.
|
|
1899
|
+
MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdge = function (index, tabDimensions, scrollPosition, barWidth) {
|
|
1859
1900
|
/**
|
|
1860
1901
|
* Tabs are laid out in the Tab Scroller like this:
|
|
1861
1902
|
*
|
|
@@ -1901,7 +1942,7 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1901
1942
|
* @param barWidth The width of the tab bar
|
|
1902
1943
|
* @param scrollContentWidth The width of the scroller content
|
|
1903
1944
|
*/
|
|
1904
|
-
MDCTabBarFoundation.prototype.
|
|
1945
|
+
MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdgeRTL = function (index, tabDimensions, scrollPosition, barWidth, scrollContentWidth) {
|
|
1905
1946
|
var rootLeft = scrollContentWidth - tabDimensions.rootLeft - barWidth - scrollPosition;
|
|
1906
1947
|
var rootRight = scrollContentWidth - tabDimensions.rootRight - scrollPosition;
|
|
1907
1948
|
var rootDelta = rootLeft + rootRight;
|
|
@@ -1919,57 +1960,57 @@ var MDCTabBarFoundation = /** @class */ (function (_super) {
|
|
|
1919
1960
|
* Returns the key associated with a keydown event
|
|
1920
1961
|
* @param evt The keydown event
|
|
1921
1962
|
*/
|
|
1922
|
-
MDCTabBarFoundation.prototype.
|
|
1963
|
+
MDCTabBarFoundation.prototype.getKeyFromEvent = function (evt) {
|
|
1923
1964
|
if (ACCEPTABLE_KEYS.has(evt.key)) {
|
|
1924
1965
|
return evt.key;
|
|
1925
1966
|
}
|
|
1926
1967
|
return KEYCODE_MAP.get(evt.keyCode);
|
|
1927
1968
|
};
|
|
1928
|
-
MDCTabBarFoundation.prototype.
|
|
1969
|
+
MDCTabBarFoundation.prototype.isActivationKey = function (key) {
|
|
1929
1970
|
return key === strings$1.SPACE_KEY || key === strings$1.ENTER_KEY;
|
|
1930
1971
|
};
|
|
1931
1972
|
/**
|
|
1932
1973
|
* Returns whether a given index is inclusively between the ends
|
|
1933
1974
|
* @param index The index to test
|
|
1934
1975
|
*/
|
|
1935
|
-
MDCTabBarFoundation.prototype.
|
|
1976
|
+
MDCTabBarFoundation.prototype.indexIsInRange = function (index) {
|
|
1936
1977
|
return index >= 0 && index < this.adapter.getTabListLength();
|
|
1937
1978
|
};
|
|
1938
1979
|
/**
|
|
1939
1980
|
* Returns the view's RTL property
|
|
1940
1981
|
*/
|
|
1941
|
-
MDCTabBarFoundation.prototype.
|
|
1982
|
+
MDCTabBarFoundation.prototype.isRTL = function () {
|
|
1942
1983
|
return this.adapter.isRTL();
|
|
1943
1984
|
};
|
|
1944
1985
|
/**
|
|
1945
1986
|
* Scrolls the tab at the given index into view for left-to-right user agents.
|
|
1946
1987
|
* @param index The index of the tab to scroll into view
|
|
1947
1988
|
*/
|
|
1948
|
-
MDCTabBarFoundation.prototype.
|
|
1989
|
+
MDCTabBarFoundation.prototype.scrollIntoViewImpl = function (index) {
|
|
1949
1990
|
var scrollPosition = this.adapter.getScrollPosition();
|
|
1950
1991
|
var barWidth = this.adapter.getOffsetWidth();
|
|
1951
1992
|
var tabDimensions = this.adapter.getTabDimensionsAtIndex(index);
|
|
1952
|
-
var nextIndex = this.
|
|
1953
|
-
if (!this.
|
|
1993
|
+
var nextIndex = this.findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);
|
|
1994
|
+
if (!this.indexIsInRange(nextIndex)) {
|
|
1954
1995
|
return;
|
|
1955
1996
|
}
|
|
1956
|
-
var scrollIncrement = this.
|
|
1997
|
+
var scrollIncrement = this.calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);
|
|
1957
1998
|
this.adapter.incrementScroll(scrollIncrement);
|
|
1958
1999
|
};
|
|
1959
2000
|
/**
|
|
1960
2001
|
* Scrolls the tab at the given index into view in RTL
|
|
1961
2002
|
* @param index The tab index to make visible
|
|
1962
2003
|
*/
|
|
1963
|
-
MDCTabBarFoundation.prototype.
|
|
2004
|
+
MDCTabBarFoundation.prototype.scrollIntoViewImplRTL = function (index) {
|
|
1964
2005
|
var scrollPosition = this.adapter.getScrollPosition();
|
|
1965
2006
|
var barWidth = this.adapter.getOffsetWidth();
|
|
1966
2007
|
var tabDimensions = this.adapter.getTabDimensionsAtIndex(index);
|
|
1967
2008
|
var scrollWidth = this.adapter.getScrollContentWidth();
|
|
1968
|
-
var nextIndex = this.
|
|
1969
|
-
if (!this.
|
|
2009
|
+
var nextIndex = this.findAdjacentTabIndexClosestToEdgeRTL(index, tabDimensions, scrollPosition, barWidth, scrollWidth);
|
|
2010
|
+
if (!this.indexIsInRange(nextIndex)) {
|
|
1970
2011
|
return;
|
|
1971
2012
|
}
|
|
1972
|
-
var scrollIncrement = this.
|
|
2013
|
+
var scrollIncrement = this.calculateScrollIncrementRTL(index, nextIndex, scrollPosition, barWidth, scrollWidth);
|
|
1973
2014
|
this.adapter.incrementScroll(scrollIncrement);
|
|
1974
2015
|
};
|
|
1975
2016
|
return MDCTabBarFoundation;
|
|
@@ -2009,7 +2050,20 @@ var MDCTabBar = /** @class */ (function (_super) {
|
|
|
2009
2050
|
};
|
|
2010
2051
|
Object.defineProperty(MDCTabBar.prototype, "focusOnActivate", {
|
|
2011
2052
|
set: function (focusOnActivate) {
|
|
2012
|
-
|
|
2053
|
+
var e_1, _a;
|
|
2054
|
+
try {
|
|
2055
|
+
for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
2056
|
+
var tab = _c.value;
|
|
2057
|
+
tab.focusOnActivate = focusOnActivate;
|
|
2058
|
+
}
|
|
2059
|
+
}
|
|
2060
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2061
|
+
finally {
|
|
2062
|
+
try {
|
|
2063
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
2064
|
+
}
|
|
2065
|
+
finally { if (e_1) throw e_1.error; }
|
|
2066
|
+
}
|
|
2013
2067
|
},
|
|
2014
2068
|
enumerable: false,
|
|
2015
2069
|
configurable: true
|
|
@@ -2024,31 +2078,46 @@ var MDCTabBar = /** @class */ (function (_super) {
|
|
|
2024
2078
|
MDCTabBar.prototype.initialize = function (tabFactory, tabScrollerFactory) {
|
|
2025
2079
|
if (tabFactory === void 0) { tabFactory = function (el) { return new MDCTab(el); }; }
|
|
2026
2080
|
if (tabScrollerFactory === void 0) { tabScrollerFactory = function (el) { return new MDCTabScroller(el); }; }
|
|
2027
|
-
this.
|
|
2028
|
-
this.
|
|
2081
|
+
this.tabList = this.instantiateTabs(tabFactory);
|
|
2082
|
+
this.tabScroller = this.instantiatetabScroller(tabScrollerFactory);
|
|
2029
2083
|
};
|
|
2030
2084
|
MDCTabBar.prototype.initialSyncWithDOM = function () {
|
|
2031
2085
|
var _this = this;
|
|
2032
|
-
this.
|
|
2033
|
-
|
|
2086
|
+
this.handleTabInteraction = function (evt) {
|
|
2087
|
+
_this.foundation.handleTabInteraction(evt);
|
|
2088
|
+
};
|
|
2089
|
+
this.handleKeyDown = function (evt) {
|
|
2090
|
+
_this.foundation.handleKeyDown(evt);
|
|
2034
2091
|
};
|
|
2035
|
-
this.
|
|
2036
|
-
this.listen(
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
if (this.tabList_[i].active) {
|
|
2092
|
+
this.listen(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction);
|
|
2093
|
+
this.listen('keydown', this.handleKeyDown);
|
|
2094
|
+
for (var i = 0; i < this.tabList.length; i++) {
|
|
2095
|
+
if (this.tabList[i].active) {
|
|
2040
2096
|
this.scrollIntoView(i);
|
|
2041
2097
|
break;
|
|
2042
2098
|
}
|
|
2043
2099
|
}
|
|
2044
2100
|
};
|
|
2045
2101
|
MDCTabBar.prototype.destroy = function () {
|
|
2102
|
+
var e_2, _a;
|
|
2046
2103
|
_super.prototype.destroy.call(this);
|
|
2047
|
-
this.unlisten(MDCTabFoundation.strings.INTERACTED_EVENT, this.
|
|
2048
|
-
this.unlisten('keydown', this.
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2104
|
+
this.unlisten(MDCTabFoundation.strings.INTERACTED_EVENT, this.handleTabInteraction);
|
|
2105
|
+
this.unlisten('keydown', this.handleKeyDown);
|
|
2106
|
+
try {
|
|
2107
|
+
for (var _b = __values(this.tabList), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
2108
|
+
var tab = _c.value;
|
|
2109
|
+
tab.destroy();
|
|
2110
|
+
}
|
|
2111
|
+
}
|
|
2112
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
2113
|
+
finally {
|
|
2114
|
+
try {
|
|
2115
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
2116
|
+
}
|
|
2117
|
+
finally { if (e_2) throw e_2.error; }
|
|
2118
|
+
}
|
|
2119
|
+
if (this.tabScroller) {
|
|
2120
|
+
this.tabScroller.destroy();
|
|
2052
2121
|
}
|
|
2053
2122
|
};
|
|
2054
2123
|
MDCTabBar.prototype.getDefaultFoundation = function () {
|
|
@@ -2057,48 +2126,56 @@ var MDCTabBar = /** @class */ (function (_super) {
|
|
|
2057
2126
|
// To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
|
|
2058
2127
|
// tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
|
|
2059
2128
|
var adapter = {
|
|
2060
|
-
scrollTo: function (scrollX) {
|
|
2129
|
+
scrollTo: function (scrollX) {
|
|
2130
|
+
_this.tabScroller.scrollTo(scrollX);
|
|
2131
|
+
},
|
|
2061
2132
|
incrementScroll: function (scrollXIncrement) {
|
|
2062
|
-
|
|
2133
|
+
_this.tabScroller.incrementScroll(scrollXIncrement);
|
|
2063
2134
|
},
|
|
2064
|
-
getScrollPosition: function () { return _this.
|
|
2065
|
-
getScrollContentWidth: function () { return _this.
|
|
2135
|
+
getScrollPosition: function () { return _this.tabScroller.getScrollPosition(); },
|
|
2136
|
+
getScrollContentWidth: function () { return _this.tabScroller.getScrollContentWidth(); },
|
|
2066
2137
|
getOffsetWidth: function () { return _this.root.offsetWidth; },
|
|
2067
2138
|
isRTL: function () { return window.getComputedStyle(_this.root).getPropertyValue('direction') === 'rtl'; },
|
|
2068
|
-
setActiveTab: function (index) {
|
|
2139
|
+
setActiveTab: function (index) {
|
|
2140
|
+
_this.foundation.activateTab(index);
|
|
2141
|
+
},
|
|
2069
2142
|
activateTabAtIndex: function (index, clientRect) {
|
|
2070
|
-
|
|
2143
|
+
_this.tabList[index].activate(clientRect);
|
|
2144
|
+
},
|
|
2145
|
+
deactivateTabAtIndex: function (index) {
|
|
2146
|
+
_this.tabList[index].deactivate();
|
|
2147
|
+
},
|
|
2148
|
+
focusTabAtIndex: function (index) {
|
|
2149
|
+
_this.tabList[index].focus();
|
|
2071
2150
|
},
|
|
2072
|
-
deactivateTabAtIndex: function (index) { return _this.tabList_[index].deactivate(); },
|
|
2073
|
-
focusTabAtIndex: function (index) { return _this.tabList_[index].focus(); },
|
|
2074
2151
|
getTabIndicatorClientRectAtIndex: function (index) {
|
|
2075
|
-
return _this.
|
|
2152
|
+
return _this.tabList[index].computeIndicatorClientRect();
|
|
2076
2153
|
},
|
|
2077
2154
|
getTabDimensionsAtIndex: function (index) {
|
|
2078
|
-
return _this.
|
|
2155
|
+
return _this.tabList[index].computeDimensions();
|
|
2079
2156
|
},
|
|
2080
2157
|
getPreviousActiveTabIndex: function () {
|
|
2081
|
-
for (var i = 0; i < _this.
|
|
2082
|
-
if (_this.
|
|
2158
|
+
for (var i = 0; i < _this.tabList.length; i++) {
|
|
2159
|
+
if (_this.tabList[i].active) {
|
|
2083
2160
|
return i;
|
|
2084
2161
|
}
|
|
2085
2162
|
}
|
|
2086
2163
|
return -1;
|
|
2087
2164
|
},
|
|
2088
2165
|
getFocusedTabIndex: function () {
|
|
2089
|
-
var tabElements = _this.
|
|
2166
|
+
var tabElements = _this.getTabElements();
|
|
2090
2167
|
var activeElement = document.activeElement;
|
|
2091
2168
|
return tabElements.indexOf(activeElement);
|
|
2092
2169
|
},
|
|
2093
2170
|
getIndexOfTabById: function (id) {
|
|
2094
|
-
for (var i = 0; i < _this.
|
|
2095
|
-
if (_this.
|
|
2171
|
+
for (var i = 0; i < _this.tabList.length; i++) {
|
|
2172
|
+
if (_this.tabList[i].id === id) {
|
|
2096
2173
|
return i;
|
|
2097
2174
|
}
|
|
2098
2175
|
}
|
|
2099
2176
|
return -1;
|
|
2100
2177
|
},
|
|
2101
|
-
getTabListLength: function () { return _this.
|
|
2178
|
+
getTabListLength: function () { return _this.tabList.length; },
|
|
2102
2179
|
notifyTabActivated: function (index) { return _this.emit(strings.TAB_ACTIVATED_EVENT, { index: index }, true); },
|
|
2103
2180
|
};
|
|
2104
2181
|
// tslint:enable:object-literal-sort-keys
|
|
@@ -2121,14 +2198,14 @@ var MDCTabBar = /** @class */ (function (_super) {
|
|
|
2121
2198
|
/**
|
|
2122
2199
|
* Returns all the tab elements in a nice clean array
|
|
2123
2200
|
*/
|
|
2124
|
-
MDCTabBar.prototype.
|
|
2201
|
+
MDCTabBar.prototype.getTabElements = function () {
|
|
2125
2202
|
return [].slice.call(this.root.querySelectorAll(strings.TAB_SELECTOR));
|
|
2126
2203
|
};
|
|
2127
2204
|
/**
|
|
2128
2205
|
* Instantiates tab components on all child tab elements
|
|
2129
2206
|
*/
|
|
2130
|
-
MDCTabBar.prototype.
|
|
2131
|
-
return this.
|
|
2207
|
+
MDCTabBar.prototype.instantiateTabs = function (tabFactory) {
|
|
2208
|
+
return this.getTabElements().map(function (el) {
|
|
2132
2209
|
el.id = el.id || "mdc-tab-" + ++tabIdCounter;
|
|
2133
2210
|
return tabFactory(el);
|
|
2134
2211
|
});
|
|
@@ -2136,7 +2213,7 @@ var MDCTabBar = /** @class */ (function (_super) {
|
|
|
2136
2213
|
/**
|
|
2137
2214
|
* Instantiates tab scroller component on the child tab scroller element
|
|
2138
2215
|
*/
|
|
2139
|
-
MDCTabBar.prototype.
|
|
2216
|
+
MDCTabBar.prototype.instantiatetabScroller = function (tabScrollerFactory) {
|
|
2140
2217
|
var tabScrollerElement = this.root.querySelector(strings.TAB_SCROLLER_SELECTOR);
|
|
2141
2218
|
if (tabScrollerElement) {
|
|
2142
2219
|
return tabScrollerFactory(tabScrollerElement);
|
|
@@ -2164,12 +2241,12 @@ function setActiveTab(tabs, index) {
|
|
|
2164
2241
|
return result;
|
|
2165
2242
|
}
|
|
2166
2243
|
|
|
2167
|
-
const tabBarCss = ":host{--mdc-theme-primary:var(\n --lime-primary-color,\n rgb(var(--color-teal-default))\n );--mdc-theme-secondary:var(\n --lime-secondary-color,\n rgb(var(--contrast-1100))\n );--mdc-theme-on-primary:var(\n --lime-on-primary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-secondary:var(\n --lime-on-secondary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-text-disabled-on-background:var(\n --lime-text-disabled-on-background-color,\n rgba(var(--contrast-1700), 0.38)\n );--mdc-theme-text-primary-on-background:var(\n --lime-text-primary-on-background-color,\n rgba(var(--contrast-1700), 0.87)\n );--mdc-theme-text-secondary-on-background:var(\n --lime-text-secondary-on-background-color,\n rgba(var(--contrast-1700), 0.54)\n );--lime-error-text-color:rgb(var(--color-red-darker));--mdc-theme-surface:var(\n --lime-surface-background-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-surface:var(\n --lime-on-surface-color,\n var(--lime-text-primary-on-background-color)\n )}.mdc-tab-bar{width:100%}.mdc-tab{height:48px}.mdc-tab--stacked{height:72px}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-color:#26a69a;border-color:var(--mdc-theme-primary, #26a69a)}.mdc-tab-indicator .mdc-tab-indicator__content--icon{color:#575756;color:var(--mdc-theme-secondary, #575756)}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-button-font-size, 0.875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:0.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, 0.0892857143em);text-decoration:none;text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:none;text-transform:var(--mdc-typography-button-text-transform, none);padding-right:24px;padding-left:24px;min-width:90px;position:relative;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;background:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab .mdc-tab__text-label{color:rgba(0, 0, 0, 0.6)}.mdc-tab .mdc-tab__icon{color:rgba(0, 0, 0, 0.54);fill:currentColor}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{position:relative;display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;width:24px;height:24px;font-size:24px;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label{color:#26a69a;color:var(--mdc-theme-primary, #26a69a)}.mdc-tab--active .mdc-tab__icon{color:#26a69a;color:var(--mdc-theme-primary, #26a69a);fill:currentColor}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-tab{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-tab .mdc-tab__ripple::before{transition:opacity 15ms linear, background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index, 1)}.mdc-tab .mdc-tab__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index, 0)}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-tab.mdc-ripple-upgraded--unbounded .mdc-tab__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-tab.mdc-ripple-upgraded--foreground-activation .mdc-tab__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards}.mdc-tab.mdc-ripple-upgraded--foreground-deactivation .mdc-tab__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{background-color:#26a69a;background-color:var(--mdc-ripple-color, var(--mdc-theme-primary, #26a69a))}.mdc-tab:hover .mdc-tab__ripple::before,.mdc-tab.mdc-ripple-surface--hover .mdc-tab__ripple::before{opacity:0.08;opacity:var(--mdc-ripple-hover-opacity, 0.08)}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__ripple::before,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-focus-opacity, 0.24)}.mdc-tab:not(.mdc-ripple-upgraded) .mdc-tab__ripple::after{transition:opacity 150ms linear}.mdc-tab:not(.mdc-ripple-upgraded):active .mdc-tab__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-tab.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-tab__ripple{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;will-change:transform, opacity}.scroll-fade,.scroll-button{position:absolute;transition-property:transform;transition-duration:0.3s;transition-timing-function:ease-out}.scroll-fade{top:0;height:100%;width:4.0625rem;pointer-events:none}.scroll-fade.left{transform:translate3d(-4.0625rem, 0, 0);left:0;background:linear-gradient(270deg, rgba(var(--contrast-300), 0) 0%, rgba(var(--contrast-300), 0.8) 40%, rgba(var(--contrast-300), 0.8) 100%)}.scroll-fade.right{transform:translate3d(4.0625rem, 0, 0);right:0;background:linear-gradient(90deg, rgba(var(--contrast-300), 0) 0%, rgba(var(--contrast-300), 0.8) 40%, rgba(var(--contrast-300), 0.8) 100%)}.scroll-button{--icon-background-color:rgb(var(--contrast-100));top:0.25rem}.scroll-button.left{transform:translate3d(-4.0625rem, 0, 0);left:0.25rem}.scroll-button.right{transform:translate3d(4.0625rem, 0, 0);right:0.25rem}.scroll-button:hover{transform:translate3d(0, 0, 0)}.mdc-tab-scroller{position:relative;overflow:hidden}.mdc-tab-scroller.can-scroll-left .scroll-fade.left,.mdc-tab-scroller.can-scroll-left .scroll-button.left,.mdc-tab-scroller.can-scroll-right .scroll-fade.right,.mdc-tab-scroller.can-scroll-right .scroll-button.right{transform:translate3d(0, 0, 0)}.mdc-tab-scroller.can-scroll-left:not(.can-scroll-right) .scroll-button.right,.mdc-tab-scroller.can-scroll-right:not(.can-scroll-left) .scroll-button.left{opacity:0.5;transition-delay:0.5s}.lime-hide-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.mdc-tab-scroller__scroll-content{padding:0.5rem 0.75rem 0 0.75rem;background-color:rgb(var(--contrast-300))}:host{display:block;position:relative}:host(.has-tabs-with-equal-width) .mdc-tab{flex:1 0 auto}.mdc-tab__icon{margin-right:0.5rem}.mdc-tab-indicator .mdc-tab-indicator__content{border:none}.mdc-tab--active .mdc-ripple-upgraded--background-focused:before{background-color:transparent;transition:background-color 1s ease}.mdc-tab__ripple{box-sizing:border-box;border-radius:0.625rem;border-style:solid;border-color:transparent;border-width:0.25rem;opacity:0.7}.mdc-tab__ripple:before,.mdc-tab__ripple:after{transition:background-color 0.5s ease}.mdc-tab{border-radius:0;letter-spacing:normal}.mdc-tab{background-color:transparent;flex:0 0 auto}.mdc-tab:not(.mdc-tab--active):after{content:\"\";display:block;background-color:rgb(var(--contrast-600));width:0.125rem;height:1rem;margin:auto;position:absolute;top:0;bottom:0;border-radius:1rem;right:-0.125rem}.mdc-tab:not(.mdc-tab--active):last-of-type:after{display:none}.mdc-tab--active{border-radius:0.625rem 0.625rem 0 0;background-color:rgb(var(--contrast-100));z-index:2}.mdc-tab--active:before,.mdc-tab--active:after{content:\"\";display:block;width:0.75rem;height:0.75rem;position:absolute;bottom:0;background-color:rgb(var(--contrast-100));-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>\");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>\")}.mdc-tab--active:before{left:-0.75rem;transform:rotateY(180deg)}.mdc-tab--active:after{right:-0.75rem}";
|
|
2244
|
+
const tabBarCss = ":host{--mdc-theme-primary:var(\n --lime-primary-color,\n rgb(var(--color-teal-default))\n );--mdc-theme-secondary:var(\n --lime-secondary-color,\n rgb(var(--contrast-1100))\n );--mdc-theme-on-primary:var(\n --lime-on-primary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-secondary:var(\n --lime-on-secondary-color,\n rgb(var(--contrast-100))\n );--mdc-theme-text-disabled-on-background:var(\n --lime-text-disabled-on-background-color,\n rgba(var(--contrast-1700), 0.38)\n );--mdc-theme-text-primary-on-background:var(\n --lime-text-primary-on-background-color,\n rgba(var(--contrast-1700), 0.87)\n );--mdc-theme-text-secondary-on-background:var(\n --lime-text-secondary-on-background-color,\n rgba(var(--contrast-1700), 0.54)\n );--lime-error-text-color:rgb(var(--color-red-darker));--mdc-theme-surface:var(\n --lime-surface-background-color,\n rgb(var(--contrast-100))\n );--mdc-theme-on-surface:var(\n --lime-on-surface-color,\n var(--lime-text-primary-on-background-color)\n )}.mdc-tab-bar{width:100%}.mdc-tab{height:48px}.mdc-tab--stacked{height:72px}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:flex;flex:1 0 auto;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-color:#26a69a;border-color:var(--mdc-theme-primary, #26a69a)}.mdc-tab-indicator .mdc-tab-indicator__content--icon{color:#575756;color:var(--mdc-theme-secondary, #575756)}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-button-font-size, 0.875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:0.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, 0.0892857143em);text-decoration:none;text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:none;text-transform:var(--mdc-typography-button-text-transform, none);position:relative}.mdc-tab .mdc-tab__text-label{color:rgba(0, 0, 0, 0.6)}.mdc-tab .mdc-tab__icon{color:rgba(0, 0, 0, 0.54);fill:currentColor}.mdc-tab__content{position:relative}.mdc-tab__icon{width:24px;height:24px;font-size:24px}.mdc-tab--active .mdc-tab__text-label{color:#26a69a;color:var(--mdc-theme-primary, #26a69a)}.mdc-tab--active .mdc-tab__icon{color:#26a69a;color:var(--mdc-theme-primary, #26a69a);fill:currentColor}.mdc-tab{background:none}.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px;}@keyframes mdc-ripple-fg-radius-in{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1)}to{transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}}@keyframes mdc-ripple-fg-opacity-in{from{animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-out{from{animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-tab{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-tab .mdc-tab__ripple::before{transition:opacity 15ms linear, background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index, 1)}.mdc-tab .mdc-tab__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index, 0)}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::before{transform:scale(var(--mdc-ripple-fg-scale, 1))}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::after{top:0;left:0;transform:scale(0);transform-origin:center center}.mdc-tab.mdc-ripple-upgraded--unbounded .mdc-tab__ripple::after{top:var(--mdc-ripple-top, 0);left:var(--mdc-ripple-left, 0)}.mdc-tab.mdc-ripple-upgraded--foreground-activation .mdc-tab__ripple::after{animation:mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards}.mdc-tab.mdc-ripple-upgraded--foreground-deactivation .mdc-tab__ripple::after{animation:mdc-ripple-fg-opacity-out 150ms;transform:translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1))}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::after{width:var(--mdc-ripple-fg-size, 100%);height:var(--mdc-ripple-fg-size, 100%)}.mdc-tab .mdc-tab__ripple::before,.mdc-tab .mdc-tab__ripple::after{background-color:#26a69a;background-color:var(--mdc-ripple-color, var(--mdc-theme-primary, #26a69a))}.mdc-tab:hover .mdc-tab__ripple::before,.mdc-tab.mdc-ripple-surface--hover .mdc-tab__ripple::before{opacity:0.08;opacity:var(--mdc-ripple-hover-opacity, 0.08)}.mdc-tab.mdc-ripple-upgraded--background-focused .mdc-tab__ripple::before,.mdc-tab:not(.mdc-ripple-upgraded):focus .mdc-tab__ripple::before{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-focus-opacity, 0.24)}.mdc-tab:not(.mdc-ripple-upgraded) .mdc-tab__ripple::after{transition:opacity 150ms linear}.mdc-tab:not(.mdc-ripple-upgraded):active .mdc-tab__ripple::after{transition-duration:75ms;opacity:0.24;opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-tab.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.mdc-tab__ripple{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;will-change:transform, opacity}.scroll-fade,.scroll-button{position:absolute;transition-property:transform;transition-duration:0.3s;transition-timing-function:ease-out}.scroll-fade{top:0;height:100%;width:4.0625rem;pointer-events:none}.scroll-fade.left{transform:translate3d(-4.0625rem, 0, 0);left:0;background:linear-gradient(270deg, rgba(var(--contrast-300), 0) 0%, rgba(var(--contrast-300), 0.8) 40%, rgba(var(--contrast-300), 0.8) 100%)}.scroll-fade.right{transform:translate3d(4.0625rem, 0, 0);right:0;background:linear-gradient(90deg, rgba(var(--contrast-300), 0) 0%, rgba(var(--contrast-300), 0.8) 40%, rgba(var(--contrast-300), 0.8) 100%)}.scroll-button{--icon-background-color:rgb(var(--contrast-100));top:0.25rem}.scroll-button.left{transform:translate3d(-4.0625rem, 0, 0);left:0.25rem}.scroll-button.right{transform:translate3d(4.0625rem, 0, 0);right:0.25rem}.scroll-button:hover{transform:translate3d(0, 0, 0)}.mdc-tab-scroller{position:relative;overflow:hidden}.mdc-tab-scroller.can-scroll-left .scroll-fade.left,.mdc-tab-scroller.can-scroll-left .scroll-button.left,.mdc-tab-scroller.can-scroll-right .scroll-fade.right,.mdc-tab-scroller.can-scroll-right .scroll-button.right{transform:translate3d(0, 0, 0)}.mdc-tab-scroller.can-scroll-left:not(.can-scroll-right) .scroll-button.right,.mdc-tab-scroller.can-scroll-right:not(.can-scroll-left) .scroll-button.left{opacity:0.5;transition-delay:0.5s}.lime-hide-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.mdc-tab-scroller__scroll-content{padding:0.5rem 0.75rem 0 0.75rem;background-color:rgb(var(--contrast-300))}:host{display:block;position:relative}:host(.has-tabs-with-equal-width) .mdc-tab{flex:1 0 auto}.mdc-tab-indicator .mdc-tab-indicator__content{border:none}.mdc-tab__ripple{box-sizing:border-box;border-radius:0.625rem;border-style:solid;border-color:transparent;border-width:0.25rem;opacity:0.7}.mdc-tab__ripple:before,.mdc-tab__ripple:after{transition:background-color 0.5s ease}.mdc-tab{border-radius:0;letter-spacing:normal;padding-right:1.25rem;padding-left:1.25rem;min-width:2.5rem;background-color:transparent;flex:0 0 auto}.mdc-tab:not(.mdc-tab--active){--badge-background-color:rgb(var(--contrast-600))}.mdc-tab:not(.mdc-tab--active):after{content:\"\";display:block;background-color:rgb(var(--contrast-600));width:0.125rem;height:1rem;margin:auto;position:absolute;top:0;bottom:0;border-radius:1rem;right:-0.125rem}.mdc-tab:not(.mdc-tab--active):last-of-type:after{display:none}.mdc-tab--active{border-radius:0.625rem 0.625rem 0 0;background-color:rgb(var(--contrast-100));z-index:2}.mdc-tab--active:before,.mdc-tab--active:after{content:\"\";display:block;width:0.75rem;height:0.75rem;position:absolute;bottom:0;background-color:rgb(var(--contrast-100));-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>\");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>\")}.mdc-tab--active:before{left:-0.75rem;transform:rotateY(180deg)}.mdc-tab--active:after{right:-0.75rem}.mdc-tab--active .mdc-ripple-upgraded--background-focused:before{background-color:transparent;transition:background-color 1s ease}.mdc-tab__content{gap:0.375rem}.mdc-tab__text-label{padding-left:0 !important}";
|
|
2168
2245
|
|
|
2169
2246
|
const { TAB_ACTIVATED_EVENT } = strings$1;
|
|
2170
2247
|
const SCROLL_DISTANCE_ON_CLICK_PX = 150;
|
|
2171
2248
|
const HIDE_SCROLL_BUTTONS_WHEN_SCROLLED_LESS_THAN_PX = 40;
|
|
2172
|
-
|
|
2249
|
+
const TabBar = class {
|
|
2173
2250
|
constructor(hostRef) {
|
|
2174
2251
|
registerInstance(this, hostRef);
|
|
2175
2252
|
this.changeTab = createEvent(this, "changeTab", 7);
|