material-sass 1.4.1 → 4.0.0.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Rakefile +61 -0
  4. data/app/assets/fonts/{MaterialIcons-Regular.eot → material-icons/MaterialIcons-Regular.eot} +0 -0
  5. data/app/assets/fonts/{MaterialIcons-Regular.ijmap → material-icons/MaterialIcons-Regular.ijmap} +0 -0
  6. data/app/assets/fonts/{MaterialIcons-Regular.svg → material-icons/MaterialIcons-Regular.svg} +0 -0
  7. data/app/assets/fonts/{MaterialIcons-Regular.ttf → material-icons/MaterialIcons-Regular.ttf} +0 -0
  8. data/app/assets/fonts/{MaterialIcons-Regular.woff → material-icons/MaterialIcons-Regular.woff} +0 -0
  9. data/app/assets/fonts/{MaterialIcons-Regular.woff2 → material-icons/MaterialIcons-Regular.woff2} +0 -0
  10. data/app/assets/fonts/{README.md → material-icons/README.md} +0 -0
  11. data/app/assets/fonts/{codepoints → material-icons/codepoints} +0 -0
  12. data/app/assets/fonts/roboto/Roboto-Bold.eot +0 -0
  13. data/app/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  14. data/app/assets/fonts/roboto/Roboto-Bold.woff +0 -0
  15. data/app/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
  16. data/app/assets/fonts/roboto/Roboto-Light.eot +0 -0
  17. data/app/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  18. data/app/assets/fonts/roboto/Roboto-Light.woff +0 -0
  19. data/app/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
  20. data/app/assets/fonts/roboto/Roboto-Medium.eot +0 -0
  21. data/app/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  22. data/app/assets/fonts/roboto/Roboto-Medium.woff +0 -0
  23. data/app/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
  24. data/app/assets/fonts/roboto/Roboto-Regular.eot +0 -0
  25. data/app/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  26. data/app/assets/fonts/roboto/Roboto-Regular.woff +0 -0
  27. data/app/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
  28. data/app/assets/fonts/roboto/Roboto-Thin.eot +0 -0
  29. data/app/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  30. data/app/assets/fonts/roboto/Roboto-Thin.woff +0 -0
  31. data/app/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
  32. data/app/assets/javascripts/material.js +739 -798
  33. data/app/assets/javascripts/material/addons-materialise/pickadate.js +139 -0
  34. data/app/assets/javascripts/material/addons-materialise/textarea-autosize.js +9 -0
  35. data/app/assets/javascripts/material/addons-materialise/wave.js +12 -0
  36. data/app/assets/javascripts/material/addons/pickadate.js +7 -0
  37. data/app/assets/javascripts/material/addons/textarea-autosize.js +5 -0
  38. data/app/assets/javascripts/material/{wave.js → addons/wave.js} +0 -10
  39. data/app/assets/javascripts/material/src/floating-label.js +91 -0
  40. data/app/assets/javascripts/material/src/navdrawer.js +352 -0
  41. data/app/assets/javascripts/material/src/tab-switch.js +136 -0
  42. data/app/assets/javascripts/material/src/util.js +138 -0
  43. data/app/assets/stylesheets/material.min.css +2 -2
  44. data/app/assets/stylesheets/material.scss +1 -1
  45. data/app/assets/stylesheets/material/_mixins.scss +21 -0
  46. data/app/assets/stylesheets/material/_utilities.scss +15 -0
  47. data/app/assets/stylesheets/material/_variables.scss +25 -0
  48. data/app/assets/stylesheets/material/base/_base.scss +482 -0
  49. data/app/assets/stylesheets/material/base/_grid.scss +28 -40
  50. data/app/assets/stylesheets/material/base/_typography.scss +208 -0
  51. data/app/assets/stylesheets/material/bootstrap/_alert.scss +55 -0
  52. data/app/assets/stylesheets/material/bootstrap/_animation.scss +26 -0
  53. data/app/assets/stylesheets/material/bootstrap/_breadcrumb.scss +39 -0
  54. data/app/assets/stylesheets/material/bootstrap/_button-group.scss +155 -0
  55. data/app/assets/stylesheets/material/bootstrap/_carousel.scss +234 -0
  56. data/app/assets/stylesheets/material/bootstrap/_close.scss +31 -0
  57. data/app/assets/stylesheets/material/bootstrap/_code.scss +50 -0
  58. data/app/assets/stylesheets/material/bootstrap/_custom-form.scss +69 -0
  59. data/app/assets/stylesheets/material/bootstrap/_form.scss +116 -0
  60. data/app/assets/stylesheets/material/bootstrap/_image.scss +25 -0
  61. data/app/assets/stylesheets/material/bootstrap/_jumbotron.scss +12 -0
  62. data/app/assets/stylesheets/material/bootstrap/_media.scss +69 -0
  63. data/app/assets/stylesheets/material/bootstrap/_nav.scss +118 -0
  64. data/app/assets/stylesheets/material/bootstrap/_pagination.scss +68 -0
  65. data/app/assets/stylesheets/material/bootstrap/_popover.scss +84 -0
  66. data/app/assets/stylesheets/material/bootstrap/_responsive-embed.scss +37 -0
  67. data/app/assets/stylesheets/material/material.scss +62 -0
  68. data/app/assets/stylesheets/material/material/_button-flat.scss +53 -0
  69. data/app/assets/stylesheets/material/material/_button-float.scss +29 -0
  70. data/app/assets/stylesheets/material/material/_button.scss +241 -0
  71. data/app/assets/stylesheets/material/material/_card.scss +286 -0
  72. data/app/assets/stylesheets/material/material/_chip.scss +93 -0
  73. data/app/assets/stylesheets/material/material/_data-table.scss +138 -0
  74. data/app/assets/stylesheets/material/material/_dialog.scss +147 -0
  75. data/app/assets/stylesheets/material/material/_expansion-panel.scss +292 -0
  76. data/app/assets/stylesheets/material/material/_menu.scss +281 -0
  77. data/app/assets/stylesheets/material/material/_navdrawer.scss +289 -0
  78. data/app/assets/stylesheets/material/material/_picker.scss +272 -0
  79. data/app/assets/stylesheets/material/material/_progress-circular.scss +144 -0
  80. data/app/assets/stylesheets/material/material/_progress.scss +174 -0
  81. data/app/assets/stylesheets/material/material/_selection-control.scss +221 -0
  82. data/app/assets/stylesheets/material/material/_stepper.scss +135 -0
  83. data/app/assets/stylesheets/material/material/_tab.scss +196 -0
  84. data/app/assets/stylesheets/material/material/_text-field-floating-label.scss +51 -0
  85. data/app/assets/stylesheets/material/material/_text-field-input-group.scss +76 -0
  86. data/app/assets/stylesheets/material/material/_text-field-textarea.scss +31 -0
  87. data/app/assets/stylesheets/material/material/_text-field.scss +179 -0
  88. data/app/assets/stylesheets/material/material/_toolbar.scss +516 -0
  89. data/app/assets/stylesheets/material/material/_tooltip.scss +86 -0
  90. data/app/assets/stylesheets/material/mixins/_background-variant.scss +14 -0
  91. data/app/assets/stylesheets/material/mixins/_border-radius.scss +34 -0
  92. data/app/assets/stylesheets/material/mixins/_breakpoint.scss +38 -0
  93. data/app/assets/stylesheets/material/mixins/_clearfix.scss +7 -0
  94. data/app/assets/stylesheets/material/mixins/_form.scss +60 -0
  95. data/app/assets/stylesheets/material/mixins/_grid.scss +149 -0
  96. data/app/assets/stylesheets/material/mixins/_hex-to-rgba.scss +3 -0
  97. data/app/assets/stylesheets/material/mixins/_hover.scss +70 -0
  98. data/app/assets/stylesheets/material/mixins/_image.scss +4 -0
  99. data/app/assets/stylesheets/material/mixins/_list.scss +4 -0
  100. data/app/assets/stylesheets/material/mixins/_nav-divider.scss +6 -0
  101. data/app/assets/stylesheets/material/mixins/_pull.scss +7 -0
  102. data/app/assets/stylesheets/material/mixins/_reset-text.scss +35 -0
  103. data/app/assets/stylesheets/material/mixins/_screenreader.scss +23 -0
  104. data/app/assets/stylesheets/material/mixins/_strip-unit.scss +3 -0
  105. data/app/assets/stylesheets/material/mixins/_tab-focus.scss +5 -0
  106. data/app/assets/stylesheets/material/mixins/_text-emphasis.scss +14 -0
  107. data/app/assets/stylesheets/material/mixins/_text-hide.scss +7 -0
  108. data/app/assets/stylesheets/material/mixins/_text-truncate.scss +5 -0
  109. data/app/assets/stylesheets/material/mixins/_transition.scss +55 -0
  110. data/app/assets/stylesheets/material/mixins/_typography.scss +69 -0
  111. data/app/assets/stylesheets/material/utilities/_align.scss +23 -0
  112. data/app/assets/stylesheets/material/utilities/_background.scss +23 -0
  113. data/app/assets/stylesheets/material/utilities/_border.scss +27 -0
  114. data/app/assets/stylesheets/material/utilities/_clearfix.scss +3 -0
  115. data/app/assets/stylesheets/material/utilities/_display.scss +11 -0
  116. data/app/assets/stylesheets/material/utilities/_float.scss +15 -0
  117. data/app/assets/stylesheets/material/utilities/_material-icons.scss +10 -0
  118. data/app/assets/stylesheets/material/utilities/_screenreader.scss +7 -0
  119. data/app/assets/stylesheets/material/utilities/_spacing.scss +65 -0
  120. data/app/assets/stylesheets/material/utilities/_text.scss +95 -0
  121. data/app/assets/stylesheets/material/utilities/_visibility.scss +50 -0
  122. data/app/assets/stylesheets/material/utilities/_waves.scss +48 -0
  123. data/app/assets/stylesheets/material/variables/_animation.scss +22 -0
  124. data/app/assets/stylesheets/material/variables/_colour.scss +389 -0
  125. data/app/assets/stylesheets/material/variables/_elevation-shadow.scss +84 -0
  126. data/app/assets/stylesheets/material/variables/_grid.scss +32 -0
  127. data/app/assets/stylesheets/material/variables/_spacer.scss +73 -0
  128. data/app/assets/stylesheets/material/variables/_typography.scss +72 -0
  129. data/app/assets/stylesheets/material/variables/_variable-bootstrap.scss +129 -0
  130. data/app/assets/stylesheets/material/variables/_variable-material.scss +434 -0
  131. data/lib/material-sass/engine.rb +3 -2
  132. data/lib/material-sass/version.rb +1 -1
  133. metadata +128 -70
  134. data/app/assets/javascripts/material.min.js +0 -2
  135. data/app/assets/javascripts/material/_.js +0 -6
  136. data/app/assets/javascripts/material/bootstrap.js +0 -6
  137. data/app/assets/javascripts/material/form-floating-label.js +0 -49
  138. data/app/assets/javascripts/material/form-textarea.js +0 -13
  139. data/app/assets/javascripts/material/header.js +0 -12
  140. data/app/assets/javascripts/material/menu.js +0 -200
  141. data/app/assets/javascripts/material/modal.js +0 -12
  142. data/app/assets/javascripts/material/picker.js +0 -141
  143. data/app/assets/javascripts/material/snackbar.js +0 -116
  144. data/app/assets/javascripts/material/tab.js +0 -51
  145. data/app/assets/javascripts/material/tile.js +0 -181
  146. data/app/assets/stylesheets/material/addons/_material-icons.scss +0 -9
  147. data/app/assets/stylesheets/material/addons/_waves.scss +0 -44
  148. data/app/assets/stylesheets/material/addons/material-icons/_core.scss +0 -20
  149. data/app/assets/stylesheets/material/addons/material-icons/_larger.scss +0 -23
  150. data/app/assets/stylesheets/material/addons/material-icons/_path.scss +0 -11
  151. data/app/assets/stylesheets/material/addons/material-icons/_variables.scss +0 -3
  152. data/app/assets/stylesheets/material/base.scss +0 -50
  153. data/app/assets/stylesheets/material/base/_reset.scss +0 -421
  154. data/app/assets/stylesheets/material/components/_avatar.scss +0 -59
  155. data/app/assets/stylesheets/material/components/_breadcrumb.scss +0 -26
  156. data/app/assets/stylesheets/material/components/_button-flat.scss +0 -22
  157. data/app/assets/stylesheets/material/components/_button-float.scss +0 -183
  158. data/app/assets/stylesheets/material/components/_button.scss +0 -81
  159. data/app/assets/stylesheets/material/components/_card.scss +0 -175
  160. data/app/assets/stylesheets/material/components/_code.scss +0 -53
  161. data/app/assets/stylesheets/material/components/_dropdown.scss +0 -99
  162. data/app/assets/stylesheets/material/components/_form-checkbox.scss +0 -161
  163. data/app/assets/stylesheets/material/components/_form-floating-label.scss +0 -64
  164. data/app/assets/stylesheets/material/components/_form-switch.scss +0 -96
  165. data/app/assets/stylesheets/material/components/_form-textarea.scss +0 -4
  166. data/app/assets/stylesheets/material/components/_form.scss +0 -217
  167. data/app/assets/stylesheets/material/components/_label.scss +0 -23
  168. data/app/assets/stylesheets/material/components/_modal.scss +0 -164
  169. data/app/assets/stylesheets/material/components/_nav.scss +0 -53
  170. data/app/assets/stylesheets/material/components/_picker.scss +0 -298
  171. data/app/assets/stylesheets/material/components/_progress-circular.scss +0 -169
  172. data/app/assets/stylesheets/material/components/_progress-loadbar.scss +0 -97
  173. data/app/assets/stylesheets/material/components/_progress.scss +0 -132
  174. data/app/assets/stylesheets/material/components/_snackbar.scss +0 -59
  175. data/app/assets/stylesheets/material/components/_stepper.scss +0 -201
  176. data/app/assets/stylesheets/material/components/_tab.scss +0 -84
  177. data/app/assets/stylesheets/material/components/_table.scss +0 -82
  178. data/app/assets/stylesheets/material/components/_tile.scss +0 -156
  179. data/app/assets/stylesheets/material/elements/_content.scss +0 -42
  180. data/app/assets/stylesheets/material/elements/_header.scss +0 -141
  181. data/app/assets/stylesheets/material/elements/_menu.scss +0 -267
  182. data/app/assets/stylesheets/material/mixin/_grid.scss +0 -78
  183. data/app/assets/stylesheets/material/mixin/_responsive.scss +0 -32
  184. data/app/assets/stylesheets/material/mixin/_utilities.scss +0 -69
  185. data/app/assets/stylesheets/material/utilities/_print.scss +0 -95
  186. data/app/assets/stylesheets/material/utilities/_utilities-responsive.scss +0 -97
  187. data/app/assets/stylesheets/material/utilities/_utilities.scss +0 -393
  188. data/app/assets/stylesheets/material/var/_colours.scss +0 -336
  189. data/app/assets/stylesheets/material/var/_variables.scss +0 -78
