pbca26
8 years ago
committed by
GitHub
403 changed files with 63827 additions and 4 deletions
@ -0,0 +1,19 @@ |
|||
{ |
|||
"plugins": [ |
|||
"transform-class-properties", |
|||
"syntax-decorators", |
|||
"transform-decorators-legacy" |
|||
], |
|||
"presets": [ |
|||
["es2015", { "modules": false }], |
|||
"react", |
|||
"stage-0" |
|||
], |
|||
"env": { |
|||
"development": { |
|||
"presets": [ |
|||
"react-hmre" |
|||
] |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,24 @@ |
|||
{ |
|||
"extends": [ |
|||
"airbnb" |
|||
], |
|||
"plugins": [ |
|||
"react" |
|||
], |
|||
"rules": { |
|||
"react/jsx-uses-react": "error", |
|||
"react/jsx-uses-vars": "error", |
|||
"arrow-body-style": [2, "as-needed"], |
|||
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], |
|||
"react/prefer-stateless-function": "off" |
|||
}, |
|||
"parserOptions": { |
|||
"ecmaFeatures": { |
|||
"jsx": true |
|||
} |
|||
}, |
|||
"env": { |
|||
"es6": true, |
|||
"browser": true |
|||
} |
|||
} |
@ -0,0 +1,5 @@ |
|||
node_modules |
|||
npm-debug.log |
|||
.DS_Store |
|||
www/bundle.js |
|||
examples |
@ -0,0 +1,45 @@ |
|||
EDEX ReactJS |
|||
--- |
|||
|
|||
Setup |
|||
--- |
|||
|
|||
Node version 6 or 7 is required. |
|||
|
|||
``` |
|||
npm install |
|||
``` |
|||
|
|||
|
|||
Usage |
|||
--- |
|||
|
|||
## Running in dev mode |
|||
|
|||
`npm start` |
|||
|
|||
Opens Application in browser [http://localhost:3000/] |
|||
|
|||
|
|||
## Build (production) |
|||
|
|||
Build will be placed in the `build` folder. |
|||
|
|||
``` |
|||
npm run build |
|||
``` |
|||
|
|||
## Running in preview production mode |
|||
|
|||
This command will start webpack dev server, but with `NODE_ENV` set to `production`. |
|||
Everything will be minified and served. |
|||
Hot reload will not work, so you need to refresh the page manually after changing the code. |
|||
|
|||
``` |
|||
npm run preview |
|||
``` |
|||
|
|||
## Linting |
|||
|
|||
``` |
|||
$ npm run lint |
@ -0,0 +1,96 @@ |
|||
{ |
|||
"name": "EDEX-ReactJS", |
|||
"version": "0.0.1", |
|||
"description": "EDEX Wallet ReactJS", |
|||
"main": "src/index.js", |
|||
"scripts": { |
|||
"start": "webpack-dashboard -t 'EDEX-ReactJS' -- webpack-dev-server --colors --no-info", |
|||
"build": "rm -rf ./build && NODE_ENV=\"production\" webpack", |
|||
"lint-break-on-errors": "eslint ./src ./webpack.config.js -f table --ext .js --ext .jsx", |
|||
"lint": "eslint ./src ./webpack.config.js -f table --ext .js --ext .jsx || true", |
|||
"preview": "NODE_ENV=\"production\" ./node_modules/webpack-dashboard/bin/webpack-dashboard.js -t 'Preview Mode - EDEX' -- ./node_modules/webpack-dev-server/bin/webpack-dev-server.js", |
|||
"test": "jest", |
|||
"webdriver-update": "webdriver-manager update", |
|||
"webdriver-start": "webdriver-manager start", |
|||
"e2e": "protractor", |
|||
"e2e-live": "protractor --elementExplorer" |
|||
}, |
|||
"keywords": [ |
|||
"react", |
|||
"webpack", |
|||
"babel", |
|||
"minimal", |
|||
"starter" |
|||
], |
|||
"author": "SuperNET Team", |
|||
"license": "MIT", |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://github.com/SuperNETorg/EasyDEX-GUI.git" |
|||
}, |
|||
"dependencies": { |
|||
"babel-core": "^6.14.0", |
|||
"babel-loader": "^6.2.5", |
|||
"babel-preset-es2015": "^6.14.0", |
|||
"babel-preset-react": "^6.11.1", |
|||
"express": "^4.14.0", |
|||
"file-loader": "^0.10.0", |
|||
"react": "^15.3.1", |
|||
"react-dom": "^15.3.1", |
|||
"react-hot-loader": "^1.3.0", |
|||
"react-redux": "^5.0.3", |
|||
"react-router": "^3.0.2", |
|||
"react-router-redux": "^4.0.4", |
|||
"react-transform-catch-errors": "^1.0.2", |
|||
"react-transform-hmr": "^1.0.4", |
|||
"redux": "^3.6.0", |
|||
"redux-logger": "^2.8.2", |
|||
"redux-thunk": "^2.2.0", |
|||
"url-loader": "^0.5.7", |
|||
"whatwg-fetch": "^2.0.3" |
|||
}, |
|||
"devDependencies": { |
|||
"autoprefixer": "^6.5.3", |
|||
"babel-core": "^6.7.2", |
|||
"babel-eslint": "^7.1.0", |
|||
"babel-jest": "^19.0.0", |
|||
"babel-loader": "^6.2.4", |
|||
"babel-plugin-react-transform": "^2.0.2", |
|||
"babel-plugin-syntax-decorators": "^6.13.0", |
|||
"babel-plugin-transform-class-properties": "^6.6.0", |
|||
"babel-plugin-transform-decorators-legacy": "^1.3.4", |
|||
"babel-plugin-transform-object-rest-spread": "^6.6.5", |
|||
"babel-plugin-transform-react-display-name": "^6.5.0", |
|||
"babel-plugin-transform-runtime": "^6.6.0", |
|||
"babel-polyfill": "^6.7.4", |
|||
"babel-preset-es2015": "^6.22.0", |
|||
"babel-preset-es2015-native-modules": "^6.9.4", |
|||
"babel-preset-react": "^6.23.0", |
|||
"babel-preset-react-hmre": "^1.1.1", |
|||
"babel-preset-stage-0": "^6.16.0", |
|||
"babel-runtime": "^6.6.1", |
|||
"css-loader": "^0.26.1", |
|||
"eslint": "^3.15.0", |
|||
"eslint-config-airbnb": "^14.1.0", |
|||
"eslint-plugin-babel": "^3.2.0", |
|||
"eslint-plugin-import": "^2.2.0", |
|||
"eslint-plugin-jsx-a11y": "^4.0.0", |
|||
"eslint-plugin-react": "^6.9.0", |
|||
"extract-text-webpack-plugin": "^2.0.0", |
|||
"file-loader": "^0.9.0", |
|||
"html-webpack-plugin": "^2.24.1", |
|||
"jasmine-spec-reporter": "^2.4.0", |
|||
"jest": "^19.0.2", |
|||
"node-sass": "^4.5.0", |
|||
"postcss-loader": "^1.1.1", |
|||
"protractor": "^4.0.10", |
|||
"react-test-renderer": "^15.4.2", |
|||
"redux-devtools": "^3.3.2", |
|||
"sass-loader": "^5.0.1", |
|||
"style-loader": "^0.13.0", |
|||
"url-loader": "^0.5.7", |
|||
"webpack": "^2.2.1", |
|||
"webpack-dashboard": "^0.2.1", |
|||
"webpack-dev-server": "^2.2.1" |
|||
} |
|||
} |
@ -0,0 +1,32 @@ |
|||
exports.config = { |
|||
//seleniumAddress: 'http://localhost:4444/wd/hub',
|
|||
baseUrl: 'http://localhost:3000/', |
|||
|
|||
specs: ['**/*e2e-spec.js' ], |
|||
exclude: [], |
|||
|
|||
framework: 'jasmine2', |
|||
|
|||
allScriptsTimeout: 110000, |
|||
|
|||
jasmineNodeOpts: { |
|||
showTiming: true, |
|||
showColors: true, |
|||
isVerbose: false, |
|||
includeStackTrace: false, |
|||
defaultTimeoutInterval: 400000 |
|||
}, |
|||
directConnect: true, |
|||
|
|||
capabilities: { |
|||
'browserName': 'chrome' |
|||
}, |
|||
|
|||
onPrepare: function () { |
|||
var SpecReporter = require('jasmine-spec-reporter'); |
|||
// add jasmine spec reporter
|
|||
jasmine.getEnv().addReporter(new SpecReporter({displayStacktrace: true})); |
|||
|
|||
browser.ignoreSynchronization = false; |
|||
} |
|||
}; |
@ -0,0 +1,117 @@ |
|||
import 'whatwg-fetch'; |
|||
import { startCurrencyAssetChain } from '../components/addcoin/payload'; |
|||
import { translate } from '../translate/translate'; |
|||
|
|||
export const TOASTER_MESSAGE = 'TOASTER_MESSAGE'; |
|||
export const DISPLAY_ADDCOIN_MODAL = 'DISPLAY_ADDCOIN_MODAL'; |
|||
|
|||
function triggerToaster(display, message, title, _type) { |
|||
return { |
|||
type: TOASTER_MESSAGE, |
|||
display, |
|||
message, |
|||
title, |
|||
_type, |
|||
} |
|||
} |
|||
|
|||
function toggleAddcoinModalState(display, isLogin) { |
|||
return { |
|||
type: DISPLAY_ADDCOIN_MODAL, |
|||
display: display, |
|||
isLogin: isLogin, |
|||
} |
|||
} |
|||
|
|||
export function toggleAddcoinModal(display, isLogin) { |
|||
return dispatch => { |
|||
dispatch(toggleAddcoinModalState(display, isLogin)); |
|||
} |
|||
} |
|||
|
|||
export function addCoin(coin, mode) { |
|||
console.log('coin, mode', coin + ' ' + mode); |
|||
return dispatch => { |
|||
dispatch(shepherdGetConfig(coin, mode)); |
|||
} |
|||
} |
|||
|
|||
export function iguanaAddCoin(coin, mode, acData) { |
|||
console.log('acData', acData); |
|||
return dispatch => { |
|||
return fetch('http://127.0.0.1:7778', { |
|||
method: 'POST', |
|||
body: JSON.stringify(acData), |
|||
}) |
|||
.catch(function(error) { |
|||
console.log(error); |
|||
dispatch(triggerToaster(true, translate('TOASTR.FAILED_TO_ADDCOIN'), translate('TOASTR.ACCOUNT_NOTIFICATION'), 'error')) |
|||
}) |
|||
.then(response => response.json()) |
|||
.then(json => dispatch(addCoinResult(coin, mode, acData))); |
|||
} |
|||
} |
|||
|
|||
export function shepherdHerd(coin, mode, path) { |
|||
const herdData = { |
|||
'ac_name': coin, |
|||
'ac_options': [ |
|||
'-daemon=0', |
|||
'-server', |
|||
'-ac_name=' + coin, |
|||
'-addnode=78.47.196.146' |
|||
] |
|||
}; |
|||
const acData = startCurrencyAssetChain(path.result, coin, mode); |
|||
|
|||
console.log('herdData', herdData); |
|||
return dispatch => { |
|||
return fetch('http://127.0.0.1:17777/shepherd/herd', { |
|||
method: 'POST', |
|||
headers: { |
|||
'Content-Type': 'application/json', |
|||
}, |
|||
body: JSON.stringify({ |
|||
'herd': coin !== 'zcashd' ? 'komodod' : 'zcashd', |
|||
'options': herdData |
|||
}), |
|||
}) |
|||
.catch(function(error) { |
|||
console.log(error); |
|||
dispatch(triggerToaster(true, translate('FAILED_SHEPHERD_HERD'), translate('TOASTR.SERVICE_NOTIFICATION'), 'error')) |
|||
}) |
|||
.then(response => response.json()) |
|||
.then(json => dispatch(iguanaAddCoin(coin, mode, acData))); |
|||
} |
|||
} |
|||
|
|||
export function addCoinResult(coin, mode) { |
|||
const modeToValue = { |
|||
'full': 1, |
|||
'basilisk': 0, |
|||
'native': -1, |
|||
}; |
|||
|
|||
return dispatch => { |
|||
//dispatch(shepherdGetConfig(coin, mode));
|
|||
dispatch(triggerToaster(true, coin + ' ' + translate('TOASTR.COIN_STARTED') + modeToValue[defaultMode] + ' ' + translate('TOASTR.MODE'), translate('TOASTR.COIN_NOTIFICATION'), 'success')); |
|||
} |
|||
} |
|||
|
|||
export function shepherdGetConfig(coin, mode) { |
|||
return dispatch => { |
|||
return fetch('http://127.0.0.1:17777/shepherd/getconf', { |
|||
method: 'POST', |
|||
headers: { |
|||
'Content-Type': 'application/json', |
|||
}, |
|||
body: JSON.stringify({ 'chain': coin }) |
|||
}) |
|||
.catch(function(error) { |
|||
console.log(error); |
|||
dispatch(triggerToaster(true, 'Failed to get mode config', 'Error', 'error')) |
|||
}) |
|||
.then(response => response.json()) |
|||
.then(json => dispatch(shepherdHerd(coin, mode, json))); |
|||
} |
|||
} |
@ -0,0 +1,23 @@ |
|||
<installerInformation> |
|||
<versionId>1</versionId> |
|||
<version>0.1.5e-beta</version> |
|||
<platformFileList> |
|||
<platformFile> |
|||
<filename>IguanaApp-0.1.5.5e-beta-win32-x64.zip</filename> |
|||
<platform>windows</platform> |
|||
</platformFile> |
|||
<platformFile> |
|||
<filename>IguanaApp-0.1.5.5e-beta-linux-x64.tar.gz</filename> |
|||
<platform>linux</platform> |
|||
</platformFile> |
|||
<platformFile> |
|||
<filename>IguanaApp-0.1.5.5e-beta-osx.app.zip</filename> |
|||
<platform>osx</platform> |
|||
</platformFile> |
|||
</platformFileList> |
|||
<downloadLocationList> |
|||
<downloadLocation> |
|||
<url>https://github.com/SuperNETorg/iguana/releases/tag/v0.1.5.5e-beta/</url> |
|||
</downloadLocation> |
|||
</downloadLocationList> |
|||
</installerInformation> |
@ -0,0 +1,207 @@ |
|||
.wallet-widgets #map { |
|||
height: 100%; |
|||
} |
|||
|
|||
.wallet-widgets #map .marker-active .in-map-markers .wallet-widgets-icon { |
|||
border-color: #5c6bc0; |
|||
} |
|||
|
|||
.wallet-widgets #map .marker-active .in-map-markers .wallet-widgets-icon::before { |
|||
border-color: #5c6bc0 transparent transparent; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers { |
|||
display: inline-block; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers .wallet-widgets-icon { |
|||
position: relative; |
|||
display: inline-block; |
|||
border: 3px solid #3f51b5; |
|||
border-radius: 50%; |
|||
-webkit-transition: .4s ease-in-out all; |
|||
-o-transition: .4s ease-in-out all; |
|||
transition: .4s ease-in-out all; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers .wallet-widgets-icon img { |
|||
width: 62px; |
|||
border-radius: 50%; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers .wallet-widgets-icon::before { |
|||
position: absolute; |
|||
top: 58px; |
|||
left: 10px; |
|||
z-index: -1; |
|||
width: 0; |
|||
height: 0; |
|||
content: ""; |
|||
border-color: #3f51b5 transparent transparent; |
|||
border-style: solid; |
|||
border-width: 17px 21px 0; |
|||
-webkit-transition: .4s ease-in-out all; |
|||
-o-transition: .4s ease-in-out all; |
|||
transition: .4s ease-in-out all; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers .wallet-widgets-icon:hover { |
|||
border-color: #5c6bc0; |
|||
} |
|||
|
|||
.wallet-widgets #map .in-map-markers .wallet-widgets-icon:hover::before { |
|||
border-color: #5c6bc0 transparent transparent; |
|||
} |
|||
|
|||
.page-aside { |
|||
width: 450px; |
|||
background-color: #f3f7f9; |
|||
} |
|||
|
|||
.page-aside + .page-main { |
|||
height: 100%; |
|||
margin-left: 450px !important; |
|||
} |
|||
|
|||
.page-main { |
|||
height: 100%; |
|||
margin-left: 450px !important; |
|||
} |
|||
|
|||
.page-aside-inner { |
|||
height: 100%; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.page-aside-inner .search-wallet-widgets { |
|||
margin-bottom: 15px; |
|||
border-radius: 0; |
|||
} |
|||
|
|||
.page-aside-inner .wallet-widgets-list { |
|||
height: 100%; |
|||
} |
|||
|
|||
.page-aside-inner .wallet-widgets-list-body { |
|||
height: 100%; |
|||
} |
|||
|
|||
.list-group { |
|||
padding-right: 15px; |
|||
margin: 0; |
|||
} |
|||
|
|||
.list-group .col-xxl-6.col-lg-12.friend-info { |
|||
padding: 0; |
|||
padding-left: 15px; |
|||
} |
|||
|
|||
.list-group .avatar { |
|||
width: 62px; |
|||
} |
|||
|
|||
.list-group .card { |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.list-group .card-block { |
|||
-webkit-transition: border .2s linear, color .2s linear, width .2s linear, background-color .2s linear; |
|||
-o-transition: border .2s linear, color .2s linear, width .2s linear, background-color .2s linear; |
|||
transition: border .2s linear, color .2s linear, width .2s linear, background-color .2s linear; |
|||
} |
|||
|
|||
.list-group .card-block:hover { |
|||
cursor: pointer; |
|||
background-color: #eee; |
|||
} |
|||
|
|||
.list-group .list-group-item, |
|||
.list-group .list-group-item:hover { |
|||
background-color: transparent; |
|||
} |
|||
|
|||
.list-inline { |
|||
height: 25px; |
|||
} |
|||
|
|||
.list-inline li a:hover { |
|||
color: #9e9e9e !important; |
|||
text-decoration: none; |
|||
} |
|||
|
|||
.detail { |
|||
background-color: #5c6bc0 !important; |
|||
} |
|||
|
|||
.leaflet-popup-pane:hover h3 { |
|||
color: #5c6bc0 !important; |
|||
} |
|||
|
|||
.marker-cluster-small { |
|||
background-color: rgba(121, 134, 203, .6); |
|||
} |
|||
|
|||
.marker-cluster-small > div { |
|||
background-color: rgba(63, 81, 181, .6); |
|||
} |
|||
|
|||
.marker-cluster-small span { |
|||
color: #fff; |
|||
} |
|||
|
|||
.marker-cluster-medium { |
|||
background-color: rgba(229, 115, 115, .6); |
|||
} |
|||
|
|||
.marker-cluster-medium > div { |
|||
background-color: rgba(244, 67, 54, .6); |
|||
} |
|||
|
|||
.marker-cluster-medium span { |
|||
color: #fff; |
|||
} |
|||
|
|||
@media (max-width: 1199px) { |
|||
.page-aside + .page-main { |
|||
margin-left: 450px !important; |
|||
} |
|||
.page-main, #edex-footer { |
|||
/*margin-left: 450px !important;*/ |
|||
} |
|||
} |
|||
|
|||
@media (max-width: 1599px) { |
|||
.page-aside { |
|||
width: 300px; |
|||
} |
|||
.page-aside .panel-title { |
|||
opacity: 0; |
|||
} |
|||
.page-aside .input-search { |
|||
width: 240px; |
|||
} |
|||
.page-aside + .page-main { |
|||
margin-left: 300px !important; |
|||
} |
|||
.page-main { |
|||
margin-left: 300px !important; |
|||
} |
|||
} |
|||
|
|||
@media (max-width: 767px) { |
|||
.page-aside-inner { |
|||
overflow: hidden !important; |
|||
} |
|||
.page-aside { |
|||
width: 260px; |
|||
} |
|||
.page-aside + .page-main { |
|||
margin-left: 0 !important; |
|||
} |
|||
.page-main, #edex-footer { |
|||
margin-left: 0 !important; |
|||
} |
|||
.page-aside.open { |
|||
width: 300px; |
|||
} |
|||
} |
@ -0,0 +1,33 @@ |
|||
.wallet-widget-header { |
|||
background: rgb(135,224,253); /* Old browsers */ |
|||
background: -moz-radial-gradient(top, ellipse cover, rgba(243, 243, 243, 0.86) 0%,rgba(236, 236, 236, 0.49) 40%,rgb(232, 232, 232) 100%); /* FF3.6-15 */ |
|||
background: -webkit-radial-gradient(top, ellipse cover, rgba(243, 243, 243, 0.86) 0%,rgba(236, 236, 236, 0.49) 40%,rgb(232, 232, 232) 100%); /* Chrome10-25,Safari5.1-6 */ |
|||
background: radial-gradient(ellipse at top, rgba(243, 243, 243, 0.86) 0%,rgba(236, 236, 236, 0.49) 40%,rgb(232, 232, 232) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ |
|||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87e0fd', endColorstr='#05abe0',GradientType=1 ); |
|||
-webkit-box-shadow:0 -4px 27px 0px rgba(0,0,0,0.09); |
|||
box-shadow: 0 -4px 27px 0px rgba(0,0,0,0.09); |
|||
} |
|||
|
|||
.wallet-send-header { |
|||
background: rgb(135,224,253); /* Old browsers */ |
|||
background: -moz-radial-gradient(top, ellipse cover, rgba(255, 134, 74, 0.86) 0%,rgba(218, 117, 67, 0.5) 40%,rgb(255, 61, 32) 100%); /* FF3.6-15 */ |
|||
background: -webkit-radial-gradient(top, ellipse cover, rgba(255, 134, 74, 0.86) 0%,rgba(218, 117, 67, 0.5) 40%,rgb(255, 61, 32) 100%); /* Chrome10-25,Safari5.1-6 */ |
|||
background: radial-gradient(ellipse at top, rgba(255, 134, 74, 0.86) 0%,rgba(218, 117, 67, 0.5) 40%,rgb(255, 61, 32) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ |
|||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff702a', endColorstr='#ff3d20',GradientType=1 ); |
|||
-webkit-box-shadow:0 -4px 27px 0px rgba(0,0,0,0.09); |
|||
box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.32); |
|||
} |
|||
|
|||
.kmd-wallet-header { |
|||
background: url('/assets/images/bg/kmd_transparent_header_bg.png') !important; |
|||
background-repeat: no-repeat !important; |
|||
background-position: 0% !important; |
|||
} |
|||
|
|||
#edex-footer { |
|||
padding: 0 !important; |
|||
} |
|||
|
|||
.header-easydex { |
|||
z-index: 99; |
|||
} |
@ -0,0 +1,8 @@ |
|||
.example-wrap .contextual-progress { |
|||
margin: 7px 0 36px; |
|||
} |
|||
|
|||
.progress { |
|||
margin-bottom: 0; |
|||
border-radius: 0; |
|||
} |
File diff suppressed because one or more lines are too long
@ -0,0 +1,26 @@ |
|||
.toast-example { |
|||
position: static !important; |
|||
margin: 10px 0 30px; |
|||
} |
|||
.toast-example.padding-0 { |
|||
margin-bottom: 30px; |
|||
} |
|||
.toast-example > div { |
|||
width: auto; |
|||
padding-top: 10px; |
|||
padding-bottom: 10px; |
|||
margin-bottom: 0; |
|||
} |
|||
.position-example { |
|||
position: relative; |
|||
height: 330px; |
|||
margin-bottom: 20px; |
|||
} |
|||
.position-example > div { |
|||
position: absolute; |
|||
width: 100%; |
|||
padding: 20px; |
|||
} |
|||
.position-example > .btn-block + .btn-block { |
|||
margin-top: 215px; |
|||
} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,199 @@ |
|||
@font-face { |
|||
font-family: 'Brand Icons'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
|
|||
src: url('brand-icons.eot?v=0.3.3'); |
|||
src: url('brand-icons.eot?#iefix&v=0.3.3') format('embedded-opentype'), url('brand-icons.woff2?v=0.3.3') format('woff2'), url('brand-icons.woff?v=0.3.3') format('woff'), url('brand-icons.ttf?v=0.3.3') format('truetype'), url('brand-icons.svg?v=0.3.3#brand-icons') format('svg'); |
|||
} |
|||
[class^="bd-"], |
|||
[class*=" bd-"] { |
|||
position: relative; |
|||
display: inline-block; |
|||
font-family: 'Brand Icons'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
-webkit-transform: translate(0, 0); |
|||
-ms-transform: translate(0, 0); |
|||
-o-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
|
|||
text-rendering: auto; |
|||
speak: none; |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
.bd-behance:before { |
|||
content: "\f101"; |
|||
} |
|||
.bd-blogger:before { |
|||
content: "\f102"; |
|||
} |
|||
.bd-delicious:before { |
|||
content: "\f103"; |
|||
} |
|||
.bd-deviantart:before { |
|||
content: "\f104"; |
|||
} |
|||
.bd-dribbble:before { |
|||
content: "\f105"; |
|||
} |
|||
.bd-facebook:before { |
|||
content: "\f106"; |
|||
} |
|||
.bd-flickr:before { |
|||
content: "\f107"; |
|||
} |
|||
.bd-foursquare:before { |
|||
content: "\f108"; |
|||
} |
|||
.bd-github:before { |
|||
content: "\f109"; |
|||
} |
|||
.bd-google-plus:before { |
|||
content: "\f10a"; |
|||
} |
|||
.bd-instagram:before { |
|||
content: "\f10b"; |
|||
} |
|||
.bd-lastfm:before { |
|||
content: "\f10c"; |
|||
} |
|||
.bd-linkedin:before { |
|||
content: "\f10d"; |
|||
} |
|||
.bd-pinterest:before { |
|||
content: "\f10e"; |
|||
} |
|||
.bd-quora:before { |
|||
content: "\f10f"; |
|||
} |
|||
.bd-stackoverflow:before { |
|||
content: "\f110"; |
|||
} |
|||
.bd-rdio:before { |
|||
content: "\f111"; |
|||
} |
|||
.bd-reddit:before { |
|||
content: "\f112"; |
|||
} |
|||
.bd-soundcloud:before { |
|||
content: "\f113"; |
|||
} |
|||
.bd-spotify:before { |
|||
content: "\f114"; |
|||
} |
|||
.bd-stumbleupon:before { |
|||
content: "\f115"; |
|||
} |
|||
.bd-tumblr:before { |
|||
content: "\f116"; |
|||
} |
|||
.bd-twitter:before { |
|||
content: "\f117"; |
|||
} |
|||
.bd-viadeo:before { |
|||
content: "\f118"; |
|||
} |
|||
.bd-vimeo:before { |
|||
content: "\f119"; |
|||
} |
|||
.bd-vine:before { |
|||
content: "\f11a"; |
|||
} |
|||
.bd-yelp:before { |
|||
content: "\f11b"; |
|||
} |
|||
.bd-openid:before { |
|||
content: "\f11c"; |
|||
} |
|||
.bd-vk:before { |
|||
content: "\f11d"; |
|||
} |
|||
.bd-yahoo:before { |
|||
content: "\f11e"; |
|||
} |
|||
.bd-xing:before { |
|||
content: "\f11f"; |
|||
} |
|||
.bd-youtube:before { |
|||
content: "\f120"; |
|||
} |
|||
.bd-android:before { |
|||
content: "\f121"; |
|||
} |
|||
.bd-apple:before { |
|||
content: "\f122"; |
|||
} |
|||
.bd-windows:before { |
|||
content: "\f123"; |
|||
} |
|||
.bd-linux:before { |
|||
content: "\f124"; |
|||
} |
|||
.bd-wordpress:before { |
|||
content: "\f125"; |
|||
} |
|||
.bd-drupal:before { |
|||
content: "\f126"; |
|||
} |
|||
.bd-joomla:before { |
|||
content: "\f127"; |
|||
} |
|||
.bd-squarespace:before { |
|||
content: "\f128"; |
|||
} |
|||
.bd-medium:before { |
|||
content: "\f129"; |
|||
} |
|||
.bd-dropbox:before { |
|||
content: "\f12a"; |
|||
} |
|||
.bd-codepen:before { |
|||
content: "\f12b"; |
|||
} |
|||
.bd-jsfiddle:before { |
|||
content: "\f12c"; |
|||
} |
|||
.bd-evernote:before { |
|||
content: "\f12d"; |
|||
} |
|||
.bd-envato:before { |
|||
content: "\f12e"; |
|||
} |
|||
.bd-skype:before { |
|||
content: "\f12f"; |
|||
} |
|||
.bd-paypal:before { |
|||
content: "\f130"; |
|||
} |
|||
.bd-feed:before { |
|||
content: "\f131"; |
|||
} |
|||
.bd-html5:before { |
|||
content: "\f132"; |
|||
} |
|||
.bd-css3:before { |
|||
content: "\f133"; |
|||
} |
|||
.bd-angular:before { |
|||
content: "\f134"; |
|||
} |
|||
.bd-webchat:before { |
|||
content: "\f135"; |
|||
} |
|||
.bd-qq:before { |
|||
content: "\f136"; |
|||
} |
|||
.bd-zhihu:before { |
|||
content: "\f137"; |
|||
} |
|||
.bd-weibo:before { |
|||
content: "\f138"; |
|||
} |
|||
.bd-douban:before { |
|||
content: "\f139"; |
|||
} |
|||
.bd-baidu:before { |
|||
content: "\f13a"; |
|||
} |
Binary file not shown.
@ -0,0 +1 @@ |
|||
@font-face{font-family:'Brand Icons';font-style:normal;font-weight:400;src:url(brand-icons.eot?v=0.3.3);src:url(brand-icons.eot?#iefix&v=0.3.3) format('embedded-opentype'),url(brand-icons.woff2?v=0.3.3) format('woff2'),url(brand-icons.woff?v=0.3.3) format('woff'),url(brand-icons.ttf?v=0.3.3) format('truetype'),url(brand-icons.svg?v=0.3.3#brand-icons) format('svg')}[class*=" bd-"],[class^=bd-]{position:relative;display:inline-block;font-family:'Brand Icons';font-style:normal;font-weight:400;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0);text-rendering:auto;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bd-behance:before{content:"\f101"}.bd-blogger:before{content:"\f102"}.bd-delicious:before{content:"\f103"}.bd-deviantart:before{content:"\f104"}.bd-dribbble:before{content:"\f105"}.bd-facebook:before{content:"\f106"}.bd-flickr:before{content:"\f107"}.bd-foursquare:before{content:"\f108"}.bd-github:before{content:"\f109"}.bd-google-plus:before{content:"\f10a"}.bd-instagram:before{content:"\f10b"}.bd-lastfm:before{content:"\f10c"}.bd-linkedin:before{content:"\f10d"}.bd-pinterest:before{content:"\f10e"}.bd-quora:before{content:"\f10f"}.bd-stackoverflow:before{content:"\f110"}.bd-rdio:before{content:"\f111"}.bd-reddit:before{content:"\f112"}.bd-soundcloud:before{content:"\f113"}.bd-spotify:before{content:"\f114"}.bd-stumbleupon:before{content:"\f115"}.bd-tumblr:before{content:"\f116"}.bd-twitter:before{content:"\f117"}.bd-viadeo:before{content:"\f118"}.bd-vimeo:before{content:"\f119"}.bd-vine:before{content:"\f11a"}.bd-yelp:before{content:"\f11b"}.bd-openid:before{content:"\f11c"}.bd-vk:before{content:"\f11d"}.bd-yahoo:before{content:"\f11e"}.bd-xing:before{content:"\f11f"}.bd-youtube:before{content:"\f120"}.bd-android:before{content:"\f121"}.bd-apple:before{content:"\f122"}.bd-windows:before{content:"\f123"}.bd-linux:before{content:"\f124"}.bd-wordpress:before{content:"\f125"}.bd-drupal:before{content:"\f126"}.bd-joomla:before{content:"\f127"}.bd-squarespace:before{content:"\f128"}.bd-medium:before{content:"\f129"}.bd-dropbox:before{content:"\f12a"}.bd-codepen:before{content:"\f12b"}.bd-jsfiddle:before{content:"\f12c"}.bd-evernote:before{content:"\f12d"}.bd-envato:before{content:"\f12e"}.bd-skype:before{content:"\f12f"}.bd-paypal:before{content:"\f130"}.bd-feed:before{content:"\f131"}.bd-html5:before{content:"\f132"}.bd-css3:before{content:"\f133"}.bd-angular:before{content:"\f134"}.bd-webchat:before{content:"\f135"}.bd-qq:before{content:"\f136"}.bd-zhihu:before{content:"\f137"}.bd-weibo:before{content:"\f138"}.bd-douban:before{content:"\f139"}.bd-baidu:before{content:"\f13a"} |
After Width: | Height: | Size: 34 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 377 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 106 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,822 @@ |
|||
[class^="glyphicon-"], |
|||
[class*=" glyphicon-"] { |
|||
position: relative; |
|||
display: inline-block; |
|||
font-family: 'Glyphicons Halflings'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
-webkit-transform: translate(0, 0); |
|||
-ms-transform: translate(0, 0); |
|||
-o-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
|
|||
text-rendering: auto; |
|||
speak: none; |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
@font-face { |
|||
font-family: 'Glyphicons Halflings'; |
|||
|
|||
src: url('glyphicons-halflings-regular.eot'); |
|||
src: url('glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('glyphicons-halflings-regular.woff2') format('woff2'), url('glyphicons-halflings-regular.woff') format('woff'), url('glyphicons-halflings-regular.ttf') format('truetype'), url('glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); |
|||
} |
|||
.glyphicon { |
|||
position: relative; |
|||
top: 1px; |
|||
display: inline-block; |
|||
font-family: 'Glyphicons Halflings'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
line-height: 1; |
|||
|
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
.glyphicon-asterisk:before { |
|||
content: "\002a"; |
|||
} |
|||
.glyphicon-plus:before { |
|||
content: "\002b"; |
|||
} |
|||
.glyphicon-euro:before, |
|||
.glyphicon-eur:before { |
|||
content: "\20ac"; |
|||
} |
|||
.glyphicon-minus:before { |
|||
content: "\2212"; |
|||
} |
|||
.glyphicon-cloud:before { |
|||
content: "\2601"; |
|||
} |
|||
.glyphicon-envelope:before { |
|||
content: "\2709"; |
|||
} |
|||
.glyphicon-pencil:before { |
|||
content: "\270f"; |
|||
} |
|||
.glyphicon-glass:before { |
|||
content: "\e001"; |
|||
} |
|||
.glyphicon-music:before { |
|||
content: "\e002"; |
|||
} |
|||
.glyphicon-search:before { |
|||
content: "\e003"; |
|||
} |
|||
.glyphicon-heart:before { |
|||
content: "\e005"; |
|||
} |
|||
.glyphicon-star:before { |
|||
content: "\e006"; |
|||
} |
|||
.glyphicon-star-empty:before { |
|||
content: "\e007"; |
|||
} |
|||
.glyphicon-user:before { |
|||
content: "\e008"; |
|||
} |
|||
.glyphicon-film:before { |
|||
content: "\e009"; |
|||
} |
|||
.glyphicon-th-large:before { |
|||
content: "\e010"; |
|||
} |
|||
.glyphicon-th:before { |
|||
content: "\e011"; |
|||
} |
|||
.glyphicon-th-list:before { |
|||
content: "\e012"; |
|||
} |
|||
.glyphicon-ok:before { |
|||
content: "\e013"; |
|||
} |
|||
.glyphicon-remove:before { |
|||
content: "\e014"; |
|||
} |
|||
.glyphicon-zoom-in:before { |
|||
content: "\e015"; |
|||
} |
|||
.glyphicon-zoom-out:before { |
|||
content: "\e016"; |
|||
} |
|||
.glyphicon-off:before { |
|||
content: "\e017"; |
|||
} |
|||
.glyphicon-signal:before { |
|||
content: "\e018"; |
|||
} |
|||
.glyphicon-cog:before { |
|||
content: "\e019"; |
|||
} |
|||
.glyphicon-trash:before { |
|||
content: "\e020"; |
|||
} |
|||
.glyphicon-home:before { |
|||
content: "\e021"; |
|||
} |
|||
.glyphicon-file:before { |
|||
content: "\e022"; |
|||
} |
|||
.glyphicon-time:before { |
|||
content: "\e023"; |
|||
} |
|||
.glyphicon-road:before { |
|||
content: "\e024"; |
|||
} |
|||
.glyphicon-download-alt:before { |
|||
content: "\e025"; |
|||
} |
|||
.glyphicon-download:before { |
|||
content: "\e026"; |
|||
} |
|||
.glyphicon-upload:before { |
|||
content: "\e027"; |
|||
} |
|||
.glyphicon-inbox:before { |
|||
content: "\e028"; |
|||
} |
|||
.glyphicon-play-circle:before { |
|||
content: "\e029"; |
|||
} |
|||
.glyphicon-repeat:before { |
|||
content: "\e030"; |
|||
} |
|||
.glyphicon-refresh:before { |
|||
content: "\e031"; |
|||
} |
|||
.glyphicon-list-alt:before { |
|||
content: "\e032"; |
|||
} |
|||
.glyphicon-lock:before { |
|||
content: "\e033"; |
|||
} |
|||
.glyphicon-flag:before { |
|||
content: "\e034"; |
|||
} |
|||
.glyphicon-headphones:before { |
|||
content: "\e035"; |
|||
} |
|||
.glyphicon-volume-off:before { |
|||
content: "\e036"; |
|||
} |
|||
.glyphicon-volume-down:before { |
|||
content: "\e037"; |
|||
} |
|||
.glyphicon-volume-up:before { |
|||
content: "\e038"; |
|||
} |
|||
.glyphicon-qrcode:before { |
|||
content: "\e039"; |
|||
} |
|||
.glyphicon-barcode:before { |
|||
content: "\e040"; |
|||
} |
|||
.glyphicon-tag:before { |
|||
content: "\e041"; |
|||
} |
|||
.glyphicon-tags:before { |
|||
content: "\e042"; |
|||
} |
|||
.glyphicon-book:before { |
|||
content: "\e043"; |
|||
} |
|||
.glyphicon-bookmark:before { |
|||
content: "\e044"; |
|||
} |
|||
.glyphicon-print:before { |
|||
content: "\e045"; |
|||
} |
|||
.glyphicon-camera:before { |
|||
content: "\e046"; |
|||
} |
|||
.glyphicon-font:before { |
|||
content: "\e047"; |
|||
} |
|||
.glyphicon-bold:before { |
|||
content: "\e048"; |
|||
} |
|||
.glyphicon-italic:before { |
|||
content: "\e049"; |
|||
} |
|||
.glyphicon-text-height:before { |
|||
content: "\e050"; |
|||
} |
|||
.glyphicon-text-width:before { |
|||
content: "\e051"; |
|||
} |
|||
.glyphicon-align-left:before { |
|||
content: "\e052"; |
|||
} |
|||
.glyphicon-align-center:before { |
|||
content: "\e053"; |
|||
} |
|||
.glyphicon-align-right:before { |
|||
content: "\e054"; |
|||
} |
|||
.glyphicon-align-justify:before { |
|||
content: "\e055"; |
|||
} |
|||
.glyphicon-list:before { |
|||
content: "\e056"; |
|||
} |
|||
.glyphicon-indent-left:before { |
|||
content: "\e057"; |
|||
} |
|||
.glyphicon-indent-right:before { |
|||
content: "\e058"; |
|||
} |
|||
.glyphicon-facetime-video:before { |
|||
content: "\e059"; |
|||
} |
|||
.glyphicon-picture:before { |
|||
content: "\e060"; |
|||
} |
|||
.glyphicon-map-marker:before { |
|||
content: "\e062"; |
|||
} |
|||
.glyphicon-adjust:before { |
|||
content: "\e063"; |
|||
} |
|||
.glyphicon-tint:before { |
|||
content: "\e064"; |
|||
} |
|||
.glyphicon-edit:before { |
|||
content: "\e065"; |
|||
} |
|||
.glyphicon-share:before { |
|||
content: "\e066"; |
|||
} |
|||
.glyphicon-check:before { |
|||
content: "\e067"; |
|||
} |
|||
.glyphicon-move:before { |
|||
content: "\e068"; |
|||
} |
|||
.glyphicon-step-backward:before { |
|||
content: "\e069"; |
|||
} |
|||
.glyphicon-fast-backward:before { |
|||
content: "\e070"; |
|||
} |
|||
.glyphicon-backward:before { |
|||
content: "\e071"; |
|||
} |
|||
.glyphicon-play:before { |
|||
content: "\e072"; |
|||
} |
|||
.glyphicon-pause:before { |
|||
content: "\e073"; |
|||
} |
|||
.glyphicon-stop:before { |
|||
content: "\e074"; |
|||
} |
|||
.glyphicon-forward:before { |
|||
content: "\e075"; |
|||
} |
|||
.glyphicon-fast-forward:before { |
|||
content: "\e076"; |
|||
} |
|||
.glyphicon-step-forward:before { |
|||
content: "\e077"; |
|||
} |
|||
.glyphicon-eject:before { |
|||
content: "\e078"; |
|||
} |
|||
.glyphicon-chevron-left:before { |
|||
content: "\e079"; |
|||
} |
|||
.glyphicon-chevron-right:before { |
|||
content: "\e080"; |
|||
} |
|||
.glyphicon-plus-sign:before { |
|||
content: "\e081"; |
|||
} |
|||
.glyphicon-minus-sign:before { |
|||
content: "\e082"; |
|||
} |
|||
.glyphicon-remove-sign:before { |
|||
content: "\e083"; |
|||
} |
|||
.glyphicon-ok-sign:before { |
|||
content: "\e084"; |
|||
} |
|||
.glyphicon-question-sign:before { |
|||
content: "\e085"; |
|||
} |
|||
.glyphicon-info-sign:before { |
|||
content: "\e086"; |
|||
} |
|||
.glyphicon-screenshot:before { |
|||
content: "\e087"; |
|||
} |
|||
.glyphicon-remove-circle:before { |
|||
content: "\e088"; |
|||
} |
|||
.glyphicon-ok-circle:before { |
|||
content: "\e089"; |
|||
} |
|||
.glyphicon-ban-circle:before { |
|||
content: "\e090"; |
|||
} |
|||
.glyphicon-arrow-left:before { |
|||
content: "\e091"; |
|||
} |
|||
.glyphicon-arrow-right:before { |
|||
content: "\e092"; |
|||
} |
|||
.glyphicon-arrow-up:before { |
|||
content: "\e093"; |
|||
} |
|||
.glyphicon-arrow-down:before { |
|||
content: "\e094"; |
|||
} |
|||
.glyphicon-share-alt:before { |
|||
content: "\e095"; |
|||
} |
|||
.glyphicon-resize-full:before { |
|||
content: "\e096"; |
|||
} |
|||
.glyphicon-resize-small:before { |
|||
content: "\e097"; |
|||
} |
|||
.glyphicon-exclamation-sign:before { |
|||
content: "\e101"; |
|||
} |
|||
.glyphicon-gift:before { |
|||
content: "\e102"; |
|||
} |
|||
.glyphicon-leaf:before { |
|||
content: "\e103"; |
|||
} |
|||
.glyphicon-fire:before { |
|||
content: "\e104"; |
|||
} |
|||
.glyphicon-eye-open:before { |
|||
content: "\e105"; |
|||
} |
|||
.glyphicon-eye-close:before { |
|||
content: "\e106"; |
|||
} |
|||
.glyphicon-warning-sign:before { |
|||
content: "\e107"; |
|||
} |
|||
.glyphicon-plane:before { |
|||
content: "\e108"; |
|||
} |
|||
.glyphicon-calendar:before { |
|||
content: "\e109"; |
|||
} |
|||
.glyphicon-random:before { |
|||
content: "\e110"; |
|||
} |
|||
.glyphicon-comment:before { |
|||
content: "\e111"; |
|||
} |
|||
.glyphicon-magnet:before { |
|||
content: "\e112"; |
|||
} |
|||
.glyphicon-chevron-up:before { |
|||
content: "\e113"; |
|||
} |
|||
.glyphicon-chevron-down:before { |
|||
content: "\e114"; |
|||
} |
|||
.glyphicon-retweet:before { |
|||
content: "\e115"; |
|||
} |
|||
.glyphicon-shopping-cart:before { |
|||
content: "\e116"; |
|||
} |
|||
.glyphicon-folder-close:before { |
|||
content: "\e117"; |
|||
} |
|||
.glyphicon-folder-open:before { |
|||
content: "\e118"; |
|||
} |
|||
.glyphicon-resize-vertical:before { |
|||
content: "\e119"; |
|||
} |
|||
.glyphicon-resize-horizontal:before { |
|||
content: "\e120"; |
|||
} |
|||
.glyphicon-hdd:before { |
|||
content: "\e121"; |
|||
} |
|||
.glyphicon-bullhorn:before { |
|||
content: "\e122"; |
|||
} |
|||
.glyphicon-bell:before { |
|||
content: "\e123"; |
|||
} |
|||
.glyphicon-certificate:before { |
|||
content: "\e124"; |
|||
} |
|||
.glyphicon-thumbs-up:before { |
|||
content: "\e125"; |
|||
} |
|||
.glyphicon-thumbs-down:before { |
|||
content: "\e126"; |
|||
} |
|||
.glyphicon-hand-right:before { |
|||
content: "\e127"; |
|||
} |
|||
.glyphicon-hand-left:before { |
|||
content: "\e128"; |
|||
} |
|||
.glyphicon-hand-up:before { |
|||
content: "\e129"; |
|||
} |
|||
.glyphicon-hand-down:before { |
|||
content: "\e130"; |
|||
} |
|||
.glyphicon-circle-arrow-right:before { |
|||
content: "\e131"; |
|||
} |
|||
.glyphicon-circle-arrow-left:before { |
|||
content: "\e132"; |
|||
} |
|||
.glyphicon-circle-arrow-up:before { |
|||
content: "\e133"; |
|||
} |
|||
.glyphicon-circle-arrow-down:before { |
|||
content: "\e134"; |
|||
} |
|||
.glyphicon-globe:before { |
|||
content: "\e135"; |
|||
} |
|||
.glyphicon-wrench:before { |
|||
content: "\e136"; |
|||
} |
|||
.glyphicon-tasks:before { |
|||
content: "\e137"; |
|||
} |
|||
.glyphicon-filter:before { |
|||
content: "\e138"; |
|||
} |
|||
.glyphicon-briefcase:before { |
|||
content: "\e139"; |
|||
} |
|||
.glyphicon-fullscreen:before { |
|||
content: "\e140"; |
|||
} |
|||
.glyphicon-dashboard:before { |
|||
content: "\e141"; |
|||
} |
|||
.glyphicon-paperclip:before { |
|||
content: "\e142"; |
|||
} |
|||
.glyphicon-heart-empty:before { |
|||
content: "\e143"; |
|||
} |
|||
.glyphicon-link:before { |
|||
content: "\e144"; |
|||
} |
|||
.glyphicon-phone:before { |
|||
content: "\e145"; |
|||
} |
|||
.glyphicon-pushpin:before { |
|||
content: "\e146"; |
|||
} |
|||
.glyphicon-usd:before { |
|||
content: "\e148"; |
|||
} |
|||
.glyphicon-gbp:before { |
|||
content: "\e149"; |
|||
} |
|||
.glyphicon-sort:before { |
|||
content: "\e150"; |
|||
} |
|||
.glyphicon-sort-by-alphabet:before { |
|||
content: "\e151"; |
|||
} |
|||
.glyphicon-sort-by-alphabet-alt:before { |
|||
content: "\e152"; |
|||
} |
|||
.glyphicon-sort-by-order:before { |
|||
content: "\e153"; |
|||
} |
|||
.glyphicon-sort-by-order-alt:before { |
|||
content: "\e154"; |
|||
} |
|||
.glyphicon-sort-by-attributes:before { |
|||
content: "\e155"; |
|||
} |
|||
.glyphicon-sort-by-attributes-alt:before { |
|||
content: "\e156"; |
|||
} |
|||
.glyphicon-unchecked:before { |
|||
content: "\e157"; |
|||
} |
|||
.glyphicon-expand:before { |
|||
content: "\e158"; |
|||
} |
|||
.glyphicon-collapse-down:before { |
|||
content: "\e159"; |
|||
} |
|||
.glyphicon-collapse-up:before { |
|||
content: "\e160"; |
|||
} |
|||
.glyphicon-log-in:before { |
|||
content: "\e161"; |
|||
} |
|||
.glyphicon-flash:before { |
|||
content: "\e162"; |
|||
} |
|||
.glyphicon-log-out:before { |
|||
content: "\e163"; |
|||
} |
|||
.glyphicon-new-window:before { |
|||
content: "\e164"; |
|||
} |
|||
.glyphicon-record:before { |
|||
content: "\e165"; |
|||
} |
|||
.glyphicon-save:before { |
|||
content: "\e166"; |
|||
} |
|||
.glyphicon-open:before { |
|||
content: "\e167"; |
|||
} |
|||
.glyphicon-saved:before { |
|||
content: "\e168"; |
|||
} |
|||
.glyphicon-import:before { |
|||
content: "\e169"; |
|||
} |
|||
.glyphicon-export:before { |
|||
content: "\e170"; |
|||
} |
|||
.glyphicon-send:before { |
|||
content: "\e171"; |
|||
} |
|||
.glyphicon-floppy-disk:before { |
|||
content: "\e172"; |
|||
} |
|||
.glyphicon-floppy-saved:before { |
|||
content: "\e173"; |
|||
} |
|||
.glyphicon-floppy-remove:before { |
|||
content: "\e174"; |
|||
} |
|||
.glyphicon-floppy-save:before { |
|||
content: "\e175"; |
|||
} |
|||
.glyphicon-floppy-open:before { |
|||
content: "\e176"; |
|||
} |
|||
.glyphicon-credit-card:before { |
|||
content: "\e177"; |
|||
} |
|||
.glyphicon-transfer:before { |
|||
content: "\e178"; |
|||
} |
|||
.glyphicon-cutlery:before { |
|||
content: "\e179"; |
|||
} |
|||
.glyphicon-header:before { |
|||
content: "\e180"; |
|||
} |
|||
.glyphicon-compressed:before { |
|||
content: "\e181"; |
|||
} |
|||
.glyphicon-earphone:before { |
|||
content: "\e182"; |
|||
} |
|||
.glyphicon-phone-alt:before { |
|||
content: "\e183"; |
|||
} |
|||
.glyphicon-tower:before { |
|||
content: "\e184"; |
|||
} |
|||
.glyphicon-stats:before { |
|||
content: "\e185"; |
|||
} |
|||
.glyphicon-sd-video:before { |
|||
content: "\e186"; |
|||
} |
|||
.glyphicon-hd-video:before { |
|||
content: "\e187"; |
|||
} |
|||
.glyphicon-subtitles:before { |
|||
content: "\e188"; |
|||
} |
|||
.glyphicon-sound-stereo:before { |
|||
content: "\e189"; |
|||
} |
|||
.glyphicon-sound-dolby:before { |
|||
content: "\e190"; |
|||
} |
|||
.glyphicon-sound-5-1:before { |
|||
content: "\e191"; |
|||
} |
|||
.glyphicon-sound-6-1:before { |
|||
content: "\e192"; |
|||
} |
|||
.glyphicon-sound-7-1:before { |
|||
content: "\e193"; |
|||
} |
|||
.glyphicon-copyright-mark:before { |
|||
content: "\e194"; |
|||
} |
|||
.glyphicon-registration-mark:before { |
|||
content: "\e195"; |
|||
} |
|||
.glyphicon-cloud-download:before { |
|||
content: "\e197"; |
|||
} |
|||
.glyphicon-cloud-upload:before { |
|||
content: "\e198"; |
|||
} |
|||
.glyphicon-tree-conifer:before { |
|||
content: "\e199"; |
|||
} |
|||
.glyphicon-tree-deciduous:before { |
|||
content: "\e200"; |
|||
} |
|||
.glyphicon-cd:before { |
|||
content: "\e201"; |
|||
} |
|||
.glyphicon-save-file:before { |
|||
content: "\e202"; |
|||
} |
|||
.glyphicon-open-file:before { |
|||
content: "\e203"; |
|||
} |
|||
.glyphicon-level-up:before { |
|||
content: "\e204"; |
|||
} |
|||
.glyphicon-copy:before { |
|||
content: "\e205"; |
|||
} |
|||
.glyphicon-paste:before { |
|||
content: "\e206"; |
|||
} |
|||
.glyphicon-alert:before { |
|||
content: "\e209"; |
|||
} |
|||
.glyphicon-equalizer:before { |
|||
content: "\e210"; |
|||
} |
|||
.glyphicon-king:before { |
|||
content: "\e211"; |
|||
} |
|||
.glyphicon-queen:before { |
|||
content: "\e212"; |
|||
} |
|||
.glyphicon-pawn:before { |
|||
content: "\e213"; |
|||
} |
|||
.glyphicon-bishop:before { |
|||
content: "\e214"; |
|||
} |
|||
.glyphicon-knight:before { |
|||
content: "\e215"; |
|||
} |
|||
.glyphicon-baby-formula:before { |
|||
content: "\e216"; |
|||
} |
|||
.glyphicon-tent:before { |
|||
content: "\26fa"; |
|||
} |
|||
.glyphicon-blackboard:before { |
|||
content: "\e218"; |
|||
} |
|||
.glyphicon-bed:before { |
|||
content: "\e219"; |
|||
} |
|||
.glyphicon-apple:before { |
|||
content: "\f8ff"; |
|||
} |
|||
.glyphicon-erase:before { |
|||
content: "\e221"; |
|||
} |
|||
.glyphicon-hourglass:before { |
|||
content: "\231b"; |
|||
} |
|||
.glyphicon-lamp:before { |
|||
content: "\e223"; |
|||
} |
|||
.glyphicon-duplicate:before { |
|||
content: "\e224"; |
|||
} |
|||
.glyphicon-piggy-bank:before { |
|||
content: "\e225"; |
|||
} |
|||
.glyphicon-scissors:before { |
|||
content: "\e226"; |
|||
} |
|||
.glyphicon-bitcoin:before { |
|||
content: "\e227"; |
|||
} |
|||
.glyphicon-btc:before { |
|||
content: "\e227"; |
|||
} |
|||
.glyphicon-xbt:before { |
|||
content: "\e227"; |
|||
} |
|||
.glyphicon-yen:before { |
|||
content: "\00a5"; |
|||
} |
|||
.glyphicon-jpy:before { |
|||
content: "\00a5"; |
|||
} |
|||
.glyphicon-ruble:before { |
|||
content: "\20bd"; |
|||
} |
|||
.glyphicon-rub:before { |
|||
content: "\20bd"; |
|||
} |
|||
.glyphicon-scale:before { |
|||
content: "\e230"; |
|||
} |
|||
.glyphicon-ice-lolly:before { |
|||
content: "\e231"; |
|||
} |
|||
.glyphicon-ice-lolly-tasted:before { |
|||
content: "\e232"; |
|||
} |
|||
.glyphicon-education:before { |
|||
content: "\e233"; |
|||
} |
|||
.glyphicon-option-horizontal:before { |
|||
content: "\e234"; |
|||
} |
|||
.glyphicon-option-vertical:before { |
|||
content: "\e235"; |
|||
} |
|||
.glyphicon-menu-hamburger:before { |
|||
content: "\e236"; |
|||
} |
|||
.glyphicon-modal-window:before { |
|||
content: "\e237"; |
|||
} |
|||
.glyphicon-oil:before { |
|||
content: "\e238"; |
|||
} |
|||
.glyphicon-grain:before { |
|||
content: "\e239"; |
|||
} |
|||
.glyphicon-sunglasses:before { |
|||
content: "\e240"; |
|||
} |
|||
.glyphicon-text-size:before { |
|||
content: "\e241"; |
|||
} |
|||
.glyphicon-text-color:before { |
|||
content: "\e242"; |
|||
} |
|||
.glyphicon-text-background:before { |
|||
content: "\e243"; |
|||
} |
|||
.glyphicon-object-align-top:before { |
|||
content: "\e244"; |
|||
} |
|||
.glyphicon-object-align-bottom:before { |
|||
content: "\e245"; |
|||
} |
|||
.glyphicon-object-align-horizontal:before { |
|||
content: "\e246"; |
|||
} |
|||
.glyphicon-object-align-left:before { |
|||
content: "\e247"; |
|||
} |
|||
.glyphicon-object-align-vertical:before { |
|||
content: "\e248"; |
|||
} |
|||
.glyphicon-object-align-right:before { |
|||
content: "\e249"; |
|||
} |
|||
.glyphicon-triangle-right:before { |
|||
content: "\e250"; |
|||
} |
|||
.glyphicon-triangle-left:before { |
|||
content: "\e251"; |
|||
} |
|||
.glyphicon-triangle-bottom:before { |
|||
content: "\e252"; |
|||
} |
|||
.glyphicon-triangle-top:before { |
|||
content: "\e253"; |
|||
} |
|||
.glyphicon-console:before { |
|||
content: "\e254"; |
|||
} |
|||
.glyphicon-superscript:before { |
|||
content: "\e255"; |
|||
} |
|||
.glyphicon-subscript:before { |
|||
content: "\e256"; |
|||
} |
|||
.glyphicon-menu-left:before { |
|||
content: "\e257"; |
|||
} |
|||
.glyphicon-menu-right:before { |
|||
content: "\e258"; |
|||
} |
|||
.glyphicon-menu-down:before { |
|||
content: "\e259"; |
|||
} |
|||
.glyphicon-menu-up:before { |
|||
content: "\e260"; |
|||
} |
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 233 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
@ -0,0 +1,535 @@ |
|||
@font-face { |
|||
font-family: 'Web Icons'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
|
|||
src: url('web-icons.eot?v=0.2.3'); |
|||
src: url('web-icons.eot?#iefix&v=0.2.3') format('embedded-opentype'), url('web-icons.woff2?v=0.2.3') format('woff2'), url('web-icons.woff?v=0.2.3') format('woff'), url('web-icons.ttf?v=0.2.3') format('truetype'), url('web-icons.svg?v=0.2.3#web-icons') format('svg'); |
|||
} |
|||
[class^="wb-"], |
|||
[class*=" wb-"] { |
|||
position: relative; |
|||
display: inline-block; |
|||
font-family: 'Web Icons'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
-webkit-transform: translate(0, 0); |
|||
-ms-transform: translate(0, 0); |
|||
-o-transform: translate(0, 0); |
|||
transform: translate(0, 0); |
|||
|
|||
text-rendering: auto; |
|||
speak: none; |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
.wb-dashboard:before { |
|||
content: "\f101"; |
|||
} |
|||
.wb-inbox:before { |
|||
content: "\f102"; |
|||
} |
|||
.wb-cloud:before { |
|||
content: "\f103"; |
|||
} |
|||
.wb-bell:before { |
|||
content: "\f104"; |
|||
} |
|||
.wb-book:before { |
|||
content: "\f105"; |
|||
} |
|||
.wb-bookmark:before { |
|||
content: "\f106"; |
|||
} |
|||
.wb-tag:before { |
|||
content: "\f107"; |
|||
} |
|||
.wb-library:before { |
|||
content: "\f108"; |
|||
} |
|||
.wb-share:before { |
|||
content: "\f109"; |
|||
} |
|||
.wb-reply:before { |
|||
content: "\f10a"; |
|||
} |
|||
.wb-refresh:before { |
|||
content: "\f10b"; |
|||
} |
|||
.wb-move:before { |
|||
content: "\f10c"; |
|||
} |
|||
.wb-chat:before { |
|||
content: "\f10d"; |
|||
} |
|||
.wb-chat-working:before { |
|||
content: "\f10e"; |
|||
} |
|||
.wb-chat-text:before { |
|||
content: "\f10f"; |
|||
} |
|||
.wb-chat-group:before { |
|||
content: "\f110"; |
|||
} |
|||
.wb-envelope:before { |
|||
content: "\f111"; |
|||
} |
|||
.wb-envelope-open:before { |
|||
content: "\f112"; |
|||
} |
|||
.wb-user:before { |
|||
content: "\f113"; |
|||
} |
|||
.wb-user-circle:before { |
|||
content: "\f114"; |
|||
} |
|||
.wb-users:before { |
|||
content: "\f115"; |
|||
} |
|||
.wb-user-add:before { |
|||
content: "\f116"; |
|||
} |
|||
.wb-grid-9:before { |
|||
content: "\f117"; |
|||
} |
|||
.wb-grid-4:before { |
|||
content: "\f118"; |
|||
} |
|||
.wb-menu:before { |
|||
content: "\f119"; |
|||
} |
|||
.wb-layout:before { |
|||
content: "\f11a"; |
|||
} |
|||
.wb-fullscreen:before { |
|||
content: "\f11b"; |
|||
} |
|||
.wb-fullscreen-exit:before { |
|||
content: "\f11c"; |
|||
} |
|||
.wb-expand:before { |
|||
content: "\f11d"; |
|||
} |
|||
.wb-contract:before { |
|||
content: "\f11e"; |
|||
} |
|||
.wb-arrow-expand:before { |
|||
content: "\f11f"; |
|||
} |
|||
.wb-arrow-shrink:before { |
|||
content: "\f120"; |
|||
} |
|||
.wb-desktop:before { |
|||
content: "\f121"; |
|||
} |
|||
.wb-mobile:before { |
|||
content: "\f122"; |
|||
} |
|||
.wb-signal:before { |
|||
content: "\f123"; |
|||
} |
|||
.wb-power:before { |
|||
content: "\f124"; |
|||
} |
|||
.wb-more-horizontal:before { |
|||
content: "\f125"; |
|||
} |
|||
.wb-more-vertical:before { |
|||
content: "\f126"; |
|||
} |
|||
.wb-globe:before { |
|||
content: "\f127"; |
|||
} |
|||
.wb-map:before { |
|||
content: "\f128"; |
|||
} |
|||
.wb-flag:before { |
|||
content: "\f129"; |
|||
} |
|||
.wb-pie-chart:before { |
|||
content: "\f12a"; |
|||
} |
|||
.wb-stats-bars:before { |
|||
content: "\f12b"; |
|||
} |
|||
.wb-pluse:before { |
|||
content: "\f12c"; |
|||
} |
|||
.wb-home:before { |
|||
content: "\f12d"; |
|||
} |
|||
.wb-shopping-cart:before { |
|||
content: "\f12e"; |
|||
} |
|||
.wb-payment:before { |
|||
content: "\f12f"; |
|||
} |
|||
.wb-briefcase:before { |
|||
content: "\f130"; |
|||
} |
|||
.wb-search:before { |
|||
content: "\f131"; |
|||
} |
|||
.wb-zoom-in:before { |
|||
content: "\f132"; |
|||
} |
|||
.wb-zoom-out:before { |
|||
content: "\f133"; |
|||
} |
|||
.wb-download:before { |
|||
content: "\f134"; |
|||
} |
|||
.wb-upload:before { |
|||
content: "\f135"; |
|||
} |
|||
.wb-sort-asc:before { |
|||
content: "\f136"; |
|||
} |
|||
.wb-sort-des:before { |
|||
content: "\f137"; |
|||
} |
|||
.wb-graph-up:before { |
|||
content: "\f138"; |
|||
} |
|||
.wb-graph-down:before { |
|||
content: "\f139"; |
|||
} |
|||
.wb-replay:before { |
|||
content: "\f13a"; |
|||
} |
|||
.wb-edit:before { |
|||
content: "\f13b"; |
|||
} |
|||
.wb-pencil:before { |
|||
content: "\f13c"; |
|||
} |
|||
.wb-rubber:before { |
|||
content: "\f13d"; |
|||
} |
|||
.wb-crop:before { |
|||
content: "\f13e"; |
|||
} |
|||
.wb-eye:before { |
|||
content: "\f13f"; |
|||
} |
|||
.wb-eye-close:before { |
|||
content: "\f140"; |
|||
} |
|||
.wb-image:before { |
|||
content: "\f141"; |
|||
} |
|||
.wb-gallery:before { |
|||
content: "\f142"; |
|||
} |
|||
.wb-video:before { |
|||
content: "\f143"; |
|||
} |
|||
.wb-camera:before { |
|||
content: "\f144"; |
|||
} |
|||
.wb-folder:before { |
|||
content: "\f145"; |
|||
} |
|||
.wb-clipboard:before { |
|||
content: "\f146"; |
|||
} |
|||
.wb-order:before { |
|||
content: "\f147"; |
|||
} |
|||
.wb-file:before { |
|||
content: "\f148"; |
|||
} |
|||
.wb-copy:before { |
|||
content: "\f149"; |
|||
} |
|||
.wb-add-file:before { |
|||
content: "\f14a"; |
|||
} |
|||
.wb-print:before { |
|||
content: "\f14b"; |
|||
} |
|||
.wb-calendar:before { |
|||
content: "\f14c"; |
|||
} |
|||
.wb-time:before { |
|||
content: "\f14d"; |
|||
} |
|||
.wb-trash:before { |
|||
content: "\f14e"; |
|||
} |
|||
.wb-plugin:before { |
|||
content: "\f14f"; |
|||
} |
|||
.wb-extension:before { |
|||
content: "\f150"; |
|||
} |
|||
.wb-memory:before { |
|||
content: "\f151"; |
|||
} |
|||
.wb-settings:before { |
|||
content: "\f152"; |
|||
} |
|||
.wb-scissor:before { |
|||
content: "\f153"; |
|||
} |
|||
.wb-wrench:before { |
|||
content: "\f154"; |
|||
} |
|||
.wb-hammer:before { |
|||
content: "\f155"; |
|||
} |
|||
.wb-lock:before { |
|||
content: "\f156"; |
|||
} |
|||
.wb-unlock:before { |
|||
content: "\f157"; |
|||
} |
|||
.wb-volume-low:before { |
|||
content: "\f158"; |
|||
} |
|||
.wb-volume-high:before { |
|||
content: "\f159"; |
|||
} |
|||
.wb-volume-off:before { |
|||
content: "\f15a"; |
|||
} |
|||
.wb-pause:before { |
|||
content: "\f15b"; |
|||
} |
|||
.wb-play:before { |
|||
content: "\f15c"; |
|||
} |
|||
.wb-stop:before { |
|||
content: "\f15d"; |
|||
} |
|||
.wb-musical:before { |
|||
content: "\f15e"; |
|||
} |
|||
.wb-random:before { |
|||
content: "\f15f"; |
|||
} |
|||
.wb-reload:before { |
|||
content: "\f160"; |
|||
} |
|||
.wb-loop:before { |
|||
content: "\f161"; |
|||
} |
|||
.wb-text:before { |
|||
content: "\f162"; |
|||
} |
|||
.wb-bold:before { |
|||
content: "\f163"; |
|||
} |
|||
.wb-italic:before { |
|||
content: "\f164"; |
|||
} |
|||
.wb-underline:before { |
|||
content: "\f165"; |
|||
} |
|||
.wb-format-clear:before { |
|||
content: "\f166"; |
|||
} |
|||
.wb-text-type:before { |
|||
content: "\f167"; |
|||
} |
|||
.wb-table:before { |
|||
content: "\f168"; |
|||
} |
|||
.wb-attach-file:before { |
|||
content: "\f169"; |
|||
} |
|||
.wb-paperclip:before { |
|||
content: "\f16a"; |
|||
} |
|||
.wb-link-intact:before { |
|||
content: "\f16b"; |
|||
} |
|||
.wb-link:before { |
|||
content: "\f16c"; |
|||
} |
|||
.wb-link-broken:before { |
|||
content: "\f16d"; |
|||
} |
|||
.wb-indent-increase:before { |
|||
content: "\f16e"; |
|||
} |
|||
.wb-indent-decrease:before { |
|||
content: "\f16f"; |
|||
} |
|||
.wb-align-justify:before { |
|||
content: "\f170"; |
|||
} |
|||
.wb-align-left:before { |
|||
content: "\f171"; |
|||
} |
|||
.wb-align-center:before { |
|||
content: "\f172"; |
|||
} |
|||
.wb-align-right:before { |
|||
content: "\f173"; |
|||
} |
|||
.wb-list-numbered:before { |
|||
content: "\f174"; |
|||
} |
|||
.wb-list-bulleted:before { |
|||
content: "\f175"; |
|||
} |
|||
.wb-list:before { |
|||
content: "\f176"; |
|||
} |
|||
.wb-emoticon:before { |
|||
content: "\f177"; |
|||
} |
|||
.wb-quote-right:before { |
|||
content: "\f178"; |
|||
} |
|||
.wb-code:before { |
|||
content: "\f179"; |
|||
} |
|||
.wb-code-working:before { |
|||
content: "\f17a"; |
|||
} |
|||
.wb-code-unfold:before { |
|||
content: "\f17b"; |
|||
} |
|||
.wb-chevron-right:before { |
|||
content: "\f17c"; |
|||
} |
|||
.wb-chevron-left:before { |
|||
content: "\f17d"; |
|||
} |
|||
.wb-chevron-left-mini:before { |
|||
content: "\f17e"; |
|||
} |
|||
.wb-chevron-right-mini:before { |
|||
content: "\f17f"; |
|||
} |
|||
.wb-chevron-up:before { |
|||
content: "\f180"; |
|||
} |
|||
.wb-chevron-down:before { |
|||
content: "\f181"; |
|||
} |
|||
.wb-chevron-up-mini:before { |
|||
content: "\f182"; |
|||
} |
|||
.wb-chevron-down-mini:before { |
|||
content: "\f183"; |
|||
} |
|||
.wb-arrow-left:before { |
|||
content: "\f184"; |
|||
} |
|||
.wb-arrow-right:before { |
|||
content: "\f185"; |
|||
} |
|||
.wb-arrow-up:before { |
|||
content: "\f186"; |
|||
} |
|||
.wb-arrow-down:before { |
|||
content: "\f187"; |
|||
} |
|||
.wb-dropdown:before { |
|||
content: "\f188"; |
|||
} |
|||
.wb-dropup:before { |
|||
content: "\f189"; |
|||
} |
|||
.wb-dropright:before { |
|||
content: "\f18a"; |
|||
} |
|||
.wb-dropleft:before { |
|||
content: "\f18b"; |
|||
} |
|||
.wb-sort-vertical:before { |
|||
content: "\f18c"; |
|||
} |
|||
.wb-triangle-left:before { |
|||
content: "\f18d"; |
|||
} |
|||
.wb-triangle-right:before { |
|||
content: "\f18e"; |
|||
} |
|||
.wb-triangle-down:before { |
|||
content: "\f18f"; |
|||
} |
|||
.wb-triangle-up:before { |
|||
content: "\f190"; |
|||
} |
|||
.wb-check-circle:before { |
|||
content: "\f191"; |
|||
} |
|||
.wb-check:before { |
|||
content: "\f192"; |
|||
} |
|||
.wb-check-mini:before { |
|||
content: "\f193"; |
|||
} |
|||
.wb-close:before { |
|||
content: "\f194"; |
|||
} |
|||
.wb-close-mini:before { |
|||
content: "\f195"; |
|||
} |
|||
.wb-plus-circle:before { |
|||
content: "\f196"; |
|||
} |
|||
.wb-plus:before { |
|||
content: "\f197"; |
|||
} |
|||
.wb-minus-circle:before { |
|||
content: "\f198"; |
|||
} |
|||
.wb-minus:before { |
|||
content: "\f199"; |
|||
} |
|||
.wb-alert-circle:before { |
|||
content: "\f19a"; |
|||
} |
|||
.wb-alert:before { |
|||
content: "\f19b"; |
|||
} |
|||
.wb-help-circle:before { |
|||
content: "\f19c"; |
|||
} |
|||
.wb-help:before { |
|||
content: "\f19d"; |
|||
} |
|||
.wb-info-circle:before { |
|||
content: "\f19e"; |
|||
} |
|||
.wb-info:before { |
|||
content: "\f19f"; |
|||
} |
|||
.wb-warning:before { |
|||
content: "\f1a0"; |
|||
} |
|||
.wb-heart:before { |
|||
content: "\f1a1"; |
|||
} |
|||
.wb-heart-outline:before { |
|||
content: "\f1a2"; |
|||
} |
|||
.wb-star:before { |
|||
content: "\f1a3"; |
|||
} |
|||
.wb-star-half:before { |
|||
content: "\f1a4"; |
|||
} |
|||
.wb-star-outline:before { |
|||
content: "\f1a5"; |
|||
} |
|||
.wb-thumb-up:before { |
|||
content: "\f1a6"; |
|||
} |
|||
.wb-thumb-down:before { |
|||
content: "\f1a7"; |
|||
} |
|||
.wb-small-point:before { |
|||
content: "\f1a8"; |
|||
} |
|||
.wb-medium-point:before { |
|||
content: "\f1a9"; |
|||
} |
|||
.wb-large-point:before { |
|||
content: "\f1aa"; |
|||
} |
Binary file not shown.
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 54 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,93 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("alertify", { |
|||
mode: "api", |
|||
defaults: { |
|||
type: "alert", |
|||
delay: 5000, |
|||
theme: 'bootstrap' |
|||
}, |
|||
api: function() { |
|||
if (typeof alertify === "undefined") return; |
|||
|
|||
var defaults = $.components.getDefaults("alertify"); |
|||
|
|||
$(document).on('click.site.alertify', '[data-plugin="alertify"]', function() { |
|||
var $this = $(this), |
|||
options = $.extend(true, {}, defaults, $this.data()); |
|||
|
|||
if (options.labelOk) { |
|||
options.okBtn = options.labelOk; |
|||
} |
|||
|
|||
if (options.labelCancel) { |
|||
options.cancelBtn = options.labelCancel; |
|||
} |
|||
|
|||
if (typeof options.delay !== 'undefined') { |
|||
alertify.delay(options.delay); |
|||
} |
|||
|
|||
if (typeof options.theme !== 'undefined') { |
|||
alertify.theme(options.theme); |
|||
} |
|||
|
|||
if (typeof options.cancelBtn !== 'undefined') { |
|||
alertify.cancelBtn(options.cancelBtn); |
|||
} |
|||
|
|||
if (typeof options.okBtn !== 'undefined') { |
|||
alertify.okBtn(options.okBtn); |
|||
} |
|||
|
|||
if (typeof options.placeholder !== 'undefined') { |
|||
alertify.delay(options.placeholder); |
|||
} |
|||
|
|||
if (typeof options.defaultValue !== 'undefined') { |
|||
alertify.delay(options.defaultValue); |
|||
} |
|||
|
|||
if (typeof options.maxLogItems !== 'undefined') { |
|||
alertify.delay(options.maxLogItems); |
|||
} |
|||
|
|||
if (typeof options.closeLogOnClick !== 'undefined') { |
|||
alertify.delay(options.closeLogOnClick); |
|||
} |
|||
|
|||
switch (options.type) { |
|||
case "alert": |
|||
alertify.alert(options.alertMessage); |
|||
break; |
|||
case "confirm": |
|||
alertify.confirm(options.confirmTitle, function() { |
|||
alertify.success(options.successMessage); |
|||
}, function() { |
|||
alertify.error(options.errorMessage); |
|||
}); |
|||
break; |
|||
case "prompt": |
|||
alertify.prompt(options.promptTitle, function(str, ev) { |
|||
var message = options.successMessage.replace('%s', str); |
|||
alertify.success(message); |
|||
}, function(ev) { |
|||
alertify.error(options.errorMessage); |
|||
}); |
|||
break; |
|||
case "log": |
|||
alertify.log(options.logMessage); |
|||
break; |
|||
case "success": |
|||
alertify.success(options.successMessage); |
|||
break; |
|||
case "error": |
|||
alertify.error(options.errorMessage); |
|||
break; |
|||
} |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,81 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("animsition", { |
|||
mode: "manual", |
|||
defaults: { |
|||
inClass: 'fade-in', |
|||
outClass: 'fade-out', |
|||
inDuration: 800, |
|||
outDuration: 500, |
|||
linkElement: '.animsition-link', |
|||
loading: true, |
|||
loadingParentElement: "body", |
|||
loadingClass: "loader", |
|||
loadingType: "default", |
|||
timeout: false, |
|||
timeoutCountdown: 5000, |
|||
onLoadEvent: true, |
|||
browser: ['animation-duration', '-webkit-animation-duration'], |
|||
overlay: false, |
|||
// random: true,
|
|||
overlayClass: 'animsition-overlay-slide', |
|||
overlayParentElement: "body", |
|||
|
|||
inDefaults: [ |
|||
'fade-in', |
|||
'fade-in-up-sm', 'fade-in-up', 'fade-in-up-lg', |
|||
'fade-in-down-sm', 'fade-in-down', 'fade-in-down-lg', |
|||
'fade-in-left-sm', 'fade-in-left', 'fade-in-left-lg', |
|||
'fade-in-right-sm', 'fade-in-right', 'fade-in-right-lg', |
|||
// 'overlay-slide-in-top', 'overlay-slide-in-bottom', 'overlay-slide-in-left', 'overlay-slide-in-right',
|
|||
'zoom-in-sm', 'zoom-in', 'zoom-in-lg' |
|||
], |
|||
outDefaults: [ |
|||
'fade-out', |
|||
'fade-out-up-sm', 'fade-out-up', 'fade-out-up-lg', |
|||
'fade-out-down-sm', 'fade-out-down', 'fade-out-down-lg', |
|||
'fade-out-left-sm', 'fade-out-left', 'fade-out-left-lg', |
|||
'fade-out-right-sm', 'fade-out-right', 'fade-out-right-lg', |
|||
// 'overlay-slide-out-top', 'overlay-slide-out-bottom', 'overlay-slide-out-left', 'overlay-slide-out-right'
|
|||
'zoom-out-sm', 'zoom-out', 'zoom-out-lg' |
|||
] |
|||
}, |
|||
init: function(context, callback) { |
|||
var options = $.components.getDefaults("animsition"); |
|||
|
|||
if (options.random) { |
|||
var li = options.inDefaults.length, |
|||
lo = options.outDefaults.length; |
|||
|
|||
var ni = parseInt(li * Math.random(), 0), |
|||
no = parseInt(lo * Math.random(), 0); |
|||
|
|||
options.inClass = options.inDefaults[ni]; |
|||
options.outClass = options.outDefaults[no]; |
|||
} |
|||
|
|||
var $this = $(".animsition", context); |
|||
|
|||
$this.animsition(options); |
|||
|
|||
$("." + options.loadingClass).addClass('loader-' + options.loadingType); |
|||
|
|||
if ($this.animsition('supportCheck', options)) { |
|||
if ($.isFunction(callback)) { |
|||
$this.one('animsition.end', function() { |
|||
callback.call(); |
|||
}); |
|||
} |
|||
|
|||
return true; |
|||
} else { |
|||
if ($.isFunction(callback)) { |
|||
callback.call(); |
|||
} |
|||
return false; |
|||
} |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("animsition",{mode:"manual",defaults:{inClass:"fade-in",outClass:"fade-out",inDuration:800,outDuration:500,linkElement:".animsition-link",loading:!0,loadingParentElement:"body",loadingClass:"loader",loadingType:"default",timeout:!1,timeoutCountdown:5e3,onLoadEvent:!0,browser:["animation-duration","-webkit-animation-duration"],overlay:!1,overlayClass:"animsition-overlay-slide",overlayParentElement:"body",inDefaults:["fade-in","fade-in-up-sm","fade-in-up","fade-in-up-lg","fade-in-down-sm","fade-in-down","fade-in-down-lg","fade-in-left-sm","fade-in-left","fade-in-left-lg","fade-in-right-sm","fade-in-right","fade-in-right-lg","zoom-in-sm","zoom-in","zoom-in-lg"],outDefaults:["fade-out","fade-out-up-sm","fade-out-up","fade-out-up-lg","fade-out-down-sm","fade-out-down","fade-out-down-lg","fade-out-left-sm","fade-out-left","fade-out-left-lg","fade-out-right-sm","fade-out-right","fade-out-right-lg","zoom-out-sm","zoom-out","zoom-out-lg"]},init:function(context,callback){var options=$.components.getDefaults("animsition");if(options.random){var li=options.inDefaults.length,lo=options.outDefaults.length,ni=parseInt(li*Math.random(),0),no=parseInt(lo*Math.random(),0);options.inClass=options.inDefaults[ni],options.outClass=options.outDefaults[no]}var $this=$(".animsition",context);return $this.animsition(options),$("."+options.loadingClass).addClass("loader-"+options.loadingType),$this.animsition("supportCheck",options)?($.isFunction(callback)&&$this.one("animsition.end",function(){callback.call()}),!0):($.isFunction(callback)&&callback.call(),!1)}}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("progress",{mode:"init",defaults:{bootstrap:!0,onUpdate:function(n){var per=(n-this.min)/(this.max-this.min);.5>per?this.$target.addClass("progress-bar-success").removeClass("progress-bar-warning progress-bar-danger"):per>=.5&&.8>per?this.$target.addClass("progress-bar-warning").removeClass("progress-bar-success progress-bar-danger"):this.$target.addClass("progress-bar-danger").removeClass("progress-bar-success progress-bar-warning")},labelCallback:function(n){var label,labelType=this.$element.data("labeltype");if("percentage"===labelType){var percentage=this.getPercentage(n);label=percentage+"%"}else if("steps"===labelType){var total=this.$element.data("totalsteps");total||(total=10);var step=Math.round(total*(n-this.min)/(this.max-this.min));label=step+" / "+total}else label=n;return this.$element.parent().hasClass("contextual-progress")&&this.$element.parent().find(".progress-label").html(label),label}},init:function(context){if($.fn.asProgress){var defaults=$.components.getDefaults("progress");$('[data-plugin="progress"]',context).each(function(){var $this=$(this),options=$this.data();options=$.extend({},defaults,options),$this.asProgress(options)})}}}); |
@ -0,0 +1,23 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("scrollable", { |
|||
mode: "init", |
|||
defaults: { |
|||
namespace: "scrollable", |
|||
contentSelector: "> [data-role='content']", |
|||
containerSelector: "> [data-role='container']" |
|||
}, |
|||
init: function(context) { |
|||
if (!$.fn.asScrollable) return; |
|||
var defaults = $.components.getDefaults("scrollable"); |
|||
|
|||
$('[data-plugin="scrollable"]', context).each(function() { |
|||
var options = $.extend({}, defaults, $(this).data()); |
|||
|
|||
$(this).asScrollable(options); |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("scrollable",{mode:"init",defaults:{namespace:"scrollable",contentSelector:"> [data-role='content']",containerSelector:"> [data-role='container']"},init:function(context){if($.fn.asScrollable){var defaults=$.components.getDefaults("scrollable");$('[data-plugin="scrollable"]',context).each(function(){var options=$.extend({},defaults,$(this).data());$(this).asScrollable(options)})}}}); |
@ -0,0 +1,47 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("bootbox", { |
|||
mode: "api", |
|||
defaults: { |
|||
message: "" |
|||
}, |
|||
api: function() { |
|||
if (typeof bootbox === "undefined") return; |
|||
var defaults = $.components.getDefaults("bootbox"); |
|||
|
|||
$(document).on('click.site.bootbox', '[data-plugin="bootbox"]', function() { |
|||
var $btn = $(this); |
|||
var options = $btn.data(); |
|||
|
|||
options = $.extend(true, {}, defaults, options); |
|||
if (options.classname) { |
|||
options.className = options.classname; |
|||
} |
|||
|
|||
if (typeof options.callback === "string" && $.isFunction(window[options.callback])) { |
|||
options.callback = window[options.callback]; |
|||
} |
|||
|
|||
if (options.type) { |
|||
switch (options.type) { |
|||
case "alert": |
|||
bootbox.alert(options); |
|||
break; |
|||
case "confirm": |
|||
bootbox.confirm(options); |
|||
break; |
|||
case "prompt": |
|||
bootbox.prompt(options); |
|||
break; |
|||
default: |
|||
bootbox.dialog(options); |
|||
} |
|||
} else { |
|||
bootbox.dialog(options); |
|||
} |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,32 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("buttons", { |
|||
mode: "api", |
|||
defaults: {}, |
|||
api: function() { |
|||
$(document).on('click.site.loading', '[data-loading-text]', function() { |
|||
var $btn = $(this), |
|||
text = $btn.text(), |
|||
i = 20, |
|||
loadingText = $btn.data('loadingText'); |
|||
|
|||
$btn.text(loadingText + '(' + i + ')').css('opacity', '.6'); |
|||
|
|||
var timeout = setInterval(function() { |
|||
$btn.text(loadingText + '(' + (--i) + ')'); |
|||
if (i === 0) { |
|||
clearInterval(timeout); |
|||
$btn.text(text).css('opacity', '1'); |
|||
} |
|||
}, 1000); |
|||
}); |
|||
|
|||
$(document).on('click.site.morebutton', '[data-more]', function() { |
|||
var $target = $($(this).data('more')); |
|||
$target.toggleClass('show'); |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("labelauty",{mode:"default",defaults:{same_width:!0}}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("placeholder",{mode:"init",init:function(context){$.fn.placeholder&&$("input, textarea",context).placeholder()}}); |
@ -0,0 +1,42 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("ladda", { |
|||
mode: "init", |
|||
defaults: { |
|||
timeout: 2000 |
|||
}, |
|||
init: function() { |
|||
if (typeof Ladda === "undefined") return; |
|||
|
|||
var defaults = $.components.getDefaults("ladda"); |
|||
Ladda.bind('[data-plugin="ladda"]', defaults); |
|||
} |
|||
}); |
|||
|
|||
$.components.register("laddaProgress", { |
|||
mode: "init", |
|||
defaults: { |
|||
init: function(instance) { |
|||
var progress = 0; |
|||
var interval = setInterval(function() { |
|||
progress = Math.min(progress + Math.random() * 0.1, 1); |
|||
instance.setProgress(progress); |
|||
|
|||
if (progress === 1) { |
|||
instance.stop(); |
|||
clearInterval(interval); |
|||
} |
|||
}, 200); |
|||
} |
|||
}, |
|||
init: function() { |
|||
if (typeof Ladda === 'undefined') return; |
|||
|
|||
var defaults = $.components.getDefaults("laddaProgress"); |
|||
// Bind progress buttons and simulate loading progress
|
|||
Ladda.bind('[data-plugin="laddaProgress"]', defaults); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("nprogress",{mode:"init",defaults:{minimum:.15,trickleRate:.07,trickleSpeed:360,showSpinner:!1,template:'<div class="bar" role="bar"></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'},init:function(){if("undefined"!=typeof NProgress){var defaults=$.components.getDefaults("nprogress");NProgress.configure(defaults)}}}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("panel",{api:function(){$(document).on("click.site.panel",'[data-toggle="panel-fullscreen"]',function(e){e.preventDefault();var $this=$(this),$panel=$this.closest(".panel"),api=$panel.data("panel-api");api.toggleFullscreen()}),$(document).on("click.site.panel",'[data-toggle="panel-collapse"]',function(e){e.preventDefault();var $this=$(this),$panel=$this.closest(".panel"),api=$panel.data("panel-api");api.toggleContent()}),$(document).on("click.site.panel",'[data-toggle="panel-close"]',function(e){e.preventDefault();var $this=$(this),$panel=$this.closest(".panel"),api=$panel.data("panel-api");api.close()}),$(document).on("click.site.panel",'[data-toggle="panel-refresh"]',function(e){e.preventDefault();var $this=$(this),$panel=$this.closest(".panel"),api=$panel.data("panel-api"),callback=$this.data("loadCallback");$.isFunction(window[callback])?api.load(window[callback]):api.load()})},init:function(context){$(".panel",context).each(function(){var $loading,$this=$(this),isFullscreen=!1,isClose=!1,isCollapse=!1,isLoading=!1,$fullscreen=$this.find('[data-toggle="panel-fullscreen"]'),$collapse=$this.find('[data-toggle="panel-collapse"]'),self=this;$this.hasClass("is-collapse")&&(isCollapse=!0);var api={load:function(callback){var type=$this.data("load-type");type||(type="blue-only"),$loading=$('<div class="panel-loading"><div class="loader-wrapper active"><div class="loader-layer loader-'+type+'"><div class="loader-circle-left"><div class="circle"></div></div><div class="loader-circle-gap"></div><div class="loader-circle-right"><div class="circle"></div></div></div></div></div>'),$loading.appendTo($this),$this.addClass("is-loading"),$this.trigger("loading.uikit.panel"),isLoading=!0,$.isFunction(callback)&&callback.call(self,this.done)},done:function(){isLoading===!0&&($loading.remove(),$this.removeClass("is-loading"),$this.trigger("loading.done.uikit.panel"))},toggleContent:function(){isCollapse?this.showContent():this.hideContent()},showContent:function(){isCollapse!==!1&&($this.removeClass("is-collapse"),$collapse.hasClass("md-plus")&&$collapse.removeClass("md-plus").addClass("md-minus"),$this.trigger("shown.uikit.panel"),isCollapse=!1)},hideContent:function(){isCollapse!==!0&&($this.addClass("is-collapse"),$collapse.hasClass("md-minus")&&$collapse.removeClass("md-minus").addClass("md-plus"),$this.trigger("hidden.uikit.panel"),isCollapse=!0)},toggleFullscreen:function(){isFullscreen?this.leaveFullscreen():this.enterFullscreen()},enterFullscreen:function(){isFullscreen!==!0&&($this.addClass("is-fullscreen"),$fullscreen.hasClass("md-fullscreen")&&$fullscreen.removeClass("md-fullscreen").addClass("md-fullscreen-exit"),$this.trigger("enter.fullscreen.uikit.panel"),isFullscreen=!0)},leaveFullscreen:function(){isFullscreen!==!1&&($this.removeClass("is-fullscreen"),$fullscreen.hasClass("md-fullscreen-exit")&&$fullscreen.removeClass("md-fullscreen-exit").addClass("md-fullscreen"),$this.trigger("leave.fullscreen.uikit.panel"),isFullscreen=!1)},toggle:function(){isClose?this.open():this.close()},open:function(){isClose!==!1&&($this.removeClass("is-close"),$this.trigger("open.uikit.panel"),isClose=!1)},close:function(){isClose!==!0&&($this.addClass("is-close"),$this.trigger("close.uikit.panel"),isClose=!0)}};$this.data("panel-api",api)})}}); |
@ -0,0 +1,25 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("slidePanel", { |
|||
mode: "manual", |
|||
defaults: { |
|||
closeSelector: '.slidePanel-close', |
|||
mouseDragHandler: '.slidePanel-handler', |
|||
loading: { |
|||
template: function(options) { |
|||
return '<div class="' + options.classes.loading + '">' + |
|||
'<div class="loader loader-default"></div>' + |
|||
'</div>'; |
|||
}, |
|||
showCallback: function(options) { |
|||
this.$el.addClass(options.classes.loading + '-show'); |
|||
}, |
|||
hideCallback: function(options) { |
|||
this.$el.removeClass(options.classes.loading + '-show'); |
|||
} |
|||
} |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("slidePanel",{mode:"manual",defaults:{closeSelector:".slidePanel-close",mouseDragHandler:".slidePanel-handler",loading:{template:function(options){return'<div class="'+options.classes.loading+'"><div class="loader loader-default"></div></div>'},showCallback:function(options){this.$el.addClass(options.classes.loading+"-show")},hideCallback:function(options){this.$el.removeClass(options.classes.loading+"-show")}}}}); |
@ -0,0 +1,22 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("switchery", { |
|||
mode: "init", |
|||
defaults: { |
|||
color: $.colors("primary", 600) |
|||
}, |
|||
init: function(context) { |
|||
if (typeof Switchery === "undefined") return; |
|||
|
|||
var defaults = $.components.getDefaults("switchery"); |
|||
|
|||
$('[data-plugin="switchery"]', context).each(function() { |
|||
var options = $.extend({}, defaults, $(this).data()); |
|||
|
|||
new Switchery(this, options); |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("switchery",{mode:"init",defaults:{color:$.colors("primary",600)},init:function(context){if("undefined"!=typeof Switchery){var defaults=$.components.getDefaults("switchery");$('[data-plugin="switchery"]',context).each(function(){var options=$.extend({},defaults,$(this).data());new Switchery(this,options)})}}}); |
@ -0,0 +1,94 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("verticalTab", { |
|||
mode: "init", |
|||
init: function(context) { |
|||
if (!$.fn.matchHeight) return; |
|||
|
|||
$('.nav-tabs-vertical', context).each(function() { |
|||
$(this).children().matchHeight(); |
|||
}); |
|||
} |
|||
}); |
|||
|
|||
$.components.register("horizontalTab", { |
|||
mode: "init", |
|||
init: function(context) { |
|||
if (!$.fn.responsiveHorizontalTabs) return; |
|||
|
|||
$('.nav-tabs-horizontal', context).responsiveHorizontalTabs(); |
|||
} |
|||
}); |
|||
|
|||
$.components.register("navTabsLine", { |
|||
mode: "init", |
|||
defaults: { |
|||
speed: '0.5s, 1s', |
|||
animate: 'cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1)', |
|||
tpl: function() { |
|||
return '<li class="nav-tabs-autoline"></li>'; |
|||
} |
|||
}, |
|||
init: function(context) { |
|||
var defaults = $.components.getDefaults('navTabsLine'); |
|||
|
|||
$('.nav-tabs-line', context).each(function() { |
|||
var $this = $(this); |
|||
var options = $.extend({}, defaults, $this.data()); |
|||
var $parent = $this.parent(); |
|||
var $active = $this.find('.active'); |
|||
|
|||
var $autoLineTpl = $(options.tpl()).css({ |
|||
"-webkit-transition-duration": options.speed, |
|||
"transition-duration": options.speed, |
|||
"-webkit-transition-timing-function": options.animate, |
|||
"transition-timing-function": options.animate |
|||
}); |
|||
$autoLineTpl.appendTo($this); |
|||
|
|||
var horizontalLine = function($this) { |
|||
var left = $this.position().left; |
|||
var lineWidth = $this.outerWidth(); |
|||
|
|||
$autoLineTpl.css({ |
|||
"left": left, |
|||
"width": lineWidth |
|||
}); |
|||
}; |
|||
|
|||
var verticalLine = function($this) { |
|||
var top = $this.position().top; |
|||
var lineHeight = $this.outerHeight(); |
|||
|
|||
$autoLineTpl.css({ |
|||
"top": top, |
|||
"height": lineHeight |
|||
}); |
|||
}; |
|||
|
|||
var change = function($this) { |
|||
if ($parent.hasClass('nav-tabs-vertical')) { |
|||
verticalLine($this); |
|||
} else { |
|||
horizontalLine($this); |
|||
} |
|||
}; |
|||
|
|||
$this.on('shown.bs.tab', 'a[data-toggle="tab"]', function() { |
|||
var $li = $(this).parent(), |
|||
$ul = $li.parent(); |
|||
|
|||
if ($ul.hasClass('dropdown-menu')) { |
|||
change($ul.parent()); |
|||
} else { |
|||
change($(this).parent()); |
|||
} |
|||
}); |
|||
|
|||
change($active); |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("verticalTab",{mode:"init",init:function(context){$.fn.matchHeight&&$(".nav-tabs-vertical",context).each(function(){$(this).children().matchHeight()})}}),$.components.register("horizontalTab",{mode:"init",init:function(context){$.fn.responsiveHorizontalTabs&&$(".nav-tabs-horizontal",context).responsiveHorizontalTabs()}}),$.components.register("navTabsLine",{mode:"init",defaults:{speed:"0.5s, 1s",animate:"cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1)",tpl:function(){return'<li class="nav-tabs-autoline"></li>'}},init:function(context){var defaults=$.components.getDefaults("navTabsLine");$(".nav-tabs-line",context).each(function(){var $this=$(this),options=$.extend({},defaults,$this.data()),$parent=$this.parent(),$active=$this.find(".active"),$autoLineTpl=$(options.tpl()).css({"-webkit-transition-duration":options.speed,"transition-duration":options.speed,"-webkit-transition-timing-function":options.animate,"transition-timing-function":options.animate});$autoLineTpl.appendTo($this);var horizontalLine=function($this){var left=$this.position().left,lineWidth=$this.outerWidth();$autoLineTpl.css({left:left,width:lineWidth})},verticalLine=function($this){var top=$this.position().top,lineHeight=$this.outerHeight();$autoLineTpl.css({top:top,height:lineHeight})},change=function($this){$parent.hasClass("nav-tabs-vertical")?verticalLine($this):horizontalLine($this)};$this.on("shown.bs.tab",'a[data-toggle="tab"]',function(){var $li=$(this).parent(),$ul=$li.parent();change($ul.hasClass("dropdown-menu")?$ul.parent():$(this).parent())}),change($active)})}}); |
@ -0,0 +1,39 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("toastr", { |
|||
mode: "api", |
|||
api: function() { |
|||
if (typeof toastr === "undefined") return; |
|||
var defaults = $.components.getDefaults("toastr"); |
|||
|
|||
$(document).on('click.site.toastr', '[data-plugin="toastr"]', function(e) { |
|||
e.preventDefault(); |
|||
|
|||
var $this = $(this); |
|||
var options = $.extend(true, {}, defaults, $this.data()); |
|||
var message = options.message || ''; |
|||
var type = options.type || "info"; |
|||
var title = options.title || undefined; |
|||
|
|||
switch (type) { |
|||
case "success": |
|||
toastr.success(message, title, options); |
|||
break; |
|||
case "warning": |
|||
toastr.warning(message, title, options); |
|||
break; |
|||
case "error": |
|||
toastr.error(message, title, options); |
|||
break; |
|||
case "info": |
|||
toastr.info(message, title, options); |
|||
break; |
|||
default: |
|||
toastr.info(message, title, options); |
|||
} |
|||
}); |
|||
} |
|||
}); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
$.components.register("toastr",{mode:"api",api:function(){if("undefined"!=typeof toastr){var defaults=$.components.getDefaults("toastr");$(document).on("click.site.toastr",'[data-plugin="toastr"]',function(e){e.preventDefault();var $this=$(this),options=$.extend(!0,{},defaults,$this.data()),message=options.message||"",type=options.type||"info",title=options.title||void 0;switch(type){case"success":toastr.success(message,title,options);break;case"warning":toastr.warning(message,title,options);break;case"error":toastr.error(message,title,options);break;case"info":toastr.info(message,title,options);break;default:toastr.info(message,title,options)}})}}}); |
@ -0,0 +1,302 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
(function(window, document, $) { |
|||
"use strict"; |
|||
$.configs.colors = { |
|||
"red": { |
|||
"50": "#ffebee", |
|||
"100": "#ffcdd2", |
|||
"200": "#ef9a9a", |
|||
"300": "#e57373", |
|||
"400": "#ef5350", |
|||
"500": "#f44336", |
|||
"600": "#e53935", |
|||
"700": "#d32f2f", |
|||
"800": "#c62828", |
|||
"900": "#b71c1c", |
|||
"a100": "#ff8a80", |
|||
"a200": "#ff5252", |
|||
"a300": "#ff1744", |
|||
"a400": "#d50000" |
|||
}, |
|||
"pink": { |
|||
"50": "#fce4ec", |
|||
"100": "#f8bbd0", |
|||
"200": "#f48fb1", |
|||
"300": "#f06292", |
|||
"400": "#ec407a", |
|||
"500": "#e91e63", |
|||
"600": "#d81b60", |
|||
"700": "#c2185b", |
|||
"800": "#ad1457", |
|||
"900": "#880e4f", |
|||
"a100": "#ff80ab", |
|||
"a200": "#ff4081", |
|||
"a300": "#f50057", |
|||
"a400": "#c51162" |
|||
}, |
|||
"purple": { |
|||
"50": "#f3e5f5", |
|||
"100": "#e1bee7", |
|||
"200": "#ce93d8", |
|||
"300": "#ba68c8", |
|||
"400": "#ab47bc", |
|||
"500": "#9c27b0", |
|||
"600": "#8e24aa", |
|||
"700": "#7b1fa2", |
|||
"800": "#6a1b9a", |
|||
"900": "#4a148c", |
|||
"a100": "#ea80fc", |
|||
"a200": "#e040fb", |
|||
"a300": "#d500f9", |
|||
"a400": "#aa00ff" |
|||
}, |
|||
"deep-purple": { |
|||
"50": "#ede7f6", |
|||
"100": "#d1c4e9", |
|||
"200": "#b39ddb", |
|||
"300": "#9575cd", |
|||
"400": "#7e57c2", |
|||
"500": "#673ab7", |
|||
"600": "#5e35b1", |
|||
"700": "#512da8", |
|||
"800": "#4527a0", |
|||
"900": "#311b92", |
|||
"a100": "#b388ff", |
|||
"a200": "#7c4dff", |
|||
"a300": "#651fff", |
|||
"a400": "#6200ea" |
|||
}, |
|||
"indigo": { |
|||
"50": "#e8eaf6", |
|||
"100": "#c5cae9", |
|||
"200": "#9fa8da", |
|||
"300": "#7986cb", |
|||
"400": "#5c6bc0", |
|||
"500": "#3f51b5", |
|||
"600": "#3949ab", |
|||
"700": "#303f9f", |
|||
"800": "#283593", |
|||
"900": "#1a237e", |
|||
"a100": "#8c9eff", |
|||
"a200": "#536dfe", |
|||
"a300": "#3d5afe", |
|||
"a400": "#304ffe" |
|||
}, |
|||
"blue": { |
|||
"50": "#e3f2fd", |
|||
"100": "#bbdefb", |
|||
"200": "#90caf9", |
|||
"300": "#64b5f6", |
|||
"400": "#42a5f5", |
|||
"500": "#2196f3", |
|||
"600": "#1e88e5", |
|||
"700": "#1976d2", |
|||
"800": "#1565c0", |
|||
"900": "#0d47a1", |
|||
"a100": "#82b1ff", |
|||
"a200": "#448aff", |
|||
"a300": "#2979ff", |
|||
"a400": "#2962ff" |
|||
}, |
|||
"light-blue": { |
|||
"50": "#e1f5fe", |
|||
"100": "#b3e5fc", |
|||
"200": "#81d4fa", |
|||
"300": "#4fc3f7", |
|||
"400": "#29b6f6", |
|||
"500": "#03a9f4", |
|||
"600": "#039be5", |
|||
"700": "#0288d1", |
|||
"800": "#0277bd", |
|||
"900": "#01579b", |
|||
"a100": "#80d8ff", |
|||
"a200": "#40c4ff", |
|||
"a300": "#00b0ff", |
|||
"a400": "#0091ea" |
|||
}, |
|||
"cyan": { |
|||
"50": "#e0f7fa", |
|||
"100": "#b2ebf2", |
|||
"200": "#80deea", |
|||
"300": "#4dd0e1", |
|||
"400": "#26c6da", |
|||
"500": "#00bcd4", |
|||
"600": "#00acc1", |
|||
"700": "#0097a7", |
|||
"800": "#00838f", |
|||
"900": "#006064", |
|||
"a100": "#84ffff", |
|||
"a200": "#18ffff", |
|||
"a300": "#00e5ff", |
|||
"a400": "#00b8d4" |
|||
}, |
|||
"teal": { |
|||
"50": "#e0f2f1", |
|||
"100": "#b2dfdb", |
|||
"200": "#80cbc4", |
|||
"300": "#4db6ac", |
|||
"400": "#26a69a", |
|||
"500": "#009688", |
|||
"600": "#00897b", |
|||
"700": "#00796b", |
|||
"800": "#00695c", |
|||
"900": "#004d40", |
|||
"a100": "#a7ffeb", |
|||
"a200": "#64ffda", |
|||
"a300": "#1de9b6", |
|||
"a400": "#00bfa5" |
|||
}, |
|||
"green": { |
|||
"50": "#e8f5e9", |
|||
"100": "#c8e6c9", |
|||
"200": "#a5d6a7", |
|||
"300": "#81c784", |
|||
"400": "#66bb6a", |
|||
"500": "#4caf50", |
|||
"600": "#43a047", |
|||
"700": "#388e3c", |
|||
"800": "#2e7d32", |
|||
"900": "#1b5e20", |
|||
"a100": "#b9f6ca", |
|||
"a200": "#69f0ae", |
|||
"a300": "#00e676", |
|||
"a400": "#00c853" |
|||
}, |
|||
"light-green": { |
|||
"50": "#f1f8e9", |
|||
"100": "#dcedc8", |
|||
"200": "#c5e1a5", |
|||
"300": "#aed581", |
|||
"400": "#9ccc65", |
|||
"500": "#8bc34a", |
|||
"600": "#7cb342", |
|||
"700": "#689f38", |
|||
"800": "#558b2f", |
|||
"900": "#33691e", |
|||
"a100": "#ccff90", |
|||
"a200": "#b2ff59", |
|||
"a300": "#76ff03", |
|||
"a400": "#64dd17" |
|||
}, |
|||
"lime": { |
|||
"50": "#f9fbe7", |
|||
"100": "#f0f4c3", |
|||
"200": "#e6ee9c", |
|||
"300": "#dce775", |
|||
"400": "#d4e157", |
|||
"500": "#cddc39", |
|||
"600": "#c0ca33", |
|||
"700": "#afb42b", |
|||
"800": "#9e9d24", |
|||
"900": "#827717", |
|||
"a100": "#f4ff81", |
|||
"a200": "#eeff41", |
|||
"a300": "#c6ff00", |
|||
"a400": "#aeea00" |
|||
}, |
|||
"yellow": { |
|||
"50": "#fffde7", |
|||
"100": "#fff9c4", |
|||
"200": "#fff59d", |
|||
"300": "#fff176", |
|||
"400": "#ffee58", |
|||
"500": "#ffeb3b", |
|||
"600": "#fdd835", |
|||
"700": "#fbc02d", |
|||
"800": "#f9a825", |
|||
"900": "#f57f17", |
|||
"a100": "#ffff8d", |
|||
"a200": "#ffff00", |
|||
"a300": "#ffea00", |
|||
"a400": "#ffd600" |
|||
}, |
|||
"amber": { |
|||
"50": "#fff8e1", |
|||
"100": "#ffecb3", |
|||
"200": "#ffe082", |
|||
"300": "#ffd54f", |
|||
"400": "#ffca28", |
|||
"500": "#ffc107", |
|||
"600": "#ffb300", |
|||
"700": "#ffa000", |
|||
"800": "#ff8f00", |
|||
"900": "#ff6f00", |
|||
"a100": "#ffe57f", |
|||
"a200": "#ffd740", |
|||
"a300": "#ffc400", |
|||
"a400": "#ffab00" |
|||
}, |
|||
"orange": { |
|||
"50": "#fff3e0", |
|||
"100": "#ffe0b2", |
|||
"200": "#ffcc80", |
|||
"300": "#ffb74d", |
|||
"400": "#ffa726", |
|||
"500": "#ff9800", |
|||
"600": "#fb8c00", |
|||
"700": "#f57c00", |
|||
"800": "#ef6c00", |
|||
"900": "#e65100", |
|||
"a100": "#ffd180", |
|||
"a200": "#ffab40", |
|||
"a300": "#ff9100", |
|||
"a400": "#ff6d00" |
|||
}, |
|||
"deep-orange": { |
|||
"50": "#fbe9e7", |
|||
"100": "#ffccbc", |
|||
"200": "#ffab91", |
|||
"300": "#ff8a65", |
|||
"400": "#ff7043", |
|||
"500": "#ff5722", |
|||
"600": "#f4511e", |
|||
"700": "#e64a19", |
|||
"800": "#d84315", |
|||
"900": "#bf360c", |
|||
"a100": "#ff9e80", |
|||
"a200": "#ff6e40", |
|||
"a300": "#ff3d00", |
|||
"a400": "#dd2c00" |
|||
}, |
|||
"brown": { |
|||
"50": "#efebe9", |
|||
"100": "#d7ccc8", |
|||
"200": "#bcaaa4", |
|||
"300": "#a1887f", |
|||
"400": "#8d6e63", |
|||
"500": "#795548", |
|||
"600": "#6d4c41", |
|||
"700": "#5d4037", |
|||
"800": "#4e342e", |
|||
"900": "#3e2723" |
|||
}, |
|||
"grey": { |
|||
"50": "#fafafa", |
|||
"100": "#f5f5f5", |
|||
"200": "#eeeeee", |
|||
"300": "#e0e0e0", |
|||
"400": "#bdbdbd", |
|||
"500": "#9e9e9e", |
|||
"600": "#757575", |
|||
"700": "#616161", |
|||
"800": "#424242", |
|||
"900": "#212121" |
|||
}, |
|||
"blue-grey": { |
|||
"50": "#eceff1", |
|||
"100": "#cfd8dc", |
|||
"200": "#b0bec5", |
|||
"300": "#90a4ae", |
|||
"400": "#78909c", |
|||
"500": "#607d8b", |
|||
"600": "#546e7a", |
|||
"700": "#455a64", |
|||
"800": "#37474f", |
|||
"900": "#263238" |
|||
} |
|||
}; |
|||
})(window, document, $); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
!function(window,document,$){"use strict";$.configs.colors={red:{50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",a100:"#ff8a80",a200:"#ff5252",a300:"#ff1744",a400:"#d50000"},pink:{50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",a100:"#ff80ab",a200:"#ff4081",a300:"#f50057",a400:"#c51162"},purple:{50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",a100:"#ea80fc",a200:"#e040fb",a300:"#d500f9",a400:"#aa00ff"},"deep-purple":{50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",a100:"#b388ff",a200:"#7c4dff",a300:"#651fff",a400:"#6200ea"},indigo:{50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",a100:"#8c9eff",a200:"#536dfe",a300:"#3d5afe",a400:"#304ffe"},blue:{50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",a100:"#82b1ff",a200:"#448aff",a300:"#2979ff",a400:"#2962ff"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",a100:"#80d8ff",a200:"#40c4ff",a300:"#00b0ff",a400:"#0091ea"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",a100:"#84ffff",a200:"#18ffff",a300:"#00e5ff",a400:"#00b8d4"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",a100:"#a7ffeb",a200:"#64ffda",a300:"#1de9b6",a400:"#00bfa5"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",a100:"#b9f6ca",a200:"#69f0ae",a300:"#00e676",a400:"#00c853"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",a100:"#ccff90",a200:"#b2ff59",a300:"#76ff03",a400:"#64dd17"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",a100:"#f4ff81",a200:"#eeff41",a300:"#c6ff00",a400:"#aeea00"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",a100:"#ffff8d",a200:"#ffff00",a300:"#ffea00",a400:"#ffd600"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",a100:"#ffe57f",a200:"#ffd740",a300:"#ffc400",a400:"#ffab00"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",a100:"#ffd180",a200:"#ffab40",a300:"#ff9100",a400:"#ff6d00"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",a100:"#ff9e80",a200:"#ff6e40",a300:"#ff3d00",a400:"#dd2c00"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238"}}}(window,document,$); |
@ -0,0 +1,290 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
(function(window, document, $) { |
|||
'use strict'; |
|||
|
|||
var $doc = $(document); |
|||
|
|||
// Site
|
|||
// ====
|
|||
$.site = $.site || {}; |
|||
|
|||
$.extend($.site, { |
|||
_queue: { |
|||
prepare: [], |
|||
run: [], |
|||
complete: [] |
|||
}, |
|||
|
|||
run: function() { |
|||
var self = this; |
|||
|
|||
this.dequeue('prepare', function() { |
|||
self.trigger('before.run', self); |
|||
}); |
|||
|
|||
this.dequeue('run', function() { |
|||
self.dequeue('complete', function() { |
|||
self.trigger('after.run', self); |
|||
}); |
|||
}); |
|||
}, |
|||
|
|||
dequeue: function(name, done) { |
|||
var self = this, |
|||
queue = this.getQueue(name), |
|||
fn = queue.shift(), |
|||
next = function() { |
|||
self.dequeue(name, done); |
|||
}; |
|||
|
|||
if (fn) { |
|||
fn.call(this, next); |
|||
} else if ($.isFunction(done)) { |
|||
done.call(this); |
|||
} |
|||
}, |
|||
|
|||
getQueue: function(name) { |
|||
if (!$.isArray(this._queue[name])) { |
|||
this._queue[name] = []; |
|||
} |
|||
|
|||
return this._queue[name]; |
|||
}, |
|||
|
|||
extend: function(obj) { |
|||
$.each(this._queue, function(name, queue) { |
|||
if ($.isFunction(obj[name])) { |
|||
queue.push(obj[name]); |
|||
|
|||
delete obj[name]; |
|||
} |
|||
}); |
|||
|
|||
$.extend(this, obj); |
|||
|
|||
return this; |
|||
}, |
|||
|
|||
trigger: function(name, data, $el) { |
|||
if (typeof name === 'undefined') return; |
|||
if (typeof $el === 'undefined') $el = $doc; |
|||
|
|||
$el.trigger(name + '.site', data); |
|||
}, |
|||
|
|||
throttle: function(func, wait) { |
|||
var _now = Date.now || function() { |
|||
return new Date().getTime(); |
|||
}; |
|||
var context, args, result; |
|||
var timeout = null; |
|||
var previous = 0; |
|||
|
|||
var later = function() { |
|||
previous = _now(); |
|||
timeout = null; |
|||
result = func.apply(context, args); |
|||
context = args = null; |
|||
}; |
|||
|
|||
return function() { |
|||
var now = _now(); |
|||
var remaining = wait - (now - previous); |
|||
context = this; |
|||
args = arguments; |
|||
if (remaining <= 0) { |
|||
clearTimeout(timeout); |
|||
timeout = null; |
|||
previous = now; |
|||
result = func.apply(context, args); |
|||
context = args = null; |
|||
} else if (!timeout) { |
|||
timeout = setTimeout(later, remaining); |
|||
} |
|||
return result; |
|||
}; |
|||
}, |
|||
|
|||
resize: function() { |
|||
if (document.createEvent) { |
|||
var ev = document.createEvent('Event'); |
|||
ev.initEvent('resize', true, true); |
|||
window.dispatchEvent(ev); |
|||
} else { |
|||
element = document.documentElement; |
|||
var event = document.createEventObject(); |
|||
element.fireEvent("onresize", event); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
// Configs
|
|||
// =======
|
|||
$.configs = $.configs || {}; |
|||
|
|||
$.extend($.configs, { |
|||
data: {}, |
|||
get: function(name) { |
|||
var callback = function(data, name) { |
|||
return data[name]; |
|||
} |
|||
|
|||
var data = this.data; |
|||
|
|||
for (var i = 0; i < arguments.length; i++) { |
|||
name = arguments[i]; |
|||
|
|||
data = callback(data, name); |
|||
} |
|||
|
|||
return data; |
|||
}, |
|||
|
|||
set: function(name, value) { |
|||
this.data[name] = value; |
|||
}, |
|||
|
|||
extend: function(name, options) { |
|||
var value = this.get(name); |
|||
return $.extend(true, value, options); |
|||
} |
|||
}); |
|||
|
|||
// Colors
|
|||
// ======
|
|||
$.colors = function(name, level) { |
|||
if (name === 'primary') { |
|||
name = $.configs.get('site', 'primaryColor'); |
|||
if (!name) { |
|||
name = 'red'; |
|||
} |
|||
} |
|||
|
|||
if (typeof $.configs.colors === 'undefined') { |
|||
return null; |
|||
} |
|||
|
|||
if (typeof $.configs.colors[name] !== 'undefined') { |
|||
if (level && typeof $.configs.colors[name][level] !== 'undefined') { |
|||
return $.configs.colors[name][level]; |
|||
} |
|||
|
|||
if (typeof level === 'undefined') { |
|||
return $.configs.colors[name]; |
|||
} |
|||
} |
|||
|
|||
return null; |
|||
}; |
|||
|
|||
// Components
|
|||
// ==========
|
|||
$.components = $.components || {}; |
|||
|
|||
$.extend($.components, { |
|||
_components: {}, |
|||
|
|||
register: function(name, obj) { |
|||
this._components[name] = obj; |
|||
}, |
|||
|
|||
init: function(name, context, args) { |
|||
var self = this; |
|||
|
|||
if (typeof name === 'undefined') { |
|||
$.each(this._components, function(name) { |
|||
self.init(name); |
|||
}); |
|||
} else { |
|||
context = context || document; |
|||
args = args || []; |
|||
|
|||
var obj = this.get(name); |
|||
|
|||
if (obj) { |
|||
switch (obj.mode) { |
|||
case 'default': |
|||
return this._initDefault(name, context); |
|||
case 'init': |
|||
return this._initComponent(name, obj, context, args); |
|||
case 'api': |
|||
return this._initApi(name, obj, args); |
|||
default: |
|||
this._initApi(name, obj, context, args); |
|||
this._initComponent(name, obj, context, args); |
|||
return; |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
|
|||
/* init alternative, but only or init mode */ |
|||
call: function(name, context) { |
|||
var args = Array.prototype.slice.call(arguments, 2); |
|||
var obj = this.get(name); |
|||
|
|||
context = context || document; |
|||
|
|||
return this._initComponent(name, obj, context, args); |
|||
}, |
|||
|
|||
_initDefault: function(name, context) { |
|||
if (!$.fn[name]) return; |
|||
|
|||
var defaults = this.getDefaults(name); |
|||
|
|||
$('[data-plugin=' + name + ']', context).each(function() { |
|||
var $this = $(this), |
|||
options = $.extend(true, {}, defaults, $this.data()); |
|||
|
|||
$this[name](options); |
|||
}); |
|||
}, |
|||
|
|||
|
|||
_initComponent: function(name, obj, context, args) { |
|||
if ($.isFunction(obj.init)) { |
|||
obj.init.apply(obj, [context].concat(args)); |
|||
} |
|||
}, |
|||
|
|||
_initApi: function(name, obj, args) { |
|||
if (typeof obj.apiCalled === 'undefined' && $.isFunction(obj.api)) { |
|||
obj.api.apply(obj, args); |
|||
|
|||
obj.apiCalled = true; |
|||
} |
|||
}, |
|||
|
|||
|
|||
getDefaults: function(name) { |
|||
var component = this.get(name); |
|||
|
|||
if (component && typeof component.defaults !== "undefined") { |
|||
return component.defaults; |
|||
} else { |
|||
return {}; |
|||
} |
|||
}, |
|||
|
|||
get: function(name, property) { |
|||
if (typeof this._components[name] !== "undefined") { |
|||
if (typeof property !== "undefined") { |
|||
return this._components[name][property]; |
|||
} else { |
|||
return this._components[name]; |
|||
} |
|||
} else { |
|||
console.warn('component:' + component + ' script is not loaded.'); |
|||
|
|||
return undefined; |
|||
} |
|||
} |
|||
}); |
|||
|
|||
})(window, document, jQuery); |
@ -0,0 +1,6 @@ |
|||
/*! |
|||
* remark (http://getbootstrapadmin.com/remark)
|
|||
* Copyright 2016 amazingsurge |
|||
* Licensed under the Themeforest Standard Licenses |
|||
*/ |
|||
!function(window,document,$){"use strict";var $doc=$(document);$.site=$.site||{},$.extend($.site,{_queue:{prepare:[],run:[],complete:[]},run:function(){var self=this;this.dequeue("prepare",function(){self.trigger("before.run",self)}),this.dequeue("run",function(){self.dequeue("complete",function(){self.trigger("after.run",self)})})},dequeue:function(name,done){var self=this,queue=this.getQueue(name),fn=queue.shift(),next=function(){self.dequeue(name,done)};fn?fn.call(this,next):$.isFunction(done)&&done.call(this)},getQueue:function(name){return $.isArray(this._queue[name])||(this._queue[name]=[]),this._queue[name]},extend:function(obj){return $.each(this._queue,function(name,queue){$.isFunction(obj[name])&&(queue.push(obj[name]),delete obj[name])}),$.extend(this,obj),this},trigger:function(name,data,$el){"undefined"!=typeof name&&("undefined"==typeof $el&&($el=$doc),$el.trigger(name+".site",data))},throttle:function(func,wait){var context,args,result,_now=Date.now||function(){return(new Date).getTime()},timeout=null,previous=0,later=function(){previous=_now(),timeout=null,result=func.apply(context,args),context=args=null};return function(){var now=_now(),remaining=wait-(now-previous);return context=this,args=arguments,0>=remaining?(clearTimeout(timeout),timeout=null,previous=now,result=func.apply(context,args),context=args=null):timeout||(timeout=setTimeout(later,remaining)),result}},resize:function(){if(document.createEvent){var ev=document.createEvent("Event");ev.initEvent("resize",!0,!0),window.dispatchEvent(ev)}else{element=document.documentElement;var event=document.createEventObject();element.fireEvent("onresize",event)}}}),$.configs=$.configs||{},$.extend($.configs,{data:{},get:function(name){for(var callback=function(data,name){return data[name]},data=this.data,i=0;i<arguments.length;i++)name=arguments[i],data=callback(data,name);return data},set:function(name,value){this.data[name]=value},extend:function(name,options){var value=this.get(name);return $.extend(!0,value,options)}}),$.colors=function(name,level){if("primary"===name&&(name=$.configs.get("site","primaryColor"),name||(name="red")),"undefined"==typeof $.configs.colors)return null;if("undefined"!=typeof $.configs.colors[name]){if(level&&"undefined"!=typeof $.configs.colors[name][level])return $.configs.colors[name][level];if("undefined"==typeof level)return $.configs.colors[name]}return null},$.components=$.components||{},$.extend($.components,{_components:{},register:function(name,obj){this._components[name]=obj},init:function(name,context,args){var self=this;if("undefined"==typeof name)$.each(this._components,function(name){self.init(name)});else{context=context||document,args=args||[];var obj=this.get(name);if(obj)switch(obj.mode){case"default":return this._initDefault(name,context);case"init":return this._initComponent(name,obj,context,args);case"api":return this._initApi(name,obj,args);default:return this._initApi(name,obj,context,args),void this._initComponent(name,obj,context,args)}}},call:function(name,context){var args=Array.prototype.slice.call(arguments,2),obj=this.get(name);return context=context||document,this._initComponent(name,obj,context,args)},_initDefault:function(name,context){if($.fn[name]){var defaults=this.getDefaults(name);$("[data-plugin="+name+"]",context).each(function(){var $this=$(this),options=$.extend(!0,{},defaults,$this.data());$this[name](options)})}},_initComponent:function(name,obj,context,args){$.isFunction(obj.init)&&obj.init.apply(obj,[context].concat(args))},_initApi:function(name,obj,args){"undefined"==typeof obj.apiCalled&&$.isFunction(obj.api)&&(obj.api.apply(obj,args),obj.apiCalled=!0)},getDefaults:function(name){var component=this.get(name);return component&&"undefined"!=typeof component.defaults?component.defaults:{}},get:function(name,property){return"undefined"!=typeof this._components[name]?"undefined"!=typeof property?this._components[name][property]:this._components[name]:void 0}})}(window,document,jQuery); |
@ -0,0 +1,524 @@ |
|||
(function() { |
|||
|
|||
"use strict"; |
|||
|
|||
var TRANSITION_FALLBACK_DURATION = 500; |
|||
var hideElement = function(el) { |
|||
|
|||
if (! el) { |
|||
return; |
|||
} |
|||
|
|||
var removeThis = function() { |
|||
if (el && el.parentNode) { |
|||
el.parentNode.removeChild(el); |
|||
} |
|||
}; |
|||
|
|||
el.classList.remove("show"); |
|||
el.classList.add("hide"); |
|||
el.addEventListener("transitionend", removeThis); |
|||
|
|||
// Fallback for no transitions.
|
|||
setTimeout(removeThis, TRANSITION_FALLBACK_DURATION); |
|||
|
|||
}; |
|||
|
|||
function Alertify() { |
|||
|
|||
/** |
|||
* Alertify private object |
|||
* @type {Object} |
|||
*/ |
|||
var _alertify = { |
|||
|
|||
parent: document.body, |
|||
version: "1.0.10", |
|||
defaultOkLabel: "Ok", |
|||
okLabel: "Ok", |
|||
defaultCancelLabel: "Cancel", |
|||
cancelLabel: "Cancel", |
|||
defaultMaxLogItems: 2, |
|||
maxLogItems: 2, |
|||
promptValue: "", |
|||
promptPlaceholder: "", |
|||
closeLogOnClick: false, |
|||
closeLogOnClickDefault: false, |
|||
delay: 5000, |
|||
defaultDelay: 5000, |
|||
logContainerClass: "alertify-logs", |
|||
logContainerDefaultClass: "alertify-logs", |
|||
dialogs: { |
|||
buttons: { |
|||
holder: "<nav>{{buttons}}</nav>", |
|||
ok: "<button class='ok' tabindex='1'>{{ok}}</button>", |
|||
cancel: "<button class='cancel' tabindex='2'>{{cancel}}</button>" |
|||
}, |
|||
input: "<input type='text'>", |
|||
message: "<p class='msg'>{{message}}</p>", |
|||
log: "<div class='{{class}}'>{{message}}</div>" |
|||
}, |
|||
|
|||
defaultDialogs: { |
|||
buttons: { |
|||
holder: "<nav>{{buttons}}</nav>", |
|||
ok: "<button class='ok' tabindex='1'>{{ok}}</button>", |
|||
cancel: "<button class='cancel' tabindex='2'>{{cancel}}</button>" |
|||
}, |
|||
input: "<input type='text'>", |
|||
message: "<p class='msg'>{{message}}</p>", |
|||
log: "<div class='{{class}}'>{{message}}</div>" |
|||
}, |
|||
|
|||
/** |
|||
* Build the proper message box |
|||
* |
|||
* @param {Object} item Current object in the queue |
|||
* |
|||
* @return {String} An HTML string of the message box |
|||
*/ |
|||
build: function(item) { |
|||
|
|||
var btnTxt = this.dialogs.buttons.ok; |
|||
var html = "<div class='dialog'>" + "<div>" + this.dialogs.message.replace("{{message}}", item.message); |
|||
|
|||
if(item.type === "confirm" || item.type === "prompt") { |
|||
btnTxt = this.dialogs.buttons.cancel + this.dialogs.buttons.ok; |
|||
} |
|||
|
|||
if (item.type === "prompt") { |
|||
html += this.dialogs.input; |
|||
} |
|||
|
|||
html = (html + this.dialogs.buttons.holder + "</div>" + "</div>") |
|||
.replace("{{buttons}}", btnTxt) |
|||
.replace("{{ok}}", this.okLabel) |
|||
.replace("{{cancel}}", this.cancelLabel); |
|||
|
|||
return html; |
|||
|
|||
}, |
|||
|
|||
setCloseLogOnClick: function(bool) { |
|||
this.closeLogOnClick = !! bool; |
|||
}, |
|||
|
|||
/** |
|||
* Close the log messages |
|||
* |
|||
* @param {Object} elem HTML Element of log message to close |
|||
* @param {Number} wait [optional] Time (in ms) to wait before automatically hiding the message, if 0 never hide |
|||
* |
|||
* @return {undefined} |
|||
*/ |
|||
close: function(elem, wait) { |
|||
|
|||
if (this.closeLogOnClick) { |
|||
elem.addEventListener("click", function(ev) { |
|||
hideElement(ev.srcElement); |
|||
}); |
|||
} |
|||
|
|||
wait = wait && !isNaN(+wait) ? +wait : this.delay; |
|||
|
|||
if (wait < 0) { |
|||
hideElement(elem); |
|||
} else if(wait > 0) { |
|||
setTimeout(function() { |
|||
hideElement(elem); |
|||
}, wait); |
|||
} |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* Create a dialog box |
|||
* |
|||
* @param {String} message The message passed from the callee |
|||
* @param {String} type Type of dialog to create |
|||
* @param {Function} onOkay [Optional] Callback function when clicked okay. |
|||
* @param {Function} onCancel [Optional] Callback function when cancelled. |
|||
* |
|||
* @return {Object} |
|||
*/ |
|||
dialog: function(message, type, onOkay, onCancel) { |
|||
return this.setup({ |
|||
type: type, |
|||
message: message, |
|||
onOkay: onOkay, |
|||
onCancel: onCancel |
|||
}); |
|||
}, |
|||
|
|||
/** |
|||
* Show a new log message box |
|||
* |
|||
* @param {String} message The message passed from the callee |
|||
* @param {String} type [Optional] Optional type of log message |
|||
* @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding the log |
|||
* |
|||
* @return {Object} |
|||
*/ |
|||
log: function(message, type, click) { |
|||
|
|||
var existing = document.querySelectorAll(".alertify-logs > div"); |
|||
if (existing) { |
|||
var diff = existing.length - this.maxLogItems; |
|||
if (diff >= 0) { |
|||
for (var i = 0, _i = diff + 1; i < _i; i++) { |
|||
this.close(existing[i], -1); |
|||
} |
|||
} |
|||
} |
|||
|
|||
this.notify(message, type, click); |
|||
}, |
|||
|
|||
setLogPosition: function(str) { |
|||
this.logContainerClass = "alertify-logs " + str; |
|||
}, |
|||
|
|||
setupLogContainer: function() { |
|||
|
|||
var elLog = document.querySelector(".alertify-logs"); |
|||
var className = this.logContainerClass; |
|||
if (! elLog) { |
|||
elLog = document.createElement("div"); |
|||
elLog.className = className; |
|||
this.parent.appendChild(elLog); |
|||
} |
|||
|
|||
// Make sure it's positioned properly.
|
|||
if (elLog.className !== className) { |
|||
elLog.className = className; |
|||
} |
|||
|
|||
return elLog; |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* Add new log message |
|||
* If a type is passed, a class name "{type}" will get added. |
|||
* This allows for custom look and feel for various types of notifications. |
|||
* |
|||
* @param {String} message The message passed from the callee |
|||
* @param {String} type [Optional] Type of log message |
|||
* @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding |
|||
* |
|||
* @return {undefined} |
|||
*/ |
|||
notify: function(message, type, click) { |
|||
|
|||
var elLog = this.setupLogContainer(); |
|||
var log = document.createElement("div"); |
|||
|
|||
log.className = (type || "default"); |
|||
if (_alertify.logTemplateMethod) { |
|||
log.innerHTML = _alertify.logTemplateMethod(message); |
|||
} else { |
|||
log.innerHTML = message; |
|||
} |
|||
|
|||
// Add the click handler, if specified.
|
|||
if ("function" === typeof click) { |
|||
log.addEventListener("click", click); |
|||
} |
|||
|
|||
elLog.appendChild(log); |
|||
setTimeout(function() { |
|||
log.className += " show"; |
|||
}, 10); |
|||
|
|||
this.close(log, this.delay); |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* Initiate all the required pieces for the dialog box |
|||
* |
|||
* @return {undefined} |
|||
*/ |
|||
setup: function(item) { |
|||
|
|||
var el = document.createElement("div"); |
|||
el.className = "alertify hide"; |
|||
el.innerHTML = this.build(item); |
|||
|
|||
var btnOK = el.querySelector(".ok"); |
|||
var btnCancel = el.querySelector(".cancel"); |
|||
var input = el.querySelector("input"); |
|||
var label = el.querySelector("label"); |
|||
|
|||
// Set default value/placeholder of input
|
|||
if (input) { |
|||
if (typeof this.promptPlaceholder === "string") { |
|||
// Set the label, if available, for MDL, etc.
|
|||
if (label) { |
|||
label.textContent = this.promptPlaceholder; |
|||
} else { |
|||
input.placeholder = this.promptPlaceholder; |
|||
} |
|||
} |
|||
if (typeof this.promptValue === "string") { |
|||
input.value = this.promptValue; |
|||
} |
|||
} |
|||
|
|||
function setupHandlers(resolve) { |
|||
if ("function" !== typeof resolve) { |
|||
// promises are not available so resolve is a no-op
|
|||
resolve = function () {}; |
|||
} |
|||
|
|||
if (btnOK) { |
|||
btnOK.addEventListener("click", function(ev) { |
|||
if (item.onOkay && "function" === typeof item.onOkay) { |
|||
if (input) { |
|||
item.onOkay(input.value, ev); |
|||
} else { |
|||
item.onOkay(ev); |
|||
} |
|||
} |
|||
|
|||
if (input) { |
|||
resolve({ |
|||
buttonClicked: "ok", |
|||
inputValue: input.value, |
|||
event: ev |
|||
}); |
|||
} else { |
|||
resolve({ |
|||
buttonClicked: "ok", |
|||
event: ev |
|||
}); |
|||
} |
|||
|
|||
hideElement(el); |
|||
}); |
|||
} |
|||
|
|||
if (btnCancel) { |
|||
btnCancel.addEventListener("click", function(ev) { |
|||
if (item.onCancel && "function" === typeof item.onCancel) { |
|||
item.onCancel(ev); |
|||
} |
|||
|
|||
resolve({ |
|||
buttonClicked: "cancel", |
|||
event: ev |
|||
}); |
|||
|
|||
hideElement(el); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
var promise; |
|||
|
|||
if (typeof Promise === "function") { |
|||
promise = new Promise(setupHandlers); |
|||
} else { |
|||
setupHandlers(); |
|||
} |
|||
|
|||
this.parent.appendChild(el); |
|||
setTimeout(function() { |
|||
el.classList.remove("hide"); |
|||
if(input && item.type && item.type === "prompt") { |
|||
input.select(); |
|||
input.focus(); |
|||
} else { |
|||
if (btnOK) { |
|||
btnOK.focus(); |
|||
} |
|||
} |
|||
}, 100); |
|||
|
|||
return promise; |
|||
}, |
|||
|
|||
okBtn: function(label) { |
|||
this.okLabel = label; |
|||
return this; |
|||
}, |
|||
|
|||
setDelay: function(time) { |
|||
time = time || 0; |
|||
this.delay = isNaN(time) ? this.defaultDelay : parseInt(time, 10); |
|||
return this; |
|||
}, |
|||
|
|||
cancelBtn: function(str) { |
|||
this.cancelLabel = str; |
|||
return this; |
|||
}, |
|||
|
|||
setMaxLogItems: function(num) { |
|||
this.maxLogItems = parseInt(num || this.defaultMaxLogItems); |
|||
}, |
|||
|
|||
theme: function(themeStr) { |
|||
switch(themeStr.toLowerCase()) { |
|||
case "bootstrap": |
|||
this.dialogs.buttons.ok = "<button class='ok btn btn-primary' tabindex='1'>{{ok}}</button>"; |
|||
this.dialogs.buttons.cancel = "<button class='cancel btn btn-default' tabindex='2'>{{cancel}}</button>"; |
|||
this.dialogs.input = "<input type='text' class='form-control'>"; |
|||
break; |
|||
case "purecss": |
|||
this.dialogs.buttons.ok = "<button class='ok pure-button' tabindex='1'>{{ok}}</button>"; |
|||
this.dialogs.buttons.cancel = "<button class='cancel pure-button' tabindex='2'>{{cancel}}</button>"; |
|||
break; |
|||
case "mdl": |
|||
case "material-design-light": |
|||
this.dialogs.buttons.ok = "<button class='ok mdl-button mdl-js-button mdl-js-ripple-effect' tabindex='1'>{{ok}}</button>"; |
|||
this.dialogs.buttons.cancel = "<button class='cancel mdl-button mdl-js-button mdl-js-ripple-effect' tabindex='2'>{{cancel}}</button>"; |
|||
this.dialogs.input = "<div class='mdl-textfield mdl-js-textfield'><input class='mdl-textfield__input'><label class='md-textfield__label'></label></div>"; |
|||
break; |
|||
case "angular-material": |
|||
this.dialogs.buttons.ok = "<button class='ok md-primary md-button' tabindex='1'>{{ok}}</button>"; |
|||
this.dialogs.buttons.cancel = "<button class='cancel md-button' tabindex='2'>{{cancel}}</button>"; |
|||
this.dialogs.input = "<div layout='column'><md-input-container md-no-float><input type='text'></md-input-container></div>"; |
|||
break; |
|||
case "default": |
|||
default: |
|||
this.dialogs.buttons.ok = this.defaultDialogs.buttons.ok; |
|||
this.dialogs.buttons.cancel = this.defaultDialogs.buttons.cancel; |
|||
this.dialogs.input = this.defaultDialogs.input; |
|||
break; |
|||
} |
|||
}, |
|||
|
|||
reset: function() { |
|||
this.parent = document.body; |
|||
this.theme("default"); |
|||
this.okBtn(this.defaultOkLabel); |
|||
this.cancelBtn(this.defaultCancelLabel); |
|||
this.setMaxLogItems(); |
|||
this.promptValue = ""; |
|||
this.promptPlaceholder = ""; |
|||
this.delay = this.defaultDelay; |
|||
this.setCloseLogOnClick(this.closeLogOnClickDefault); |
|||
this.setLogPosition("bottom left"); |
|||
this.logTemplateMethod = null; |
|||
}, |
|||
|
|||
injectCSS: function() { |
|||
if (!document.querySelector("#alertifyCSS")) { |
|||
var head = document.getElementsByTagName("head")[0]; |
|||
var css = document.createElement("style"); |
|||
css.type = "text/css"; |
|||
css.id = "alertifyCSS"; |
|||
css.innerHTML = "/* style.css */"; |
|||
head.insertBefore(css, head.firstChild); |
|||
} |
|||
}, |
|||
|
|||
removeCSS: function() { |
|||
var css = document.querySelector("#alertifyCSS"); |
|||
if (css && css.parentNode) { |
|||
css.parentNode.removeChild(css); |
|||
} |
|||
} |
|||
|
|||
}; |
|||
|
|||
_alertify.injectCSS(); |
|||
|
|||
return { |
|||
_$$alertify: _alertify, |
|||
parent: function(elem) { |
|||
_alertify.parent = elem; |
|||
}, |
|||
reset: function() { |
|||
_alertify.reset(); |
|||
return this; |
|||
}, |
|||
alert: function(message, onOkay, onCancel) { |
|||
return _alertify.dialog(message, "alert", onOkay, onCancel) || this; |
|||
}, |
|||
confirm: function(message, onOkay, onCancel) { |
|||
return _alertify.dialog(message, "confirm", onOkay, onCancel) || this; |
|||
}, |
|||
prompt: function(message, onOkay, onCancel) { |
|||
return _alertify.dialog(message, "prompt", onOkay, onCancel) || this; |
|||
}, |
|||
log: function(message, click) { |
|||
_alertify.log(message, "default", click); |
|||
return this; |
|||
}, |
|||
theme: function(themeStr) { |
|||
_alertify.theme(themeStr); |
|||
return this; |
|||
}, |
|||
success: function(message, click) { |
|||
_alertify.log(message, "success", click); |
|||
return this; |
|||
}, |
|||
error: function(message, click) { |
|||
_alertify.log(message, "error", click); |
|||
return this; |
|||
}, |
|||
cancelBtn: function(label) { |
|||
_alertify.cancelBtn(label); |
|||
return this; |
|||
}, |
|||
okBtn: function(label) { |
|||
_alertify.okBtn(label); |
|||
return this; |
|||
}, |
|||
delay: function(time) { |
|||
_alertify.setDelay(time); |
|||
return this; |
|||
}, |
|||
placeholder: function(str) { |
|||
_alertify.promptPlaceholder = str; |
|||
return this; |
|||
}, |
|||
defaultValue: function(str) { |
|||
_alertify.promptValue = str; |
|||
return this; |
|||
}, |
|||
maxLogItems: function(num) { |
|||
_alertify.setMaxLogItems(num); |
|||
return this; |
|||
}, |
|||
closeLogOnClick: function(bool) { |
|||
_alertify.setCloseLogOnClick(!! bool); |
|||
return this; |
|||
}, |
|||
logPosition: function(str) { |
|||
_alertify.setLogPosition(str || ""); |
|||
return this; |
|||
}, |
|||
setLogTemplate: function(templateMethod) { |
|||
_alertify.logTemplateMethod = templateMethod; |
|||
return this; |
|||
}, |
|||
clearLogs: function() { |
|||
_alertify.setupLogContainer().innerHTML = ""; |
|||
return this; |
|||
}, |
|||
version: _alertify.version |
|||
}; |
|||
} |
|||
|
|||
// AMD, window, and NPM support
|
|||
if ("undefined" !== typeof module && !! module && !! module.exports) { |
|||
// Preserve backwards compatibility
|
|||
module.exports = function() { |
|||
return new Alertify(); |
|||
}; |
|||
var obj = new Alertify(); |
|||
for (var key in obj) { |
|||
module.exports[key] = obj[key]; |
|||
} |
|||
} else if (typeof define === "function" && define.amd) { |
|||
define(function() { |
|||
return new Alertify(); |
|||
}); |
|||
} else { |
|||
window.alertify = new Alertify(); |
|||
} |
|||
|
|||
}()); |
@ -0,0 +1 @@ |
|||
.alertify-logs>*{padding:12px 24px;color:#fff;border-radius:4px;-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.1);box-shadow:0 1px 4px 0 rgba(0,0,0,.1)}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:#f44336}.alertify-logs>.success{background:#4caf50}.alertify{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1700;width:100%;height:100%;background-color:rgba(0,0,0,.3)}.alertify.hide{pointer-events:none;opacity:0}.alertify,.alertify.hide,.alertify.show{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .33s cubic-bezier(.25,.8,.25,1);-o-transition:all .33s cubic-bezier(.25,.8,.25,1);transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{position:relative;top:50%;width:100%;margin:0 auto;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;padding:12px;margin:0 auto;text-align:center;background:#fff;border-radius:4px;-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);box-shadow:0 1px 4px 0 rgba(0,0,0,.1);box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin:0;margin-bottom:12px;text-align:left}.alertify .alert input,.alertify .dialog input{width:100%;height:36px;padding:6px 15px;margin-bottom:15px;font-size:14px;line-height:1.57142857;color:#757575;background-color:#fff;background-image:none;border:1px solid #e0e0e0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:-webkit-box-shadow .25s linear,border .25s linear,color .25s linear,background-color .25s linear;-o-transition:box-shadow .25s linear,border .25s linear,color .25s linear,background-color .25s linear;transition:box-shadow .25s linear,border .25s linear,color .25s linear,background-color .25s linear}.alertify .alert input:focus,.alertify .dialog input:focus{border-color:#3f51b5;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(63,81,181,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(63,81,181,.6)}.alertify .alert input.focus,.alertify .alert input:focus,.alertify .dialog input.focus,.alertify .dialog input:focus{border-color:#3f51b5;-webkit-box-shadow:none;box-shadow:none}.alertify .alert input::-moz-placeholder,.alertify .dialog input::-moz-placeholder{color:#9e9e9e;opacity:1}.alertify .alert input:-ms-input-placeholder,.alertify .dialog input:-ms-input-placeholder{color:#9e9e9e}.alertify .alert input::-webkit-input-placeholder,.alertify .dialog input::-webkit-input-placeholder{color:#9e9e9e}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav .btn,.alertify .dialog nav .btn{margin:4px 5px}.alertify-logs{position:fixed;right:16px;bottom:16px;z-index:1699}.alertify-logs>*{position:relative;float:right;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-top:10px;clear:both;-webkit-transition:all .3s cubic-bezier(.25,.8,.25,1);-o-transition:all .3s cubic-bezier(.25,.8,.25,1);transition:all .3s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.alertify-logs>.show{right:0;opacity:1}.alertify-logs>*,.alertify-logs>.hide{right:-100%;opacity:0} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,8 @@ |
|||
/*! |
|||
* animsition v3.6.0 |
|||
* A simple and easy jQuery plugin for CSS animated page transitions. |
|||
* http://blivesta.github.io/animsition
|
|||
* License : MIT |
|||
* Author : blivesta (http://blivesta.com/)
|
|||
*/ |
|||
!function(n){"use strict";"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof exports?module.exports=n(require("jquery")):n(jQuery)}(function(n){"use strict";var a="animsition",i={init:function(t){t=n.extend({inClass:"fade-in",outClass:"fade-out",inDuration:1500,outDuration:800,linkElement:".animsition-link",loading:!0,loadingParentElement:"body",loadingClass:"animsition-loading",unSupportCss:["animation-duration","-webkit-animation-duration","-o-animation-duration"],overlay:!1,overlayClass:"animsition-overlay-slide",overlayParentElement:"body"},t);var o=i.supportCheck.call(this,t);if(!o&&t.unSupportCss.length>0&&(!o||!this.length))return"console"in window||(window.console={},window.console.log=function(n){return n}),this.length||console.log("Animsition: Element does not exist on page."),o||console.log("Animsition: Does not support this browser."),i.destroy.call(this);var e=i.optionCheck.call(this,t);return e&&i.addOverlay.call(this,t),t.loading&&i.addLoading.call(this,t),this.each(function(){var o=this,e=n(this),s=n(window),l=e.data(a);l||(t=n.extend({},t),e.data(a,{options:t}),s.on("load."+a+" pageshow."+a,function(){i.pageIn.call(o)}),s.on("unload."+a,function(){}),n(t.linkElement).on("click."+a,function(a){a.preventDefault();var t=n(this),e=t.attr("href");2===a.which||a.metaKey||a.shiftKey||-1!==navigator.platform.toUpperCase().indexOf("WIN")&&a.ctrlKey?window.open(e,"_blank"):i.pageOut.call(o,t,e)}))})},addOverlay:function(a){n(a.overlayParentElement).prepend('<div class="'+a.overlayClass+'"></div>')},addLoading:function(a){n(a.loadingParentElement).append('<div class="'+a.loadingClass+'"></div>')},removeLoading:function(){var i=n(this),t=i.data(a).options,o=n(t.loadingParentElement).children("."+t.loadingClass);o.fadeOut().remove()},supportCheck:function(a){var i=n(this),t=a.unSupportCss,o=t.length,e=!1;0===o&&(e=!0);for(var s=0;o>s;s++)if("string"==typeof i.css(t[s])){e=!0;break}return e},optionCheck:function(a){var i,t=n(this);return i=a.overlay||t.data("animsition-overlay")?!0:!1},animationCheck:function(i,t,o){var e=n(this),s=e.data(a).options,l=typeof i,r=!t&&"number"===l,c=t&&"string"===l&&i.length>0;return r||c?i=i:t&&o?i=s.inClass:!t&&o?i=s.inDuration:t&&!o?i=s.outClass:t||o||(i=s.outDuration),i},pageIn:function(){var t=this,o=n(this),e=o.data(a).options,s=o.data("animsition-in-duration"),l=o.data("animsition-in"),r=i.animationCheck.call(t,s,!1,!0),c=i.animationCheck.call(t,l,!0,!0),d=i.optionCheck.call(t,e);e.loading&&i.removeLoading.call(t),d?i.pageInOverlay.call(t,c,r):i.pageInBasic.call(t,c,r)},pageInBasic:function(a,i){var t=n(this);t.trigger("animsition.start").css({"animation-duration":i/1e3+"s"}).addClass(a).animateCallback(function(){t.removeClass(a).css({opacity:1}).trigger("animsition.end")})},pageInOverlay:function(i,t){var o=n(this),e=o.data(a).options;o.trigger("animsition.start").css({opacity:1}),n(e.overlayParentElement).children("."+e.overlayClass).css({"animation-duration":t/1e3+"s"}).addClass(i).animateCallback(function(){o.trigger("animsition.end")})},pageOut:function(t,o){var e=this,s=n(this),l=s.data(a).options,r=t.data("animsition-out"),c=s.data("animsition-out"),d=t.data("animsition-out-duration"),u=s.data("animsition-out-duration"),m=r?r:c,h=d?d:u,p=i.animationCheck.call(e,m,!0,!1),f=i.animationCheck.call(e,h,!1,!1),g=i.optionCheck.call(e,l);g?i.pageOutOverlay.call(e,p,f,o):i.pageOutBasic.call(e,p,f,o)},pageOutBasic:function(a,i,t){var o=n(this);o.css({"animation-duration":i/1e3+"s"}).addClass(a).animateCallback(function(){location.href=t})},pageOutOverlay:function(t,o,e){var s=this,l=n(this),r=l.data(a).options,c=l.data("animsition-in"),d=i.animationCheck.call(s,c,!0,!0);n(r.overlayParentElement).children("."+r.overlayClass).css({"animation-duration":o/1e3+"s"}).removeClass(d).addClass(t).animateCallback(function(){location.href=e})},destroy:function(){return this.each(function(){var i=n(this);n(window).unbind("."+a),i.css({opacity:1}).removeData(a)})}};n.fn.animateCallback=function(a){var i="animationend webkitAnimationEnd mozAnimationEnd oAnimationEnd MSAnimationEnd";return this.each(function(){n(this).bind(i,function(){return n(this).unbind(i),a.call(this)})})},n.fn.animsition=function(t){return i[t]?i[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void n.error("Method "+t+" does not exist on jQuery."+a):i.init.apply(this,arguments)}}); |
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
/*! jQuery asProgress - v0.1.1 - 2014-12-09 |
|||
* https://github.com/amazingSurge/jquery-asProgress
|
|||
* Copyright (c) 2014 amazingSurge; Licensed GPL */ |
|||
!function(a,b,c){"use strict";function d(a){return"string"==typeof a&&-1!=a.indexOf("%")}function e(){return"undefined"!=typeof c.performance&&c.performance.now?c.performance.now():Date.now()}Date.now||(Date.now=function(){return(new Date).getTime()});for(var f=["webkit","moz"],g=0;g<f.length&&!c.requestAnimationFrame;++g){var h=f[g];c.requestAnimationFrame=c[h+"RequestAnimationFrame"],c.cancelAnimationFrame=c[h+"CancelAnimationFrame"]||c[h+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS (6|7)/.test(c.navigator.userAgent)||!c.requestAnimationFrame||!c.cancelAnimationFrame){var i=0;c.requestAnimationFrame=function(a){var b=Date.now(),c=Math.max(i+16,b);return setTimeout(function(){a(i=c)},c-b)},c.cancelAnimationFrame=clearTimeout}var j="asProgress",k=a[j]=function(b,c){this.element=b,this.$element=a(b),this.options=a.extend({},k.defaults,c,this.$element.data()),this.options.bootstrap?(this.namespace="progress",this.$target=this.$element.find(".progress-bar"),this.classes={label:this.namespace+"-label",bar:this.namespace+"-bar"}):(this.namespace=this.options.namespace,this.classes={label:this.namespace+"__label",bar:this.namespace+"__bar"},this.$target=this.$element,this.$element.addClass(this.namespace)),this.easing=k.easing[this.options.easing]||k.easing.ease,this.min=this.$target.attr("aria-valuemin"),this.max=this.$target.attr("aria-valuemax"),this.min=this.min?parseInt(this.min,10):this.options.min,this.max=this.max?parseInt(this.max,10):this.options.max,this.first=this.$target.attr("aria-valuenow"),this.first=this.first?parseInt(this.first,10):this.min,this.now=this.first,this.goal=this.options.goal,this._frameId=null,this.initialized=!1,this._trigger("init"),this.init()};k.defaults={namespace:"asProgress",bootstrap:!1,min:0,max:100,goal:100,speed:20,easing:"ease",labelCallback:function(a){var b=this.getPercentage(a);return b+"%"}};var l=function(a,b,c,d){function e(a,b){return 1-3*b+3*a}function f(a,b){return 3*b-6*a}function g(a){return 3*a}function h(a,b,c){return((e(b,c)*a+f(b,c))*a+g(b))*a}function i(a,b,c){return 3*e(b,c)*a*a+2*f(b,c)*a+g(b)}function j(b){for(var d=b,e=0;4>e;++e){var f=i(d,a,c);if(0===f)return d;var g=h(d,a,c)-b;d-=g/f}return d}return a===b&&c===d?{css:"linear",fn:function(a){return a}}:{css:"cubic-bezier("+a+","+b+","+c+","+d+")",fn:function(a){return h(j(a),b,d)}}};a.extend(k.easing={},{ease:l(.25,.1,.25,1),linear:l(0,0,1,1),"ease-in":l(.42,0,1,1),"ease-out":l(0,0,.58,1),"ease-in-out":l(.42,0,.58,1)}),k.prototype={constructor:k,init:function(){this.$bar=this.$element.find("."+this.classes.bar),this.$label=this.$element.find("."+this.classes.label),this.reset(),this.initialized=!0,this._trigger("ready")},_trigger:function(a){var b=Array.prototype.slice.call(arguments,1),c=[this].concat(b);this.$element.trigger(j+"::"+a,c),a=a.replace(/\b\w+\b/g,function(a){return a.substring(0,1).toUpperCase()+a.substring(1)});var d="on"+a;"function"==typeof this.options[d]&&this.options[d].apply(this,b)},getPercentage:function(a){return Math.round(100*(a-this.min)/(this.max-this.min))},go:function(a){var b=this;this._clear(),d(a)&&(a=parseInt(a.replace("%",""),10),a=Math.round(this.min+a/100*(this.max-this.min))),"undefined"==typeof a&&(a=this.goal),a>this.max?a=this.max:a<this.min&&(a=this.min);var f=b.now,g=e(),h=function(d){var e=(d-g)/b.options.speed,i=Math.round(b.easing.fn(e/100)*(b.max-b.min));a>f?(i=f+i,i>a&&(i=a)):(i=f-i,a>i&&(i=a)),b._update(i),i===a?(c.cancelAnimationFrame(b._frameId),b._frameId=null,b.now===b.goal&&b._trigger("finish")):b._frameId=c.requestAnimationFrame(h)};b._frameId=c.requestAnimationFrame(h)},_update:function(a){this.now=a;var b=this.getPercentage(this.now);this.$bar.css("width",b+"%"),this.$target.attr("aria-valuenow",this.now),this.$label.length>0&&"function"==typeof this.options.labelCallback&&this.$label.html(this.options.labelCallback.call(this,[this.now])),this._trigger("update",a)},get:function(){return this.now},start:function(){this._clear(),this._trigger("start"),this.go(this.goal)},_clear:function(){this._frameId&&(c.cancelAnimationFrame(this._frameId),this._frameId=null)},reset:function(){this._clear(),this._update(this.first),this._trigger("reset")},stop:function(){this._clear(),this._trigger("stop")},finish:function(){this._clear(),this._update(this.goal),this._trigger("finish")},destory:function(){this.$element.data(j,null),this._trigger("destory")}},a.fn[j]=function(b){if("string"!=typeof b)return this.each(function(){a.data(this,j)||a.data(this,j,new k(this,b))});var c=b,d=Array.prototype.slice.call(arguments,1);if(/^\_/.test(c))return!1;if(!/^(get)$/.test(c))return this.each(function(){var b=a.data(this,j);b&&"function"==typeof b[c]&&b[c].apply(b,d)});var e=this.first().data(j);return e&&"function"==typeof e[c]?e[c].apply(e,d):void 0}}(jQuery,document,window); |
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||
.scrollable.is-enabled{overflow:hidden!important}.is-enabled .scrollable-container{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important;overflow:hidden!important}.is-enabled .scrollable-container::-webkit-scrollbar{width:0;height:0;-webkit-appearance:none}.scrollable-vertical.is-enabled .scrollable-container{overflow-y:scroll!important}.scrollable-horizontal.is-enabled .scrollable-container{overflow-x:scroll!important}.is-enabled .scrollable-content{position:relative!important;overflow:visible!important}.is-enabled .scrollable-content:after,.is-enabled .scrollable-content:before{display:table;content:" "}.is-enabled .scrollable-content:after{clear:both}.scrollable-bar{position:absolute;right:0;bottom:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;line-height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:2px;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s;user-focus:ignore;user-input:disabled;-webkit-touch-callout:none}.is-disabled .scrollable-bar{display:none}.scrollable-bar-hide{opacity:0;-webkit-transition-delay:.4s;-o-transition-delay:.4s;transition-delay:.4s}.scrollable-bar.is-dragging{opacity:1}.scrollable-bar.is-disabled{display:none}.scrollable-bar-handle{position:absolute;top:0;left:0;line-height:0;cursor:pointer;background:rgba(158,158,158,.6);border-radius:2px;-webkit-transition:width,height .5s;-o-transition:width,height .5s;transition:width,height .5s}.scrollable-bar-vertical{width:4px;height:100%;height:-webkit-calc(100% - 2*4px);height:calc(100% - 2*4px);margin:4px 2px}.scrollable-bar-vertical .scrollable-bar-handle{width:100%}.scrollable-bar-horizontal{width:100%;width:-webkit-calc(100% - 2*4px);width:calc(100% - 2*4px);height:4px;margin:2px 4px}.scrollable-bar-vertical.is-dragging,.scrollable-bar-vertical.is-hovering{width:8px;margin:4px 1px}.scrollable-bar-horizontal.is-dragging,.scrollable-bar-horizontal.is-hovering{height:8px;margin:1px 4px}.scrollable-bar-horizontal .scrollable-bar-handle{height:100%}.scrollable.is-dragging .scrollable-handle,.scrollable.is-hovering .scrollable-handle{border-radius:8px}.scrollable.is-dragging .scrollable-bar-handle,.scrollable.is-hovering .scrollable-bar-handle{border-radius:8px}.scrollable.is-scrolling .scrollable-bar{opacity:1;-webkit-transition:opacity 0;-o-transition:opacity 0;transition:opacity 0}.scrollable.is-dragging{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;user-focus:ignore;user-input:disabled;-webkit-touch-callout:none}.scrollable.is-dragging .scrollable-bar-handle{background:rgba(158,158,158,.8)!important}.scrollable-inverse.scrollable .scrollable-bar-handle{background:rgba(238,238,238,.5)}.scrollable-inverse.scrollable.is-dragging .scrollable-bar-handle{background:rgba(238,238,238,.8)!important}.scrollable-shadow.scrollable.is-dragging .scrollable-bar,.scrollable-shadow.scrollable.is-hovering .scrollable-bar{background:rgba(224,224,224,.5)}.scrollable-inverse.scrollable-shadow.scrollable.is-dragging .scrollable-bar,.scrollable-inverse.scrollable-shadow.scrollable.is-hovering .scrollable-bar{background:rgba(238,238,238,.3)} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,990 @@ |
|||
/** |
|||
* bootbox.js [master branch] |
|||
* |
|||
* http://bootboxjs.com/license.txt
|
|||
*/ |
|||
|
|||
// @see https://github.com/makeusabrew/bootbox/issues/180
|
|||
// @see https://github.com/makeusabrew/bootbox/issues/186
|
|||
(function (root, factory) { |
|||
|
|||
"use strict"; |
|||
if (typeof define === "function" && define.amd) { |
|||
// AMD. Register as an anonymous module.
|
|||
define(["jquery"], factory); |
|||
} else if (typeof exports === "object") { |
|||
// Node. Does not work with strict CommonJS, but
|
|||
// only CommonJS-like environments that support module.exports,
|
|||
// like Node.
|
|||
module.exports = factory(require("jquery")); |
|||
} else { |
|||
// Browser globals (root is window)
|
|||
root.bootbox = factory(root.jQuery); |
|||
} |
|||
|
|||
}(this, function init($, undefined) { |
|||
|
|||
"use strict"; |
|||
|
|||
// the base DOM structure needed to create a modal
|
|||
var templates = { |
|||
dialog: |
|||
"<div class='bootbox modal' tabindex='-1' role='dialog' aria-hidden='true'>" + |
|||
"<div class='modal-dialog'>" + |
|||
"<div class='modal-content'>" + |
|||
"<div class='modal-body'><div class='bootbox-body'></div></div>" + |
|||
"</div>" + |
|||
"</div>" + |
|||
"</div>", |
|||
header: |
|||
"<div class='modal-header'>" + |
|||
"<h4 class='modal-title'></h4>" + |
|||
"</div>", |
|||
footer: |
|||
"<div class='modal-footer'></div>", |
|||
closeButton: |
|||
"<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>×</button>", |
|||
form: |
|||
"<form class='bootbox-form'></form>", |
|||
inputs: { |
|||
text: |
|||
"<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />", |
|||
textarea: |
|||
"<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>", |
|||
email: |
|||
"<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />", |
|||
select: |
|||
"<select class='bootbox-input bootbox-input-select form-control'></select>", |
|||
checkbox: |
|||
"<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>", |
|||
date: |
|||
"<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />", |
|||
time: |
|||
"<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />", |
|||
number: |
|||
"<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />", |
|||
password: |
|||
"<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />" |
|||
} |
|||
}; |
|||
|
|||
var defaults = { |
|||
// default language
|
|||
locale: "en", |
|||
// show backdrop or not. Default to static so user has to interact with dialog
|
|||
backdrop: "static", |
|||
// animate the modal in/out
|
|||
animate: true, |
|||
// additional class string applied to the top level dialog
|
|||
className: null, |
|||
// whether or not to include a close button
|
|||
closeButton: true, |
|||
// show the dialog immediately by default
|
|||
show: true, |
|||
// dialog container
|
|||
container: "body" |
|||
}; |
|||
|
|||
// our public object; augmented after our private API
|
|||
var exports = {}; |
|||
|
|||
/** |
|||
* @private |
|||
*/ |
|||
function _t(key) { |
|||
var locale = locales[defaults.locale]; |
|||
return locale ? locale[key] : locales.en[key]; |
|||
} |
|||
|
|||
function processCallback(e, dialog, callback) { |
|||
e.stopPropagation(); |
|||
e.preventDefault(); |
|||
|
|||
// by default we assume a callback will get rid of the dialog,
|
|||
// although it is given the opportunity to override this
|
|||
|
|||
// so, if the callback can be invoked and it *explicitly returns false*
|
|||
// then we'll set a flag to keep the dialog active...
|
|||
var preserveDialog = $.isFunction(callback) && callback.call(dialog, e) === false; |
|||
|
|||
// ... otherwise we'll bin it
|
|||
if (!preserveDialog) { |
|||
dialog.modal("hide"); |
|||
} |
|||
} |
|||
|
|||
function getKeyLength(obj) { |
|||
// @TODO defer to Object.keys(x).length if available?
|
|||
var k, t = 0; |
|||
for (k in obj) { |
|||
t ++; |
|||
} |
|||
return t; |
|||
} |
|||
|
|||
function each(collection, iterator) { |
|||
var index = 0; |
|||
$.each(collection, function(key, value) { |
|||
iterator(key, value, index++); |
|||
}); |
|||
} |
|||
|
|||
function sanitize(options) { |
|||
var buttons; |
|||
var total; |
|||
|
|||
if (typeof options !== "object") { |
|||
throw new Error("Please supply an object of options"); |
|||
} |
|||
|
|||
if (!options.message) { |
|||
throw new Error("Please specify a message"); |
|||
} |
|||
|
|||
// make sure any supplied options take precedence over defaults
|
|||
options = $.extend({}, defaults, options); |
|||
|
|||
if (!options.buttons) { |
|||
options.buttons = {}; |
|||
} |
|||
|
|||
buttons = options.buttons; |
|||
|
|||
total = getKeyLength(buttons); |
|||
|
|||
each(buttons, function(key, button, index) { |
|||
|
|||
if ($.isFunction(button)) { |
|||
// short form, assume value is our callback. Since button
|
|||
// isn't an object it isn't a reference either so re-assign it
|
|||
button = buttons[key] = { |
|||
callback: button |
|||
}; |
|||
} |
|||
|
|||
// before any further checks make sure by now button is the correct type
|
|||
if ($.type(button) !== "object") { |
|||
throw new Error("button with key " + key + " must be an object"); |
|||
} |
|||
|
|||
if (!button.label) { |
|||
// the lack of an explicit label means we'll assume the key is good enough
|
|||
button.label = key; |
|||
} |
|||
|
|||
if (!button.className) { |
|||
if (total <= 2 && index === total-1) { |
|||
// always add a primary to the main option in a two-button dialog
|
|||
button.className = "btn-primary"; |
|||
} else { |
|||
button.className = "btn-default"; |
|||
} |
|||
} |
|||
}); |
|||
|
|||
return options; |
|||
} |
|||
|
|||
/** |
|||
* map a flexible set of arguments into a single returned object |
|||
* if args.length is already one just return it, otherwise |
|||
* use the properties argument to map the unnamed args to |
|||
* object properties |
|||
* so in the latter case: |
|||
* mapArguments(["foo", $.noop], ["message", "callback"]) |
|||
* -> { message: "foo", callback: $.noop } |
|||
*/ |
|||
function mapArguments(args, properties) { |
|||
var argn = args.length; |
|||
var options = {}; |
|||
|
|||
if (argn < 1 || argn > 2) { |
|||
throw new Error("Invalid argument length"); |
|||
} |
|||
|
|||
if (argn === 2 || typeof args[0] === "string") { |
|||
options[properties[0]] = args[0]; |
|||
options[properties[1]] = args[1]; |
|||
} else { |
|||
options = args[0]; |
|||
} |
|||
|
|||
return options; |
|||
} |
|||
|
|||
/** |
|||
* merge a set of default dialog options with user supplied arguments |
|||
*/ |
|||
function mergeArguments(defaults, args, properties) { |
|||
return $.extend( |
|||
// deep merge
|
|||
true, |
|||
// ensure the target is an empty, unreferenced object
|
|||
{}, |
|||
// the base options object for this type of dialog (often just buttons)
|
|||
defaults, |
|||
// args could be an object or array; if it's an array properties will
|
|||
// map it to a proper options object
|
|||
mapArguments( |
|||
args, |
|||
properties |
|||
) |
|||
); |
|||
} |
|||
|
|||
/** |
|||
* this entry-level method makes heavy use of composition to take a simple |
|||
* range of inputs and return valid options suitable for passing to bootbox.dialog |
|||
*/ |
|||
function mergeDialogOptions(className, labels, properties, args) { |
|||
// build up a base set of dialog properties
|
|||
var baseOptions = { |
|||
className: "bootbox-" + className, |
|||
buttons: createLabels.apply(null, labels) |
|||
}; |
|||
|
|||
// ensure the buttons properties generated, *after* merging
|
|||
// with user args are still valid against the supplied labels
|
|||
return validateButtons( |
|||
// merge the generated base properties with user supplied arguments
|
|||
mergeArguments( |
|||
baseOptions, |
|||
args, |
|||
// if args.length > 1, properties specify how each arg maps to an object key
|
|||
properties |
|||
), |
|||
labels |
|||
); |
|||
} |
|||
|
|||
/** |
|||
* from a given list of arguments return a suitable object of button labels |
|||
* all this does is normalise the given labels and translate them where possible |
|||
* e.g. "ok", "confirm" -> { ok: "OK, cancel: "Annuleren" } |
|||
*/ |
|||
function createLabels() { |
|||
var buttons = {}; |
|||
|
|||
for (var i = 0, j = arguments.length; i < j; i++) { |
|||
var argument = arguments[i]; |
|||
var key = argument.toLowerCase(); |
|||
var value = argument.toUpperCase(); |
|||
|
|||
buttons[key] = { |
|||
label: _t(value) |
|||
}; |
|||
} |
|||
|
|||
return buttons; |
|||
} |
|||
|
|||
function validateButtons(options, buttons) { |
|||
var allowedButtons = {}; |
|||
each(buttons, function(key, value) { |
|||
allowedButtons[value] = true; |
|||
}); |
|||
|
|||
each(options.buttons, function(key) { |
|||
if (allowedButtons[key] === undefined) { |
|||
throw new Error("button key " + key + " is not allowed (options are " + buttons.join("\n") + ")"); |
|||
} |
|||
}); |
|||
|
|||
return options; |
|||
} |
|||
|
|||
exports.alert = function() { |
|||
var options; |
|||
|
|||
options = mergeDialogOptions("alert", ["ok"], ["message", "callback"], arguments); |
|||
|
|||
if (options.callback && !$.isFunction(options.callback)) { |
|||
throw new Error("alert requires callback property to be a function when provided"); |
|||
} |
|||
|
|||
/** |
|||
* overrides |
|||
*/ |
|||
options.buttons.ok.callback = options.onEscape = function() { |
|||
if ($.isFunction(options.callback)) { |
|||
return options.callback.call(this); |
|||
} |
|||
return true; |
|||
}; |
|||
|
|||
return exports.dialog(options); |
|||
}; |
|||
|
|||
exports.confirm = function() { |
|||
var options; |
|||
|
|||
options = mergeDialogOptions("confirm", ["cancel", "confirm"], ["message", "callback"], arguments); |
|||
|
|||
/** |
|||
* overrides; undo anything the user tried to set they shouldn't have |
|||
*/ |
|||
options.buttons.cancel.callback = options.onEscape = function() { |
|||
return options.callback.call(this, false); |
|||
}; |
|||
|
|||
options.buttons.confirm.callback = function() { |
|||
return options.callback.call(this, true); |
|||
}; |
|||
|
|||
// confirm specific validation
|
|||
if (!$.isFunction(options.callback)) { |
|||
throw new Error("confirm requires a callback"); |
|||
} |
|||
|
|||
return exports.dialog(options); |
|||
}; |
|||
|
|||
exports.prompt = function() { |
|||
var options; |
|||
var defaults; |
|||
var dialog; |
|||
var form; |
|||
var input; |
|||
var shouldShow; |
|||
var inputOptions; |
|||
|
|||
// we have to create our form first otherwise
|
|||
// its value is undefined when gearing up our options
|
|||
// @TODO this could be solved by allowing message to
|
|||
// be a function instead...
|
|||
form = $(templates.form); |
|||
|
|||
// prompt defaults are more complex than others in that
|
|||
// users can override more defaults
|
|||
// @TODO I don't like that prompt has to do a lot of heavy
|
|||
// lifting which mergeDialogOptions can *almost* support already
|
|||
// just because of 'value' and 'inputType' - can we refactor?
|
|||
defaults = { |
|||
className: "bootbox-prompt", |
|||
buttons: createLabels("cancel", "confirm"), |
|||
value: "", |
|||
inputType: "text" |
|||
}; |
|||
|
|||
options = validateButtons( |
|||
mergeArguments(defaults, arguments, ["title", "callback"]), |
|||
["cancel", "confirm"] |
|||
); |
|||
|
|||
// capture the user's show value; we always set this to false before
|
|||
// spawning the dialog to give us a chance to attach some handlers to
|
|||
// it, but we need to make sure we respect a preference not to show it
|
|||
shouldShow = (options.show === undefined) ? true : options.show; |
|||
|
|||
/** |
|||
* overrides; undo anything the user tried to set they shouldn't have |
|||
*/ |
|||
options.message = form; |
|||
|
|||
options.buttons.cancel.callback = options.onEscape = function() { |
|||
return options.callback.call(this, null); |
|||
}; |
|||
|
|||
options.buttons.confirm.callback = function() { |
|||
var value; |
|||
|
|||
switch (options.inputType) { |
|||
case "text": |
|||
case "textarea": |
|||
case "email": |
|||
case "select": |
|||
case "date": |
|||
case "time": |
|||
case "number": |
|||
case "password": |
|||
value = input.val(); |
|||
break; |
|||
|
|||
case "checkbox": |
|||
var checkedItems = input.find("input:checked"); |
|||
|
|||
// we assume that checkboxes are always multiple,
|
|||
// hence we default to an empty array
|
|||
value = []; |
|||
|
|||
each(checkedItems, function(_, item) { |
|||
value.push($(item).val()); |
|||
}); |
|||
break; |
|||
} |
|||
|
|||
return options.callback.call(this, value); |
|||
}; |
|||
|
|||
options.show = false; |
|||
|
|||
// prompt specific validation
|
|||
if (!options.title) { |
|||
throw new Error("prompt requires a title"); |
|||
} |
|||
|
|||
if (!$.isFunction(options.callback)) { |
|||
throw new Error("prompt requires a callback"); |
|||
} |
|||
|
|||
if (!templates.inputs[options.inputType]) { |
|||
throw new Error("invalid prompt type"); |
|||
} |
|||
|
|||
// create the input based on the supplied type
|
|||
input = $(templates.inputs[options.inputType]); |
|||
|
|||
switch (options.inputType) { |
|||
case "text": |
|||
case "textarea": |
|||
case "email": |
|||
case "date": |
|||
case "time": |
|||
case "number": |
|||
case "password": |
|||
input.val(options.value); |
|||
break; |
|||
|
|||
case "select": |
|||
var groups = {}; |
|||
inputOptions = options.inputOptions || []; |
|||
|
|||
if (!$.isArray(inputOptions)) { |
|||
throw new Error("Please pass an array of input options"); |
|||
} |
|||
|
|||
if (!inputOptions.length) { |
|||
throw new Error("prompt with select requires options"); |
|||
} |
|||
|
|||
each(inputOptions, function(_, option) { |
|||
|
|||
// assume the element to attach to is the input...
|
|||
var elem = input; |
|||
|
|||
if (option.value === undefined || option.text === undefined) { |
|||
throw new Error("given options in wrong format"); |
|||
} |
|||
|
|||
// ... but override that element if this option sits in a group
|
|||
|
|||
if (option.group) { |
|||
// initialise group if necessary
|
|||
if (!groups[option.group]) { |
|||
groups[option.group] = $("<optgroup/>").attr("label", option.group); |
|||
} |
|||
|
|||
elem = groups[option.group]; |
|||
} |
|||
|
|||
elem.append("<option value='" + option.value + "'>" + option.text + "</option>"); |
|||
}); |
|||
|
|||
each(groups, function(_, group) { |
|||
input.append(group); |
|||
}); |
|||
|
|||
// safe to set a select's value as per a normal input
|
|||
input.val(options.value); |
|||
break; |
|||
|
|||
case "checkbox": |
|||
var values = $.isArray(options.value) ? options.value : [options.value]; |
|||
inputOptions = options.inputOptions || []; |
|||
|
|||
if (!inputOptions.length) { |
|||
throw new Error("prompt with checkbox requires options"); |
|||
} |
|||
|
|||
if (!inputOptions[0].value || !inputOptions[0].text) { |
|||
throw new Error("given options in wrong format"); |
|||
} |
|||
|
|||
// checkboxes have to nest within a containing element, so
|
|||
// they break the rules a bit and we end up re-assigning
|
|||
// our 'input' element to this container instead
|
|||
input = $("<div/>"); |
|||
|
|||
each(inputOptions, function(_, option) { |
|||
var checkbox = $(templates.inputs[options.inputType]); |
|||
|
|||
checkbox.find("input").attr("value", option.value); |
|||
checkbox.find("label").append(option.text); |
|||
|
|||
// we've ensured values is an array so we can always iterate over it
|
|||
each(values, function(_, value) { |
|||
if (value === option.value) { |
|||
checkbox.find("input").prop("checked", true); |
|||
} |
|||
}); |
|||
|
|||
input.append(checkbox); |
|||
}); |
|||
break; |
|||
} |
|||
|
|||
// @TODO provide an attributes option instead
|
|||
// and simply map that as keys: vals
|
|||
if (options.placeholder) { |
|||
input.attr("placeholder", options.placeholder); |
|||
} |
|||
|
|||
if (options.pattern) { |
|||
input.attr("pattern", options.pattern); |
|||
} |
|||
|
|||
if (options.maxlength) { |
|||
input.attr("maxlength", options.maxlength); |
|||
} |
|||
|
|||
// now place it in our form
|
|||
form.append(input); |
|||
|
|||
form.on("submit", function(e) { |
|||
e.preventDefault(); |
|||
// Fix for SammyJS (or similar JS routing library) hijacking the form post.
|
|||
e.stopPropagation(); |
|||
// @TODO can we actually click *the* button object instead?
|
|||
// e.g. buttons.confirm.click() or similar
|
|||
dialog.find(".btn-primary").click(); |
|||
}); |
|||
|
|||
dialog = exports.dialog(options); |
|||
|
|||
// clear the existing handler focusing the submit button...
|
|||
dialog.off("shown.bs.modal"); |
|||
|
|||
// ...and replace it with one focusing our input, if possible
|
|||
dialog.on("shown.bs.modal", function() { |
|||
// need the closure here since input isn't
|
|||
// an object otherwise
|
|||
input.focus(); |
|||
}); |
|||
|
|||
if (shouldShow === true) { |
|||
dialog.modal("show"); |
|||
} |
|||
|
|||
return dialog; |
|||
}; |
|||
|
|||
exports.dialog = function(options) { |
|||
options = sanitize(options); |
|||
|
|||
var dialog = $(templates.dialog); |
|||
var innerDialog = dialog.find(".modal-dialog"); |
|||
var body = dialog.find(".modal-body"); |
|||
var buttons = options.buttons; |
|||
var buttonStr = ""; |
|||
var callbacks = { |
|||
onEscape: options.onEscape |
|||
}; |
|||
|
|||
if ($.fn.modal === undefined) { |
|||
throw new Error( |
|||
"$.fn.modal is not defined; please double check you have included " + |
|||
"the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ " + |
|||
"for more details." |
|||
); |
|||
} |
|||
|
|||
each(buttons, function(key, button) { |
|||
|
|||
// @TODO I don't like this string appending to itself; bit dirty. Needs reworking
|
|||
// can we just build up button elements instead? slower but neater. Then button
|
|||
// can just become a template too
|
|||
buttonStr += "<button data-bb-handler='" + key + "' type='button' class='btn " + button.className + "'>" + button.label + "</button>"; |
|||
callbacks[key] = button.callback; |
|||
}); |
|||
|
|||
body.find(".bootbox-body").html(options.message); |
|||
|
|||
if (options.animate === true) { |
|||
dialog.addClass("fade"); |
|||
} |
|||
|
|||
if (options.className) { |
|||
dialog.addClass(options.className); |
|||
} |
|||
|
|||
if (options.size === "large") { |
|||
innerDialog.addClass("modal-lg"); |
|||
} else if (options.size === "small") { |
|||
innerDialog.addClass("modal-sm"); |
|||
} |
|||
|
|||
if (options.title) { |
|||
body.before(templates.header); |
|||
} |
|||
|
|||
if (options.closeButton) { |
|||
var closeButton = $(templates.closeButton); |
|||
|
|||
if (options.title) { |
|||
dialog.find(".modal-header").prepend(closeButton); |
|||
} else { |
|||
closeButton.css("margin-top", "-10px").prependTo(body); |
|||
} |
|||
} |
|||
|
|||
if (options.title) { |
|||
dialog.find(".modal-title").html(options.title); |
|||
} |
|||
|
|||
if (buttonStr.length) { |
|||
body.after(templates.footer); |
|||
dialog.find(".modal-footer").html(buttonStr); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* Bootstrap event listeners; used handle extra |
|||
* setup & teardown required after the underlying |
|||
* modal has performed certain actions |
|||
*/ |
|||
|
|||
dialog.on("hidden.bs.modal", function(e) { |
|||
// ensure we don't accidentally intercept hidden events triggered
|
|||
// by children of the current dialog. We shouldn't anymore now BS
|
|||
// namespaces its events; but still worth doing
|
|||
if (e.target === this) { |
|||
dialog.remove(); |
|||
} |
|||
}); |
|||
|
|||
/* |
|||
dialog.on("show.bs.modal", function() { |
|||
// sadly this doesn't work; show is called *just* before
|
|||
// the backdrop is added so we'd need a setTimeout hack or
|
|||
// otherwise... leaving in as would be nice
|
|||
if (options.backdrop) { |
|||
dialog.next(".modal-backdrop").addClass("bootbox-backdrop"); |
|||
} |
|||
}); |
|||
*/ |
|||
|
|||
dialog.on("shown.bs.modal", function() { |
|||
dialog.find(".btn-primary:first").focus(); |
|||
}); |
|||
|
|||
/** |
|||
* Bootbox event listeners; experimental and may not last |
|||
* just an attempt to decouple some behaviours from their |
|||
* respective triggers |
|||
*/ |
|||
|
|||
if (options.backdrop !== "static") { |
|||
// A boolean true/false according to the Bootstrap docs
|
|||
// should show a dialog the user can dismiss by clicking on
|
|||
// the background.
|
|||
// We always only ever pass static/false to the actual
|
|||
// $.modal function because with `true` we can't trap
|
|||
// this event (the .modal-backdrop swallows it)
|
|||
// However, we still want to sort of respect true
|
|||
// and invoke the escape mechanism instead
|
|||
dialog.on("click.dismiss.bs.modal", function(e) { |
|||
// @NOTE: the target varies in >= 3.3.x releases since the modal backdrop
|
|||
// moved *inside* the outer dialog rather than *alongside* it
|
|||
if (dialog.children(".modal-backdrop").length) { |
|||
e.currentTarget = dialog.children(".modal-backdrop").get(0); |
|||
} |
|||
|
|||
if (e.target !== e.currentTarget) { |
|||
return; |
|||
} |
|||
|
|||
dialog.trigger("escape.close.bb"); |
|||
}); |
|||
} |
|||
|
|||
dialog.on("escape.close.bb", function(e) { |
|||
if (callbacks.onEscape) { |
|||
processCallback(e, dialog, callbacks.onEscape); |
|||
} |
|||
}); |
|||
|
|||
/** |
|||
* Standard jQuery event listeners; used to handle user |
|||
* interaction with our dialog |
|||
*/ |
|||
|
|||
dialog.on("click", ".modal-footer button", function(e) { |
|||
var callbackKey = $(this).data("bb-handler"); |
|||
|
|||
processCallback(e, dialog, callbacks[callbackKey]); |
|||
}); |
|||
|
|||
dialog.on("click", ".bootbox-close-button", function(e) { |
|||
// onEscape might be falsy but that's fine; the fact is
|
|||
// if the user has managed to click the close button we
|
|||
// have to close the dialog, callback or not
|
|||
processCallback(e, dialog, callbacks.onEscape); |
|||
}); |
|||
|
|||
dialog.on("keyup", function(e) { |
|||
if (e.which === 27) { |
|||
dialog.trigger("escape.close.bb"); |
|||
} |
|||
}); |
|||
|
|||
// the remainder of this method simply deals with adding our
|
|||
// dialogent to the DOM, augmenting it with Bootstrap's modal
|
|||
// functionality and then giving the resulting object back
|
|||
// to our caller
|
|||
|
|||
$(options.container).append(dialog); |
|||
|
|||
dialog.modal({ |
|||
backdrop: options.backdrop ? "static": false, |
|||
keyboard: false, |
|||
show: false |
|||
}); |
|||
|
|||
if (options.show) { |
|||
dialog.modal("show"); |
|||
} |
|||
|
|||
// @TODO should we return the raw element here or should
|
|||
// we wrap it in an object on which we can expose some neater
|
|||
// methods, e.g. var d = bootbox.alert(); d.hide(); instead
|
|||
// of d.modal("hide");
|
|||
|
|||
/* |
|||
function BBDialog(elem) { |
|||
this.elem = elem; |
|||
} |
|||
|
|||
BBDialog.prototype = { |
|||
hide: function() { |
|||
return this.elem.modal("hide"); |
|||
}, |
|||
show: function() { |
|||
return this.elem.modal("show"); |
|||
} |
|||
}; |
|||
*/ |
|||
|
|||
return dialog; |
|||
|
|||
}; |
|||
|
|||
exports.setDefaults = function() { |
|||
var values = {}; |
|||
|
|||
if (arguments.length === 2) { |
|||
// allow passing of single key/value...
|
|||
values[arguments[0]] = arguments[1]; |
|||
} else { |
|||
// ... and as an object too
|
|||
values = arguments[0]; |
|||
} |
|||
|
|||
$.extend(defaults, values); |
|||
}; |
|||
|
|||
exports.hideAll = function() { |
|||
$(".bootbox").modal("hide"); |
|||
|
|||
return exports; |
|||
}; |
|||
|
|||
|
|||
/** |
|||
* standard locales. Please add more according to ISO 639-1 standard. Multiple language variants are |
|||
* unlikely to be required. If this gets too large it can be split out into separate JS files. |
|||
*/ |
|||
var locales = { |
|||
ar : { |
|||
OK : "موافق", |
|||
CANCEL : "الغاء", |
|||
CONFIRM : "تأكيد" |
|||
}, |
|||
bg_BG : { |
|||
OK : "Ок", |
|||
CANCEL : "Отказ", |
|||
CONFIRM : "Потвърждавам" |
|||
}, |
|||
br : { |
|||
OK : "OK", |
|||
CANCEL : "Cancelar", |
|||
CONFIRM : "Sim" |
|||
}, |
|||
cs : { |
|||
OK : "OK", |
|||
CANCEL : "Zrušit", |
|||
CONFIRM : "Potvrdit" |
|||
}, |
|||
da : { |
|||
OK : "OK", |
|||
CANCEL : "Annuller", |
|||
CONFIRM : "Accepter" |
|||
}, |
|||
de : { |
|||
OK : "OK", |
|||
CANCEL : "Abbrechen", |
|||
CONFIRM : "Akzeptieren" |
|||
}, |
|||
el : { |
|||
OK : "Εντάξει", |
|||
CANCEL : "Ακύρωση", |
|||
CONFIRM : "Επιβεβαίωση" |
|||
}, |
|||
en : { |
|||
OK : "OK", |
|||
CANCEL : "Cancel", |
|||
CONFIRM : "OK" |
|||
}, |
|||
es : { |
|||
OK : "OK", |
|||
CANCEL : "Cancelar", |
|||
CONFIRM : "Aceptar" |
|||
}, |
|||
et : { |
|||
OK : "OK", |
|||
CANCEL : "Katkesta", |
|||
CONFIRM : "OK" |
|||
}, |
|||
fa : { |
|||
OK : "قبول", |
|||
CANCEL : "لغو", |
|||
CONFIRM : "تایید" |
|||
}, |
|||
fi : { |
|||
OK : "OK", |
|||
CANCEL : "Peruuta", |
|||
CONFIRM : "OK" |
|||
}, |
|||
fr : { |
|||
OK : "OK", |
|||
CANCEL : "Annuler", |
|||
CONFIRM : "Confirmer" |
|||
}, |
|||
he : { |
|||
OK : "אישור", |
|||
CANCEL : "ביטול", |
|||
CONFIRM : "אישור" |
|||
}, |
|||
hu : { |
|||
OK : "OK", |
|||
CANCEL : "Mégsem", |
|||
CONFIRM : "Megerősít" |
|||
}, |
|||
hr : { |
|||
OK : "OK", |
|||
CANCEL : "Odustani", |
|||
CONFIRM : "Potvrdi" |
|||
}, |
|||
id : { |
|||
OK : "OK", |
|||
CANCEL : "Batal", |
|||
CONFIRM : "OK" |
|||
}, |
|||
it : { |
|||
OK : "OK", |
|||
CANCEL : "Annulla", |
|||
CONFIRM : "Conferma" |
|||
}, |
|||
ja : { |
|||
OK : "OK", |
|||
CANCEL : "キャンセル", |
|||
CONFIRM : "確認" |
|||
}, |
|||
lt : { |
|||
OK : "Gerai", |
|||
CANCEL : "Atšaukti", |
|||
CONFIRM : "Patvirtinti" |
|||
}, |
|||
lv : { |
|||
OK : "Labi", |
|||
CANCEL : "Atcelt", |
|||
CONFIRM : "Apstiprināt" |
|||
}, |
|||
nl : { |
|||
OK : "OK", |
|||
CANCEL : "Annuleren", |
|||
CONFIRM : "Accepteren" |
|||
}, |
|||
no : { |
|||
OK : "OK", |
|||
CANCEL : "Avbryt", |
|||
CONFIRM : "OK" |
|||
}, |
|||
pl : { |
|||
OK : "OK", |
|||
CANCEL : "Anuluj", |
|||
CONFIRM : "Potwierdź" |
|||
}, |
|||
pt : { |
|||
OK : "OK", |
|||
CANCEL : "Cancelar", |
|||
CONFIRM : "Confirmar" |
|||
}, |
|||
ru : { |
|||
OK : "OK", |
|||
CANCEL : "Отмена", |
|||
CONFIRM : "Применить" |
|||
}, |
|||
sq : { |
|||
OK : "OK", |
|||
CANCEL : "Anulo", |
|||
CONFIRM : "Prano" |
|||
}, |
|||
sv : { |
|||
OK : "OK", |
|||
CANCEL : "Avbryt", |
|||
CONFIRM : "OK" |
|||
}, |
|||
th : { |
|||
OK : "ตกลง", |
|||
CANCEL : "ยกเลิก", |
|||
CONFIRM : "ยืนยัน" |
|||
}, |
|||
tr : { |
|||
OK : "Tamam", |
|||
CANCEL : "İptal", |
|||
CONFIRM : "Onayla" |
|||
}, |
|||
zh_CN : { |
|||
OK : "OK", |
|||
CANCEL : "取消", |
|||
CONFIRM : "确认" |
|||
}, |
|||
zh_TW : { |
|||
OK : "OK", |
|||
CANCEL : "取消", |
|||
CONFIRM : "確認" |
|||
} |
|||
}; |
|||
|
|||
exports.addLocale = function(name, values) { |
|||
$.each(["OK", "CANCEL", "CONFIRM"], function(_, v) { |
|||
if (!values[v]) { |
|||
throw new Error("Please supply a translation for '" + v + "'"); |
|||
} |
|||
}); |
|||
|
|||
locales[name] = { |
|||
OK: values.OK, |
|||
CANCEL: values.CANCEL, |
|||
CONFIRM: values.CONFIRM |
|||
}; |
|||
|
|||
return exports; |
|||
}; |
|||
|
|||
exports.removeLocale = function(name) { |
|||
delete locales[name]; |
|||
|
|||
return exports; |
|||
}; |
|||
|
|||
exports.setLocale = function(name) { |
|||
return exports.setDefaults("locale", name); |
|||
}; |
|||
|
|||
exports.init = function(_$) { |
|||
return init(_$ || $); |
|||
}; |
|||
|
|||
return exports; |
|||
})); |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||
!function(a){a(["jquery"],function(a){return function(){function b(a,b,c){return o({type:u.error,iconClass:p().iconClasses.error,message:a,optionsOverride:c,title:b})}function c(b,c){return b||(b=p()),r=a("#"+b.containerId),r.length?r:(c&&(r=l(b)),r)}function d(a,b,c){return o({type:u.info,iconClass:p().iconClasses.info,message:a,optionsOverride:c,title:b})}function e(a){s=a}function f(a,b,c){return o({type:u.success,iconClass:p().iconClasses.success,message:a,optionsOverride:c,title:b})}function g(a,b,c){return o({type:u.warning,iconClass:p().iconClasses.warning,message:a,optionsOverride:c,title:b})}function h(a){var b=p();r||c(b),k(a,b)||j(b)}function i(b){var d=p();return r||c(d),b&&0===a(":focus",b).length?void q(b):void(r.children().length&&r.remove())}function j(b){for(var c=r.children(),d=c.length-1;d>=0;d--)k(a(c[d]),b)}function k(b,c){return b&&0===a(":focus",b).length?(b[c.hideMethod]({duration:c.hideDuration,easing:c.hideEasing,complete:function(){q(b)}}),!0):!1}function l(b){return r=a("<div/>").attr("id",b.containerId).addClass(b.positionClass).attr("aria-live","polite").attr("role","alert"),r.appendTo(a(b.target)),r}function m(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:"<button>×</button>",newestOnTop:!0}}function n(a){s&&s(a)}function o(b){function d(b){return!a(":focus",j).length||b?j[g.hideMethod]({duration:g.hideDuration,easing:g.hideEasing,complete:function(){q(j),g.onHidden&&"hidden"!==o.state&&g.onHidden(),o.state="hidden",o.endTime=new Date,n(o)}}):void 0}function e(){(g.timeOut>0||g.extendedTimeOut>0)&&(i=setTimeout(d,g.extendedTimeOut))}function f(){clearTimeout(i),j.stop(!0,!0)[g.showMethod]({duration:g.showDuration,easing:g.showEasing})}var g=p(),h=b.iconClass||g.iconClass;"undefined"!=typeof b.optionsOverride&&(g=a.extend(g,b.optionsOverride),h=b.optionsOverride.iconClass||h),t++,r=c(g,!0);var i=null,j=a("<div/>"),k=a("<div/>"),l=a("<div/>"),m=a(g.closeHtml),o={toastId:t,state:"visible",startTime:new Date,options:g,map:b};return b.iconClass&&j.addClass(g.toastClass).addClass(h),b.title&&(k.append(b.title).addClass(g.titleClass),j.append(k)),b.message&&(l.append(b.message).addClass(g.messageClass),j.append(l)),g.closeButton&&(m.addClass("toast-close-button").attr("role","button"),j.prepend(m)),j.hide(),g.newestOnTop?r.prepend(j):r.append(j),j[g.showMethod]({duration:g.showDuration,easing:g.showEasing,complete:g.onShown}),g.timeOut>0&&(i=setTimeout(d,g.timeOut)),j.hover(f,e),!g.onclick&&g.tapToDismiss&&j.click(d),g.closeButton&&m&&m.click(function(a){a.stopPropagation?a.stopPropagation():void 0!==a.cancelBubble&&a.cancelBubble!==!0&&(a.cancelBubble=!0),d(!0)}),g.onclick&&j.click(function(){g.onclick(),d()}),n(o),g.debug&&console&&console.log(o),j}function p(){return a.extend({},m(),v.options)}function q(a){r||(r=c()),a.is(":visible")||(a.remove(),a=null,0===r.children().length&&r.remove())}var r,s,t=0,u={error:"error",info:"info",success:"success",warning:"warning"},v={clear:h,remove:i,error:b,getContainer:c,info:d,options:{},subscribe:e,success:f,version:"2.0.3",warning:g};return v}()})}("function"==typeof define&&define.amd?define:function(a,b){"undefined"!=typeof module&&module.exports?module.exports=b(require("jquery")):window.toastr=b(window.jQuery)}); |
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||
/*! breakpoints.js - v0.4.2 - 2015-04-22 |
|||
* https://github.com/amazingSurge/breakpoints.js
|
|||
* Copyright (c) 2015 amazingSurge; Licensed GPL */ |
|||
!function(a,b,c){"use strict";function d(a,b){var c;for(var d in a)if(c=b(d,a[d]),c===!1)break}function e(a){return"function"==typeof a||!1}function f(a,b){for(var c in b)a[c]=b[c];return a}var g=b.Breakpoints=function(){g.define.apply(g,arguments)};g.defaults={xs:{min:0,max:767},sm:{min:768,max:991},md:{min:992,max:1199},lg:{min:1200,max:1/0}};var h=g.mediaBuilder={min:function(a,b){return"(min-width: "+a+b+")"},max:function(a,b){return"(max-width: "+a+b+")"},between:function(a,b,c){return"(min-width: "+a+c+") and (max-width: "+b+c+")"},get:function(a,b,c){return c||(c="px"),0===a?this.max(b,c):b===1/0?this.min(a,c):this.between(a,b,c)}},i=function(){var a=[];return{length:0,add:function(b,c,d){a.push({fn:b,data:c||{},one:d||0}),this.length++},remove:function(b){for(var c=0;c<a.length;c++)a[c].fn===b&&(a.splice(c,1),this.length--,c--)},empty:function(){a=[],this.length=0},call:function(c,d,f){d||(d=this.length-1);var g=a[d];e(f)?f.call(this,c,g,d):e(g.fn)&&g.fn.call(c||b,g.data),g.one&&(delete a[d],this.length--)},fire:function(b,c){for(var d in a)this.call(b,d,c)}}},j={current:null,callbacks:new i,trigger:function(a){var b=this.current;this.current=a,this.callbacks.fire(a,function(c,d){e(d.fn)&&d.fn.call({current:a,previous:b},d.data)})},one:function(a,b){return this.on(a,b,1)},on:function(a,b,d){return null==b&&e(a)&&(b=a,a=c),e(b)?void this.callbacks.add(b,a,d):this},off:function(a){null==a&&this.callbacks.empty()}},k=g.mediaQuery=function(a,b){this.name=a,this.media=b,this.initialize.apply(this)};k.prototype={constructor:k,initialize:function(){this.callbacks={enter:new i,leave:new i},this.mql=b.matchMedia&&b.matchMedia(this.media)||{matches:!1,media:this.media,addListener:function(){},removeListener:function(){}};var a=this;this.mqlListener=function(b){var c=b.matches&&"enter"||"leave";a.callbacks[c].fire(a)},this.mql.addListener(this.mqlListener)},on:function(a,b,d,f){var g;if("object"==typeof a){for(g in a)this.on(g,b,a[g],f);return this}return null==d&&e(b)&&(d=b,b=c),e(d)?(a in this.callbacks&&(this.callbacks[a].add(d,b,f),this.isMatched()&&"enter"===a&&this.callbacks[a].call(this)),this):this},one:function(a,b,c){return this.on(a,b,c,1)},off:function(a,b){var c;if("object"==typeof a){for(c in a)this.off(c,a[c]);return this}return null==a&&(this.callbacks.enter.empty(),this.callbacks.leave.empty()),a in this.callbacks&&(b?this.callbacks[a].remove(b):this.callbacks[a].empty()),this},isMatched:function(){return this.mql.matches},destory:function(){this.off()}};var l=function(a,b,c,d){this.name=a,this.min=b?b:0,this.max=c?c:1/0,this.media=h.get(this.min,this.max,d),this.initialize.apply(this);var e=this;this.changeListener=function(){e.isMatched()&&j.trigger(e)},this.isMatched()&&(j.current=this),this.mql.addListener(this.changeListener)};l.prototype=k.prototype,l.prototype.constructor=l,f(l.prototype,{destory:function(){this.off(),this.mql.removeListener(this.changeHander)}});var m=function(a){this.name=a,this.sizes=[];var b=this,c=[];d(a.split(" "),function(a,d){var e=g.get(d);e&&(b.sizes.push(e),c.push(e.media))}),this.media=c.join(","),this.initialize.apply(this)};m.prototype=k.prototype,m.prototype.constructor=m;var n={},o={};g=f(g,{defined:!1,define:function(a,b){this.defined&&this.destory(),a||(a=g.defaults),this.options=f(b||{},{unit:"px"});for(var c in a)this.set(c,a[c].min,a[c].max,this.options.unit);this.defined=!0},destory:function(){d(n,function(a,b){b.destory()}),n={},j.current=null},is:function(a){var b=this.get(a);return b?b.isMatched():null},all:function(){var a=[];return d(n,function(b){a.push(b)}),a},set:function(a,b,c,d){var e=this.get(a);return e&&e.destory(),n[a]=new l(a,b||null,c||null,d||null),n[a]},get:function(a){return n.hasOwnProperty(a)?n[a]:null},getUnion:function(a){return o.hasOwnProperty(a)?o[a]:(o[a]=new m(a),o[a])},getMin:function(a){var b=this.get(a);return b?b.min:null},getMax:function(a){var b=this.get(a);return b?b.max:null},current:function(){return j.current},getMedia:function(a){var b=this.get(a);return b?b.media:null},on:function(a,b,c,d,e){if("change"===a)return d=c,c=b,j.on(c,d,e);if(a.indexOf(" ")){var f=this.getUnion(a);f&&f.on(b,c,d,e)}else{var g=this.get(a);g&&g.on(b,c,d,e)}return this},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){if("change"===a)return j.off(b);if(a.indexOf(" ")){var d=this.getUnion(a);d&&d.off(b,c)}else{var e=this.get(a);e&&e.off(b,c)}return this}})}(document,window); |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,8 @@ |
|||
/*! |
|||
DataTables Bootstrap 3 integration |
|||
©2011-2014 SpryMedia Ltd - datatables.net/license |
|||
*/ |
|||
(function(l,q){var e=function(b,c){b.extend(!0,c.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(c.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm"});c.ext.renderer.pageButton.bootstrap=function(g,e,r,s,i,m){var t=new c.Api(g),u=g.oClasses,j=g.oLanguage.oPaginate,d,f,n=0,p=function(c,e){var k,h,o,a,l=function(a){a.preventDefault(); |
|||
b(a.currentTarget).hasClass("disabled")||t.page(a.data.action).draw(!1)};k=0;for(h=e.length;k<h;k++)if(a=e[k],b.isArray(a))p(c,a);else{f=d="";switch(a){case "ellipsis":d="…";f="disabled";break;case "first":d=j.sFirst;f=a+(0<i?"":" disabled");break;case "previous":d=j.sPrevious;f=a+(0<i?"":" disabled");break;case "next":d=j.sNext;f=a+(i<m-1?"":" disabled");break;case "last":d=j.sLast;f=a+(i<m-1?"":" disabled");break;default:d=a+1,f=i===a?"active":""}d&&(o=b("<li>",{"class":u.sPageButton+" "+ |
|||
f,id:0===r&&"string"===typeof a?g.sTableId+"_"+a:null}).append(b("<a>",{href:"#","aria-controls":g.sTableId,"data-dt-idx":n,tabindex:g.iTabIndex}).html(d)).appendTo(c),g.oApi._fnBindAction(o,{action:a},l),n++)}},h;try{h=b(q.activeElement).data("dt-idx")}catch(l){}p(b(e).empty().html('<ul class="pagination"/>').children("ul"),s);h&&b(e).find("[data-dt-idx="+h+"]").focus()};c.TableTools&&(b.extend(!0,c.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn btn-default",disabled:"disabled"}, |
|||
collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info"},select:{row:"active"}}),b.extend(!0,c.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}}))};"function"===typeof define&&define.amd?define(["jquery","datatables"],e):"object"===typeof exports?e(require("jquery"),require("datatables")):jQuery&&e(jQuery,jQuery.fn.dataTable)})(window,document); |
@ -0,0 +1,650 @@ |
|||
/*! FixedHeader 3.1.1 |
|||
* ©2009-2016 SpryMedia Ltd - datatables.net/license |
|||
*/ |
|||
|
|||
/** |
|||
* @summary FixedHeader |
|||
* @description Fix a table's header or footer, so it is always visible while |
|||
* scrolling |
|||
* @version 3.1.1 |
|||
* @file dataTables.fixedHeader.js |
|||
* @author SpryMedia Ltd (www.sprymedia.co.uk) |
|||
* @contact www.sprymedia.co.uk/contact |
|||
* @copyright Copyright 2009-2016 SpryMedia Ltd. |
|||
* |
|||
* This source file is free software, available under the following license: |
|||
* MIT license - http://datatables.net/license/mit
|
|||
* |
|||
* This source file is distributed in the hope that it will be useful, but |
|||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
|||
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. |
|||
* |
|||
* For details please refer to: http://www.datatables.net
|
|||
*/ |
|||
|
|||
(function( factory ){ |
|||
if ( typeof define === 'function' && define.amd ) { |
|||
// AMD
|
|||
define( ['jquery', 'datatables.net'], function ( $ ) { |
|||
return factory( $, window, document ); |
|||
} ); |
|||
} |
|||
else if ( typeof exports === 'object' ) { |
|||
// CommonJS
|
|||
module.exports = function (root, $) { |
|||
if ( ! root ) { |
|||
root = window; |
|||
} |
|||
|
|||
if ( ! $ || ! $.fn.dataTable ) { |
|||
$ = require('datatables.net')(root, $).$; |
|||
} |
|||
|
|||
return factory( $, root, root.document ); |
|||
}; |
|||
} |
|||
else { |
|||
// Browser
|
|||
factory( jQuery, window, document ); |
|||
} |
|||
}(function( $, window, document, undefined ) { |
|||
'use strict'; |
|||
var DataTable = $.fn.dataTable; |
|||
|
|||
|
|||
var _instCounter = 0; |
|||
|
|||
var FixedHeader = function ( dt, config ) { |
|||
// Sanity check - you just know it will happen
|
|||
if ( ! (this instanceof FixedHeader) ) { |
|||
throw "FixedHeader must be initialised with the 'new' keyword."; |
|||
} |
|||
|
|||
// Allow a boolean true for defaults
|
|||
if ( config === true ) { |
|||
config = {}; |
|||
} |
|||
|
|||
dt = new DataTable.Api( dt ); |
|||
|
|||
this.c = $.extend( true, {}, FixedHeader.defaults, config ); |
|||
|
|||
this.s = { |
|||
dt: dt, |
|||
position: { |
|||
theadTop: 0, |
|||
tbodyTop: 0, |
|||
tfootTop: 0, |
|||
tfootBottom: 0, |
|||
width: 0, |
|||
left: 0, |
|||
tfootHeight: 0, |
|||
theadHeight: 0, |
|||
windowHeight: $(window).height(), |
|||
visible: true |
|||
}, |
|||
headerMode: null, |
|||
footerMode: null, |
|||
autoWidth: dt.settings()[0].oFeatures.bAutoWidth, |
|||
namespace: '.dtfc'+(_instCounter++), |
|||
scrollLeft: { |
|||
header: -1, |
|||
footer: -1 |
|||
}, |
|||
enable: true |
|||
}; |
|||
|
|||
this.dom = { |
|||
floatingHeader: null, |
|||
thead: $(dt.table().header()), |
|||
tbody: $(dt.table().body()), |
|||
tfoot: $(dt.table().footer()), |
|||
header: { |
|||
host: null, |
|||
floating: null, |
|||
placeholder: null |
|||
}, |
|||
footer: { |
|||
host: null, |
|||
floating: null, |
|||
placeholder: null |
|||
} |
|||
}; |
|||
|
|||
this.dom.header.host = this.dom.thead.parent(); |
|||
this.dom.footer.host = this.dom.tfoot.parent(); |
|||
|
|||
var dtSettings = dt.settings()[0]; |
|||
if ( dtSettings._fixedHeader ) { |
|||
throw "FixedHeader already initialised on table "+dtSettings.nTable.id; |
|||
} |
|||
|
|||
dtSettings._fixedHeader = this; |
|||
|
|||
this._constructor(); |
|||
}; |
|||
|
|||
|
|||
/* |
|||
* Variable: FixedHeader |
|||
* Purpose: Prototype for FixedHeader |
|||
* Scope: global |
|||
*/ |
|||
$.extend( FixedHeader.prototype, { |
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|||
* API methods |
|||
*/ |
|||
|
|||
/** |
|||
* Enable / disable the fixed elements |
|||
* |
|||
* @param {boolean} enable `true` to enable, `false` to disable |
|||
*/ |
|||
enable: function ( enable ) |
|||
{ |
|||
this.s.enable = enable; |
|||
|
|||
if ( this.c.header ) { |
|||
this._modeChange( 'in-place', 'header', true ); |
|||
} |
|||
|
|||
if ( this.c.footer && this.dom.tfoot.length ) { |
|||
this._modeChange( 'in-place', 'footer', true ); |
|||
} |
|||
|
|||
this.update(); |
|||
}, |
|||
|
|||
/** |
|||
* Set header offset |
|||
* |
|||
* @param {int} new value for headerOffset |
|||
*/ |
|||
headerOffset: function ( offset ) |
|||
{ |
|||
if ( offset !== undefined ) { |
|||
this.c.headerOffset = offset; |
|||
this.update(); |
|||
} |
|||
|
|||
return this.c.headerOffset; |
|||
}, |
|||
|
|||
/** |
|||
* Set footer offset |
|||
* |
|||
* @param {int} new value for footerOffset |
|||
*/ |
|||
footerOffset: function ( offset ) |
|||
{ |
|||
if ( offset !== undefined ) { |
|||
this.c.footerOffset = offset; |
|||
this.update(); |
|||
} |
|||
|
|||
return this.c.footerOffset; |
|||
}, |
|||
|
|||
|
|||
/** |
|||
* Recalculate the position of the fixed elements and force them into place |
|||
*/ |
|||
update: function () |
|||
{ |
|||
this._positions(); |
|||
this._scroll( true ); |
|||
}, |
|||
|
|||
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|||
* Constructor |
|||
*/ |
|||
|
|||
/** |
|||
* FixedHeader constructor - adding the required event listeners and |
|||
* simple initialisation |
|||
* |
|||
* @private |
|||
*/ |
|||
_constructor: function () |
|||
{ |
|||
var that = this; |
|||
var dt = this.s.dt; |
|||
|
|||
$(window) |
|||
.on( 'scroll'+this.s.namespace, function () { |
|||
that._scroll(); |
|||
} ) |
|||
.on( 'resize'+this.s.namespace, function () { |
|||
that.s.position.windowHeight = $(window).height(); |
|||
that.update(); |
|||
} ); |
|||
|
|||
dt.on( 'column-reorder.dt.dtfc column-visibility.dt.dtfc draw.dt.dtfc column-sizing.dt.dtfc', function () { |
|||
that.update(); |
|||
} ); |
|||
|
|||
dt.on( 'destroy.dtfc', function () { |
|||
dt.off( '.dtfc' ); |
|||
$(window).off( that.s.namespace ); |
|||
} ); |
|||
|
|||
this._positions(); |
|||
this._scroll(); |
|||
}, |
|||
|
|||
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|||
* Private methods |
|||
*/ |
|||
|
|||
/** |
|||
* Clone a fixed item to act as a place holder for the original element |
|||
* which is moved into a clone of the table element, and moved around the |
|||
* document to give the fixed effect. |
|||
* |
|||
* @param {string} item 'header' or 'footer' |
|||
* @param {boolean} force Force the clone to happen, or allow automatic |
|||
* decision (reuse existing if available) |
|||
* @private |
|||
*/ |
|||
_clone: function ( item, force ) |
|||
{ |
|||
var dt = this.s.dt; |
|||
var itemDom = this.dom[ item ]; |
|||
var itemElement = item === 'header' ? |
|||
this.dom.thead : |
|||
this.dom.tfoot; |
|||
|
|||
if ( ! force && itemDom.floating ) { |
|||
// existing floating element - reuse it
|
|||
itemDom.floating.removeClass( 'fixedHeader-floating fixedHeader-locked' ); |
|||
} |
|||
else { |
|||
if ( itemDom.floating ) { |
|||
itemDom.placeholder.remove(); |
|||
this._unsize( item ); |
|||
itemDom.floating.children().detach(); |
|||
itemDom.floating.remove(); |
|||
} |
|||
|
|||
itemDom.floating = $( dt.table().node().cloneNode( false ) ) |
|||
.css( 'table-layout', 'fixed' ) |
|||
.removeAttr( 'id' ) |
|||
.append( itemElement ) |
|||
.appendTo( 'body' ); |
|||
|
|||
// Insert a fake thead/tfoot into the DataTable to stop it jumping around
|
|||
itemDom.placeholder = itemElement.clone( false ); |
|||
itemDom.host.prepend( itemDom.placeholder ); |
|||
|
|||
// Clone widths
|
|||
this._matchWidths( itemDom.placeholder, itemDom.floating ); |
|||
} |
|||
}, |
|||
|
|||
/** |
|||
* Copy widths from the cells in one element to another. This is required |
|||
* for the footer as the footer in the main table takes its sizes from the |
|||
* header columns. That isn't present in the footer so to have it still |
|||
* align correctly, the sizes need to be copied over. It is also required |
|||
* for the header when auto width is not enabled |
|||
* |
|||
* @param {jQuery} from Copy widths from |
|||
* @param {jQuery} to Copy widths to |
|||
* @private |
|||
*/ |
|||
_matchWidths: function ( from, to ) { |
|||
var get = function ( name ) { |
|||
return $(name, from) |
|||
.map( function () { |
|||
return $(this).width(); |
|||
} ).toArray(); |
|||
}; |
|||
|
|||
var set = function ( name, toWidths ) { |
|||
$(name, to).each( function ( i ) { |
|||
$(this).css( { |
|||
width: toWidths[i], |
|||
minWidth: toWidths[i] |
|||
} ); |
|||
} ); |
|||
}; |
|||
|
|||
var thWidths = get( 'th' ); |
|||
var tdWidths = get( 'td' ); |
|||
|
|||
set( 'th', thWidths ); |
|||
set( 'td', tdWidths ); |
|||
}, |
|||
|
|||
/** |
|||
* Remove assigned widths from the cells in an element. This is required |
|||
* when inserting the footer back into the main table so the size is defined |
|||
* by the header columns and also when auto width is disabled in the |
|||
* DataTable. |
|||
* |
|||
* @param {string} item The `header` or `footer` |
|||
* @private |
|||
*/ |
|||
_unsize: function ( item ) { |
|||
var el = this.dom[ item ].floating; |
|||
|
|||
if ( el && (item === 'footer' || (item === 'header' && ! this.s.autoWidth)) ) { |
|||
$('th, td', el).css( { |
|||
width: '', |
|||
minWidth: '' |
|||
} ); |
|||
} |
|||
else if ( el && item === 'header' ) { |
|||
$('th, td', el).css( 'min-width', '' ); |
|||
} |
|||
}, |
|||
|
|||
/** |
|||
* Reposition the floating elements to take account of horizontal page |
|||
* scroll |
|||
* |
|||
* @param {string} item The `header` or `footer` |
|||
* @param {int} scrollLeft Document scrollLeft |
|||
* @private |
|||
*/ |
|||
_horizontal: function ( item, scrollLeft ) |
|||
{ |
|||
var itemDom = this.dom[ item ]; |
|||
var position = this.s.position; |
|||
var lastScrollLeft = this.s.scrollLeft; |
|||
|
|||
if ( itemDom.floating && lastScrollLeft[ item ] !== scrollLeft ) { |
|||
itemDom.floating.css( 'left', position.left - scrollLeft ); |
|||
|
|||
lastScrollLeft[ item ] = scrollLeft; |
|||
} |
|||
}, |
|||
|
|||
/** |
|||
* Change from one display mode to another. Each fixed item can be in one |
|||
* of: |
|||
* |
|||
* * `in-place` - In the main DataTable |
|||
* * `in` - Floating over the DataTable |
|||
* * `below` - (Header only) Fixed to the bottom of the table body |
|||
* * `above` - (Footer only) Fixed to the top of the table body |
|||
* |
|||
* @param {string} mode Mode that the item should be shown in |
|||
* @param {string} item 'header' or 'footer' |
|||
* @param {boolean} forceChange Force a redraw of the mode, even if already |
|||
* in that mode. |
|||
* @private |
|||
*/ |
|||
_modeChange: function ( mode, item, forceChange ) |
|||
{ |
|||
var dt = this.s.dt; |
|||
var itemDom = this.dom[ item ]; |
|||
var position = this.s.position; |
|||
|
|||
if ( mode === 'in-place' ) { |
|||
// Insert the header back into the table's real header
|
|||
if ( itemDom.placeholder ) { |
|||
itemDom.placeholder.remove(); |
|||
itemDom.placeholder = null; |
|||
} |
|||
|
|||
this._unsize( item ); |
|||
|
|||
if ( item === 'header' ) { |
|||
itemDom.host.prepend( this.dom.thead ); |
|||
} |
|||
else { |
|||
itemDom.host.append( this.dom.tfoot ); |
|||
} |
|||
|
|||
if ( itemDom.floating ) { |
|||
itemDom.floating.remove(); |
|||
itemDom.floating = null; |
|||
} |
|||
} |
|||
else if ( mode === 'in' ) { |
|||
// Remove the header from the read header and insert into a fixed
|
|||
// positioned floating table clone
|
|||
this._clone( item, forceChange ); |
|||
|
|||
itemDom.floating |
|||
.addClass( 'fixedHeader-floating' ) |
|||
.css( item === 'header' ? 'top' : 'bottom', this.c[item+'Offset'] ) |
|||
.css( 'left', position.left+'px' ) |
|||
.css( 'width', position.width+'px' ); |
|||
|
|||
if ( item === 'footer' ) { |
|||
itemDom.floating.css( 'top', '' ); |
|||
} |
|||
} |
|||
else if ( mode === 'below' ) { // only used for the header
|
|||
// Fix the position of the floating header at base of the table body
|
|||
this._clone( item, forceChange ); |
|||
|
|||
itemDom.floating |
|||
.addClass( 'fixedHeader-locked' ) |
|||
.css( 'top', position.tfootTop - position.theadHeight ) |
|||
.css( 'left', position.left+'px' ) |
|||
.css( 'width', position.width+'px' ); |
|||
} |
|||
else if ( mode === 'above' ) { // only used for the footer
|
|||
// Fix the position of the floating footer at top of the table body
|
|||
this._clone( item, forceChange ); |
|||
|
|||
itemDom.floating |
|||
.addClass( 'fixedHeader-locked' ) |
|||
.css( 'top', position.tbodyTop ) |
|||
.css( 'left', position.left+'px' ) |
|||
.css( 'width', position.width+'px' ); |
|||
} |
|||
|
|||
this.s.scrollLeft.header = -1; |
|||
this.s.scrollLeft.footer = -1; |
|||
this.s[item+'Mode'] = mode; |
|||
}, |
|||
|
|||
/** |
|||
* Cache the positional information that is required for the mode |
|||
* calculations that FixedHeader performs. |
|||
* |
|||
* @private |
|||
*/ |
|||
_positions: function () |
|||
{ |
|||
var dt = this.s.dt; |
|||
var table = dt.table(); |
|||
var position = this.s.position; |
|||
var dom = this.dom; |
|||
var tableNode = $(table.node()); |
|||
|
|||
// Need to use the header and footer that are in the main table,
|
|||
// regardless of if they are clones, since they hold the positions we
|
|||
// want to measure from
|
|||
var thead = tableNode.children('thead'); |
|||
var tfoot = tableNode.children('tfoot'); |
|||
var tbody = dom.tbody; |
|||
|
|||
position.visible = tableNode.is(':visible'); |
|||
position.width = tableNode.outerWidth(); |
|||
position.left = tableNode.offset().left; |
|||
position.theadTop = thead.offset().top; |
|||
position.tbodyTop = tbody.offset().top; |
|||
position.theadHeight = position.tbodyTop - position.theadTop; |
|||
|
|||
if ( tfoot.length ) { |
|||
position.tfootTop = tfoot.offset().top; |
|||
position.tfootBottom = position.tfootTop + tfoot.outerHeight(); |
|||
position.tfootHeight = position.tfootBottom - position.tfootTop; |
|||
} |
|||
else { |
|||
position.tfootTop = position.tbodyTop + tbody.outerHeight(); |
|||
position.tfootBottom = position.tfootTop; |
|||
position.tfootHeight = position.tfootTop; |
|||
} |
|||
}, |
|||
|
|||
|
|||
/** |
|||
* Mode calculation - determine what mode the fixed items should be placed |
|||
* into. |
|||
* |
|||
* @param {boolean} forceChange Force a redraw of the mode, even if already |
|||
* in that mode. |
|||
* @private |
|||
*/ |
|||
_scroll: function ( forceChange ) |
|||
{ |
|||
var windowTop = $(document).scrollTop(); |
|||
var windowLeft = $(document).scrollLeft(); |
|||
var position = this.s.position; |
|||
var headerMode, footerMode; |
|||
|
|||
if ( ! this.s.enable ) { |
|||
return; |
|||
} |
|||
|
|||
if ( this.c.header ) { |
|||
if ( ! position.visible || windowTop <= position.theadTop - this.c.headerOffset ) { |
|||
headerMode = 'in-place'; |
|||
} |
|||
else if ( windowTop <= position.tfootTop - position.theadHeight - this.c.headerOffset ) { |
|||
headerMode = 'in'; |
|||
} |
|||
else { |
|||
headerMode = 'below'; |
|||
} |
|||
|
|||
if ( forceChange || headerMode !== this.s.headerMode ) { |
|||
this._modeChange( headerMode, 'header', forceChange ); |
|||
} |
|||
|
|||
this._horizontal( 'header', windowLeft ); |
|||
} |
|||
|
|||
if ( this.c.footer && this.dom.tfoot.length ) { |
|||
if ( ! position.visible || windowTop + position.windowHeight >= position.tfootBottom + this.c.footerOffset ) { |
|||
footerMode = 'in-place'; |
|||
} |
|||
else if ( position.windowHeight + windowTop > position.tbodyTop + position.tfootHeight + this.c.footerOffset ) { |
|||
footerMode = 'in'; |
|||
} |
|||
else { |
|||
footerMode = 'above'; |
|||
} |
|||
|
|||
if ( forceChange || footerMode !== this.s.footerMode ) { |
|||
this._modeChange( footerMode, 'footer', forceChange ); |
|||
} |
|||
|
|||
this._horizontal( 'footer', windowLeft ); |
|||
} |
|||
} |
|||
} ); |
|||
|
|||
|
|||
/** |
|||
* Version |
|||
* @type {String} |
|||
* @static |
|||
*/ |
|||
FixedHeader.version = "3.1.1"; |
|||
|
|||
/** |
|||
* Defaults |
|||
* @type {Object} |
|||
* @static |
|||
*/ |
|||
FixedHeader.defaults = { |
|||
header: true, |
|||
footer: false, |
|||
headerOffset: 0, |
|||
footerOffset: 0 |
|||
}; |
|||
|
|||
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|||
* DataTables interfaces |
|||
*/ |
|||
|
|||
// Attach for constructor access
|
|||
$.fn.dataTable.FixedHeader = FixedHeader; |
|||
$.fn.DataTable.FixedHeader = FixedHeader; |
|||
|
|||
|
|||
// DataTables creation - check if the FixedHeader option has been defined on the
|
|||
// table and if so, initialise
|
|||
$(document).on( 'init.dt.dtfh', function (e, settings, json) { |
|||
if ( e.namespace !== 'dt' ) { |
|||
return; |
|||
} |
|||
|
|||
var init = settings.oInit.fixedHeader; |
|||
var defaults = DataTable.defaults.fixedHeader; |
|||
|
|||
if ( (init || defaults) && ! settings._fixedHeader ) { |
|||
var opts = $.extend( {}, defaults, init ); |
|||
|
|||
if ( init !== false ) { |
|||
new FixedHeader( settings, opts ); |
|||
} |
|||
} |
|||
} ); |
|||
|
|||
// DataTables API methods
|
|||
DataTable.Api.register( 'fixedHeader()', function () {} ); |
|||
|
|||
DataTable.Api.register( 'fixedHeader.adjust()', function () { |
|||
return this.iterator( 'table', function ( ctx ) { |
|||
var fh = ctx._fixedHeader; |
|||
|
|||
if ( fh ) { |
|||
fh.update(); |
|||
} |
|||
} ); |
|||
} ); |
|||
|
|||
DataTable.Api.register( 'fixedHeader.enable()', function ( flag ) { |
|||
return this.iterator( 'table', function ( ctx ) { |
|||
var fh = ctx._fixedHeader; |
|||
|
|||
if ( fh ) { |
|||
fh.enable( flag !== undefined ? flag : true ); |
|||
} |
|||
} ); |
|||
} ); |
|||
|
|||
DataTable.Api.register( 'fixedHeader.disable()', function ( ) { |
|||
return this.iterator( 'table', function ( ctx ) { |
|||
var fh = ctx._fixedHeader; |
|||
|
|||
if ( fh ) { |
|||
fh.enable( false ); |
|||
} |
|||
} ); |
|||
} ); |
|||
|
|||
$.each( ['header', 'footer'], function ( i, el ) { |
|||
DataTable.Api.register( 'fixedHeader.'+el+'Offset()', function ( offset ) { |
|||
var ctx = this.context; |
|||
|
|||
if ( offset === undefined ) { |
|||
return ctx.length && ctx[0]._fixedHeader ? |
|||
ctx[0]._fixedHeader[el +'Offset']() : |
|||
undefined; |
|||
} |
|||
|
|||
return this.iterator( 'table', function ( ctx ) { |
|||
var fh = ctx._fixedHeader; |
|||
|
|||
if ( fh ) { |
|||
fh[ el +'Offset' ]( offset ); |
|||
} |
|||
} ); |
|||
} ); |
|||
} ); |
|||
|
|||
|
|||
return FixedHeader; |
|||
})); |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue