1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | require('./slicedToArray-0711941d.js');
|
8 | require('./unsupportedIterableToArray-68db1d3b.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | var defineProperty$1 = require('./defineProperty-0921a47c.js');
|
14 | var _styled = require('styled-components');
|
15 | var _styled__default = _interopDefault(_styled);
|
16 | var getPrototypeOf = require('./getPrototypeOf-2a661a20.js');
|
17 | require('./miscellaneous.js');
|
18 | require('./environment.js');
|
19 | require('./font.js');
|
20 | require('./constants.js');
|
21 | require('./breakpoints.js');
|
22 | var springs = require('./springs.js');
|
23 | require('./text-styles.js');
|
24 | var _extends$1 = require('./extends-40571110.js');
|
25 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
26 | require('react-dom');
|
27 | var web = require('./web-d0294535.js');
|
28 | var taggedTemplateLiteral = require('./taggedTemplateLiteral-227ed122.js');
|
29 | var LeftIcon = require('./LeftIcon.js');
|
30 |
|
31 | function _templateObject4() {
|
32 | var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 63px;\n padding: ", ";\n cursor: pointer;\n svg {\n color: hsl(179, 76%, 48%);\n }\n :active svg {\n color: hsl(179, 76%, 63%);\n }\n & + ", " {\n padding-left: 0;\n }\n"]);
|
33 |
|
34 | _templateObject4 = function _templateObject4() {
|
35 | return data;
|
36 | };
|
37 |
|
38 | return data;
|
39 | }
|
40 |
|
41 | function _templateObject3() {
|
42 | var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n height: 100%;\n align-items: center;\n padding-left: 30px;\n white-space: nowrap;\n font-size: 22px;\n"]);
|
43 |
|
44 | _templateObject3 = function _templateObject3() {
|
45 | return data;
|
46 | };
|
47 |
|
48 | return data;
|
49 | }
|
50 |
|
51 | function _templateObject2() {
|
52 | var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n"]);
|
53 |
|
54 | _templateObject2 = function _templateObject2() {
|
55 | return data;
|
56 | };
|
57 |
|
58 | return data;
|
59 | }
|
60 |
|
61 | function _templateObject() {
|
62 | var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n position: relative;\n height: 100%;\n"]);
|
63 |
|
64 | _templateObject = function _templateObject() {
|
65 | return data;
|
66 | };
|
67 |
|
68 | return data;
|
69 | }
|
70 |
|
71 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
72 |
|
73 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty$1._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
74 |
|
75 | function _createSuper(Derived) { return function () { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; }
|
76 |
|
77 | function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
78 |
|
79 | var NavigationBar = function (_React$Component) {
|
80 | getPrototypeOf._inherits(NavigationBar, _React$Component);
|
81 |
|
82 | var _super = _createSuper(NavigationBar);
|
83 |
|
84 | function NavigationBar() {
|
85 | var _this;
|
86 |
|
87 | getPrototypeOf._classCallCheck(this, NavigationBar);
|
88 |
|
89 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
90 | args[_key] = arguments[_key];
|
91 | }
|
92 |
|
93 | _this = _super.call.apply(_super, [this].concat(args));
|
94 |
|
95 | defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "state", {
|
96 | cachedItems: null,
|
97 | direction: -1
|
98 | });
|
99 |
|
100 | return _this;
|
101 | }
|
102 |
|
103 | getPrototypeOf._createClass(NavigationBar, [{
|
104 | key: "render",
|
105 | value: function render() {
|
106 | var _this$props = this.props,
|
107 | onBack = _this$props.onBack,
|
108 | items = _this$props.items,
|
109 | compact = _this$props.compact;
|
110 | var displayedItems = items.map(function (node, index) {
|
111 | return {
|
112 | node: node,
|
113 | index: index
|
114 | };
|
115 | }).slice(-1);
|
116 | return React__default.createElement(Container, null, React__default.createElement(web.Transition, {
|
117 | items: displayedItems,
|
118 | keys: displayedItems.map(
|
119 |
|
120 |
|
121 | function (item) {
|
122 | return items.length === 1 ? -1 : item.index;
|
123 | }),
|
124 | config: springs.springs.smooth,
|
125 | initial: null,
|
126 | from: {
|
127 | opacity: 0,
|
128 | position: this.state.direction * -1
|
129 | },
|
130 | enter: {
|
131 | opacity: 1,
|
132 | position: 0
|
133 | },
|
134 | leave: {
|
135 | opacity: 0,
|
136 | position: this.state.direction
|
137 | },
|
138 | native: true
|
139 | }, function (item) {
|
140 | return function (styles) {
|
141 | return React__default.createElement(Item, _extends$1._extends({
|
142 | label: item.node,
|
143 | onBack: onBack,
|
144 | displayBack: item.index > 0,
|
145 | compact: compact
|
146 | }, styles));
|
147 | };
|
148 | }));
|
149 | }
|
150 | }], [{
|
151 | key: "getDerivedStateFromProps",
|
152 | value: function getDerivedStateFromProps(props, state) {
|
153 | var updatedState = {
|
154 | cachedItems: props.items
|
155 | };
|
156 |
|
157 | if (!state.cachedItems) {
|
158 | return updatedState;
|
159 | }
|
160 |
|
161 | return _objectSpread({}, updatedState, {
|
162 | direction: state.cachedItems.length > props.items.length ? 1 : -1
|
163 | });
|
164 | }
|
165 | }]);
|
166 |
|
167 | return NavigationBar;
|
168 | }(React__default.Component);
|
169 |
|
170 | defineProperty$1._defineProperty(NavigationBar, "propTypes", {
|
171 | onBack: index.PropTypes.func,
|
172 | items: index.PropTypes.arrayOf(index.PropTypes.node),
|
173 | compact: index.PropTypes.bool
|
174 | });
|
175 |
|
176 | defineProperty$1._defineProperty(NavigationBar, "defaultProps", {
|
177 | onBack: function onBack() {},
|
178 | items: [],
|
179 | compact: false
|
180 | });
|
181 |
|
182 | var Item = function Item(_ref) {
|
183 | var opacity = _ref.opacity,
|
184 | position = _ref.position,
|
185 | displayBack = _ref.displayBack,
|
186 | onBack = _ref.onBack,
|
187 | label = _ref.label,
|
188 | compact = _ref.compact;
|
189 | return React__default.createElement(web.extendedAnimated.span, {
|
190 | style: {
|
191 | display: 'flex',
|
192 | alignItems: 'center',
|
193 | opacity: opacity,
|
194 | transform: position.interpolate(function (p) {
|
195 | return "translate(".concat(p * 20, "px, 0)");
|
196 | })
|
197 | }
|
198 | }, React__default.createElement(Title, null, displayBack && React__default.createElement(BackButton, {
|
199 | onClick: onBack,
|
200 | compact: compact
|
201 | }, React__default.createElement(LeftIcon.default, null)), React__default.createElement(Label, null, label)));
|
202 | };
|
203 |
|
204 | Item.propTypes = {
|
205 | compact: index.PropTypes.bool,
|
206 | displayBack: index.PropTypes.bool,
|
207 | label: index.PropTypes.node,
|
208 | onBack: index.PropTypes.func,
|
209 | opacity: index.PropTypes.object,
|
210 | position: index.PropTypes.object
|
211 | };
|
212 | var Container = _styled__default.span(_templateObject());
|
213 | var Title = _styled__default.span(_templateObject2());
|
214 | var Label = _styled__default.span(_templateObject3());
|
215 | var BackButton = _styled__default.span(_templateObject4(), function (p) {
|
216 | return p.compact ? '0 16px' : '0 20px 0 30px';
|
217 | }, Label);
|
218 |
|
219 | exports.default = NavigationBar;
|
220 |
|