@@ -0,0 +1,139 @@
1
+ /*!
2
+ * customise pickadate js for material
3
+ * requires pickadate.js
4
+ */
5
+ +function ($) {
6
+ 'use strict';
7
+
8
+ var Datepicker = function (element, options) {
9
+ this._element = element;
10
+ this._options = options;
11
+ };
12
+
13
+ if (typeof $.fn.pickadate === 'undefined') {
14
+ throw new Error('Material\'s JavaScript requires pickadate.js');
15
+ };
16
+
17
+ Datepicker.DEFAULTS = {
18
+ cancel : 'Cancel',
19
+ closeOnCancel : true,
20
+ closeOnSelect : false,
21
+ container : 'body',
22
+ disable : [],
23
+ firstDay : 0,
24
+ format : 'd/m/yyyy',
25
+ formatSubmit : '',
26
+ max : false,
27
+ min : false,
28
+ monthsFull : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
29
+ monthsShort : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
30
+ ok : 'OK',
31
+ onClose : false,
32
+ onOpen : false,
33
+ onRender : false,
34
+ onSet : false,
35
+ onStart : false,
36
+ onStop : false,
37
+ selectMonths : false,
38
+ selectYears : false,
39
+ today : 'Today',
40
+ weekdaysFull : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
41
+ weekdaysShort : ['S', 'M', 'T', 'W', 'T', 'F', 'S']
42
+ };
43
+
44
+ Datepicker.prototype.display = function (datepickerApi, datepickerRoot, datepickerValue) {
45
+ $('.picker__date-display', datepickerRoot).remove();
46
+
47
+ $('.picker__wrap', datepickerRoot).prepend('<div class="picker__date-display">' +
48
+ '<div class="picker__date-display-top">' +
49
+ '<span class="picker__year-display">' + datepickerApi.get(datepickerValue, 'yyyy') + '</span>' +
50
+ '</div>' +
51
+ '<div class="picker__date-display-bottom">' +
52
+ '<span class="picker__weekday-display">' + datepickerApi.get(datepickerValue, 'dddd') + '</span>' +
53
+ '<span class="picker__day-display">' + datepickerApi.get(datepickerValue, 'd') + '</span>' +
54
+ '<span class="picker__month-display">' + datepickerApi.get(datepickerValue, 'mmm') + '</span>' +
55
+ '</div>' +
56
+ '</div>');
57
+ };
58
+
59
+ Datepicker.prototype.show = function () {
60
+ var that = this;
61
+
62
+ $(this._element).pickadate({
63
+ clear : that._options.cancel,
64
+ close : that._options.ok,
65
+ closeOnClear : that._options.closeOnCancel,
66
+ closeOnSelect : that._options.closeOnSelect,
67
+ container : that._options.container,
68
+ disable : that._options.disable,
69
+ firstDay : that._options.firstDay,
70
+ format : that._options.format,
71
+ formatSubmit : that._options.formatSubmit,
72
+ klass : {
73
+ buttonClear : 'btn btn-flat btn-brand picker__button--clear',
74
+ buttonClose : 'btn btn-flat btn-brand picker__button--close',
75
+ buttonToday : 'btn btn-flat btn-brand picker__button--today',
76
+ navPrev : 'material-icons picker__nav--prev',
77
+ navNext : 'material-icons picker__nav--next',
78
+ },
79
+ max : that._options.max,
80
+ min : that._options.min,
81
+ monthsFull : that._options.monthsFull,
82
+ monthsShort : that._options.monthsShort,
83
+ onClose : that._options.onClose,
84
+ onOpen : that._options.onOpen,
85
+ onRender : that._options.onRender,
86
+ onSet : that._options.onSet,
87
+ onStart : that._options.onStart,
88
+ onStop : that._options.onStop,
89
+ selectMonths : that._options.selectMonths,
90
+ selectYears : that._options.selectYears,
91
+ today : that._options.today,
92
+ weekdaysFull : that._options.weekdaysFull,
93
+ weekdaysShort : that._options.weekdaysShort
94
+ });
95
+
96
+ var datepickerApi = $(this._element).pickadate('picker'),
97
+ datepickerNode = datepickerApi.$node,
98
+ datepickerRoot = datepickerApi.$root;
99
+
100
+ datepickerApi.on({
101
+ close: function () {
102
+ $(document.activeElement).blur();
103
+ },
104
+ open: function () {
105
+ if (!$('.picker__date-display', datepickerRoot).length) {
106
+ that.display(datepickerApi, datepickerRoot, 'highlight');
107
+ };
108
+ },
109
+ set: function () {
110
+ if (datepickerApi.get('select') !== null) {
111
+ that.display(datepickerApi, datepickerRoot, 'select');
112
+ };
113
+ }
114
+ });
115
+ };
116
+
117
+ function Plugin (option) {
118
+ return this.each(function () {
119
+ var data = $(this).data('bs.pickdate');
120
+ var options = $.extend({}, Datepicker.DEFAULTS, $(this).data(), typeof option == 'object' && option);
121
+
122
+ if (!data) {
123
+ $(this).data('bs.pickdate', (data = new Datepicker(this, options)));
124
+ };
125
+
126
+ data.show();
127
+ });
128
+ };
129
+
130
+ var old = $.fn.pickdate;
131
+
132
+ $.fn.pickdate = Plugin;
133
+ $.fn.pickdate.Constructor = Datepicker;
134
+
135
+ $.fn.pickdate.noConflict = function () {
136
+ $.fn.pickdate = old;
137
+ return this;
138
+ };
139
+ }(jQuery);
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * activate textarea-autosize for material
3
+ * requires textarea-autosize.js
4
+ */
5
+ $(function () {
6
+ if ($('.textarea-autosize').length && (typeof $.fn.textareaAutoSize !== 'undefined')) {
7
+ $('.textarea-autosize').textareaAutoSize();
8
+ };
9
+ });
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * activate waves for material
3
+ * requires waves.js
4
+ */
5
+ $(function () {
6
+ if ($('.waves-attach').length && (typeof Waves !== 'undefined')) {
7
+ Waves.attach('.waves-attach');
8
+ Waves.init({
9
+ duration: 300
10
+ });
11
+ };
12
+ });
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * pickadate v3.5.6
3
+ * http://amsul.ca/pickadate.js/
4
+ */
5
+ !function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,m){function n(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",B.component.nodes(w.open),y.box),y.wrap),y.frame),y.holder,'tabindex="-1"')}function o(){z.data(g,B).addClass(y.input).val(z.data("value")?B.get("select",x.format):f.value),x.editable||z.on("focus."+w.id+" click."+w.id,function(a){a.preventDefault(),B.open()}).on("keydown."+w.id,u),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function p(){e(B.$root[0],"hidden",!0)}function q(){B.$holder.on({keydown:u,"focus.toOpen":t,blur:function(){z.removeClass(y.target)},focusin:function(a){B.$root.removeClass(y.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=B.$holder[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),B.$holder[0].focus()))}}).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(y.navDisabled)||b.hasClass(y.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(B.$root[0],e))&&B.$holder[0].focus(),!d&&c.nav?B.set("highlight",B.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?(B.set("select",c.pick),x.closeOnSelect&&B.close(!0)):c.clear?(B.clear(),x.closeOnClear&&B.close(!0)):c.close&&B.close(!0)})}function r(){var b;x.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof x.hiddenPrefix?x.hiddenPrefix:"","string"==typeof x.hiddenSuffix?x.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),B._hidden=a('<input type=hidden name="'+b+'"'+(z.data("value")||f.value?' value="'+B.get("select",x.formatSubmit)+'"':"")+">")[0],z.on("change."+w.id,function(){B._hidden.value=f.value?B.get("select",x.formatSubmit):""})}function s(){v&&l?B.$holder.find("."+y.frame).one("transitionend",function(){B.$holder[0].focus()}):B.$holder[0].focus()}function t(a){a.stopPropagation(),z.addClass(y.target),B.$root.addClass(y.focused),B.open()}function u(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(B.close(!0),!1):void((32==b||c||!w.open&&B.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?B.clear().close():B.open()))}if(!f)return b;var v=!1,w={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},x=i?a.extend(!0,{},i.defaults,m):m||{},y=a.extend({},b.klasses(),x.klass),z=a(f),A=function(){return this.start()},B=A.prototype={constructor:A,$node:z,start:function(){return w&&w.start?B:(w.methods={},w.start=!0,w.open=!1,w.type=f.type,f.autofocus=f==h(),f.readOnly=!x.editable,f.id=f.id||w.id,"text"!=f.type&&(f.type="text"),B.component=new i(B,x),B.$root=a('<div class="'+y.picker+'" id="'+f.id+'_root" />'),p(),B.$holder=a(n()).appendTo(B.$root),q(),x.formatSubmit&&r(),o(),x.containerHidden?a(x.containerHidden).append(B._hidden):z.after(B._hidden),x.container?a(x.container).append(B.$root):z.after(B.$root),B.on({start:B.component.onStart,render:B.component.onRender,stop:B.component.onStop,open:B.component.onOpen,close:B.component.onClose,set:B.component.onSet}).on({start:x.onStart,render:x.onRender,stop:x.onStop,open:x.onOpen,close:x.onClose,set:x.onSet}),v=c(B.$holder[0]),f.autofocus&&B.open(),B.trigger("start").trigger("render"))},render:function(b){return b?(B.$holder=a(n()),q(),B.$root.html(B.$holder)):B.$root.find("."+y.box).html(B.component.nodes(w.open)),B.trigger("render")},stop:function(){return w.start?(B.close(),B._hidden&&B._hidden.parentNode.removeChild(B._hidden),B.$root.remove(),z.removeClass(y.input).removeData(g),setTimeout(function(){z.off("."+w.id)},0),f.type=w.type,f.readOnly=!1,B.trigger("stop"),w.methods={},w.start=!1,B):B},open:function(c){return w.open?B:(z.addClass(y.active),e(f,"expanded",!0),setTimeout(function(){B.$root.addClass(y.opened),e(B.$root[0],"hidden",!1)},0),c!==!1&&(w.open=!0,v&&k.css("overflow","hidden").css("padding-right","+="+d()),s(),j.on("click."+w.id+" focusin."+w.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&B.close(b===B.$holder[0])}).on("keydown."+w.id,function(c){var d=c.keyCode,e=B.component.key[d],f=c.target;27==d?B.close(!0):f!=B.$holder[0]||!e&&13!=d?a.contains(B.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(B.component.key.go,B,[b._.trigger(e)]):B.$root.find("."+y.highlighted).hasClass(y.disabled)||(B.set("select",B.component.item.highlight),x.closeOnSelect&&B.close(!0)))})),B.trigger("open"))},close:function(a){return a&&(x.editable?f.focus():(B.$holder.off("focus.toOpen").focus(),setTimeout(function(){B.$holder.on("focus.toOpen",t)},0))),z.removeClass(y.active),e(f,"expanded",!1),setTimeout(function(){B.$root.removeClass(y.opened+" "+y.focused),e(B.$root[0],"hidden",!0)},0),w.open?(w.open=!1,v&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+w.id),B.trigger("close")):B},clear:function(a){return B.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in B.component.item&&(void 0===f&&(f=null),B.component.set(e,f,d)),("select"==e||"clear"==e)&&z.val("clear"==e?"":B.get(e,x.format)).trigger("change");B.render()}return d.muted?B:B.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=w[a])return w[a];if("valueSubmit"==a){if(B._hidden)return B._hidden.value;a="value"}if("value"==a)return f.value;if(a in B.component.item){if("string"==typeof c){var d=B.component.get(a);return d?b._.trigger(B.component.formats.toString,B.component,[c,d]):""}return B.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),w.methods[e]=w.methods[e]||[],w.methods[e].push(f)}return B},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a<namesCount;a+=1)b=c[a],b in w.methods&&delete w.methods[b];return B},trigger:function(a,c){var d=function(a){var d=w.methods[a];d&&d.map(function(a){b._.trigger(a,B,[c])})};return d("_"+a),d(a),B}};return new A}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(k.height()<=i.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement),l=null!=document.documentElement.style.transition;return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b});
6
+
7
+ !function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h,defaultValue:!0}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav&&!d.defaultValue)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/[^\x00-\x7F]+|\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysShort).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(){var d=c.showMonthsShort?c.monthsShort:c.monthsFull;return c.selectMonths?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[d[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):f.node("div",d[k.month],c.klass.month)},r=function(){var d=k.year,e=c.selectYears===!0?5:~~(c.selectYears/2);if(e){var g=m.year,h=n.year,i=d-e,j=d+e;if(g>i&&(j+=g-i,i=g),j>h){var l=i-g,o=j-h;i-=l>o?o:l,j=h}return f.node("select",f.group({min:i,max:j,i:1,node:"option",item:function(a){return[a,0,"value="+a+(d==a?" selected":"")]}}),c.klass.selectYear,(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return f.node("div",d,c.klass.year)};return f.node("div",(c.selectYears?r()+q():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0}))+f.node("div",f.node("button",c.today,c.klass.buttonToday,"type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,c.klass.buttonClose,"type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],today:"Today",clear:"Clear",close:"Close",closeOnSelect:!0,closeOnClear:!0,format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)});
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * textarea autosize v0.4.2
3
+ * https://github.com/javierjulio/textarea-autosize
4
+ */
5
+ !function(a,b,c,d){function h(b,c){this.element=b,this.$element=a(b),this.init()}var e="textareaAutoSize",f="plugin_"+e,g=function(a){return a.replace(/\s/g,"").length>0};h.prototype={init:function(){var c=parseInt(this.$element.css("paddingBottom"))+parseInt(this.$element.css("paddingTop"))+parseInt(this.$element.css("borderTopWidth"))+parseInt(this.$element.css("borderBottomWidth"))||0;g(this.element.value)&&this.$element.height(this.element.scrollHeight-c),this.$element.on("input keyup",function(d){var e=a(b),f=e.scrollTop();a(this).height(0).height(this.scrollHeight-c),e.scrollTop(f)})}},a.fn[e]=function(b){return this.each(function(){a.data(this,f)||a.data(this,f,new h(this,b))}),this}}(jQuery,window,document);
@@ -2,14 +2,4 @@
2
2
  * waves v0.7.4
3
3
  * http://fian.my.id/Waves
4
4
  */
5
-
6
5
  !function(a,b){"use strict";"function"==typeof define&&define.amd?define([],function(){return b.apply(a)}):"object"==typeof exports?module.exports=b.call(a):a.Waves=b.call(a)}("object"==typeof global?global:this,function(){"use strict";function e(a){return null!==a&&a===a.window}function f(a){return e(a)?a:9===a.nodeType&&a.defaultView}function g(a){var b=typeof a;return"function"===b||"object"===b&&!!a}function h(a){return g(a)&&a.nodeType>0}function i(a){var d=c.call(a);return"[object String]"===d?b(a):g(a)&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(d)&&a.hasOwnProperty("length")?a:h(a)?[a]:[]}function j(a){var b,c,d={top:0,left:0},e=a&&a.ownerDocument;return b=e.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(d=a.getBoundingClientRect()),c=f(e),{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}}function k(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function n(a,b,c,d){if(c){d.classList.remove("waves-wrapping"),c.classList.remove("waves-rippling");var e=c.getAttribute("data-x"),f=c.getAttribute("data-y"),g=c.getAttribute("data-scale"),h=c.getAttribute("data-translate"),i=Date.now()-Number(c.getAttribute("data-hold")),j=350-i;0>j&&(j=0),"mousemove"===a.type&&(j=150);var m="mousemove"===a.type?2500:l.duration;setTimeout(function(){var a={top:f+"px",left:e+"px",opacity:"0","-webkit-transition-duration":m+"ms","-moz-transition-duration":m+"ms","-o-transition-duration":m+"ms","transition-duration":m+"ms","-webkit-transform":g+" "+h,"-moz-transform":g+" "+h,"-ms-transform":g+" "+h,"-o-transform":g+" "+h,transform:g+" "+h};c.setAttribute("style",k(a)),setTimeout(function(){try{d.removeChild(c),b.removeChild(d)}catch(a){return!1}},m)},j)}}function p(a){if(o.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(c.classList.contains("waves-effect")&&!(c instanceof SVGElement)){b=c;break}c=c.parentElement}return b}function q(a){var b=p(a);if(null!==b){if(b.disabled||b.getAttribute("disabled")||b.classList.contains("disabled"))return;if(o.registerEvent(a),"touchstart"===a.type&&l.delay){var c=!1,e=setTimeout(function(){e=null,l.show(a,b)},l.delay),f=function(d){e&&(clearTimeout(e),e=null,l.show(a,b)),c||(c=!0,l.hide(d,b))},g=function(a){e&&(clearTimeout(e),e=null),f(a)};b.addEventListener("touchmove",g,!1),b.addEventListener("touchend",f,!1),b.addEventListener("touchcancel",f,!1)}else l.show(a,b),d&&(b.addEventListener("touchend",l.hide,!1),b.addEventListener("touchcancel",l.hide,!1)),b.addEventListener("mouseup",l.hide,!1),b.addEventListener("mouseleave",l.hide,!1)}}var a=a||{},b=document.querySelectorAll.bind(document),c=Object.prototype.toString,d="ontouchstart"in window,l={duration:750,delay:200,show:function(a,b,c){if(2===a.button)return!1;b=b||this;var d=document.createElement("div");d.className="waves-wrap waves-wrapping",b.appendChild(d);var e=document.createElement("div");e.className="waves-ripple waves-rippling",d.appendChild(e);var f=j(b),g=0,h=0;"touches"in a&&a.touches.length?(g=a.touches[0].pageY-f.top,h=a.touches[0].pageX-f.left):(g=a.pageY-f.top,h=a.pageX-f.left),h=h>=0?h:0,g=g>=0?g:0;var i="scale("+b.clientWidth/100*3+")",m="translate(0,0)";c&&(m="translate("+c.x+"px, "+c.y+"px)"),e.setAttribute("data-hold",Date.now()),e.setAttribute("data-x",h),e.setAttribute("data-y",g),e.setAttribute("data-scale",i),e.setAttribute("data-translate",m);var n={top:g+"px",left:h+"px"};e.classList.add("waves-notransition"),e.setAttribute("style",k(n)),e.classList.remove("waves-notransition"),n["-webkit-transform"]=i+" "+m,n["-moz-transform"]=i+" "+m,n["-ms-transform"]=i+" "+m,n["-o-transform"]=i+" "+m,n.transform=i+" "+m,n.opacity="1";var o="mousemove"===a.type?2500:l.duration;n["-webkit-transition-duration"]=o+"ms",n["-moz-transition-duration"]=o+"ms",n["-o-transition-duration"]=o+"ms",n["transition-duration"]=o+"ms",e.setAttribute("style",k(n))},hide:function(a,b){b=b||this;for(var c=b.getElementsByClassName("waves-wrapping"),d=b.getElementsByClassName("waves-rippling"),e=0,f=d.length;f>e;e++)n(a,b,d[e],c[e])}},m={input:function(a){var b=a.parentNode;if("i"!==b.tagName.toLowerCase()||!b.classList.contains("waves-effect")){var c=document.createElement("i");c.className=a.className+" waves-input-wrapper",a.className="waves-button-input",b.replaceChild(c,a),c.appendChild(a);var d=window.getComputedStyle(a,null),e=d.color,f=d.backgroundColor;c.setAttribute("style","color:"+e+";background:"+f),a.setAttribute("style","background-color:rgba(0,0,0,0);")}},img:function(a){var b=a.parentNode;if("i"!==b.tagName.toLowerCase()||!b.classList.contains("waves-effect")){var c=document.createElement("i");b.replaceChild(c,a),c.appendChild(a)}}},o={touches:0,allowEvent:function(a){var b=!0;return/^(mousedown|mousemove)$/.test(a.type)&&o.touches&&(b=!1),b},registerEvent:function(a){var b=a.type;"touchstart"===b?o.touches+=1:/^(touchend|touchcancel)$/.test(b)&&setTimeout(function(){o.touches&&(o.touches-=1)},500)}};return a.init=function(a){var b=document.body;a=a||{},"duration"in a&&(l.duration=a.duration),"delay"in a&&(l.delay=a.delay),d&&(b.addEventListener("touchstart",q,!1),b.addEventListener("touchcancel",o.registerEvent,!1),b.addEventListener("touchend",o.registerEvent,!1)),b.addEventListener("mousedown",q,!1)},a.attach=function(a,b){a=i(a),"[object Array]"===c.call(b)&&(b=b.join(" ")),b=b?" "+b:"";for(var d,e,f=0,g=a.length;g>f;f++)d=a[f],e=d.tagName.toLowerCase(),-1!==["input","img"].indexOf(e)&&(m[e](d),d=d.parentElement),-1===d.className.indexOf("waves-effect")&&(d.className+=" waves-effect"+b)},a.ripple=function(a,b){a=i(a);var c=a.length;if(b=b||{},b.wait=b.wait||0,b.position=b.position||null,c)for(var d,e,f,g={},h=0,k={type:"mousedown",button:1},m=function(a,b){return function(){l.hide(a,b)}};c>h;h++)if(d=a[h],e=b.position||{x:d.clientWidth/2,y:d.clientHeight/2},f=j(d),g.x=f.left+e.x,g.y=f.top+e.y,k.pageX=g.x,k.pageY=g.y,l.show(k,d),b.wait>=0&&null!==b.wait){var n={type:"mouseup",button:1};setTimeout(m(n,d),b.wait)}},a.calm=function(a){a=i(a);for(var b={type:"mouseup",button:1},c=0,d=a.length;d>c;c++)l.hide(b,a[c])},a.displayEffect=function(b){console.error("Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect"),a.init(b)},a});
7
-
8
- // waves default
9
- $(function () {
10
- Waves.attach('.waves-attach');
11
-
12
- Waves.init({
13
- duration: 600
14
- });
15
- });
@@ -0,0 +1,91 @@
1
+ /*!
2
+ * floating label:
3
+ * when a user engages with the text input field,
4
+ * the floating inline labels move to float above the field
5
+ */
6
+ const FloatingLabel = (($) => {
7
+ // constants >>>
8
+ const DATA_API_KEY = '.data-api';
9
+ const DATA_KEY = 'md.floatinglabel';
10
+ const EVENT_KEY = `.${DATA_KEY}`;
11
+ const NAME = 'floatinglabel';
12
+ const NO_CONFLICT = $.fn[NAME];
13
+
14
+ const ClassName = {
15
+ IS_FOCUSED : 'is-focused',
16
+ HAS_VALUE : 'has-value'
17
+ };
18
+
19
+ const Event = {
20
+ CHANGE : `change${EVENT_KEY}`,
21
+ FOCUSIN : `focusin${EVENT_KEY}`,
22
+ FOCUSOUT : `focusout${EVENT_KEY}`
23
+ };
24
+
25
+ const Selector = {
26
+ DATA_PARENT : '.floating-label',
27
+ DATA_TOGGLE : '.floating-label .form-control'
28
+ };
29
+ // <<< constants
30
+
31
+ class FloatingLabel {
32
+ constructor(element) {
33
+ this._element = element;
34
+ }
35
+
36
+ change(relatedTarget) {
37
+ if ($(this._element).val() ||
38
+ ($(this._element).is('select') &&
39
+ $('option:first-child', $(this._element)).html().replace(' ', '') !== '')) {
40
+ $(relatedTarget).addClass(ClassName.HAS_VALUE);
41
+ } else {
42
+ $(relatedTarget).removeClass(ClassName.HAS_VALUE);
43
+ }
44
+ }
45
+
46
+ focusin(relatedTarget) {
47
+ $(relatedTarget).addClass(ClassName.IS_FOCUSED);
48
+ }
49
+
50
+ focusout(relatedTarget) {
51
+ $(relatedTarget).removeClass(ClassName.IS_FOCUSED);
52
+ }
53
+
54
+ static _jQueryInterface(event) {
55
+ return this.each(function () {
56
+ let data = $(this).data(DATA_KEY);
57
+ let _event = event ? event : 'change';
58
+
59
+ if (!data) {
60
+ data = new FloatingLabel(this);
61
+ $(this).data(DATA_KEY, data);
62
+ }
63
+
64
+ if (typeof _event === 'string') {
65
+ if (data[_event] === undefined) {
66
+ throw new Error(`No method named "${_event}"`);
67
+ }
68
+
69
+ data[_event]($(this).closest(Selector.DATA_PARENT));
70
+ }
71
+ });
72
+ }
73
+ }
74
+
75
+ $(document).on(`${Event.CHANGE} ${Event.FOCUSIN} ${Event.FOCUSOUT}`,
76
+ Selector.DATA_TOGGLE,
77
+ function (event) {
78
+ let data = $(this).data(DATA_KEY);
79
+
80
+ FloatingLabel._jQueryInterface.call($(this), event.type);
81
+ });
82
+
83
+ $.fn[NAME] = FloatingLabel._jQueryInterface;
84
+ $.fn[NAME].Constructor = FloatingLabel;
85
+ $.fn[NAME].noConflict = function () {
86
+ $.fn[NAME] = NO_CONFLICT;
87
+ return FloatingLabel._jQueryInterface;
88
+ };
89
+
90
+ return FloatingLabel;
91
+ })(jQuery);
@@ -0,0 +1,352 @@
1
+ /*!
2
+ * navigation drawer
3
+ * based on bootstrap's (v4.0.0-alpha.5) modal.js
4
+ */
5
+ const NavDrawer = (($) => {
6
+ // constants >>>
7
+ const DATA_API_KEY = '.data-api';
8
+ const DATA_KEY = 'md.navdrawer';
9
+ const EVENT_KEY = `.${DATA_KEY}`;
10
+ const NAME = 'navdrawer';
11
+ const NO_CONFLICT = $.fn[NAME];
12
+ const TRANSITION_DURATION = 375;
13
+ const TRANSITION_DURATION_BACKDROP = 225;
14
+
15
+ const ClassName = {
16
+ BACKDROP : 'navdrawer-backdrop',
17
+ IN : 'in',
18
+ OPEN : 'navdrawer-open'
19
+ };
20
+
21
+ const Default = {
22
+ breakpoint : 1280,
23
+ keyboard : true,
24
+ show : true,
25
+ type : 'default'
26
+ };
27
+
28
+ const DefaultType = {
29
+ keyboard : 'boolean',
30
+ show : 'boolean',
31
+ type : 'string'
32
+ };
33
+
34
+ const Event = {
35
+ CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,
36
+ CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,
37
+ FOCUSIN : `focusin${EVENT_KEY}`,
38
+ HIDDEN : `hidden${EVENT_KEY}`,
39
+ HIDE : `hide${EVENT_KEY}`,
40
+ KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,
41
+ MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,
42
+ MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,
43
+ SHOW : `show${EVENT_KEY}`,
44
+ SHOWN : `shown${EVENT_KEY}`
45
+ };
46
+
47
+ const Selector = {
48
+ CONTENT : '.navdrawer-content',
49
+ DATA_DISMISS : '[data-dismiss="navdrawer"]',
50
+ DATA_TOGGLE : '[data-toggle="navdrawer"]'
51
+ };
52
+ // <<< constants
53
+
54
+ class NavDrawer {
55
+ constructor(element, config) {
56
+ this._backdrop = null;
57
+ this._config = this._getConfig(config);
58
+ this._content = $(element).find(Selector.CONTENT)[0];
59
+ this._element = element;
60
+ this._ignoreBackdropClick = false;
61
+ this._isShown = false;
62
+ }
63
+
64
+ hide(event) {
65
+ if (event) {
66
+ event.preventDefault();
67
+ }
68
+
69
+ let hideClassName = `${ClassName.OPEN}-${this._config.type}`;
70
+ let hideEvent = $.Event(Event.HIDE);
71
+
72
+ $(this._element).trigger(hideEvent);
73
+
74
+ if (!this._isShown ||
75
+ hideEvent.isDefaultPrevented()) {
76
+ return;
77
+ }
78
+
79
+ this._isShown = false;
80
+ this._setEscapeEvent();
81
+ $(document).off(Event.FOCUSIN);
82
+ $(this._content).off(Event.MOUSEDOWN_DISMISS);
83
+
84
+ $(this._element)
85
+ .off(Event.CLICK_DISMISS)
86
+ .removeClass(ClassName.IN);
87
+
88
+ if (Util.supportsTransitionEnd()) {
89
+ $(this._element)
90
+ .one(Util.TRANSITION_END, $.proxy(this._hideNavdrawer, this, hideClassName))
91
+ .emulateTransitionEnd(TRANSITION_DURATION);
92
+ } else {
93
+ this._hideNavdrawer();
94
+ }
95
+ }
96
+
97
+ show(relatedTarget) {
98
+ let showEvent = $.Event(Event.SHOW, {
99
+ relatedTarget
100
+ });
101
+
102
+ $(this._element).trigger(showEvent);
103
+
104
+ if (this._isShown ||
105
+ showEvent.isDefaultPrevented()) {
106
+ return;
107
+ }
108
+
109
+ this._isShown = true;
110
+ $(document.body).addClass(`${ClassName.OPEN}-${this._config.type}`);
111
+ this._setEscapeEvent();
112
+ $(this._element).addClass(`${NAME}-${this._config.type}`);
113
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this));
114
+
115
+ $(this._content).on(Event.MOUSEDOWN_DISMISS, () => {
116
+ $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {
117
+ if ($(event.target).is(this._element)) {
118
+ this._ignoreBackdropClick = true;
119
+ }
120
+ });
121
+ });
122
+
123
+ this._showBackdrop($.proxy(this._showElement, this, relatedTarget));
124
+ }
125
+
126
+ toggle(relatedTarget) {
127
+ return this._isShown ? this.hide() : this.show(relatedTarget);
128
+ }
129
+
130
+ _enforceFocus() {
131
+ $(document)
132
+ .off(Event.FOCUSIN)
133
+ .on(Event.FOCUSIN, (event) => {
134
+ if ((this._config.type === 'default') ||
135
+ ($(window).width() <= this._config.breakpoint)) {
136
+ if (this._element !== event.target &&
137
+ (!$(this._element).has(event.target).length)) {
138
+ this._element.focus();
139
+ }
140
+ }
141
+ });
142
+ }
143
+
144
+ _getConfig(config) {
145
+ config = $.extend({}, Default, config);
146
+ Util.typeCheckConfig(NAME, config, DefaultType);
147
+ return config;
148
+ }
149
+
150
+ _hideNavdrawer(className) {
151
+ this._element.style.display = 'none';
152
+
153
+ this._showBackdrop(() => {
154
+ $(document.body).removeClass(className);
155
+ $(this._element).trigger(Event.HIDDEN);
156
+ });
157
+ }
158
+
159
+ _removeBackdrop() {
160
+ if (this._backdrop) {
161
+ $(this._backdrop).remove();
162
+ this._backdrop = null
163
+ }
164
+ }
165
+
166
+ _setEscapeEvent() {
167
+ if (this._isShown &&
168
+ this._config.keyboard) {
169
+ $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {
170
+ if (event.which === 27) {
171
+ this.hide();
172
+ }
173
+ });
174
+ } else if (!this._isShown) {
175
+ $(this._element).off(Event.KEYDOWN_DISMISS);
176
+ }
177
+ }
178
+
179
+ _showBackdrop(callback) {
180
+ let supportsTransition = Util.supportsTransitionEnd();
181
+
182
+ if (this._isShown) {
183
+ this._backdrop = document.createElement('div');
184
+
185
+ $(this._backdrop)
186
+ .addClass(ClassName.BACKDROP)
187
+ .addClass(`${ClassName.BACKDROP}-${this._config.type}`)
188
+ .appendTo(document.body);
189
+
190
+ $(this._element).on(Event.CLICK_DISMISS, (event) => {
191
+ if (this._ignoreBackdropClick) {
192
+ this._ignoreBackdropClick = false;
193
+ return;
194
+ }
195
+
196
+ if (event.target !== event.currentTarget) {
197
+ return;
198
+ }
199
+
200
+ this.hide();
201
+ });
202
+
203
+ if (supportsTransition) {
204
+ Util.reflow(this._backdrop);
205
+ }
206
+
207
+ $(this._backdrop).addClass(ClassName.IN);
208
+
209
+ if (!callback) {
210
+ return;
211
+ }
212
+
213
+ if (!supportsTransition) {
214
+ callback();
215
+ return;
216
+ }
217
+
218
+ $(this._backdrop)
219
+ .one(Util.TRANSITION_END, callback)
220
+ .emulateTransitionEnd(TRANSITION_DURATION_BACKDROP);
221
+ } else if (this._backdrop && !this._isShown) {
222
+ $(this._backdrop).removeClass(ClassName.IN);
223
+
224
+ let callbackRemove = () => {
225
+ this._removeBackdrop();
226
+
227
+ if (callback) {
228
+ callback();
229
+ }
230
+ };
231
+
232
+ if (supportsTransition) {
233
+ $(this._backdrop)
234
+ .one(Util.TRANSITION_END, callbackRemove)
235
+ .emulateTransitionEnd(TRANSITION_DURATION_BACKDROP);
236
+ } else {
237
+ callbackRemove();
238
+ }
239
+ } else if (callback) {
240
+ callback();
241
+ }
242
+ }
243
+
244
+ _showElement(relatedTarget) {
245
+ let supportsTransition = Util.supportsTransitionEnd();
246
+
247
+ if (!this._element.parentNode ||
248
+ (this._element.parentNode.nodeType !== Node.ELEMENT_NODE)) {
249
+ document.body.appendChild(this._element);
250
+ }
251
+
252
+ this._element.style.display = 'block';
253
+
254
+ if (supportsTransition) {
255
+ Util.reflow(this._element);
256
+ }
257
+
258
+ $(this._element).addClass(ClassName.IN);
259
+ this._enforceFocus();
260
+
261
+ let shownEvent = $.Event(Event.SHOWN, {
262
+ relatedTarget
263
+ });
264
+
265
+ let transitionComplete = () => {
266
+ this._element.focus();
267
+ $(this._element).trigger(shownEvent);
268
+ };
269
+
270
+ if (supportsTransition) {
271
+ $(this._content)
272
+ .one(Util.TRANSITION_END, transitionComplete)
273
+ .emulateTransitionEnd(TRANSITION_DURATION);
274
+ } else {
275
+ transitionComplete();
276
+ }
277
+ }
278
+
279
+ static get Default() {
280
+ return Default;
281
+ }
282
+
283
+ static _jQueryInterface(config, relatedTarget) {
284
+ return this.each(function () {
285
+ let data = $(this).data(DATA_KEY);
286
+ let _config = $.extend(
287
+ {},
288
+ NavDrawer.Default,
289
+ $(this).data(),
290
+ typeof config === 'object' && config
291
+ );
292
+
293
+ if (!data) {
294
+ data = new NavDrawer(this, _config);
295
+ $(this).data(DATA_KEY, data);
296
+ }
297
+
298
+ if (typeof config === 'string') {
299
+ if (data[config] === undefined) {
300
+ throw new Error(`No method named "${config}"`);
301
+ }
302
+
303
+ data[config](relatedTarget);
304
+ } else if (_config.show) {
305
+ data.show(relatedTarget);
306
+ }
307
+ });
308
+ }
309
+ }
310
+
311
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
312
+ let selector = Util.getSelectorFromElement(this);
313
+ let target;
314
+
315
+ if (selector) {
316
+ target = $(selector)[0];
317
+ }
318
+
319
+ let config = $(target).data(DATA_KEY) ? 'toggle' : $.extend(
320
+ {},
321
+ $(target).data(),
322
+ $(this).data()
323
+ );
324
+
325
+ if (this.tagName === 'A') {
326
+ event.preventDefault();
327
+ }
328
+
329
+ let $target = $(target).one(Event.SHOW, (showEvent) => {
330
+ if (showEvent.isDefaultPrevented()) {
331
+ return;
332
+ }
333
+
334
+ $target.one(Event.HIDDEN, () => {
335
+ if ($(this).is(':visible')) {
336
+ this.focus();
337
+ }
338
+ });
339
+ });
340
+
341
+ NavDrawer._jQueryInterface.call($(target), config, this);
342
+ });
343
+
344
+ $.fn[NAME] = NavDrawer._jQueryInterface;
345
+ $.fn[NAME].Constructor = NavDrawer;
346
+ $.fn[NAME].noConflict = function () {
347
+ $.fn[NAME] = NO_CONFLICT;
348
+ return NavDrawer._jQueryInterface;
349
+ };
350
+
351
+ return NavDrawer;
352
+ })(jQuery);