bootstrap-datepicker 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/.gitignore +7 -0
  2. data/.hgignore +3 -0
  3. data/.hgtags +9 -0
  4. data/.travis.yml +4 -0
  5. data/CHANGELOG.md +89 -0
  6. data/CONTRIBUTING.md +40 -0
  7. data/Gemfile +4 -0
  8. data/Gruntfile.js +165 -0
  9. data/LICENSE +202 -0
  10. data/README.md +24 -0
  11. data/Rakefile +1 -0
  12. data/bootstrap-datepicker.gemspec +26 -0
  13. data/bower.json +9 -0
  14. data/build/build.less +67 -0
  15. data/build/build3.less +71 -0
  16. data/build/build_standalone.less +61 -0
  17. data/build/build_standalone3.less +63 -0
  18. data/composer.json +19 -0
  19. data/css/datepicker.css +509 -0
  20. data/css/datepicker3.css +790 -0
  21. data/docs/Makefile +153 -0
  22. data/docs/REAME.md +8 -0
  23. data/docs/_static/demo_head.png +0 -0
  24. data/docs/conf.py +248 -0
  25. data/docs/events.rst +48 -0
  26. data/docs/i18n.rst +28 -0
  27. data/docs/index.rst +122 -0
  28. data/docs/keyboard.rst +30 -0
  29. data/docs/make.bat +190 -0
  30. data/docs/markup.rst +50 -0
  31. data/docs/methods.rst +156 -0
  32. data/docs/options.rst +191 -0
  33. data/js/bootstrap-datepicker.js +1609 -0
  34. data/js/locales/bootstrap-datepicker.ar.js +15 -0
  35. data/js/locales/bootstrap-datepicker.bg.js +14 -0
  36. data/js/locales/bootstrap-datepicker.ca.js +14 -0
  37. data/js/locales/bootstrap-datepicker.cs.js +15 -0
  38. data/js/locales/bootstrap-datepicker.cy.js +14 -0
  39. data/js/locales/bootstrap-datepicker.da.js +15 -0
  40. data/js/locales/bootstrap-datepicker.de.js +17 -0
  41. data/js/locales/bootstrap-datepicker.el.js +13 -0
  42. data/js/locales/bootstrap-datepicker.es.js +14 -0
  43. data/js/locales/bootstrap-datepicker.et.js +18 -0
  44. data/js/locales/bootstrap-datepicker.fa.js +17 -0
  45. data/js/locales/bootstrap-datepicker.fi.js +16 -0
  46. data/js/locales/bootstrap-datepicker.fr.js +17 -0
  47. data/js/locales/bootstrap-datepicker.gl.js +11 -0
  48. data/js/locales/bootstrap-datepicker.he.js +15 -0
  49. data/js/locales/bootstrap-datepicker.hr.js +13 -0
  50. data/js/locales/bootstrap-datepicker.hu.js +16 -0
  51. data/js/locales/bootstrap-datepicker.id.js +15 -0
  52. data/js/locales/bootstrap-datepicker.is.js +14 -0
  53. data/js/locales/bootstrap-datepicker.it.js +16 -0
  54. data/js/locales/bootstrap-datepicker.ja.js +15 -0
  55. data/js/locales/bootstrap-datepicker.ka.js +17 -0
  56. data/js/locales/bootstrap-datepicker.kk.js +15 -0
  57. data/js/locales/bootstrap-datepicker.kr.js +13 -0
  58. data/js/locales/bootstrap-datepicker.lt.js +16 -0
  59. data/js/locales/bootstrap-datepicker.lv.js +16 -0
  60. data/js/locales/bootstrap-datepicker.mk.js +15 -0
  61. data/js/locales/bootstrap-datepicker.ms.js +14 -0
  62. data/js/locales/bootstrap-datepicker.nb.js +14 -0
  63. data/js/locales/bootstrap-datepicker.nl-BE.js +17 -0
  64. data/js/locales/bootstrap-datepicker.nl.js +14 -0
  65. data/js/locales/bootstrap-datepicker.no.js +16 -0
  66. data/js/locales/bootstrap-datepicker.pl.js +15 -0
  67. data/js/locales/bootstrap-datepicker.pt-BR.js +15 -0
  68. data/js/locales/bootstrap-datepicker.pt.js +16 -0
  69. data/js/locales/bootstrap-datepicker.ro.js +15 -0
  70. data/js/locales/bootstrap-datepicker.rs-latin.js +14 -0
  71. data/js/locales/bootstrap-datepicker.rs.js +14 -0
  72. data/js/locales/bootstrap-datepicker.ru.js +15 -0
  73. data/js/locales/bootstrap-datepicker.sk.js +15 -0
  74. data/js/locales/bootstrap-datepicker.sl.js +14 -0
  75. data/js/locales/bootstrap-datepicker.sq.js +15 -0
  76. data/js/locales/bootstrap-datepicker.sv.js +16 -0
  77. data/js/locales/bootstrap-datepicker.sw.js +15 -0
  78. data/js/locales/bootstrap-datepicker.th.js +14 -0
  79. data/js/locales/bootstrap-datepicker.tr.js +16 -0
  80. data/js/locales/bootstrap-datepicker.ua.js +15 -0
  81. data/js/locales/bootstrap-datepicker.uk.js +14 -0
  82. data/js/locales/bootstrap-datepicker.vi.js +16 -0
  83. data/js/locales/bootstrap-datepicker.zh-CN.js +16 -0
  84. data/js/locales/bootstrap-datepicker.zh-TW.js +17 -0
  85. data/less/datepicker.less +265 -0
  86. data/less/datepicker3.less +252 -0
  87. data/lib/bootstrap-datepicker.rb +11 -0
  88. data/lib/bootstrap-datepicker/version.rb +9 -0
  89. data/package.json +32 -0
  90. data/sass/build_standalone-sass.scss +70 -0
  91. data/sass/datepicker.scss +270 -0
  92. data/test/Readme.md +9 -0
  93. data/test/less_test.js +19 -0
  94. data/test/scss_test.js +19 -0
  95. data/test/support/less.patch +4 -0
  96. data/test/support/scss.patch +493 -0
  97. data/tests/README.md +55 -0
  98. data/tests/_coverage.html +26 -0
  99. data/tests/assets/coverage.js +48 -0
  100. data/tests/assets/jquery-1.7.1.min.js +4 -0
  101. data/tests/assets/mock.js +26 -0
  102. data/tests/assets/qunit-logging.js +29 -0
  103. data/tests/assets/qunit.css +235 -0
  104. data/tests/assets/qunit.js +1669 -0
  105. data/tests/assets/utils.js +21 -0
  106. data/tests/run-qunit.js +157 -0
  107. data/tests/suites/calendar-weeks.js +48 -0
  108. data/tests/suites/component.js +202 -0
  109. data/tests/suites/data-api.js +114 -0
  110. data/tests/suites/events.js +306 -0
  111. data/tests/suites/formats.js +235 -0
  112. data/tests/suites/inline.js +28 -0
  113. data/tests/suites/keyboard_navigation/2011.js +92 -0
  114. data/tests/suites/keyboard_navigation/2012.js +468 -0
  115. data/tests/suites/keyboard_navigation/all.js +26 -0
  116. data/tests/suites/methods.js +78 -0
  117. data/tests/suites/mouse_navigation/2011.js +66 -0
  118. data/tests/suites/mouse_navigation/2012.js +251 -0
  119. data/tests/suites/mouse_navigation/all.js +33 -0
  120. data/tests/suites/noconflict.js +20 -0
  121. data/tests/suites/options.js +648 -0
  122. data/tests/tests.html +50 -0
  123. metadata +240 -0
