From aadf2a2dbacf6936d48b2c34a1f4152d32e65349 Mon Sep 17 00:00:00 2001 From: minwe Date: Mon, 25 Apr 2016 15:26:47 +0800 Subject: [PATCH] bump v1.0.0-beta.1 --- .gitignore | 2 +- CHANGELOG.md | 15 +- README.md | 12 +- dist/amazeui.touch.css | 4585 ++++++++++++++++++ dist/amazeui.touch.js | 5659 +++++++++++++++++++++++ dist/amazeui.touch.min.css | 5 + dist/amazeui.touch.min.js | 7 + dist/fonts/ratchicons.svg | 61 + dist/fonts/ratchicons.ttf | Bin 0 -> 11512 bytes dist/fonts/ratchicons.woff | Bin 0 -> 6780 bytes docs/getting-started/getting-started.md | 7 +- package.json | 4 +- 12 files changed, 10345 insertions(+), 12 deletions(-) create mode 100644 dist/amazeui.touch.css create mode 100644 dist/amazeui.touch.js create mode 100644 dist/amazeui.touch.min.css create mode 100644 dist/amazeui.touch.min.js create mode 100755 dist/fonts/ratchicons.svg create mode 100755 dist/fonts/ratchicons.ttf create mode 100755 dist/fonts/ratchicons.woff diff --git a/.gitignore b/.gitignore index c77c2ce..7acbc0d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,6 @@ .sass-cache *.log* node_modules -/dist +# /dist /www /lib diff --git a/CHANGELOG.md b/CHANGELOG.md index 6839ffc..aaa28bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,19 @@ ## Change Log -- `Fixed` 修复 Modal `open()` 方法判断逻辑始终为 `true` 的错误。 +### v1.0.0-beta.1 (2016/04/25) + +- `Changed` [93fac1f](https://github.com/amazeui/amazeui-touch/commit/93fac1f8a17a1f9d61af3e401bb759f2f2467a3b) #39 **API 变更**:`onSelect` 与 React 事件 API 冲突,重命名为 `onAction`,涉及的组件包括: + - Modal + - NavBar + - Slider + - Tabs + - TabBar +- `Fixed` [89bc1ff](https://github.com/amazeui/amazeui-touch/commit/89bc1ff022f3b9074409c33f09c24af3c471349f) 修复 React 15.x 读取 `key` 警告问题 +- `Changed` [721a2a7](https://github.com/amazeui/amazeui-touch/commit/721a2a72a63c20200b494d76655f81aca80914cd) #36 `react` 和 `react-dom` 移到 `peerDependencies`,解决使用时打包多个版本的问题 +- `Fixed` [3d6bbdc](https://github.com/amazeui/amazeui-touch/commit/3d6bbdc819175a0cf6b31185b2a7b3421e447a8c) 修复 flexbox 在部分安卓 UA 上的显示问题(Thx @leakl),至此 flexbox 兼容性问题主要剩下 NavBar 和 Grid +- `Improved` [082c00f](https://github.com/amazeui/amazeui-touch/commit/082c00f2ad7d1e61c914238cc5eb326f73cb672e) 运行环境判断,为后端渲染做准备 +- `Fixed` [4903567](https://github.com/amazeui/amazeui-touch/commit/49035679e1e3c55e043eeae02df1dd62be8c71c9) #27 修复 Object.assign 没有转换问题 +- `Fixed` [dcdf80a](https://github.com/amazeui/amazeui-touch/commit/dcdf80a3dcbf1611c5422d4ded8b39de7781f9a0) 修复 Modal `open()` 方法判断逻辑始终为 `true` 的错误 ### v0.1.0-beta2 (2015/11/17) diff --git a/README.md b/README.md index 25c3998..416a6d5 100644 --- a/README.md +++ b/README.md @@ -46,24 +46,24 @@ Amaze UI Touch 专为移动打造,在技术实现、交互设计上只考虑 Button, } from 'amazeui-touch'; - const App = React.createClass({ - getInitialState() { - return { + class App extends React.Component { + constructor(props) { + this.state = { said: false, }; - }, + } handleClick() { this.setState({ said: true, }); - }, + } renderHello() { return this.state.said ? (

Hello World! Welcome to Amaze UI Touch.

) : null; - }, + } render() { const said = this.state.said; diff --git a/dist/amazeui.touch.css b/dist/amazeui.touch.css new file mode 100644 index 0000000..39cb969 --- /dev/null +++ b/dist/amazeui.touch.css @@ -0,0 +1,4585 @@ +/** Amaze UI Touch v1.0.0-beta.1 | by Amaze UI Team + * (c) 2016 AllMobilize, Inc., Licensed under MIT + * 2016-04-25T15:24:15+0800 + */ + [class*="animation-"] { + -webkit-transform: translateZ(0); + transform: translateZ(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000; +} + +/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/** + * Remove default margin. + */ +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + * Correct `block` display not defined in Android 2.1, iOS 3.2 and Opera Mini. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + line-height: normal; + font-family: sans-serif; + margin: 0; + /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + box-sizing: content-box; + /* 2 */ +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} + +* { + outline: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-touch-callout: none; + background: -webkit-linear-gradient(top, transparent, transparent); + background: linear-gradient(to bottom, transparent, transparent); +} + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +@-webkit-keyframes amt-spin { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes amt-spin { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes amt-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes amt-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@-webkit-keyframes amt-fade-out { + to { + opacity: 0; + } +} + +@keyframes amt-fade-out { + to { + opacity: 0; + } +} + +@-webkit-keyframes amt-slide-top { + 0% { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes amt-slide-top { + 0% { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes amt-slide-bottom { + 0% { + opacity: 0; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes amt-slide-bottom { + 0% { + opacity: 0; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes amt-slide-left { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes amt-slide-left { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@-webkit-keyframes amt-slide-top-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes amt-slide-top-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes amt-slide-bottom-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes amt-slide-bottom-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(10px); + transform: translateY(10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes amt-shake { + 0%, 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-9px); + transform: translateX(-9px); + } + 20% { + -webkit-transform: translateX(8px); + transform: translateX(8px); + } + 30% { + -webkit-transform: translateX(-7px); + transform: translateX(-7px); + } + 40% { + -webkit-transform: translateX(6px); + transform: translateX(6px); + } + 50% { + -webkit-transform: translateX(-5px); + transform: translateX(-5px); + } + 60% { + -webkit-transform: translateX(4px); + transform: translateX(4px); + } + 70% { + -webkit-transform: translateX(-3px); + transform: translateX(-3px); + } + 80% { + -webkit-transform: translateX(2px); + transform: translateX(2px); + } + 90% { + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } +} + +@keyframes amt-shake { + 0%, 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-9px); + transform: translateX(-9px); + } + 20% { + -webkit-transform: translateX(8px); + transform: translateX(8px); + } + 30% { + -webkit-transform: translateX(-7px); + transform: translateX(-7px); + } + 40% { + -webkit-transform: translateX(6px); + transform: translateX(6px); + } + 50% { + -webkit-transform: translateX(-5px); + transform: translateX(-5px); + } + 60% { + -webkit-transform: translateX(4px); + transform: translateX(4px); + } + 70% { + -webkit-transform: translateX(-3px); + transform: translateX(-3px); + } + 80% { + -webkit-transform: translateX(2px); + transform: translateX(2px); + } + 90% { + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } +} + +@-webkit-keyframes amt-scale-up { + 0% { + opacity: 0; + -webkit-transform: scale(0.2); + transform: scale(0.2); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes amt-scale-up { + 0% { + opacity: 0; + -webkit-transform: scale(0.2); + transform: scale(0.2); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@-webkit-keyframes amt-scale-down { + 0% { + opacity: 0; + -webkit-transform: scale(1.8); + transform: scale(1.8); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes amt-scale-down { + 0% { + opacity: 0; + -webkit-transform: scale(1.8); + transform: scale(1.8); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +[class*="animation-"] { + -webkit-animation-duration: .3s; + animation-duration: .3s; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animation-spin { + -webkit-animation-name: amt-spin; + animation-name: amt-spin; +} + +.animation-fade-in { + -webkit-animation-name: amt-fade-in; + animation-name: amt-fade-in; +} + +.animation-fade-out { + -webkit-animation-name: amt-fade-out; + animation-name: amt-fade-out; +} + +.animation-slide-top { + -webkit-animation-name: amt-slide-top; + animation-name: amt-slide-top; +} + +.animation-slide-bottom { + -webkit-animation-name: amt-slide-bottom; + animation-name: amt-slide-bottom; +} + +.animation-slide-left { + -webkit-animation-name: amt-slide-left; + animation-name: amt-slide-left; +} + +.animation-slide-right { + -webkit-animation-name: amt-slide-right; + animation-name: amt-slide-right; +} + +.animation-slide-top-fixed slide-bottom-fixed scale-up { + -webkit-animation-name: amt-slide-top-fixed slide-bottom-fixed scale-up; + animation-name: amt-slide-top-fixed slide-bottom-fixed scale-up; +} + +.animation-scale-down { + -webkit-animation-name: amt-scale-down; + animation-name: amt-scale-down; +} + +html, +body { + height: 100%; + overflow: hidden; + font-size: 100%; +} + +html { + box-sizing: border-box; +} + +*, +*:before, +*:after { + box-sizing: inherit; +} + +body { + background: #f4f4f4; + color: #333333; + padding: 0; + margin: 0; + font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", sans-serif; + font-weight: normal; + font-style: normal; + line-height: 1.6; + position: relative; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +label { + -webkit-appearance: none; +} + +img { + max-width: 100%; + height: auto; + -ms-interpolation-mode: bicubic; + display: inline-block; + vertical-align: middle; +} + +a { + color: #0e90d2; + text-decoration: none; +} + +#map_canvas img, +#map_canvas embed, +#map_canvas object, +.map_canvas img, +.map_canvas embed, +.map_canvas object { + max-width: none !important; +} + +address, +blockquote, +dl, +fieldset, +figure, +hr, +ol, +p, +pre, +ul { + margin: 0 0 1rem; +} + +address:last-child, +blockquote:last-child, +dl:last-child, +fieldset:last-child, +figure:last-child, +hr:last-child, +ol:last-child, +p:last-child, +pre:last-child, +ul:last-child { + margin-bottom: 0; +} + +* + address, +* + blockquote, +* + dl, +* + fieldset, +* + figure, +* + hr, +* + ol, +* + p, +* + pre, +* + ul { + margin-top: 1rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + color: #222222; + margin: 0 0 1rem; + line-height: 1.2; +} + +h1 { + font-size: 1.5rem; +} + +h2 { + font-size: 1.375rem; +} + +h3 { + font-size: 1.25rem; +} + +h4 { + font-size: 1.125rem; +} + +h5 { + font-size: 1rem; +} + +h6 { + font-size: 0.875rem; +} + +* + h1, +* + h2, +* + h3, +* + h4, +* + h5, +* + h6 { + margin-top: 1.5em; +} + +p { + font-size: 1rem; + line-height: 1.6; +} + +ul, +ol, +dl { + padding: 0; + line-height: 1.6; +} + +ul, +ol { + padding-left: 2em; +} + +ul li ul, +ul li ol, +ol li ul, +ol li ol { + margin-bottom: 0; + margin-top: 0; +} + +dl dt { + margin-bottom: 0.625rem; + font-weight: bold; +} + +dl dd { + margin: 0 0 0.75rem 0; + font-size: 0.9375rem; +} + +blockquote { + font-family: Georgia, "Times New Roman", Times, SimSimSun, serif; + padding: 0.625rem 0.625rem 0.625rem 0.9375rem; + border-left: 3px solid #ddd; +} + +blockquote cite, +blockquote small { + display: block; + font-size: 0.8125rem; + color: #555555; +} + +blockquote cite a, +blockquote cite a:visited, +blockquote small a, +blockquote small a:visited { + color: #555555; +} + +hr { + border: solid #ddd; + border-width: 1px 0 0; + clear: both; + margin: 1.25rem 0; + height: 0; +} + +.pure-img { + max-width: 100%; + height: auto; + display: block; +} + +/** + * Fill Container + * 1. on its own - fill available vertical space + * 2. as a child - flex to fill vertical space + * 3. fill available vertical space without resorting to "height: 100%", which + * yields undesirable results + */ +.container-fill { + height: 100%; +} + +.container-fill > .container-fill { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0; + -ms-flex: 1 1 0; + flex: 1 1 0; + position: relative; +} + +/** + * Container Layout + * 1. create a flexible layout, either `column` or `row` + * 2. flex-column elements collapse horizontally, so we stretch them out again + */ +.container-column, +.container-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + max-height: 100%; + width: 100%; +} + +.container-column > .container-fill, +.container-row > .container-fill { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0; + -ms-flex: 1 1 0; + flex: 1 1 0; + position: relative; +} + +.container-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} + +.container-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + height: auto; +} + +.container-row > .container-fill { + height: auto; + width: auto; +} + +.container-align-end { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + -ms-grid-row-align: flex-end; + align-items: flex-end; +} + +.container-align-center { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + -ms-grid-row-align: center; + align-items: center; +} + +.container-direction-column > .container-align-center { + text-align: center; +} + +.container-align-start { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + -ms-grid-row-align: flex-start; + align-items: flex-start; +} + +.container-justified { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.container-justify-end { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.container-justify-center { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} + +.container-justify-start { + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.container-scrollable { + max-height: 100%; + overflow-x: hidden; + overflow-y: scroll; +} + +.container-scrollable:before, .container-scrollable:after { + content: ""; + height: 1px; + position: absolute; + width: 1px; +} + +.container-scrollable:before { + bottom: -1px; +} + +.container-scrollable:after { + top: -1px; +} + +.g { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + position: relative; + overflow: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} + +.g .g { + margin-left: -0.625rem; + margin-right: -0.625rem; +} + +.g.g-collapse .col { + padding: 0; +} + +.g-left { + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.g-right { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.g-center { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} + +.g-between { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.g-around { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.col { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding-left: 0.625rem; + padding-right: 0.625rem; +} + +.col-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.66667%; + -ms-flex: 0 0 16.66667%; + flex: 0 0 16.66667%; + max-width: 16.66667%; +} + +.col-offset-1 { + margin-left: 16.66667%; +} + +.g-avg-1 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-1 > li, +.g-avg-1 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; +} + +.col-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.33333%; + -ms-flex: 0 0 33.33333%; + flex: 0 0 33.33333%; + max-width: 33.33333%; +} + +.col-offset-2 { + margin-left: 33.33333%; +} + +.g-avg-2 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-2 > li, +.g-avg-2 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; +} + +.col-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-offset-3 { + margin-left: 50%; +} + +.g-avg-3 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-3 > li, +.g-avg-3 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.33333%; + -ms-flex: 0 0 33.33333%; + flex: 0 0 33.33333%; + max-width: 33.33333%; +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; +} + +.col-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.66667%; + -ms-flex: 0 0 66.66667%; + flex: 0 0 66.66667%; + max-width: 66.66667%; +} + +.col-offset-4 { + margin-left: 66.66667%; +} + +.g-avg-4 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-4 > li, +.g-avg-4 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; +} + +.col-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.33333%; + -ms-flex: 0 0 83.33333%; + flex: 0 0 83.33333%; + max-width: 83.33333%; +} + +.col-offset-5 { + margin-left: 83.33333%; +} + +.g-avg-5 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-5 > li, +.g-avg-5 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; +} + +.col-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.col-offset-6 { + margin-left: 100%; +} + +.g-avg-6 { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + overflow: visible; + list-style: none; +} + +.g-avg-6 > li, +.g-avg-6 > div { + padding: 0 0.625rem 0.625rem; + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.66667%; + -ms-flex: 0 0 16.66667%; + flex: 0 0 16.66667%; + max-width: 16.66667%; +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; +} + +.col-shrink { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + overflow: visible; +} + +.group { + margin: 1.875rem 0; +} + +.group .list { + margin: 0; +} + +.group-body { + display: block; + padding: 0.9375rem; + background: #fff; +} + +.group-no-padded .group-body { + padding: 0; +} + +.group-header, +.group-footer { + padding: 0.3125rem 0.9375rem; + color: #6d6d72; + font-size: 0.875rem; +} + +.badge { + line-height: 1; + white-space: nowrap; + display: inline-block; + cursor: default; + min-width: 1.5rem; + font-size: 0.8rem; + padding: 0.33333rem 0.5rem; + background: #e6e6e6; + border-radius: 0; + color: #333; +} + +.badge-primary { + background: #0e90d2; + border-radius: 0; + color: #fff; +} + +.badge-secondary { + background: #3bb4f2; + border-radius: 0; + color: #fff; +} + +.badge-success { + background: #5eb95e; + border-radius: 0; + color: #fff; +} + +.badge-warning { + background: #F37B1D; + border-radius: 0; + color: #fff; +} + +.badge-alert { + background: #dd514c; + border-radius: 0; + color: #fff; +} + +.badge-dark { + background: #393939; + border-radius: 0; + color: #fff; +} + +.badge-radius { + border-radius: 4px; +} + +.badge-rounded { + border-radius: 1000px; +} + +.doc-content .badge { + margin: 5px; +} + +.btn { + display: inline-block; + border: 0; + text-align: center; + line-height: 1; + cursor: pointer; + -webkit-appearance: none; + -webkit-font-smoothing: antialiased; + -webkit-transition: .25s ease-out; + transition: .25s ease-out; + vertical-align: middle; + padding: 0.75em 1em; + margin: 0 1rem 1rem 0; + border-radius: 0; + font-size: 1rem; + background: #e6e6e6; + border: 1px solid #e6e6e6; + color: #333; +} + +.btn:only-child { + margin-bottom: 0; +} + +.btn:focus { + outline: none; +} + +.btn-group .btn { + border-color: #c4c4c4; +} + +.btn:hover, .btn:active, .btn.active { + background: #c4c4c4; + border-color: #c4c4c4; + color: #333; +} + +.btn[disabled], .btn.disabled { + opacity: 0.5; + cursor: not-allowed; + pointer-events: none; +} + +.btn-block { + display: block; + width: 100%; + margin-left: 0; + margin-right: 0; +} + +.btn-primary { + background: #0e90d2; + border: 1px solid #0e90d2; + color: #fff; +} + +.btn-group .btn-primary { + border-color: #0c7ab3; +} + +.btn-primary:hover, .btn-primary:active, .btn-primary.active { + background: #0c7ab3; + border-color: #0c7ab3; + color: #fff; +} + +.btn-secondary { + background: #3bb4f2; + border: 1px solid #3bb4f2; + color: #fff; +} + +.btn-group .btn-secondary { + border-color: #10a4ef; +} + +.btn-secondary:hover, .btn-secondary:active, .btn-secondary.active { + background: #10a4ef; + border-color: #10a4ef; + color: #fff; +} + +.btn-success { + background: #5eb95e; + border: 1px solid #5eb95e; + color: #fff; +} + +.btn-group .btn-success { + border-color: #48a548; +} + +.btn-success:hover, .btn-success:active, .btn-success.active { + background: #48a548; + border-color: #48a548; + color: #fff; +} + +.btn-warning { + background: #F37B1D; + border: 1px solid #F37B1D; + color: #fff; +} + +.btn-group .btn-warning { + border-color: #dc670c; +} + +.btn-warning:hover, .btn-warning:active, .btn-warning.active { + background: #dc670c; + border-color: #dc670c; + color: #fff; +} + +.btn-alert { + background: #dd514c; + border: 1px solid #dd514c; + color: #fff; +} + +.btn-group .btn-alert { + border-color: #d42e28; +} + +.btn-alert:hover, .btn-alert:active, .btn-alert.active { + background: #d42e28; + border-color: #d42e28; + color: #fff; +} + +.btn-dark { + background: #393939; + border: 1px solid #393939; + color: #fff; +} + +.btn-group .btn-dark { + border-color: #303030; +} + +.btn-dark:hover, .btn-dark:active, .btn-dark.active { + background: #303030; + border-color: #303030; + color: #fff; +} + +.btn-xs { + font-size: 0.75rem; +} + +.btn-sm { + font-size: 0.875rem; +} + +.btn-lg { + font-size: 1.125rem; +} + +.btn-xl { + font-size: 1.25rem; +} + +.btn-hollow { + background: transparent; + border: 1px solid #888888; + color: #888888; +} + +.btn-hollow:active, .btn-hollow.active { + background: #888888; + color: #fff; +} + +.btn-hollow.btn-primary { + border: 1px solid #0e90d2; + color: #0e90d2; +} + +.btn-hollow.btn-primary:active, .btn-hollow.btn-primary.active { + background: #0e90d2; + color: #fff; +} + +.btn-hollow.btn-secondary { + border: 1px solid #3bb4f2; + color: #3bb4f2; +} + +.btn-hollow.btn-secondary:active, .btn-hollow.btn-secondary.active { + background: #3bb4f2; + color: #fff; +} + +.btn-hollow.btn-success { + border: 1px solid #5eb95e; + color: #5eb95e; +} + +.btn-hollow.btn-success:active, .btn-hollow.btn-success.active { + background: #5eb95e; + color: #fff; +} + +.btn-hollow.btn-warning { + border: 1px solid #F37B1D; + color: #F37B1D; +} + +.btn-hollow.btn-warning:active, .btn-hollow.btn-warning.active { + background: #F37B1D; + color: #fff; +} + +.btn-hollow.btn-alert { + border: 1px solid #dd514c; + color: #dd514c; +} + +.btn-hollow.btn-alert:active, .btn-hollow.btn-alert.active { + background: #dd514c; + color: #fff; +} + +.btn-hollow.btn-dark { + border: 1px solid #393939; + color: #393939; +} + +.btn-hollow.btn-dark:active, .btn-hollow.btn-dark.active { + background: #393939; + color: #fff; +} + +.btn-radius { + border-radius: 4px; +} + +.btn-rounded { + border-radius: 1000px; +} + +.btn-group { + margin: 0 0 1rem; + list-style-type: none; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + overflow: hidden; + font-size: 1rem; +} + +.btn-group > .btn { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + position: relative; + margin: 0; +} + +.btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active { + z-index: 2; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-left: -0.3125rem; +} + +.btn-toolbar .btn-group { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +.btn-toolbar > .btn, +.btn-toolbar > .btn-group { + margin-left: -0.3125rem; +} + +.btn-group-stacked { + display: inline-block; +} + +.btn-group-stacked > .btn, +.btn-group-stacked > .btn-group, +.btn-group-stacked > .btn-group > .btn { + -webkit-box-flex: 0; + -webkit-flex: none; + -ms-flex: none; + flex: none; + display: block; + width: 100%; + max-width: 100%; +} + +.btn-group-stacked > .btn + .btn, +.btn-group-stacked > .btn + .btn-group, +.btn-group-stacked > .btn-group + .btnbtn, +.btn-group-stacked > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-justify { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; +} + +.btn-group-justify > .btn, +.btn-group-justify > .btn-group { + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +@font-face { + font-family: Ratchicons; + font-weight: normal; + font-style: normal; + src: url("fonts/ratchicons.woff") format("woff"), url("fonts/ratchicons.ttf") format("truetype"), url("fonts/ratchicons.svg#svgFontName") format("svg"); +} + +.icon { + display: inline-block; + font-family: Ratchicons, sans-serif; + font-size: 24px; + line-height: 1; + text-decoration: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.btn .icon { + font-size: inherit; +} + +.icon-back:before { + content: "\e80a"; +} + +.icon-bars:before { + content: "\e80e"; +} + +.icon-caret:before { + content: "\e80f"; +} + +.icon-check:before { + content: "\e810"; +} + +.icon-close:before { + content: "\e811"; +} + +.icon-code:before { + content: "\e812"; +} + +.icon-compose:before { + content: "\e813"; +} + +.icon-download:before { + content: "\e815"; +} + +.icon-edit:before { + content: "\e829"; +} + +.icon-forward:before { + content: "\e82a"; +} + +.icon-gear:before { + content: "\e821"; +} + +.icon-home:before { + content: "\e82b"; +} + +.icon-info:before { + content: "\e82c"; +} + +.icon-list:before { + content: "\e823"; +} + +.icon-more-vertical:before { + content: "\e82e"; +} + +.icon-more:before { + content: "\e82f"; +} + +.icon-pages:before { + content: "\e824"; +} + +.icon-pause:before { + content: "\e830"; +} + +.icon-person:before { + content: "\e832"; +} + +.icon-play:before { + content: "\e816"; +} + +.icon-plus:before { + content: "\e817"; +} + +.icon-refresh:before { + content: "\e825"; +} + +.icon-search:before { + content: "\e819"; +} + +.icon-share:before { + content: "\e81a"; +} + +.icon-sound:before { + content: "\e827"; +} + +.icon-sound2:before { + content: "\e828"; +} + +.icon-sound3:before { + content: "\e80b"; +} + +.icon-sound4:before { + content: "\e80c"; +} + +.icon-star-filled:before { + content: "\e81b"; +} + +.icon-star:before { + content: "\e81c"; +} + +.icon-stop:before { + content: "\e81d"; +} + +.icon-trash:before { + content: "\e81e"; +} + +.icon-up-nav:before { + content: "\e81f"; +} + +.icon-up:before { + content: "\e80d"; +} + +.icon-right-nav:before { + content: "\e818"; +} + +.icon-right:before { + content: "\e826"; +} + +.icon-down-nav:before { + content: "\e814"; +} + +.icon-down:before { + content: "\e820"; +} + +.icon-left-nav:before { + content: "\e82d"; +} + +.icon-left:before { + content: "\e822 "; +} + +input[type="text"], +input[type="password"], +input[type="date"], +input[type="datetime"], +input[type="datetime-local"], +input[type="month"], +input[type="week"], +input[type="time"], +input[type="email"], +input[type="tel"], +input[type="url"], +input[type="number"], +input[type="search"], +input[type="color"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + display: block; + box-sizing: border-box; + width: 100%; + padding: 0.75rem 0.5rem; + margin-bottom: 1rem; + border: 1px solid #ccc; + border-radius: 0; + outline: 0; + background: #fff; + color: #222222; + font-size: 1rem; + -webkit-font-smoothing: antialiased; + vertical-align: middle; + -webkit-transition: border .15s; + transition: border .15s; +} + +input[type="text"]:hover, +input[type="password"]:hover, +input[type="date"]:hover, +input[type="datetime"]:hover, +input[type="datetime-local"]:hover, +input[type="month"]:hover, +input[type="week"]:hover, +input[type="time"]:hover, +input[type="email"]:hover, +input[type="tel"]:hover, +input[type="url"]:hover, +input[type="number"]:hover, +input[type="search"]:hover, +input[type="color"]:hover, +textarea:hover { + border-color: #bbb; + background: #fff; + color: #222222; +} + +input[type="text"]:focus, +input[type="password"]:focus, +input[type="date"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="month"]:focus, +input[type="week"]:focus, +input[type="time"]:focus, +input[type="email"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="color"]:focus, +textarea:focus { + outline: 0; + border-color: #999; + background: #fff; + color: #222222; +} + +label { + display: block; + font-size: 1rem; + margin-bottom: 0.5rem; + color: #333; +} + +label > input, +label > select, +label > textarea { + margin-top: 0.5rem; +} + +label .field-icon { + display: none; +} + +input.disabled, input[disabled], input[readonly], +fieldset[disabled] input, +textarea.disabled, +textarea[disabled], +textarea[readonly], +fieldset[disabled] +textarea { + cursor: not-allowed; +} + +input.disabled, input.disabled:hover, input[disabled], input[disabled]:hover, input[readonly], input[readonly]:hover, +fieldset[disabled] input, +fieldset[disabled] input:hover, +textarea.disabled, +textarea.disabled:hover, +textarea[disabled], +textarea[disabled]:hover, +textarea[readonly], +textarea[readonly]:hover, +fieldset[disabled] +textarea, +fieldset[disabled] +textarea:hover { + background-color: #f2f2f2; +} + +.form-set { + margin-bottom: 0.9375rem; +} + +.form-set > input { + position: relative; + top: -1px; + border-radius: 0 !important; +} + +.form-set > input:not(:last-of-type) { + margin-bottom: 0; +} + +.form-set > input:focus { + z-index: 2; +} + +.form-set > input:first-child { + top: 1px; +} + +.form-set > input:last-child { + top: -2px; +} + +input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; + background: #0e90d2; +} + +select { + -webkit-appearance: none; + -moz-appearance: none; + display: block; + width: 100%; + padding: 0.75rem 0.5rem; + margin: 0 0 0.9375rem 0; + font-size: 1rem; + line-height: normal; + color: #222222; + border-radius: 0; + border: 1px solid #ccc; + background: #fafafa url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%2232%22%20height%3D%2220%22%20viewBox%3D%220%200%2032%2020%22%3E%3Cpolygon%20points%3D%220%2C0%2032%2C0%2016%2C20%22%20style%3D%22fill%3A%20#222222%22%3E%3C/polygon%3E%3C/svg%3E") right 10px center no-repeat; + background-size: 8px 8px; + padding-right: 1.625rem; +} + +select:hover { + background-color: #f0f0f0; +} + +select:focus { + outline: 0; +} + +select::-ms-expand { + display: none; +} + +textarea { + height: auto; + width: 100%; + min-height: 5rem; + resize: vertical; +} + +.field-group { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row nowrap; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + margin-bottom: 1rem; +} + +.field-group > input, +.field-group > select { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; +} + +.field-group > .btn, +.field-group .field-group-label { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + margin: 0; + padding-top: 0; + padding-bottom: 0; + border-radius: 0; +} + +.field-group > .btn:first-child, +.field-group .field-group-label:first-child { + border-right: 0; +} + +.field-group > .btn:last-child, +.field-group .field-group-label:last-child { + border-left: 0; +} + +.field-group > .btn { + border-color: #ccc; +} + +.field-group-label { + padding-left: 0.5rem; + padding-right: 0.5rem; + border: 1px solid #ccc; + background: #eee; + color: #333; +} + +input[type="range"] { + -webkit-appearance: none; + -moz-appearance: none; + display: block; + width: 100%; + height: auto; + cursor: pointer; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + border: 0; + line-height: 1; +} + +input[type="range"]:focus { + outline: 0; +} + +input[type="range"]::-webkit-slider-runnable-track { + height: 1rem; + background: #ddd; +} + +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + background: #0e90d2; + width: 1.5rem; + height: 1.5rem; + margin-top: -0.25rem; + border: none; +} + +input[type="range"]::-moz-range-track { + -moz-appearance: none; + height: 1rem; + background: #ccc; +} + +input[type="range"]::-moz-range-thumb { + -moz-appearance: none; + background: #0e90d2; + width: 1.5rem; + height: 1.5rem; + margin-top: -0.25rem; +} + +input[type="range"]::-ms-track { + height: 1rem; + background: #ddd; + color: transparent; + border: 0; + overflow: visible; + border-top: 0.25rem solid #f4f4f4; + border-bottom: 0.25rem solid #f4f4f4; +} + +input[type="range"]::-ms-thumb { + background: #0e90d2; + width: 1.5rem; + height: 1.5rem; + border: 0; +} + +input[type="range"]::-ms-fill-lower, input[type="range"]::-ms-fill-upper { + background: #ddd; +} + +output { + line-height: 1.5rem; + vertical-align: middle; + margin-left: 0.5em; +} + +.card-header, .card-footer { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + min-height: 2.75rem; + padding: 0.625rem 0.9375rem; +} + +.card-body .accordion, .card-body .list, .card-body .tabs { + margin: -1.25rem -0.9375rem -1.25rem -0.9375rem; +} + +.card { + margin: 0.625rem 0.9375rem; + border-radius: 1px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + background: #fff; + color: #333; +} + +.card-header { + border-bottom: 1px solid #eeeeee; +} + +.card-cover { + background-size: cover; + background-position: center; + min-height: 10rem; + color: #f2f2f2; +} + +.card-cover.card-header { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + -ms-grid-row-align: flex-end; + align-items: flex-end; +} + +.card-cover .card-title { + color: inherit; +} + +.card-title { + font-size: 1rem; + margin: 0; +} + +.card-body { + padding: 1.25rem 0.9375rem; + line-height: 1.6; +} + +.card-footer { + border-top: 1px solid #eee; + font-size: 0.875rem; + color: #888888; +} + +.accordion { + margin: 0.9375rem 0; + border-top: 1px solid #eee; + background: #fff; +} + +.card-body .accordion { + border-top: none; +} + +.card-body .accordion .accordion-item:last-child { + border-bottom: none; +} + +.accordion-item { + margin: 0; + border-bottom: 1px solid #eee; +} + +.accordion-item.active .accordion-icon { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.accordion-title { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + margin: 0; + padding: 0.625rem 0.9375rem; + font-weight: normal; + cursor: pointer; +} + +.accordion-title:active { + background: #eeeeee; +} + +.accordion-item.disabled .accordion-title { + cursor: default; + pointer-events: none; +} + +.accordion-title .accordion-icon { + display: block; + font-size: 1.25rem; + color: rgba(136, 136, 136, 0.45); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; +} + +.accordion-body { + margin: 0 !important; + padding: 0 !important; + border: none !important; +} + +.accordion-content { + padding: 0 0.9375rem 0.625rem; + font-size: 0.9375rem; + color: #555555; +} + +.accordion-inset { + margin-left: 0.9375rem; + margin-right: 0.9375rem; +} + +.item, .item-linked > a, .item-main, .item-title-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.list { + margin: 1.875rem 0; + padding: 0; + list-style: none; + background: #fff; +} + +.item { + padding: 0.625rem 0.9375rem; + min-height: 2.75rem; + margin-bottom: -1px; + border: 1px solid #e6e6e6; + border-width: 1px 0; +} + +.card-body .item:first-child { + border-top: none; +} + +.card-body .item:last-child { + border-bottom: none; +} + +.item-header { + min-height: 0; + padding: 0.1875rem 0.9375rem; + border-top: 1px solid #e6e6e6; + background: #f7f7f7; + color: #888888; +} + +.item-linked { + padding: 0; +} + +.item-linked > a { + width: 100%; + padding: 0.625rem 0.46875rem 0.625rem 0.9375rem; + color: #222222; +} + +.item-linked > a:active { + background: #eeeeee; +} + +.item-main { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.item-title-row { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.item-title-row ~ [class*="item-"] { + margin-top: 0.3125rem; +} + +.item-title { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; + font-size: 1.0625rem; + font-weight: 500; +} + +.item-icon { + color: rgba(136, 136, 136, 0.45); + font-size: 1.25rem; +} + +.item-after { + color: #888888; + margin-left: 0.3125rem; +} + +.item-after + .icon { + margin-left: 0.1875rem; +} + +.item-subtitle { + color: #555555; +} + +.item-desc { + font-size: 0.875rem; + color: #888888; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + line-height: 1.3em; + max-height: 2.6em; +} + +.item-content .item-main { + display: block; +} + +.item-media + .item-main { + margin-left: 0.625rem; +} + +.item-input, .item-checkbox, +.item-radio { + border-color: #ddd; + padding-top: 0; + padding-bottom: 0; +} + +.item-input .field-container, .item-checkbox .field-container, +.item-radio .field-container { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; +} + +.item-input .field-label { + display: block; + width: 35%; +} + +.item-input input, +.item-input textarea { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.item-input input, .item-input input:hover, .item-input input:focus, +.item-input textarea, +.item-input textarea:hover, +.item-input textarea:focus { + margin: 0; + padding: 0.8125rem 0; + border: none; +} + +.item-checkbox, +.item-radio { + padding: 0; +} + +.item-checkbox .field-container, +.item-radio .field-container { + padding: 0 0.9375rem; +} + +.item-checkbox .field-container:active, +.item-radio .field-container:active { + background: #eeeeee; +} + +.item-checkbox .field-label, +.item-radio .field-label { + display: block; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.8125rem 0; + line-height: normal; +} + +.item-checkbox input, +.item-radio input { + display: none; +} + +.item-checkbox input + .field-icon, +.item-radio input + .field-icon { + display: none; + overflow: hidden; + border-radius: 0.625rem; + color: #0e90d2; + font-size: 1.25rem; +} + +.item-checkbox input:checked + .field-icon, +.item-radio input:checked + .field-icon { + display: block; +} + +.item-checkbox .field-icon { + background: #0e90d2; + color: #fff !important; +} + +.list-inset { + margin-left: 0.9375rem; + margin-right: 0.9375rem; +} + +.loader { + display: inline-block; + text-align: center; +} + +.loader > div { + width: 16px; + height: 16px; + background-color: #888; + display: inline-block; + -webkit-animation: amt-bouncedelay 1.4s infinite ease-in-out both; + animation: amt-bouncedelay 1.4s infinite ease-in-out both; +} + +.loader > div + div { + margin-left: 5px; +} + +.loader .loader-bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} + +.loader .loader-bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +@-webkit-keyframes amt-bouncedelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes amt-bouncedelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.loader-rounded > div { + border-radius: 100%; +} + +.loader-primary > div { + background-color: #0e90d2; +} + +.loader-secondary > div { + background-color: #3bb4f2; +} + +.loader-success > div { + background-color: #5eb95e; +} + +.loader-warning > div { + background-color: #F37B1D; +} + +.loader-alert > div { + background-color: #dd514c; +} + +.loader-dark > div { + background-color: #393939; +} + +.loader-white > div { + background-color: #fff; +} + +.modal { + position: fixed; + z-index: 1010; + left: 50%; + top: 50%; + width: 270px; + text-align: center; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); +} + +.modal:focus { + outline: 0; +} + +.modal-inner { + position: relative; + background: #f8f8f8; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + -webkit-animation: amt-modal-in 0.3s ease-out; + animation: amt-modal-in 0.3s ease-out; +} + +.modal-out .modal-inner { + -webkit-animation-name: amt-modal-out; + animation-name: amt-modal-out; +} + +@-webkit-keyframes amt-modal-in { + from { + opacity: 0; + -webkit-transform: scale3d(0.5, 0.5, 1); + transform: scale3d(0.5, 0.5, 1); + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; + } +} + +@keyframes amt-modal-in { + from { + opacity: 0; + -webkit-transform: scale3d(0.5, 0.5, 1); + transform: scale3d(0.5, 0.5, 1); + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; + } +} + +@-webkit-keyframes amt-modal-out { + to { + opacity: 0; + -webkit-transform: scale3d(0.5, 0.5, 1); + transform: scale3d(0.5, 0.5, 1); + } +} + +@keyframes amt-modal-out { + to { + opacity: 0; + -webkit-transform: scale3d(0.5, 0.5, 1); + transform: scale3d(0.5, 0.5, 1); + } +} + +.modal-header { + padding: 0.9375rem 0.625rem; +} + +.modal-title { + margin: 0; + font-weight: 500; + font-size: 1.125rem; +} + +.modal-icon, .popup-icon { + position: absolute; + right: 0.3125rem; + top: 0.3125rem; + color: rgba(136, 136, 136, 0.5); + cursor: pointer; +} + +.modal-icon:active, .popup-icon:active { + color: #555555; + background: #eeeeee; +} + +.modal-body { + padding: 0.9375rem 0.625rem; + text-align: center; +} + +.modal-header + .modal-body { + padding-top: 0; +} + +.modal-body + .modal-body { + margin-top: 5px; +} + +.modal-body input[type="text"] { + padding-top: .5em; + padding-bottom: .5em; +} + +.modal-body :last-child { + margin-bottom: 0 !important; +} + +.modal-body + .modal-footer { + border-top: 1px solid #dedede; +} + +.modal-footer { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + overflow: hidden; +} + +.modal-btn { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + font-size: 1rem; + line-height: 2.75rem; + text-align: center; + color: #0e90d2; + cursor: pointer; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.modal-btn + .modal-btn { + border-left: 1px solid #dedede; +} + +.modal-btn:active { + background: #d4d4d4; +} + +.modal-transition-appear.modal-actions, .modal-transition-appear.popup { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} + +.modal-transition-appear-active.modal-actions, .modal-transition-appear-active.popup { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition: -webkit-transform 0.3s linear; + transition: -webkit-transform 0.3s linear; + transition: transform 0.3s linear; + transition: transform 0.3s linear, -webkit-transform 0.3s linear; +} + +.modal-out.modal-actions, .modal-out.popup { + -webkit-animation: amt-modal-transition-out 0.3s linear; + animation: amt-modal-transition-out 0.3s linear; +} + +.modal-actions { + position: fixed; + left: 0; + bottom: 0; + z-index: 1010; + width: 100%; + text-align: center; +} + +.modal-actions .list { + margin: 0; +} + +@-webkit-keyframes amt-modal-transition-out { + to { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes amt-modal-transition-out { + to { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.modal-actions-group { + margin: 0.625rem; +} + +.modal-actions-header { + color: #888888; + font-size: 0.875rem; +} + +.modal-actions-alert { + color: #dd514c; +} + +.modal-actions-alert a { + color: inherit; +} + +.popup { + position: fixed; + left: 0; + top: 0; + bottom: 0; + width: 100%; + height: 100%; + z-index: 1010; + background: #fff; + overflow: hidden; +} + +.modal-popup-appear-active { + color: red !important; + border: 1px solid red; +} + +.popup-inner { + padding-top: 2.75rem; + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.popup-header { + position: absolute; + top: 0; + width: 100%; + height: 2.75rem; + border-bottom: 1px solid #dedede; + background-color: #fff; +} + +.popup-icon { + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.popup-title { + margin: 0 1.875rem; + font-size: 1rem; + font-weight: bold; + line-height: 2.6875rem; + text-align: center; + color: #333333; +} + +.popup-body { + padding: 0.9375rem; + background: #f8f8f8; + color: #555555; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1009; + background: rgba(0, 0, 0, 0.3); + opacity: 1; + -webkit-animation-duration: 0.3s; + animation-duration: 0.3s; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; + -webkit-animation-name: amt-fade-in; + animation-name: amt-fade-in; +} + +.modal-backdrop.modal-backdrop-out { + -webkit-animation-name: amt-fade-out; + animation-name: amt-fade-out; +} + +.navbar { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + overflow: visible; + height: 2.75rem; + padding: 0 0.625rem; + line-height: 2.6875rem; + background: #eeeeee; + color: #333333; + border-bottom: 1px solid #e2e2e2; +} + +.navbar-title { + margin: 0; + font-size: 100%; + font-weight: bold; + color: inherit; +} + +.navbar-left, +.navbar-center, +.navbar-right { + display: block; + white-space: nowrap; + overflow: visible; +} + +.navbar-left:first-child:last-child, +.navbar-center:first-child:last-child, +.navbar-right:first-child:last-child { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; +} + +.navbar-nav-item { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + cursor: pointer; +} + +.navbar-nav-item + .navbar-nav-item { + margin-left: 0.625rem; +} + +.navbar-nav-title ~ .navbar-icon { + font-size: inherit; + line-height: normal; +} + +.navbar-left { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; +} + +.navbar-left .navbar-icon { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; +} + +.navbar-center { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + text-align: center; +} + +.navbar-right { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + text-align: right; +} + +.navbar-left:first-child { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.navbar-left:first-child + .navbar-right:last-child { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.navbar-center:first-child:not(:last-child) { + margin-left: 25%; +} + +.navbar-center + .navbar-left { + margin-right: -25%; +} + +.navbar-primary { + background: #0e90d2; + color: #fff; + border-bottom: 1px solid #0c80ba; +} + +.navbar-primary .navbar-nav-item { + color: #f2f2f2; +} + +.navbar-secondary { + background: #3bb4f2; + color: #fff; + border-bottom: 1px solid #23abf0; +} + +.navbar-secondary .navbar-nav-item { + color: #f2f2f2; +} + +.navbar-success { + background: #5eb95e; + color: #fff; + border-bottom: 1px solid #4db14d; +} + +.navbar-success .navbar-nav-item { + color: #f2f2f2; +} + +.navbar-warning { + background: #F37B1D; + color: #fff; + border-bottom: 1px solid #ea6e0c; +} + +.navbar-warning .navbar-nav-item { + color: #f2f2f2; +} + +.navbar-alert { + background: #dd514c; + color: #fff; + border-bottom: 1px solid #d93c37; +} + +.navbar-alert .navbar-nav-item { + color: #f2f2f2; +} + +.navbar-dark { + background: #393939; + color: #fff; + border-bottom: 1px solid #2c2c2c; +} + +.navbar-dark .navbar-nav-item { + color: #f2f2f2; +} + +.notification { + top: 0; + left: 0; + z-index: 1100; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + padding: 0.625rem 1rem; + /*.active { + display: flex; + }*/ + background: rgba(34, 34, 34, 0.9); + color: #fff; +} + +.notification-icon { + cursor: pointer; +} + +.notification-content { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} + +.notification-content, +.notification-content .notification-title { + font-size: 0.875rem; +} + +.notification-content > :first-child { + margin-top: 0; +} + +.notification-content > :last-child { + margin-bottom: 0; +} + +.notification-title { + margin: 0; + color: inherit; +} + +.notification-primary { + background: rgba(14, 144, 210, 0.9); + color: #fff; +} + +.notification-secondary { + background: rgba(59, 180, 242, 0.9); + color: #fff; +} + +.notification-success { + background: rgba(94, 185, 94, 0.9); + color: #fff; +} + +.notification-warning { + background: rgba(243, 123, 29, 0.9); + color: #fff; +} + +.notification-alert { + background: rgba(221, 81, 76, 0.9); + color: #fff; +} + +.notification-animated { + position: absolute; +} + +.notification-enter { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); +} + +.notification-enter-active { + -webkit-animation: amt-notification-enter .3s ease-in-out; + animation: amt-notification-enter .3s ease-in-out; +} + +.notification-leave { + -webkit-animation: amt-notification-leave .3s ease-in-out; + animation: amt-notification-leave .3s ease-in-out; +} + +@-webkit-keyframes amt-notification-enter { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + opacity: .5; + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes amt-notification-enter { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + opacity: .5; + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@-webkit-keyframes amt-notification-leave { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + opacity: .5; + } +} + +@keyframes amt-notification-leave { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + opacity: .5; + } +} + +.offcanvas { + position: fixed; + top: 0; + bottom: 0; + z-index: 1020; + width: 16.875rem; + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + background: #fff; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + -webkit-animation-duration: 0.4s; + animation-duration: 0.4s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} + +.offcanvas-left { + left: 0; + -webkit-animation-name: offcanvas-left-in; + animation-name: offcanvas-left-in; +} + +.offcanvas-left.offcanvas-out { + -webkit-animation-name: offcanvas-left-out; + animation-name: offcanvas-left-out; +} + +@-webkit-keyframes offcanvas-left-in { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes offcanvas-left-in { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes offcanvas-left-out { + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes offcanvas-left-out { + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.offcanvas-right { + right: 0; + -webkit-animation-name: offcanvas-right-in; + animation-name: offcanvas-right-in; +} + +.offcanvas-right.offcanvas-out { + -webkit-animation-name: offcanvas-right-out; + animation-name: offcanvas-right-out; +} + +@-webkit-keyframes offcanvas-right-in { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes offcanvas-right-in { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + 100% { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes offcanvas-right-out { + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes offcanvas-right-out { + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.with-offcanvas-left .offcanvas-push-target, .with-offcanvas-right .offcanvas-push-target, .with-offcanvas-closing .offcanvas-push-target { + -webkit-transition: -webkit-transform 0.4s ease-in-out; + transition: -webkit-transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out; + transition: transform 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out; +} + +.with-offcanvas-left .offcanvas-push-target { + -webkit-transform: translate3d(16.875rem, 0, 0); + transform: translate3d(16.875rem, 0, 0); +} + +.with-offcanvas-right .offcanvas-push-target { + -webkit-transform: translate3d(-16.875rem, 0, 0); + transform: translate3d(-16.875rem, 0, 0); +} + +.with-offcanvas-closing .offcanvas-push-target { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1030; + width: 15rem; + margin: 0; + background: #fff; + color: #333333; + border: 1px solid #ddd; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); + -webkit-animation-duration: 0.3s; + animation-duration: 0.3s; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-name: amt-slide-top-fixed; + animation-name: amt-slide-top-fixed; +} + +.popover-out { + -webkit-animation-name: amt-popover-out; + animation-name: amt-popover-out; +} + +@-webkit-keyframes amt-popover-out { + to { + opacity: 0; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } +} + +@keyframes amt-popover-out { + to { + opacity: 0; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } +} + +.popover-inner { + position: relative; + z-index: 110; + background: #fff; + padding: 8px; +} + +.popover-angle { + border-width: 8px; +} + +.popover-angle, .popover-angle:after { + position: absolute; + z-index: 120; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover-angle:after { + content: ""; + border-width: 7px; +} + +.popover-angle-bottom { + bottom: 0; + border-top-color: #ddd; + -webkit-transform: translate3d(-50%, 100%, 0); + transform: translate3d(-50%, 100%, 0); +} + +.popover-angle-bottom:after { + border-top-color: #fff; + bottom: 1px; +} + +.popover-angle-bottom, .popover-angle-bottom:after { + border-bottom-width: 0; +} + +.popover-angle-top { + top: 0; + border-bottom-color: #ddd; + -webkit-transform: translate3d(-50%, -100%, 0); + transform: translate3d(-50%, -100%, 0); +} + +.popover-angle-top:after { + top: 1px; + border-bottom-color: #fff; +} + +.popover-angle-top, .popover-angle-top:after { + border-top-width: 0; +} + +.popover-angle-top:after, +.popover-angle-bottom:after { + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +.popover-angle-left { + left: 0; + border-right-color: #ddd; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.popover-angle-left:after { + border-right-color: #fff; + top: -7px; + left: 1px; +} + +.popover-angle-left, .popover-angle-left:after { + border-left-width: 0; +} + +.popover-angle-right { + right: 0; + border-left-color: #ddd; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.popover-angle-right:after { + border-left-color: #fff; + top: -7px; + right: 1px; +} + +.popover-angle-right, .popover-angle-right:after { + border-right-width: 0; +} + +.slider { + position: relative; +} + +.slider ul, +.slider ol { + list-style: none; + padding: 0; +} + +.slider-slides { + position: relative; + width: 100%; + overflow: hidden; + margin: 0; +} + +.slider-slides > li { + position: relative; + display: none; + -webkit-transition: -webkit-transform 0.5s ease-in-out; + transition: -webkit-transform 0.5s ease-in-out; + transition: transform 0.5s ease-in-out; + transition: transform 0.5s ease-in-out, -webkit-transform 0.5s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; +} + +.slider-slides > li > img, +.slider-slides > li > a > img { + display: block; + width: 100%; + height: auto; + line-height: 1; +} + +.slider-slides > li.next, .slider-slides > li.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} + +.slider-slides > li.prev, .slider-slides > li.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} + +.slider-slides > li.next.left, .slider-slides > li.prev.right, .slider-slides > li.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.slider-slides > .active, +.slider-slides > .next, +.slider-slides > .prev { + display: block; +} + +.slider-slides > .active { + left: 0; +} + +.slider-slides > .next, +.slider-slides > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.slider-control-prev, .slider-control-next { + position: absolute; + top: 50%; + z-index: 5; + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0); + border-radius: 50%; + color: rgba(255, 255, 255, 0.7); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + cursor: pointer; +} + +.slider-control-prev { + left: 10px; +} + +.slider-control-next { + right: 10px; +} + +.slider-indicators { + position: absolute; + bottom: 0.9375rem; + left: 50%; + z-index: 15; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + margin: 0; + -webkit-transform: translate3d(-50%, 0, 0); + transform: translate3d(-50%, 0, 0); +} + +.slider-indicators li { + display: block; + width: 8px; + height: 8px; + overflow: hidden; + text-indent: -999px; + border: 1px solid #fff; + border-radius: 10px; + cursor: pointer; +} + +.slider-indicators li + li { + margin-left: 8px; +} + +.slider-indicators .active { + background: #fff; +} + +.slider-thumbs { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin: 5px 0 0; +} + +.slider-thumbs li { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + opacity: 0.75; + cursor: pointer; + -webkit-transition: opacity 0.5s; + transition: opacity 0.5s; +} + +.slider-thumbs li + li { + margin-left: 2px; +} + +.slider-thumbs .active { + opacity: 1; +} + +.slider-caption { + position: absolute; + bottom: 20px; + z-index: 10; + width: 100%; + padding-top: 0.9375rem; + padding-bottom: 0.9375rem; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.switch { + position: relative; + display: inline-block; + overflow: hidden; + vertical-align: middle; + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center; + cursor: pointer; +} + +.switch input[type="checkbox"] { + position: absolute; + margin-left: -9999px; + visibility: hidden; +} + +.switch input[type="checkbox"]:checked + .switch-label:after { + -webkit-transform: translateX(1.375rem); + transform: translateX(1.375rem); +} + +.switch .switch-label, .switch .switch-label:after { + background: #ddd; +} + +.switch .switch-label:before { + background: #fff; +} + +.switch input:checked + .switch-label, .switch input:checked + .switch-label:after { + background: #0e90d2; +} + +.list .switch { + margin-bottom: 0; +} + +.switch-label { + position: relative; + display: block; + outline: none; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: manipulation; + touch-action: manipulation; + width: 3.25rem; + height: 1.875rem; + border-radius: 9999px; + -webkit-transition: background .35s; + transition: background .35s; +} + +.switch-label:before, .switch-label:after { + position: absolute; + display: block; + content: " "; + -webkit-transition: all .35s; + transition: all .35s; + border-radius: 9999px; +} + +.switch-label:before { + top: 2px; + left: 2px; + bottom: 2px; + right: 2px; +} + +.switch-label:after { + top: 4px; + left: 4px; + bottom: 4px; + width: 1.375rem; + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.switch-secondary input:checked + .switch-label, .switch-secondary input:checked + .switch-label:after { + background: #3bb4f2; +} + +.switch-success input:checked + .switch-label, .switch-success input:checked + .switch-label:after { + background: #5eb95e; +} + +.switch-warning input:checked + .switch-label, .switch-warning input:checked + .switch-label:after { + background: #F37B1D; +} + +.switch-alert input:checked + .switch-label, .switch-alert input:checked + .switch-label:after { + background: #dd514c; +} + +.switch-dark input:checked + .switch-label, .switch-dark input:checked + .switch-label:after { + background: #393939; +} + +.tabbar { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + height: 3.0625rem; + padding: 0 1rem; + background: #e6e6e6; + border-top: 1px solid #d9d9d9; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar, +.tabbar a { + color: #888888; +} + +.tabbar > .active, +.tabbar > .active a { + color: #0e90d2; +} + +.tabbar-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + cursor: pointer; +} + +.tabbar-item .icon { + position: relative; +} + +.tabbar-item .badge { + position: absolute; + left: 100%; + top: -2px; + margin-left: -10px; + padding: 2px 5px; + font-size: 0.625rem; + min-width: 0; +} + +.tabbar-item.active { + cursor: default; + pointer-events: none; +} + +.tabbar-label { + position: relative; + display: block; + text-align: center; +} + +.icon ~ .tabbar-label { + font-size: 0.625rem; +} + +.tabbar-primary { + background: #0e90d2; + border-top: 1px solid #0c80ba; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-secondary { + background: #3bb4f2; + border-top: 1px solid #23abf0; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-success { + background: #5eb95e; + border-top: 1px solid #4db14d; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-warning { + background: #F37B1D; + border-top: 1px solid #ea6e0c; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-alert { + background: #dd514c; + border-top: 1px solid #d93c37; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-dark { + background: #393939; + border-top: 1px solid #2c2c2c; + /*&::before { + background-color: darken($background, 8); + }*/ +} + +.tabbar-primary, +.tabbar-primary a, .tabbar-secondary, +.tabbar-secondary a, .tabbar-success, +.tabbar-success a, .tabbar-warning, +.tabbar-warning a, .tabbar-alert, +.tabbar-alert a, .tabbar-dark, +.tabbar-dark a { + color: #dedede; +} + +.tabbar-primary > .active, +.tabbar-primary > .active a, .tabbar-secondary > .active, +.tabbar-secondary > .active a, .tabbar-success > .active, +.tabbar-success > .active a, .tabbar-warning > .active, +.tabbar-warning > .active a, .tabbar-alert > .active, +.tabbar-alert > .active a, .tabbar-dark > .active, +.tabbar-dark > .active a { + color: #fff; +} + +.tabs { + margin: 0.9375rem 0; + background: #fff; +} + +.tabs-body { + position: relative; + z-index: 100; + overflow: hidden; +} + +.tab-panel { + position: absolute; + top: 0; + z-index: 99; + width: 100%; + padding: 0.625rem 0.9375rem; + visibility: hidden; + -webkit-transition: -webkit-transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.tab-panel.active { + position: relative; + z-index: 100; + visibility: visible; + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.tab-panel.active ~ .tab-panel { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.tabs-inset { + margin-left: 0.9375rem; + margin-right: 0.9375rem; +} + +.root { + display: block; + height: 100%; + width: 100%; + overflow: hidden; +} + +.cf:before, .cf:after { + content: " "; + display: table; +} + +.cf:after { + clear: both; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.fn { + float: none; +} + +.padding { + padding: 0.9375rem !important; +} + +.margin { + margin: 0.9375rem !important; +} + +.tabs-nav .btn, .text-truncate, .item-header, .tabbar-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-justify { + text-align: justify !important; +} + +.fade { + opacity: 0; + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +tr.collapse.in { + display: table-row; +} + +tbody.collapse.in { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height .3s ease; + transition: height .3s ease; +} + +.views { + position: relative; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0; + -ms-flex: 1 1 0; + flex: 1 1 0; + width: 100%; + height: 100%; + overflow: hidden; +} + +.view { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + background: #f4f4f4; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +@-webkit-keyframes amt-view-sfl-enter { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes amt-view-sfl-enter { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes amt-view-sfl-leave { + /*from { + transform: translate3d(0, 0, 0); + }*/ + to { + opacity: .75; + -webkit-transform: translate3d(25%, 0, 0); + transform: translate3d(25%, 0, 0); + } +} + +@keyframes amt-view-sfl-leave { + /*from { + transform: translate3d(0, 0, 0); + }*/ + to { + opacity: .75; + -webkit-transform: translate3d(25%, 0, 0); + transform: translate3d(25%, 0, 0); + } +} + +@-webkit-keyframes amt-view-sfr-enter { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes amt-view-sfr-enter { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes amt-view-sfr-leave { + to { + opacity: .75; + -webkit-transform: translate3d(-25%, 0, 0); + transform: translate3d(-25%, 0, 0); + } +} + +@keyframes amt-view-sfr-leave { + to { + opacity: .75; + -webkit-transform: translate3d(-25%, 0, 0); + transform: translate3d(-25%, 0, 0); + } +} + +@-webkit-keyframes amt-view-rfl-enter { + from { + opacity: .75; + -webkit-transform: translate3d(75%, 0, 0); + transform: translate3d(75%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes amt-view-rfl-enter { + from { + opacity: .75; + -webkit-transform: translate3d(75%, 0, 0); + transform: translate3d(75%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes amt-view-rfl-leave { + from { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes amt-view-rfl-leave { + from { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@-webkit-keyframes amt-view-rfr-enter { + from { + opacity: .75; + -webkit-transform: translate3d(-25%, 0, 0); + transform: translate3d(-25%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes amt-view-rfr-enter { + from { + opacity: .75; + -webkit-transform: translate3d(-25%, 0, 0); + transform: translate3d(-25%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@-webkit-keyframes amt-view-rfr-leave { + to { + opacity: 0.75; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes amt-view-rfr-leave { + to { + opacity: 0.75; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.view-transition-sfl-enter-active, +.view-transition-sfl-leave, +.view-transition-sfr-enter-active, +.view-transition-sfr-leave, .view-transition-rfl-enter-active, +.view-transition-rfl-leave, +.view-transition-rfr-enter-active, +.view-transition-rfr-leave { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-animation-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + animation-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; +} + +.view-transition-sfr-enter-active, +.view-transition-sfl-enter-active { + pointer-events: none; + z-index: 20; +} + +.view-transition-sfr-leave, +.view-transition-sfl-leave { + pointer-events: none; + z-index: 10; +} + +.view-transition-sfr-enter-active { + -webkit-animation-name: amt-view-sfr-enter; + animation-name: amt-view-sfr-enter; +} + +.view-transition-sfl-enter-active { + -webkit-animation-name: amt-view-sfl-enter; + animation-name: amt-view-sfl-enter; +} + +.view-transition-sfr-leave { + -webkit-animation-name: amt-view-sfr-leave; + animation-name: amt-view-sfr-leave; +} + +.view-transition-sfl-leave { + -webkit-animation-name: amt-view-sfl-leave; + animation-name: amt-view-sfl-leave; +} + +.view-transition-rfr-enter-active, +.view-transition-rfl-enter-active { + pointer-events: none; + z-index: 10; +} + +.view-transition-rfr-leave, +.view-transition-rfl-leave { + pointer-events: none; + z-index: 20; +} + +.view-transition-rfr-enter-active { + -webkit-animation-name: amt-view-rfr-enter; + animation-name: amt-view-rfr-enter; +} + +.view-transition-rfr-leave { + -webkit-animation-name: amt-view-rfr-leave; + animation-name: amt-view-rfr-leave; +} + +.view-transition-rfl-enter-active { + -webkit-animation-name: amt-view-rfl-enter; + animation-name: amt-view-rfl-enter; +} + +.view-transition-rfl-leave { + -webkit-animation-name: amt-view-rfl-leave; + animation-name: amt-view-rfl-leave; +} diff --git a/dist/amazeui.touch.js b/dist/amazeui.touch.js new file mode 100644 index 0000000..ddb6a8d --- /dev/null +++ b/dist/amazeui.touch.js @@ -0,0 +1,5659 @@ +/** Amaze UI Touch v1.0.0-beta.1 | by Amaze UI Team + * (c) 2016 AllMobilize, Inc., Licensed under MIT + * 2016-04-25T15:24:15+0800 + */ + (function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("react"), require("react-addons-css-transition-group"), require("react-dom")); + else if(typeof define === 'function' && define.amd) + define(["react", "react-addons-css-transition-group", "react-dom"], factory); + else if(typeof exports === 'object') + exports["AMUITouch"] = factory(require("react"), require("react-addons-css-transition-group"), require("react-dom")); + else + root["AMUITouch"] = factory(root["React"], root["React.addons.CSSTransitionGroup"], root["ReactDOM"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_25__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _Container = __webpack_require__(1); + + Object.defineProperty(exports, 'Container', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Container).default; + } + }); + + var _Grid = __webpack_require__(7); + + Object.defineProperty(exports, 'Grid', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Grid).default; + } + }); + + var _Col = __webpack_require__(8); + + Object.defineProperty(exports, 'Col', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Col).default; + } + }); + + var _Group = __webpack_require__(9); + + Object.defineProperty(exports, 'Group', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Group).default; + } + }); + + var _Accordion = __webpack_require__(10); + + Object.defineProperty(exports, 'Accordion', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Accordion).default; + } + }); + + var _Badge = __webpack_require__(16); + + Object.defineProperty(exports, 'Badge', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Badge).default; + } + }); + + var _Button = __webpack_require__(17); + + Object.defineProperty(exports, 'Button', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Button).default; + } + }); + + var _ButtonGroup = __webpack_require__(18); + + Object.defineProperty(exports, 'ButtonGroup', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ButtonGroup).default; + } + }); + + var _ButtonToolbar = __webpack_require__(19); + + Object.defineProperty(exports, 'ButtonToolbar', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ButtonToolbar).default; + } + }); + + var _Card = __webpack_require__(20); + + Object.defineProperty(exports, 'Card', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Card).default; + } + }); + + var _Icon = __webpack_require__(15); + + Object.defineProperty(exports, 'Icon', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Icon).default; + } + }); + + var _Field = __webpack_require__(21); + + Object.defineProperty(exports, 'Field', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Field).default; + } + }); + + var _List = __webpack_require__(22); + + Object.defineProperty(exports, 'List', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_List).default; + } + }); + + var _Loader = __webpack_require__(23); + + Object.defineProperty(exports, 'Loader', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Loader).default; + } + }); + + var _Modal = __webpack_require__(24); + + Object.defineProperty(exports, 'Modal', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Modal).default; + } + }); + + var _NavBar = __webpack_require__(27); + + Object.defineProperty(exports, 'NavBar', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_NavBar).default; + } + }); + + var _Notification = __webpack_require__(28); + + Object.defineProperty(exports, 'Notification', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Notification).default; + } + }); + + var _OffCanvas = __webpack_require__(29); + + Object.defineProperty(exports, 'OffCanvas', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_OffCanvas).default; + } + }); + + var _OffCanvasTrigger = __webpack_require__(31); + + Object.defineProperty(exports, 'OffCanvasTrigger', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_OffCanvasTrigger).default; + } + }); + + var _Popover = __webpack_require__(34); + + Object.defineProperty(exports, 'Popover', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Popover).default; + } + }); + + var _PopoverTrigger = __webpack_require__(35); + + Object.defineProperty(exports, 'PopoverTrigger', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_PopoverTrigger).default; + } + }); + + var _Slider = __webpack_require__(37); + + Object.defineProperty(exports, 'Slider', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Slider).default; + } + }); + + var _Switch = __webpack_require__(41); + + Object.defineProperty(exports, 'Switch', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Switch).default; + } + }); + + var _TabBar = __webpack_require__(42); + + Object.defineProperty(exports, 'TabBar', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_TabBar).default; + } + }); + + var _Tabs = __webpack_require__(43); + + Object.defineProperty(exports, 'Tabs', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Tabs).default; + } + }); + + var _Touchable = __webpack_require__(38); + + Object.defineProperty(exports, 'Touchable', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Touchable).default; + } + }); + + var _View = __webpack_require__(44); + + Object.defineProperty(exports, 'View', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_View).default; + } + }); + + var _mixins = __webpack_require__(45); + + Object.keys(_mixins).forEach(function (key) { + if (key === "default") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _mixins[key]; + } + }); + }); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // TODO: why `export Button from './Button'` not works? + // @see http://jamesknelson.com/re-exporting-es6-modules/ + // @see https://github.com/Microsoft/TypeScript/issues/2726 + + var VERSION = exports.VERSION = '1.0.0-beta.1'; + + // Layout + + + // Mixins + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactAddonsCssTransitionGroup = __webpack_require__(3); + + var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } // @see https://github.com/JedWatson/react-container + // @license MIT Copyright (c) 2015 Jed Watson + + function hasChildrenWithVerticalFill(children) { + var result = false; + + _react2.default.Children.forEach(children, function (child) { + if (result) { + return; // early-exit + } + + if (!child) { + return; + } + + if (!child.type) { + return; + } + + result = !!child.type.shouldFillVerticalSpace; + }); + + return result; + } + + function initScrollable(defaultPos) { + if (!defaultPos) { + defaultPos = {}; + } + + var pos = void 0; + var scrollable = { + reset: function reset() { + pos = { left: defaultPos.left || 0, top: defaultPos.top || 0 }; + }, + getPos: function getPos() { + return { left: pos.left, top: pos.top }; + }, + mount: function mount(element) { + var node = _react2.default.findDOMNode(element); + node.scrollLeft = pos.left; + node.scrollTop = pos.top; + }, + unmount: function unmount(element) { + var node = _react2.default.findDOMNode(element); + pos.left = node.scrollLeft; + pos.top = node.scrollTop; + } + }; + + scrollable.reset(); + + return scrollable; + } + + var TRANSITION_TIMEOUT = 500; + + var Container = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + component: _react2.default.PropTypes.node, + align: _react2.default.PropTypes.oneOf(['end', 'center', 'start']), + direction: _react2.default.PropTypes.oneOf(['column', 'row']), + fill: _react2.default.PropTypes.bool, + grow: _react2.default.PropTypes.bool, + justify: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.bool, _react2.default.PropTypes.oneOf(['end', 'center', 'start'])]), + scrollable: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.bool, _react2.default.PropTypes.object]), + transition: _react2.default.PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'container', + component: 'div' + }; + }, + componentDidMount: function componentDidMount() { + if (this.props.scrollable && this.props.scrollable.mount) { + this.props.scrollable.mount(this); + } + }, + componentWillUnmount: function componentWillUnmount() { + if (this.props.scrollable && this.props.scrollable.unmount) { + this.props.scrollable.unmount(this); + } + }, + render: function render() { + var _classNames; + + var _props = this.props; + var className = _props.className; + var Component = _props.component; + var children = _props.children; + var direction = _props.direction; + var fill = _props.fill; + var align = _props.align; + var justify = _props.justify; + var scrollable = _props.scrollable; + var transition = _props.transition; + + var props = _objectWithoutProperties(_props, ['className', 'component', 'children', 'direction', 'fill', 'align', 'justify', 'scrollable', 'transition']); + + var classSet = this.getClassSet(); + + // As view transition container + if (transition) { + return _react2.default.createElement( + _reactAddonsCssTransitionGroup2.default, + _extends({ + component: 'div', + className: (0, _classnames2.default)(this.setClassNS('views'), className), + transitionName: this.setClassNS('view-transition-' + transition), + transitionEnterTimeout: TRANSITION_TIMEOUT, + transitionLeaveTimeout: TRANSITION_TIMEOUT + }, props), + children + ); + } + + if (!direction) { + if (hasChildrenWithVerticalFill(children)) { + direction = 'column'; + } + } + + if (direction === 'column' || scrollable) { + fill = true; + } + + if (direction === 'column' && align === 'top') { + align = 'start'; + } + + if (direction === 'column' && align === 'bottom') { + align = 'end'; + } + + if (direction === 'row' && align === 'left') { + align = 'start'; + } + + if (direction === 'row' && align === 'right') { + align = 'end'; + } + + var classes = (0, _classnames2.default)(classSet, className, (_classNames = {}, _defineProperty(_classNames, this.prefixClass('fill'), fill), _defineProperty(_classNames, this.prefixClass('column'), direction === 'column'), _defineProperty(_classNames, this.prefixClass('row'), direction === 'row'), _defineProperty(_classNames, this.prefixClass('align-center'), align === 'center'), _defineProperty(_classNames, this.prefixClass('align-start'), align === 'start'), _defineProperty(_classNames, this.prefixClass('align-end'), align === 'end'), _defineProperty(_classNames, this.prefixClass('justify-center'), justify === 'center'), _defineProperty(_classNames, this.prefixClass('justify-start'), justify === 'start'), _defineProperty(_classNames, this.prefixClass('justify-end'), justify === 'end'), _defineProperty(_classNames, this.prefixClass('justified'), justify === true), _defineProperty(_classNames, this.prefixClass('scrollable'), scrollable), _classNames)); + + return _react2.default.createElement( + Component, + _extends({ + className: classes + }, props), + children + ); + } + }); + + Container.initScrollable = initScrollable; + + exports.default = Container; + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_2__; + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_3__; + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + */ + /* global define */ + + (function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { + return classNames; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + window.classNames = classNames; + } + }()); + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _config = __webpack_require__(6); + + var namespace = _config.NAMESPACE ? _config.NAMESPACE + '-' : ''; + + var ClassNameMixin = { + setClassNS: function setClassNS(classPrefix) { + var prefix = classPrefix || this.props.classPrefix || ''; + + return namespace + prefix; + }, + getClassSet: function getClassSet(ignorePrefix) { + var classNames = {}; + var _props = this.props; + var amSize = _props.amSize; + var amStyle = _props.amStyle; + var hollow = _props.hollow; + var radius = _props.radius; + var rounded = _props.rounded; + var active = _props.active; + var selected = _props.selected; + var disabled = _props.disabled; + var inset = _props.inset; + + // uses `.am-` as prefix if `classPrefix` is not defined + + var prefix = namespace; + + if (this.props.classPrefix) { + var classPrefix = this.setClassNS(); + + prefix = classPrefix + '-'; + + // don't return prefix if ignore flag set + !ignorePrefix && (classNames[classPrefix] = true); + } + + if (amSize) { + classNames[prefix + amSize] = true; + } + + if (amStyle) { + classNames[prefix + amStyle] = true; + } + + if (hollow) { + classNames[prefix + 'hollow'] = true; + } + + classNames[this.prefixClass('radius')] = radius; + classNames[this.prefixClass('rounded')] = rounded; + + classNames[this.prefixClass('inset')] = inset; + + // state className + // `selected` is an alias of active + classNames[_config.CLASSNAMES['active']] = active || selected; + classNames[_config.CLASSNAMES['disabled']] = disabled; + + // shape + // classNames[constants.CLASSES.radius] = this.props.radius; + // classNames[constants.CLASSES.round] = this.props.round; + + return classNames; + }, + prefixClass: function prefixClass(subClass) { + return this.setClassNS() + '-' + subClass; + } + }; + + exports.default = ClassNameMixin; + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + var NAMESPACE = exports.NAMESPACE = null; // 'am' + var CLASSNAMES = exports.CLASSNAMES = { + disabled: 'disabled', + active: 'active' + }; + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Grid = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired, + collapse: _react2.default.PropTypes.bool, + avg: _react2.default.PropTypes.number, + align: _react2.default.PropTypes.oneOf(['right', 'center', 'between', 'around']) + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'g', + component: 'div' + }; + }, + + + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var Component = _props.component; + var collapse = _props.collapse; + var className = _props.className; + var avg = _props.avg; + var align = _props.align; + + var props = _objectWithoutProperties(_props, ['component', 'collapse', 'className', 'avg', 'align']); + + // .g-collapse + + + classSet[this.prefixClass('collapse')] = collapse; + + if (avg) { + classSet[this.prefixClass('avg-' + avg)] = true; + } + + if (align) { + classSet[this.prefixClass(align)] = true; + } + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(className, classSet) + }), + this.props.children + ); + } + }); + + exports.default = Grid; + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Col = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired, + cols: _react2.default.PropTypes.number, + offset: _react2.default.PropTypes.number, + shrink: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'col', + component: 'div' + }; + }, + render: function render() { + var _props = this.props; + var cols = _props.cols; + var offset = _props.offset; + var shrink = _props.shrink; + var Component = _props.component; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['cols', 'offset', 'shrink', 'component', 'className']); + + var classSet = this.getClassSet(); + + if (cols) { + classSet[this.prefixClass(cols)] = true; + } + + if (offset) { + classSet[this.prefixClass('offset-' + offset)] = true; + } + + classSet[this.prefixClass('shrink')] = shrink; + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(className, classSet) + }), + this.props.children + ); + } + }); + + exports.default = Col; + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Group = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired, + header: _react2.default.PropTypes.node, + footer: _react2.default.PropTypes.node, + noPadded: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'group', + component: 'div' + }; + }, + renderAddon: function renderAddon(role) { + role = role || 'header'; + return this.props[role] ? _react2.default.createElement(role, { + className: this.prefixClass(role) + }, this.props[role]) : null; + }, + render: function render() { + var _props = this.props; + var Component = _props.component; + var className = _props.className; + var header = _props.header; + var footer = _props.footer; + var noPadded = _props.noPadded; + + var props = _objectWithoutProperties(_props, ['component', 'className', 'header', 'footer', 'noPadded']); + + var classSet = this.getClassSet(); + classSet[this.prefixClass('no-padded')] = noPadded; + + var bodyClasses = _defineProperty({}, this.prefixClass('body'), true); + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(className, classSet) + }), + this.renderAddon('header'), + _react2.default.createElement( + 'div', + { className: (0, _classnames2.default)(bodyClasses) }, + this.props.children + ), + this.renderAddon('footer') + ); + } + }); + + exports.default = Group; + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _CollapseMixin = __webpack_require__(11); + + var _CollapseMixin2 = _interopRequireDefault(_CollapseMixin); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Accordion = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + activeKey: _react2.default.PropTypes.any, + defaultActiveKey: _react2.default.PropTypes.any, + inset: _react2.default.PropTypes.bool, + onAction: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'accordion' + }; + }, + getInitialState: function getInitialState() { + return { + activeKey: this.props.defaultActiveKey || null + }; + }, + + + shouldComponentUpdate: function shouldComponentUpdate() { + // Defer any updates to this component during the `onAction` handler. + return !this._isChanging; + }, + + handleSelect: function handleSelect(e, key) { + e.preventDefault(); + + if (this.props.onAction) { + this._isChanging = true; + this.props.onAction(key); + this._isChanging = false; + } + + if (this.state.activeKey === key) { + key = null; + } + + this.setState({ + activeKey: key + }); + }, + renderItems: function renderItems() { + var _this = this; + + var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; + + return _react2.default.Children.map(this.props.children, function (child, index) { + var eventKey = child.props.eventKey; + + var props = { + key: index, + onAction: _this.handleSelect + }; + + if (eventKey === undefined) { + props.eventKey = eventKey = index; + } + + props.expanded = eventKey === activeKey; + + return _react2.default.cloneElement(child, props); + }); + }, + render: function render() { + var classSet = this.getClassSet(); + + classSet[this.prefixClass('inset')] = this.props.inset; + + return _react2.default.createElement( + 'section', + _extends({}, this.props, { + className: (0, _classnames2.default)(classSet, this.props.className) + }), + this.renderItems() + ); + } + }); + + Accordion.Item = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default, _CollapseMixin2.default], + + propTypes: { + title: _react2.default.PropTypes.node, + eventKey: _react2.default.PropTypes.any + }, + + handleClick: function handleClick(e) { + // @see https://facebook.github.io/react/docs/events.html#event-pooling + e.persist(); + e.selected = true; + + if (this.props.onAction) { + this.props.onAction(e, this.props.eventKey); + } else { + e.preventDefault(); + } + + if (e.selected) { + this.handleToggle(); + } + }, + + handleToggle: function handleToggle() { + this.setState({ expanded: !this.state.expanded }); + }, + getCollapsibleDimensionValue: function getCollapsibleDimensionValue() { + return this.refs.panel.scrollHeight; + }, + getCollapsibleDOMNode: function getCollapsibleDOMNode() { + if (!this.isMounted() || !this.refs || !this.refs.panel) { + return null; + } + + return this.refs.panel; + }, + render: function render() { + return _react2.default.createElement( + 'dl', + { + className: (0, _classnames2.default)(this.setClassNS('accordion-item'), this.isExpanded() ? this.setClassNS('active') : null) + }, + _react2.default.createElement( + 'dt', + { + onClick: this.handleClick, + className: this.setClassNS('accordion-title') + }, + this.props.title, + _react2.default.createElement(_Icon2.default, { + className: this.setClassNS('accordion-icon'), + name: 'right-nav' + }) + ), + _react2.default.createElement( + 'dd', + { + className: (0, _classnames2.default)(this.setClassNS('accordion-body'), this.getCollapsibleClassSet()), + ref: 'panel' + }, + _react2.default.createElement( + 'div', + { + className: this.setClassNS('accordion-content') + }, + this.props.children + ) + ) + ); + } + }); + + exports.default = Accordion; + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _TransitionEvents = __webpack_require__(12); + + var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /** + * modified version of: + * https://github.com/react-bootstrap/react-bootstrap/blob/master/src/CollapsibleMixin.js + */ + + var CollapseMixin = { + propTypes: { + defaultExpanded: _react2.default.PropTypes.bool, + expanded: _react2.default.PropTypes.bool + }, + + getInitialState: function getInitialState() { + var defaultExpanded = this.props.defaultExpanded != null ? this.props.defaultExpanded : this.props.expanded != null ? this.props.expanded : false; + + return { + expanded: defaultExpanded, + collapsing: false + }; + }, + componentWillUpdate: function componentWillUpdate(nextProps, nextState) { + var willExpanded = nextProps.expanded != null ? nextProps.expanded : nextState.expanded; + + if (willExpanded === this.isExpanded()) { + return; + } + + // if the expanded state is being toggled, ensure node has a dimension value + // this is needed for the animation to work and needs to be set before + // the collapsing class is applied (after collapsing is applied the in class + // is removed and the node's dimension will be wrong) + + var node = this.getCollapsibleDOMNode(); + var dimension = this.dimension(); + var value = '0'; + + if (!willExpanded) { + // get height + value = this.getCollapsibleDimensionValue(); + } + + node.style[dimension] = value + 'px'; + + this._afterWillUpdate(); + }, + componentDidUpdate: function componentDidUpdate(prevProps, prevState) { + // check if expanded is being toggled; if so, set collapsing + this._checkToggleCollapsing(prevProps, prevState); + + // check if collapsing was turned on; if so, start animation + this._checkStartAnimation(); + }, + + + // helps enable test stubs + _afterWillUpdate: function _afterWillUpdate() {}, + _checkStartAnimation: function _checkStartAnimation() { + if (!this.state.collapsing) { + return; + } + + var node = this.getCollapsibleDOMNode(); + var dimension = this.dimension(); + var value = this.getCollapsibleDimensionValue(); + + // setting the dimension here starts the transition animation + var result; + + if (this.isExpanded()) { + result = value + 'px'; + } else { + result = '0px'; + } + node.style[dimension] = result; + }, + _checkToggleCollapsing: function _checkToggleCollapsing(prevProps, prevState) { + var wasExpanded = prevProps.expanded != null ? prevProps.expanded : prevState.expanded; + var isExpanded = this.isExpanded(); + + if (wasExpanded !== isExpanded) { + if (wasExpanded) { + this._handleCollapse(); + } else { + this._handleExpand(); + } + } + }, + _handleExpand: function _handleExpand() { + var node = this.getCollapsibleDOMNode(); + var dimension = this.dimension(); + + var complete = function () { + this._removeEndEventListener(node, complete); + // remove dimension value - this ensures the collapsible item can grow + // in dimension after initial display (such as an image loading) + node.style[dimension] = ''; + this.setState({ + collapsing: false + }); + }.bind(this); + + this._addEndEventListener(node, complete); + + this.setState({ + collapsing: true + }); + }, + _handleCollapse: function _handleCollapse() { + var node = this.getCollapsibleDOMNode(); + var _this = this; + var complete = function complete() { + _this._removeEndEventListener(node, complete); + _this.setState({ + collapsing: false + }); + }; + + this._addEndEventListener(node, complete); + + this.setState({ + collapsing: true + }); + }, + + + // helps enable test stubs + _addEndEventListener: function _addEndEventListener(node, complete) { + _TransitionEvents2.default.on(node, complete); + }, + + + // helps enable test stubs + _removeEndEventListener: function _removeEndEventListener(node, complete) { + _TransitionEvents2.default.off(node, complete); + }, + dimension: function dimension() { + return typeof this.getCollapsibleDimension === 'function' ? this.getCollapsibleDimension() : 'height'; + }, + isExpanded: function isExpanded() { + return this.props.expanded != null ? this.props.expanded : this.state.expanded; + }, + getCollapsibleClassSet: function getCollapsibleClassSet(className) { + var classSet = {}; + + if (typeof className === 'string') { + className.split(' ').forEach(function (subClass) { + if (subClass) { + classSet[subClass] = true; + } + }); + } + + classSet[this.setClassNS('collapsing')] = this.state.collapsing; + classSet[this.setClassNS('collapse')] = !this.state.collapsing; + classSet[this.setClassNS('in')] = this.isExpanded() && !this.state.collapsing; + + return classSet; + } + }; + + exports.default = CollapseMixin; + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _CSSCore = __webpack_require__(13); + + var _CSSCore2 = _interopRequireDefault(_CSSCore); + + var _canUseDOM = __webpack_require__(14); + + var _canUseDOM2 = _interopRequireDefault(_canUseDOM); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /** + * EVENT_NAME_MAP is used to determine which event fired when a + * transition/animation ends, based on the style property used to + * define that event. + */ + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * modified version of: + * https://github.com/facebook/react/blob/0.13-stable/src/addons/transitions/ReactTransitionEvents.js + */ + + var EVENT_NAME_MAP = { + transitionend: { + 'transition': 'transitionend', + 'WebkitTransition': 'webkitTransitionEnd', + 'MozTransition': 'mozTransitionEnd', + 'OTransition': 'oTransitionEnd', + 'msTransition': 'MSTransitionEnd' + }, + + animationend: { + 'animation': 'animationend', + 'WebkitAnimation': 'webkitAnimationEnd', + 'MozAnimation': 'mozAnimationEnd', + 'OAnimation': 'oAnimationEnd', + 'msAnimation': 'MSAnimationEnd' + } + }; + + var endEvents = []; + var support = {}; + + function detectEvents() { + var testEl = document.createElement('div'); + var style = testEl.style; + + // On some platforms, in particular some releases of Android 4.x, + // the un-prefixed "animation" and "transition" properties are defined on the + // style object but the events that fire will still be prefixed, so we need + // to check if the un-prefixed events are useable, and if not remove them + // from the map + if (!('AnimationEvent' in window)) { + delete EVENT_NAME_MAP.animationend.animation; + } + + if (!('TransitionEvent' in window)) { + delete EVENT_NAME_MAP.transitionend.transition; + } + + for (var baseEventName in EVENT_NAME_MAP) { + var baseEvents = EVENT_NAME_MAP[baseEventName]; + support[baseEventName] = false; + + for (var styleName in baseEvents) { + if (styleName in style) { + support[baseEventName] = baseEvents[styleName]; + endEvents.push(baseEvents[styleName]); + break; + } + } + } + } + + if (_canUseDOM2.default) { + detectEvents(); + } + + if (support.animationend) { + _CSSCore2.default.addClass(document.documentElement, 'cssanimations'); + } + + // We use the raw {add|remove}EventListener() call because EventListener + // does not know how to remove event listeners and we really should + // clean up. Also, these events are not triggered in older browsers + // so we should be A-OK here. + + function addEventListener(node, eventName, eventListener) { + node.addEventListener(eventName, eventListener, false); + } + + function removeEventListener(node, eventName, eventListener) { + node.removeEventListener(eventName, eventListener, false); + } + + var TransitionEvents = { + on: function on(node, eventListener) { + if (endEvents.length === 0) { + // If CSS transitions are not supported, trigger an "end animation" + // event immediately. + window.setTimeout(eventListener, 0); + return; + } + endEvents.forEach(function (endEvent) { + addEventListener(node, endEvent, eventListener); + }); + }, + off: function off(node, eventListener) { + if (endEvents.length === 0) { + return; + } + endEvents.forEach(function (endEvent) { + removeEventListener(node, endEvent, eventListener); + }); + }, + + + support: support + }; + + exports.default = TransitionEvents; + +/***/ }, +/* 13 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @via https://github.com/facebook/react/blob/master/src/vendor/core/CSSCore.js + */ + + var CSSCore = { + + /** + * Adds the class passed in to the element if it doesn't already have it. + * + * @param {DOMElement} element the element to set the class on + * @param {string} className the CSS className + * @return {DOMElement} the element passed in + * @see http://caniuse.com/#feat=classlist + */ + + addClass: function addClass(element, className) { + if (className) { + if (element.classList) { + element.classList.add(className); + } else if (!CSSCore.hasClass(element, className)) { + element.className = element.className + ' ' + className; + } + } + return element; + }, + + + /** + * Removes the class passed in from the element + * + * @param {DOMElement} element the element to set the class on + * @param {string} className the CSS className + * @return {DOMElement} the element passed in + */ + removeClass: function removeClass(element, className) { + if (className) { + if (element.classList) { + element.classList.remove(className); + } else if (CSSCore.hasClass(element, className)) { + element.className = element.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ') // multiple spaces to one + .replace(/^\s*|\s*$/g, ''); // trim the ends + } + } + return element; + }, + + + /** + * Helper to add or remove a class from an element based on a condition. + * + * @param {DOMElement} element the element to set the class on + * @param {string} className the CSS className + * @param {*} bool condition to whether to add or remove the class + * @return {DOMElement} the element passed in + */ + conditionClass: function conditionClass(element, className, bool) { + return (bool ? CSSCore.addClass : CSSCore.removeClass)(element, className); + }, + + + /** + * Tests whether the element has the class specified. + * + * @param {DOMNode|DOMWindow} element the element to set the class on + * @param {string} className the CSS className + * @return {boolean} true if the element has the class, false if not + */ + hasClass: function hasClass(element, className) { + if (element.classList) { + return !!className && element.classList.contains(className); + } + return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; + }, + toggleClass: function toggleClass(element, className) { + return CSSCore.hasClass(element, className) ? CSSCore.removeClass(element, className) : CSSCore.addClass(element, className); + } + }; + + exports.default = CSSCore; + +/***/ }, +/* 14 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +/***/ }, +/* 15 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Icon = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired, + name: _react2.default.PropTypes.string.isRequired, + href: _react2.default.PropTypes.string + }, + + // amStyle: React.PropTypes.string, + // button: React.PropTypes.bool, + // size: React.PropTypes.string, + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'icon', + component: 'span' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var Component = _props.component; + var className = _props.className; + var href = _props.href; + var name = _props.name; + + var props = _objectWithoutProperties(_props, ['component', 'className', 'href', 'name']); + + Component = href ? 'a' : Component; + + // icon-[iconName] + classSet[this.prefixClass(name)] = true; + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + this.props.children + ); + } + }); + + exports.default = Icon; + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Badge = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired, + href: _react2.default.PropTypes.string, + amStyle: _react2.default.PropTypes.string, + // radius: React.PropTypes.bool, + rounded: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'badge', + component: 'span' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var Component = _props.component; + var className = _props.className; + var href = _props.href; + + var props = _objectWithoutProperties(_props, ['component', 'className', 'href']); + + Component = href ? 'a' : Component; + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + this.props.children + ); + } + }); + + exports.default = Badge; + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Button = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node, + href: _react2.default.PropTypes.string, + target: _react2.default.PropTypes.string, + amStyle: _react2.default.PropTypes.string, + amSize: _react2.default.PropTypes.string, + hollow: _react2.default.PropTypes.bool, + block: _react2.default.PropTypes.bool, + active: _react2.default.PropTypes.bool, + disabled: _react2.default.PropTypes.bool + }, + + // radius: React.PropTypes.bool, + // rounded: React.PropTypes.bool, + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'btn' + }; + }, + renderAnchor: function renderAnchor(classes) { + var _props = this.props; + var href = _props.href; + var Component = _props.component; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['href', 'component', 'children']); + + Component = Component || 'a'; + + href = href || '#'; + + return _react2.default.createElement( + Component, + _extends({}, props, { + href: href, + className: classes, + role: 'button' + }), + children + ); + }, + renderButton: function renderButton(classes) { + var _props2 = this.props; + var Component = _props2.component; + var children = _props2.children; + + var props = _objectWithoutProperties(_props2, ['component', 'children']); + + Component = Component || 'button'; + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: classes + }), + children + ); + }, + render: function render() { + var classSet = this.getClassSet(); + var _props3 = this.props; + var href = _props3.href; + var target = _props3.target; + var block = _props3.block; + var className = _props3.className; + + var renderType = href || target ? 'renderAnchor' : 'renderButton'; + + // block button + classSet[this.prefixClass('block')] = block; + + return this[renderType]((0, _classnames2.default)(classSet, className)); + } + }); + + exports.default = Button; + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var ButtonGroup = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + amStyle: _react2.default.PropTypes.string, + amSize: _react2.default.PropTypes.string, + hollow: _react2.default.PropTypes.bool, + justify: _react2.default.PropTypes.bool, + stacked: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'btn-group' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + var amStyle = _props.amStyle; + var amSize = _props.amSize; + var hollow = _props.hollow; + var stacked = _props.stacked; + var justify = _props.justify; + + var props = _objectWithoutProperties(_props, ['className', 'amStyle', 'amSize', 'hollow', 'stacked', 'justify']); + + classSet[this.prefixClass('stacked')] = stacked; + classSet[this.prefixClass('justify')] = justify; + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(className, classSet) + }), + _react2.default.Children.map(this.props.children, function (child, i) { + return (0, _react.cloneElement)(child, _extends({ + amStyle: amStyle, + amSize: amSize, + hollow: hollow + }, child.props)); + }) + ); + } + }); + + exports.default = ButtonGroup; + +/***/ }, +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var ButtonToolbar = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'btn-toolbar' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + + return _react2.default.createElement( + 'div', + _extends({}, this.props, { + className: (0, _classnames2.default)(this.props.className, classSet) + }), + this.props.children + ); + } + }); + + exports.default = ButtonToolbar; + +/***/ }, +/* 20 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Card = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + title: _react2.default.PropTypes.string, + header: _react2.default.PropTypes.node, + footer: _react2.default.PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'card' + }; + }, + renderItem: function renderItem(element, role) { + if (!element) { + return null; + } + + return element.type && element.type === Card.Child ? element : _react2.default.createElement( + Card.Child, + { role: role }, + element + ); + }, + renderTitle: function renderTitle(title) { + return _react2.default.createElement( + 'h2', + { className: this.prefixClass('title') }, + title + ); + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var children = _props.children; + var className = _props.className; + var title = _props.title; + var header = _props.header; + var footer = _props.footer; + + var props = _objectWithoutProperties(_props, ['children', 'className', 'title', 'header', 'footer']); + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + title ? this.renderItem(this.renderTitle(title)) : this.renderItem(header), + _react2.default.createElement( + 'div', + { className: this.prefixClass('body') }, + children + ), + this.renderItem(footer, 'footer') + ); + } + }); + + Card.Child = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + role: _react2.default.PropTypes.oneOf(['header', 'footer']), + cover: _react2.default.PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'card', + role: 'header' + }; + }, + render: function render() { + var _classSet; + + var _props2 = this.props; + var role = _props2.role; + var className = _props2.className; + var cover = _props2.cover; + + var props = _objectWithoutProperties(_props2, ['role', 'className', 'cover']); + + var classSet = (_classSet = { + className: className + }, _defineProperty(_classSet, this.prefixClass(role), true), _defineProperty(_classSet, this.prefixClass('cover'), cover), _classSet); + var style = null; + + if (cover) { + style = { + backgroundImage: 'url(' + cover + ')' + }; + } + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet), + style: style + }), + this.props.children + ); + } + }); + + exports.default = Card; + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Button = __webpack_require__(17); + + var _Button2 = _interopRequireDefault(_Button); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Field = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + type: _react2.default.PropTypes.string, + label: _react2.default.PropTypes.node, + btnBefore: _react2.default.PropTypes.node, + btnAfter: _react2.default.PropTypes.node, + labelBefore: _react2.default.PropTypes.node, + labelAfter: _react2.default.PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'field', + type: 'text' + }; + }, + getFieldDOMNode: function getFieldDOMNode() { + return this.refs.field; + }, + getValue: function getValue() { + if (this.props.type === 'select' && this.props.multiple) { + return this.getSelectedOptions(); + } else { + return this.getFieldDOMNode().value; + } + }, + getChecked: function getChecked() { + return this.getFieldDOMNode().checked; + }, + getSelectedOptions: function getSelectedOptions() { + var values = []; + var options = this.getFieldDOMNode().getElementsByTagName('option'); + + options.forEach(function (option) { + if (option.selected) { + var value = option.getAttribute('value') || option.innerHtml; + + values.push(value); + } + }); + + return values; + }, + isCheckboxOrRadio: function isCheckboxOrRadio() { + return this.props.type === 'radio' || this.props.type === 'checkbox'; + }, + isFile: function isFile() { + return this.props.type === 'file'; + }, + renderField: function renderField() { + var field = null; + var fieldClassName = this.isCheckboxOrRadio() || this.isFile() ? '' : this.getClassSet(); + var classes = (0, _classnames2.default)(this.props.className, fieldClassName); + var props = { + ref: 'field', + key: 'formField', + className: classes + }; + + switch (this.props.type) { + case 'select': + field = _react2.default.createElement( + 'select', + _extends({}, this.props, props), + this.props.children + ); + break; + case 'textarea': + field = _react2.default.createElement('textarea', _extends({}, this.props, props)); + break; + case 'submit': + case 'reset': + var _props = this.props; + var classPrefix = _props.classPrefix; + + var others = _objectWithoutProperties(_props, ['classPrefix']); + + field = _react2.default.createElement(_Button2.default, _extends({}, props, { + className: null + }, others, { + component: 'input' + })); + break; + default: + field = _react2.default.createElement('input', _extends({}, this.props, props)); + } + + return field; + }, + renderContainer: function renderContainer(children) { + return this.props.label ? _react2.default.createElement( + 'label', + { + htmlFor: this.props.id, + className: this.prefixClass('container'), + key: 'label' + }, + _react2.default.createElement( + 'span', + { className: this.prefixClass('label') }, + this.props.label + ), + children, + this.isCheckboxOrRadio() ? _react2.default.createElement(_Icon2.default, { + className: this.prefixClass('icon'), + name: 'check' + }) : null + ) : children; + }, + renderFieldGroup: function renderFieldGroup(children) { + var _this = this; + + var groupPrefix = this.setClassNS('field-group'); + var labelClassName = groupPrefix + '-label'; + var _props2 = this.props; + var labelBefore = _props2.labelBefore; + var labelAfter = _props2.labelAfter; + var btnBefore = _props2.btnBefore; + var btnAfter = _props2.btnAfter; + + var props = _objectWithoutProperties(_props2, ['labelBefore', 'labelAfter', 'btnBefore', 'btnAfter']); + + var renderFiledLabel = function renderFiledLabel(type) { + return _this.props[type] ? _react2.default.createElement( + 'span', + { + className: labelClassName, + key: type + }, + _this.props[type] + ) : null; + }; + + return labelBefore || labelAfter || btnBefore || btnAfter ? _react2.default.createElement( + 'div', + { + className: groupPrefix, + key: 'fieldGroup' + }, + renderFiledLabel('labelBefore'), + btnBefore, + children, + renderFiledLabel('labelAfter'), + btnAfter + ) : children; + }, + render: function render() { + var field = this.renderField(); + + if (this.props.label) { + return this.renderContainer(field); + } + + return this.renderFieldGroup(field); + } + }); + + exports.default = Field; + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var List = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + inset: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'list' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + var inset = _props.inset; + + var props = _objectWithoutProperties(_props, ['className', 'inset']); + + classSet[this.prefixClass('inset')] = inset; + + // TODO: 使用 ul 可能不是太好的选择,再一些需要定义 component 的场合缺乏灵活性 + return _react2.default.createElement('ul', _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + })); + } + }); + + List.Item = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + role: _react2.default.PropTypes.oneOf(['header', 'item']), + title: _react2.default.PropTypes.string, + subTitle: _react2.default.PropTypes.string, + href: _react2.default.PropTypes.string, + linked: _react2.default.PropTypes.bool, // linked flag for custom href like route Link + linkComponent: _react2.default.PropTypes.any, + linkProps: _react2.default.PropTypes.object, + media: _react2.default.PropTypes.node, + after: _react2.default.PropTypes.node, + desc: _react2.default.PropTypes.node, + nested: _react2.default.PropTypes.oneOf(['input', 'radio', 'checkbox']) }, + + // nested field + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'item', + role: 'item' + }; + }, + renderTitleRow: function renderTitleRow() { + var _props2 = this.props; + var title = _props2.title; + var subTitle = _props2.subTitle; + var href = _props2.href; + var linkComponent = _props2.linkComponent; + + + var itemTitle = title ? _react2.default.createElement( + 'h3', + { + key: 'itemTitle', + className: this.prefixClass('title') + }, + title + ) : null; + + var titleChildren = [itemTitle, this.renderAddon('after'), href || linkComponent ? _react2.default.createElement(_Icon2.default, { + className: this.prefixClass('icon'), + name: 'right-nav', + key: 'itemChevron' + }) : null]; + + return subTitle ? _react2.default.createElement( + 'div', + { + className: this.prefixClass('title-row'), + key: 'itemTitleRow' + }, + titleChildren + ) : titleChildren; + }, + renderMain: function renderMain() { + var _props3 = this.props; + var media = _props3.media; + var subTitle = _props3.subTitle; + var desc = _props3.desc; + var children = _props3.children; + + var titleRow = this.renderTitleRow(); + var notJustTitle = media || subTitle || desc || children; + + // remove wrapper if without media/subTitle/children + return notJustTitle ? _react2.default.createElement( + 'div', + { + key: 'itemMain', + className: this.prefixClass('main') + }, + titleRow, + this.renderAddon('subTitle'), + this.renderAddon('desc'), + children + ) : titleRow; + }, + wrapLink: function wrapLink(children) { + var _props4 = this.props; + var linkComponent = _props4.linkComponent; + var linkProps = _props4.linkProps; + var href = _props4.href; + var target = _props4.target; + + + return linkComponent ? _react2.default.createElement(linkComponent, linkProps, children) : _react2.default.createElement( + 'a', + { + href: href, + target: target + }, + children + ); + }, + renderAddon: function renderAddon(type) { + return this.props[type] ? _react2.default.createElement( + 'div', + { + key: 'item-' + type, + className: this.prefixClass(type.toLowerCase()) + }, + this.props[type] + ) : null; + }, + render: function render() { + var _props5 = this.props; + var className = _props5.className; + var role = _props5.role; + var title = _props5.title; + var subTitle = _props5.subTitle; + var href = _props5.href; + var after = _props5.after; + var media = _props5.media; + var children = _props5.children; + var linkComponent = _props5.linkComponent; + var linked = _props5.linked; + var nested = _props5.nested; + + var props = _objectWithoutProperties(_props5, ['className', 'role', 'title', 'subTitle', 'href', 'after', 'media', 'children', 'linkComponent', 'linked', 'nested']); + + var itemChildren = [this.renderAddon('media'), this.renderMain()]; + var classSet = this.getClassSet(); + + classSet[this.prefixClass(nested)] = nested; + classSet[this.prefixClass('header')] = role === 'header'; + classSet[this.prefixClass('linked')] = href || linkComponent || linked; + subTitle && (classSet[this.prefixClass('content')] = true); + + return _react2.default.createElement( + 'li', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + role === 'header' ? children : href || linkComponent ? this.wrapLink(itemChildren) : itemChildren + ); + } + }); + + exports.default = List; + + /** + * TODO: + * - 可选择列表(嵌套 radio/checkbox)图文混排的列表, + * 考虑的创建可选择列表时根据 nested 属性自动生产 input,而不用再去嵌套 Field, + * 以便图文混排选择实现。 + * - UE:用户如何知道这个列表是可以选择的(增加相应的提示文字?) + * - 易用性:链接如何以更好的方式传入类似 react-router Link 这样的组件? + */ + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Loader = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + component: _react2.default.PropTypes.node, + amStyle: _react2.default.PropTypes.string, + rounded: _react2.default.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'loader', + component: 'div' + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + var Component = _props.component; + + var props = _objectWithoutProperties(_props, ['className', 'component']); + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + _react2.default.createElement('div', { className: this.prefixClass('bounce1') }), + _react2.default.createElement('div', { className: this.prefixClass('bounce2') }), + _react2.default.createElement('div', { className: this.prefixClass('bounce3') }) + ); + } + }); + + exports.default = Loader; + +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactAddonsCssTransitionGroup = __webpack_require__(3); + + var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _CSSCore = __webpack_require__(13); + + var _CSSCore2 = _interopRequireDefault(_CSSCore); + + var _Events = __webpack_require__(26); + + var _Events2 = _interopRequireDefault(_Events); + + var _TransitionEvents = __webpack_require__(12); + + var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents); + + var _Button = __webpack_require__(17); + + var _Button2 = _interopRequireDefault(_Button); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + var _Loader = __webpack_require__(23); + + var _Loader2 = _interopRequireDefault(_Loader); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /** + * @see https://github.com/yuanyan/boron + */ + + // MUST be equal to $modal-duration in _modal.scss + var TRANSITION_TIMEOUT = 300; + + var Modal = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + role: _react2.default.PropTypes.oneOf(['alert', 'confirm', 'prompt', 'loading', 'actions', 'popup']), + title: _react2.default.PropTypes.node, + confirmText: _react2.default.PropTypes.string, + cancelText: _react2.default.PropTypes.string, + closeBtn: _react2.default.PropTypes.bool, + closeViaBackdrop: _react2.default.PropTypes.bool, + onAction: _react2.default.PropTypes.func, + onOpen: _react2.default.PropTypes.func, + onClosed: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'modal', + confirmText: '确定', + cancelText: '取消', + closeBtn: true, + onAction: function onAction() {}, + onOpen: function onOpen() {}, + onClosed: function onClosed() {} + }; + }, + getInitialState: function getInitialState() { + return { + closed: true, + isClosing: false + }; + }, + isClosed: function isClosed() { + return this.state.closed; + }, + handleBackdropClick: function handleBackdropClick(e) { + if (e.target !== e.currentTarget || !this.props.closeViaBackdrop) { + return; + } + + this.close(); + }, + isPopup: function isPopup() { + return this.props.role === 'popup'; + }, + isActions: function isActions() { + return this.props.role === 'actions'; + }, + + + // Get input data for prompt modal + getFieldData: function getFieldData() { + var data = []; + var inputs = _reactDom2.default.findDOMNode(this).querySelectorAll('input[type=text]'); + + if (inputs) { + for (var i = 0; i < inputs.length; i++) { + data.push(inputs[i].value); + } + } + + return data.length === 0 ? null : data.length === 1 ? data[0] : data; + }, + handleSelect: function handleSelect(data, e) { + if (this.props.role === 'prompt' && data) { + data = this.getFieldData(); + } + + this.close(); + this.props.onAction.call(this, data, e); + }, + open: function open() { + if (this.isClosed()) { + this.setState({ + isClosing: false, + closed: false + }); + + this.props.onOpen(); + } + }, + close: function close() { + if (this.isClosed() || this.state.isClosing) { + return; + } + + this.setState({ + isClosing: true + }); + }, + handleClosed: function handleClosed() { + this.setState({ + closed: true, + isClosing: false + }); + this.props.onClosed(); + }, + renderActions: function renderActions(classSet) { + classSet[this.props.classPrefix] = false; + + return _react2.default.createElement( + 'div', + { + className: (0, _classnames2.default)(this.props.className, classSet), + key: 'modalActions', + ref: 'modal' + }, + this.props.children, + _react2.default.createElement( + 'div', + { className: this.prefixClass('actions-group') }, + _react2.default.createElement( + _Button2.default, + { + onClick: this.close, + block: true, + amStyle: this.props.btnStyle || 'secondary' + }, + this.props.cancelText + ) + ) + ); + }, + renderPopup: function renderPopup(classSet) { + classSet[this.props.classPrefix] = false; + + var _props = this.props; + var className = _props.className; + var title = _props.title; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['className', 'title', 'children']); + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(className, classSet, this.setClassNS('popup')), + key: 'modalPopup', + ref: 'modal' + }), + _react2.default.createElement( + 'div', + { className: this.setClassNS('popup-inner') }, + _react2.default.createElement( + 'div', + { className: this.setClassNS('popup-header') }, + title ? _react2.default.createElement( + 'h4', + { className: this.setClassNS('popup-title') }, + title + ) : null, + _react2.default.createElement(_Icon2.default, { + name: 'close', + className: this.setClassNS('popup-icon'), + onClick: this.close + }) + ), + _react2.default.createElement( + 'div', + { className: this.setClassNS('popup-body') }, + children + ) + ) + ); + }, + renderHeader: function renderHeader() { + var _props2 = this.props; + var title = _props2.title; + var closeBtn = _props2.closeBtn; + var role = _props2.role; + + var closeIcon = closeBtn && !role ? _react2.default.createElement(_Icon2.default, { + name: 'close', + className: this.prefixClass('icon'), + onClick: this.close + }) : null; + + return title || closeIcon ? _react2.default.createElement( + 'div', + { + className: this.prefixClass('header'), + key: 'modalHeader' + }, + title ? _react2.default.createElement( + 'h4', + { + className: this.prefixClass('title') + }, + title + ) : null, + closeIcon + ) : null; + }, + + + // Render alert/confirm/prompt buttons + renderFooter: function renderFooter() { + var _this = this; + + var buttons = void 0; + var btnClass = this.prefixClass('btn'); + var _props3 = this.props; + var role = _props3.role; + var confirmText = _props3.confirmText; + var cancelText = _props3.cancelText; + + + switch (role) { + case 'alert': + buttons = _react2.default.createElement( + 'span', + { + key: 'modalBtn', + onClick: this.handleSelect.bind(this, null), + className: btnClass + }, + confirmText + ); + break; + case 'confirm': + case 'prompt': + var cancel = role === 'prompt' ? null : false; + buttons = [cancelText, confirmText].map(function (text, i) { + return _react2.default.createElement( + 'span', + { + key: 'modalBtn' + i, + onClick: _this.handleSelect.bind(_this, i === 0 ? cancel : true), + className: btnClass + }, + text + ); + }); + break; + default: + buttons = null; + } + + return buttons ? _react2.default.createElement( + 'div', + { className: this.prefixClass('footer') }, + buttons + ) : null; + }, + + + // Using transition appear to fix animation issue on iOS Safari + // @see https://github.com/amazeui/amazeui-touch/issues/11 + renderTransition: function renderTransition(children) { + return _react2.default.createElement( + _reactAddonsCssTransitionGroup2.default, + { + transitionName: this.prefixClass('transition'), + transitionAppear: true, + transitionAppearTimeout: TRANSITION_TIMEOUT, + transitionEnterTimeout: TRANSITION_TIMEOUT, + transitionLeaveTimeout: TRANSITION_TIMEOUT + }, + children + ); + }, + renderBackdrop: function renderBackdrop(children) { + var onClick = this.handleBackdropClick || null; + var preventDefault = function preventDefault(e) { + // prevent window scroll when touch backdrop + e.preventDefault(); + }; + + var classSet = {}; + + classSet[this.prefixClass('backdrop')] = true; + classSet[this.setClassNS('active')] = true; + classSet[this.prefixClass('backdrop-out')] = this.state.isClosing; + + return _react2.default.createElement( + 'span', + null, + children, + _react2.default.createElement('div', { + className: (0, _classnames2.default)(classSet), + style: { height: window.innerHeight }, + ref: 'backdrop', + onClick: onClick, + onTouchMove: preventDefault + }) + ); + }, + render: function render() { + var _this2 = this; + + var _state = this.state; + var closed = _state.closed; + var isClosing = _state.isClosing; + + + if (closed) { + return null; + } + + // listen out animation end envent + if (isClosing) { + (function () { + var node = _this2.refs.modal; + + if (node) { + (function () { + var closedHandler = function closedHandler(e) { + if (e && e.target !== node) { + return; + } + + _TransitionEvents2.default.off(node, closedHandler); + _this2.handleClosed(); + }; + + _TransitionEvents2.default.on(node, closedHandler); + })(); + } + })(); + } + + var classSet = this.getClassSet(); + var _props4 = this.props; + var role = _props4.role; + var className = _props4.className; + var title = _props4.title; + var children = _props4.children; + var modalWidth = _props4.modalWidth; + var modalHeight = _props4.modalHeight; + + var props = _objectWithoutProperties(_props4, ['role', 'className', 'title', 'children', 'modalWidth', 'modalHeight']); + + var modal = void 0; + + classSet[this.prefixClass('out')] = isClosing; + role && (classSet[this.prefixClass(role)] = true); + + if (this.isActions()) { + modal = this.renderTransition(this.renderActions(classSet)); + } else if (this.isPopup()) { + modal = this.renderTransition(this.renderPopup(classSet)); + } else { + var style = { + width: modalWidth, + height: modalHeight + }; + + modal = _react2.default.createElement( + 'div', + _extends({}, props, { + style: style, + ref: 'modalContainer', + className: (0, _classnames2.default)(classSet, className) + }), + _react2.default.createElement( + 'div', + { + className: 'modal-inner', + ref: 'modal' + }, + _react2.default.createElement( + 'div', + { + className: this.prefixClass('dialog') + }, + this.renderHeader(), + _react2.default.createElement( + 'div', + { + className: this.prefixClass('body'), + ref: 'modalBody' + }, + role === 'loading' ? children ? children : _react2.default.createElement(_Loader2.default, null) : children + ), + this.renderFooter() + ) + ) + ); + } + + return this.renderBackdrop(modal); + } + }); + + exports.default = Modal; + +/***/ }, +/* 25 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_25__; + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _canUseDOM = __webpack_require__(14); + + var _canUseDOM2 = _interopRequireDefault(_canUseDOM); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var noop = function noop() {}; + var Events = { + one: noop, + on: noop, + off: noop + }; + + if (_canUseDOM2.default) { + (function () { + var bind = 'addEventListener'; + var unbind = 'removeEventListener'; + + Events = { + one: function one(node, eventNames, eventListener) { + var typeArray = eventNames.split(' '); + var recursiveFunction = function recursiveFunction(e) { + e.target.removeEventListener(e.type, recursiveFunction); + return eventListener(e); + }; + + for (var i = typeArray.length - 1; i >= 0; i--) { + this.on(node, typeArray[i], recursiveFunction, false); + } + }, + + /** + * Bind `node` event `eventName` to `eventListener`. + * + * @param {Element} node + * @param {String} eventName + * @param {Function} eventListener + * @param {Boolean} capture + * @return {Obejct} + * @api public + */ + + on: function on(node, eventName, eventListener, capture) { + node[bind](eventName, eventListener, capture || false); + + return { + off: function off() { + node[unbind](eventName, eventListener, capture || false); + } + }; + }, + + /** + * Unbind `node` event `eventName`'s callback `eventListener`. + * + * @param {Element} node + * @param {String} eventName + * @param {Function} eventListener + * @param {Boolean} capture + * @return {Function} + * @api public + */ + + off: function off(node, eventName, eventListener, capture) { + node[unbind](eventName, eventListener, capture || false); + return eventListener; + } + }; + })(); + } + + exports.default = Events; + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var NavBar = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + title: _react2.default.PropTypes.node, + leftNav: _react2.default.PropTypes.array, + rightNav: _react2.default.PropTypes.array, + titleOnLeft: _react2.default.PropTypes.bool, + onAction: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'navbar', + onAction: function onAction() {} + }; + }, + renderTitle: function renderTitle() { + var _props = this.props; + var titleOnLeft = _props.titleOnLeft; + var title = _props.title; + + var titlePosition = this.prefixClass(titleOnLeft ? 'left' : 'center'); + + return title ? _react2.default.createElement( + 'h2', + { + className: (0, _classnames2.default)(this.prefixClass('title'), titlePosition) + }, + title + ) : this.props.children; + }, + renderNav: function renderNav(position) { + var nav = this.props[position + 'Nav']; + + return nav && Array.isArray(nav) ? _react2.default.createElement( + 'div', + { + className: (0, _classnames2.default)(this.prefixClass('nav'), this.prefixClass(position)) + }, + nav.map(this.renderNavItem) + ) : null; + }, + renderNavItem: function renderNavItem(item, index) { + var Component = item.component || 'a'; + var itemProps = item.props || {}; + var navTitle = item.title ? _react2.default.createElement( + 'span', + { + className: this.prefixClass('nav-title'), + key: 'title' + }, + item.title + ) : null; + var navIconKey = 'icon'; + var navIcon = item.customIcon ? _react2.default.createElement('img', { + src: item.customIcon, + className: this.prefixClass('icon'), + alt: item.title || null, + key: navIconKey + }) : item.icon ? _react2.default.createElement(_Icon2.default, { + className: this.prefixClass('icon'), + name: item.icon, + key: navIconKey + }) : null; + + return _react2.default.createElement( + Component, + _extends({ + href: item.href, + key: 'navbarNavItem' + index, + onClick: this.props.onAction.bind(this, item) + }, itemProps, { + className: (0, _classnames2.default)(this.prefixClass('nav-item'), itemProps.className) + }), + [navTitle, navIcon] + ); + }, + render: function render() { + var classSet = this.getClassSet(); + var _props2 = this.props; + var title = _props2.title; + var className = _props2.className; + + var props = _objectWithoutProperties(_props2, ['title', 'className']); + + return _react2.default.createElement( + 'header', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + this.renderTitle(), + this.renderNav('left'), + this.renderNav('right') + ); + } + }); + + exports.default = NavBar; + +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactAddonsCssTransitionGroup = __webpack_require__(3); + + var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + // @see https://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html + // To improve reliability, CSSTransitionGroup will no longer listen to + // transition events. Instead, you should specify transition durations + // manually using props such as `transitionEnterTimeout={500}`. + // NOTE: It should less than CSS animation duration, if not, the animation + // be not smooth. It maybe a bug of React. + var TRANSITION_TIMEOUT = 250; + + var Notification = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + title: _react2.default.PropTypes.string, + amStyle: _react2.default.PropTypes.string, + closeBtn: _react2.default.PropTypes.bool, + animated: _react2.default.PropTypes.bool, + visible: _react2.default.PropTypes.bool, + onDismiss: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'notification', + closeBtn: true, + onDismiss: function onDismiss() {} + }; + }, + renderCloseBtn: function renderCloseBtn() { + return this.props.closeBtn ? _react2.default.createElement(_Icon2.default, { + className: this.prefixClass('icon'), + name: 'close', + onClick: this.props.onDismiss + }) : null; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var title = _props.title; + var className = _props.className; + var animated = _props.animated; + var visible = _props.visible; + + var props = _objectWithoutProperties(_props, ['title', 'className', 'animated', 'visible']); + + classSet[this.prefixClass('animated')] = animated; + + var notificationBar = visible ? _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className), + key: 'notification' + }), + _react2.default.createElement( + 'div', + { className: this.prefixClass('content') }, + title ? _react2.default.createElement( + 'h3', + { className: this.prefixClass('title') }, + title + ) : null, + this.props.children + ), + this.renderCloseBtn() + ) : null; + + return animated ? _react2.default.createElement( + _reactAddonsCssTransitionGroup2.default, + { + component: 'div', + transitionName: 'notification', + transitionEnterTimeout: TRANSITION_TIMEOUT, + transitionLeaveTimeout: TRANSITION_TIMEOUT + }, + notificationBar + ) : notificationBar; + } + }); + + exports.default = Notification; + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _BackdropMixin = __webpack_require__(30); + + var _BackdropMixin2 = _interopRequireDefault(_BackdropMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /** + * @see https://github.com/negomi/react-burger-menu + */ + + var OffCanvas = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default, _BackdropMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + placement: _react2.default.PropTypes.oneOf(['left', 'right']), + onDismiss: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'offcanvas', + placement: 'left' + }; + }, + handleBackdropClick: function handleBackdropClick(e) { + if (e && e.target === this.refs.backdrop) { + var onDismiss = this.props.onDismiss; + + + onDismiss && onDismiss(); + } + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var placement = _props.placement; + var animation = _props.animation; + var className = _props.className; + var children = _props.children; + var isClosing = _props.isClosing; + + var props = _objectWithoutProperties(_props, ['placement', 'animation', 'className', 'children', 'isClosing']); + + classSet[this.prefixClass('out')] = isClosing; + classSet[this.prefixClass(placement)] = !!placement; + classSet[this.prefixClass(animation)] = !!animation; + + var offCanvas = _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className), + ref: 'overlay' + }), + children + ); + + return this.renderBackdrop(offCanvas); + } + }); + + exports.default = OffCanvas; + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + exports.default = { + renderBackdrop: function renderBackdrop(children) { + var _classSet; + + var onClick = this.handleBackdropClick || null; + var classSet = (_classSet = {}, _defineProperty(_classSet, this.setClassNS('modal-backdrop'), true), _defineProperty(_classSet, this.setClassNS('modal-backdrop-out'), this.props.isClosing), _classSet); + + return _react2.default.createElement( + 'span', + null, + children, + _react2.default.createElement('div', { + onClick: onClick, + ref: 'backdrop', + className: (0, _classnames2.default)(classSet) + }) + ); + } + }; + +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _OverlayMixin = __webpack_require__(32); + + var _OverlayMixin2 = _interopRequireDefault(_OverlayMixin); + + var _CSSCore = __webpack_require__(13); + + var _CSSCore2 = _interopRequireDefault(_CSSCore); + + var _TransitionEvents = __webpack_require__(12); + + var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents); + + var _createChainedFunction = __webpack_require__(33); + + var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var OffCanvasTrigger = _react2.default.createClass({ + mixins: [_OverlayMixin2.default, _ClassNameMixin2.default], + + propTypes: { + defaultOffCanvasActive: _react2.default.PropTypes.bool, + placement: _react2.default.PropTypes.oneOf(['left', 'right']), + animation: _react2.default.PropTypes.oneOf(['slide', 'push']), + offCanvas: _react2.default.PropTypes.node.isRequired, + pageContainer: _react2.default.PropTypes.node, + onOpen: _react2.default.PropTypes.func, + onClosed: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + placement: 'left', + animation: 'slide', + onOpen: function onOpen() {}, + onClosed: function onClosed() {} + }; + }, + getInitialState: function getInitialState() { + return { + offCanvasActive: this.props.defaultOffCanvasActive == null ? false : this.props.defaultOffCanvasActive, + isClosing: false + }; + }, + componentDidMount: function componentDidMount() { + if (this.props.defaultOffCanvasActive) { + this.updateOffCanvasPosition(); + } + + this.setPageContainer(); + }, + open: function open() { + if (this.state.offCanvasActive) { + return; + } + + this.setState({ + offCanvasActive: true, + isClosing: false + }, function () { + this.props.onOpen(); + }); + + if (this.isPush()) { + _CSSCore2.default.addClass(this.getContainerDOMNode(), this.getWithClassName()); + } + }, + close: function close() { + if (!this.state.offCanvasActive || this.state.isClosing) { + return; + } + + this.setState({ + isClosing: true + }); + + if (this.isPush()) { + var container = this.getContainerDOMNode(); + _CSSCore2.default.removeClass(container, this.getWithClassName()); + _CSSCore2.default.addClass(container, this.getClosingClassName()); + } + }, + handleClosed: function handleClosed() { + this.setState({ + offCanvasActive: false, + isClosing: false + }); + + this.props.onClosed(); + + if (this.isPush()) { + _CSSCore2.default.removeClass(this.getContainerDOMNode(), this.getClosingClassName()); + } + }, + toggle: function toggle() { + this.state.offCanvasActive ? this.close() : this.open(); + }, + isPush: function isPush() { + return this.props.animation === 'push'; + }, + getPageContainer: function getPageContainer() { + var pageContainer = this.props.pageContainer; + + + return typeof pageContainer === 'string' ? document.querySelector(pageContainer) : _reactDom2.default.findDOMNode(pageContainer); + }, + setPageContainer: function setPageContainer() { + var pageContainer = this.getPageContainer(); + + if (pageContainer && this.isPush()) { + _CSSCore2.default.addClass(pageContainer, this.setClassNS('offcanvas-push-target')); + } + }, + getWithClassName: function getWithClassName() { + return 'with-offcanvas-' + this.props.placement; + }, + getClosingClassName: function getClosingClassName() { + return 'with-offcanvas-closing'; + }, + + + // used by Mixin + renderOverlay: function renderOverlay() { + var _this = this; + + if (!this.state.offCanvasActive) { + return _react2.default.createElement('span', null); + } + + var offCanvas = this.props.offCanvas; + var isClosing = this.state.isClosing; + + + if (isClosing) { + (function () { + var node = _this.getOverlayDOMNode(); + if (node) { + (function () { + var closedHandler = function closedHandler(e) { + if (e && e.target !== node) { + return; + } + + _TransitionEvents2.default.off(node, closedHandler); + _this.handleClosed(); + }; + + _TransitionEvents2.default.on(node, closedHandler); + })(); + } else { + _this.handleClosed(); + } + })(); + } + + return (0, _react.cloneElement)(offCanvas, { + placement: this.props.placement, + animation: this.props.animation, + isClosing: isClosing, + onDismiss: this.close + }); + }, + render: function render() { + var child = _react2.default.Children.only(this.props.children); + var props = { + onClick: (0, _createChainedFunction2.default)(child.props.onClick, this.props.onClick) + }; + + props.onClick = (0, _createChainedFunction2.default)(this.toggle, props.onClick); + + return (0, _react.cloneElement)(child, props); + } + }); + + exports.default = OffCanvasTrigger; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /** + * Overlay Mixin + * + * @desc `overlay` is something like Popover, OffCavans, etc. + */ + + exports.default = { + propTypes: { + container: _react2.default.PropTypes.node + }, + + componentDidMount: function componentDidMount() { + this._renderOverlay(); + }, + componentDidUpdate: function componentDidUpdate() { + this._renderOverlay(); + }, + + + // Remove Overlay related DOM node + componentWillUnmount: function componentWillUnmount() { + this._unmountOverlay(); + + if (this._overlayWrapper) { + this.getContainerDOMNode().removeChild(this._overlayWrapper); + this._overlayWrapper = null; + } + }, + + + // Create Overlay wrapper + _mountOverlayWrapper: function _mountOverlayWrapper() { + this._overlayWrapper = document.createElement('div'); + this.getContainerDOMNode().appendChild(this._overlayWrapper); + }, + + + // Render Overlay to wrapper + _renderOverlay: function _renderOverlay() { + if (!this._overlayWrapper) { + this._mountOverlayWrapper(); + } + + var overlay = this.renderOverlay(); + + if (overlay !== null) { + this._overlayInstance = _reactDom2.default.render(overlay, this._overlayWrapper); + } else { + // Unmount if the component is null for transitions to null + this._unmountOverlay(); + } + }, + + + // Remove a mounted Overlay from wrapper + _unmountOverlay: function _unmountOverlay() { + _reactDom2.default.unmountComponentAtNode(this._overlayWrapper); + this._overlayInstance = null; + }, + getOverlayDOMNode: function getOverlayDOMNode() { + if (!this.isMounted()) { + throw new Error('getOverlayDOMNode(): A component must be mounted to\n have a DOM node.'); + } + + if (this._overlayInstance) { + // 包含 backdrop 时通过 refer 返回 overlay DOM 节点 + return _reactDom2.default.findDOMNode(this._overlayInstance.refs && this._overlayInstance.refs.overlay || this._overlayInstance); + } + + return null; + }, + getContainerDOMNode: function getContainerDOMNode() { + return _reactDom2.default.findDOMNode(this.props.container) || document.body; + } + }; + +/***/ }, +/* 33 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + /** + * modified version of: + * https://github.com/react-bootstrap/react-bootstrap/blob/master/src/utils/createChainedFunction.js + */ + + /** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} one + * @param {function} two + * @returns {function|null} + */ + + function createChainedFunction(one, two) { + var hasOne = typeof one === 'function'; + var hasTwo = typeof two === 'function'; + + if (!hasOne && !hasTwo) { + return null; + } + + if (!hasOne) { + return two; + } + + if (!hasTwo) { + return one; + } + + return function chainedFunction() { + one.apply(this, arguments); + two.apply(this, arguments); + }; + } + + exports.default = createChainedFunction; + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _BackdropMixin = __webpack_require__(30); + + var _BackdropMixin2 = _interopRequireDefault(_BackdropMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Popover = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default, _BackdropMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + placement: _react2.default.PropTypes.oneOf(['top', 'bottom', 'horizontal']), + positionLeft: _react2.default.PropTypes.number, + positionTop: _react2.default.PropTypes.number, + angleLeft: _react2.default.PropTypes.number, + angleTop: _react2.default.PropTypes.number, + anglePosition: _react2.default.PropTypes.string, + onDismiss: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'popover' + }; + }, + handleBackdropClick: function handleBackdropClick(e) { + if (e && e.target === this.refs.backdrop) { + var onDismiss = this.props.onDismiss; + + + onDismiss && onDismiss(); + } + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + var children = _props.children; + var positionLeft = _props.positionLeft; + var positionTop = _props.positionTop; + var angleLeft = _props.angleLeft; + var angleTop = _props.angleTop; + var anglePosition = _props.anglePosition; + var isClosing = _props.isClosing; + var placement = _props.placement; + + var props = _objectWithoutProperties(_props, ['className', 'children', 'positionLeft', 'positionTop', 'angleLeft', 'angleTop', 'anglePosition', 'isClosing', 'placement']); + + var style = { + left: positionLeft, + top: positionTop + }; + var angleStyle = { + left: angleLeft, + top: angleTop + }; + + classSet[this.prefixClass('out')] = isClosing; + classSet[this.prefixClass(placement)] = placement; + + var popover = _react2.default.createElement( + 'div', + _extends({}, props, { + style: style, + ref: 'overlay', + className: (0, _classnames2.default)(classSet, className) + }), + _react2.default.createElement( + 'div', + { className: this.prefixClass('inner') }, + children + ), + _react2.default.createElement('div', { + style: angleStyle, + className: (0, _classnames2.default)(this.prefixClass('angle'), anglePosition ? this.prefixClass('angle-' + anglePosition) : null) + }) + ); + + return this.renderBackdrop(popover); + } + }); + + exports.default = Popover; + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _TransitionEvents = __webpack_require__(12); + + var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents); + + var _OverlayMixin = __webpack_require__(32); + + var _OverlayMixin2 = _interopRequireDefault(_OverlayMixin); + + var _domUtils = __webpack_require__(36); + + var _domUtils2 = _interopRequireDefault(_domUtils); + + var _createChainedFunction = __webpack_require__(33); + + var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var PopoverTrigger = _react2.default.createClass({ + mixins: [_OverlayMixin2.default], + + propTypes: { + defaultPopoverActive: _react2.default.PropTypes.bool, + popover: _react2.default.PropTypes.node.isRequired, + onOpen: _react2.default.PropTypes.func, + onClosed: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + onOpen: function onOpen() {}, + onClosed: function onClosed() {} + }; + }, + getInitialState: function getInitialState() { + return { + popoverActive: this.props.defaultPopoverActive == null ? false : this.props.defaultPopoverActive, + isClosing: false, + popoverLeft: null, + popoverTop: null, + placement: null + }; + }, + componentDidMount: function componentDidMount() { + if (this.props.defaultPopoverActive) { + this.updatePopoverPosition(); + } + }, + open: function open() { + if (this.state.popoverActive) { + return; + } + + this.setState({ + popoverActive: true, + isClosing: false + }, function () { + this.updatePopoverPosition(); + this.props.onOpen(); + }); + }, + close: function close() { + if (!this.state.popoverActive) { + return; + } + + this.setState({ + isClosing: true + }); + }, + handleClosed: function handleClosed() { + this.setState({ + popoverActive: false, + isClosing: false + }); + + this.props.onClosed(); + }, + toggle: function toggle() { + this.state.popoverActive ? this.close() : this.open(); + }, + updatePopoverPosition: function updatePopoverPosition() { + if (!this.isMounted()) { + return; + } + + var position = this.calcPopoverPosition() || {}; + + this.setState({ + popoverLeft: position.left, + popoverTop: position.top, + angleLeft: position.angleLeft, + angleTop: position.angleTop, + anglePosition: position.anglePosition, + placement: position.placement + }); + }, + calcPopoverPosition: function calcPopoverPosition() { + var targetOffset = this.getTriggerOffset(); + var popoverNode = this.getOverlayDOMNode(); + + if (!popoverNode) { + return; + } + + var popoverHeight = popoverNode.offsetHeight; + var popoverWidth = popoverNode.offsetWidth; + var targetHeight = targetOffset.height; + var targetWidth = targetOffset.width; + + var windowHeight = window.innerHeight; + var windowWidth = window.innerWidth; + var anglePosition = void 0, + angleLeft = void 0, + angleTop = void 0; + var popoverAngleSize = 8; + var popoverTop = 0; + var popoverLeft = 0; + var diff = 0; + var popoverPosition = 'top'; + var popoverTotalHeight = popoverHeight + popoverAngleSize; + + // Popover Horizontal position + // Popover 高度小于 trigger 顶部偏移 + if (popoverTotalHeight < targetOffset.top) { + // On top: trigger 顶部偏移 - Popover 高度 + popoverTop = targetOffset.top - popoverHeight - popoverAngleSize; + } else if (popoverTotalHeight < windowHeight - targetOffset.top - targetHeight) { + // On bottom: Popover 高度小于 trigger 下方空白位置 + popoverPosition = 'bottom'; + popoverTop = targetOffset.top + targetHeight + popoverAngleSize; + } else { + // On middle: Popover 位于 trigger 的水平位置 + popoverPosition = 'horizontal'; + popoverTop = targetHeight / 2 + targetOffset.top - popoverHeight / 2; + diff = popoverTop; + + if (popoverTop <= 0) { + popoverTop = 5; + } else if (popoverTop + popoverHeight >= windowHeight) { + popoverTop = windowHeight - popoverHeight - 5; + } + + diff = diff - popoverTop; + } + + // Popover Horizontal Position + if (popoverPosition === 'top' || popoverPosition === 'bottom') { + popoverLeft = targetWidth / 2 + targetOffset.left - popoverWidth / 2; + diff = popoverLeft; + + if (popoverLeft < 5) { + popoverLeft = 5; + } + + if (popoverLeft + popoverWidth > windowWidth) { + popoverLeft = windowWidth - popoverWidth - 5; + } + + diff = diff - popoverLeft; + angleLeft = popoverWidth / 2 - popoverAngleSize + diff; + angleLeft = Math.max(Math.min(angleLeft, popoverWidth - popoverAngleSize * 2 - 6), 6); + anglePosition = popoverPosition === 'top' ? 'bottom' : 'top'; + } else if (popoverPosition === 'horizontal') { + popoverLeft = targetOffset.left - popoverWidth - popoverAngleSize; + anglePosition = 'right'; + + if (popoverLeft < 5 || popoverLeft + popoverWidth > windowWidth) { + if (popoverLeft < 5) { + popoverLeft = targetOffset.left + targetWidth + popoverAngleSize; + } + + if (popoverLeft + popoverWidth > windowWidth) { + popoverLeft = windowWidth - popoverWidth - 5; + } + + anglePosition = 'left'; + } + angleTop = popoverHeight / 2 - popoverAngleSize + diff; + angleTop = Math.max(Math.min(angleTop, popoverHeight - popoverAngleSize * 2 - 6), 6); + } + + return { + top: popoverTop, + left: popoverLeft, + placement: popoverPosition, + angleLeft: angleLeft, + angleTop: angleTop, + anglePosition: anglePosition + }; + }, + getTriggerOffset: function getTriggerOffset() { + var node = _reactDom2.default.findDOMNode(this); + var container = this.getContainerDOMNode(); + var offset = container.tagName === 'BODY' ? _domUtils2.default.offset(node) : _domUtils2.default.position(node, container); + + return _extends({}, offset, { + height: node.offsetHeight, + width: node.offsetWidth + }); + }, + + + // used by Mixin + renderOverlay: function renderOverlay() { + var _this = this; + + if (!this.state.popoverActive) { + return _react2.default.createElement('span', null); + } + + var popover = this.props.popover; + var _state = this.state; + var isClosing = _state.isClosing; + var positionLeft = _state.popoverLeft; + var positionTop = _state.popoverTop; + var anglePosition = _state.anglePosition; + var angleLeft = _state.angleLeft; + var angleTop = _state.angleTop; + var placement = _state.placement; + + + if (isClosing) { + (function () { + var node = _this.getOverlayDOMNode(); + if (node) { + (function () { + var closedHandler = function closedHandler(e) { + if (e && e.target !== node) { + return; + } + + _TransitionEvents2.default.off(node, closedHandler); + _this.handleClosed(); + }; + + _TransitionEvents2.default.on(node, closedHandler); + })(); + } + })(); + } + + return (0, _react.cloneElement)(popover, { + positionLeft: positionLeft, + positionTop: positionTop, + angleLeft: angleLeft, + angleTop: angleTop, + anglePosition: anglePosition, + placement: placement, + isClosing: isClosing, + onDismiss: this.close + }); + }, + render: function render() { + var child = _react2.default.Children.only(this.props.children); + var props = { + onClick: (0, _createChainedFunction2.default)(child.props.onClick, this.props.onClick) + }; + + props.onClick = (0, _createChainedFunction2.default)(this.toggle, props.onClick); + + return (0, _react.cloneElement)(child, props); + } + }); + + exports.default = PopoverTrigger; + +/***/ }, +/* 36 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /** + * Get ownerDocument + * @param {ReactComponent|HTMLElement} componentOrElement + * @returns {HTMLDocument} + */ + function ownerDocument(componentOrElement) { + var element = _reactDom2.default.findDOMNode(componentOrElement); + + return element && element.ownerDocument || document; + } + + /** + * Get ownerWindow + * @param {HTMLElement} element + * @returns {DocumentView|Window} + * @see https://github.com/jquery/jquery/blob/6df669f0fb87cd9975a18bf6bbe3c3548afa4fee/src/event.js#L294-L297 + */ + function ownerWindow(element) { + var doc = ownerDocument(element); + + return doc.defaultView || doc.parentWindow || window; + } + + exports.default = { + ownerDocument: ownerDocument, + + ownerWindow: ownerWindow, + + scrollTop: function scrollTop(element, value) { + if (!element) { + return; + } + + var hasScrollTop = 'scrollTop' in element; + + if (value === undefined) { + return hasScrollTop ? element.scrollTop : element.pageYOffset; + } + + hasScrollTop ? element.scrollTop = value : element.scrollTo(element.scrollX, value); + }, + offset: function offset(element) { + if (element) { + var rect = element.getBoundingClientRect(); + var body = document.body; + var clientTop = element.clientTop || body.clientTop || 0; + var clientLeft = element.clientLeft || body.clientLeft || 0; + var scrollTop = window.pageYOffset || element.scrollTop; + var scrollLeft = window.pageXOffset || element.scrollLeft; + + return { + top: rect.top + scrollTop - clientTop, + left: rect.left + scrollLeft - clientLeft + }; + } + + return null; + }, + position: function position(element) { + return { + left: element.offsetLeft, + top: element.offsetTop + }; + } + }; + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; /** + * @see https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Carousel.js + */ + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(25); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _TransitionEvents = __webpack_require__(12); + + var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + var _Touchable = __webpack_require__(38); + + var _Touchable2 = _interopRequireDefault(_Touchable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Slider = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + + controls: _react2.default.PropTypes.bool, // prev/next icon + pager: _react2.default.PropTypes.bool, // indicators or thumbs + + slide: _react2.default.PropTypes.bool, // what is this? + interval: _react2.default.PropTypes.number, // interval + autoPlay: _react2.default.PropTypes.bool, + loop: _react2.default.PropTypes.bool, // loop slide + + pauseOnHover: _react2.default.PropTypes.bool, + // touch: React.PropTypes.bool, + + onAction: _react2.default.PropTypes.func, + onSlideEnd: _react2.default.PropTypes.func, + activeIndex: _react2.default.PropTypes.number, + defaultActiveIndex: _react2.default.PropTypes.number, + direction: _react2.default.PropTypes.oneOf(['prev', 'next']), + prevIcon: _react2.default.PropTypes.node, + nextIcon: _react2.default.PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'slider', + controls: true, + pager: true, + slide: true, + interval: 5000, + autoPlay: true, + loop: true, + pauseOnHover: true, + prevIcon: _react2.default.createElement(_Icon2.default, { name: 'left-nav' }), + nextIcon: _react2.default.createElement(_Icon2.default, { name: 'right-nav' }) + }; + }, + getInitialState: function getInitialState() { + return { + activeIndex: this.props.defaultActiveIndex == null ? 0 : this.props.defaultActiveIndex, + previousActiveIndex: null, + direction: null + }; + }, + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + var activeIndex = this.getActiveIndex(); + + if (nextProps.activeIndex != null && nextProps.activeIndex !== activeIndex) { + clearTimeout(this.timeout); + this.setState({ + previousActiveIndex: activeIndex, + direction: nextProps.direction != null ? nextProps.direction : this.getDirection(activeIndex, nextProps.activeIndex) + }); + } + }, + componentDidMount: function componentDidMount() { + this.props.autoPlay && this.waitForNext(); + }, + componentWillUnmount: function componentWillUnmount() { + clearTimeout(this.timeout); + }, + getDirection: function getDirection(prevIndex, index) { + if (prevIndex === index) { + return null; + } + + return prevIndex > index ? 'prev' : 'next'; + }, + next: function next(e) { + e && e.preventDefault(); + + var index = this.getActiveIndex() + 1; + var count = _react2.default.Children.count(this.props.children); + + if (index > count - 1) { + if (!this.props.loop) { + return; + } + index = 0; + } + + this.handleSelect(index, 'next'); + }, + prev: function prev(e) { + e && e.preventDefault(); + + var index = this.getActiveIndex() - 1; + + if (index < 0) { + if (!this.props.loop) { + return; + } + index = _react2.default.Children.count(this.props.children) - 1; + } + + this.handleSelect(index, 'prev'); + }, + pause: function pause() { + this.isPaused = true; + clearTimeout(this.timeout); + }, + play: function play() { + this.isPaused = false; + this.waitForNext(); + }, + waitForNext: function waitForNext() { + if (!this.isPaused && this.props.slide && this.props.interval && this.props.activeIndex == null) { + this.timeout = setTimeout(this.next, this.props.interval); + } + }, + handleMouseOver: function handleMouseOver() { + if (this.props.pauseOnHover) { + this.pause(); + } + }, + handleMouseOut: function handleMouseOut() { + if (this.isPaused) { + this.play(); + } + }, + handleSwipeLeft: function handleSwipeLeft(e) { + // console.log('swipe left'); + this.next(); + }, + handleSwipeRight: function handleSwipeRight(e) { + // console.log('swipe right....'); + this.prev(); + }, + getActiveIndex: function getActiveIndex() { + return this.props.activeIndex != null ? this.props.activeIndex : this.state.activeIndex; + }, + handleItemAnimateOutEnd: function handleItemAnimateOutEnd() { + this.setState({ + previousActiveIndex: null, + direction: null + }, function () { + this.waitForNext(); + + if (this.props.onSlideEnd) { + this.props.onSlideEnd(); + } + }); + }, + handleSelect: function handleSelect(index, direction, e) { + e && e.preventDefault(); + clearTimeout(this.timeout); + + var previousActiveIndex = this.getActiveIndex(); + + direction = direction || this.getDirection(previousActiveIndex, index); + + if (this.props.onAction) { + this.props.onAction(index, direction); + } + + if (this.props.activeIndex == null && index !== previousActiveIndex) { + if (this.state.previousActiveIndex != null) { + // If currently animating don't activate the new index. + // TODO: look into queuing this canceled call and + // animating after the current animation has ended. + return; + } + + this.setState({ + activeIndex: index, + previousActiveIndex: previousActiveIndex, + direction: direction + }); + } + }, + renderControls: function renderControls() { + return this.props.controls ? _react2.default.createElement( + 'div', + { className: this.prefixClass('control') }, + _react2.default.createElement( + _Touchable2.default, + { + className: this.prefixClass('control-prev'), + onTap: this.prev, + stopPropagation: true + }, + this.props.prevIcon + ), + _react2.default.createElement( + _Touchable2.default, + { + className: this.prefixClass('control-next'), + onTap: this.next, + stopPropagation: true + }, + this.props.nextIcon + ) + ) : null; + }, + renderPager: function renderPager() { + var _this = this; + + if (this.props.pager) { + var _ret = function () { + var isThumbnailNav = false; + + var children = _react2.default.Children.map(_this.props.children, function (child, i) { + var className = i === _this.getActiveIndex() ? _this.setClassNS('active') : null; + var thumb = child.props.thumbnail; + + if (!isThumbnailNav) { + isThumbnailNav = !!thumb; + } + + return _react2.default.createElement( + _Touchable2.default, + { + component: 'li', + className: className, + key: i, + onTap: _this.handleSelect.bind(_this, i, null) + }, + thumb ? _react2.default.createElement('img', { src: thumb }) : null + ); + }); + var pagerClassName = _this.prefixClass(isThumbnailNav ? 'thumbs' : 'indicators'); + + return { + v: _react2.default.createElement( + 'ol', + { + className: (0, _classnames2.default)(_this.prefixClass('pager'), pagerClassName) + }, + children + ) + }; + }(); + + if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; + } + + return null; + }, + renderItem: function renderItem(child, index) { + var activeIndex = this.getActiveIndex(); + var isActive = index === activeIndex; + var isPreviousActive = this.state.previousActiveIndex != null && this.state.previousActiveIndex === index && this.props.slide; + var props = { + active: isActive, + ref: child.ref, + key: child.key ? child.key : index, + index: index, + animateOut: isPreviousActive, + animateIn: isActive && this.state.previousActiveIndex != null && this.props.slide, + direction: this.state.direction, + onAnimateOutEnd: isPreviousActive ? this.handleItemAnimateOutEnd : null + }; + + return _react2.default.cloneElement(child, props); + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['className', 'children']); + + // TODO: 优化 swipe,左右方向阻止默认事件,垂直方向不阻止 + + + return _react2.default.createElement( + _Touchable2.default, + _extends({}, props, { + component: 'div', + className: (0, _classnames2.default)(classSet, className), + onMouseOver: this.handleMouseOver, + onMouseOut: this.handleMouseOut, + onSwipeLeft: this.handleSwipeLeft, + onSwipeRight: this.handleSwipeRight, + preventDefault: false + }), + _react2.default.createElement( + 'ul', + { className: this.prefixClass('slides') }, + _react2.default.Children.map(children, this.renderItem) + ), + this.renderControls(), + this.renderPager() + ); + } + }); + + Slider.Item = _react2.default.createClass({ + propTypes: { + direction: _react2.default.PropTypes.oneOf(['prev', 'next']), + onAnimateOutEnd: _react2.default.PropTypes.func, + active: _react2.default.PropTypes.bool, + animateIn: _react2.default.PropTypes.bool, + animateOut: _react2.default.PropTypes.bool, + caption: _react2.default.PropTypes.node, + index: _react2.default.PropTypes.number, + thumbnail: _react2.default.PropTypes.string + }, + + getInitialState: function getInitialState() { + return { + direction: null + }; + }, + getDefaultProps: function getDefaultProps() { + return { + animation: true + }; + }, + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + if (this.props.active !== nextProps.active) { + this.setState({ + direction: null + }); + } + }, + componentDidUpdate: function componentDidUpdate(prevProps) { + if (!this.props.active && prevProps.active) { + _TransitionEvents2.default.on(_reactDom2.default.findDOMNode(this), this.handleAnimateOutEnd); + } + + if (this.props.active !== prevProps.active) { + setTimeout(this.startAnimation, 20); + } + }, + handleAnimateOutEnd: function handleAnimateOutEnd() { + if (this.props.onAnimateOutEnd && this.isMounted()) { + this.props.onAnimateOutEnd(this.props.index); + } + }, + startAnimation: function startAnimation() { + if (!this.isMounted()) { + return; + } + + this.setState({ + direction: this.props.direction === 'prev' ? 'right' : 'left' + }); + }, + render: function render() { + var _props2 = this.props; + var className = _props2.className; + var active = _props2.active; + var animateIn = _props2.animateIn; + var animateOut = _props2.animateOut; + var direction = _props2.direction; + + var classSet = { + active: active && !animateIn || animateOut, + next: active && animateIn && direction === 'next', + prev: active && animateIn && direction === 'prev' + }; + + if (this.state.direction && (animateIn || animateOut)) { + classSet[this.state.direction] = true; + } + + return _react2.default.createElement( + 'li', + { + className: (0, _classnames2.default)(className, classSet) + }, + this.props.children + ); + } + }); + + exports.default = Slider; + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Mixin = undefined; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _TouchableMixin = __webpack_require__(39); + + var _TouchableMixin2 = _interopRequireDefault(_TouchableMixin); + + var _createChainedFunction = __webpack_require__(33); + + var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction); + + var _isTouchSupported = __webpack_require__(40); + + var _isTouchSupported2 = _interopRequireDefault(_isTouchSupported); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /** + * React port of Zepto touch. + * + * @see https://github.com/joakimbeng/react-swiper + * @see https://github.com/dogfessional/react-swipeable + * @see https://github.com/damusnet/react-swipe-views + * @see http://www.javascriptkit.com/javatutors/touchevents3.shtml + * @see https://github.com/JedWatson/react-tappable + * @see https://github.com/madrobby/zepto/blob/master/src/touch.js + */ + + var Touchable = _react2.default.createClass({ + mixins: [_TouchableMixin2.default], + + propTypes: { + component: _react2.default.PropTypes.any + }, + + getDefaultProps: function getDefaultProps() { + return { + component: 'span' + }; + }, + render: function render() { + var _props = this.props; + var Component = _props.component; + var onTap = _props.onTap; + + var props = _objectWithoutProperties(_props, ['component', 'onTap']); + + if (_isTouchSupported2.default) { + _extends(props, this.getTouchHandlers()); + } else { + // handle `tap` as `click` on non-touch devices + props.onClick = (0, _createChainedFunction2.default)(props.onClick, onTap); + } + + return _react2.default.createElement( + Component, + props, + this.props.children + ); + } + }); + + exports.default = Touchable; + exports.Mixin = _TouchableMixin2.default; + + // TODO: Mixin 里似乎没必要使用 state 记录事件相关信息 + // TODO: 添加 touch active className + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var TouchableMixin = { + propTypes: { + moveThreshold: _react2.default.PropTypes.number, + tapDelay: _react2.default.PropTypes.number, + pressDelay: _react2.default.PropTypes.number, + preventDefault: _react2.default.PropTypes.bool, + stopPropagation: _react2.default.PropTypes.bool, + + onSwipe: _react2.default.PropTypes.func, + onSwipeLeft: _react2.default.PropTypes.func, + onSwipeUp: _react2.default.PropTypes.func, + onSwipeRight: _react2.default.PropTypes.func, + onSwipeDown: _react2.default.PropTypes.func, + onTap: _react2.default.PropTypes.func, + onSingleTap: _react2.default.PropTypes.func, + onDoubleTap: _react2.default.PropTypes.func, + onPress: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + moveThreshold: 30, + tapDelay: 250, + pressDelay: 750, + preventDefault: true + }; + }, + getInitialState: function getInitialState() { + return { + startTouch: null, + endTouch: null, + touch: {}, + deltaX: 0, + deltaY: 0 + }; + }, + componentWillUnmount: function componentWillUnmount() { + this._cancelAll(); + }, + handleTouchStart: function handleTouchStart(e) { + // console.log('handle touchstart'); + this.processEvent(e); + + if (!e.touches) { + return; + } + + var touch = this.state.touch; + var startTouch = e.touches[0]; + + if (e.touches.length === 1 && touch.x2) { + // Clear out touch movement data if we have it sticking around + // This can occur if touchcancel doesn't fire due to preventDefault, etc. + touch.x2 = undefined; + touch.y2 = undefined; + } + + var now = Date.now(); + var delta = now - (touch.last || now); + + this._touchTimeout && clearTimeout(this._touchTimeout); + + touch.x1 = startTouch.pageX; + touch.y1 = startTouch.pageY; + + // if touchstart interval less than 250, handle as doubleTap + if (delta > 0 && delta <= this.props.tapDelay) { + touch.isDoubleTap = true; + } + + // record last touch start time + touch.last = now; + + // handle as `press` after 750ms + this._pressTimeout = setTimeout(this._handlePress, this.props.pressDelay); + + this.setState({ + startTouch: startTouch, + touch: touch + }); + }, + handleTouchMove: function handleTouchMove(e) { + this.processEvent(e); + + var endTouch = e.touches[0]; + var _state = this.state; + var touch = _state.touch; + var deltaX = _state.deltaX; + var deltaY = _state.deltaY; + + + this._cancelPress(); + + touch.x2 = endTouch.pageX; + touch.y2 = endTouch.pageY; + + // finger moving distance + deltaX += Math.abs(touch.x1 - touch.x2); + deltaY += Math.abs(touch.y1 - touch.y2); + + this.setState({ + deltaX: deltaX, + deltaY: deltaY, + touch: touch, + endTouch: endTouch + }); + }, + handleTouchEnd: function handleTouchEnd(e) { + var _this = this; + + this.processEvent(e); + + this._cancelPress(); + + var _props = this.props; + var tapDelay = _props.tapDelay; + var moveThreshold = _props.moveThreshold; + var _state2 = this.state; + var touch = _state2.touch; + var startTouch = _state2.startTouch; + var endTouch = _state2.endTouch; + var deltaX = _state2.deltaX; + var deltaY = _state2.deltaY; + + var event = { + touch: touch, + startTouch: startTouch, + endTouch: endTouch, + preventDefault: function preventDefault() {} + }; + + if (touch.x2 && Math.abs(touch.x1 - touch.x2) > moveThreshold || touch.y2 && Math.abs(touch.y1 - touch.y2) > moveThreshold) { + + event.type = 'swipe'; + + this._swipeTimeout = setTimeout(function () { + _this._handleEvent(event); + + event.type += _this._getSwipeDirection(); + _this._handleEvent(event); + _this._resetTouch(); + }); + } + // normal tap + else if ('last' in touch) { + // don't fire tap when delta position changed by more than 30 pixels, + // for instance when moving to a point and back to origin + if (deltaX < moveThreshold && deltaY < moveThreshold) { + // delay by one tick so we can cancel the 'tap' event if 'scroll' fires + // ('tap' fires before 'scroll') + this._tapTimeout = setTimeout(function () { + // trigger universal 'tap' with the option to cancelTouch() + // (cancelTouch cancels processing of single vs double taps for faster 'tap' response) + event.type = 'tap'; + // event.cancelTouch = cancelAll; + _this._handleEvent(event); + + // trigger double tap immediately + if (touch.isDoubleTap) { + event.type = 'doubleTap'; + _this._handleEvent(event); + _this._resetTouch(); + } + // trigger single tap after 250ms of inactivity + else { + _this._touchTimeout = setTimeout(function () { + _this._touchTimeout = null; + event.type = 'singleTap'; + _this._handleEvent(event); + _this._resetTouch(); + }, tapDelay); + } + }, 0); + } else { + this._resetTouch(); + } + } + }, + handleTouchCancel: function handleTouchCancel() { + this._cancelAll(); + }, + processEvent: function processEvent(e) { + this.props.preventDefault && e.preventDefault(); + this.props.stopPropagation && e.stopPropagation(); + }, + _handlePress: function _handlePress() { + this._pressTimeout = null; + if (this.state.touch.last) { + this.props.onPress && this.props.onPress(); + this._resetTouch(); + } + }, + _cancelPress: function _cancelPress() { + if (this._pressTimeout) { + clearTimeout(this._pressTimeout); + } + + this._pressTimeout = null; + }, + _cancelAll: function _cancelAll() { + if (this._touchTimeout) { + clearTimeout(this._touchTimeout); + } + + if (this._tapTimeout) { + clearTimeout(this._tapTimeout); + } + + if (this._swipeTimeout) { + clearTimeout(this._swipeTimeout); + } + + if (this._pressTimeout) { + clearTimeout(this._pressTimeout); + } + + this._touchTimeout = this._tapTimeout = this._swipeTimeout = this._pressTimeout = null; + this._resetTouch(); + }, + _getSwipeDirection: function _getSwipeDirection() { + var _state$touch = this.state.touch; + var x1 = _state$touch.x1; + var x2 = _state$touch.x2; + var y1 = _state$touch.y1; + var y2 = _state$touch.y2; + + // 水平方向:水平距离大于等于垂直距离 + // 垂直方向: + + return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? 'Left' : 'Right' : y1 - y2 > 0 ? 'Up' : 'Down'; + }, + _resetTouch: function _resetTouch() { + this.setState(this.getInitialState()); + }, + _getEventMethodName: function _getEventMethodName(type) { + return 'on' + type.charAt(0).toUpperCase() + type.slice(1); + }, + _handleEvent: function _handleEvent(event) { + var method = this._getEventMethodName(event.type); + this.props[method] && this.props[method](event); + }, + getTouchHandlers: function getTouchHandlers() { + return { + onTouchStart: this.handleTouchStart, + onTouchEnd: this.handleTouchEnd, + onTouchCancel: this.handleTouchCancel, + onTouchMove: this.handleTouchMove + }; + } + }; + + exports.default = TouchableMixin; + +/***/ }, +/* 40 */ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + var supportTouch = !!('ontouchstart' in global || global.DocumentTouch && document instanceof DocumentTouch); + + exports.default = supportTouch; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Switch = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + name: _react2.default.PropTypes.string, + amStyle: _react2.default.PropTypes.string, + onValueChange: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'switch', + onValueChange: function onValueChange() {} + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var name = _props.name; + var className = _props.className; + var onValueChange = _props.onValueChange; + + var props = _objectWithoutProperties(_props, ['name', 'className', 'onValueChange']); + + return _react2.default.createElement( + 'label', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + _react2.default.createElement('input', { + onChange: onValueChange.bind(this), + name: name, + type: 'checkbox', + ref: 'field' + }), + _react2.default.createElement('span', { className: this.prefixClass('label') }) + ); + } + }); + + exports.default = Switch; + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Icon = __webpack_require__(15); + + var _Icon2 = _interopRequireDefault(_Icon); + + var _Badge = __webpack_require__(16); + + var _Badge2 = _interopRequireDefault(_Badge); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + // TODO: 默认的选中处理 + var TabBar = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + component: _react2.default.PropTypes.node, + amStyle: _react2.default.PropTypes.string, + onAction: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'tabbar', + component: 'nav', + onAction: function onAction() {} + }; + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var Component = _props.component; + var className = _props.className; + var children = _props.children; + var onAction = _props.onAction; + + var props = _objectWithoutProperties(_props, ['component', 'className', 'children', 'onAction']); + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + _react2.default.Children.map(children, function (child, index) { + var _child$props = child.props; + var eventKey = _child$props.eventKey; + var onClick = _child$props.onClick; + + var props = _objectWithoutProperties(_child$props, ['eventKey', 'onClick']); + + var clickHandler = onClick || onAction; + var key = eventKey || index; + eventKey = eventKey || key; + + return _react2.default.createElement(TabBar.Item, _extends({}, props, { + onClick: clickHandler.bind(null, eventKey), + key: key, + eventKey: eventKey + })); + }) + ); + } + }); + + // TODO: + // Icon 应该支持用户自定义: + // React-native 采用 require('path/to/icon') 的形式, + // 这里可能需要再添加一个属性 + TabBar.Item = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + component: _react2.default.PropTypes.any, + icon: _react2.default.PropTypes.string, // icon name + title: _react2.default.PropTypes.string, + href: _react2.default.PropTypes.string, + eventKey: _react2.default.PropTypes.any, + badge: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.number]), + badgeStyle: _react2.default.PropTypes.string, + selected: _react2.default.PropTypes.bool, // alias of `active` + selectedIcon: _react2.default.PropTypes.node }, + + // not supported now + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'tabbar', + component: 'span', + onAction: function onAction() {} + }; + }, + renderBadge: function renderBadge() { + var _props2 = this.props; + var badge = _props2.badge; + var badgeStyle = _props2.badgeStyle; + + + return badge ? _react2.default.createElement( + _Badge2.default, + { + amStyle: badgeStyle || 'alert', + rounded: true }, + badge + ) : null; + }, + renderIcon: function renderIcon() { + var icon = this.props.icon; + + + return icon ? _react2.default.createElement( + _Icon2.default, + { name: icon, key: 'tabbarIcon' }, + this.renderBadge() + ) : null; + }, + renderTitle: function renderTitle() { + var labelClassName = this.prefixClass('label'); + var title = this.props.title; + + + return title ? _react2.default.createElement( + 'span', + { + className: labelClassName, + key: 'tabbarTitle' + }, + title + ) : null; + }, + render: function render() { + var classSet = this.getClassSet(true); + var _props3 = this.props; + var Component = _props3.component; + var className = _props3.className; + + var props = _objectWithoutProperties(_props3, ['component', 'className']); + + Component = this.props.href ? 'a' : Component; + // TODO: how to display badge when icon not set? + + return _react2.default.createElement( + Component, + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className, this.prefixClass('item')) + }), + [this.renderIcon(), this.renderTitle()] + ); + } + }); + + exports.default = TabBar; + +/***/ }, +/* 43 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + var _Button = __webpack_require__(17); + + var _Button2 = _interopRequireDefault(_Button); + + var _ButtonGroup = __webpack_require__(18); + + var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var Tabs = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + defaultActiveKey: _react2.default.PropTypes.any, + onAction: _react2.default.PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'tabs' + }; + }, + getInitialState: function getInitialState() { + var defaultActiveKey = this.props.defaultActiveKey != null ? this.props.defaultActiveKey : this.getDefaultActiveKey(this.props.children); + + return { + activeKey: defaultActiveKey, + previousActiveKey: null + }; + }, + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + if (nextProps.activeKey != null && nextProps.activeKey !== this.props.activeKey) { + this.setState({ + previousActiveKey: this.props.activeKey + }); + } + }, + getDefaultActiveKey: function getDefaultActiveKey(children) { + var defaultActiveKey = null; + + _react2.default.Children.forEach(children, function (child) { + if (defaultActiveKey == null) { + defaultActiveKey = child.props.eventKey; + } + }); + + return defaultActiveKey !== undefined ? defaultActiveKey : 0; + }, + handleClick: function handleClick(key, disabled, e) { + e.preventDefault(); + var activeKey = this.state.activeKey; + + if (disabled) { + return null; + } + + if (this.props.onAction) { + this.props.onAction(key); + } + + if (activeKey !== key) { + this.setState({ + activeKey: key, + previousActiveKey: activeKey + }); + } + }, + renderNav: function renderNav() { + var _this = this; + + var activeKey = this.state.activeKey; + + var navs = _react2.default.Children.map(this.props.children, function (child, index) { + var _child$props = child.props; + var eventKey = _child$props.eventKey; + var disabled = _child$props.disabled; + var navSize = _child$props.navSize; + var navStyle = _child$props.navStyle; + + var key = index; + + eventKey = eventKey !== undefined ? eventKey : index; + var active = eventKey === activeKey; + + return _react2.default.createElement( + _Button2.default, + { + ref: 'tabNav' + key, + key: key, + onClick: _this.handleClick.bind(_this, key, disabled), + active: active, + disabled: disabled, + className: active ? 'active' : null, + amSize: navSize || 'sm', + amStyle: navStyle || 'primary', + hollow: true + }, + child.props.title + ); + }); + + return _react2.default.createElement( + _ButtonGroup2.default, + { + className: this.prefixClass('nav'), + justify: true + }, + navs + ); + }, + renderTabPanels: function renderTabPanels() { + var activeKey = this.state.activeKey; + var panels = _react2.default.Children.map(this.props.children, function (child, index) { + var _child$props2 = child.props; + var eventKey = _child$props2.eventKey; + var children = _child$props2.children; + + + if (eventKey === undefined) { + eventKey = index; + } + + return _react2.default.createElement( + Tabs.Item, + { + active: eventKey === activeKey, + enventKey: eventKey, + key: 'tabPanel' + index + }, + children + ); + }); + + return _react2.default.createElement( + 'div', + { + className: this.prefixClass('body') + }, + panels + ); + }, + render: function render() { + var classSet = this.getClassSet(); + var _props = this.props; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['className']); + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + this.renderNav(), + this.renderTabPanels() + ); + } + }); + + Tabs.Item = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string, + title: _react2.default.PropTypes.node, + eventKey: _react2.default.PropTypes.any, + disabled: _react2.default.PropTypes.bool, + active: _react2.default.PropTypes.bool, + navSize: _react2.default.PropTypes.string, + navStyle: _react2.default.PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'tab' + }; + }, + render: function render() { + var classSet = this.getClassSet(true); + var _props2 = this.props; + var className = _props2.className; + var children = _props2.children; + + var props = _objectWithoutProperties(_props2, ['className', 'children']); + + classSet[this.prefixClass('panel')] = true; + + return _react2.default.createElement( + 'div', + _extends({}, props, { + className: (0, _classnames2.default)(classSet, className) + }), + children + ); + } + }); + + exports.default = Tabs; + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(4); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _ClassNameMixin = __webpack_require__(5); + + var _ClassNameMixin2 = _interopRequireDefault(_ClassNameMixin); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var View = _react2.default.createClass({ + mixins: [_ClassNameMixin2.default], + + propTypes: { + classPrefix: _react2.default.PropTypes.string.isRequired, + component: _react2.default.PropTypes.node.isRequired + }, + + getDefaultProps: function getDefaultProps() { + return { + classPrefix: 'view', + component: 'div' + }; + }, + render: function render() { + var _props = this.props; + var component = _props.component; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['component', 'className']); + + return _react2.default.createElement(component, _extends({}, props, { + className: (0, _classnames2.default)(className, this.getClassSet()) + })); + } + }); + + exports.default = View; + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.TouchableMixin = exports.OverlayMixin = exports.CollapseMixin = exports.ClassNameMixin = exports.BackdropMixin = undefined; + + var _BackdropMixin2 = __webpack_require__(30); + + var _BackdropMixin3 = _interopRequireDefault(_BackdropMixin2); + + var _ClassNameMixin2 = __webpack_require__(5); + + var _ClassNameMixin3 = _interopRequireDefault(_ClassNameMixin2); + + var _CollapseMixin2 = __webpack_require__(11); + + var _CollapseMixin3 = _interopRequireDefault(_CollapseMixin2); + + var _OverlayMixin2 = __webpack_require__(32); + + var _OverlayMixin3 = _interopRequireDefault(_OverlayMixin2); + + var _TouchableMixin2 = __webpack_require__(39); + + var _TouchableMixin3 = _interopRequireDefault(_TouchableMixin2); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.BackdropMixin = _BackdropMixin3.default; + exports.ClassNameMixin = _ClassNameMixin3.default; + exports.CollapseMixin = _CollapseMixin3.default; + exports.OverlayMixin = _OverlayMixin3.default; + exports.TouchableMixin = _TouchableMixin3.default; + +/***/ } +/******/ ]) +}); +; \ No newline at end of file diff --git a/dist/amazeui.touch.min.css b/dist/amazeui.touch.min.css new file mode 100644 index 0000000..98aa611 --- /dev/null +++ b/dist/amazeui.touch.min.css @@ -0,0 +1,5 @@ +/** Amaze UI Touch v1.0.0-beta.1 | by Amaze UI Team + * (c) 2016 AllMobilize, Inc., Licensed under MIT + * 2016-04-25T15:24:15+0800 + */ + [class*=animation-]{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#0e90d2;text-decoration:none}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0;max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block;vertical-align:middle}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup{color:inherit}button,input,optgroup,select,textarea{font-family:sans-serif;margin:0}button,optgroup,textarea{line-height:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0}textarea{overflow:auto}optgroup{font-weight:700}*{outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-touch-callout:none;background:-webkit-linear-gradient(top,transparent,transparent);background:linear-gradient(to bottom,transparent,transparent)}table{border-collapse:collapse;border-spacing:0}.g.g-collapse .col,legend,td,th{padding:0}@-webkit-keyframes amt-spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes amt-spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes amt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes amt-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes amt-fade-out{to{opacity:0}}@keyframes amt-fade-out{to{opacity:0}}@-webkit-keyframes amt-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes amt-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes amt-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes amt-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes amt-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes amt-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes amt-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes amt-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes amt-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes amt-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes amt-shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@keyframes amt-shake{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@-webkit-keyframes amt-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes amt-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes amt-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes amt-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}[class*=animation-]{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animation-spin{-webkit-animation-name:amt-spin;animation-name:amt-spin}.animation-fade-in{-webkit-animation-name:amt-fade-in;animation-name:amt-fade-in}.animation-fade-out{-webkit-animation-name:amt-fade-out;animation-name:amt-fade-out}.animation-slide-top{-webkit-animation-name:amt-slide-top;animation-name:amt-slide-top}.animation-slide-bottom{-webkit-animation-name:amt-slide-bottom;animation-name:amt-slide-bottom}.animation-slide-left{-webkit-animation-name:amt-slide-left;animation-name:amt-slide-left}.animation-slide-right{-webkit-animation-name:amt-slide-right;animation-name:amt-slide-right}.animation-slide-top-fixed slide-bottom-fixed scale-up{-webkit-animation-name:amt-slide-top-fixed slide-bottom-fixed scale-up;animation-name:amt-slide-top-fixed slide-bottom-fixed scale-up}.animation-scale-down{-webkit-animation-name:amt-scale-down;animation-name:amt-scale-down}body,html{height:100%;overflow:hidden;font-size:100%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#f4f4f4;color:#333;padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei",sans-serif;font-weight:400;font-style:normal;line-height:1.6;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}label{-webkit-appearance:none;display:block;font-size:1rem;margin-bottom:.5rem;color:#333}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object{max-width:none!important}address,blockquote,dl,fieldset,figure,ol,p,pre,ul{margin:0 0 1rem}address:last-child,blockquote:last-child,dl:last-child,fieldset:last-child,figure:last-child,hr:last-child,ol:last-child,p:last-child,pre:last-child,ul:last-child{margin-bottom:0}*+address,*+blockquote,*+dl,*+fieldset,*+figure,*+hr,*+ol,*+p,*+pre,*+ul{margin-top:1rem}h1,h2,h3,h4,h5,h6{font-weight:700;color:#222;margin:0 0 1rem;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}*+h1,*+h2,*+h3,*+h4,*+h5,*+h6{margin-top:1.5em}dl,ol,p,ul{line-height:1.6}p{font-size:1rem}dl,ol,ul{padding:0}ol,ul{padding-left:2em}ol li ol,ol li ul,ul li ol,ul li ul{margin-bottom:0;margin-top:0}dl dt{margin-bottom:.625rem;font-weight:700}dl dd{margin:0 0 .75rem;font-size:.9375rem}blockquote{font-family:Georgia,"Times New Roman",Times,SimSimSun,serif;padding:.625rem .625rem .625rem .9375rem;border-left:3px solid #ddd}blockquote cite,blockquote small{display:block;font-size:.8125rem;color:#555}blockquote cite a,blockquote cite a:visited,blockquote small a,blockquote small a:visited{color:#555}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:1.25rem 0;height:0}.pure-img{max-width:100%;height:auto;display:block}.container-fill{height:100%}.container-column>.container-fill,.container-fill>.container-fill,.container-row>.container-fill{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;position:relative}.container-column,.container-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-height:100%;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.container-row{-webkit-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;height:auto}.container-row>.container-fill{height:auto;width:auto}.container-align-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.container-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}.container-direction-column>.container-align-center{text-align:center}.container-align-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}.container-justified{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.container-justify-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.container-justify-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.container-justify-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.container-scrollable{max-height:100%;overflow-x:hidden;overflow-y:scroll}.container-scrollable:after,.container-scrollable:before{content:"";height:1px;position:absolute;width:1px}.container-scrollable:before{bottom:-1px}.container-scrollable:after{top:-1px}.g{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.g .g{margin-left:-.625rem;margin-right:-.625rem}.g-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.g-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.g-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.g-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.g-around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.col{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding-left:.625rem;padding-right:.625rem}.col-1{-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-offset-1{margin-left:16.66667%}.g-avg-1{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-1>div,.g-avg-1>li{padding:0 .625rem .625rem;-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.col-2{-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-offset-2{margin-left:33.33333%}.g-avg-2{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-2>div,.g-avg-2>li{padding:0 .625rem .625rem}.order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.col-3,.g-avg-2>div,.g-avg-2>li{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-offset-3{margin-left:50%}.g-avg-3{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-3>div,.g-avg-3>li{padding:0 .625rem .625rem;-webkit-box-flex:0;-webkit-flex:0 0 33.33333%;-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.col-4{-webkit-box-flex:0;-webkit-flex:0 0 66.66667%;-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-offset-4{margin-left:66.66667%}.g-avg-4{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-4>div,.g-avg-4>li{padding:0 .625rem .625rem;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.col-5{-webkit-box-flex:0;-webkit-flex:0 0 83.33333%;-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-offset-5{margin-left:83.33333%}.g-avg-5{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-5>div,.g-avg-5>li{padding:0 .625rem .625rem;-webkit-box-flex:0;-webkit-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.col-6{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.col-offset-6{margin-left:100%}.g-avg-6{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible;list-style:none}.g-avg-6>div,.g-avg-6>li{padding:0 .625rem .625rem;-webkit-box-flex:0;-webkit-flex:0 0 16.66667%;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}.col-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;overflow:visible}.group{margin:1.875rem 0}.group .list{margin:0}.group-body{display:block;padding:.9375rem;background:#fff}.group-no-padded .group-body{padding:0}.group-footer,.group-header{padding:.3125rem .9375rem;color:#6d6d72;font-size:.875rem}.badge{line-height:1;white-space:nowrap;display:inline-block;cursor:default;min-width:1.5rem;font-size:.8rem;padding:.33333rem .5rem;background:#e6e6e6;border-radius:0;color:#333}.badge-primary{background:#0e90d2;border-radius:0;color:#fff}.badge-secondary{background:#3bb4f2;border-radius:0;color:#fff}.badge-success{background:#5eb95e;border-radius:0;color:#fff}.badge-warning{background:#f37b1d}.badge-alert,.badge-dark,.badge-warning{border-radius:0;color:#fff}.badge-alert{background:#dd514c}.badge-dark{background:#393939}.badge-radius{border-radius:4px}.badge-rounded{border-radius:1000px}.doc-content .badge{margin:5px}.btn{display:inline-block;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;-webkit-font-smoothing:antialiased;-webkit-transition:.25s ease-out;transition:.25s ease-out;vertical-align:middle;padding:.75em 1em;margin:0 1rem 1rem 0;border-radius:0;font-size:1rem;background:#e6e6e6;border:1px solid #e6e6e6;color:#333}.btn:only-child{margin-bottom:0}.btn:focus{outline:none}.btn-group .btn{border-color:#c4c4c4}.btn.active,.btn:active,.btn:hover{background:#c4c4c4;border-color:#c4c4c4;color:#333}.btn.disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-block{display:block;width:100%;margin-left:0;margin-right:0}.btn-primary{background:#0e90d2;border:1px solid #0e90d2;color:#fff}.btn-group .btn-primary{border-color:#0c7ab3}.btn-primary.active,.btn-primary:active,.btn-primary:hover{background:#0c7ab3;border-color:#0c7ab3;color:#fff}.btn-secondary{background:#3bb4f2;border:1px solid #3bb4f2;color:#fff}.btn-group .btn-secondary{border-color:#10a4ef}.btn-secondary.active,.btn-secondary:active,.btn-secondary:hover{background:#10a4ef;border-color:#10a4ef;color:#fff}.btn-success{background:#5eb95e;border:1px solid #5eb95e;color:#fff}.btn-group .btn-success{border-color:#48a548}.btn-success.active,.btn-success:active,.btn-success:hover{background:#48a548;border-color:#48a548;color:#fff}.btn-warning{background:#f37b1d;border:1px solid #f37b1d;color:#fff}.btn-group .btn-warning{border-color:#dc670c}.btn-warning.active,.btn-warning:active,.btn-warning:hover{background:#dc670c;border-color:#dc670c;color:#fff}.btn-alert{background:#dd514c;border:1px solid #dd514c;color:#fff}.btn-group .btn-alert{border-color:#d42e28}.btn-alert.active,.btn-alert:active,.btn-alert:hover{background:#d42e28;border-color:#d42e28;color:#fff}.btn-dark{background:#393939;border:1px solid #393939;color:#fff}.btn-group .btn-dark{border-color:#303030}.btn-dark.active,.btn-dark:active,.btn-dark:hover{background:#303030;border-color:#303030;color:#fff}.btn-xs{font-size:.75rem}.btn-sm{font-size:.875rem}.btn-lg{font-size:1.125rem}.btn-xl{font-size:1.25rem}.btn-hollow{background:0 0;border:1px solid #888;color:#888}.btn-hollow.active,.btn-hollow:active{background:#888;color:#fff}.btn-hollow.btn-primary{border:1px solid #0e90d2;color:#0e90d2}.btn-hollow.btn-primary.active,.btn-hollow.btn-primary:active{background:#0e90d2;color:#fff}.btn-hollow.btn-secondary{border:1px solid #3bb4f2;color:#3bb4f2}.btn-hollow.btn-secondary.active,.btn-hollow.btn-secondary:active{background:#3bb4f2;color:#fff}.btn-hollow.btn-success{border:1px solid #5eb95e;color:#5eb95e}.btn-hollow.btn-success.active,.btn-hollow.btn-success:active{background:#5eb95e;color:#fff}.btn-hollow.btn-warning{border:1px solid #f37b1d;color:#f37b1d}.btn-hollow.btn-warning.active,.btn-hollow.btn-warning:active{background:#f37b1d;color:#fff}.btn-hollow.btn-alert{border:1px solid #dd514c;color:#dd514c}.btn-hollow.btn-alert.active,.btn-hollow.btn-alert:active{background:#dd514c;color:#fff}.btn-hollow.btn-dark{border:1px solid #393939;color:#393939}.btn-hollow.btn-dark.active,.btn-hollow.btn-dark:active{background:#393939;color:#fff}.btn-radius{border-radius:4px}.btn-rounded{border-radius:1000px}.btn-group{margin:0 0 1rem;list-style-type:none;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;overflow:hidden;font-size:1rem}.btn-group>.btn{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;position:relative;margin:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.btn-toolbar .btn-group{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.btn-toolbar,.btn-toolbar>.btn,.btn-toolbar>.btn-group{margin-left:-.3125rem}.btn-group-stacked{display:inline-block}.btn-group-stacked>.btn,.btn-group-stacked>.btn-group,.btn-group-stacked>.btn-group>.btn{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none;display:block;width:100%;max-width:100%}.btn-group-stacked>.btn+.btn,.btn-group-stacked>.btn+.btn-group,.btn-group-stacked>.btn-group+.btn-group,.btn-group-stacked>.btn-group+.btnbtn{margin-top:-1px;margin-left:0}.btn-group-justify{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.btn-group-justify>.btn,.btn-group-justify>.btn-group{display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}@font-face{font-family:Ratchicons;font-weight:400;font-style:normal;src:url(fonts/ratchicons.woff) format("woff"),url(fonts/ratchicons.ttf) format("truetype"),url(fonts/ratchicons.svg#svgFontName) format("svg")}.icon{display:inline-block;font-family:Ratchicons,sans-serif;font-size:24px;line-height:1;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn .icon{font-size:inherit}.icon-back:before{content:"\e80a"}.icon-bars:before{content:"\e80e"}.icon-caret:before{content:"\e80f"}.icon-check:before{content:"\e810"}.icon-close:before{content:"\e811"}.icon-code:before{content:"\e812"}.icon-compose:before{content:"\e813"}.icon-download:before{content:"\e815"}.icon-edit:before{content:"\e829"}.icon-forward:before{content:"\e82a"}.icon-gear:before{content:"\e821"}.icon-home:before{content:"\e82b"}.icon-info:before{content:"\e82c"}.icon-list:before{content:"\e823"}.icon-more-vertical:before{content:"\e82e"}.icon-more:before{content:"\e82f"}.icon-pages:before{content:"\e824"}.icon-pause:before{content:"\e830"}.icon-person:before{content:"\e832"}.icon-play:before{content:"\e816"}.icon-plus:before{content:"\e817"}.icon-refresh:before{content:"\e825"}.icon-search:before{content:"\e819"}.icon-share:before{content:"\e81a"}.icon-sound:before{content:"\e827"}.icon-sound2:before{content:"\e828"}.icon-sound3:before{content:"\e80b"}.icon-sound4:before{content:"\e80c"}.icon-star-filled:before{content:"\e81b"}.icon-star:before{content:"\e81c"}.icon-stop:before{content:"\e81d"}.icon-trash:before{content:"\e81e"}.icon-up-nav:before{content:"\e81f"}.icon-up:before{content:"\e80d"}.icon-right-nav:before{content:"\e818"}.icon-right:before{content:"\e826"}.icon-down-nav:before{content:"\e814"}.icon-down:before{content:"\e820"}.icon-left-nav:before{content:"\e82d"}.icon-left:before{content:"\e822 "}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{width:100%}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{-webkit-appearance:none;-moz-appearance:none;display:block;box-sizing:border-box;padding:.75rem .5rem;margin-bottom:1rem;border:1px solid #ccc;border-radius:0;outline:0;background:#fff;color:#222;font-size:1rem;-webkit-font-smoothing:antialiased;vertical-align:middle;-webkit-transition:border .15s;transition:border .15s}input[type=color]:hover,input[type=date]:hover,input[type=datetime-local]:hover,input[type=datetime]:hover,input[type=email]:hover,input[type=month]:hover,input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=time]:hover,input[type=url]:hover,input[type=week]:hover,textarea:hover{border-color:#bbb;background:#fff;color:#222}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{outline:0;border-color:#999;background:#fff;color:#222}label>input,label>select,label>textarea{margin-top:.5rem}label .field-icon{display:none}fieldset[disabled] input,fieldset[disabled] textarea,input.disabled,input[disabled],input[readonly],textarea.disabled,textarea[disabled],textarea[readonly]{cursor:not-allowed}fieldset[disabled] input,fieldset[disabled] input:hover,fieldset[disabled] textarea,fieldset[disabled] textarea:hover,input.disabled,input.disabled:hover,input[disabled],input[disabled]:hover,input[readonly],input[readonly]:hover,textarea.disabled,textarea.disabled:hover,textarea[disabled],textarea[disabled]:hover,textarea[readonly],textarea[readonly]:hover{background-color:#f2f2f2}.form-set{margin-bottom:.9375rem}.form-set>input{position:relative;top:-1px;border-radius:0!important}.form-set>input:not(:last-of-type){margin-bottom:0}.form-set>input:focus{z-index:2}.form-set>input:first-child{top:1px}.form-set>input:last-child{top:-2px}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;background:#0e90d2}select{-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;margin:0 0 .9375rem;font-size:1rem;line-height:normal;color:#222;border-radius:0;border:1px solid #ccc;background:#fafafa url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%2232%22%20height%3D%2220%22%20viewBox%3D%220%200%2032%2020%22%3E%3Cpolygon%20points%3D%220%2C0%2032%2C0%2016%2C20%22%20style%3D%22fill%3A%20#222222%22%3E%3C/polygon%3E%3C/svg%3E) right 10px center no-repeat;background-size:8px 8px;padding:.75rem 1.625rem .75rem .5rem}select:hover{background-color:#f0f0f0}input[type=range]:focus,select:focus{outline:0}select::-ms-expand{display:none}textarea{height:auto;width:100%;min-height:5rem;resize:vertical}.field-group,.field-group .field-group-label,.field-group>.btn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.field-group{-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.field-group>input,.field-group>select{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0}.field-group .field-group-label,.field-group>.btn{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:0;padding-top:0;padding-bottom:0;border-radius:0}.field-group .field-group-label:first-child,.field-group>.btn:first-child{border-right:0}.field-group .field-group-label:last-child,.field-group>.btn:last-child{border-left:0}.field-group>.btn{border-color:#ccc}.field-group-label{padding-left:.5rem;padding-right:.5rem;border:1px solid #ccc;background:#eee;color:#333}input[type=range]{-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;height:auto;cursor:pointer;margin-top:.25rem;margin-bottom:.25rem;border:0;line-height:1}input[type=range]::-webkit-slider-runnable-track{height:1rem;background:#ddd}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#0e90d2;width:1.5rem;height:1.5rem;margin-top:-.25rem;border:none}input[type=range]::-moz-range-track{-moz-appearance:none;height:1rem;background:#ccc}input[type=range]::-moz-range-thumb{-moz-appearance:none;background:#0e90d2;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-ms-track{height:1rem;background:#ddd;color:transparent;border:0;overflow:visible;border-top:.25rem solid #f4f4f4;border-bottom:.25rem solid #f4f4f4}input[type=range]::-ms-thumb{background:#0e90d2;width:1.5rem;height:1.5rem;border:0}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd}output{line-height:1.5rem;vertical-align:middle;margin-left:.5em}.card-footer,.card-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-height:2.75rem;padding:.625rem .9375rem}.card-body .accordion,.card-body .list,.card-body .tabs{margin:-1.25rem -.9375rem}.card{margin:.625rem .9375rem;border-radius:1px;box-shadow:0 1px 2px rgba(0,0,0,.3);background:#fff;color:#333}.card-header{border-bottom:1px solid #eee}.card-cover{background-size:cover;background-position:center;min-height:10rem;color:#f2f2f2}.card-cover.card-header{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}.card-cover .card-title{color:inherit}.card-title{font-size:1rem;margin:0}.card-body{padding:1.25rem .9375rem;line-height:1.6}.accordion,.card-footer{border-top:1px solid #eee}.card-footer{font-size:.875rem;color:#888}.accordion{margin:.9375rem 0;background:#fff}.card-body .accordion{border-top:none}.card-body .accordion .accordion-item:last-child{border-bottom:none}.accordion-item{margin:0;border-bottom:1px solid #eee}.accordion-item.active .accordion-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.accordion-title{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:0;padding:.625rem .9375rem;font-weight:400;cursor:pointer}.accordion-title:active,.item-linked>a:active{background:#eee}.accordion-item.disabled .accordion-title{cursor:default;pointer-events:none}.accordion-title .accordion-icon{display:block;font-size:1.25rem;color:rgba(136,136,136,.45);-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.accordion-body{margin:0!important;padding:0!important;border:none!important}.accordion-content{padding:0 .9375rem .625rem;font-size:.9375rem;color:#555}.accordion-inset{margin-left:.9375rem;margin-right:.9375rem}.item,.item-linked>a,.item-main,.item-title-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list{margin:1.875rem 0;padding:0;list-style:none;background:#fff}.item{padding:.625rem .9375rem;min-height:2.75rem;margin-bottom:-1px;border:1px solid #e6e6e6;border-width:1px 0}.card-body .item:first-child{border-top:none}.card-body .item:last-child{border-bottom:none}.item-header{min-height:0;padding:.1875rem .9375rem;border-top:1px solid #e6e6e6;background:#f7f7f7;color:#888}.item-linked{padding:0}.item-linked>a{width:100%;padding:.625rem .46875rem .625rem .9375rem;color:#222}.item-input input,.item-input textarea,.item-main,.item-title,.item-title-row{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.item-title-row~[class*=item-]{margin-top:.3125rem}.item-title{margin:0;font-size:1.0625rem;font-weight:500}.item-icon{color:rgba(136,136,136,.45);font-size:1.25rem}.item-after{color:#888;margin-left:.3125rem}.item-after+.icon{margin-left:.1875rem}.item-subtitle{color:#555}.item-desc{font-size:.875rem;color:#888;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.3em;max-height:2.6em}.item-content .item-main{display:block}.item-media+.item-main{margin-left:.625rem}.item-input{padding-top:0;padding-bottom:0}.item-checkbox,.item-input,.item-radio{border-color:#ddd}.item-checkbox .field-container,.item-input .field-container,.item-radio .field-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0}.item-input .field-label{display:block;width:35%}.item-input input,.item-input input:focus,.item-input input:hover,.item-input textarea,.item-input textarea:focus,.item-input textarea:hover{margin:0;padding:.8125rem 0;border:none}.item-checkbox,.item-radio{padding:0}.item-checkbox .field-container,.item-radio .field-container{padding:0 .9375rem}.item-checkbox .field-container:active,.item-radio .field-container:active{background:#eee}.item-checkbox .field-label,.item-radio .field-label{display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:.8125rem 0;line-height:normal}.item-checkbox input,.item-radio input{display:none}.item-checkbox input+.field-icon,.item-radio input+.field-icon{display:none;overflow:hidden;border-radius:.625rem;color:#0e90d2;font-size:1.25rem}.item-checkbox input:checked+.field-icon,.item-radio input:checked+.field-icon{display:block}.item-checkbox .field-icon{background:#0e90d2;color:#fff!important}.list-inset{margin-left:.9375rem;margin-right:.9375rem}.loader{display:inline-block;text-align:center}.loader>div{width:16px;height:16px;background-color:#888;display:inline-block;-webkit-animation:amt-bouncedelay 1.4s infinite ease-in-out both;animation:amt-bouncedelay 1.4s infinite ease-in-out both}.loader>div+div{margin-left:5px}.loader .loader-bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.loader .loader-bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes amt-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes amt-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.loader-rounded>div{border-radius:100%}.loader-primary>div{background-color:#0e90d2}.loader-secondary>div{background-color:#3bb4f2}.loader-success>div{background-color:#5eb95e}.loader-warning>div{background-color:#f37b1d}.loader-alert>div{background-color:#dd514c}.loader-dark>div{background-color:#393939}.loader-white>div{background-color:#fff}.modal{position:fixed;z-index:1010;left:50%;top:50%;width:270px;text-align:center;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.modal:focus{outline:0}.modal-inner{position:relative;background:#f8f8f8;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px;-webkit-animation:amt-modal-in .3s ease-out;animation:amt-modal-in .3s ease-out}.modal-out .modal-inner{-webkit-animation-name:amt-modal-out;animation-name:amt-modal-out}@-webkit-keyframes amt-modal-in{0%{opacity:0;-webkit-transform:scale3d(.5,.5,1);transform:scale3d(.5,.5,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}}@keyframes amt-modal-in{0%{opacity:0;-webkit-transform:scale3d(.5,.5,1);transform:scale3d(.5,.5,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}}@-webkit-keyframes amt-modal-out{to{opacity:0;-webkit-transform:scale3d(.5,.5,1);transform:scale3d(.5,.5,1)}}@keyframes amt-modal-out{to{opacity:0;-webkit-transform:scale3d(.5,.5,1);transform:scale3d(.5,.5,1)}}.modal-header{padding:.9375rem .625rem}.modal-title{margin:0;font-weight:500;font-size:1.125rem}.modal-icon,.popup-icon{position:absolute;right:.3125rem;top:.3125rem;color:rgba(136,136,136,.5);cursor:pointer}.modal-icon:active,.popup-icon:active{color:#555;background:#eee}.modal-body{padding:.9375rem .625rem;text-align:center}.modal-header+.modal-body{padding-top:0}.modal-body+.modal-body{margin-top:5px}.modal-body input[type=text]{padding-top:.5em;padding-bottom:.5em}.modal-body :last-child{margin-bottom:0!important}.modal-body+.modal-footer{border-top:1px solid #dedede}.modal-footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.modal-btn{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block;font-size:1rem;line-height:2.75rem;text-align:center;color:#0e90d2;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-btn+.modal-btn{border-left:1px solid #dedede}.modal-btn:active{background:#d4d4d4}.modal-transition-appear.modal-actions,.modal-transition-appear.popup{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.modal-transition-appear-active.modal-actions,.modal-transition-appear-active.popup{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:-webkit-transform .3s linear;transition:transform .3s linear;transition:transform .3s linear,-webkit-transform .3s linear}.modal-out.modal-actions,.modal-out.popup{-webkit-animation:amt-modal-transition-out .3s linear;animation:amt-modal-transition-out .3s linear}.modal-actions{position:fixed;left:0;bottom:0;z-index:1010;width:100%;text-align:center}.modal-actions .list{margin:0}@-webkit-keyframes amt-modal-transition-out{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes amt-modal-transition-out{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.modal-actions-group{margin:.625rem}.modal-actions-header{color:#888;font-size:.875rem}.modal-actions-alert{color:#dd514c}.modal-actions-alert a{color:inherit}.popup{position:fixed;left:0;top:0;bottom:0;width:100%;height:100%;z-index:1010;background:#fff;overflow:hidden}.modal-popup-appear-active{color:red!important;border:1px solid red}.popup-inner{padding-top:2.75rem;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.popup-header{position:absolute;top:0;width:100%;height:2.75rem;border-bottom:1px solid #dedede;background-color:#fff}.popup-icon{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.popup-title{margin:0 1.875rem;font-size:1rem;font-weight:700;line-height:2.6875rem;text-align:center;color:#333}.popup-body{padding:.9375rem;background:#f8f8f8;color:#555}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1009;background:rgba(0,0,0,.3);opacity:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-name:amt-fade-in;animation-name:amt-fade-in}.modal-backdrop.modal-backdrop-out{-webkit-animation-name:amt-fade-out;animation-name:amt-fade-out}.navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;overflow:visible;height:2.75rem;padding:0 .625rem;line-height:2.6875rem;background:#eee;color:#333;border-bottom:1px solid #e2e2e2}.navbar-title{margin:0;font-size:100%;font-weight:700;color:inherit}.navbar-center,.navbar-left,.navbar-right{display:block;white-space:nowrap;overflow:visible}.navbar-center:first-child:last-child,.navbar-left:first-child:last-child,.navbar-right:first-child:last-child{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0}.navbar-nav-item{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer}.navbar-nav-item+.navbar-nav-item{margin-left:.625rem}.navbar-nav-title~.navbar-icon{font-size:inherit;line-height:normal}.navbar-left{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;-webkit-box-flex:0;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%}.navbar-left .navbar-icon{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.navbar-center,.navbar-right{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;text-align:center}.navbar-right{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3;-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;text-align:right}.navbar-left:first-child{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.navbar-left:first-child+.navbar-right:last-child{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.navbar-center:first-child:not(:last-child){margin-left:25%}.navbar-center+.navbar-left{margin-right:-25%}.navbar-primary{background:#0e90d2;color:#fff;border-bottom:1px solid #0c80ba}.navbar-alert .navbar-nav-item,.navbar-dark .navbar-nav-item,.navbar-primary .navbar-nav-item,.navbar-secondary .navbar-nav-item,.navbar-success .navbar-nav-item,.navbar-warning .navbar-nav-item{color:#f2f2f2}.navbar-secondary{background:#3bb4f2;color:#fff;border-bottom:1px solid #23abf0}.navbar-success{background:#5eb95e;color:#fff;border-bottom:1px solid #4db14d}.navbar-warning{background:#f37b1d;color:#fff;border-bottom:1px solid #ea6e0c}.navbar-alert{background:#dd514c;color:#fff;border-bottom:1px solid #d93c37}.navbar-dark{background:#393939;color:#fff;border-bottom:1px solid #2c2c2c}.notification{top:0;left:0;z-index:1100;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;padding:.625rem 1rem;background:rgba(34,34,34,.9);color:#fff}.notification-icon{cursor:pointer}.notification-content{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:.875rem}.notification-content .notification-title{font-size:.875rem}.notification-content>:first-child{margin-top:0}.notification-content>:last-child{margin-bottom:0}.notification-title{margin:0;color:inherit}.notification-primary{background:rgba(14,144,210,.9);color:#fff}.notification-secondary{background:rgba(59,180,242,.9);color:#fff}.notification-success{background:rgba(94,185,94,.9);color:#fff}.notification-warning{background:rgba(243,123,29,.9);color:#fff}.notification-alert{background:rgba(221,81,76,.9);color:#fff}.notification-animated{position:absolute}.notification-enter{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.notification-enter-active{-webkit-animation:amt-notification-enter .3s ease-in-out;animation:amt-notification-enter .3s ease-in-out}.notification-leave{-webkit-animation:amt-notification-leave .3s ease-in-out;animation:amt-notification-leave .3s ease-in-out}@-webkit-keyframes amt-notification-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:.5}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes amt-notification-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:.5}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes amt-notification-leave{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:.5}}@keyframes amt-notification-leave{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:.5}}.offcanvas{position:fixed;top:0;bottom:0;z-index:1020;width:16.875rem;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;box-shadow:0 0 10px rgba(0,0,0,.2);-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.offcanvas-left{left:0;-webkit-animation-name:offcanvas-left-in;animation-name:offcanvas-left-in}.offcanvas-left.offcanvas-out{-webkit-animation-name:offcanvas-left-out;animation-name:offcanvas-left-out}@-webkit-keyframes offcanvas-left-in{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes offcanvas-left-in{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes offcanvas-left-out{to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes offcanvas-left-out{to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.offcanvas-right{right:0;-webkit-animation-name:offcanvas-right-in;animation-name:offcanvas-right-in}.offcanvas-right.offcanvas-out{-webkit-animation-name:offcanvas-right-out;animation-name:offcanvas-right-out}@-webkit-keyframes offcanvas-right-in{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes offcanvas-right-in{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes offcanvas-right-out{to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes offcanvas-right-out{to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.with-offcanvas-closing .offcanvas-push-target,.with-offcanvas-left .offcanvas-push-target,.with-offcanvas-right .offcanvas-push-target{-webkit-transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.with-offcanvas-left .offcanvas-push-target{-webkit-transform:translate3d(16.875rem,0,0);transform:translate3d(16.875rem,0,0)}.with-offcanvas-right .offcanvas-push-target{-webkit-transform:translate3d(-16.875rem,0,0);transform:translate3d(-16.875rem,0,0)}.with-offcanvas-closing .offcanvas-push-target{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.popover{position:absolute;top:0;left:0;z-index:1030;width:15rem;margin:0;background:#fff;color:#333;border:1px solid #ddd;box-shadow:0 0 5px rgba(0,0,0,.2);-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-name:amt-slide-top-fixed;animation-name:amt-slide-top-fixed}.popover-out{-webkit-animation-name:amt-popover-out;animation-name:amt-popover-out}@-webkit-keyframes amt-popover-out{to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes amt-popover-out{to{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}.popover-inner{position:relative;z-index:110;background:#fff;padding:8px}.popover-angle,.popover-angle:after{border-width:8px;position:absolute;z-index:120;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover-angle:after{content:"";border-width:7px}.popover-angle-bottom{bottom:0;border-top-color:#ddd;-webkit-transform:translate3d(-50%,100%,0);transform:translate3d(-50%,100%,0);border-bottom-width:0}.popover-angle-bottom:after{border-top-color:#fff;bottom:1px;border-bottom-width:0}.popover-angle-top{top:0;border-bottom-color:#ddd;-webkit-transform:translate3d(-50%,-100%,0);transform:translate3d(-50%,-100%,0);border-top-width:0}.popover-angle-top:after{top:1px;border-bottom-color:#fff;border-top-width:0}.popover-angle-bottom:after,.popover-angle-top:after{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.popover-angle-left{left:0;border-right-color:#ddd;-webkit-transform:translateX(-100%);transform:translateX(-100%);border-left-width:0}.popover-angle-left:after{border-right-color:#fff;top:-7px;left:1px;border-left-width:0}.popover-angle-right{right:0;border-left-color:#ddd;-webkit-transform:translateX(100%);transform:translateX(100%);border-right-width:0}.popover-angle-right:after{border-left-color:#fff;top:-7px;right:1px;border-right-width:0}.slider,.slider-slides{position:relative}.slider ol,.slider ul{list-style:none;padding:0}.slider-slides{width:100%;overflow:hidden;margin:0}.slider-slides>li{position:relative;display:none;-webkit-transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.slider-slides>li>a>img,.slider-slides>li>img{display:block;width:100%;height:auto;line-height:1}.slider-slides>li.active.right,.slider-slides>li.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slider-slides>li.active.left,.slider-slides>li.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slider-slides>li.active,.slider-slides>li.next.left,.slider-slides>li.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slider-slides>.active,.slider-slides>.next,.slider-slides>.prev{display:block}.slider-slides>.active{left:0}.slider-slides>.next,.slider-slides>.prev{position:absolute;top:0;width:100%}.slider-control-next,.slider-control-prev{position:absolute;top:50%;z-index:5;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);border-radius:50%;color:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.slider-control-prev{left:10px}.slider-control-next{right:10px}.slider-indicators,.slider-thumbs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.slider-indicators{position:absolute;bottom:.9375rem;left:50%;z-index:15;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);margin:0}.slider-indicators li{display:block;width:8px;height:8px;overflow:hidden;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer}.slider-indicators li+li{margin-left:8px}.slider-indicators .active{background:#fff}.slider-thumbs{margin:5px 0 0}.slider-thumbs li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;opacity:.75;cursor:pointer;-webkit-transition:opacity .5s;transition:opacity .5s}.slider-thumbs li+li{margin-left:2px}.slider-thumbs .active{opacity:1}.slider-caption{position:absolute;bottom:20px;z-index:10;width:100%;padding-top:.9375rem;padding-bottom:.9375rem;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.switch{position:relative;display:inline-block;overflow:hidden;vertical-align:middle;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;cursor:pointer}.switch input[type=checkbox]{position:absolute;margin-left:-9999px;visibility:hidden}.switch input[type=checkbox]:checked+.switch-label:after{-webkit-transform:translateX(1.375rem);transform:translateX(1.375rem)}.switch .switch-label,.switch .switch-label:after{background:#ddd}.switch .switch-label:before{background:#fff}.switch input:checked+.switch-label,.switch input:checked+.switch-label:after{background:#0e90d2}.list .switch{margin-bottom:0}.switch-label{position:relative;display:block;outline:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;width:3.25rem;height:1.875rem;border-radius:9999px;-webkit-transition:background .35s;transition:background .35s}.switch-label:after,.switch-label:before{position:absolute;display:block;content:" ";-webkit-transition:all .35s;transition:all .35s;border-radius:9999px}.switch-label:before{top:2px;left:2px;bottom:2px;right:2px}.switch-label:after{top:4px;left:4px;bottom:4px;width:1.375rem;-webkit-transform:translateX(0);transform:translateX(0)}.switch-secondary input:checked+.switch-label,.switch-secondary input:checked+.switch-label:after{background:#3bb4f2}.switch-success input:checked+.switch-label,.switch-success input:checked+.switch-label:after{background:#5eb95e}.switch-warning input:checked+.switch-label,.switch-warning input:checked+.switch-label:after{background:#f37b1d}.switch-alert input:checked+.switch-label,.switch-alert input:checked+.switch-label:after{background:#dd514c}.switch-dark input:checked+.switch-label,.switch-dark input:checked+.switch-label:after{background:#393939}.tabbar,.tabbar-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabbar{width:100%;height:3.0625rem;padding:0 1rem;background:#e6e6e6;border-top:1px solid #d9d9d9}.tabbar,.tabbar a{color:#888}.tabbar>.active,.tabbar>.active a{color:#0e90d2}.tabbar-item{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer}.tabbar-item .icon{position:relative}.tabbar-item .badge{position:absolute;left:100%;top:-2px;margin-left:-10px;padding:2px 5px;font-size:.625rem;min-width:0}.tabbar-item.active{cursor:default;pointer-events:none}.tabbar-label{position:relative;display:block;text-align:center}.icon~.tabbar-label{font-size:.625rem}.tabbar-primary{background:#0e90d2;border-top:1px solid #0c80ba}.tabbar-secondary{background:#3bb4f2;border-top:1px solid #23abf0}.tabbar-success{background:#5eb95e;border-top:1px solid #4db14d}.tabbar-warning{background:#f37b1d;border-top:1px solid #ea6e0c}.tabbar-alert{background:#dd514c;border-top:1px solid #d93c37}.tabbar-dark{background:#393939;border-top:1px solid #2c2c2c}.tabbar-alert,.tabbar-alert a,.tabbar-dark,.tabbar-dark a,.tabbar-primary,.tabbar-primary a,.tabbar-secondary,.tabbar-secondary a,.tabbar-success,.tabbar-success a,.tabbar-warning,.tabbar-warning a{color:#dedede}.tabbar-alert>.active,.tabbar-alert>.active a,.tabbar-dark>.active,.tabbar-dark>.active a,.tabbar-primary>.active,.tabbar-primary>.active a,.tabbar-secondary>.active,.tabbar-secondary>.active a,.tabbar-success>.active,.tabbar-success>.active a,.tabbar-warning>.active,.tabbar-warning>.active a{color:#fff}.tabs{margin:.9375rem 0;background:#fff}.tabs-body{position:relative;z-index:100;overflow:hidden}.tab-panel{position:absolute;top:0;z-index:99;width:100%;padding:.625rem .9375rem;visibility:hidden;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.tab-panel.active{position:relative;z-index:100;visibility:visible;-webkit-transform:translateX(0);transform:translateX(0)}.tab-panel.active~.tab-panel{-webkit-transform:translateX(100%);transform:translateX(100%)}.tabs-inset{margin-left:.9375rem;margin-right:.9375rem}.root{display:block;height:100%;width:100%;overflow:hidden}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.fl{float:left}.fr{float:right}.fn{float:none}.padding{padding:.9375rem!important}.margin{margin:.9375rem!important}.item-header,.tabbar-label,.tabs-nav .btn,.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.text-justify{text-align:justify!important}.fade{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .3s ease;transition:height .3s ease}.view,.views{width:100%;height:100%;overflow:hidden}.views{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;position:relative}.view{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:absolute;left:0;top:0;background:#f4f4f4;-webkit-backface-visibility:hidden;backface-visibility:hidden}@-webkit-keyframes amt-view-sfl-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes amt-view-sfl-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes amt-view-sfl-leave{to{opacity:.75;-webkit-transform:translate3d(25%,0,0);transform:translate3d(25%,0,0)}}@keyframes amt-view-sfl-leave{to{opacity:.75;-webkit-transform:translate3d(25%,0,0);transform:translate3d(25%,0,0)}}@-webkit-keyframes amt-view-sfr-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes amt-view-sfr-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes amt-view-sfr-leave{to{opacity:.75;-webkit-transform:translate3d(-25%,0,0);transform:translate3d(-25%,0,0)}}@keyframes amt-view-sfr-leave{to{opacity:.75;-webkit-transform:translate3d(-25%,0,0);transform:translate3d(-25%,0,0)}}@-webkit-keyframes amt-view-rfl-enter{0%{opacity:.75;-webkit-transform:translate3d(75%,0,0);transform:translate3d(75%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes amt-view-rfl-enter{0%{opacity:.75;-webkit-transform:translate3d(75%,0,0);transform:translate3d(75%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes amt-view-rfl-leave{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes amt-view-rfl-leave{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes amt-view-rfr-enter{0%{opacity:.75;-webkit-transform:translate3d(-25%,0,0);transform:translate3d(-25%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes amt-view-rfr-enter{0%{opacity:.75;-webkit-transform:translate3d(-25%,0,0);transform:translate3d(-25%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes amt-view-rfr-leave{to{opacity:.75;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes amt-view-rfr-leave{to{opacity:.75;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.view-transition-rfl-enter-active,.view-transition-rfl-leave,.view-transition-rfr-enter-active,.view-transition-rfr-leave,.view-transition-sfl-enter-active,.view-transition-sfl-leave,.view-transition-sfr-enter-active,.view-transition-sfr-leave{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:cubic-bezier(.36,.66,.04,1);animation-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.view-transition-sfl-enter-active,.view-transition-sfr-enter-active{pointer-events:none;z-index:20}.view-transition-sfl-leave,.view-transition-sfr-leave{pointer-events:none;z-index:10}.view-transition-sfr-enter-active{-webkit-animation-name:amt-view-sfr-enter;animation-name:amt-view-sfr-enter}.view-transition-sfl-enter-active{-webkit-animation-name:amt-view-sfl-enter;animation-name:amt-view-sfl-enter}.view-transition-sfr-leave{-webkit-animation-name:amt-view-sfr-leave;animation-name:amt-view-sfr-leave}.view-transition-sfl-leave{-webkit-animation-name:amt-view-sfl-leave;animation-name:amt-view-sfl-leave}.view-transition-rfl-enter-active,.view-transition-rfr-enter-active{pointer-events:none;z-index:10}.view-transition-rfl-leave,.view-transition-rfr-leave{pointer-events:none;z-index:20}.view-transition-rfr-enter-active{-webkit-animation-name:amt-view-rfr-enter;animation-name:amt-view-rfr-enter}.view-transition-rfr-leave{-webkit-animation-name:amt-view-rfr-leave;animation-name:amt-view-rfr-leave}.view-transition-rfl-enter-active{-webkit-animation-name:amt-view-rfl-enter;animation-name:amt-view-rfl-enter}.view-transition-rfl-leave{-webkit-animation-name:amt-view-rfl-leave;animation-name:amt-view-rfl-leave} \ No newline at end of file diff --git a/dist/amazeui.touch.min.js b/dist/amazeui.touch.min.js new file mode 100644 index 0000000..851a8ea --- /dev/null +++ b/dist/amazeui.touch.min.js @@ -0,0 +1,7 @@ +/** Amaze UI Touch v1.0.0-beta.1 | by Amaze UI Team + * (c) 2016 AllMobilize, Inc., Licensed under MIT + * 2016-04-25T15:24:15+0800 + */ + !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-addons-css-transition-group"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-addons-css-transition-group","react-dom"],t):"object"==typeof exports?exports.AMUITouch=t(require("react"),require("react-addons-css-transition-group"),require("react-dom")):e.AMUITouch=t(e.React,e["React.addons.CSSTransitionGroup"],e.ReactDOM)}(this,function(e,t,n){return function(e){function t(r){if(n[r])return n[r].exports;var s=n[r]={exports:{},id:r,loaded:!1};return e[r].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var s=n(1);Object.defineProperty(t,"Container",{enumerable:!0,get:function(){return r(s)["default"]}});var a=n(7);Object.defineProperty(t,"Grid",{enumerable:!0,get:function(){return r(a)["default"]}});var i=n(8);Object.defineProperty(t,"Col",{enumerable:!0,get:function(){return r(i)["default"]}});var o=n(9);Object.defineProperty(t,"Group",{enumerable:!0,get:function(){return r(o)["default"]}});var l=n(10);Object.defineProperty(t,"Accordion",{enumerable:!0,get:function(){return r(l)["default"]}});var u=n(16);Object.defineProperty(t,"Badge",{enumerable:!0,get:function(){return r(u)["default"]}});var p=n(17);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return r(p)["default"]}});var c=n(18);Object.defineProperty(t,"ButtonGroup",{enumerable:!0,get:function(){return r(c)["default"]}});var f=n(19);Object.defineProperty(t,"ButtonToolbar",{enumerable:!0,get:function(){return r(f)["default"]}});var d=n(20);Object.defineProperty(t,"Card",{enumerable:!0,get:function(){return r(d)["default"]}});var h=n(15);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return r(h)["default"]}});var m=n(21);Object.defineProperty(t,"Field",{enumerable:!0,get:function(){return r(m)["default"]}});var v=n(22);Object.defineProperty(t,"List",{enumerable:!0,get:function(){return r(v)["default"]}});var y=n(23);Object.defineProperty(t,"Loader",{enumerable:!0,get:function(){return r(y)["default"]}});var g=n(24);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return r(g)["default"]}});var P=n(27);Object.defineProperty(t,"NavBar",{enumerable:!0,get:function(){return r(P)["default"]}});var b=n(28);Object.defineProperty(t,"Notification",{enumerable:!0,get:function(){return r(b)["default"]}});var T=n(29);Object.defineProperty(t,"OffCanvas",{enumerable:!0,get:function(){return r(T)["default"]}});var C=n(31);Object.defineProperty(t,"OffCanvasTrigger",{enumerable:!0,get:function(){return r(C)["default"]}});var x=n(34);Object.defineProperty(t,"Popover",{enumerable:!0,get:function(){return r(x)["default"]}});var O=n(35);Object.defineProperty(t,"PopoverTrigger",{enumerable:!0,get:function(){return r(O)["default"]}});var N=n(37);Object.defineProperty(t,"Slider",{enumerable:!0,get:function(){return r(N)["default"]}});var _=n(41);Object.defineProperty(t,"Switch",{enumerable:!0,get:function(){return r(_)["default"]}});var E=n(42);Object.defineProperty(t,"TabBar",{enumerable:!0,get:function(){return r(E)["default"]}});var S=n(43);Object.defineProperty(t,"Tabs",{enumerable:!0,get:function(){return r(S)["default"]}});var j=n(38);Object.defineProperty(t,"Touchable",{enumerable:!0,get:function(){return r(j)["default"]}});var M=n(44);Object.defineProperty(t,"View",{enumerable:!0,get:function(){return r(M)["default"]}});var w=n(45);Object.keys(w).forEach(function(e){"default"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}})});t.VERSION="1.0.0-beta.1"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e){var t=!1;return p["default"].Children.forEach(e,function(e){t||e&&e.type&&(t=!!e.type.shouldFillVerticalSpace)}),t}function o(e){e||(e={});var t=void 0,n={reset:function(){t={left:e.left||0,top:e.top||0}},getPos:function(){return{left:t.left,top:t.top}},mount:function(e){var n=p["default"].findDOMNode(e);n.scrollLeft=t.left,n.scrollTop=t.top},unmount:function(e){var n=p["default"].findDOMNode(e);t.left=n.scrollLeft,t.top=n.scrollTop}};return n.reset(),n}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t-1},toggleClass:function(e,t){return n.hasClass(e,t)?n.removeClass(e,t):n.addClass(e,t)}};t["default"]=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0;a--)this.on(e,r[a],s,!1)},on:function(n,r,s,a){return n[e](r,s,a||!1),{off:function(){n[t](r,s,a||!1)}}},off:function(e,n,r,s){return e[t](n,r,s||!1),r}}}(),t["default"]=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=f?f=5:f+n>=i&&(f=i-n-5),h-=f),"top"===m||"bottom"===m?(d=a/2+e.left-r/2,h=d,5>d&&(d=5),d+r>o&&(d=o-r-5),h-=d,u=r/2-c+h,u=Math.max(Math.min(u,r-2*c-6),6),l="top"===m?"bottom":"top"):"horizontal"===m&&(d=e.left-r-c,l="right",(5>d||d+r>o)&&(5>d&&(d=e.left+a+c),d+r>o&&(d=o-r-5),l="left"),p=n/2-c+h,p=Math.max(Math.min(p,n-2*c-6),6)),{top:f,left:d,placement:m,angleLeft:u,angleTop:p,anglePosition:l}}},getTriggerOffset:function(){var e=l["default"].findDOMNode(this),t=this.getContainerDOMNode(),n="BODY"===t.tagName?h["default"].offset(e):h["default"].position(e,t);return s({},n,{height:e.offsetHeight,width:e.offsetWidth})},renderOverlay:function(){var e=this;if(!this.state.popoverActive)return i["default"].createElement("span",null);var t=this.props.popover,n=this.state,r=n.isClosing,s=n.popoverLeft,o=n.popoverTop,l=n.anglePosition,u=n.angleLeft,c=n.angleTop,f=n.placement;return r&&!function(){var t=e.getOverlayDOMNode();t&&!function(){var n=function r(n){n&&n.target!==t||(p["default"].off(t,r),e.handleClosed())};p["default"].on(t,n)}()}(),(0,a.cloneElement)(t,{positionLeft:s,positionTop:o,angleLeft:u,angleTop:c,anglePosition:l,placement:f,isClosing:r,onDismiss:this.close})},render:function(){var e=i["default"].Children.only(this.props.children),t={onClick:(0,v["default"])(e.props.onClick,this.props.onClick)};return t.onClick=(0,v["default"])(this.toggle,t.onClick),(0,a.cloneElement)(e,t)}});t["default"]=y},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e){var t=o["default"].findDOMNode(e);return t&&t.ownerDocument||document}function a(e){var t=s(e);return t.defaultView||t.parentWindow||window}Object.defineProperty(t,"__esModule",{value:!0});var i=n(25),o=r(i);t["default"]={ownerDocument:s,ownerWindow:a,scrollTop:function(e,t){if(e){var n="scrollTop"in e;return void 0===t?n?e.scrollTop:e.pageYOffset:void(n?e.scrollTop=t:e.scrollTo(e.scrollX,t))}},offset:function(e){if(e){var t=e.getBoundingClientRect(),n=document.body,r=e.clientTop||n.clientTop||0,s=e.clientLeft||n.clientLeft||0,a=window.pageYOffset||e.scrollTop,i=window.pageXOffset||e.scrollLeft;return{top:t.top+a-r,left:t.left+i-s}}return null},position:function(e){return{left:e.offsetLeft,top:e.offsetTop}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;tt?"prev":"next"},next:function(e){e&&e.preventDefault();var t=this.getActiveIndex()+1,n=l["default"].Children.count(this.props.children);if(t>n-1){if(!this.props.loop)return;t=0}this.handleSelect(t,"next")},prev:function(e){e&&e.preventDefault();var t=this.getActiveIndex()-1;if(0>t){if(!this.props.loop)return;t=l["default"].Children.count(this.props.children)-1}this.handleSelect(t,"prev")},pause:function(){this.isPaused=!0,clearTimeout(this.timeout)},play:function(){this.isPaused=!1,this.waitForNext()},waitForNext:function(){!this.isPaused&&this.props.slide&&this.props.interval&&null==this.props.activeIndex&&(this.timeout=setTimeout(this.next,this.props.interval))},handleMouseOver:function(){this.props.pauseOnHover&&this.pause()},handleMouseOut:function(){this.isPaused&&this.play()},handleSwipeLeft:function(e){this.next()},handleSwipeRight:function(e){this.prev()},getActiveIndex:function(){return null!=this.props.activeIndex?this.props.activeIndex:this.state.activeIndex},handleItemAnimateOutEnd:function(){this.setState({previousActiveIndex:null,direction:null},function(){this.waitForNext(),this.props.onSlideEnd&&this.props.onSlideEnd()})},handleSelect:function(e,t,n){n&&n.preventDefault(),clearTimeout(this.timeout);var r=this.getActiveIndex();if(t=t||this.getDirection(r,e),this.props.onAction&&this.props.onAction(e,t),null==this.props.activeIndex&&e!==r){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:r,direction:t})}},renderControls:function(){return this.props.controls?l["default"].createElement("div",{className:this.prefixClass("control")},l["default"].createElement(b["default"],{className:this.prefixClass("control-prev"),onTap:this.prev,stopPropagation:!0},this.props.prevIcon),l["default"].createElement(b["default"],{className:this.prefixClass("control-next"),onTap:this.next,stopPropagation:!0},this.props.nextIcon)):null},renderPager:function(){var e=this;if(this.props.pager){var t=function(){var t=!1,n=l["default"].Children.map(e.props.children,function(n,r){var s=r===e.getActiveIndex()?e.setClassNS("active"):null,a=n.props.thumbnail;return t||(t=!!a),l["default"].createElement(b["default"],{component:"li",className:s,key:r,onTap:e.handleSelect.bind(e,r,null)},a?l["default"].createElement("img",{src:a}):null)}),r=e.prefixClass(t?"thumbs":"indicators");return{v:l["default"].createElement("ol",{className:(0,f["default"])(e.prefixClass("pager"),r)},n)}}();if("object"===("undefined"==typeof t?"undefined":i(t)))return t.v}return null},renderItem:function(e,t){var n=this.getActiveIndex(),r=t===n,s=null!=this.state.previousActiveIndex&&this.state.previousActiveIndex===t&&this.props.slide,a={active:r,ref:e.ref,key:e.key?e.key:t,index:t,animateOut:s,animateIn:r&&null!=this.state.previousActiveIndex&&this.props.slide,direction:this.state.direction,onAnimateOutEnd:s?this.handleItemAnimateOutEnd:null};return l["default"].cloneElement(e,a)},render:function(){var e=this.getClassSet(),t=this.props,n=t.className,r=t.children,i=s(t,["className","children"]);return l["default"].createElement(b["default"],a({},i,{component:"div",className:(0,f["default"])(e,n),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut,onSwipeLeft:this.handleSwipeLeft,onSwipeRight:this.handleSwipeRight,preventDefault:!1}),l["default"].createElement("ul",{className:this.prefixClass("slides")},l["default"].Children.map(r,this.renderItem)),this.renderControls(),this.renderPager())}});T.Item=l["default"].createClass({propTypes:{direction:l["default"].PropTypes.oneOf(["prev","next"]),onAnimateOutEnd:l["default"].PropTypes.func,active:l["default"].PropTypes.bool,animateIn:l["default"].PropTypes.bool,animateOut:l["default"].PropTypes.bool,caption:l["default"].PropTypes.node,index:l["default"].PropTypes.number, +thumbnail:l["default"].PropTypes.string},getInitialState:function(){return{direction:null}},getDefaultProps:function(){return{animation:!0}},componentWillReceiveProps:function(e){this.props.active!==e.active&&this.setState({direction:null})},componentDidUpdate:function(e){!this.props.active&&e.active&&v["default"].on(p["default"].findDOMNode(this),this.handleAnimateOutEnd),this.props.active!==e.active&&setTimeout(this.startAnimation,20)},handleAnimateOutEnd:function(){this.props.onAnimateOutEnd&&this.isMounted()&&this.props.onAnimateOutEnd(this.props.index)},startAnimation:function(){this.isMounted()&&this.setState({direction:"prev"===this.props.direction?"right":"left"})},render:function(){var e=this.props,t=e.className,n=e.active,r=e.animateIn,s=e.animateOut,a=e.direction,i={active:n&&!r||s,next:n&&r&&"next"===a,prev:n&&r&&"prev"===a};return this.state.direction&&(r||s)&&(i[this.state.direction]=!0),l["default"].createElement("li",{className:(0,f["default"])(t,i)},this.props.children)}}),t["default"]=T},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0}),t.Mixin=void 0;var a=Object.assign||function(e){for(var t=1;t0&&s<=this.props.tapDelay&&(t.isDoubleTap=!0),t.last=r,this._pressTimeout=setTimeout(this._handlePress,this.props.pressDelay),this.setState({startTouch:n,touch:t})}},handleTouchMove:function(e){this.processEvent(e);var t=e.touches[0],n=this.state,r=n.touch,s=n.deltaX,a=n.deltaY;this._cancelPress(),r.x2=t.pageX,r.y2=t.pageY,s+=Math.abs(r.x1-r.x2),a+=Math.abs(r.y1-r.y2),this.setState({deltaX:s,deltaY:a,touch:r,endTouch:t})},handleTouchEnd:function(e){var t=this;this.processEvent(e),this._cancelPress();var n=this.props,r=n.tapDelay,s=n.moveThreshold,a=this.state,i=a.touch,o=a.startTouch,l=a.endTouch,u=a.deltaX,p=a.deltaY,c={touch:i,startTouch:o,endTouch:l,preventDefault:function(){}};i.x2&&Math.abs(i.x1-i.x2)>s||i.y2&&Math.abs(i.y1-i.y2)>s?(c.type="swipe",this._swipeTimeout=setTimeout(function(){t._handleEvent(c),c.type+=t._getSwipeDirection(),t._handleEvent(c),t._resetTouch()})):"last"in i&&(s>u&&s>p?this._tapTimeout=setTimeout(function(){c.type="tap",t._handleEvent(c),i.isDoubleTap?(c.type="doubleTap",t._handleEvent(c),t._resetTouch()):t._touchTimeout=setTimeout(function(){t._touchTimeout=null,c.type="singleTap",t._handleEvent(c),t._resetTouch()},r)},0):this._resetTouch())},handleTouchCancel:function(){this._cancelAll()},processEvent:function(e){this.props.preventDefault&&e.preventDefault(),this.props.stopPropagation&&e.stopPropagation()},_handlePress:function(){this._pressTimeout=null,this.state.touch.last&&(this.props.onPress&&this.props.onPress(),this._resetTouch())},_cancelPress:function(){this._pressTimeout&&clearTimeout(this._pressTimeout),this._pressTimeout=null},_cancelAll:function(){this._touchTimeout&&clearTimeout(this._touchTimeout),this._tapTimeout&&clearTimeout(this._tapTimeout),this._swipeTimeout&&clearTimeout(this._swipeTimeout),this._pressTimeout&&clearTimeout(this._pressTimeout),this._touchTimeout=this._tapTimeout=this._swipeTimeout=this._pressTimeout=null,this._resetTouch()},_getSwipeDirection:function(){var e=this.state.touch,t=e.x1,n=e.x2,r=e.y1,s=e.y2;return Math.abs(t-n)>=Math.abs(r-s)?t-n>0?"Left":"Right":r-s>0?"Up":"Down"},_resetTouch:function(){this.setState(this.getInitialState())},_getEventMethodName:function(e){return"on"+e.charAt(0).toUpperCase()+e.slice(1)},_handleEvent:function(e){var t=this._getEventMethodName(e.type);this.props[t]&&this.props[t](e)},getTouchHandlers:function(){return{onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onTouchCancel:this.handleTouchCancel,onTouchMove:this.handleTouchMove}}};t["default"]=i},function(e,t){(function(e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=!!("ontouchstart"in e||e.DocumentTouch&&document instanceof DocumentTouch);t["default"]=n}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t + + +Copyright (C) 2014 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/fonts/ratchicons.ttf b/dist/fonts/ratchicons.ttf new file mode 100755 index 0000000000000000000000000000000000000000..927eb58c3641d02ff1891b7823fd055deaa5ede9 GIT binary patch literal 11512 zcmd^ldvF}bd1rs!Gy4RvPrSGwIm^WYAoc+ei`@kY5?lcUA(EB}5VV37Wf@CgLA(gS z04PzmXeq8pP9R#c9X*m0By=~>hjm!VrTm6?ytMQ{`!0Nf)Qh^iao>x8$CYU*3r{=e zbex&Jf8tMm-1Bk9_-`;)zcyJcjMG%07DG>>KQoC2`%~f()GwmmIC*yY{I|LQu?8Kl zKcAf+D}3VWW8YzH`va&?o-LeTpq#50^&gwo;|M#gq1SmW;(=9iX_o_hE5 z=mP!p7JTQ?YsKLh+b8HwxkDW)<9{|H}0%SEfCzhQfbV+N)QwBF(~IMF}O za@X1Q4sqhfG`mZjV4ne++RP&Zh#^{m`y@; zRJU~|MmE{||NY10E!TM-e5=a2Ik6mgQt*;D77hDoFWvXIbRI1xo|xv1I9J=(IHQ(W zl(J5$r8kX7yJ;VFcmFo^_ZdGTU!P>Ec?x2NKaCS|u|2t@lSoi6_i=9I*cpyK|0rMyli~4o6eb%gE1%ge+5l;=4K1W^s2#;ToV&qOxsC? zbgQGFTv54_2T8>4kUKwN14M^Ix#mqoMP-xkiJ8w;I~)*3x5Mpn+HIIuFyV7}V`@58 zEmG-702`yH*33`++8R%-8L_oBVBsTXNJ5gnwp?7bag3c-h!daLBxwlyCol~2I~2QO z2hZ&OSRhp$iB_l5Dwen)r@dmtuUw(EE9OV?_!c~Cc2bu3W#dX8`HeRY(IL899w?5q z+j!JG#~aUz=S6^NEY8xo4jU<=nn zXmgXzL(M&uPEvCf*>_NFMbbY;Y(uIj>Dd4<+GLC zv(M8+zb`RM_>#Sn2XBcZ{AHG8hjV=nA|9#biV&nSxg8iUPN#4H*pPC{Mod-NaTH7) zhUBXQ#9CXzJ45w;Z-t8`DQWk_qPuMNXr{9{x`R^Kh_%OHt(v6B#%5JpH8yDW^1rH& zd5s@)PIhmszCA~jYj3}exbYKjY#RW&t-U_(C6xm(d;c=v`%S0c`5V5Vg^6~T`zc?w ztmUZM_q3~`G)vChA7tnzJ%v&@shQrSd%KNq8ZUSAMtRsi<400aEj^9%DnPK6q?>1_hd;HQq|M4Jy+MWy#rz z9Sj}QU0b^N)~;I)$mgxef&%Ks=r{^u!wScduz}KS)o6q+Fyg1IZn@!sQ0|sv^7))| zcgyxr#1~fmv21&c(y6R3yDQS%xhF|k>!_L_fSFXsPTE1$Rpg;6inRZPE?;^3F(Ev5 zRgj;^&xPXfC<=7V;h_L0#p(RJx1V2se$`IgX{StcONu+3ii3NdmF=-mkHQ`B)Kb>) z`WKT|J97a&fQ6<{$O?EAsE;Q`u-XxN0rvU= zeHX^MJVxaC?B-q|lg;*8ksmTX`-!2y;`PJE#fOGp1+FEN0e->Ui{tAyMG#~%fSrfo zaISHGZ2d>{59@Elcz_SBzY*tt^Cj1@#(t5HVjVZ+*=19tJd?fFE?L){Z6^NQ(HCDl zO0@p8EDeK?-hTO|BTzu&_RE)VHw?+k8$T4!2|uCB^K7V1aVj=ko=3!tz1&vY;4$*-U2}HSO|{@P&QhEFPcuh%qx)Lr?gO znJ#)l3%cDct_D|7S$~{fJh=X+VEUuRY|R`!=`&`#=t&Bqx5e!a8vktc@elXlSoW1= zTHsSS zO-pXiAb1e`4#qjChs!?9*oJdey)p8o0#bJA+5w^wQ)sW5fx~kLq{87$zrtU~nMz$! zWc(t{Vl7c*n3j!;!}KlTmmK>nI98(LOX3S6$b4)&YtO+N3htG!ULVfX`RpaWSag~-t-1zKk#^+vpjS8=UpHg>kl;;bu zWG?1~@y`V+D`c31nO$7k8MNIY%?%%dRbaf|zs>Ij$0_WluqvXe2sGOR&EXJ*?c%$} z#id2#layG3JBuytdHwaVcd7aAQ`E9fe@dq}mN(x0>Q~ACW!hzY|M$vr8s|?z=xTGp zO?z#{sXi~Zh2S_W;_Hv|4@dcjK|8XE8()N8rCBWtvlwe*DVAlgy-;1n6$kYm(}Qq^ zX-_403zu+@R#kA9!{NFIbK`()r|j636E@n-M4m~be4N2HpJa+dxgEZ*8iO-84;C)R z#4j{Dmn{!;O`6O8q9fry>$913XR2dQds{LQkF}-(`11u)UT+;tLAtXkM!Rg=rBMh3 zYf|BkOgfN?c4oS%qXw-Mv_-2VvsN&Wc_5=bR{%51^sw#JQ zJ?{2+-2BP)Pw|fRzp$S2**(ke+VnG)&%AAjPE%pXc>iZg`u>VMSJ;*3`8}Jsgm4(P z^Z5siKQ_Mc09~g4{-E(q>VD7|D9Pt@;!Cgz%{bj7xx+A=kV~6jP4zX^ene~zE~1T* zhR`;spmY&1Q;3UY^iKRZ3QmaJIrZ;uX-l-EcBizRA!)g?>Ep*rLu^Yv&|VqlnA1&NLh5=dv8TUHZ`B-XFh_r+j6Xg7nB>uo|HS`A z)NR^L6=@&5=<~fk|{TAk)7F) z6u~A{kO05(Fdh!K(~)Ox)#bjU5^=cVQjveT-L4_#a=XkRrM9NpGH_Lu6*mPeRW}7J z;3P!Mdc<{U{pIs+-39Zr8N|?2biw#F`IR(Fe{Y?u%)5N-GnT@2AVfmMH0mY?Qx%7r zM+)mAfnX{RrL}XLT_(-UG^{d(<*YxHOId?x^4~BjpW7(|F=UKB2Sf^6gu#;mnGHD! zGRF#UEC8=-$CE{R7xqane31WM&-#Bk*n>#m0?)4>=Q^r9_0EN!^~Zbo8**Rr?BGj9 zhSjm2T(=uS=#t@cZw2w33J76~nZ}YLa~?P`c3iS!SgtAszK+#3)&zGU9YEilHY_6 zY?z|rOIt-~RcwOxCM3PW9Cvhp=|-Fd~ zV@pGWw{>@AVBnGoZ>0jOk3?7?5$5GYcq^8A3#{B$gj-Bg7QF^UoLt~ag6t~7A7ThW z1s{f53tmo>!xoN|NKz##jMGmc=6>!xkT1{4;oA?VQ+wLA9SHW37j8|U|DB}8N_PJp zguqOg|F6#%#vJF{z#lR5K7Y>Rhoj<%X3<>Oi5t<4bPgW5l+N*gGG=8G=ao6yW)ep? z%+w9dGg*3~oVj5hYmLND-?vaD$?u!ASLQ+T%7s_yI*sDS1th@+eo=fGafgFduxe?` ztAmveyMn7K=2CJnlEf9ttHOqO0}jaqc*!R@oo0qt<*aa41gq`7n3LCL;Yw<89a0@Y z5-0yieAzf^9Bt3=XEH|jg>QfUub%-u_s|Q*(YB0nh}JU3AH4MztpSV}-=j6EEYW4< zYSPcwvF==#c~hn^^^{$jIozwkMZ)dKq)jGBoCbVeV%0%!ov%(hIy|8`n{jZ^-3|z z)3{?WGvSjm8azE@$O~SRzw%!A8u;sD+t`$KFWiXDAem>QFzHi3;e< zgXwgJtpyWp=)=@Ux8Z~{GNcA1-6edS6@lQ$c-y(cJRP1&5|t@vV~}^hSg?RwuuGc z5UtBU1TUE;J3{MBlf0C+)$V|+lyCX1vBBe&A|CT*n%=raQe8jqpiVntae*6?BX@m+mD?U6s~PQu`|ZGE4+J0-4XBhwhkxm7x({% zk;`wZm@NO>@-*c$J^lTu4|(>##oR*v9>~7ENBp%}w*T30nw-0i`w|3~mhAzAF{R(v zOni)zGj08(_#5%I zl2L9~mX(Xje^Ym;ht(DJKiVd3AG1AW_u5po` zf)&7nC0O2U-c^EaXfKvv7h>f366{9a^;^(6L{L~~nmu2Fi3O>)1mhP!ij`o2_Pr$- zx4O8@w8pBeh6*LvhW7hPu#4SEkCtFJYofpHn_swpaq7(EveweKTkB}w)2W@lUz)5Wpnlm=7%$7N}#7+R~4Ca_c-{LJXZZ+yoj9SF#DRU(aG$ujm ztuP0GIcH+awTo;V^jUjZf(o3$4wvyaVN$(lQmH}EZl+%Ye`Mb@#*YCzX>w^9t^07f z)%KqIg|wM54oVlETYXXxd|aC&0aeL{>lOz&kyyK_0wIUYO}ym8&n^K9QZ?1!infmG zX&Z&8fwtpknw_Lkn08Tw8YxOmxQb|@-PB4kisOuhmi*(Y1i&My`d_ZAnIr^X7iW|wR+=P zGuve2xdr8PVQj{>G=FYxJY^M~+-zN3QcVKXvB~1tj5;7qY?c9RI zSLCe984#<;{VB6kOUvp);Y@MKzF3@CEG|u|=G>}DvPE%+QXHRJwolA2-d9*0S0?Ar z7L}>FiFt>dK~7qE6NeO8!<^@qinawP=)5#^_#pAce_MF0%9eKrlmF8(Cm)@~b!~Ja zp;KHN*YrOc)Rm^Ybfy2)NH`J>t&C{;;NVDD&*ej!-X)=~d|uOC{e^M8MOIz?n%*vf zc8T#vgCp96wz5(H%HYT-S~L?$LKz8VMnj|dd_JVJSUw-o+2BYqpHJvKu3;V}S^x=Z z-{6R@MtXHyq&E}}=Mi`(bP9Fxo=YyqTf+eRv=way)2+6v(UqZ*(ZNvR zM1CZaM_+Du1RWtseQBwLuEceFU+fapqHnY}p{uAydLx?7BE1Fuq0=(TS6UOgEv`w5 zc>kDA{ijC{nMByFMiz^#awR&d^{+$zs{J|@ z4kdJF9P??K?(91%SpXo?o7Y{kb^{BqBdY|?;3#@mz*j8mYz;>+tPF>&emR6k&E7n=F#zHRM!~;LmaQ@t zh+yk|I_tTF_|jx|6=+fWPmVCXBGRjkV&1P;RuVjDZ|}m`3uFA4HzG{%Ri`ZL0JJy!v4y-N9omg9z8rGI&7;DRN7uJ?#1Z&H(F|O@5f?JM^;t_A_LHzk<-|NPSE8fQFRcjw8ybF zWDj2xMYr|GiYv*8rtM$BTzfXVwWKwNu1G`CAJgd5z z3xV~pV&pIcyAM(dEn+dtO!2{bLb} zl(-6-5_-C{Vqcl9qtYi}7iG?8;t?$=w|^M+X@5Ss+C)J}c6Or~%-?M8+GsYh%R_I% z*&El}W96QkCfyg;_rz9k!35(>8)Ybiwu26W(!G-fBN)E^^ms!^%cNv!am4uY2-PqVcY^>VS zm`k`Jz|Sp7Jq`uQy+`|Pumcnf=n3HT#`QK7eUdl*;GT9EX1vUeLof``m_9JCKYod^ z{QwRFAPEe_FOk`DI{>rgh{QR7uA>r10>>nd1l}icByfks*$d$P5=R2ZC5{9JC5{A! zBu+Pg6B0)P!xBdVCnb&qJ|J;=0Ng2YB=AcTM*<@fM*?|?vk$;s5=R23B#s2`mN*jl zU|jFmVDmk)qG!*kdLnvBynFq88(N=LYJ8teB{0 zOh}?mnvg`DitFhO)M;5UQD;m@qRyI-L_Hgi>5if<8VAoy^PPa@J@z7d04t2S{6a)uh>1zAO8fX|C` O13&wGa#dxA82dl#5&Cxk literal 0 HcmV?d00001 diff --git a/dist/fonts/ratchicons.woff b/dist/fonts/ratchicons.woff new file mode 100755 index 0000000000000000000000000000000000000000..25f1e75afc0cfd3a398215974eb2785436b98426 GIT binary patch literal 6780 zcmY*eWl$VVwB2PFx5b^{5Fi8(?kpbMg0r|oaCZ+D7J`T1?g@lo!6mqRkl-F5_*=gB z{=BX_b^DyUcWzHj&2;q{FI6ZM00bZgxjz8sIkNxzU;aG*|3g*tH8%hNltHM^&=F%$ zD1$kgxgfM?1Q$j`jotTqk1$Vn8pON@p%EfLi8A+uW94G)h|uN%0Pqa}fSw$S;Vo=! z_8w7-GL6VV`#(Ue9ek`1+A;uun*aci{ph(73$?K{vj6~y9S}ME&j8vIkk}wZgjR^) zR0uGjrhy`D9NoPU+H+rA1V;J=000MP*mK@<51VI1O(#q`nt3Dol87KU%`<=!7*bAV zj+O|`5V6K6003#5>?WDP#reHE06@Bh&?FGJQ8c*EcX6{s)RHqG>U5rwlArnHoeeX! z2<#FF34w=%mBrfPful<*Dy7;3N|G}fucZ8f#;-M{=_ICnqRWbyek z&fKzq+QCrxOHxi-)?QCqDoV5}FjXOz`&LfB*nxe5RIAR5o5te+QHDnMs;}&6W9@PV z*7HI;P)d5%0P<-2>HL&*P+6sDn&P#B;he|oL^u|TtI=0{RfVk590o= zeP%u8&21VTRqb5s&sZCT)Rqb|6fzWL=}Zb6F`LXW#MY1(j0!Z21(1@-0W~Q;@*a(u zeC56Iia7$;DTyIy0kwyo*0ppmb3b3nbR`JNsw?=D=wJrgPEi7S?U&Re)YVWG#YOF1 z8JNnN6q~#^AnvL7HZ?Lt%XK_^M zIJEqG%P33c(ZpG47z^$~-(KPJ_`=ocHkqbYg^_E+k%Setq2i!}d!7t{ib-R05BQcZ z8>x)!Qm%JlXAFoxXqZ|qqRk!U3(DXT_H*Sra$>HicPY$6<#zV;+{}rRF42t&nz$uV z{yid>xM3bBCUvW37fAP(p$Musa$XYo!c~_>s)Z{WlVoUJGhEPJc5%VVXtRmyDst>b zvCK>qeQ~$oUm(WATLv~tYxROl`Rre?IghGkYc-{&RuWFUqYpu^31AT17_uy@W@xFN&Vi_nxmCK3?7i>z(?k)*SR<7iaN@)e3jmOYQQKyLi>Qnx!jsecQr>29j@D zsB^prDs?c}0d)3Z4yDa;D>jdwtK${My)dfzHw)}(;g2Dtm;?IbqtRGauC%y%x@!hgCfF=L-1cX5NzDp?!FT`{vL5 zZ#VX@J*JXhAG@Boj)7jb>PYM31D2nn7v1x7_kZtGSJXKQ=;8xCf7NZe1AGA-l53Q$ zvlr;Wm&^1!9GwAfXr2SK|57PK#|B!EPXz_RCP~tqG*PDM*}?$a0a|Z)oGxlXaN@uM z_+JWTXw3j^^dPPLKnwQiC(2OfEr`DgPS+b~^;?U_G}Hya?dX>*iLxAW%0&SSXtm1x zorvC5h^)nncQX6Q$p-}cn$+x9V+xIUkS3U5*vS_h zUC0mrO{kJsibO{e9baC5RrZv%z{sfYN!dA^v9OTw)ONELJ7R0wnuv*rJ%Qj({d=&sBqU1jB(wWu(2)@(`y>>Uu)#y zE2RmdRs;{sBAPK-hx2OZs{u7|n)v#cL>4g+AAG)a3s#~SHHQMd8z$s2Q;#sXAz`XT z{Sk~YPDg$UZDKjoz^e=+mggtdue`MP8Ia*Eb0!X~+^lcn9v2t9JY!QA7gFM8JfCWI z=Nvr-Fna4W@zp+0#o>~7UxLW7cIFtgH72a=XdJDi>bzM#emukDF<%s1<$8m9@%}1m zdDTjRgfMvYyaf(fPuJ;UZ8i}gG!h!PUJCpX7@uRxWJ^oMV14vYC> zS76Rhkl5pk@lWEzYQ!JhW9sIvx0yBRjY|dpe7HktJ6s%F;K3C+#e$(07voqMSDG2~ zPqsJJo_NrHKdI5TpRzOg@kbB)^3?_7x^uXNY_5Q-{{!f2LN1e$MN^Xo=yM$!oD`H1 zy$vxXWEuxH)7VM@>4q%`JEBDrl3&*V>v@SBok}tPi3;t7a?GSBd}Fl}$y4deq6x!v zoh6MQFoGE9RaSMpJq8bn|1CK<10Nrj9h`A5p3Hdu2M|VNk{i{IVq_61K6!#Bs zOrJ%`Hg6_^BUJ8!@Z!lFLLs2$ouf=};3Ll84jtCBf}#|9Rg(gfel#OR<5e{`Gn9-N z?|G9=9ZoS_Qw%-Uq~DR)j1Q3pfBOu+QK_*DeMBZhGbQbPO|yyL%a_ClUy$;~dmjSG zad9HJ`*YM!7?)Nd+EhquC9^H@ef(pjVX-OUJJ_IuGYKK3E+Z%4BBR~PCNzn}e?3BP zEQ(XuYg@n1zkGxS0Qsyu>7NqbQhd`{NYi52@!jo<|Aq%qsZxYLH#|R6X|i-pd+MVT zX-eszGIOT;*{|9SGkQk5bjO1G6zX>DrPkt0xj*)Y38M4e_)IYIlB6C*>VVt|x3JdeXxy$J1-?Jj1x-beeUXAs- z5%?hDR=p6HqZ%2;T?W;2jTe8qtTP$^?i#pWcE*FrWjjgc_i7QBFb3FH7{ium-X$mp z+B?5HHQ83OwVSLvFTx?O#f|gWVHAoPbKTT4N|q4`BUg{uONn3@-#l3JhKWktMF0Df z{kA$sva}0!thmh5cwMP8mtFs?xF|`6%ws7~qYzQeSB|2Ya)mohs>xbu?r` z8g{aj7GbpM-&r?yx#^JUD0KjqjX=-b^~{qaLT3ebVY!({4ro1!s1q9L6LI$R*F;X# zD1%}0yb zt9@0{HSmef^Y^k_u;0;VQR_E2{pn$0cQuo7yP9Uq3L*xb=3p9roYsFKuHIS5;k~(X zaoT^qGuj41duWv86C-Q}N=+zrNOv#HXhTQyASkc`@B!+qNF?9uiL|7VMyzjI!gDHo z$Fh%WN?#_+9`01R_C7qc40=YVF3smt3FGj1diN(t3&|{g+q%k2q0C5Qyhn0eag9dD zbNw-s_@Gn0FL$^`*!W56o8YRJgY!_mqkxZcv&YsZWhU2n&Zm?(oE-AS7WcsFfQkG{ zwMXh$t#Wn8V(Knh|_P3ls~sHsKc?r{G0{#Wc{x&(!ILg26{4!caMqv z9Q*lpwkuD3%tRoF`fGO0*6~k&roH;fK(O0z2ywK#b!=7>uUuQ>J!c-Z(Xv*;x{n%AMtPL<>(j`CkwMI z$<8$t!iXpoCD}~`O|U(9a$1<%sLSm$+sSsMQC||URu4sx9zo+7kW%H)%`Ze{ zCJUSN?xX|+f-X#p?M-gA3aX?$KDQrTlgC^(R40vD@&vSrt{CM|?G=#`JYn%{UeB3t zZPmx{HnJ+oU}bc>=UhS7C-7xm+>F1FV2FZ=V%3yWSiK3_Y%8JSuwojPk$+(N)4v)%< zhgOAea|a1&!pmZLS=1asAFtp~6AL6~r|kyze{x{8L|^02THCb;uf2%(5B?;Y?!<`R z_uu~#<-~mYp5B2R=692ceCSWcMH{nfWL?!4-rcN4sxTcP4LqFZ9olfL>x=a5eTj#r zIZqOIOts4rs6Nr6NouR=;Z@9il#%uaCB!hokUIpfpyDpAtgWRid6+Jp%sE>r)l9~X ze3*tgDB_tq$QoOFSdi#Tj+t?kv#|ADtJvPJcwDW)&r1asiF zEmzv=Q0`n5(v!7YR&GfrR=%$k%KW57UH`$Cn?+81qJoY2j@v4X?D$Zs$)`m}7#2jF zMe2=X_3urORYmK%ZhnJg`!<8&i?8zYTq@rs>FWyzWeaPCI30>(o0Z|L;t>c;9I-EMz$ND5 zW*y<;$Yn)pPn-T45mqJN-&JiucPkZP!7_g^&38X2WN)(az}MB*ezofNIvZZt@Y?^v zx@o-rfg%-tb;PD%&~ZCWQs(|=cY+7s?@~3}+dSt@pJoxx$s(KYLYqtM%<*sM^EY{& z)x;EvsT~8x(9zt!>?P%Pj9)k^(U-`zHB>-_jD?GB@yCKHjE~1`t6VgL>>rhF1{N)R zWFz?eWwcs9?3QHK4ykW=vL}9*nB)qt+fsobFWG$=An-Ive04@=tG|zS@R{}l1UAs0 z_%D@*o>wk+vGpMNmC60jhdhJ4F**q^4#%3f#^wiGGW55qZy}UvDh$rW0-vC}Ev#cP zYZ5WOzBzbCf0=wzp)C7*+7bTeUYgAO5*a4r#kXmZC>CW-aC^!^%EeUBzT(6?k{u+5((hCU9A1dRuvH>MH2lOfMzsZWT7T`_4!lTO6X+V( zic%tPy&LU%6!~6VF=aweyH8(ZDSvGPM_XfIT!Zd=sc2%iK^^v4C}g?IhUOmuUBsyq zuFCe%3Oo`I3z_9$c9}sru(%I({OdK*O?%xP?l#d^D)SU}ZwPkBSl)@ef2TvJV!PRJ;Iwfbhbr#qRSa(9~Zo(c>GM`8rU^KtUzh_t&GArm!mVE^}T^N zbf@aX;4?~(Cm9MD7r(}^^qW@bphlTSp0Rn2X~1N3R5&;-DwHpimCHSgLmw?gf{|rN z+04_nPPKfdciRo4WO(x&EM1=LIUx^JQUJG+aVPi0h?~}&Uit^9=2HK<=*q}@*zTZ| z4dCxqXm1xD)9v!leL4-pHKkUC-HU#T%8WI}(IxO`Ps4imaFxX!GeA%tEXZm$LC}`S z;u%V#t_S-U5+3^au0V%Sh)7?knJ>@CwA^_>CM&uV{_8p-48zc~JT@RZJA%ZI5r$~Y1Q_v&vG}CY#i%1dcL}ez;T4B9!rA@5(pDl)w01` zCqTfVy{#VZEysHNH|&E>&PB0P!9%grNVOGxXdGQwT)~p$A@j~oevlJR4AIpUu5iG$ z^r3jNRqLSQSx5NeRb;SSpUpd3U*aBislRYI1oWm7iTlTorrwxWWH8LTYR;G~1zJhv za5~hFF2l@P4pkTEl2dSbg3wff*jJUMm{f__4yRrEfs$$YSBGS!aLYimtPG5|*NPBq z7O_0y&wAxXUMe21?G2q+s3UHPf+WtHSl&G<{h93K#@u3SXn0}^>xH_WF7S+6SdU7q zG(EYHP0!4&>@GpdPGa|YDc{xq9>)5ToU8K7R`JrtPxDCVDdkv<1ZkEkDDdQvh>V#n zaOVlgL+*fZO%dnv|6pggb7O)latXi$?LHsZ$GAWX|3%K>3;^KC3A78+KyWkw(z6Qq z&)>8#HO0Bj>xJ~*hXT=p8R$W*oG1XRBJi^ji|{`KyE;2XlsN(Ou^f~C)gYW_c7P$k z6VL~^0z!b^z+EH&5-CzO(kRjvh#bTVQUuw6VnOSme_(#FJlGu^4_-#5MusBCA{V0A zpai0%p+ZnuP(x9V(FD-c(97iom*p{zq!M66RoilUjXB#CE%S}mKTq5E$Rs;P{ZQ-u~9 zMPus}|8Uw<*0a2YuyyiBIghS`1Qj09LF;IFka^F>F-jjLuGu%J1rl~g}sLQZHWyu zMfNQ+*uD`NklX88%nle&uM8#gXTk%GPc(io1e}z(?H?MhMqFcqey!!JBdvY9YG?MUSCZDvsUl%(vWL54->MjpXvUAQgZb(=Pp3eTTW-r7Rr z3ffU-S^TtD$s5T-ouSwa9p(DQQ#brU(7w$?XEsF?dg!j})>HU$s{C;GX2%HQhs%yw zm399?wb4S+R@BwEpur3M#9ub%x1}PCs=^Xc*WxF4*qwklXT)=GRI}CWrXd{Bk)Kqm zx(-+)Pn;DGm&lCgwFqw9?07T2hidKrg8Ghl-Y8mVqTYAni7$rEy%q&2mK0sXeM0&L z2&*mu+rd2il>-d5b-r5+$0eGcauZx4&@IT}62oS=iSn(vTa@}VnptEMnaubs(#zj8 zULjqZZgWIF-Iw9-7xK#BNoBCk;PMBNPqy?8ExgrR%0+BUHlN(yHRsCdaCgT^EPl~W z5Vf;A@BQcH;Gr2a=yr1mp4B5qQZtr+RB4&i!LN=`ZqA)KO1kCL@BOpKN>oO4XKMg! z?V5A$Q!*hJxtrzsxLu^70ZCjcw%^BUkX@dB6ge}uSTv@443L4(PGqVSsl<w6xXk^u9luUr6R(c0`d>_yuE-UoX25`k zUL6papx=Uqcr9TxwLp5AS`fWUJ(vYuRzs#90|}M24h1Mv#{i60*Q=F?)~iDS$<#4D bvt}^hnF3|>5u+LS6j2NQP>1~d2kCzRYph+Z literal 0 HcmV?d00001 diff --git a/docs/getting-started/getting-started.md b/docs/getting-started/getting-started.md index dbecf44..d00af75 100644 --- a/docs/getting-started/getting-started.md +++ b/docs/getting-started/getting-started.md @@ -74,6 +74,10 @@ ReactDOM.render(, document.getElementById('root')); HTML: +**注意:** + +- `amazeui.touch.css`、`amazeui.touch.min.css` 位于 `node_modules/amazeui-touch/dist` 下。 + ```html @@ -82,8 +86,7 @@ HTML: - + Amaze UI Touch diff --git a/package.json b/package.json index 0a710d3..4efe5c0 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "amazeui-touch", "title": "Amaze UI Touch", - "version": "0.1.0-beta2", + "version": "1.0.0-beta.1", "description": "Web Components for Mobile UI based on React.js", "main": "lib/index.js", "scripts": { "start": "gulp", "docs": "NODE_ENV=production gulp", - "build": "env NODE_ENV=production gulp build", + "build": "NODE_ENV=production gulp build", "test": "echo \"Error: no test specified\" && exit 1", "eslint": "./node_modules/.bin/eslint ./src/js/", "changelog": "github-changes -o amazeui-touch -r amazeui-touch -a"