Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Yury Dymov
committed
Sep 15, 2016
1 parent
74ad7a8
commit 67076f6
Showing
18 changed files
with
1,211 additions
and
365 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,257 +1,10 @@ | ||
{ | ||
"parser": "babel-eslint", | ||
|
||
"plugins": [ | ||
"react" | ||
], | ||
|
||
"env": { | ||
"browser": true, | ||
"node": true, | ||
"mocha": true, | ||
"es6": true | ||
}, | ||
|
||
"ecmaFeatures": { | ||
"arrowFunctions": true, | ||
"blockBindings": true, | ||
"classes": true, | ||
"defaultParams": true, | ||
"destructuring": true, | ||
"forOf": true, | ||
"generators": false, | ||
"modules": true, | ||
"objectLiteralComputedProperties": true, | ||
"objectLiteralDuplicateProperties": false, | ||
"objectLiteralShorthandMethods": true, | ||
"objectLiteralShorthandProperties": true, | ||
"restParams": true, | ||
"spread": true, | ||
"superInFunctions": true, | ||
"templateStrings": true, | ||
"jsx": true | ||
}, | ||
|
||
"rules":{ | ||
// Possible errors | ||
"no-cond-assign": [2, "always"], | ||
"no-constant-condition": 2, | ||
"no-control-regex": 2, | ||
"no-dupe-args": 2, | ||
"no-dupe-keys": 2, | ||
"no-duplicate-case": 2, | ||
"no-empty-character-class": 2, | ||
"no-empty": 2, | ||
"no-ex-assign": 2, | ||
"no-extra-boolean-cast": 0, | ||
"no-extra-parens": [2, "functions"], | ||
"no-extra-semi": 2, | ||
"no-func-assign": 2, | ||
"no-inner-declarations": 2, | ||
"no-invalid-regexp": 2, | ||
"no-irregular-whitespace": 2, | ||
"no-negated-in-lhs": 2, | ||
"no-obj-calls": 2, | ||
"no-regex-spaces": 2, | ||
"no-sparse-arrays": 2, | ||
"no-unreachable": 2, | ||
"use-isnan": 2, | ||
"valid-typeof": 2, | ||
"no-unexpected-multiline": 0, | ||
|
||
// Best Practices | ||
"block-scoped-var": 2, | ||
"complexity": [2, 40], | ||
"curly": [2, "multi-line"], | ||
"default-case": 2, | ||
"dot-notation": [2, { "allowKeywords": true }], | ||
"eqeqeq": 2, | ||
"guard-for-in": 2, | ||
"no-alert": 1, | ||
"no-caller": 2, | ||
"no-case-declarations": 2, | ||
"no-div-regex": 0, | ||
"no-else-return": 2, | ||
"no-eq-null": 2, | ||
"no-eval": 2, | ||
"no-extend-native": 2, | ||
"no-extra-bind": 2, | ||
"no-fallthrough": 2, | ||
"no-floating-decimal": 2, | ||
"no-implied-eval": 2, | ||
"no-iterator": 2, | ||
"no-labels": 2, | ||
"no-lone-blocks": 2, | ||
"no-loop-func": 2, | ||
// "no-multi-spaces": [2, { exceptions: { "VariableDeclarator": true, "ImportDeclaration": true } }], | ||
"no-multi-str": 2, | ||
"no-native-reassign": 2, | ||
"no-new": 2, | ||
"no-new-func": 2, | ||
"no-new-wrappers": 2, | ||
"no-octal": 2, | ||
"no-octal-escape": 2, | ||
"no-param-reassign": [2, { "props": true }], | ||
"no-proto": 2, | ||
"no-redeclare": 2, | ||
"no-script-url": 2, | ||
"no-self-compare": 2, | ||
"no-sequences": 2, | ||
// "no-throw-literal": 2, | ||
"no-unused-expressions": 2, | ||
"no-useless-call": 2, | ||
"no-with": 2, | ||
"radix": 2, | ||
"wrap-iife": [2, "outside"], | ||
"yoda": 2, | ||
|
||
// ES2015 | ||
"arrow-parens": 0, | ||
"arrow-spacing": [2, { "before": true, "after": true }], | ||
"constructor-super": 2, | ||
"no-class-assign": 2, | ||
"no-const-assign": 2, | ||
"no-this-before-super": 0, | ||
"no-var": 2, | ||
"object-shorthand": [2, "always"], | ||
"prefer-arrow-callback": 2, | ||
"prefer-const": 2, | ||
"prefer-spread": 2, | ||
"prefer-template": 2, | ||
|
||
// Strict Mode | ||
"strict": [2, "never"], | ||
|
||
// Variables | ||
"no-catch-shadow": 2, | ||
"no-delete-var": 2, | ||
"no-label-var": 2, | ||
"no-shadow-restricted-names": 2, | ||
"no-shadow": 2, | ||
"no-undef-init": 2, | ||
"no-undef": 2, | ||
"no-unused-vars": 2, | ||
|
||
// Node.js | ||
"callback-return": 2, | ||
"no-mixed-requires": 2, | ||
"no-path-concat": 2, | ||
"no-sync": 2, | ||
"handle-callback-err": 1, | ||
"no-new-require": 2, | ||
|
||
// Stylistic | ||
"array-bracket-spacing": [2, "never", { | ||
"singleValue": true, | ||
"objectsInArrays": true, | ||
"arraysInArrays": true | ||
}], | ||
"newline-after-var": [1, "always"], | ||
"camelcase": [2, { "properties": "always" }], | ||
"comma-spacing": [2, { "before": false, "after": true }], | ||
"comma-style": [2, "last"], | ||
"computed-property-spacing": [2, "never"], | ||
"eol-last": 2, | ||
"func-names": 1, | ||
"func-style": [2, "declaration"], | ||
"indent": [2, 2, { "SwitchCase": 1 }], | ||
"jsx-quotes": [2, "prefer-single"], | ||
// "key-spacing": [2, { | ||
// "singleLine": { | ||
// "beforeColon": false, | ||
// "afterColon": true | ||
// }, | ||
// "multiLine": { | ||
// "beforeColon": true, | ||
// "afterColon": true, | ||
// "align": "colon" | ||
// } | ||
// }], | ||
"linebreak-style": [2, "unix"], | ||
"max-len": [2, 128, 4, { | ||
"ignoreUrls": true, | ||
"ignoreComments": false | ||
}], | ||
"max-nested-callbacks": [2, 4], | ||
"new-parens": 2, | ||
"no-array-constructor": 2, | ||
"no-lonely-if": 2, | ||
"no-mixed-spaces-and-tabs": 2, | ||
"no-multiple-empty-lines": [2, { "max": 2, "maxEOF": 1 }], | ||
"no-nested-ternary": 2, | ||
"no-new-object": 2, | ||
"no-spaced-func": 2, | ||
"no-trailing-spaces": 2, | ||
"no-unneeded-ternary": 2, | ||
"object-curly-spacing": [2, "always"], | ||
"one-var": [2, "never"], | ||
"padded-blocks": [2, "never"], | ||
"quotes": [1, "single", "avoid-escape"], | ||
"semi-spacing": [2, { "before": false, "after": true }], | ||
"semi": [2, "always"], | ||
"keyword-spacing": 2, | ||
"space-before-blocks": 2, | ||
"space-before-function-paren": [2, { "anonymous": "always", "named": "never" }], | ||
"space-in-parens": [2, "never"], | ||
"space-infix-ops": 2, | ||
"space-unary-ops": [2, { "words": true, "nonwords": false }], | ||
"spaced-comment": [2, "always", { | ||
"exceptions": ["-", "+"], | ||
"markers": ["=", "!"] | ||
}], | ||
|
||
// React | ||
"react/jsx-boolean-value": 2, | ||
"react/jsx-closing-bracket-location": 2, | ||
"react/jsx-curly-spacing": [2, "never"], | ||
"react/jsx-handler-names": 2, | ||
"react/jsx-indent-props": [2, 2], | ||
"react/jsx-indent": [2, 2], | ||
"react/jsx-key": 2, | ||
"react/jsx-max-props-per-line": [2, {maximum: 3}], | ||
"react/jsx-no-bind": [2, { | ||
"ignoreRefs": true, | ||
"allowBind": true, | ||
"allowArrowFunctions": true | ||
}], | ||
"react/jsx-no-duplicate-props": 2, | ||
"react/jsx-no-undef": 2, | ||
"react/jsx-pascal-case": 2, | ||
"react/jsx-uses-react": 2, | ||
"react/jsx-uses-vars": 2, | ||
// "react/no-danger": 2, | ||
"react/no-deprecated": 2, | ||
"react/no-did-mount-set-state": 0, | ||
"react/no-did-update-set-state": 2, | ||
"react/no-direct-mutation-state": 2, | ||
"react/no-is-mounted": 2, | ||
"react/no-multi-comp": 2, | ||
"react/no-string-refs": 2, | ||
"react/no-unknown-property": 2, | ||
"react/prefer-es6-class": 2, | ||
"react/prop-types": 2, | ||
"react/react-in-jsx-scope": 2, | ||
"react/self-closing-comp": 2, | ||
"react/sort-comp": [2, { | ||
"order": [ | ||
"lifecycle", | ||
"/^handle.+$/", | ||
"/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/", | ||
"everything-else", | ||
"/^render.+$/", | ||
"render" | ||
] | ||
}], | ||
"react/wrap-multilines": 2, | ||
|
||
// Legacy | ||
"max-depth": [0, 4], | ||
"max-params": [2, 4], | ||
"no-bitwise": 2 | ||
}, | ||
|
||
"globals":{ | ||
"$": true, | ||
"ga": true | ||
} | ||
"extends": "airbnb", | ||
"parser": "babel-eslint", | ||
"rules": { | ||
"key-spacing": [0], | ||
"no-empty": [0], | ||
"no-multi-spaces": [0], | ||
"react/jsx-equals-spacing": [0] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,4 +36,4 @@ jspm_packages | |
# Optional REPL history | ||
.node_repl_history | ||
.idea | ||
dist | ||
/dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,10 @@ | ||
.idea | ||
coverage | ||
demo | ||
docs | ||
src | ||
test | ||
.babelrc | ||
.eslintrc | ||
.travis.yml | ||
webpack.config.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
language: node_js | ||
node_js: | ||
- "6" | ||
- "5" | ||
- "4" | ||
- "node" | ||
env: | ||
- CXX=g++-4.8 | ||
before_install: | ||
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | ||
- sudo apt-get -qq update | ||
- sudo apt-get -qq install g++-4.8 | ||
install: "npm install && npm run build" | ||
after_success: "npm install -g coveralls && npm run coverage && cat ./coverage/lcov.info | coveralls" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# react-bootstrap-time-picker | ||
Time Picker with bootstrap flavor | ||
|
||
[![react-bootstrap-time-picker](https://github.com/yury-dymov/react-bootstrap-time-picker/raw/master/docs/rbtp.png)](https://github.com/yury-dymov/react-bootstrap-time-picker) | ||
|
||
[![npm version](https://img.shields.io/npm/v/react-bootstrap-time-picker.svg?style=flat)](https://www.npmjs.com/package/react-bootstrap-time-picker) | ||
[![Downloads](http://img.shields.io/npm/dm/react-bootstrap-time-picker.svg?style=flat-square)](https://npmjs.org/package/react-bootstrap-time-picker) | ||
[![Build Status](https://img.shields.io/travis/yury-dymov/react-bootstrap-time-picker/master.svg?style=flat)](https://travis-ci.org/yury-dymov/react-bootstrap-time-picker) | ||
[![Coverage Status](https://coveralls.io/repos/github/yury-dymov/react-bootstrap-time-picker/badge.svg?branch=master)](https://coveralls.io/github/yury-dymov/react-bootstrap-time-picker?branch=master) | ||
|
||
# Demo | ||
Demo and playground are available [here](https://yury-dymov.github.io/react-bootstrap-time-picker/) | ||
|
||
# Usage Example | ||
``` | ||
import TimePicker from 'react-bootstrap-time-picker'; | ||
<TimePicker start="10:00" end="21:00" step={30} /> | ||
``` | ||
|
||
# Configurable Props | ||
*Note*: All props are optional. | ||
|
||
### end: string, default "23:59" | ||
Time Picker renders options with range between `start` and `end` time values with `step` (inclusive). | ||
|
||
Should be provided in the following format: "HH?(:mm?(:ss?))". | ||
|
||
#### Valid examples | ||
"4", "04", "4:0", "04:00", "4:0:0", "04:00:00". All these are equal to "4 hours". | ||
|
||
#### Invalid example | ||
"11:00 PM". Should be provided in 24-hour format only | ||
|
||
### format: number, default "23:59" | ||
Time Format of rendered options. Supported values: `12` or `24`. | ||
|
||
### initialValue: any, default: "00:00" | ||
Initial selected option. Used if `value` prop is either `undefined` or `null`. Can be provided either in "HH?(:mm?(:ss?))" format or as int `(hours * 3600 + minutes * 60 + seconds)`. If `initialValue` is less than `start` property value, then `start` value is used instead. | ||
|
||
#### Valid examples | ||
"1:00", "01:00", "3600", 3600 | ||
|
||
#### Invalid examples | ||
"11:00 PM" | ||
|
||
### onChange: func, default: () => {} | ||
Function, which is triggered after one of options is selected. Return selected time in int format: `(hours * 3600 + minutes * 60 + seconds)`. | ||
|
||
#### Example | ||
``` | ||
class Parent extends React.Component { | ||
constructor() { | ||
super(); | ||
this.handleTimeChange = this.handleTimeChange.bind(this); | ||
this.state = { time: 0 }; | ||
} | ||
handleTimeChange(time) { | ||
console.log(time); // <- prints "3600" if "01:00" is picked | ||
this.setState({ time }); | ||
} | ||
render() { | ||
return <TimePicker onChange={this.handleTimeChange} value={this.state.time}; | ||
} | ||
} | ||
``` | ||
|
||
### start: string, default: "00:00" | ||
See `end` property description. | ||
|
||
### step: number, default: 30 | ||
Step between time options in minutes. See `end` property description. | ||
|
||
### value | ||
Current value. See `initialValue` description. | ||
|
||
# Validations | ||
Library doesn't validate provided props much. If you are doing something strange like setting `start="10:00", end="05:00"`, then behavior is undefined, which means that it might render component differently in the future versions. Also underlying library [time-number](https://github.com/yury-dymov/time-number) throws exceptions if provided time is not in a proper format, i.e. values `12:00 PM` and `adl` are considered invalid. | ||
|
||
# License | ||
MIT (c) Yury Dymov |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"presets": ["react", "es2015", "stage-0"] | ||
} |
Oops, something went wrong.