0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-11-28 10:24:19 +01:00

Merge branch 'v4-dev' into form-tweaks

This commit is contained in:
Mark Otto 2017-05-26 21:22:08 -07:00
commit 04724939a3
94 changed files with 3824 additions and 1675 deletions

View File

@ -51,5 +51,5 @@ cdn:
js_hash: "sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn"
jquery: https://code.jquery.com/jquery-3.2.1.slim.min.js
jquery_hash: "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
tether: https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js
tether_hash: "sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
popper: https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js
popper_hash: "sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc="

View File

@ -31,6 +31,6 @@
],
"dependencies": {
"jquery": ">=1.9.1",
"tether": "^1.4.0"
"popper.js": "^1.9.9"
}
}

1034
build/npm-shrinkwrap.json generated
View File

@ -28,10 +28,24 @@
}
}
},
"agent-base": {
"version": "2.0.1",
"from": "agent-base@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
"dev": true,
"dependencies": {
"semver": {
"version": "5.0.3",
"from": "semver@>=5.0.1 <5.1.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
"dev": true
}
}
},
"ajv": {
"version": "4.11.6",
"version": "4.11.7",
"from": "ajv@>=4.7.0 <5.0.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.6.tgz",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.7.tgz",
"dev": true
},
"ajv-keywords": {
@ -101,9 +115,9 @@
"dev": true
},
"arr-flatten": {
"version": "1.0.2",
"version": "1.0.3",
"from": "arr-flatten@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.2.tgz",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz",
"dev": true
},
"array-filter": {
@ -173,9 +187,9 @@
"dev": true
},
"async": {
"version": "1.4.2",
"from": "async@1.4.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz",
"version": "1.5.2",
"from": "async@>=1.5.2 <1.6.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"dev": true
},
"async-each": {
@ -245,33 +259,33 @@
"dev": true
},
"babel-helper-call-delegate": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-call-delegate@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-call-delegate@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -283,53 +297,53 @@
}
},
"babel-helper-define-map": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-define-map@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-define-map@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-helper-function-name": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-function-name@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-function-name@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -341,95 +355,95 @@
}
},
"babel-helper-get-function-arity": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-get-function-arity@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-get-function-arity@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-helper-hoist-variables": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-hoist-variables@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-hoist-variables@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-helper-optimise-call-expression": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-optimise-call-expression@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-optimise-call-expression@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-helper-regex": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-regex@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-regex@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-helper-replace-supers": {
"version": "7.0.0-alpha.7",
"from": "babel-helper-replace-supers@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-helper-replace-supers@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -453,57 +467,57 @@
"dev": true
},
"babel-plugin-check-es2015-constants": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-check-es2015-constants@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-check-es2015-constants@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-arrow-functions": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-arrow-functions@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-arrow-functions@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-block-scoped-functions": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-block-scoped-functions@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-block-scoped-functions@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-block-scoping": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-block-scoping@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-block-scoping@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -515,39 +529,39 @@
}
},
"babel-plugin-transform-es2015-classes": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-classes@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-classes@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -559,39 +573,39 @@
}
},
"babel-plugin-transform-es2015-computed-properties": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-computed-properties@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-computed-properties@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -603,85 +617,85 @@
}
},
"babel-plugin-transform-es2015-destructuring": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-destructuring@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-destructuring@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-duplicate-keys": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-duplicate-keys@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-duplicate-keys@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-plugin-transform-es2015-for-of": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-for-of@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-for-of@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-function-name": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-function-name@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-function-name@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-plugin-transform-es2015-literals": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-literals@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-literals@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-modules-amd": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-modules-amd@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-modules-amd@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -693,39 +707,39 @@
}
},
"babel-plugin-transform-es2015-modules-commonjs": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-modules-commonjs@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-modules-commonjs@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -743,39 +757,39 @@
"dev": true
},
"babel-plugin-transform-es2015-modules-systemjs": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-modules-systemjs@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-modules-systemjs@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -787,39 +801,39 @@
}
},
"babel-plugin-transform-es2015-modules-umd": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-modules-umd@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-modules-umd@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -831,45 +845,45 @@
}
},
"babel-plugin-transform-es2015-object-super": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-object-super@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-object-super@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-parameters": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-parameters@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-parameters@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-code-frame": {
"version": "7.0.0-alpha.3",
"from": "babel-code-frame@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-code-frame@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-messages": {
"version": "7.0.0-alpha.3",
"from": "babel-messages@7.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-messages@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-template": {
"version": "7.0.0-alpha.7",
"from": "babel-template@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-template@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-traverse": {
"version": "7.0.0-alpha.7",
"from": "babel-traverse@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-traverse@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
},
"babylon": {
@ -881,73 +895,73 @@
}
},
"babel-plugin-transform-es2015-shorthand-properties": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-shorthand-properties@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-shorthand-properties@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-plugin-transform-es2015-spread": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-spread@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-spread@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-sticky-regex": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-sticky-regex@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-sticky-regex@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
},
"babel-plugin-transform-es2015-template-literals": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-template-literals@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-template-literals@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-typeof-symbol": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-typeof-symbol@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-typeof-symbol@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-es2015-unicode-regex": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-es2015-unicode-regex@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-es2015-unicode-regex@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-regenerator": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-regenerator@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-regenerator@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-plugin-transform-strict-mode": {
"version": "7.0.0-alpha.7",
"from": "babel-plugin-transform-strict-mode@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-plugin-transform-strict-mode@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-7.0.0-alpha.9.tgz",
"dev": true,
"dependencies": {
"babel-types": {
"version": "7.0.0-alpha.7",
"from": "babel-types@7.0.0-alpha.7",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-types@7.0.0-alpha.9",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.9.tgz",
"dev": true
}
}
@ -959,9 +973,9 @@
"dev": true
},
"babel-preset-es2015": {
"version": "7.0.0-alpha.7",
"from": "babel-preset-es2015@>=7.0.0-alpha.3 <8.0.0",
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-7.0.0-alpha.7.tgz",
"version": "7.0.0-alpha.9",
"from": "babel-preset-es2015@>=7.0.0-alpha.9 <8.0.0",
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-7.0.0-alpha.9.tgz",
"dev": true
},
"babel-register": {
@ -1100,29 +1114,21 @@
"dev": true
},
"camelcase": {
"version": "3.0.0",
"from": "camelcase@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"version": "2.1.1",
"from": "camelcase@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"dev": true
},
"camelcase-keys": {
"version": "2.1.0",
"from": "camelcase-keys@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"dev": true,
"dependencies": {
"camelcase": {
"version": "2.1.1",
"from": "camelcase@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"dev": true
}
}
"dev": true
},
"caniuse-db": {
"version": "1.0.30000653",
"version": "1.0.30000655",
"from": "caniuse-db@>=1.0.30000634 <2.0.0",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000653.tgz",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000655.tgz",
"dev": true
},
"caseless": {
@ -1237,10 +1243,16 @@
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"dev": true
},
"coffee-script": {
"version": "1.10.0",
"from": "coffee-script@>=1.10.0 <1.11.0",
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
"dev": true
},
"colors": {
"version": "1.0.3",
"from": "colors@1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
"version": "1.1.2",
"from": "colors@>=1.1.2 <1.2.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
"dev": true
},
"combined-stream": {
@ -1369,6 +1381,12 @@
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
"dev": true
},
"dateformat": {
"version": "1.0.12",
"from": "dateformat@>=1.0.12 <1.1.0",
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
"dev": true
},
"debug": {
"version": "2.6.3",
"from": "debug@>=2.1.1 <3.0.0",
@ -1377,7 +1395,7 @@
},
"decamelize": {
"version": "1.2.0",
"from": "decamelize@>=1.1.1 <2.0.0",
"from": "decamelize@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"dev": true
},
@ -1487,9 +1505,9 @@
"optional": true
},
"electron-to-chromium": {
"version": "1.3.3",
"version": "1.3.4",
"from": "electron-to-chromium@>=1.2.7 <2.0.0",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.3.tgz",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.4.tgz",
"dev": true
},
"ensure-posix-path": {
@ -1650,6 +1668,20 @@
"version": "3.3.4",
"from": "event-stream@>=3.3.0 <3.4.0",
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
"dev": true,
"dependencies": {
"split": {
"version": "0.3.3",
"from": "split@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
"dev": true
}
}
},
"eventemitter2": {
"version": "0.4.14",
"from": "eventemitter2@>=0.4.13 <0.5.0",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
"dev": true
},
"exists-stat": {
@ -1660,7 +1692,7 @@
},
"exit": {
"version": "0.1.2",
"from": "exit@>=0.1.0 <0.2.0",
"from": "exit@>=0.1.1 <0.2.0",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
"dev": true
},
@ -1756,6 +1788,26 @@
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"dev": true
},
"fg-lodash": {
"version": "0.0.2",
"from": "fg-lodash@0.0.2",
"resolved": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz",
"dev": true,
"dependencies": {
"lodash": {
"version": "2.4.2",
"from": "lodash@>=2.4.1 <3.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
"dev": true
},
"underscore.string": {
"version": "2.3.3",
"from": "underscore.string@>=2.3.3 <2.4.0",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
"dev": true
}
}
},
"figures": {
"version": "1.7.0",
"from": "figures@>=1.3.5 <2.0.0",
@ -1787,10 +1839,18 @@
"dev": true
},
"findup-sync": {
"version": "0.4.3",
"from": "findup-sync@>=0.4.2 <0.5.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
"dev": true
"version": "0.3.0",
"from": "findup-sync@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
"dev": true,
"dependencies": {
"glob": {
"version": "5.0.15",
"from": "glob@>=5.0.0 <5.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
"dev": true
}
}
},
"fined": {
"version": "1.0.2",
@ -1932,6 +1992,12 @@
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"dev": true
},
"getobject": {
"version": "0.1.0",
"from": "getobject@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
"dev": true
},
"getpass": {
"version": "0.1.6",
"from": "getpass@>=0.1.1 <0.2.0",
@ -2014,6 +2080,112 @@
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"dev": true
},
"grunt": {
"version": "1.0.1",
"from": "grunt@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
"dev": true,
"dependencies": {
"esprima": {
"version": "2.7.3",
"from": "esprima@>=2.6.0 <3.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
"dev": true
},
"glob": {
"version": "7.0.6",
"from": "glob@>=7.0.0 <7.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
"dev": true
},
"grunt-cli": {
"version": "1.2.0",
"from": "grunt-cli@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
"dev": true
},
"js-yaml": {
"version": "3.5.5",
"from": "js-yaml@>=3.5.2 <3.6.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
"dev": true
},
"resolve": {
"version": "1.1.7",
"from": "resolve@>=1.1.0 <1.2.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
"dev": true
},
"rimraf": {
"version": "2.2.8",
"from": "rimraf@>=2.2.8 <2.3.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
"dev": true
}
}
},
"grunt-known-options": {
"version": "1.1.0",
"from": "grunt-known-options@>=1.1.0 <1.2.0",
"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
"dev": true
},
"grunt-legacy-log": {
"version": "1.0.0",
"from": "grunt-legacy-log@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
"dev": true,
"dependencies": {
"lodash": {
"version": "3.10.1",
"from": "lodash@>=3.10.1 <3.11.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
"dev": true
}
}
},
"grunt-legacy-log-utils": {
"version": "1.0.0",
"from": "grunt-legacy-log-utils@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
"dev": true,
"dependencies": {
"lodash": {
"version": "4.3.0",
"from": "lodash@>=4.3.0 <4.4.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
"dev": true
}
}
},
"grunt-legacy-util": {
"version": "1.0.0",
"from": "grunt-legacy-util@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
"dev": true,
"dependencies": {
"lodash": {
"version": "4.3.0",
"from": "lodash@>=4.3.0 <4.4.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
"dev": true
}
}
},
"grunt-saucelabs": {
"version": "9.0.0",
"from": "grunt-saucelabs@>=9.0.0 <10.0.0",
"resolved": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-9.0.0.tgz",
"dev": true,
"dependencies": {
"lodash": {
"version": "4.13.1",
"from": "lodash@>=4.13.1 <4.14.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz",
"dev": true
}
}
},
"har-schema": {
"version": "1.0.5",
"from": "har-schema@>=1.0.5 <2.0.0",
@ -2080,6 +2252,12 @@
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
"dev": true
},
"hooker": {
"version": "0.2.3",
"from": "hooker@>=0.2.3 <0.3.0",
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
"dev": true
},
"hosted-git-info": {
"version": "2.4.2",
"from": "hosted-git-info@>=2.1.4 <3.0.0",
@ -2092,6 +2270,18 @@
"resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-0.9.13.tgz",
"dev": true,
"dependencies": {
"async": {
"version": "1.4.2",
"from": "async@1.4.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz",
"dev": true
},
"colors": {
"version": "1.0.3",
"from": "colors@1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
"dev": true
},
"commander": {
"version": "2.6.0",
"from": "commander@2.6.0",
@ -2156,6 +2346,18 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"dev": true
},
"https-proxy-agent": {
"version": "1.0.0",
"from": "https-proxy-agent@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
"dev": true
},
"iconv-lite": {
"version": "0.4.15",
"from": "iconv-lite@>=0.4.13 <0.5.0",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
"dev": true
},
"ignore": {
"version": "3.2.7",
"from": "ignore@>=3.2.0 <4.0.0",
@ -2205,9 +2407,9 @@
"dev": true
},
"interpret": {
"version": "1.0.2",
"version": "1.0.3",
"from": "interpret@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.2.tgz",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
"dev": true
},
"invariant": {
@ -2621,7 +2823,15 @@
"version": "2.3.0",
"from": "liftoff@>=2.3.0 <3.0.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
"dev": true
"dev": true,
"dependencies": {
"findup-sync": {
"version": "0.4.3",
"from": "findup-sync@>=0.4.2 <0.5.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
"dev": true
}
}
},
"load-json-file": {
"version": "1.1.0",
@ -2753,7 +2963,7 @@
},
"meow": {
"version": "3.7.0",
"from": "meow@>=3.7.0 <4.0.0",
"from": "meow@>=3.3.0 <4.0.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
"dev": true,
"dependencies": {
@ -2851,13 +3061,13 @@
},
"nopt": {
"version": "3.0.6",
"from": "nopt@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
"from": "nopt@>=3.0.6 <3.1.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"dev": true
},
"normalize-package-data": {
"version": "2.3.6",
"from": "normalize-package-data@>=2.3.2 <3.0.0",
"from": "normalize-package-data@>=2.3.4 <3.0.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz",
"dev": true
},
@ -3179,6 +3389,11 @@
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
"dev": true
},
"popper.js": {
"version": "1.9.9",
"from": "popper.js@>=1.9.9 <3.0.0",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.9.9.tgz"
},
"postcss": {
"version": "5.2.17",
"from": "postcss@>=5.2.16 <6.0.0",
@ -3191,6 +3406,12 @@
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-3.1.1.tgz",
"dev": true,
"dependencies": {
"camelcase": {
"version": "3.0.0",
"from": "camelcase@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"dev": true
},
"get-stdin": {
"version": "5.0.1",
"from": "get-stdin@>=5.0.1 <6.0.0",
@ -3307,6 +3528,12 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"dev": true
},
"q": {
"version": "1.4.1",
"from": "q@>=1.4.1 <1.5.0",
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
"dev": true
},
"qs": {
"version": "6.4.0",
"from": "qs@>=6.4.0 <6.5.0",
@ -3326,10 +3553,18 @@
"dev": true
},
"qunitjs": {
"version": "2.3.1",
"from": "qunitjs@>=2.3.1 <3.0.0",
"resolved": "https://registry.npmjs.org/qunitjs/-/qunitjs-2.3.1.tgz",
"dev": true
"version": "2.3.2",
"from": "qunitjs@>=2.3.2 <3.0.0",
"resolved": "https://registry.npmjs.org/qunitjs/-/qunitjs-2.3.2.tgz",
"dev": true,
"dependencies": {
"findup-sync": {
"version": "0.4.3",
"from": "findup-sync@>=0.4.3 <0.5.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
"dev": true
}
}
},
"randomatic": {
"version": "1.1.6",
@ -3392,9 +3627,9 @@
"dev": true
},
"regenerate-unicode-properties": {
"version": "5.0.3",
"from": "regenerate-unicode-properties@>=5.0.3 <6.0.0",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-5.0.3.tgz",
"version": "5.0.7",
"from": "regenerate-unicode-properties@>=5.0.6 <6.0.0",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-5.0.7.tgz",
"dev": true
},
"regenerator-runtime": {
@ -3416,9 +3651,9 @@
"dev": true
},
"regexpu-core": {
"version": "4.0.7",
"version": "4.0.11",
"from": "regexpu-core@>=4.0.2 <5.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.0.7.tgz",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.0.11.tgz",
"dev": true
},
"regjsgen": {
@ -3467,7 +3702,7 @@
},
"request": {
"version": "2.81.0",
"from": "request@>=2.79.0 <3.0.0",
"from": "request@>=2.74.0 <3.0.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"dev": true
},
@ -3477,6 +3712,12 @@
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
"dev": true
},
"requestretry": {
"version": "1.9.1",
"from": "requestretry@>=1.9.0 <1.10.0",
"resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.9.1.tgz",
"dev": true
},
"require-directory": {
"version": "2.1.1",
"from": "require-directory@>=2.1.1 <3.0.0",
@ -3561,6 +3802,12 @@
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.1.2.tgz",
"dev": true,
"dependencies": {
"camelcase": {
"version": "3.0.0",
"from": "camelcase@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"dev": true
},
"yargs": {
"version": "4.8.1",
"from": "yargs@>=4.7.1 <5.0.0",
@ -3575,9 +3822,21 @@
}
}
},
"sauce-tunnel": {
"version": "2.5.0",
"from": "sauce-tunnel@>=2.5.0 <2.6.0",
"resolved": "https://registry.npmjs.org/sauce-tunnel/-/sauce-tunnel-2.5.0.tgz",
"dev": true
},
"saucelabs": {
"version": "1.2.0",
"from": "saucelabs@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz",
"dev": true
},
"semver": {
"version": "5.3.0",
"from": "semver@>=5.3.0 <6.0.0",
"from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"dev": true
},
@ -3692,9 +3951,9 @@
"dev": true
},
"split": {
"version": "0.3.3",
"from": "split@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
"version": "1.0.0",
"from": "split@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz",
"dev": true
},
"sprintf-js": {
@ -3809,11 +4068,6 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"dev": true
},
"tether": {
"version": "1.4.0",
"from": "tether@>=1.4.0 <2.0.0",
"resolved": "https://registry.npmjs.org/tether/-/tether-1.4.0.tgz"
},
"text-table": {
"version": "0.2.0",
"from": "text-table@>=0.2.0 <0.3.0",
@ -3950,34 +4204,34 @@
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
"dev": true
},
"unicode-canonical-property-names": {
"version": "1.0.3",
"from": "unicode-canonical-property-names@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names/-/unicode-canonical-property-names-1.0.3.tgz",
"underscore.string": {
"version": "3.2.3",
"from": "underscore.string@>=3.2.3 <3.3.0",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
"dev": true
},
"unicode-match-property": {
"version": "0.1.3",
"from": "unicode-match-property@>=0.1.3 <0.2.0",
"resolved": "https://registry.npmjs.org/unicode-match-property/-/unicode-match-property-0.1.3.tgz",
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.0",
"from": "unicode-canonical-property-names-ecmascript@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.0.tgz",
"dev": true
},
"unicode-match-property-value": {
"unicode-match-property-ecmascript": {
"version": "1.0.1",
"from": "unicode-match-property-ecmascript@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.1.tgz",
"dev": true
},
"unicode-match-property-value-ecmascript": {
"version": "1.0.0",
"from": "unicode-match-property-value-ecmascript@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.0.tgz",
"dev": true
},
"unicode-property-aliases-ecmascript": {
"version": "1.0.2",
"from": "unicode-match-property-value@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-value/-/unicode-match-property-value-1.0.2.tgz",
"dev": true
},
"unicode-property-aliases": {
"version": "1.1.1",
"from": "unicode-property-aliases@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases/-/unicode-property-aliases-1.1.1.tgz",
"dev": true
},
"unicode-property-value-aliases": {
"version": "1.2.2",
"from": "unicode-property-value-aliases@>=1.2.1 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-property-value-aliases/-/unicode-property-value-aliases-1.2.2.tgz",
"from": "unicode-property-aliases-ecmascript@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.2.tgz",
"dev": true
},
"user-home": {
@ -3999,9 +4253,9 @@
"dev": true
},
"v8flags": {
"version": "2.0.12",
"version": "2.1.1",
"from": "v8flags@>=2.0.10 <3.0.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.12.tgz",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
"dev": true
},
"validate-npm-package-license": {
@ -4022,9 +4276,15 @@
"resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.1.tgz",
"dev": true
},
"when": {
"version": "3.7.8",
"from": "when@>=3.7.5 <3.8.0",
"resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
"dev": true
},
"which": {
"version": "1.2.14",
"from": "which@>=1.2.12 <2.0.0",
"from": "which@>=1.2.1 <1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
"dev": true
},
@ -4098,13 +4358,29 @@
"version": "6.6.0",
"from": "yargs@>=6.6.0 <7.0.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
"dev": true
"dev": true,
"dependencies": {
"camelcase": {
"version": "3.0.0",
"from": "camelcase@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"dev": true
}
}
},
"yargs-parser": {
"version": "4.2.1",
"from": "yargs-parser@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
"dev": true
"dev": true,
"dependencies": {
"camelcase": {
"version": "3.0.0",
"from": "camelcase@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"dev": true
}
}
},
"yauzl": {
"version": "2.4.1",

View File

@ -246,51 +246,99 @@ html {
}
.col-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-0 {
@ -460,40 +508,88 @@ html {
width: auto;
}
.col-sm-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-sm-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-sm-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-sm-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-sm-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-sm-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-sm-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-sm-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-sm-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-sm-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-sm-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-sm-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-sm-0 {
right: auto;
@ -630,40 +726,88 @@ html {
width: auto;
}
.col-md-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-md-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-md-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-md-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-md-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-md-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-md-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-md-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-md-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-md-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-md-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-md-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-md-0 {
right: auto;
@ -800,40 +944,88 @@ html {
width: auto;
}
.col-lg-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-lg-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-lg-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-lg-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-lg-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-lg-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-lg-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-lg-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-lg-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-lg-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-lg-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-lg-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-lg-0 {
right: auto;
@ -970,40 +1162,88 @@ html {
width: auto;
}
.col-xl-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-xl-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-xl-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-xl-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-xl-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-xl-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-xl-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-xl-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-xl-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-xl-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-xl-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-xl-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-xl-0 {
right: auto;

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

View File

@ -20,6 +20,10 @@ html {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */

View File

@ -1 +1 @@
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aAIlB,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAQF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGpLE,QHuLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGzLE,oCAAA,oCH4LA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}

View File

@ -93,6 +93,10 @@ html {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@ -855,51 +859,99 @@ pre code {
}
.col-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-0 {
@ -1069,40 +1121,88 @@ pre code {
width: auto;
}
.col-sm-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-sm-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-sm-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-sm-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-sm-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-sm-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-sm-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-sm-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-sm-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-sm-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-sm-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-sm-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-sm-0 {
right: auto;
@ -1239,40 +1339,88 @@ pre code {
width: auto;
}
.col-md-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-md-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-md-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-md-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-md-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-md-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-md-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-md-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-md-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-md-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-md-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-md-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-md-0 {
right: auto;
@ -1409,40 +1557,88 @@ pre code {
width: auto;
}
.col-lg-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-lg-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-lg-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-lg-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-lg-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-lg-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-lg-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-lg-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-lg-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-lg-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-lg-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-lg-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-lg-0 {
right: auto;
@ -1579,40 +1775,88 @@ pre code {
width: auto;
}
.col-xl-1 {
width: 8.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 8.333333%;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-xl-2 {
width: 16.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 16.666667%;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-xl-3 {
width: 25%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 25%;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-xl-4 {
width: 33.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 33.333333%;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-xl-5 {
width: 41.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 41.666667%;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-xl-6 {
width: 50%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 50%;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-xl-7 {
width: 58.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 58.333333%;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-xl-8 {
width: 66.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 66.666667%;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-xl-9 {
width: 75%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 75%;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-xl-10 {
width: 83.333333%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 83.333333%;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-xl-11 {
width: 91.666667%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 91.666667%;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-xl-12 {
width: 100%;
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.pull-xl-0 {
right: auto;
@ -2887,22 +3131,12 @@ tbody.collapse.show {
background-color: transparent;
}
.show > .dropdown-menu {
display: block;
}
.show > a {
outline: 0;
}
.dropdown-menu-right {
right: 0;
left: auto;
}
.dropdown-menu-left {
right: auto;
left: 0;
.dropdown-menu.show {
display: block;
}
.dropdown-header {
@ -2914,12 +3148,6 @@ tbody.collapse.show {
white-space: nowrap;
}
.dropup .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 0.125rem;
}
.btn-group,
.btn-group-vertical {
position: relative;
@ -3643,6 +3871,14 @@ tbody.collapse.show {
padding-left: 0;
}
.navbar-nav .dropdown-menu {
position: static !important;
float: none;
-webkit-transform: unset !important;
-o-transform: unset !important;
transform: unset !important;
}
.navbar-text {
display: inline-block;
padding-top: 0.5rem;
@ -3680,10 +3916,6 @@ tbody.collapse.show {
}
@media (max-width: 575px) {
.navbar-expand-sm .navbar-nav .dropdown-menu {
position: static;
float: none;
}
.navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid {
padding-right: 0;
@ -3714,7 +3946,8 @@ tbody.collapse.show {
flex-direction: row;
}
.navbar-expand-sm .navbar-nav .dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.navbar-expand-sm .navbar-nav .nav-link {
padding-right: .5rem;
@ -3738,10 +3971,6 @@ tbody.collapse.show {
}
@media (max-width: 767px) {
.navbar-expand-md .navbar-nav .dropdown-menu {
position: static;
float: none;
}
.navbar-expand-md > .container,
.navbar-expand-md > .container-fluid {
padding-right: 0;
@ -3772,7 +4001,8 @@ tbody.collapse.show {
flex-direction: row;
}
.navbar-expand-md .navbar-nav .dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.navbar-expand-md .navbar-nav .nav-link {
padding-right: .5rem;
@ -3796,10 +4026,6 @@ tbody.collapse.show {
}
@media (max-width: 991px) {
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: static;
float: none;
}
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
@ -3830,7 +4056,8 @@ tbody.collapse.show {
flex-direction: row;
}
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: .5rem;
@ -3854,10 +4081,6 @@ tbody.collapse.show {
}
@media (max-width: 1199px) {
.navbar-expand-xl .navbar-nav .dropdown-menu {
position: static;
float: none;
}
.navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid {
padding-right: 0;
@ -3888,7 +4111,8 @@ tbody.collapse.show {
flex-direction: row;
}
.navbar-expand-xl .navbar-nav .dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.navbar-expand-xl .navbar-nav .nav-link {
padding-right: .5rem;
@ -3926,11 +4150,6 @@ tbody.collapse.show {
justify-content: flex-start;
}
.navbar-expand .navbar-nav .dropdown-menu {
position: static;
float: none;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid {
padding-right: 0;
@ -3946,7 +4165,8 @@ tbody.collapse.show {
}
.navbar-expand .navbar-nav .dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.navbar-expand .navbar-nav .nav-link {
@ -5210,6 +5430,7 @@ button.close {
position: absolute;
z-index: 1070;
display: block;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-style: normal;
font-weight: normal;
@ -5233,62 +5454,80 @@ button.close {
opacity: 0.9;
}
.tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom {
padding: 5px 0;
margin-top: -3px;
.tooltip .arrow {
position: absolute;
display: block;
width: 5px;
height: 5px;
}
.tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before {
.tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^="top"] {
padding: 5px 0;
}
.tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
}
.tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
margin-left: -3px;
content: "";
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left {
.tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^="right"] {
padding: 0 5px;
margin-left: 3px;
}
.tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before {
top: 50%;
.tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow {
left: 0;
margin-top: -5px;
}
.tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before {
margin-top: -3px;
content: "";
border-width: 5px 5px 5px 0;
border-right-color: #000;
}
.tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top {
.tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^="bottom"] {
padding: 5px 0;
margin-top: 3px;
}
.tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before {
.tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow {
top: 0;
left: 50%;
margin-left: -5px;
}
.tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
margin-left: -3px;
content: "";
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right {
.tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^="left"] {
padding: 0 5px;
margin-left: -3px;
}
.tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before {
top: 50%;
.tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow {
right: 0;
margin-top: -5px;
}
.tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before {
right: 0;
margin-top: -3px;
content: "";
border-width: 5px 0 5px 5px;
border-left-color: #000;
}
.tooltip .arrow::before {
position: absolute;
border-color: transparent;
border-style: solid;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
@ -5298,14 +5537,6 @@ button.close {
border-radius: 0.25rem;
}
.tooltip-inner::before {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover {
position: absolute;
top: 0;
@ -5337,70 +5568,105 @@ button.close {
border-radius: 0.3rem;
}
.popover.popover-top, .popover.bs-tether-element-attached-bottom {
margin-top: -10px;
.popover .arrow {
position: absolute;
display: block;
width: 10px;
height: 5px;
}
.popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after {
left: 50%;
.popover .arrow::before,
.popover .arrow::after {
position: absolute;
display: block;
border-color: transparent;
border-style: solid;
}
.popover .arrow::before {
content: "";
border-width: 11px;
}
.popover .arrow::after {
content: "";
border-width: 11px;
}
.popover.bs-popover-top, .popover.bs-popover-auto[x-placement^="top"] {
margin-bottom: 10px;
}
.popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^="top"] .arrow {
bottom: 0;
}
.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before,
.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
border-bottom-width: 0;
}
.popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before {
.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before {
bottom: -11px;
margin-left: -11px;
margin-left: -6px;
border-top-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after {
.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
bottom: -10px;
margin-left: -10px;
margin-left: -6px;
border-top-color: #fff;
}
.popover.popover-right, .popover.bs-tether-element-attached-left {
.popover.bs-popover-right, .popover.bs-popover-auto[x-placement^="right"] {
margin-left: 10px;
}
.popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after {
top: 50%;
.popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^="right"] .arrow {
left: 0;
}
.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before,
.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
margin-top: -8px;
border-left-width: 0;
}
.popover.popover-right::before, .popover.bs-tether-element-attached-left::before {
.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before {
left: -11px;
margin-top: -11px;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-right::after, .popover.bs-tether-element-attached-left::after {
.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
left: -10px;
margin-top: -10px;
border-right-color: #fff;
}
.popover.popover-bottom, .popover.bs-tether-element-attached-top {
.popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^="bottom"] {
margin-top: 10px;
}
.popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after {
left: 50%;
.popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^="bottom"] .arrow {
top: 0;
}
.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
margin-left: -7px;
border-top-width: 0;
}
.popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before {
.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before {
top: -11px;
margin-left: -11px;
border-bottom-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {
.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
top: -10px;
margin-left: -10px;
border-bottom-color: #fff;
}
.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {
.popover.bs-popover-bottom .popover-title::before, .popover.bs-popover-auto[x-placement^="bottom"] .popover-title::before {
position: absolute;
top: 0;
left: 50%;
@ -5411,24 +5677,27 @@ button.close {
border-bottom: 1px solid #f7f7f7;
}
.popover.popover-left, .popover.bs-tether-element-attached-right {
margin-left: -10px;
.popover.bs-popover-left, .popover.bs-popover-auto[x-placement^="left"] {
margin-right: 10px;
}
.popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after {
top: 50%;
.popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^="left"] .arrow {
right: 0;
}
.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before,
.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
margin-top: -8px;
border-right-width: 0;
}
.popover.popover-left::before, .popover.bs-tether-element-attached-right::before {
.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before {
right: -11px;
margin-top: -11px;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-left::after, .popover.bs-tether-element-attached-right::after {
.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
right: -10px;
margin-top: -10px;
border-left-color: #fff;
}
@ -5452,26 +5721,6 @@ button.close {
color: #292b2c;
}
.popover::before,
.popover::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover::before {
content: "";
border-width: 11px;
}
.popover::after {
content: "";
border-width: 10px;
}
.carousel {
position: relative;
}

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

View File

@ -438,6 +438,9 @@ var Button = function ($) {
}
if (triggerChangeEvent) {
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
return;
}
input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
$(input).trigger('change');
}
@ -1086,9 +1089,8 @@ var Collapse = function ($) {
};
var Selector = {
ACTIVES: '.card > .show, .card > .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]',
DATA_CHILDREN: 'data-children'
ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]'
};
/**
@ -1105,20 +1107,13 @@ var Collapse = function ($) {
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
this._parent = this._config.parent ? this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
}
this._selectorActives = Selector.ACTIVES;
if (this._parent) {
var childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null;
if (childrenSelector !== null) {
this._selectorActives = childrenSelector + ' > .show, ' + childrenSelector + ' > .collapsing';
}
}
if (this._config.toggle) {
this.toggle();
}
@ -1147,7 +1142,7 @@ var Collapse = function ($) {
var activesData = void 0;
if (this._parent) {
actives = $.makeArray($(this._parent).find(this._selectorActives));
actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
if (!actives.length) {
actives = null;
}
@ -1381,6 +1376,8 @@ var Collapse = function ($) {
return Collapse;
}(jQuery);
/* global Popper */
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-alpha.6): dropdown.js
@ -1390,6 +1387,14 @@ var Collapse = function ($) {
var Dropdown = function ($) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
}
/**
* ------------------------------------------------------------------------
* Constants
@ -1423,7 +1428,10 @@ var Dropdown = function ($) {
var ClassName = {
DISABLED: 'disabled',
SHOW: 'show'
SHOW: 'show',
DROPUP: 'dropup',
MENURIGHT: 'dropdown-menu-right',
MENULEFT: 'dropdown-menu-left'
};
var Selector = {
@ -1434,6 +1442,25 @@ var Dropdown = function ($) {
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
};
var AttachmentMap = {
TOP: 'top-start',
TOPEND: 'top-end',
BOTTOM: 'bottom-start',
BOTTOMEND: 'bottom-end'
};
var Default = {
placement: AttachmentMap.BOTTOM,
offset: 0,
flip: true
};
var DefaultType = {
placement: 'string',
offset: '(number|string)',
flip: 'boolean'
};
/**
* ------------------------------------------------------------------------
* Class Definition
@ -1441,10 +1468,13 @@ var Dropdown = function ($) {
*/
var Dropdown = function () {
function Dropdown(element) {
function Dropdown(element, config) {
_classCallCheck(this, Dropdown);
this._element = element;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._addEventListeners();
}
@ -1454,30 +1484,49 @@ var Dropdown = function ($) {
// public
Dropdown.prototype.toggle = function toggle() {
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
return false;
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return;
}
var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.SHOW);
var parent = Dropdown._getParentFromElement(this._element);
var isActive = $(this._menu).hasClass(ClassName.SHOW);
Dropdown._clearMenus();
if (isActive) {
return false;
return;
}
var relatedTarget = {
relatedTarget: this
relatedTarget: this._element
};
var showEvent = $.Event(Event.SHOW, relatedTarget);
$(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) {
return false;
return;
}
var element = this._element;
// for dropup with alignment we use the parent as popper container
if ($(parent).hasClass(ClassName.DROPUP)) {
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
element = parent;
}
}
this._popper = new Popper(element, this._menu, {
placement: this._getPlacement(),
modifiers: {
offset: {
offset: this._config.offset
},
flip: {
enabled: this._config.flip
}
}
});
// if this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@ -1486,25 +1535,79 @@ var Dropdown = function ($) {
$('body').children().on('mouseover', null, $.noop);
}
this.focus();
this.setAttribute('aria-expanded', true);
this._element.focus();
this._element.setAttribute('aria-expanded', true);
$(parent).toggleClass(ClassName.SHOW);
$(parent).trigger($.Event(Event.SHOWN, relatedTarget));
return false;
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
};
Dropdown.prototype.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._element).off(EVENT_KEY);
this._element = null;
this._menu = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
};
Dropdown.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// private
Dropdown.prototype._addEventListeners = function _addEventListeners() {
$(this._element).on(Event.CLICK, this.toggle);
var _this9 = this;
$(this._element).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
_this9.toggle();
});
};
Dropdown.prototype._getConfig = function _getConfig(config) {
var elementData = $(this._element).data();
if (elementData.placement !== undefined) {
elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];
}
config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
Dropdown.prototype._getMenuElement = function _getMenuElement() {
if (!this._menu) {
var parent = Dropdown._getParentFromElement(this._element);
this._menu = $(parent).find(Selector.MENU)[0];
}
return this._menu;
};
Dropdown.prototype._getPlacement = function _getPlacement() {
var $parentDropdown = $(this._element).parent();
var placement = this._config.placement;
// Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
placement = AttachmentMap.TOP;
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND;
}
} else {
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND;
}
}
return placement;
};
// static
@ -1512,9 +1615,10 @@ var Dropdown = function ($) {
Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
if (!data) {
data = new Dropdown(this);
data = new Dropdown(this, _config);
$(this).data(DATA_KEY, data);
}
@ -1522,7 +1626,7 @@ var Dropdown = function ($) {
if (data[config] === undefined) {
throw new Error('No method named "' + config + '"');
}
data[config].call(this);
data[config]();
}
});
};
@ -1533,13 +1637,18 @@ var Dropdown = function ($) {
}
var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) {
var parent = Dropdown._getParentFromElement(toggles[i]);
var context = $(toggles[i]).data(DATA_KEY);
var relatedTarget = {
relatedTarget: toggles[i]
};
if (!context) {
continue;
}
var dropdownMenu = context._menu;
if (!$(parent).hasClass(ClassName.SHOW)) {
continue;
}
@ -1562,6 +1671,7 @@ var Dropdown = function ($) {
toggles[i].setAttribute('aria-expanded', 'false');
$(dropdownMenu).removeClass(ClassName.SHOW);
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
}
};
@ -1633,6 +1743,16 @@ var Dropdown = function ($) {
get: function get() {
return VERSION;
}
}, {
key: 'Default',
get: function get() {
return Default;
}
}, {
key: 'DefaultType',
get: function get() {
return DefaultType;
}
}]);
return Dropdown;
@ -1644,7 +1764,11 @@ var Dropdown = function ($) {
* ------------------------------------------------------------------------
*/
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault();
event.stopPropagation();
Dropdown._jQueryInterface.call($(this), 'toggle');
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation();
});
@ -1763,7 +1887,7 @@ var Modal = function ($) {
};
Modal.prototype.show = function show(relatedTarget) {
var _this9 = this;
var _this10 = this;
if (this._isTransitioning) {
return;
@ -1794,24 +1918,24 @@ var Modal = function ($) {
this._setResizeEvent();
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
return _this9.hide(event);
return _this10.hide(event);
});
$(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
$(_this9._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this9._element)) {
_this9._ignoreBackdropClick = true;
$(_this10._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this10._element)) {
_this10._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
return _this9._showElement(relatedTarget);
return _this10._showElement(relatedTarget);
});
};
Modal.prototype.hide = function hide(event) {
var _this10 = this;
var _this11 = this;
if (event) {
event.preventDefault();
@ -1850,7 +1974,7 @@ var Modal = function ($) {
if (transition) {
$(this._element).one(Util.TRANSITION_END, function (event) {
return _this10._hideModal(event);
return _this11._hideModal(event);
}).emulateTransitionEnd(TRANSITION_DURATION);
} else {
this._hideModal();
@ -1885,7 +2009,7 @@ var Modal = function ($) {
};
Modal.prototype._showElement = function _showElement(relatedTarget) {
var _this11 = this;
var _this12 = this;
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
@ -1913,11 +2037,11 @@ var Modal = function ($) {
});
var transitionComplete = function transitionComplete() {
if (_this11._config.focus) {
_this11._element.focus();
if (_this12._config.focus) {
_this12._element.focus();
}
_this11._isTransitioning = false;
$(_this11._element).trigger(shownEvent);
_this12._isTransitioning = false;
$(_this12._element).trigger(shownEvent);
};
if (transition) {
@ -1928,24 +2052,24 @@ var Modal = function ($) {
};
Modal.prototype._enforceFocus = function _enforceFocus() {
var _this12 = this;
var _this13 = this;
$(document).off(Event.FOCUSIN) // guard against infinite focus loop
.on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this12._element !== event.target && !$(_this12._element).has(event.target).length) {
_this12._element.focus();
if (document !== event.target && _this13._element !== event.target && !$(_this13._element).has(event.target).length) {
_this13._element.focus();
}
});
};
Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
var _this13 = this;
var _this14 = this;
if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === ESCAPE_KEYCODE) {
event.preventDefault();
_this13.hide();
_this14.hide();
}
});
} else if (!this._isShown) {
@ -1954,11 +2078,11 @@ var Modal = function ($) {
};
Modal.prototype._setResizeEvent = function _setResizeEvent() {
var _this14 = this;
var _this15 = this;
if (this._isShown) {
$(window).on(Event.RESIZE, function (event) {
return _this14.handleUpdate(event);
return _this15.handleUpdate(event);
});
} else {
$(window).off(Event.RESIZE);
@ -1966,16 +2090,16 @@ var Modal = function ($) {
};
Modal.prototype._hideModal = function _hideModal() {
var _this15 = this;
var _this16 = this;
this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', true);
this._isTransitioning = false;
this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN);
_this15._resetAdjustments();
_this15._resetScrollbar();
$(_this15._element).trigger(Event.HIDDEN);
_this16._resetAdjustments();
_this16._resetScrollbar();
$(_this16._element).trigger(Event.HIDDEN);
});
};
@ -1987,7 +2111,7 @@ var Modal = function ($) {
};
Modal.prototype._showBackdrop = function _showBackdrop(callback) {
var _this16 = this;
var _this17 = this;
var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
@ -2004,17 +2128,17 @@ var Modal = function ($) {
$(this._backdrop).appendTo(document.body);
$(this._element).on(Event.CLICK_DISMISS, function (event) {
if (_this16._ignoreBackdropClick) {
_this16._ignoreBackdropClick = false;
if (_this17._ignoreBackdropClick) {
_this17._ignoreBackdropClick = false;
return;
}
if (event.target !== event.currentTarget) {
return;
}
if (_this16._config.backdrop === 'static') {
_this16._element.focus();
if (_this17._config.backdrop === 'static') {
_this17._element.focus();
} else {
_this16.hide();
_this17.hide();
}
});
@ -2038,7 +2162,7 @@ var Modal = function ($) {
$(this._backdrop).removeClass(ClassName.SHOW);
var callbackRemove = function callbackRemove() {
_this16._removeBackdrop();
_this17._removeBackdrop();
if (callback) {
callback();
}
@ -2082,7 +2206,7 @@ var Modal = function ($) {
};
Modal.prototype._setScrollbar = function _setScrollbar() {
var _this17 = this;
var _this18 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@ -2092,14 +2216,14 @@ var Modal = function ($) {
$(Selector.FIXED_CONTENT).each(function (index, element) {
var actualPadding = $(element)[0].style.paddingRight;
var calculatedPadding = $(element).css('padding-right');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this17._scrollbarWidth + 'px');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this18._scrollbarWidth + 'px');
});
// Adjust navbar-toggler margin
$(Selector.NAVBAR_TOGGLER).each(function (index, element) {
var actualMargin = $(element)[0].style.marginRight;
var calculatedMargin = $(element).css('margin-right');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this17._scrollbarWidth + 'px');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this18._scrollbarWidth + 'px');
});
// Adjust body padding
@ -2188,7 +2312,7 @@ var Modal = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
var _this18 = this;
var _this19 = this;
var target = void 0;
var selector = Util.getSelectorFromElement(this);
@ -2210,8 +2334,8 @@ var Modal = function ($) {
}
$target.one(Event.HIDDEN, function () {
if ($(_this18).is(':visible')) {
_this18.focus();
if ($(_this19).is(':visible')) {
_this19.focus();
}
});
});
@ -2305,7 +2429,7 @@ var ScrollSpy = function ($) {
var ScrollSpy = function () {
function ScrollSpy(element, config) {
var _this19 = this;
var _this20 = this;
_classCallCheck(this, ScrollSpy);
@ -2319,7 +2443,7 @@ var ScrollSpy = function ($) {
this._scrollHeight = 0;
$(this._scrollElement).on(Event.SCROLL, function (event) {
return _this19._process(event);
return _this20._process(event);
});
this.refresh();
@ -2331,7 +2455,7 @@ var ScrollSpy = function ($) {
// public
ScrollSpy.prototype.refresh = function refresh() {
var _this20 = this;
var _this21 = this;
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
@ -2367,8 +2491,8 @@ var ScrollSpy = function ($) {
}).sort(function (a, b) {
return a[0] - b[0];
}).forEach(function (item) {
_this20._offsets.push(item[0]);
_this20._targets.push(item[1]);
_this21._offsets.push(item[0]);
_this21._targets.push(item[1]);
});
};
@ -2615,7 +2739,7 @@ var Tab = function ($) {
// public
Tab.prototype.show = function show() {
var _this21 = this;
var _this22 = this;
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
return;
@ -2657,7 +2781,7 @@ var Tab = function ($) {
var complete = function complete() {
var hiddenEvent = $.Event(Event.HIDDEN, {
relatedTarget: _this21._element
relatedTarget: _this22._element
});
var shownEvent = $.Event(Event.SHOWN, {
@ -2665,7 +2789,7 @@ var Tab = function ($) {
});
$(previous).trigger(hiddenEvent);
$(_this21._element).trigger(shownEvent);
$(_this22._element).trigger(shownEvent);
};
if (target) {
@ -2676,20 +2800,20 @@ var Tab = function ($) {
};
Tab.prototype.dispose = function dispose() {
$.removeClass(this._element, DATA_KEY);
$.removeData(this._element, DATA_KEY);
this._element = null;
};
// private
Tab.prototype._activate = function _activate(element, container, callback) {
var _this22 = this;
var _this23 = this;
var active = $(container).find(Selector.ACTIVE)[0];
var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() {
return _this22._transitionComplete(element, active, isTransitioning, callback);
return _this23._transitionComplete(element, active, isTransitioning, callback);
};
if (active && isTransitioning) {
@ -2799,7 +2923,7 @@ var Tab = function ($) {
return Tab;
}(jQuery);
/* global Tether */
/* global Popper */
/**
* --------------------------------------------------------------------------
@ -2811,11 +2935,11 @@ var Tab = function ($) {
var Tooltip = function ($) {
/**
* Check for Tether dependency
* Tether - http://tether.io/
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Tether === 'undefined') {
throw new Error('Bootstrap tooltips require Tether (http://tether.io/)');
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
}
/**
@ -2830,22 +2954,8 @@ var Tooltip = function ($) {
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tether';
var TETHER_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: '0 0',
constraints: [],
container: false
};
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var DefaultType = {
animation: 'boolean',
@ -2856,16 +2966,31 @@ var Tooltip = function ($) {
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: 'string',
constraints: 'array',
container: '(string|element|boolean)'
offset: '(number|string)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)'
};
var AttachmentMap = {
TOP: 'bottom center',
RIGHT: 'middle left',
BOTTOM: 'top center',
LEFT: 'middle right'
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
LEFT: 'left'
};
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: 0,
container: false,
fallbackPlacement: 'flip'
};
var HoverState = {
@ -2896,11 +3021,6 @@ var Tooltip = function ($) {
TOOLTIP_INNER: '.tooltip-inner'
};
var TetherClass = {
element: false,
enabled: false
};
var Trigger = {
HOVER: 'hover',
FOCUS: 'focus',
@ -2923,7 +3043,7 @@ var Tooltip = function ($) {
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
this._tether = null;
this._popper = null;
// protected
this.element = element;
@ -2980,8 +3100,6 @@ var Tooltip = function ($) {
Tooltip.prototype.dispose = function dispose() {
clearTimeout(this._timeout);
this.cleanupTether();
$.removeData(this.element, this.constructor.DATA_KEY);
$(this.element).off(this.constructor.EVENT_KEY);
@ -2995,7 +3113,10 @@ var Tooltip = function ($) {
this._timeout = null;
this._hoverState = null;
this._activeTrigger = null;
this._tether = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
this.element = null;
this.config = null;
@ -3003,7 +3124,7 @@ var Tooltip = function ($) {
};
Tooltip.prototype.show = function show() {
var _this23 = this;
var _this24 = this;
if ($(this.element).css('display') === 'none') {
throw new Error('Please use show on visible elements');
@ -3034,6 +3155,7 @@ var Tooltip = function ($) {
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var attachment = this._getAttachment(placement);
this.addAttachmentClass(attachment);
var container = this.config.container === false ? document.body : $(this.config.container);
@ -3045,20 +3167,26 @@ var Tooltip = function ($) {
$(this.element).trigger(this.constructor.Event.INSERTED);
this._tether = new Tether({
attachment: attachment,
element: tip,
target: this.element,
classes: TetherClass,
classPrefix: CLASS_PREFIX,
offset: this.config.offset,
constraints: this.config.constraints,
addTargetClasses: false
this._popper = new Popper(this.element, tip, {
placement: attachment,
modifiers: {
offset: {
offset: this.config.offset
},
flip: {
behavior: this.config.fallbackPlacement
}
},
onCreate: function onCreate(data) {
if (data.originalPlacement !== data.placement) {
_this24._handlePopperPlacementChange(data);
}
},
onUpdate: function onUpdate(data) {
_this24._handlePopperPlacementChange(data);
}
});
Util.reflow(tip);
this._tether.position();
$(tip).addClass(ClassName.SHOW);
// if this is a touch-enabled device we add extra
@ -3070,39 +3198,43 @@ var Tooltip = function ($) {
}
var complete = function complete() {
var prevHoverState = _this23._hoverState;
_this23._hoverState = null;
if (_this24.config.animation) {
_this24._fixTransition();
}
var prevHoverState = _this24._hoverState;
_this24._hoverState = null;
$(_this23.element).trigger(_this23.constructor.Event.SHOWN);
$(_this24.element).trigger(_this24.constructor.Event.SHOWN);
if (prevHoverState === HoverState.OUT) {
_this23._leave(null, _this23);
_this24._leave(null, _this24);
}
};
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
return;
} else {
complete();
}
complete();
}
};
Tooltip.prototype.hide = function hide(callback) {
var _this24 = this;
var _this25 = this;
var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE);
var complete = function complete() {
if (_this24._hoverState !== HoverState.SHOW && tip.parentNode) {
if (_this25._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
_this24._cleanTipClass();
_this24.element.removeAttribute('aria-describedby');
$(_this24.element).trigger(_this24.constructor.Event.HIDDEN);
_this24.cleanupTether();
_this25._cleanTipClass();
_this25.element.removeAttribute('aria-describedby');
$(_this25.element).trigger(_this25.constructor.Event.HIDDEN);
if (_this25._popper !== null) {
_this25._popper.destroy();
}
if (callback) {
callback();
@ -3137,24 +3269,30 @@ var Tooltip = function ($) {
this._hoverState = '';
};
Tooltip.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// protected
Tooltip.prototype.isWithContent = function isWithContent() {
return Boolean(this.getTitle());
};
Tooltip.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Tooltip.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
Tooltip.prototype.setContent = function setContent() {
var $tip = $(this.getTipElement());
this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
Tooltip.prototype.setElementContent = function setElementContent($element, content) {
@ -3183,49 +3321,35 @@ var Tooltip = function ($) {
return title;
};
Tooltip.prototype.cleanupTether = function cleanupTether() {
if (this._tether) {
this._tether.destroy();
}
};
// private
Tooltip.prototype._getAttachment = function _getAttachment(placement) {
return AttachmentMap[placement.toUpperCase()];
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._setListeners = function _setListeners() {
var _this25 = this;
var _this26 = this;
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
$(_this25.element).on(_this25.constructor.Event.CLICK, _this25.config.selector, function (event) {
return _this25.toggle(event);
$(_this26.element).on(_this26.constructor.Event.CLICK, _this26.config.selector, function (event) {
return _this26.toggle(event);
});
} else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this25.constructor.Event.MOUSEENTER : _this25.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this25.constructor.Event.MOUSELEAVE : _this25.constructor.Event.FOCUSOUT;
var eventIn = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSEENTER : _this26.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSELEAVE : _this26.constructor.Event.FOCUSOUT;
$(_this25.element).on(eventIn, _this25.config.selector, function (event) {
return _this25._enter(event);
}).on(eventOut, _this25.config.selector, function (event) {
return _this25._leave(event);
$(_this26.element).on(eventIn, _this26.config.selector, function (event) {
return _this26._enter(event);
}).on(eventOut, _this26.config.selector, function (event) {
return _this26._leave(event);
});
}
$(_this25.element).closest('.modal').on('hide.bs.modal', function () {
return _this25.hide();
$(_this26.element).closest('.modal').on('hide.bs.modal', function () {
return _this26.hide();
});
});
@ -3363,6 +3487,32 @@ var Tooltip = function ($) {
return config;
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
this._cleanTipClass();
this.addAttachmentClass(this._getAttachment(data.placement));
};
Tooltip.prototype._fixTransition = function _fixTransition() {
var tip = this.getTipElement();
var initConfigAnimation = this.config.animation;
if (tip.getAttribute('x-placement') !== null) {
return;
}
$(tip).removeClass(ClassName.FADE);
this.config.animation = false;
this.hide();
this.show();
this.config.animation = initConfigAnimation;
};
// static
Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -3464,12 +3614,14 @@ var Popover = function ($) {
var DATA_KEY = 'bs.popover';
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = $.extend({}, Tooltip.Default, {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
template: '<div class="popover" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
});
var DefaultType = $.extend({}, Tooltip.DefaultType, {
@ -3520,6 +3672,10 @@ var Popover = function ($) {
return this.getTitle() || this._getContent();
};
Popover.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Popover.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
@ -3532,8 +3688,6 @@ var Popover = function ($) {
this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
// private
@ -3542,6 +3696,14 @@ var Popover = function ($) {
return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
};
Popover.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
// static
Popover._jQueryInterface = function _jQueryInterface(config) {

File diff suppressed because one or more lines are too long

View File

@ -8,6 +8,7 @@
- title: Options
- title: Build tools
- title: Best practices
- title: Webpack
- title: Accessibility
- title: Layout

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 612 612" width="128" height="128"><g id="solid"><g id="bg"><path fill="#fff" d="M510,5a97.3,97.3,0,0,1,97,97V510a97.3,97.3,0,0,1-97,97H102A97.3,97.3,0,0,1,5,510V102A97.3,97.3,0,0,1,102,5H510m0-5H102C45.9,0,0,45.9,0,102V510c0,56.1,45.9,102,102,102H510c56.1,0,102-45.9,102-102V102C612,45.9,566.1,0,510,0h0Z"/></g></g><path fill="#fff" d="M196.77,471.5V154.43H320.92c54.27,0,91,31.64,91,79.1,0,33-24.17,63.72-54.71,69.21v1.76c43.07,5.49,70.75,35.82,70.75,78,0,55.81-40,89-107.45,89H196.77Zm39.55-180.4H299.6c46.8,0,72.29-18.68,72.29-53,0-31.42-21.53-48.78-60-48.78H236.32V291.1Zm78.22,145.46c47.68,0,72.73-19.34,72.73-56s-25.93-55.37-76.46-55.37H236.32v111.4h78.22Z"/></svg>

After

Width:  |  Height:  |  Size: 725 B

View File

@ -14,7 +14,7 @@
<script src="{{ site.cdn.jquery }}" integrity="{{ site.cdn.jquery_hash }}" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="{{ site.baseurl }}/assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
<script src="{{ site.baseurl }}/assets/js/vendor/tether.min.js"></script>
<script src="{{ site.baseurl }}/assets/js/vendor/popper.min.js"></script>
{% if site.github %}
<script src="{{ site.baseurl }}/dist/js/bootstrap.min.js"></script>

View File

@ -14,14 +14,14 @@ Have a need for Bootstrap's brand resources? Great! We have only a few guideline
## Mark and logo
Use either the Bootstrap mark (a capital **B**) or the standard logo (just **Bootstrap**). It should always appear in Helvetica Neue Bold. **Do not use the Twitter bird** in association with Bootstrap.
Use either the Bootstrap mark (a capital **B**) or the standard logo (just **Bootstrap**). It should always appear in San Francisco Display Semibold. **Do not use the Twitter bird** in association with Bootstrap.
<div class="bd-brand-logos">
<div class="bd-brand-item">
<div class="bd-booticon bd-booticon-lg">B</div>
<img class="svg" src="{{ site.baseurl }}/assets/brand/bootstrap-solid.svg" alt="Bootstrap" width="144" height="144">
</div>
<div class="bd-brand-item inverse">
<div class="bd-booticon bd-booticon-lg bd-booticon-inverse">B</div>
<img class="svg" src="{{ site.baseurl }}/assets/brand/bootstrap-outline.svg" alt="Bootstrap" width="144" height="144">
</div>
</div>
<div class="bd-brand-logos">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

3
docs/assets/js/vendor/popper.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,25 +0,0 @@
//
// Bootstrap "B" Booticon
//
.bd-booticon {
display: block;
width: 9rem;
height: 9rem;
font-size: 6.5rem;
line-height: 9rem;
color: #fff;
text-align: center;
cursor: default;
background-color: $bd-purple;
border-radius: 15%;
&.inverse {
color: $bd-purple;
background-color: #fff;
}
&.outline {
background-color: transparent;
border: 1px solid $bd-purple-light;
}
}

View File

@ -298,6 +298,18 @@
margin-top: .25rem;
margin-bottom: .25rem;
}
.bs-tooltip-top-docs,
.bs-tooltip-bottom-docs {
.arrow {
left: 50%;
}
}
.bs-tooltip-right-docs,
.bs-tooltip-left-docs {
.arrow {
top: 50%;
}
}
// Popovers
.bd-example-popover-static {
@ -311,6 +323,18 @@
width: 260px;
margin: 1.25rem;
}
.bs-popover-top-docs,
.bs-popover-bottom-docs {
.arrow {
left: 50%;
}
}
.bs-popover-right-docs,
.bs-popover-left-docs {
.arrow {
top: 50%;
}
}
// Tooltips
.tooltip-demo a {

View File

@ -39,7 +39,6 @@ $bd-warning: #f0ad4e;
$bd-info: #5bc0de;
// Load docs components
@import "booticon";
@import "nav";
@import "masthead";
@import "featurettes";

View File

@ -12,6 +12,13 @@ Dropdowns are toggleable, contextual overlays for displaying lists of links and
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
## Overview
Things to know when using the popover plugin:
- Dropdown rely on the 3rd party library [Popper.js](https://popper.js.org) for positioning. You must include [popper.min.js](https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js) before bootstrap.js in order for dropdowns to work!
- Popper.js handle natively the flip of Dropdown when it's outside the viewport, if you want to disable that's behavior use `flip` attribute
## Examples
Wrap the dropdown's toggle (your button or link) and the dropdown menu within `.dropdown`, or another element that declares `position: relative;`. Dropdowns can be triggered from `<a>` or `<button>` elements to better fit your potential needs.
@ -19,7 +26,7 @@ Wrap the dropdown's toggle (your button or link) and the dropdown menu within `.
{% callout info %}
### Dropdown menu accessibility
The [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr>](https://www.w3.org/TR/wai-aria/) standard defines an actual [`role="menu"` widget](https://www.w3.org/TR/wai-aria/roles#menu), but this is specific to application-like menus which trigger actions or functions. <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus can only contain menu items, checkbox menu items, radio button menu items, radio button groups, and sub-menus.
The [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr>](https://www.w3.org/TR/wai-aria/) standard defines an actual [`role="menu"` widget](https://www.w3.org/TR/wai-aria/roles#menu), but this is specific to application-like menus which trigger actions or functions. <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus can only contain menu items, checkbox menu items, radio button menu items, radio button groups, and sub-menus.
Bootstrap's dropdowns, on the other hand, are designed to be generic and applicable to a variety of situations and markup structures. For instance, it is possible to create dropdowns that contain additional inputs and form controls, such as search fields or login forms. For this reason, Bootstrap does not expect (nor automatically add) any of the `role` and `aria-` attributes required for true <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus. Authors will have to include these more specific attributes themselves.
@ -527,13 +534,47 @@ Regardless of whether you call your dropdown via JavaScript or instead use the d
### Options
*None.*
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-placement=""`.
<table class="table table-bordered table-striped table-responsive">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">Type</th>
<th style="width: 50px;">Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>placement</td>
<td>string</td>
<td>'bottom'</td>
<td>
<p>How to position the popover - top | bottom.</p>
</td>
</tr>
<tr>
<td>offset</td>
<td>number | string</td>
<td>0</td>
<td>Offset of the dropdown relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
</tr>
<tr>
<td>flip</td>
<td>boolean</td>
<td>true</td>
<td>Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.enabled">flip docs</a>.</td>
</tr>
</tbody>
</table>
### Methods
| Method | Description |
| --- | --- |
| `$().dropdown('toggle')` | Toggles the dropdown menu of a given navbar or tabbed navigation. |
| `$().dropdown('update')` | Updates the position of an element's dropdown. |
### Events

View File

@ -17,7 +17,7 @@ Add small overlay content, like those found in iOS, to any element for housing s
Things to know when using the popover plugin:
- Popovers rely on the 3rd party library [Tether](http://tether.io/) for positioning. You must include [tether.min.js](https://github.com/HubSpot/tether/blob/master/dist/js/tether.min.js) before bootstrap.js in order for popovers to work!
- Popovers rely on the 3rd party library [Popper.js](https://popper.js.org) for positioning. You must include [popper.min.js](https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js) before bootstrap.js in order for popovers to work!
- Popovers require the [tooltip plugin]({{ site.baseurl }}/components/tooltips/) as a dependency.
- Popovers are opt-in for performance reasons, so **you must initialize them yourself**.
- Zero-length `title` and `content` values will never show a popover.
@ -25,6 +25,7 @@ Things to know when using the popover plugin:
- Triggering popovers on hidden elements will not work.
- Popovers for `.disabled` or `disabled` elements must be triggered on a wrapper element.
- When triggered from hyperlinks that span multiple lines, popovers will be centered. Use `white-space: nowrap;` on your `<a>`s to avoid this behavior.
- Popovers must be hidden before their corresponding elements have been removed from the DOM.
Got all that? Great, let's see how they work with some examples.
@ -55,29 +56,32 @@ $(function () {
Four options are available: top, right, bottom, and left aligned.
<div class="bd-example bd-example-popover-static">
<div class="popover popover-top">
<div class="popover bs-popover-top bs-popover-top-docs">
<div class="arrow" x-arrow></div>
<h3 class="popover-title">Popover top</h3>
<div class="popover-content">
<p>Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
</div>
</div>
<div class="popover popover-right">
<div class="popover bs-popover-right bs-popover-right-docs">
<div class="arrow" x-arrow></div>
<h3 class="popover-title">Popover right</h3>
<div class="popover-content">
<p>Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
</div>
</div>
<div class="popover popover-bottom">
<div class="popover bs-popover-bottom bs-popover-bottom-docs">
<div class="arrow" x-arrow></div>
<h3 class="popover-title">Popover bottom</h3>
<div class="popover-content">
<p>Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
</div>
</div>
<div class="popover popover-left">
<div class="popover bs-popover-left bs-popover-left-docs">
<div class="arrow" x-arrow></div>
<h3 class="popover-title">Popover left</h3>
<div class="popover-content">
<p>Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
@ -217,7 +221,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>string | function</td>
<td>'right'</td>
<td>
<p>How to position the popover - top | bottom | left | right.</p>
<p>How to position the popover - auto | top | bottom | left | right.<br>When <code>auto</code> is specified, it will dynamically reorient the popover.</p>
<p>When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. The <code>this</code> context is set to the popover instance.</p>
</td>
</tr>
@ -230,12 +234,12 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<tr>
<td>template</td>
<td>string</td>
<td><code>'&lt;div class="popover" role="tooltip"&gt;&lt;div class="popover-arrow"&gt;&lt;/div&gt;&lt;h3 class="popover-title"&gt;&lt;/h3&gt;&lt;div class="popover-content"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td><code>'&lt;div class="popover" role="tooltip"&gt;&lt;div class="arrow" x-arrow&gt;&lt;/div&gt;&lt;h3 class="popover-title"&gt;&lt;/h3&gt;&lt;div class="popover-content"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td>
<p>Base HTML to use when creating the popover.</p>
<p>The popover's <code>title</code> will be injected into the <code>.popover-title</code>.</p>
<p>The popover's <code>content</code> will be injected into the <code>.popover-content</code>.</p>
<p><code>.popover-arrow</code> will become the popover's arrow.</p>
<p><code>.arrow</code> will become the popover's arrow.</p>
<p>The outermost wrapper element should have the <code>.popover</code> class.</p>
</td>
</tr>
@ -255,16 +259,17 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>How popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.</td>
</tr>
<tr>
<td>constraints</td>
<td>Array</td>
<td>'hover focus'</td>
<td>An array of constraints - passed through to Tether. For more information refer to Tether's <a href="http://tether.io/#constraints">constraint docs</a>.</td>
<td>offset</td>
<td>number | string</td>
<td>0</td>
<td>Offset of the popover relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
</tr>
<tr>
<td>offset</td>
<td>string</td>
<td>'0 0'</td>
<td>Offset of the popover relative to its target. For more information refer to Tether's <a href="http://tether.io/#offset">offset docs</a>.</td>
<td>fallbackPlacement</td>
<td>string | array</td>
<td>'flip'</td>
<td>Allow to specify which position Popper will use on fallback. For more information refer to
Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.behavior">behavior docs</a></td>
</tr>
</tbody>
</table>
@ -327,6 +332,12 @@ Toggles the ability for an element's popover to be shown or hidden.
{% highlight js %}$('#element').popover('toggleEnabled'){% endhighlight %}
#### `.popover('update')`
Updates the position of an element's popover.
{% highlight js %}$('#element').popover('update'){% endhighlight %}
### Events
<table class="table table-bordered table-striped table-responsive">

View File

@ -16,13 +16,14 @@ Inspired by the excellent Tipsy jQuery plugin written by Jason Frame. Tooltips a
Things to know when using the tooltip plugin:
- Tooltips rely on the 3rd party library [Tether](http://tether.io/) for positioning. You must include [tether.min.js](https://github.com/HubSpot/tether/blob/master/dist/js/tether.min.js) before bootstrap.js in order for tooltips to work!
- Tooltips rely on the 3rd party library [Popper.js](https://popper.js.org) for positioning. You must include [popper.min.js](https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js) before bootstrap.js in order for tooltips to work!
- Tooltips are opt-in for performance reasons, so **you must initialize them yourself**.
- Tooltips with zero-length titles are never displayed.
- Specify `container: 'body'` to avoid rendering problems in more complex components (like our input groups, button groups, etc).
- Triggering tooltips on hidden elements will not work.
- Tooltips for `.disabled` or `disabled` elements must be triggered on a wrapper element.
- When triggered from hyperlinks that span multiple lines, tooltips will be centered. Use `white-space: nowrap;` on your `<a>`s to avoid this behavior.
- Tooltips must be hidden before their corresponding elements have been removed from the DOM.
Got all that? Great, let's see how they work with some examples.
@ -50,22 +51,26 @@ Hover over the links below to see tooltips:
Four options are available: top, right, bottom, and left aligned.
<div class="bd-example bd-example-tooltip-static">
<div class="tooltip tooltip-top" role="tooltip">
<div class="tooltip bs-tooltip-top bs-tooltip-top-docs" role="tooltip">
<div class="arrow" x-arrow></div>
<div class="tooltip-inner">
Tooltip on the top
</div>
</div>
<div class="tooltip tooltip-right" role="tooltip">
<div class="tooltip bs-tooltip-right bs-tooltip-right-docs" role="tooltip">
<div class="arrow" x-arrow></div>
<div class="tooltip-inner">
Tooltip on the right
</div>
</div>
<div class="tooltip tooltip-bottom" role="tooltip">
<div class="tooltip bs-tooltip-bottom bs-tooltip-bottom-docs" role="tooltip">
<div class="arrow" x-arrow></div>
<div class="tooltip-inner">
Tooltip on the bottom
</div>
</div>
<div class="tooltip tooltip-left" role="tooltip">
<div class="tooltip bs-tooltip-left bs-tooltip-left-docs" role="tooltip">
<div class="arrow" x-arrow></div>
<div class="tooltip-inner">
Tooltip on the left
</div>
@ -134,8 +139,8 @@ You should only add tooltips to HTML elements that are traditionally keyboard-fo
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip tooltip-top" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="arrow" x-arrow></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
@ -195,7 +200,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>string | function</td>
<td>'top'</td>
<td>
<p>How to position the tooltip - top | bottom | left | right.</p>
<p>How to position the tooltip - auto | top | bottom | left | right.<br>When <code>auto</code> is specified, it will dynamically reorient the tooltip.</p>
<p>When a function is used to determine the placement, it is called with the tooltip DOM node as its first argument and the triggering element DOM node as its second. The <code>this</code> context is set to the tooltip instance.</p>
</td>
</tr>
@ -208,11 +213,11 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<tr>
<td>template</td>
<td>string</td>
<td><code>'&lt;div class="tooltip" role="tooltip"&gt;&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;&lt;div class="tooltip-inner"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td><code>'&lt;div class="tooltip" role="tooltip"&gt;&lt;div class="arrow" x-arrow&gt;&lt;/div&gt;&lt;div class="tooltip-inner"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td>
<p>Base HTML to use when creating the tooltip.</p>
<p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
<p><code>.tooltip-arrow</code> will become the tooltip's arrow.</p>
<p><code>.arrow</code> will become the tooltip's arrow.</p>
<p>The outermost wrapper element should have the <code>.tooltip</code> class.</p>
</td>
</tr>
@ -232,16 +237,17 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.</td>
</tr>
<tr>
<td>constraints</td>
<td>Array</td>
<td>[]</td>
<td>An array of constraints - passed through to Tether. For more information refer to Tether's <a href="http://tether.io/#constraints">constraint docs</a>.</td>
<td>offset</td>
<td>number | string</td>
<td>0</td>
<td>Offset of the tooltip relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
</tr>
<tr>
<td>offset</td>
<td>string</td>
<td>'0 0'</td>
<td>Offset of the tooltip relative to its target. For more information refer to Tether's <a href="http://tether.io/#offset">offset docs</a>.</td>
<td>fallbackPlacement</td>
<td>string | array</td>
<td>'flip'</td>
<td>Allow to specify which position Popper will use on fallback. For more information refer to
Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.behavior">behavior docs</a></td>
</tr>
</tbody>
</table>
@ -303,6 +309,12 @@ Toggles the ability for an element's tooltip to be shown or hidden.
{% highlight js %}$('#element').tooltip('toggleEnabled'){% endhighlight %}
#### `.tooltip('update')`
Updates the position of an element's tooltip.
{% highlight js %}$('#element').tooltip('update'){% endhighlight %}
### Events
<table class="table table-bordered table-striped table-responsive">

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,10 @@ html {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */

View File

@ -1 +1 @@
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}
{"version":3,"sources":["..\\..\\scss\\_reboot.scss","dist\\css\\bootstrap-reboot.css","bootstrap-reboot.css","..\\..\\scss\\mixins\\_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aAIlB,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAQF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGpLE,QHuLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGzLE,oCAAA,oCH4LA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}

View File

@ -93,6 +93,10 @@ html {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
@ -2887,24 +2891,24 @@ tbody.collapse.show {
background-color: transparent;
}
.show > .dropdown-menu {
display: block;
}
.show > a {
outline: 0;
}
.dropdown-menu-right {
right: 0;
left: auto;
left: auto !important;
}
.dropdown-menu-left {
right: auto;
right: auto !important;
left: 0;
}
.dropdown-menu.show {
display: block;
}
.dropdown-header {
display: block;
padding: 0.5rem 1.5rem;
@ -2914,12 +2918,6 @@ tbody.collapse.show {
white-space: nowrap;
}
.dropup .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 0.125rem;
}
.btn-group,
.btn-group-vertical {
position: relative;
@ -5210,6 +5208,7 @@ button.close {
position: absolute;
z-index: 1070;
display: block;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-style: normal;
font-weight: normal;
@ -5233,12 +5232,11 @@ button.close {
opacity: 0.9;
}
.tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom {
.tooltip.bs-tooltip-top {
padding: 5px 0;
margin-top: -3px;
}
.tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before {
.tooltip.bs-tooltip-top .arrow::before {
bottom: 0;
left: 50%;
margin-left: -5px;
@ -5247,12 +5245,11 @@ button.close {
border-top-color: #000;
}
.tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left {
.tooltip.bs-tooltip-right {
padding: 0 5px;
margin-left: 3px;
}
.tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before {
.tooltip.bs-tooltip-right .arrow::before {
top: 50%;
left: 0;
margin-top: -5px;
@ -5261,12 +5258,11 @@ button.close {
border-right-color: #000;
}
.tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top {
.tooltip.bs-tooltip-bottom {
padding: 5px 0;
margin-top: 3px;
}
.tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before {
.tooltip.bs-tooltip-bottom .arrow::before {
top: 0;
left: 50%;
margin-left: -5px;
@ -5275,12 +5271,11 @@ button.close {
border-bottom-color: #000;
}
.tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right {
.tooltip.bs-tooltip-left {
padding: 0 5px;
margin-left: -3px;
}
.tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before {
.tooltip.bs-tooltip-left .arrow::before {
top: 50%;
right: 0;
margin-top: -5px;
@ -5289,6 +5284,14 @@ button.close {
border-left-color: #000;
}
.tooltip .arrow::before {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
@ -5298,14 +5301,6 @@ button.close {
border-radius: 0.25rem;
}
.tooltip-inner::before {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover {
position: absolute;
top: 0;
@ -5337,70 +5332,93 @@ button.close {
border-radius: 0.3rem;
}
.popover.popover-top, .popover.bs-tether-element-attached-bottom {
margin-top: -10px;
.popover .arrow::before,
.popover .arrow::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after {
.popover .arrow::before {
content: "";
border-width: 11px;
}
.popover .arrow::after {
content: "";
border-width: 10px;
}
.popover.bs-popover-top {
margin-bottom: 10px;
}
.popover.bs-popover-top .arrow::before,
.popover.bs-popover-top .arrow::after {
left: 50%;
border-bottom-width: 0;
}
.popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before {
.popover.bs-popover-top .arrow::before {
bottom: -11px;
margin-left: -11px;
border-top-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after {
.popover.bs-popover-top .arrow::after {
bottom: -10px;
margin-left: -10px;
border-top-color: #fff;
}
.popover.popover-right, .popover.bs-tether-element-attached-left {
.popover.bs-popover-right {
margin-left: 10px;
}
.popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after {
.popover.bs-popover-right .arrow::before,
.popover.bs-popover-right .arrow::after {
top: 50%;
border-left-width: 0;
}
.popover.popover-right::before, .popover.bs-tether-element-attached-left::before {
.popover.bs-popover-right .arrow::before {
left: -11px;
margin-top: -11px;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-right::after, .popover.bs-tether-element-attached-left::after {
.popover.bs-popover-right .arrow::after {
left: -10px;
margin-top: -10px;
border-right-color: #fff;
}
.popover.popover-bottom, .popover.bs-tether-element-attached-top {
.popover.bs-popover-bottom {
margin-top: 10px;
}
.popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after {
.popover.bs-popover-bottom .arrow::before,
.popover.bs-popover-bottom .arrow::after {
left: 50%;
border-top-width: 0;
}
.popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before {
.popover.bs-popover-bottom .arrow::before {
top: -11px;
margin-left: -11px;
border-bottom-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {
.popover.bs-popover-bottom .arrow::after {
top: -10px;
margin-left: -10px;
border-bottom-color: #fff;
}
.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {
.popover.bs-popover-bottom .popover-title::before {
position: absolute;
top: 0;
left: 50%;
@ -5411,22 +5429,23 @@ button.close {
border-bottom: 1px solid #f7f7f7;
}
.popover.popover-left, .popover.bs-tether-element-attached-right {
margin-left: -10px;
.popover.bs-popover-left {
margin-right: 10px;
}
.popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after {
.popover.bs-popover-left .arrow::before,
.popover.bs-popover-left .arrow::after {
top: 50%;
border-right-width: 0;
}
.popover.popover-left::before, .popover.bs-tether-element-attached-right::before {
.popover.bs-popover-left .arrow::before {
right: -11px;
margin-top: -11px;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.popover-left::after, .popover.bs-tether-element-attached-right::after {
.popover.bs-popover-left .arrow::after {
right: -10px;
margin-top: -10px;
border-left-color: #fff;
@ -5452,26 +5471,6 @@ button.close {
color: #292b2c;
}
.popover::before,
.popover::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover::before {
content: "";
border-width: 11px;
}
.popover::after {
content: "";
border-width: 10px;
}
.carousel {
position: relative;
}

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

View File

@ -438,6 +438,9 @@ var Button = function ($) {
}
if (triggerChangeEvent) {
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
return;
}
input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
$(input).trigger('change');
}
@ -1086,9 +1089,8 @@ var Collapse = function ($) {
};
var Selector = {
ACTIVES: '.card > .show, .card > .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]',
DATA_CHILDREN: 'data-children'
ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]'
};
/**
@ -1105,20 +1107,13 @@ var Collapse = function ($) {
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
this._parent = this._config.parent ? this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
}
this._selectorActives = Selector.ACTIVES;
if (this._parent) {
var childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null;
if (childrenSelector !== null) {
this._selectorActives = childrenSelector + ' > .show, ' + childrenSelector + ' > .collapsing';
}
}
if (this._config.toggle) {
this.toggle();
}
@ -1147,7 +1142,7 @@ var Collapse = function ($) {
var activesData = void 0;
if (this._parent) {
actives = $.makeArray($(this._parent).find(this._selectorActives));
actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
if (!actives.length) {
actives = null;
}
@ -1381,6 +1376,8 @@ var Collapse = function ($) {
return Collapse;
}(jQuery);
/* global Popper */
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-alpha.6): dropdown.js
@ -1390,6 +1387,14 @@ var Collapse = function ($) {
var Dropdown = function ($) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
}
/**
* ------------------------------------------------------------------------
* Constants
@ -1434,6 +1439,23 @@ var Dropdown = function ($) {
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
};
var AttachmentMap = {
TOP: 'top-start',
BOTTOM: 'bottom-start'
};
var Default = {
placement: AttachmentMap.BOTTOM,
offset: 0,
flip: true
};
var DefaultType = {
placement: 'string',
offset: '(number|string)',
flip: 'boolean'
};
/**
* ------------------------------------------------------------------------
* Class Definition
@ -1441,10 +1463,13 @@ var Dropdown = function ($) {
*/
var Dropdown = function () {
function Dropdown(element) {
function Dropdown(element, config) {
_classCallCheck(this, Dropdown);
this._element = element;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._addEventListeners();
}
@ -1454,30 +1479,44 @@ var Dropdown = function ($) {
// public
Dropdown.prototype.toggle = function toggle() {
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
return false;
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return;
}
var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.SHOW);
var parent = Dropdown._getParentFromElement(this._element);
var isActive = $(this._menu).hasClass(ClassName.SHOW);
Dropdown._clearMenus();
if (isActive) {
return false;
return;
}
var relatedTarget = {
relatedTarget: this
relatedTarget: this._element
};
var showEvent = $.Event(Event.SHOW, relatedTarget);
$(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) {
return false;
return;
}
// Handle dropup
var dropdownPlacement = $(this._element).parent().hasClass('dropup') ? AttachmentMap.TOP : this._config.placement;
this._popper = new Popper(this._element, this._menu, {
placement: dropdownPlacement,
modifiers: {
offset: {
offset: this._config.offset
},
flip: {
enabled: this._config.flip
}
}
});
// if this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@ -1486,25 +1525,61 @@ var Dropdown = function ($) {
$('body').children().on('mouseover', null, $.noop);
}
this.focus();
this.setAttribute('aria-expanded', true);
this._element.focus();
this._element.setAttribute('aria-expanded', true);
$(parent).toggleClass(ClassName.SHOW);
$(parent).trigger($.Event(Event.SHOWN, relatedTarget));
return false;
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
};
Dropdown.prototype.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._element).off(EVENT_KEY);
this._element = null;
this._menu = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
};
Dropdown.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// private
Dropdown.prototype._addEventListeners = function _addEventListeners() {
$(this._element).on(Event.CLICK, this.toggle);
var _this9 = this;
$(this._element).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
_this9.toggle();
});
};
Dropdown.prototype._getConfig = function _getConfig(config) {
var elementData = $(this._element).data();
if (elementData.placement !== undefined) {
elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];
}
config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
Dropdown.prototype._getMenuElement = function _getMenuElement() {
if (!this._menu) {
var parent = Dropdown._getParentFromElement(this._element);
this._menu = $(parent).find(Selector.MENU)[0];
}
return this._menu;
};
// static
@ -1512,9 +1587,10 @@ var Dropdown = function ($) {
Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
if (!data) {
data = new Dropdown(this);
data = new Dropdown(this, _config);
$(this).data(DATA_KEY, data);
}
@ -1522,7 +1598,7 @@ var Dropdown = function ($) {
if (data[config] === undefined) {
throw new Error('No method named "' + config + '"');
}
data[config].call(this);
data[config]();
}
});
};
@ -1533,13 +1609,18 @@ var Dropdown = function ($) {
}
var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) {
var parent = Dropdown._getParentFromElement(toggles[i]);
var context = $(toggles[i]).data(DATA_KEY);
var relatedTarget = {
relatedTarget: toggles[i]
};
if (!context) {
continue;
}
var dropdownMenu = context._menu;
if (!$(parent).hasClass(ClassName.SHOW)) {
continue;
}
@ -1562,6 +1643,7 @@ var Dropdown = function ($) {
toggles[i].setAttribute('aria-expanded', 'false');
$(dropdownMenu).removeClass(ClassName.SHOW);
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
}
};
@ -1633,6 +1715,16 @@ var Dropdown = function ($) {
get: function get() {
return VERSION;
}
}, {
key: 'Default',
get: function get() {
return Default;
}
}, {
key: 'DefaultType',
get: function get() {
return DefaultType;
}
}]);
return Dropdown;
@ -1644,7 +1736,11 @@ var Dropdown = function ($) {
* ------------------------------------------------------------------------
*/
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault();
event.stopPropagation();
Dropdown._jQueryInterface.call($(this), 'toggle');
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation();
});
@ -1763,7 +1859,7 @@ var Modal = function ($) {
};
Modal.prototype.show = function show(relatedTarget) {
var _this9 = this;
var _this10 = this;
if (this._isTransitioning) {
return;
@ -1794,24 +1890,24 @@ var Modal = function ($) {
this._setResizeEvent();
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
return _this9.hide(event);
return _this10.hide(event);
});
$(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
$(_this9._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this9._element)) {
_this9._ignoreBackdropClick = true;
$(_this10._element).one(Event.MOUSEUP_DISMISS, function (event) {
if ($(event.target).is(_this10._element)) {
_this10._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
return _this9._showElement(relatedTarget);
return _this10._showElement(relatedTarget);
});
};
Modal.prototype.hide = function hide(event) {
var _this10 = this;
var _this11 = this;
if (event) {
event.preventDefault();
@ -1850,7 +1946,7 @@ var Modal = function ($) {
if (transition) {
$(this._element).one(Util.TRANSITION_END, function (event) {
return _this10._hideModal(event);
return _this11._hideModal(event);
}).emulateTransitionEnd(TRANSITION_DURATION);
} else {
this._hideModal();
@ -1885,7 +1981,7 @@ var Modal = function ($) {
};
Modal.prototype._showElement = function _showElement(relatedTarget) {
var _this11 = this;
var _this12 = this;
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
@ -1913,11 +2009,11 @@ var Modal = function ($) {
});
var transitionComplete = function transitionComplete() {
if (_this11._config.focus) {
_this11._element.focus();
if (_this12._config.focus) {
_this12._element.focus();
}
_this11._isTransitioning = false;
$(_this11._element).trigger(shownEvent);
_this12._isTransitioning = false;
$(_this12._element).trigger(shownEvent);
};
if (transition) {
@ -1928,24 +2024,24 @@ var Modal = function ($) {
};
Modal.prototype._enforceFocus = function _enforceFocus() {
var _this12 = this;
var _this13 = this;
$(document).off(Event.FOCUSIN) // guard against infinite focus loop
.on(Event.FOCUSIN, function (event) {
if (document !== event.target && _this12._element !== event.target && !$(_this12._element).has(event.target).length) {
_this12._element.focus();
if (document !== event.target && _this13._element !== event.target && !$(_this13._element).has(event.target).length) {
_this13._element.focus();
}
});
};
Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
var _this13 = this;
var _this14 = this;
if (this._isShown && this._config.keyboard) {
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
if (event.which === ESCAPE_KEYCODE) {
event.preventDefault();
_this13.hide();
_this14.hide();
}
});
} else if (!this._isShown) {
@ -1954,11 +2050,11 @@ var Modal = function ($) {
};
Modal.prototype._setResizeEvent = function _setResizeEvent() {
var _this14 = this;
var _this15 = this;
if (this._isShown) {
$(window).on(Event.RESIZE, function (event) {
return _this14.handleUpdate(event);
return _this15.handleUpdate(event);
});
} else {
$(window).off(Event.RESIZE);
@ -1966,16 +2062,16 @@ var Modal = function ($) {
};
Modal.prototype._hideModal = function _hideModal() {
var _this15 = this;
var _this16 = this;
this._element.style.display = 'none';
this._element.setAttribute('aria-hidden', true);
this._isTransitioning = false;
this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN);
_this15._resetAdjustments();
_this15._resetScrollbar();
$(_this15._element).trigger(Event.HIDDEN);
_this16._resetAdjustments();
_this16._resetScrollbar();
$(_this16._element).trigger(Event.HIDDEN);
});
};
@ -1987,7 +2083,7 @@ var Modal = function ($) {
};
Modal.prototype._showBackdrop = function _showBackdrop(callback) {
var _this16 = this;
var _this17 = this;
var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
@ -2004,17 +2100,17 @@ var Modal = function ($) {
$(this._backdrop).appendTo(document.body);
$(this._element).on(Event.CLICK_DISMISS, function (event) {
if (_this16._ignoreBackdropClick) {
_this16._ignoreBackdropClick = false;
if (_this17._ignoreBackdropClick) {
_this17._ignoreBackdropClick = false;
return;
}
if (event.target !== event.currentTarget) {
return;
}
if (_this16._config.backdrop === 'static') {
_this16._element.focus();
if (_this17._config.backdrop === 'static') {
_this17._element.focus();
} else {
_this16.hide();
_this17.hide();
}
});
@ -2038,7 +2134,7 @@ var Modal = function ($) {
$(this._backdrop).removeClass(ClassName.SHOW);
var callbackRemove = function callbackRemove() {
_this16._removeBackdrop();
_this17._removeBackdrop();
if (callback) {
callback();
}
@ -2082,7 +2178,7 @@ var Modal = function ($) {
};
Modal.prototype._setScrollbar = function _setScrollbar() {
var _this17 = this;
var _this18 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@ -2092,14 +2188,14 @@ var Modal = function ($) {
$(Selector.FIXED_CONTENT).each(function (index, element) {
var actualPadding = $(element)[0].style.paddingRight;
var calculatedPadding = $(element).css('padding-right');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this17._scrollbarWidth + 'px');
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this18._scrollbarWidth + 'px');
});
// Adjust navbar-toggler margin
$(Selector.NAVBAR_TOGGLER).each(function (index, element) {
var actualMargin = $(element)[0].style.marginRight;
var calculatedMargin = $(element).css('margin-right');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this17._scrollbarWidth + 'px');
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this18._scrollbarWidth + 'px');
});
// Adjust body padding
@ -2188,7 +2284,7 @@ var Modal = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
var _this18 = this;
var _this19 = this;
var target = void 0;
var selector = Util.getSelectorFromElement(this);
@ -2210,8 +2306,8 @@ var Modal = function ($) {
}
$target.one(Event.HIDDEN, function () {
if ($(_this18).is(':visible')) {
_this18.focus();
if ($(_this19).is(':visible')) {
_this19.focus();
}
});
});
@ -2305,7 +2401,7 @@ var ScrollSpy = function ($) {
var ScrollSpy = function () {
function ScrollSpy(element, config) {
var _this19 = this;
var _this20 = this;
_classCallCheck(this, ScrollSpy);
@ -2319,7 +2415,7 @@ var ScrollSpy = function ($) {
this._scrollHeight = 0;
$(this._scrollElement).on(Event.SCROLL, function (event) {
return _this19._process(event);
return _this20._process(event);
});
this.refresh();
@ -2331,7 +2427,7 @@ var ScrollSpy = function ($) {
// public
ScrollSpy.prototype.refresh = function refresh() {
var _this20 = this;
var _this21 = this;
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
@ -2367,8 +2463,8 @@ var ScrollSpy = function ($) {
}).sort(function (a, b) {
return a[0] - b[0];
}).forEach(function (item) {
_this20._offsets.push(item[0]);
_this20._targets.push(item[1]);
_this21._offsets.push(item[0]);
_this21._targets.push(item[1]);
});
};
@ -2615,7 +2711,7 @@ var Tab = function ($) {
// public
Tab.prototype.show = function show() {
var _this21 = this;
var _this22 = this;
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
return;
@ -2657,7 +2753,7 @@ var Tab = function ($) {
var complete = function complete() {
var hiddenEvent = $.Event(Event.HIDDEN, {
relatedTarget: _this21._element
relatedTarget: _this22._element
});
var shownEvent = $.Event(Event.SHOWN, {
@ -2665,7 +2761,7 @@ var Tab = function ($) {
});
$(previous).trigger(hiddenEvent);
$(_this21._element).trigger(shownEvent);
$(_this22._element).trigger(shownEvent);
};
if (target) {
@ -2676,20 +2772,20 @@ var Tab = function ($) {
};
Tab.prototype.dispose = function dispose() {
$.removeClass(this._element, DATA_KEY);
$.removeData(this._element, DATA_KEY);
this._element = null;
};
// private
Tab.prototype._activate = function _activate(element, container, callback) {
var _this22 = this;
var _this23 = this;
var active = $(container).find(Selector.ACTIVE)[0];
var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() {
return _this22._transitionComplete(element, active, isTransitioning, callback);
return _this23._transitionComplete(element, active, isTransitioning, callback);
};
if (active && isTransitioning) {
@ -2799,7 +2895,7 @@ var Tab = function ($) {
return Tab;
}(jQuery);
/* global Tether */
/* global Popper */
/**
* --------------------------------------------------------------------------
@ -2811,11 +2907,11 @@ var Tab = function ($) {
var Tooltip = function ($) {
/**
* Check for Tether dependency
* Tether - http://tether.io/
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Tether === 'undefined') {
throw new Error('Bootstrap tooltips require Tether (http://tether.io/)');
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
}
/**
@ -2830,22 +2926,8 @@ var Tooltip = function ($) {
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tether';
var TETHER_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: '0 0',
constraints: [],
container: false
};
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var DefaultType = {
animation: 'boolean',
@ -2856,16 +2938,30 @@ var Tooltip = function ($) {
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: 'string',
constraints: 'array',
container: '(string|element|boolean)'
offset: '(number|string)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)'
};
var AttachmentMap = {
TOP: 'bottom center',
RIGHT: 'middle left',
BOTTOM: 'top center',
LEFT: 'middle right'
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
LEFT: 'left'
};
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: 0,
container: false,
fallbackPlacement: 'flip'
};
var HoverState = {
@ -2896,11 +2992,6 @@ var Tooltip = function ($) {
TOOLTIP_INNER: '.tooltip-inner'
};
var TetherClass = {
element: false,
enabled: false
};
var Trigger = {
HOVER: 'hover',
FOCUS: 'focus',
@ -2923,7 +3014,7 @@ var Tooltip = function ($) {
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
this._tether = null;
this._popper = null;
// protected
this.element = element;
@ -2980,8 +3071,6 @@ var Tooltip = function ($) {
Tooltip.prototype.dispose = function dispose() {
clearTimeout(this._timeout);
this.cleanupTether();
$.removeData(this.element, this.constructor.DATA_KEY);
$(this.element).off(this.constructor.EVENT_KEY);
@ -2995,7 +3084,10 @@ var Tooltip = function ($) {
this._timeout = null;
this._hoverState = null;
this._activeTrigger = null;
this._tether = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
this.element = null;
this.config = null;
@ -3003,7 +3095,7 @@ var Tooltip = function ($) {
};
Tooltip.prototype.show = function show() {
var _this23 = this;
var _this24 = this;
if ($(this.element).css('display') === 'none') {
throw new Error('Please use show on visible elements');
@ -3034,6 +3126,7 @@ var Tooltip = function ($) {
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var attachment = this._getAttachment(placement);
this.addAttachmentClass(attachment);
var container = this.config.container === false ? document.body : $(this.config.container);
@ -3045,20 +3138,26 @@ var Tooltip = function ($) {
$(this.element).trigger(this.constructor.Event.INSERTED);
this._tether = new Tether({
attachment: attachment,
element: tip,
target: this.element,
classes: TetherClass,
classPrefix: CLASS_PREFIX,
offset: this.config.offset,
constraints: this.config.constraints,
addTargetClasses: false
this._popper = new Popper(this.element, tip, {
placement: attachment,
modifiers: {
offset: {
offset: this.config.offset
},
flip: {
behavior: this.config.fallbackPlacement
}
},
onCreate: function onCreate(data) {
if (data.originalPlacement !== data.placement) {
_this24._handlePopperPlacementChange(data);
}
},
onUpdate: function onUpdate(data) {
_this24._handlePopperPlacementChange(data);
}
});
Util.reflow(tip);
this._tether.position();
$(tip).addClass(ClassName.SHOW);
// if this is a touch-enabled device we add extra
@ -3070,39 +3169,43 @@ var Tooltip = function ($) {
}
var complete = function complete() {
var prevHoverState = _this23._hoverState;
_this23._hoverState = null;
if (_this24.config.animation) {
_this24._fixTransition();
}
var prevHoverState = _this24._hoverState;
_this24._hoverState = null;
$(_this23.element).trigger(_this23.constructor.Event.SHOWN);
$(_this24.element).trigger(_this24.constructor.Event.SHOWN);
if (prevHoverState === HoverState.OUT) {
_this23._leave(null, _this23);
_this24._leave(null, _this24);
}
};
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
return;
} else {
complete();
}
complete();
}
};
Tooltip.prototype.hide = function hide(callback) {
var _this24 = this;
var _this25 = this;
var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE);
var complete = function complete() {
if (_this24._hoverState !== HoverState.SHOW && tip.parentNode) {
if (_this25._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
_this24._cleanTipClass();
_this24.element.removeAttribute('aria-describedby');
$(_this24.element).trigger(_this24.constructor.Event.HIDDEN);
_this24.cleanupTether();
_this25._cleanTipClass();
_this25.element.removeAttribute('aria-describedby');
$(_this25.element).trigger(_this25.constructor.Event.HIDDEN);
if (_this25._popper !== null) {
_this25._popper.destroy();
}
if (callback) {
callback();
@ -3137,24 +3240,30 @@ var Tooltip = function ($) {
this._hoverState = '';
};
Tooltip.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// protected
Tooltip.prototype.isWithContent = function isWithContent() {
return Boolean(this.getTitle());
};
Tooltip.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Tooltip.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
Tooltip.prototype.setContent = function setContent() {
var $tip = $(this.getTipElement());
this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
Tooltip.prototype.setElementContent = function setElementContent($element, content) {
@ -3183,49 +3292,35 @@ var Tooltip = function ($) {
return title;
};
Tooltip.prototype.cleanupTether = function cleanupTether() {
if (this._tether) {
this._tether.destroy();
}
};
// private
Tooltip.prototype._getAttachment = function _getAttachment(placement) {
return AttachmentMap[placement.toUpperCase()];
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._setListeners = function _setListeners() {
var _this25 = this;
var _this26 = this;
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
$(_this25.element).on(_this25.constructor.Event.CLICK, _this25.config.selector, function (event) {
return _this25.toggle(event);
$(_this26.element).on(_this26.constructor.Event.CLICK, _this26.config.selector, function (event) {
return _this26.toggle(event);
});
} else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this25.constructor.Event.MOUSEENTER : _this25.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this25.constructor.Event.MOUSELEAVE : _this25.constructor.Event.FOCUSOUT;
var eventIn = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSEENTER : _this26.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this26.constructor.Event.MOUSELEAVE : _this26.constructor.Event.FOCUSOUT;
$(_this25.element).on(eventIn, _this25.config.selector, function (event) {
return _this25._enter(event);
}).on(eventOut, _this25.config.selector, function (event) {
return _this25._leave(event);
$(_this26.element).on(eventIn, _this26.config.selector, function (event) {
return _this26._enter(event);
}).on(eventOut, _this26.config.selector, function (event) {
return _this26._leave(event);
});
}
$(_this25.element).closest('.modal').on('hide.bs.modal', function () {
return _this25.hide();
$(_this26.element).closest('.modal').on('hide.bs.modal', function () {
return _this26.hide();
});
});
@ -3363,6 +3458,32 @@ var Tooltip = function ($) {
return config;
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
this._cleanTipClass();
this.addAttachmentClass(this._getAttachment(data.placement));
};
Tooltip.prototype._fixTransition = function _fixTransition() {
var tip = this.getTipElement();
var initConfigAnimation = this.config.animation;
if (tip.getAttribute('x-placement') !== null) {
return;
}
$(tip).removeClass(ClassName.FADE);
this.config.animation = false;
this.hide();
this.show();
this.config.animation = initConfigAnimation;
};
// static
Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -3464,12 +3585,14 @@ var Popover = function ($) {
var DATA_KEY = 'bs.popover';
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = $.extend({}, Tooltip.Default, {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
});
var DefaultType = $.extend({}, Tooltip.DefaultType, {
@ -3520,6 +3643,10 @@ var Popover = function ($) {
return this.getTitle() || this._getContent();
};
Popover.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Popover.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
@ -3532,8 +3659,6 @@ var Popover = function ($) {
this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
// private
@ -3542,6 +3667,14 @@ var Popover = function ($) {
return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
};
Popover.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
// static
Popover._jQueryInterface = function _jQueryInterface(config) {

File diff suppressed because one or more lines are too long

View File

@ -118,7 +118,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../assets/js/vendor/holder.min.js"></script>
<script>
$(function () {

View File

@ -158,7 +158,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -176,7 +176,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- Just to make our placeholder images work. Don't actually copy the next line! -->
<script src="../../assets/js/vendor/holder.min.js"></script>

View File

@ -60,7 +60,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -254,7 +254,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -93,7 +93,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -96,7 +96,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -56,7 +56,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -56,7 +56,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -351,7 +351,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -127,7 +127,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -66,7 +66,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -64,7 +64,7 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>

View File

@ -39,9 +39,8 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.9.9/umd/popper.min.js" integrity="sha256-c477vRLKQv1jt9o7w6TTBzFyFznTaZjoMLTDFi7Hlxc=" crossorigin="anonymous"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<script src="../../assets/js/vendor/tether.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
<script src="tooltip-viewport.js"></script>

View File

@ -40,7 +40,7 @@ Our [package.json](https://github.com/twbs/bootstrap/blob/master/package.json) i
Bootstrap uses [Autoprefixer][autoprefixer] (included in our build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3.
We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/build/postcss.js`](https://github.com/twbs/bootstrap/blob/v4-dev/build/postcss.js) for details.
We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/build/postcss.config.js`](https://github.com/twbs/bootstrap/blob/v4-dev/build/postcss.config.js) for details.
## Local documentation

View File

@ -25,11 +25,11 @@ Copy-paste the stylesheet `<link>` into your `<head>` before all other styleshee
<link rel="stylesheet" href="{{ site.cdn.css }}" integrity="{{ site.cdn.css_hash }}" crossorigin="anonymous">
{% endhighlight %}
Add our JavaScript plugins, jQuery, and Tether near the end of your pages, right before the closing `</body>` tag. Be sure to place jQuery and Tether first, as our code depends on them. While we use [jQuery's slim build](https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/) in our docs, the full version is also supported.
Add our JavaScript plugins, jQuery, and Popper.js near the end of your pages, right before the closing `</body>` tag. Be sure to place jQuery and Popper.js first, as our code depends on them. While we use [jQuery's slim build](https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/) in our docs, the full version is also supported.
{% highlight html %}
<script src="{{ site.cdn.jquery }}" integrity="{{ site.cdn.jquery_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.tether }}" integrity="{{ site.cdn.tether_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.popper }}" integrity="{{ site.cdn.popper_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.js }}" integrity="{{ site.cdn.js_hash }}" crossorigin="anonymous"></script>
{% endhighlight %}
@ -53,9 +53,9 @@ Be sure to have your pages set up with the latest design and development standar
<body>
<h1>Hello, world!</h1>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<!-- jQuery first, then Popper.js, then Bootstrap JS. -->
<script src="{{ site.cdn.jquery }}" integrity="{{ site.cdn.jquery_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.tether }}" integrity="{{ site.cdn.tether_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.popper }}" integrity="{{ site.cdn.popper_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.js }}" integrity="{{ site.cdn.js_hash }}" crossorigin="anonymous"></script>
</body>
</html>

View File

@ -0,0 +1,106 @@
---
layout: docs
title: Webpack
description: Learn how to install Bootstrap using webpack 2
group: getting-started
---
Use [webpack v2.x](https://webpack.js.org/) to bundle Bootstrap into your project.
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
## Installing Bootstrap
[Install bootstrap](/getting-started/download/#npm) as a node module using npm.
## Importing JavaScript
Import [Bootstrap's JavaScript](/getting-started/javascript/) by adding this line to your app's entry point (usally `index.js` or `app.js`):
{% highlight js %}
import 'bootstrap';
{% endhighlight %}
Alternatively, you may **import plugins individually** as needed:
{% highlight js %}
import 'bootstrap/js/dist/util';
import 'bootstrap/js/dist/dropdown';
...
{% endhighlight %}
Bootstrap is dependent on [jQuery](https://jquery.com/) and [Popper](https://popper.js.org/), so npm will install them for you if needed. But they must be explicitly provided by webpack. Add the following code to the `plugins` section in your webpack config file:
{% highlight js %}
plugins: [
...
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
Popper: ['popper.js', 'default'],
// In case you imported plugins individually, you must also require them here:
Util: "exports-loader?Util!bootstrap/js/dist/util",
Dropdown: "exports-loader?Dropdown!bootstrap/js/dist/dropdown",
...
})
...
]
{% endhighlight %}
{% callout warning %}
Notice that if you chose to **import plugins individually**, you must also install [exports-loader](https://github.com/webpack-contrib/exports-loader)
{% endcallout %}
## Importing Styles
### Importing Precompiled SASS
To enjoy the full potential of Bootstrap and customize it to your needs, use the source files as a part of your project's bundling process.
First, create your own `_custom.scss` and use it to override the [built-in custom variables](/getting-started/options/). Then, use your main sass file to import your custom variables, followed by Bootstrap:
{% highlight scss %}
@import "custom";
@import "~bootstrap/scss/bootstrap";
{% endhighlight %}
For Bootstrap to compile, make sure you install and use the required loaders: [sass-loader](https://github.com/webpack-contrib/sass-loader), [postcss-loader](https://github.com/postcss/postcss-loader) with [Autoprefixer](https://github.com/postcss/autoprefixer#webpack) and [postcss-flexbugs-fixes](https://github.com/luisrudge/postcss-flexbugs-fixes). With minimal setup, your webpack config should include this rule or similar:
{% highlight js %}
...
{
test: /\.(scss)$/,
use: [{
loader: 'style-loader', // inject CSS to page
}, {
loader: 'css-loader', // translates CSS into CommonJS modules
}, {
loader: 'postcss-loader', // Run post css actions
options: {
plugins: function () { // post css plugins, can be exported to postcss.config.js
return [
require('precss'),
require('autoprefixer')
];
}
}
}, {
loader: 'sass-loader' // compiles SASS to CSS
}]
},
...
{% endhighlight %}
### Importing Compiled CSS
Alternatively, you may use Bootstrap's ready-to-use css by simply adding this line to your project's entry point:
{% highlight js %}
import 'bootstrap/dist/css/bootstrap.min.css';
{% endhighlight %}
In this case you may use your existing rule for `css` without any special modifications to webpack config.

View File

@ -4,7 +4,7 @@ layout: home
<main class="bd-masthead" id="content" role="main">
<div class="container">
<span class="bd-booticon outline">B</span>
{% include bootstrap-icon.html %}
<p class="lead">Bootstrap is the most popular HTML, CSS, and JS framework in the world for building responsive, mobile-first projects on the web.</p>
<p class="lead">
<a href="{{ site.baseurl }}/getting-started/download/" class="btn btn-lg" onclick="ga('send', 'event', 'Jumbotron actions', 'Download', 'Download {{ site.current_version }}');">Download Bootstrap</a>
@ -29,11 +29,11 @@ layout: home
</div>
<div class="col-sm-6 mb-3">
<h4>Bootstrap CDN</h4>
<p>When you just need to include Bootstrap's compiled CSS and JS, use the Bootstrap CDN, free from the Max CDN folks.</p>
<p>When you just need to include Bootstrap's compiled CSS and JS, use the Bootstrap CDN, free from the MaxCDN folks.</p>
{% highlight html %}
<link rel="stylesheet" href="{{ site.cdn.css }}" integrity="{{ site.cdn.css_hash }}" crossorigin="anonymous">
<script src="{{ site.cdn.jquery }}" integrity="{{ site.cdn.jquery_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.tether }}" integrity="{{ site.cdn.tether_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.popper }}" integrity="{{ site.cdn.popper_hash }}" crossorigin="anonymous"></script>
<script src="{{ site.cdn.js }}" integrity="{{ site.cdn.js_hash }}" crossorigin="anonymous"></script>
{% endhighlight %}
</div>

View File

@ -144,7 +144,7 @@ For example, here are two grid layouts that apply to every device and viewport,
1 of 2
</div>
<div class="col">
1 of 2
2 of 2
</div>
</div>
<div class="row">
@ -152,10 +152,10 @@ For example, here are two grid layouts that apply to every device and viewport,
1 of 3
</div>
<div class="col">
1 of 3
2 of 3
</div>
<div class="col">
1 of 3
3 of 3
</div>
</div>
</div>

View File

@ -97,6 +97,7 @@ New to Bootstrap 4 is the Reboot, a new stylesheet that builds on Normalize with
- `.form-group` no longer applies styles from the `.row` via mixin, so `.row` is now required for horizontal grid layouts (e.g., `<div class="form-group row">`).
- Added new `.form-control-label` class to vertically center labels with `.form-control`s.
- Added custom forms support (for checkboxes, radios, selects, and file inputs).
- Renamed `.has-error` to `.has-danger`.
### Buttons
@ -196,14 +197,6 @@ Dropped entirely for the new card component.
- `.panel-warning` to `.card-warning` and `.card-inverse` (or use `.bg-warning` on `.card-header`)
- `.panel-danger` to `.card-danger` and `.card-inverse` (or use `.bg-danger` on `.card-header`)
### Tooltips
- Removed support for `auto` placement options.
### Popovers
- Removed support for `auto` placement options.
### Carousel
- Overhauled the entire component to simplify design and styling. We have fewer styles for you to override, new indicators, and new icons.

3
js/dist/button.js vendored
View File

@ -82,6 +82,9 @@ var Button = function ($) {
}
if (triggerChangeEvent) {
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
return;
}
input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
$(input).trigger('change');
}

File diff suppressed because one or more lines are too long

16
js/dist/collapse.js vendored
View File

@ -58,9 +58,8 @@ var Collapse = function ($) {
};
var Selector = {
ACTIVES: '.card > .show, .card > .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]',
DATA_CHILDREN: 'data-children'
ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]'
};
/**
@ -77,20 +76,13 @@ var Collapse = function ($) {
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
this._parent = this._config.parent ? this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
}
this._selectorActives = Selector.ACTIVES;
if (this._parent) {
var childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null;
if (childrenSelector !== null) {
this._selectorActives = childrenSelector + ' > .show, ' + childrenSelector + ' > .collapsing';
}
}
if (this._config.toggle) {
this.toggle();
}
@ -119,7 +111,7 @@ var Collapse = function ($) {
var activesData = void 0;
if (this._parent) {
actives = $.makeArray($(this._parent).find(this._selectorActives));
actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
if (!actives.length) {
actives = null;
}

File diff suppressed because one or more lines are too long

171
js/dist/dropdown.js vendored
View File

@ -1,3 +1,5 @@
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -11,6 +13,14 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
var Dropdown = function ($) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
}
/**
* ------------------------------------------------------------------------
* Constants
@ -44,7 +54,10 @@ var Dropdown = function ($) {
var ClassName = {
DISABLED: 'disabled',
SHOW: 'show'
SHOW: 'show',
DROPUP: 'dropup',
MENURIGHT: 'dropdown-menu-right',
MENULEFT: 'dropdown-menu-left'
};
var Selector = {
@ -55,6 +68,25 @@ var Dropdown = function ($) {
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
};
var AttachmentMap = {
TOP: 'top-start',
TOPEND: 'top-end',
BOTTOM: 'bottom-start',
BOTTOMEND: 'bottom-end'
};
var Default = {
placement: AttachmentMap.BOTTOM,
offset: 0,
flip: true
};
var DefaultType = {
placement: 'string',
offset: '(number|string)',
flip: 'boolean'
};
/**
* ------------------------------------------------------------------------
* Class Definition
@ -62,10 +94,13 @@ var Dropdown = function ($) {
*/
var Dropdown = function () {
function Dropdown(element) {
function Dropdown(element, config) {
_classCallCheck(this, Dropdown);
this._element = element;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._addEventListeners();
}
@ -75,30 +110,49 @@ var Dropdown = function ($) {
// public
Dropdown.prototype.toggle = function toggle() {
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
return false;
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return;
}
var parent = Dropdown._getParentFromElement(this);
var isActive = $(parent).hasClass(ClassName.SHOW);
var parent = Dropdown._getParentFromElement(this._element);
var isActive = $(this._menu).hasClass(ClassName.SHOW);
Dropdown._clearMenus();
if (isActive) {
return false;
return;
}
var relatedTarget = {
relatedTarget: this
relatedTarget: this._element
};
var showEvent = $.Event(Event.SHOW, relatedTarget);
$(parent).trigger(showEvent);
if (showEvent.isDefaultPrevented()) {
return false;
return;
}
var element = this._element;
// for dropup with alignment we use the parent as popper container
if ($(parent).hasClass(ClassName.DROPUP)) {
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
element = parent;
}
}
this._popper = new Popper(element, this._menu, {
placement: this._getPlacement(),
modifiers: {
offset: {
offset: this._config.offset
},
flip: {
enabled: this._config.flip
}
}
});
// if this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@ -107,25 +161,79 @@ var Dropdown = function ($) {
$('body').children().on('mouseover', null, $.noop);
}
this.focus();
this.setAttribute('aria-expanded', true);
this._element.focus();
this._element.setAttribute('aria-expanded', true);
$(parent).toggleClass(ClassName.SHOW);
$(parent).trigger($.Event(Event.SHOWN, relatedTarget));
return false;
$(this._menu).toggleClass(ClassName.SHOW);
$(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
};
Dropdown.prototype.dispose = function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._element).off(EVENT_KEY);
this._element = null;
this._menu = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
};
Dropdown.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// private
Dropdown.prototype._addEventListeners = function _addEventListeners() {
$(this._element).on(Event.CLICK, this.toggle);
var _this = this;
$(this._element).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
_this.toggle();
});
};
Dropdown.prototype._getConfig = function _getConfig(config) {
var elementData = $(this._element).data();
if (elementData.placement !== undefined) {
elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];
}
config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
Dropdown.prototype._getMenuElement = function _getMenuElement() {
if (!this._menu) {
var parent = Dropdown._getParentFromElement(this._element);
this._menu = $(parent).find(Selector.MENU)[0];
}
return this._menu;
};
Dropdown.prototype._getPlacement = function _getPlacement() {
var $parentDropdown = $(this._element).parent();
var placement = this._config.placement;
// Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
placement = AttachmentMap.TOP;
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND;
}
} else {
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND;
}
}
return placement;
};
// static
@ -133,9 +241,10 @@ var Dropdown = function ($) {
Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $(this).data(DATA_KEY);
var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
if (!data) {
data = new Dropdown(this);
data = new Dropdown(this, _config);
$(this).data(DATA_KEY, data);
}
@ -143,7 +252,7 @@ var Dropdown = function ($) {
if (data[config] === undefined) {
throw new Error('No method named "' + config + '"');
}
data[config].call(this);
data[config]();
}
});
};
@ -154,13 +263,18 @@ var Dropdown = function ($) {
}
var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) {
var parent = Dropdown._getParentFromElement(toggles[i]);
var context = $(toggles[i]).data(DATA_KEY);
var relatedTarget = {
relatedTarget: toggles[i]
};
if (!context) {
continue;
}
var dropdownMenu = context._menu;
if (!$(parent).hasClass(ClassName.SHOW)) {
continue;
}
@ -183,6 +297,7 @@ var Dropdown = function ($) {
toggles[i].setAttribute('aria-expanded', 'false');
$(dropdownMenu).removeClass(ClassName.SHOW);
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
}
};
@ -254,6 +369,16 @@ var Dropdown = function ($) {
get: function get() {
return VERSION;
}
}, {
key: 'Default',
get: function get() {
return Default;
}
}, {
key: 'DefaultType',
get: function get() {
return DefaultType;
}
}]);
return Dropdown;
@ -265,7 +390,11 @@ var Dropdown = function ($) {
* ------------------------------------------------------------------------
*/
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault();
event.stopPropagation();
Dropdown._jQueryInterface.call($(this), 'toggle');
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
e.stopPropagation();
});
@ -283,5 +412,5 @@ var Dropdown = function ($) {
};
return Dropdown;
}(jQuery);
}(jQuery); /* global Popper */
//# sourceMappingURL=dropdown.js.map

File diff suppressed because one or more lines are too long

18
js/dist/popover.js vendored
View File

@ -28,12 +28,14 @@ var Popover = function ($) {
var DATA_KEY = 'bs.popover';
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = $.extend({}, Tooltip.Default, {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
template: '<div class="popover" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
});
var DefaultType = $.extend({}, Tooltip.DefaultType, {
@ -84,6 +86,10 @@ var Popover = function ($) {
return this.getTitle() || this._getContent();
};
Popover.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Popover.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
@ -96,8 +102,6 @@ var Popover = function ($) {
this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
// private
@ -106,6 +110,14 @@ var Popover = function ($) {
return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
};
Popover.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
// static
Popover._jQueryInterface = function _jQueryInterface(config) {

File diff suppressed because one or more lines are too long

2
js/dist/tab.js vendored
View File

@ -129,7 +129,7 @@ var Tab = function ($) {
};
Tab.prototype.dispose = function dispose() {
$.removeClass(this._element, DATA_KEY);
$.removeData(this._element, DATA_KEY);
this._element = null;
};

2
js/dist/tab.js.map vendored

File diff suppressed because one or more lines are too long

168
js/dist/tooltip.js vendored
View File

@ -14,11 +14,11 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
var Tooltip = function ($) {
/**
* Check for Tether dependency
* Tether - http://tether.io/
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Tether === 'undefined') {
throw new Error('Bootstrap tooltips require Tether (http://tether.io/)');
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
}
/**
@ -33,22 +33,8 @@ var Tooltip = function ($) {
var EVENT_KEY = '.' + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tether';
var TETHER_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: '0 0',
constraints: [],
container: false
};
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var DefaultType = {
animation: 'boolean',
@ -59,16 +45,31 @@ var Tooltip = function ($) {
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: 'string',
constraints: 'array',
container: '(string|element|boolean)'
offset: '(number|string)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)'
};
var AttachmentMap = {
TOP: 'bottom center',
RIGHT: 'middle left',
BOTTOM: 'top center',
LEFT: 'middle right'
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
LEFT: 'left'
};
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: 0,
container: false,
fallbackPlacement: 'flip'
};
var HoverState = {
@ -99,11 +100,6 @@ var Tooltip = function ($) {
TOOLTIP_INNER: '.tooltip-inner'
};
var TetherClass = {
element: false,
enabled: false
};
var Trigger = {
HOVER: 'hover',
FOCUS: 'focus',
@ -126,7 +122,7 @@ var Tooltip = function ($) {
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
this._tether = null;
this._popper = null;
// protected
this.element = element;
@ -183,8 +179,6 @@ var Tooltip = function ($) {
Tooltip.prototype.dispose = function dispose() {
clearTimeout(this._timeout);
this.cleanupTether();
$.removeData(this.element, this.constructor.DATA_KEY);
$(this.element).off(this.constructor.EVENT_KEY);
@ -198,7 +192,10 @@ var Tooltip = function ($) {
this._timeout = null;
this._hoverState = null;
this._activeTrigger = null;
this._tether = null;
if (this._popper !== null) {
this._popper.destroy();
}
this._popper = null;
this.element = null;
this.config = null;
@ -237,6 +234,7 @@ var Tooltip = function ($) {
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var attachment = this._getAttachment(placement);
this.addAttachmentClass(attachment);
var container = this.config.container === false ? document.body : $(this.config.container);
@ -248,20 +246,26 @@ var Tooltip = function ($) {
$(this.element).trigger(this.constructor.Event.INSERTED);
this._tether = new Tether({
attachment: attachment,
element: tip,
target: this.element,
classes: TetherClass,
classPrefix: CLASS_PREFIX,
offset: this.config.offset,
constraints: this.config.constraints,
addTargetClasses: false
this._popper = new Popper(this.element, tip, {
placement: attachment,
modifiers: {
offset: {
offset: this.config.offset
},
flip: {
behavior: this.config.fallbackPlacement
}
},
onCreate: function onCreate(data) {
if (data.originalPlacement !== data.placement) {
_this._handlePopperPlacementChange(data);
}
},
onUpdate: function onUpdate(data) {
_this._handlePopperPlacementChange(data);
}
});
Util.reflow(tip);
this._tether.position();
$(tip).addClass(ClassName.SHOW);
// if this is a touch-enabled device we add extra
@ -273,6 +277,9 @@ var Tooltip = function ($) {
}
var complete = function complete() {
if (_this.config.animation) {
_this._fixTransition();
}
var prevHoverState = _this._hoverState;
_this._hoverState = null;
@ -285,10 +292,9 @@ var Tooltip = function ($) {
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
return;
} else {
complete();
}
complete();
}
};
@ -305,7 +311,9 @@ var Tooltip = function ($) {
_this2._cleanTipClass();
_this2.element.removeAttribute('aria-describedby');
$(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
_this2.cleanupTether();
if (_this2._popper !== null) {
_this2._popper.destroy();
}
if (callback) {
callback();
@ -340,24 +348,30 @@ var Tooltip = function ($) {
this._hoverState = '';
};
Tooltip.prototype.update = function update() {
if (this._popper !== null) {
this._popper.scheduleUpdate();
}
};
// protected
Tooltip.prototype.isWithContent = function isWithContent() {
return Boolean(this.getTitle());
};
Tooltip.prototype.addAttachmentClass = function addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(CLASS_PREFIX + '-' + attachment);
};
Tooltip.prototype.getTipElement = function getTipElement() {
return this.tip = this.tip || $(this.config.template)[0];
};
Tooltip.prototype.setContent = function setContent() {
var $tip = $(this.getTipElement());
this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
$tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
this.cleanupTether();
};
Tooltip.prototype.setElementContent = function setElementContent($element, content) {
@ -386,26 +400,12 @@ var Tooltip = function ($) {
return title;
};
Tooltip.prototype.cleanupTether = function cleanupTether() {
if (this._tether) {
this._tether.destroy();
}
};
// private
Tooltip.prototype._getAttachment = function _getAttachment(placement) {
return AttachmentMap[placement.toUpperCase()];
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._setListeners = function _setListeners() {
var _this3 = this;
@ -566,6 +566,32 @@ var Tooltip = function ($) {
return config;
};
Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
var $tip = $(this.getTipElement());
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''));
}
};
Tooltip.prototype._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
this._cleanTipClass();
this.addAttachmentClass(this._getAttachment(data.placement));
};
Tooltip.prototype._fixTransition = function _fixTransition() {
var tip = this.getTipElement();
var initConfigAnimation = this.config.animation;
if (tip.getAttribute('x-placement') !== null) {
return;
}
$(tip).removeClass(ClassName.FADE);
this.config.animation = false;
this.hide();
this.show();
this.config.animation = initConfigAnimation;
};
// static
Tooltip._jQueryInterface = function _jQueryInterface(config) {
@ -645,5 +671,5 @@ var Tooltip = function ($) {
};
return Tooltip;
}(jQuery); /* global Tether */
}(jQuery); /* global Popper */
//# sourceMappingURL=tooltip.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,5 @@
/* global Popper */
import Util from './util'
@ -10,6 +12,13 @@ import Util from './util'
const Dropdown = (($) => {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
}
/**
* ------------------------------------------------------------------------
@ -43,8 +52,11 @@ const Dropdown = (($) => {
}
const ClassName = {
DISABLED : 'disabled',
SHOW : 'show'
DISABLED : 'disabled',
SHOW : 'show',
DROPUP : 'dropup',
MENURIGHT : 'dropdown-menu-right',
MENULEFT : 'dropdown-menu-left'
}
const Selector = {
@ -55,6 +67,25 @@ const Dropdown = (($) => {
VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'
}
const AttachmentMap = {
TOP : 'top-start',
TOPEND : 'top-end',
BOTTOM : 'bottom-start',
BOTTOMEND : 'bottom-end'
}
const Default = {
placement : AttachmentMap.BOTTOM,
offset : 0,
flip : true
}
const DefaultType = {
placement : 'string',
offset : '(number|string)',
flip : 'boolean'
}
/**
* ------------------------------------------------------------------------
@ -64,8 +95,11 @@ const Dropdown = (($) => {
class Dropdown {
constructor(element) {
constructor(element, config) {
this._element = element
this._popper = null
this._config = this._getConfig(config)
this._menu = this._getMenuElement()
this._addEventListeners()
}
@ -77,34 +111,60 @@ const Dropdown = (($) => {
return VERSION
}
static get Default() {
return Default
}
static get DefaultType() {
return DefaultType
}
// public
toggle() {
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
return false
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
return
}
const parent = Dropdown._getParentFromElement(this)
const isActive = $(parent).hasClass(ClassName.SHOW)
const parent = Dropdown._getParentFromElement(this._element)
const isActive = $(this._menu).hasClass(ClassName.SHOW)
Dropdown._clearMenus()
if (isActive) {
return false
return
}
const relatedTarget = {
relatedTarget : this
relatedTarget : this._element
}
const showEvent = $.Event(Event.SHOW, relatedTarget)
const showEvent = $.Event(Event.SHOW, relatedTarget)
$(parent).trigger(showEvent)
if (showEvent.isDefaultPrevented()) {
return false
return
}
let element = this._element
// for dropup with alignment we use the parent as popper container
if ($(parent).hasClass(ClassName.DROPUP)) {
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
element = parent
}
}
this._popper = new Popper(element, this._menu, {
placement : this._getPlacement(),
modifiers : {
offset : {
offset : this._config.offset
},
flip : {
enabled : this._config.flip
}
}
})
// if this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
@ -114,37 +174,100 @@ const Dropdown = (($) => {
$('body').children().on('mouseover', null, $.noop)
}
this.focus()
this.setAttribute('aria-expanded', true)
this._element.focus()
this._element.setAttribute('aria-expanded', true)
$(parent).toggleClass(ClassName.SHOW)
$(parent).trigger($.Event(Event.SHOWN, relatedTarget))
return false
$(this._menu).toggleClass(ClassName.SHOW)
$(parent)
.toggleClass(ClassName.SHOW)
.trigger($.Event(Event.SHOWN, relatedTarget))
}
dispose() {
$.removeData(this._element, DATA_KEY)
$(this._element).off(EVENT_KEY)
this._element = null
this._menu = null
if (this._popper !== null) {
this._popper.destroy()
}
this._popper = null
}
update() {
if (this._popper !== null) {
this._popper.scheduleUpdate()
}
}
// private
_addEventListeners() {
$(this._element).on(Event.CLICK, this.toggle)
$(this._element).on(Event.CLICK, (event) => {
event.preventDefault()
event.stopPropagation()
this.toggle()
})
}
_getConfig(config) {
const elementData = $(this._element).data()
if (elementData.placement !== undefined) {
elementData.placement = AttachmentMap[elementData.placement.toUpperCase()]
}
config = $.extend(
{},
this.constructor.Default,
$(this._element).data(),
config
)
Util.typeCheckConfig(
NAME,
config,
this.constructor.DefaultType
)
return config
}
_getMenuElement() {
if (!this._menu) {
const parent = Dropdown._getParentFromElement(this._element)
this._menu = $(parent).find(Selector.MENU)[0]
}
return this._menu
}
_getPlacement() {
const $parentDropdown = $(this._element).parent()
let placement = this._config.placement
// Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
placement = AttachmentMap.TOP
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND
}
}
else {
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND
}
}
return placement
}
// static
static _jQueryInterface(config) {
return this.each(function () {
let data = $(this).data(DATA_KEY)
const _config = typeof config === 'object' ? config : null
if (!data) {
data = new Dropdown(this)
data = new Dropdown(this, _config)
$(this).data(DATA_KEY, data)
}
@ -152,7 +275,7 @@ const Dropdown = (($) => {
if (data[config] === undefined) {
throw new Error(`No method named "${config}"`)
}
data[config].call(this)
data[config]()
}
})
}
@ -164,13 +287,18 @@ const Dropdown = (($) => {
}
const toggles = $.makeArray($(Selector.DATA_TOGGLE))
for (let i = 0; i < toggles.length; i++) {
const parent = Dropdown._getParentFromElement(toggles[i])
const context = $(toggles[i]).data(DATA_KEY)
const relatedTarget = {
relatedTarget : toggles[i]
}
if (!context) {
continue
}
const dropdownMenu = context._menu
if (!$(parent).hasClass(ClassName.SHOW)) {
continue
}
@ -195,6 +323,7 @@ const Dropdown = (($) => {
toggles[i].setAttribute('aria-expanded', 'false')
$(dropdownMenu).removeClass(ClassName.SHOW)
$(parent)
.removeClass(ClassName.SHOW)
.trigger($.Event(Event.HIDDEN, relatedTarget))
@ -276,7 +405,11 @@ const Dropdown = (($) => {
.on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)
.on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)
.on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)
.on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle)
.on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
event.preventDefault()
event.stopPropagation()
Dropdown._jQueryInterface.call($(this), 'toggle')
})
.on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {
e.stopPropagation()
})

View File

@ -22,12 +22,15 @@ const Popover = (($) => {
const DATA_KEY = 'bs.popover'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const CLASS_PREFIX = 'bs-popover'
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const Default = $.extend({}, Tooltip.Default, {
placement : 'right',
trigger : 'click',
content : '',
template : '<div class="popover" role="tooltip">'
+ '<div class="arrow" x-arrow></div>'
+ '<h3 class="popover-title"></h3>'
+ '<div class="popover-content"></div></div>'
})
@ -106,6 +109,10 @@ const Popover = (($) => {
return this.getTitle() || this._getContent()
}
addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)
}
getTipElement() {
return this.tip = this.tip || $(this.config.template)[0]
}
@ -118,8 +125,6 @@ const Popover = (($) => {
this.setElementContent($tip.find(Selector.CONTENT), this._getContent())
$tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
this.cleanupTether()
}
// private
@ -131,6 +136,14 @@ const Popover = (($) => {
this.config.content)
}
_cleanTipClass() {
const $tip = $(this.getTipElement())
const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''))
}
}
// static

View File

@ -1,4 +1,4 @@
/* global Tether */
/* global Popper */
import Util from './util'
@ -13,11 +13,11 @@ import Util from './util'
const Tooltip = (($) => {
/**
* Check for Tether dependency
* Tether - http://tether.io/
* Check for Popper dependency
* Popper - https://popper.js.org
*/
if (typeof Tether === 'undefined') {
throw new Error('Bootstrap tooltips require Tether (http://tether.io/)')
if (typeof Popper === 'undefined') {
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')
}
@ -33,43 +33,45 @@ const Tooltip = (($) => {
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]
const TRANSITION_DURATION = 150
const CLASS_PREFIX = 'bs-tether'
const TETHER_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const Default = {
animation : true,
template : '<div class="tooltip" role="tooltip">'
+ '<div class="tooltip-inner"></div></div>',
trigger : 'hover focus',
title : '',
delay : 0,
html : false,
selector : false,
placement : 'top',
offset : '0 0',
constraints : [],
container : false
}
const CLASS_PREFIX = 'bs-tooltip'
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const DefaultType = {
animation : 'boolean',
template : 'string',
title : '(string|element|function)',
trigger : 'string',
delay : '(number|object)',
html : 'boolean',
selector : '(string|boolean)',
placement : '(string|function)',
offset : 'string',
constraints : 'array',
container : '(string|element|boolean)'
animation : 'boolean',
template : 'string',
title : '(string|element|function)',
trigger : 'string',
delay : '(number|object)',
html : 'boolean',
selector : '(string|boolean)',
placement : '(string|function)',
offset : '(number|string)',
container : '(string|element|boolean)',
fallbackPlacement : '(string|array)'
}
const AttachmentMap = {
TOP : 'bottom center',
RIGHT : 'middle left',
BOTTOM : 'top center',
LEFT : 'middle right'
AUTO : 'auto',
TOP : 'top',
RIGHT : 'right',
BOTTOM : 'bottom',
LEFT : 'left'
}
const Default = {
animation : true,
template : '<div class="tooltip" role="tooltip">'
+ '<div class="arrow" x-arrow></div>'
+ '<div class="tooltip-inner"></div></div>',
trigger : 'hover focus',
title : '',
delay : 0,
html : false,
selector : false,
placement : 'top',
offset : 0,
container : false,
fallbackPlacement : 'flip'
}
const HoverState = {
@ -100,11 +102,6 @@ const Tooltip = (($) => {
TOOLTIP_INNER : '.tooltip-inner'
}
const TetherClass = {
element : false,
enabled : false
}
const Trigger = {
HOVER : 'hover',
FOCUS : 'focus',
@ -128,7 +125,7 @@ const Tooltip = (($) => {
this._timeout = 0
this._hoverState = ''
this._activeTrigger = {}
this._tether = null
this._popper = null
// protected
this.element = element
@ -220,8 +217,6 @@ const Tooltip = (($) => {
dispose() {
clearTimeout(this._timeout)
this.cleanupTether()
$.removeData(this.element, this.constructor.DATA_KEY)
$(this.element).off(this.constructor.EVENT_KEY)
@ -235,7 +230,10 @@ const Tooltip = (($) => {
this._timeout = null
this._hoverState = null
this._activeTrigger = null
this._tether = null
if (this._popper !== null) {
this._popper.destroy()
}
this._popper = null
this.element = null
this.config = null
@ -277,6 +275,7 @@ const Tooltip = (($) => {
this.config.placement
const attachment = this._getAttachment(placement)
this.addAttachmentClass(attachment)
const container = this.config.container === false ? document.body : $(this.config.container)
@ -288,20 +287,26 @@ const Tooltip = (($) => {
$(this.element).trigger(this.constructor.Event.INSERTED)
this._tether = new Tether({
attachment,
element : tip,
target : this.element,
classes : TetherClass,
classPrefix : CLASS_PREFIX,
offset : this.config.offset,
constraints : this.config.constraints,
addTargetClasses: false
this._popper = new Popper(this.element, tip, {
placement : attachment,
modifiers : {
offset : {
offset : this.config.offset
},
flip : {
behavior : this.config.fallbackPlacement
}
},
onCreate : (data) => {
if (data.originalPlacement !== data.placement) {
this._handlePopperPlacementChange(data)
}
},
onUpdate : (data) => {
this._handlePopperPlacementChange(data)
}
})
Util.reflow(tip)
this._tether.position()
$(tip).addClass(ClassName.SHOW)
// if this is a touch-enabled device we add extra
@ -313,6 +318,9 @@ const Tooltip = (($) => {
}
const complete = () => {
if (this.config.animation) {
this._fixTransition()
}
const prevHoverState = this._hoverState
this._hoverState = null
@ -327,10 +335,9 @@ const Tooltip = (($) => {
$(this.tip)
.one(Util.TRANSITION_END, complete)
.emulateTransitionEnd(Tooltip._TRANSITION_DURATION)
return
} else {
complete()
}
complete()
}
}
@ -345,7 +352,9 @@ const Tooltip = (($) => {
this._cleanTipClass()
this.element.removeAttribute('aria-describedby')
$(this.element).trigger(this.constructor.Event.HIDDEN)
this.cleanupTether()
if (this._popper !== null) {
this._popper.destroy()
}
if (callback) {
callback()
@ -385,6 +394,11 @@ const Tooltip = (($) => {
}
update() {
if (this._popper !== null) {
this._popper.scheduleUpdate()
}
}
// protected
@ -392,18 +406,18 @@ const Tooltip = (($) => {
return Boolean(this.getTitle())
}
addAttachmentClass(attachment) {
$(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)
}
getTipElement() {
return this.tip = this.tip || $(this.config.template)[0]
}
setContent() {
const $tip = $(this.getTipElement())
this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())
$tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
this.cleanupTether()
}
setElementContent($element, content) {
@ -434,12 +448,6 @@ const Tooltip = (($) => {
return title
}
cleanupTether() {
if (this._tether) {
this._tether.destroy()
}
}
// private
@ -447,14 +455,6 @@ const Tooltip = (($) => {
return AttachmentMap[placement.toUpperCase()]
}
_cleanTipClass() {
const $tip = $(this.getTipElement())
const tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX)
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''))
}
}
_setListeners() {
const triggers = this.config.trigger.split(' ')
@ -651,6 +651,31 @@ const Tooltip = (($) => {
return config
}
_cleanTipClass() {
const $tip = $(this.getTipElement())
const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)
if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join(''))
}
}
_handlePopperPlacementChange(data) {
this._cleanTipClass()
this.addAttachmentClass(this._getAttachment(data.placement))
}
_fixTransition() {
const tip = this.getTipElement()
const initConfigAnimation = this.config.animation
if (tip.getAttribute('x-placement') !== null) {
return
}
$(tip).removeClass(ClassName.FADE)
this.config.animation = false
this.hide()
this.show()
this.config.animation = initConfigAnimation
}
// static

View File

@ -7,7 +7,7 @@
<!-- jQuery -->
<script src="../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../docs/assets/js/vendor/tether.min.js"></script>
<script src="../../docs/assets/js/vendor/popper.min.js"></script>
<!-- QUnit -->
<link rel="stylesheet" href="vendor/qunit.css" media="screen">

View File

@ -275,20 +275,20 @@ $(function () {
$first.parent('.dropdown')
.on('shown.bs.dropdown', function () {
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
$(document.body).trigger('click')
}).on('hidden.bs.dropdown', function () {
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
$last.trigger('click')
})
$last.parent('.btn-group')
.on('shown.bs.dropdown', function () {
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
$(document.body).trigger('click')
}).on('hidden.bs.dropdown', function () {
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
done()
})
$first.trigger('click')
@ -321,24 +321,24 @@ $(function () {
$first.parent('.dropdown')
.on('shown.bs.dropdown', function () {
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
var e = $.Event('keyup')
e.which = 9 // Tab
$(document.body).trigger(e)
}).on('hidden.bs.dropdown', function () {
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
$last.trigger('click')
})
$last.parent('.btn-group')
.on('shown.bs.dropdown', function () {
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
var e = $.Event('keyup')
e.which = 9 // Tab
$(document.body).trigger(e)
}).on('hidden.bs.dropdown', function () {
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
done()
})
$first.trigger('click')
@ -552,7 +552,7 @@ $(function () {
})
QUnit.test('should not close the dropdown if the user clicks on a text field', function (assert) {
assert.expect(1)
assert.expect(2)
var done = assert.async()
var dropdownHTML = '<div class="dropdown">'
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
@ -565,23 +565,23 @@ $(function () {
.find('[data-toggle="dropdown"]')
.bootstrapDropdown()
var $textfield = $('#textField')
$textfield.on('click', function () {
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
done()
})
$dropdown
.parent('.dropdown')
.on('shown.bs.dropdown', function () {
$('#textField').trigger('click')
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
setTimeout(function () {
done()
}, 300)
})
.on('hidden.bs.dropdown', function () {
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
$textfield.trigger($.Event('click'))
})
$dropdown.trigger('click')
})
QUnit.test('should not close the dropdown if the user clicks on a textarea', function (assert) {
assert.expect(1)
assert.expect(2)
var done = assert.async()
var dropdownHTML = '<div class="dropdown">'
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
@ -594,17 +594,17 @@ $(function () {
.find('[data-toggle="dropdown"]')
.bootstrapDropdown()
var $textarea = $('#textArea')
$textarea.on('click', function () {
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
done()
})
$dropdown
.parent('.dropdown')
.on('shown.bs.dropdown', function () {
$('#textArea').trigger('click')
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
setTimeout(function () {
done()
}, 300)
})
.on('hidden.bs.dropdown', function () {
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
$textarea.trigger($.Event('click'))
})
$dropdown.trigger('click')
})

View File

@ -47,13 +47,18 @@ $(function () {
QUnit.test('should render popover element', function (assert) {
assert.expect(2)
var $popover = $('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>')
var done = assert.async()
$('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>')
.appendTo('#qunit-fixture')
.on('shown.bs.popover', function () {
assert.notEqual($('.popover').length, 0, 'popover was inserted')
$(this).bootstrapPopover('hide')
})
.on('hidden.bs.popover', function () {
assert.strictEqual($('.popover').length, 0, 'popover removed')
done()
})
.bootstrapPopover('show')
assert.notEqual($('.popover').length, 0, 'popover was inserted')
$popover.bootstrapPopover('hide')
assert.strictEqual($('.popover').length, 0, 'popover removed')
})
QUnit.test('should store popover instance in popover data object', function (assert) {

View File

@ -111,7 +111,7 @@ $(function () {
assert
.ok($('.tooltip')
.is('.fade.bs-tether-element-attached-top.bs-tether-element-attached-center.show'), 'has correct classes applied')
.is('.fade.bs-tooltip-bottom.show'), 'has correct classes applied')
$tooltip.bootstrapTooltip('hide')
@ -364,32 +364,29 @@ $(function () {
})
QUnit.test('should add position class before positioning so that position-specific styles are taken into account', function (assert) {
assert.expect(1)
assert.expect(2)
var done = assert.async()
var styles = '<style>'
+ '.tooltip.right { white-space: nowrap; }'
+ '.tooltip.right .tooltip-inner { max-width: none; }'
+ '.bs-tooltip-right { white-space: nowrap; }'
+ '.bs-tooltip-right .tooltip-inner { max-width: none; }'
+ '</style>'
var $styles = $(styles).appendTo('head')
var $container = $('<div/>').appendTo('#qunit-fixture')
var $target = $('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"/>')
$('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"/>')
.appendTo($container)
.bootstrapTooltip({
placement: 'right'
placement: 'right',
trigger: 'manual'
})
.on('inserted.bs.tooltip', function () {
var $tooltip = $($(this).data('bs.tooltip').tip)
assert.ok($tooltip.hasClass('bs-tooltip-right'))
assert.ok($tooltip.attr('style') === undefined)
$styles.remove()
done()
})
.bootstrapTooltip('show')
var $tooltip = $($target.data('bs.tooltip').tip)
// this is some dumb hack stuff because sub pixels in firefox
var top = Math.round($target.offset().top + $target[0].offsetHeight / 2 - $tooltip[0].offsetHeight / 2)
var top2 = Math.round($tooltip.offset().top)
var topDiff = top - top2
assert.ok(topDiff <= 1 && topDiff >= -1)
$target.bootstrapTooltip('hide')
$container.remove()
$styles.remove()
})
QUnit.test('should use title attribute for tooltip text', function (assert) {
@ -459,7 +456,7 @@ $(function () {
assert.expect(1)
var done = assert.async()
var containerHTML = '<div>'
var containerHTML = '<div id="test">'
+ '<p style="margin-top: 200px">'
+ '<a href="#" title="very very very very very very very long tooltip">Hover me</a>'
+ '</p>'
@ -476,21 +473,24 @@ $(function () {
})
.appendTo('#qunit-fixture')
var $trigger = $container
$container
.find('a')
.css('margin-top', 200)
.bootstrapTooltip({
placement: 'top',
animate: false
})
.on('shown.bs.tooltip', function () {
var $tooltip = $($(this).data('bs.tooltip').tip)
if (/iPhone|iPad|iPod/.test(navigator.userAgent)) {
assert.ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) <= Math.round($(this).offset().top))
}
else {
assert.ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) >= Math.round($(this).offset().top))
}
done()
})
.bootstrapTooltip('show')
var $tooltip = $($trigger.data('bs.tooltip').tip)
setTimeout(function () {
assert.ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) <= Math.round($trigger.offset().top))
done()
}, 0)
})
QUnit.test('should show tooltip if leave event hasn\'t occurred before delay expires', function (assert) {
@ -629,45 +629,6 @@ $(function () {
$tooltip.trigger('mouseenter')
})
QUnit.test('should correctly position tooltips on SVG elements', function (assert) {
if (!window.SVGElement) {
// Skip IE8 since it doesn't support SVG
assert.expect(0)
return
}
assert.expect(2)
var done = assert.async()
var styles = '<style>'
+ '.tooltip, .tooltip *, .tooltip *:before, .tooltip *:after { box-sizing: border-box; }'
+ '.tooltip { position: absolute; }'
+ '.tooltip .tooltip-inner { width: 24px; height: 24px; font-family: Helvetica; }'
+ '</style>'
var $styles = $(styles).appendTo('head')
$('#qunit-fixture').append(
'<div style="position: fixed; top: 0; left: 0;">'
+ ' <svg width="200" height="200">'
+ ' <circle cx="100" cy="100" r="10" title="m" id="theCircle" />'
+ ' </svg>'
+ '</div>')
var $circle = $('#theCircle')
$circle
.on('shown.bs.tooltip', function () {
var offset = $('.tooltip').offset()
$styles.remove()
assert.ok(Math.abs(offset.left - 88) <= 1, 'tooltip has correct horizontal location')
$circle.bootstrapTooltip('hide')
assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
done()
})
.bootstrapTooltip({ placement: 'top', trigger: 'manual' })
$circle.bootstrapTooltip('show')
})
QUnit.test('should not reload the tooltip on subsequent mouseenter events', function (assert) {
assert.expect(1)
var titleHtml = function () {
@ -731,43 +692,6 @@ $(function () {
assert.strictEqual(currentUid, $('#tt-content').text())
})
QUnit.test('should correctly position tooltips on transformed elements', function (assert) {
var styleProps = document.documentElement.style
if (!('transform' in styleProps) && !('webkitTransform' in styleProps) && !('msTransform' in styleProps)) {
assert.expect(0)
return
}
assert.expect(2)
var done = assert.async()
var styles = '<style>'
+ '#qunit-fixture { top: 0; left: 0; }'
+ '.tooltip, .tooltip *, .tooltip *:before, .tooltip *:after { box-sizing: border-box; }'
+ '.tooltip { position: absolute; }'
+ '.tooltip .tooltip-inner { width: 24px; height: 24px; font-family: Helvetica; }'
+ '#target { position: absolute; top: 100px; left: 50px; width: 100px; height: 200px; -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); }'
+ '</style>'
var $styles = $(styles).appendTo('head')
var $element = $('<div id="target" title="1"/>').appendTo('#qunit-fixture')
$element
.on('shown.bs.tooltip', function () {
var offset = $('.tooltip').offset()
$styles.remove()
assert.ok(Math.abs(offset.left - 88) <= 1, 'tooltip has correct horizontal location')
assert.ok(Math.abs(offset.top - 126) <= 1, 'tooltip has correct vertical location')
$element.bootstrapTooltip('hide')
done()
})
.bootstrapTooltip({
trigger: 'manual'
})
$element.bootstrapTooltip('show')
})
QUnit.test('should do nothing when an attempt is made to hide an uninitialized tooltip', function (assert) {
assert.expect(1)

View File

@ -58,9 +58,67 @@
</div>
</li>
</ul>
</div>
<div class="row">
<div class="col-sm-12 mt-4">
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary">Dropup split</button>
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">Dropup split</span>
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropup</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
This dropdown's menu is right-aligned
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
</div>
<div class="col-sm-12 mt-4">
<div class="btn-group dropup" role="group">
<a href="#" class="btn btn-secondary">Dropup split align right</a>
<button type="button" id="dropdown-page-subheader-button-3" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">Product actions</span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here with a long text</button>
</div>
</div>
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropup align right</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here with a long text</button>
</div>
</div>
</div>
</div>
</div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/dropdown.js"></script>
<script src="../../dist/collapse.js"></script>

View File

@ -170,7 +170,7 @@
</div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/tether.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/modal.js"></script>
<script src="../../dist/collapse.js"></script>

View File

@ -10,7 +10,11 @@
<div class="container">
<h1>Popover <small>Bootstrap Visual Test</small></h1>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="auto" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on auto
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Default placement was on top but not enough place">
Popover on top
</button>
@ -29,7 +33,7 @@
</div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/tether.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/tooltip.js"></script>
<script src="../../dist/popover.js"></script>

View File

@ -87,6 +87,7 @@
</div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/scrollspy.js"></script>
<script src="../../dist/dropdown.js"></script>

View File

@ -5,6 +5,19 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
<title>Tooltip</title>
<style>
#target {
border: 1px solid;
width: 100px;
height: 50px;
border: 1px solid;
margin-left: 50px;
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
margin-top: 100px;
}
</style>
</head>
<body>
<div class="container">
@ -15,6 +28,9 @@
<hr>
<p>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="auto" title="Tooltip on auto">
Tooltip on auto
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
@ -30,17 +46,25 @@
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
<svg width="30" height="20">
<circle cx="15" cy="10" r="10" fill="#62448F" data-toggle="tooltip" data-placement="top" title="Tooltip on SVG" />
</svg>
</p>
<div id="target" title="Test tooltip on transformed element"></div>
</div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/tether.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/tooltip.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
$('#target').tooltip({
placement : 'top',
trigger : 'manual'
}).tooltip('show')
})
</script>
</body>

View File

@ -71,7 +71,7 @@
"license": "MIT",
"dependencies": {
"jquery": ">=1.9.1",
"tether": "^1.4.0"
"popper.js": "^1.9.9"
},
"devDependencies": {
"autoprefixer": "^6.7.7",

View File

@ -23,6 +23,8 @@
}
}
// Allow for dropdowns to go bottom up (aka, dropup-menu)
// Just add .dropup after the standard .dropdown class and you're set.
.dropup {
.dropdown-toggle {
&::after {
@ -100,29 +102,14 @@
// Open state for the dropdown
.show {
// Show the menu
> .dropdown-menu {
display: block;
}
// Remove the outline when :focus is triggered
> a {
outline: 0;
}
}
// Menu positioning
//
// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
// menu with the parent.
.dropdown-menu-right {
right: 0;
left: auto; // Reset the default from `.dropdown-menu`
}
.dropdown-menu-left {
right: auto;
left: 0;
.dropdown-menu.show {
display: block;
}
// Dropdown section headers
@ -134,16 +121,3 @@
color: $dropdown-header-color;
white-space: nowrap; // as with > li > a
}
// Allow for dropdowns to go bottom up (aka, dropup-menu)
//
// Just add .dropup after the standard .dropdown class and you're set.
.dropup {
// Different positioning for bottom up menu
.dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: $dropdown-margin-top;
}
}

View File

@ -75,6 +75,12 @@
padding-right: 0;
padding-left: 0;
}
.dropdown-menu {
position: static !important;
float: none;
transform: unset !important;
}
}
@ -136,13 +142,6 @@
&#{$infix} {
@include media-breakpoint-down($breakpoint) {
.navbar-nav {
.dropdown-menu {
position: static;
float: none;
}
}
> .container,
> .container-fluid {
padding-right: 0;
@ -159,7 +158,8 @@
flex-direction: row;
.dropdown-menu {
position: absolute;
position: absolute !important;
top: 100% !important;
}
.nav-link {
@ -230,7 +230,7 @@
}
.navbar-toggler-icon {
background-image: $navbar-light-toggler-bg;
background-image: $navbar-light-toggler-icon-bg;
}
.navbar-text {
@ -275,7 +275,7 @@
}
.navbar-toggler-icon {
background-image: $navbar-inverse-toggler-bg;
background-image: $navbar-inverse-toggler-icon-bg;
}
.navbar-text {

View File

@ -18,74 +18,105 @@
@include border-radius($border-radius-lg);
@include box-shadow($popover-box-shadow);
// Arrows
//
// .arrow is outer, .arrow::after is inner
.arrow {
position: absolute;
display: block;
width: $popover-arrow-width;
height: $popover-arrow-height;
}
.arrow::before,
.arrow::after {
position: absolute;
display: block;
border-color: transparent;
border-style: solid;
}
.arrow::before {
content: "";
border-width: $popover-arrow-outer-width;
}
.arrow::after {
content: "";
border-width: $popover-arrow-outer-width;
}
// Popover directions
&.popover-top,
&.bs-tether-element-attached-bottom {
margin-top: -$popover-arrow-width;
&.bs-popover-top {
margin-bottom: $popover-arrow-width;
&::before,
&::after {
left: 50%;
.arrow {
bottom: 0;
}
.arrow::before,
.arrow::after {
border-bottom-width: 0;
}
&::before {
.arrow::before {
bottom: -$popover-arrow-outer-width;
margin-left: -$popover-arrow-outer-width;
margin-left: -($popover-arrow-outer-width - 5);
border-top-color: $popover-arrow-outer-color;
}
&::after {
.arrow::after {
bottom: -($popover-arrow-outer-width - 1);
margin-left: -$popover-arrow-width;
margin-left: -($popover-arrow-outer-width - 5);
border-top-color: $popover-arrow-color;
}
}
&.popover-right,
&.bs-tether-element-attached-left {
&.bs-popover-right {
margin-left: $popover-arrow-width;
&::before,
&::after {
top: 50%;
.arrow {
left: 0;
}
.arrow::before,
.arrow::after {
margin-top: -($popover-arrow-outer-width - 3);
border-left-width: 0;
}
&::before {
.arrow::before {
left: -$popover-arrow-outer-width;
margin-top: -$popover-arrow-outer-width;
border-right-color: $popover-arrow-outer-color;
}
&::after {
.arrow::after {
left: -($popover-arrow-outer-width - 1);
margin-top: -($popover-arrow-outer-width - 1);
border-right-color: $popover-arrow-color;
}
}
&.popover-bottom,
&.bs-tether-element-attached-top {
&.bs-popover-bottom {
margin-top: $popover-arrow-width;
&::before,
&::after {
left: 50%;
.arrow {
top: 0;
}
.arrow::before,
.arrow::after {
margin-left: -($popover-arrow-width - 3);
border-top-width: 0;
}
&::before {
.arrow::before {
top: -$popover-arrow-outer-width;
margin-left: -$popover-arrow-outer-width;
border-bottom-color: $popover-arrow-outer-color;
}
&::after {
.arrow::after {
top: -($popover-arrow-outer-width - 1);
margin-left: -$popover-arrow-width;
border-bottom-color: $popover-arrow-color;
}
@ -102,28 +133,43 @@
}
}
&.popover-left,
&.bs-tether-element-attached-right {
margin-left: -$popover-arrow-width;
&.bs-popover-left {
margin-right: $popover-arrow-width;
&::before,
&::after {
top: 50%;
.arrow {
right: 0;
}
.arrow::before,
.arrow::after {
margin-top: -($popover-arrow-outer-width - 3);
border-right-width: 0;
}
&::before {
.arrow::before {
right: -$popover-arrow-outer-width;
margin-top: -$popover-arrow-outer-width;
border-left-color: $popover-arrow-outer-color;
}
&::after {
.arrow::after {
right: -($popover-arrow-outer-width - 1);
margin-top: -($popover-arrow-outer-width - 1);
border-left-color: $popover-arrow-color;
}
}
&.bs-popover-auto {
&[x-placement^="top"] {
@extend .bs-popover-top;
}
&[x-placement^="right"] {
@extend .bs-popover-right;
}
&[x-placement^="bottom"] {
@extend .bs-popover-bottom;
}
&[x-placement^="left"] {
@extend .bs-popover-left;
}
}
}
@ -147,27 +193,3 @@
padding: $popover-content-padding-y $popover-content-padding-x;
color: $popover-content-color;
}
// Arrows
//
// .popover-arrow is outer, .popover-arrow::after is inner
.popover::before,
.popover::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover::before {
content: "";
border-width: $popover-arrow-outer-width;
}
.popover::after {
content: "";
border-width: $popover-arrow-width;
}

View File

@ -11,6 +11,7 @@
text-align: center;
background-color: $progress-bg;
@include border-radius($progress-border-radius);
@include box-shadow($progress-box-shadow);
}
.progress-bar {

View File

@ -3,6 +3,7 @@
position: absolute;
z-index: $zindex-tooltip;
display: block;
margin: $tooltip-margin;
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
@ -13,62 +14,86 @@
&.show { opacity: $tooltip-opacity; }
&.tooltip-top,
&.bs-tether-element-attached-bottom {
padding: $tooltip-arrow-width 0;
margin-top: -$tooltip-margin;
.arrow {
position: absolute;
display: block;
width: $tooltip-arrow-width;
height: $tooltip-arrow-height;
}
.tooltip-inner::before {
&.bs-tooltip-top {
padding: $tooltip-arrow-width 0;
.arrow {
bottom: 0;
left: 50%;
margin-left: -$tooltip-arrow-width;
}
.arrow::before {
margin-left: -($tooltip-arrow-width - 2);
content: "";
border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
border-top-color: $tooltip-arrow-color;
}
}
&.tooltip-right,
&.bs-tether-element-attached-left {
&.bs-tooltip-right {
padding: 0 $tooltip-arrow-width;
margin-left: $tooltip-margin;
.tooltip-inner::before {
top: 50%;
.arrow {
left: 0;
margin-top: -$tooltip-arrow-width;
}
.arrow::before {
margin-top: -($tooltip-arrow-width - 2);
content: "";
border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
border-right-color: $tooltip-arrow-color;
}
}
&.tooltip-bottom,
&.bs-tether-element-attached-top {
&.bs-tooltip-bottom {
padding: $tooltip-arrow-width 0;
margin-top: $tooltip-margin;
.tooltip-inner::before {
.arrow {
top: 0;
left: 50%;
margin-left: -$tooltip-arrow-width;
}
.arrow::before {
margin-left: -($tooltip-arrow-width - 2);
content: "";
border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
border-bottom-color: $tooltip-arrow-color;
}
}
&.tooltip-left,
&.bs-tether-element-attached-right {
&.bs-tooltip-left {
padding: 0 $tooltip-arrow-width;
margin-left: -$tooltip-margin;
.tooltip-inner::before {
top: 50%;
.arrow {
right: 0;
margin-top: -$tooltip-arrow-width;
}
.arrow::before {
right: 0;
margin-top: -($tooltip-arrow-width - 2);
content: "";
border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
border-left-color: $tooltip-arrow-color;
}
}
&.bs-tooltip-auto {
&[x-placement^="top"] {
@extend .bs-tooltip-top;
}
&[x-placement^="right"] {
@extend .bs-tooltip-right;
}
&[x-placement^="bottom"] {
@extend .bs-tooltip-bottom;
}
&[x-placement^="left"] {
@extend .bs-tooltip-left;
}
}
.arrow::before {
position: absolute;
border-color: transparent;
border-style: solid;
}
}
// Wrapper for the tooltip content
@ -79,12 +104,4 @@
text-align: center;
background-color: $tooltip-bg;
@include border-radius($border-radius);
&::before {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
}

View File

@ -329,7 +329,6 @@ $table-head-color: $gray !default;
$table-inverse-bg: $gray-dark !default;
$table-inverse-bg-accent: rgba($white, .05) !default;
$table-inverse-bg-hover: rgba($white, .075) !default;
$table-inverse-bg-active: $table-inverse-bg-hover !default;
$table-inverse-border-color: lighten($gray-dark, 7.5%) !default;
$table-inverse-color: $body-bg !default;
@ -574,11 +573,8 @@ $zindex-tooltip: 1070 !default;
// Navs
$nav-item-margin: .2rem !default;
$nav-item-inline-spacer: 1rem !default;
$nav-link-padding-y: .5rem !default;
$nav-link-padding-x: 1rem !default;
$nav-link-hover-bg: $gray-lighter !default;
$nav-disabled-link-color: $gray-light !default;
$nav-tabs-border-color: #ddd !default;
@ -588,8 +584,6 @@ $nav-tabs-link-hover-border-color: $gray-lighter !default;
$nav-tabs-active-link-color: $gray !default;
$nav-tabs-active-link-bg: $body-bg !default;
$nav-tabs-active-link-border-color: #ddd !default;
$nav-tabs-justified-link-border-color: #ddd !default;
$nav-tabs-justified-active-link-border-color: $body-bg !default;
$nav-pills-border-radius: $border-radius !default;
$nav-pills-active-link-color: $component-active-color !default;
@ -615,14 +609,14 @@ $navbar-inverse-color: rgba($white,.5) !default;
$navbar-inverse-hover-color: rgba($white,.75) !default;
$navbar-inverse-active-color: rgba($white,1) !default;
$navbar-inverse-disabled-color: rgba($white,.25) !default;
$navbar-inverse-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-inverse-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-inverse-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-inverse-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-inverse-toggler-border-color: rgba($white,.1) !default;
$navbar-light-color: rgba($black,.5) !default;
$navbar-light-hover-color: rgba($black,.7) !default;
$navbar-light-active-color: rgba($black,.9) !default;
$navbar-light-disabled-color: rgba($black,.3) !default;
$navbar-light-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-light-toggler-border-color: rgba($black,.1) !default;
// Pagination
@ -711,9 +705,11 @@ $tooltip-bg: $black !default;
$tooltip-opacity: .9 !default;
$tooltip-padding-y: 3px !default;
$tooltip-padding-x: 8px !default;
$tooltip-margin: 3px !default;
$tooltip-margin: 0 !default;
$tooltip-arrow-width: 5px !default;
$tooltip-arrow-height: 5px !default;
$tooltip-arrow-color: $tooltip-bg !default;
@ -736,6 +732,7 @@ $popover-content-padding-y: 9px !default;
$popover-content-padding-x: 14px !default;
$popover-arrow-width: 10px !default;
$popover-arrow-height: 5px !default;
$popover-arrow-color: $popover-bg !default;
$popover-arrow-outer-width: ($popover-arrow-width + 1px) !default;

View File

@ -67,7 +67,11 @@
}
@mixin make-col($size, $columns: $grid-columns) {
width: percentage($size / $columns);
flex: 0 0 percentage($size / $columns);
// Add a `max-width` to ensure content within each column does not blow out
// the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
// do not appear to require this.
max-width: percentage($size / $columns);
}
@mixin make-col-offset($size, $columns: $grid-columns) {