@@ -0,0 +1,7 @@
1
+ instrumented/
2
+ tests/coverage.html
3
+ docs/_build
4
+ .sass-cache
5
+ node_modules
6
+ Gemfile.lock
7
+ test/output/*
@@ -0,0 +1,3 @@
1
+ instrumented/
2
+ tests/coverage.html
3
+ docs/_build
data/.hgtags ADDED
@@ -0,0 +1,9 @@
1
+ b965e03abfcb10d66c8dad96d54d6f8e1c5d8501 v1.0.0
2
+ 7a490672b362af7640bbeb68553a0e0a5a95cb9e v1.0.1
3
+ 9a730557f14d79c2ce2d28eacb24bdf52ac2e042 1.0.2-rc.1
4
+ 62604d506e5ba9d85ee6c2d86723b9b3d817e7bd 1.0.2-rc.1.1
5
+ f6211e251c021331decc16bfbcf25577dd354ef4 1.0.2-rc.2
6
+ 493d2332f0cb7f2dd308c442920da86063ff2e0f 1.0.2
7
+ 77a6755dc3df3ada745024648535562587fab630 1.1.0
8
+ fe9e4106def42741adba1606245ab0eab32acb55 1.1.1
9
+ e37ab4f7d0d30a45ee80a7019fd2bcf8c1765de7 1.1.2
@@ -0,0 +1,4 @@
1
+ before_script:
2
+ - cd ./tests
3
+ - echo "new Date().toString();" | phantomjs
4
+ script: phantomjs run-qunit.js tests.html
@@ -0,0 +1,89 @@
1
+ Changelog
2
+ =========
3
+
4
+ 1.1.2
5
+ ----------
6
+
7
+ Clicking the clear button now triggers the input's `change` and datepicker's `changeDate` events.
8
+ Fixed a bug that broke the event-attached `format` function.
9
+
10
+
11
+ 1.1.1
12
+ ----------
13
+
14
+ Fixes a bug when setting startDate or endDate during initialization.
15
+
16
+
17
+ 1.1.0
18
+ ----------
19
+
20
+ New features:
21
+ * Date range picker.
22
+ * Data API / noConflict.
23
+ * `getDate` and `setDate` methods.
24
+ * `format` method for events; this allows you to easily format the `date` associated with the event.
25
+ * New options:
26
+ * `beforeShowDay` option: a dev-provided function that can enable/disable dates, add css classes, and add tooltips.
27
+ * `clearBtn`, a button for resetting the picker.
28
+
29
+ Internal changes:
30
+ * Cleaner and more reliable method for extracting options from all potential sources (defaults, locale overrides, data-attrs, and instantiation options, in that order). This also populates `$.fn.datepicker.defaults` with the default values, and uses this hash as the actual source of defaults, meaning you can globally change the default value for a given option.
31
+
32
+ Bugs squashed:
33
+ * Resolved a conflict with bootstrap's native `.switch` class.
34
+ * Fixed a bug with components where they would be stuck with a stale value when editing the value manually.
35
+ * The `date` attributes on events are now local dates instead of internal UTC dates.
36
+ * Separate `Date` objects for internal selected and view date references.
37
+ * Clicking multiple times inside inputs no longer hides the picker.
38
+
39
+ Minor improvements:
40
+ * Better text color for highlighted "today" date.
41
+ * Last year in decade view now marked as "new" instead of "old".
42
+ * Formats now properly handle trailing separators.
43
+
44
+ Locale changes:
45
+ * Added Albanian, Estonian, and Macedonian
46
+ * Added `weekStart` for Russian
47
+ * Added `weekStart` and `format` for Finnish
48
+
49
+ Potentially backward-incompatible changes:
50
+ * Options revamp:
51
+ * This fixes bugs in the correlation of some data-attrs to their associated option names. If you use `data-date-weekstart`, `data-date-startdate`, or `data-date-enddate`, you should update these to `data-date-week-start`, `data-date-start-date`, or `data-date-end-date`, respectively.
52
+ * All options for datepicker are now properties on the datepicker's `o` property; options are no longer stored on the Datepicker instance itself. If you have code that accesses options stored on the datepicker instance (eg, `datepicker.format`), you will need to update it to access those options via the `o` property (eg, `datepicker.o.format`). "Raw" options are available via the `_o` property.
53
+
54
+ 1.0.2
55
+ ----------
56
+
57
+ Small optimizations release
58
+
59
+ * Reduced the number of times `update` is called on initialization.
60
+ * Datepicker now detaches the picker dropdown when it is hidden, and appends it when shown. This removes the picker from the DOM when it is not in use.
61
+ * No longer listens to document/window events unless picker is visible.
62
+
63
+ v1.0.1
64
+ ------
65
+
66
+ * Support for [Bower](http://twitter.github.com/bower/)
67
+ * Component pickers are now aligned under the input, not the add-on element.
68
+ * Japanese locale now has "today" and "format".
69
+ * "remove" method removes `.data().date` if the datepicker is on a non-input.
70
+ * Events on initialized elements are no longer blocked from bubbling up the DOM (jQuery.live et al can now catch the events).
71
+ * Component triggers now include `.btn` in addition to `.add-on`.
72
+ * Updates to README contents.
73
+
74
+ v1.0.0
75
+ ------
76
+
77
+ Initial release:
78
+
79
+ * format option
80
+ * weekStart option
81
+ * calendarWeeks option
82
+ * startDate / endDate options
83
+ * daysOfWeekDisabled option
84
+ * autoclose option
85
+ * startView / mnViewMode options
86
+ * todayBtn / todayHighlight options
87
+ * keyboardNavigation option
88
+ * language option
89
+ * forceParse option
@@ -0,0 +1,40 @@
1
+ # Contributing
2
+
3
+ ## Support requests
4
+
5
+ The issue tracker is not the place for support requests. If you get stuck with bootstrap-datepicker, it's very likely that the fine folks at [StackOverflow](http://stackoverflow.com/) will be able to help you; simply describe the problem you're having and provide them a link to the repo (so they know what code you're using). Another option is to post to the [bootstrap-datepicker google group](https://groups.google.com/group/bootstrap-datepicker).
6
+
7
+ ## Issues
8
+
9
+ If you've found a bug in bootstrap-datepicker, we want to know about it! However, please keep the following in mind:
10
+
11
+ * This is not the bootstrap-datepicker from [eyecon.ro](http://www.eyecon.ro/bootstrap-datepicker/). Stefan provided the initial code for bootstrap-datepicker, but this repo is divergent from his codebase. Please make sure you're using either the latest tagged version or the latest master from https://github.com/eternicode/bootstrap-datepicker/ .
12
+ * A working example of the bug you've found is *much* easier to work with than a description alone. If possible, please provide a link to a demonstration of the bug, perhaps using http://jsfiddle.net/ .
13
+ * Finally, it's possible someone else has already reported the same bug you have. Please search the issue tracker for similar issues before posting your own. Thanks!
14
+
15
+ ## Pull Requests
16
+
17
+ Patches welcome!
18
+
19
+ For all cases, you should have your own fork of the repo.
20
+
21
+ To submit a pull request for a **new feature**:
22
+
23
+ 1. Run the tests. Every pull request for a new feature should have an accompanying unit test and docs changes. See the README in the `tests/` and `docs/` directories for details.
24
+ 2. Create a new branch off of the `master` branch for your feature. This is particularly helpful when you want to submit multiple pull requests.
25
+ 3. Add a test (or multiple tests) for your feature. Again, see `tests/README.md`.
26
+ 4. Add your new feature, making the test pass.
27
+ 5. Push to your fork and submit the pull request!
28
+
29
+ To submit a **bug fix**:
30
+
31
+ 1. Create a new branch off of the `master` branch.
32
+ 2. Add a test that demonstrates the bug.
33
+ 3. Make the test pass.
34
+ 4. Push to your fork and submit the pull request!
35
+
36
+ To submit a **documentation fix**:
37
+
38
+ 1. Create a new branch off of the `master` branch.
39
+ 2. Add your documentation fixes (no tests required).
40
+ 3. Push to your fork and submit the pull request!
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in bootstrap-datepicker.gemspec
4
+ gemspec
@@ -0,0 +1,165 @@
1
+ var _ = require('lodash');
2
+
3
+ module.exports = function(grunt) {
4
+ // load all grunt tasks
5
+ require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
6
+
7
+ // Project configuration.
8
+ grunt.initConfig({
9
+ nodeunit: {
10
+ all: ['test/*_test.js']
11
+ },
12
+
13
+ less: {
14
+ options: {
15
+ verbose: true
16
+ },
17
+ test: {
18
+ files: {
19
+ "test/output/datepicker-less.css": "build/build_standalone.less"
20
+ }
21
+ },
22
+ build: {
23
+ files: {
24
+ "css/datepicker.css": "build/build_standalone.less"
25
+ }
26
+ }
27
+ },
28
+
29
+ compass: {
30
+ options: {
31
+ outputStyle: 'expanded',
32
+ require: 'bootstrap-sass',
33
+ noLineComments: true,
34
+ specify: '**/*-sass.scss'
35
+ },
36
+ test: {
37
+ options: {
38
+ sassDir: 'sass/',
39
+ cssDir: 'test/output/',
40
+ }
41
+ },
42
+ build: {
43
+ options: {
44
+ sassDir: 'sass/',
45
+ cssDir: 'css/',
46
+ }
47
+ }
48
+ },
49
+
50
+ copy: {
51
+ sass: {
52
+ expand: true,
53
+ cwd: 'less',
54
+ dest: 'sass/',
55
+ src: 'datepicker.less',
56
+ ext: '.scss'
57
+ },
58
+ build: {
59
+ expand: true,
60
+ cwd: 'build',
61
+ dest: 'sass/',
62
+ src: 'build_standalone.less',
63
+ ext: '-sass.scss'
64
+ }
65
+ },
66
+
67
+ // Just enough Less to Sass conversion to work.
68
+ sed: {
69
+ sassifyPrepend: {
70
+ path: './sass/',
71
+ recursive: true,
72
+ pattern: / \*\/\n/,
73
+ replacement: function(comment){
74
+ return comment + '\n' + '@import "bootstrap/variables";\n@import "bootstrap/mixins";\n';
75
+ },
76
+ },
77
+ sassifyDefault: {
78
+ path: './sass/',
79
+ recursive: true,
80
+ pattern: /([\s]*@[\w-]+\: *[^;]+);/g,
81
+ replacement: function(string, assignment){
82
+ return assignment + ' !default;\n';
83
+ },
84
+ },
85
+ sassifyVariable: {
86
+ path: './sass/',
87
+ recursive: true,
88
+ pattern: /@([\w-]+)/g,
89
+ replacement: function(string, variable){
90
+ return _.contains(['import', 'extend', 'include', 'mixin', 'function', 'return'], variable) ? '@'+variable : '$'+variable;
91
+ },
92
+ },
93
+ sassifyInclude: {
94
+ path: './sass/',
95
+ recursive: true,
96
+ pattern: /\.([\w-]+\([\w- \.,\(\)\$]*\);)/g,
97
+ replacement: function(string, mixin){
98
+ return '@include '+mixin;
99
+ },
100
+ },
101
+ sassifyMixin: {
102
+ path: './sass/',
103
+ recursive: true,
104
+ pattern: /\.([\w-]+\([\w- \.,\(\)\$]*\) *{)/g,
105
+ replacement: function(string, mixin){
106
+ console.log(mixin);
107
+ return '@mixin '+mixin;
108
+ },
109
+ },
110
+ sassifyInterpolation: {
111
+ path: './sass/',
112
+ recursive: true,
113
+ pattern: /~"([^"]+)"/g,
114
+ replacement: function(string, interpolation){
115
+ return interpolation.replace(/@{/g, '#{$');
116
+ },
117
+ },
118
+ sassifyImport: {
119
+ path: './sass/',
120
+ recursive: true,
121
+ pattern: /@import "([\w-_\.]+)";/g,
122
+ replacement: function(string, file){
123
+ var aliases = {
124
+ 'build.less': 'datepicker'
125
+ };
126
+ return '@import "' + (aliases[file] || file) + '";';
127
+ },
128
+ },
129
+ sassifyFunction: {
130
+ path: './sass/',
131
+ recursive: true,
132
+ pattern: /([\w-]+)\(/g,
133
+ replacement: function(string, method){
134
+ var aliases = {
135
+ argb: 'ie-hex-str',
136
+ fadein: 'percent_opacify',
137
+ spin: 'adjust-hue',
138
+ e: 'unquote'
139
+ };
140
+ return (aliases[method] || method) + '(';
141
+ },
142
+ }
143
+ },
144
+
145
+ jshint: {
146
+ all: ['Gruntfile.js', '*.json', 'js/**/*.js', '!**/*.min.js']
147
+ },
148
+
149
+ bump: {
150
+ options: {
151
+ files: ['package.json', 'bower.json', 'lib/bootstrap-datepicker/version.rb'],
152
+ commitFiles: ['-a'],
153
+ push: false
154
+ }
155
+ }
156
+
157
+ });
158
+
159
+ grunt.registerTask('sassify', ['copy', 'sed']);
160
+ grunt.registerTask('test', ['less:test', 'compass:test', 'nodeunit']);
161
+
162
+ // The official build is from less. compass:build would build the css from sass.
163
+ grunt.registerTask('build', ['less:build']);
164
+
165
+ };
data/LICENSE ADDED
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.