kea-rails 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kea-rails/version.rb +1 -1
  3. data/vendor/assets/components/Keypress/LICENSE +191 -0
  4. data/vendor/assets/components/Keypress/README.md +78 -0
  5. data/vendor/assets/components/Keypress/bower.json +28 -0
  6. data/vendor/assets/components/Keypress/keypress-2.1.0.min.js +33 -0
  7. data/vendor/assets/components/Keypress/keypress.coffee +921 -0
  8. data/vendor/assets/components/Keypress/keypress.js +1132 -0
  9. data/vendor/assets/components/Keypress/package.json +15 -0
  10. data/vendor/assets/components/attachejs/attache-jquery.js +47 -0
  11. data/vendor/assets/components/attachejs/attache-knockout.js +56 -0
  12. data/vendor/assets/components/attachejs/attache.css +10 -0
  13. data/vendor/assets/components/attachejs/attache.js +589 -0
  14. data/vendor/assets/components/attachejs/bower.json +36 -0
  15. data/vendor/assets/components/humane-js/bower.json +8 -0
  16. data/vendor/assets/components/humane-js/changelog.md +165 -0
  17. data/vendor/assets/components/humane-js/humane.js +238 -0
  18. data/vendor/assets/components/humane-js/humane.min.js +11 -0
  19. data/vendor/assets/components/humane-js/index.html +190 -0
  20. data/vendor/assets/components/humane-js/package.json +25 -0
  21. data/vendor/assets/components/humane-js/readme.md +85 -0
  22. data/vendor/assets/components/humane-js/test/issue23.html +11 -0
  23. data/vendor/assets/components/humane-js/test/issue36.html +9 -0
  24. data/vendor/assets/components/humane-js/test/issue38.html +15 -0
  25. data/vendor/assets/components/humane-js/test/issue49.html +9 -0
  26. data/vendor/assets/components/humane-js/theme-src/bigbox.styl +65 -0
  27. data/vendor/assets/components/humane-js/theme-src/boldlight.styl +64 -0
  28. data/vendor/assets/components/humane-js/theme-src/jackedup.styl +69 -0
  29. data/vendor/assets/components/humane-js/theme-src/libnotify.styl +61 -0
  30. data/vendor/assets/components/humane-js/theme-src/original.styl +51 -0
  31. data/vendor/assets/components/humane-js/themes/bigbox.css +123 -0
  32. data/vendor/assets/components/humane-js/themes/boldlight.css +122 -0
  33. data/vendor/assets/components/humane-js/themes/flatty.css +94 -0
  34. data/vendor/assets/components/humane-js/themes/jackedup.css +123 -0
  35. data/vendor/assets/components/humane-js/themes/libnotify.css +115 -0
  36. data/vendor/assets/components/humane-js/themes/original.css +72 -0
  37. data/vendor/assets/components/knockout-sortable/README.md +129 -0
  38. data/vendor/assets/components/knockout-sortable/bower.json +15 -0
  39. data/vendor/assets/components/knockout-sortable/build/knockout-sortable.js +358 -0
  40. data/vendor/assets/components/knockout-sortable/build/knockout-sortable.min.js +2 -0
  41. data/vendor/assets/components/uri.js/README.md +437 -0
  42. data/vendor/assets/components/uri.js/URI.jquery.json +38 -0
  43. data/vendor/assets/components/uri.js/about-uris.html +156 -0
  44. data/vendor/assets/components/uri.js/build.html +66 -0
  45. data/vendor/assets/components/uri.js/build.js +78 -0
  46. data/vendor/assets/components/uri.js/component.json +15 -0
  47. data/vendor/assets/components/uri.js/contribute.md +11 -0
  48. data/vendor/assets/components/uri.js/docs.html +1280 -0
  49. data/vendor/assets/components/uri.js/index.html +173 -0
  50. data/vendor/assets/components/uri.js/jquery-1.10.2.min.js +6 -0
  51. data/vendor/assets/components/uri.js/jquery-1.7.2.min.js +4 -0
  52. data/vendor/assets/components/uri.js/jquery-1.8.2.min.js +2 -0
  53. data/vendor/assets/components/uri.js/jquery-1.9.1.min.js +5 -0
  54. data/vendor/assets/components/uri.js/jquery-uri-plugin.html +203 -0
  55. data/vendor/assets/components/uri.js/package.json +75 -0
  56. data/vendor/assets/components/uri.js/prettify/lang-apollo.js +2 -0
  57. data/vendor/assets/components/uri.js/prettify/lang-clj.js +18 -0
  58. data/vendor/assets/components/uri.js/prettify/lang-css.js +2 -0
  59. data/vendor/assets/components/uri.js/prettify/lang-go.js +1 -0
  60. data/vendor/assets/components/uri.js/prettify/lang-hs.js +2 -0
  61. data/vendor/assets/components/uri.js/prettify/lang-lisp.js +3 -0
  62. data/vendor/assets/components/uri.js/prettify/lang-lua.js +2 -0
  63. data/vendor/assets/components/uri.js/prettify/lang-ml.js +2 -0
  64. data/vendor/assets/components/uri.js/prettify/lang-n.js +4 -0
  65. data/vendor/assets/components/uri.js/prettify/lang-proto.js +1 -0
  66. data/vendor/assets/components/uri.js/prettify/lang-scala.js +2 -0
  67. data/vendor/assets/components/uri.js/prettify/lang-sql.js +2 -0
  68. data/vendor/assets/components/uri.js/prettify/lang-tex.js +1 -0
  69. data/vendor/assets/components/uri.js/prettify/lang-vb.js +2 -0
  70. data/vendor/assets/components/uri.js/prettify/lang-vhdl.js +3 -0
  71. data/vendor/assets/components/uri.js/prettify/lang-wiki.js +2 -0
  72. data/vendor/assets/components/uri.js/prettify/lang-xq.js +3 -0
  73. data/vendor/assets/components/uri.js/prettify/lang-yaml.js +2 -0
  74. data/vendor/assets/components/uri.js/prettify/prettify.css +1 -0
  75. data/vendor/assets/components/uri.js/prettify/prettify.js +28 -0
  76. data/vendor/assets/components/uri.js/prettify/prettify.sunburst.css +52 -0
  77. data/vendor/assets/components/uri.js/screen.css +167 -0
  78. data/vendor/assets/components/uri.js/screen.js +39 -0
  79. data/vendor/assets/components/uri.js/src/IPv6.js +185 -0
  80. data/vendor/assets/components/uri.js/src/SecondLevelDomains.js +220 -0
  81. data/vendor/assets/components/uri.js/src/URI.fragmentQuery.js +103 -0
  82. data/vendor/assets/components/uri.js/src/URI.fragmentURI.js +96 -0
  83. data/vendor/assets/components/uri.js/src/URI.js +1938 -0
  84. data/vendor/assets/components/uri.js/src/URI.min.js +81 -0
  85. data/vendor/assets/components/uri.js/src/URITemplate.js +494 -0
  86. data/vendor/assets/components/uri.js/src/jquery.URI.js +232 -0
  87. data/vendor/assets/components/uri.js/src/jquery.URI.min.js +7 -0
  88. data/vendor/assets/components/uri.js/src/punycode.js +508 -0
  89. data/vendor/assets/components/uri.js/test/index.html +26 -0
  90. data/vendor/assets/components/uri.js/test/pre_libs.js +4 -0
  91. data/vendor/assets/components/uri.js/test/qunit/qunit-composite.css +13 -0
  92. data/vendor/assets/components/uri.js/test/qunit/qunit-composite.js +167 -0
  93. data/vendor/assets/components/uri.js/test/qunit/qunit.css +244 -0
  94. data/vendor/assets/components/uri.js/test/qunit/qunit.js +2212 -0
  95. data/vendor/assets/components/uri.js/test/test.URI.html +26 -0
  96. data/vendor/assets/components/uri.js/test/test.fragmentQuery.html +31 -0
  97. data/vendor/assets/components/uri.js/test/test.fragmentURI.html +31 -0
  98. data/vendor/assets/components/uri.js/test/test.jQuery-1.10.html +31 -0
  99. data/vendor/assets/components/uri.js/test/test.jQuery-1.7.html +31 -0
  100. data/vendor/assets/components/uri.js/test/test.jQuery-1.8.html +31 -0
  101. data/vendor/assets/components/uri.js/test/test.jQuery-1.9.html +31 -0
  102. data/vendor/assets/components/uri.js/test/test.js +1409 -0
  103. data/vendor/assets/components/uri.js/test/test_fragmentQuery.js +57 -0
  104. data/vendor/assets/components/uri.js/test/test_fragmentURI.js +59 -0
  105. data/vendor/assets/components/uri.js/test/test_jim.js +143 -0
  106. data/vendor/assets/components/uri.js/test/test_jquery.js +138 -0
  107. data/vendor/assets/components/uri.js/test/test_template.js +385 -0
  108. data/vendor/assets/components/uri.js/test/urls.js +1236 -0
  109. data/vendor/assets/components/uri.js/uri-template.html +234 -0
  110. data/vendor/assets/components/uri.js/utils/SLDs.php +37 -0
  111. data/vendor/assets/components/uri.js/utils/sld.js +101 -0
  112. data/vendor/assets/components/veiljs/bower.json +36 -0
  113. data/vendor/assets/components/veiljs/veil-jquery.js +47 -0
  114. data/vendor/assets/components/veiljs/veil-knockout.js +55 -0
  115. data/vendor/assets/components/veiljs/veil.js +465 -0
  116. data/vendor/assets/javascripts/fuse.js +472 -0
  117. data/vendor/assets/javascripts/jquery-ui.js +3844 -0
  118. data/vendor/assets/javascripts/knockout-3.2.0-debug.js +5299 -0
  119. data/vendor/assets/javascripts/moment.js +1902 -0
  120. data/vendor/assets/javascripts/pikaday.js +896 -0
  121. data/vendor/assets/stylesheets/pikaday.css +171 -0
  122. metadata +120 -1
@@ -0,0 +1,122 @@
1
+ html,
2
+ body {
3
+ min-height: 100%;
4
+ }
5
+ .humane,
6
+ .humane-boldlight {
7
+ position: fixed;
8
+ -moz-transition: all 0.3s ease-out;
9
+ -webkit-transition: all 0.3s ease-out;
10
+ -ms-transition: all 0.3s ease-out;
11
+ -o-transition: all 0.3s ease-out;
12
+ transition: all 0.3s ease-out;
13
+ z-index: 100000;
14
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
15
+ }
16
+ .humane,
17
+ .humane-boldlight {
18
+ font-family: Ubuntu, Verdana, sans-serif;
19
+ font-size: 25px;
20
+ letter-spacing: -1px;
21
+ top: 25%;
22
+ left: 25%;
23
+ opacity: 0;
24
+ width: 50%;
25
+ color: #000;
26
+ padding: 10px;
27
+ text-align: center;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAACWCAYAAAAfduJyAAAABmJLR0QA/wD/AP+gvaeTAAAAPElEQVQokWP4////Gab///8zQAgGBgYo8e/fP2QxSpSgydJNCYJLRSVoPqeOkgEIYop9TrGbSfcWpW4GAFeF/7lb/oWBAAAAAElFTkSuQmCC');
29
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.8)), color-stop(1, rgba(150,150,150,0.8))) no-repeat;
30
+ background: -moz-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(150,150,150,0.8) 100%) no-repeat;
31
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(150,150,150,0.8) 100%) no-repeat;
32
+ background: -ms-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(150,150,150,0.8) 100%) no-repeat;
33
+ background: -o-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(150,150,150,0.8) 100%) no-repeat;
34
+ background: linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(150,150,150,0.8) 100%) no-repeat;
35
+ *background-color: #fff;
36
+ -webkit-border-radius: 15px;
37
+ border-radius: 15px;
38
+ text-shadow: 0 -1px 1px rgba(221,221,221,0.4);
39
+ -webkit-box-shadow: 0 4px 4px -4px #eee;
40
+ box-shadow: 0 4px 4px -4px #eee;
41
+ -moz-transform: scale(1.1);
42
+ -webkit-transform: scale(1.1);
43
+ -ms-transform: scale(1.1);
44
+ -o-transform: scale(1.1);
45
+ transform: scale(1.1);
46
+ }
47
+ .humane p,
48
+ .humane-boldlight p,
49
+ .humane ul,
50
+ .humane-boldlight ul {
51
+ margin: 0;
52
+ padding: 0;
53
+ }
54
+ .humane ul,
55
+ .humane-boldlight ul {
56
+ list-style: none;
57
+ }
58
+ .humane.humane-boldlight-info,
59
+ .humane-boldlight.humane-boldlight-info {
60
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAR0lEQVQokWNISfn/n4mBgeE/EwMDAwMqQYQYmdoGlxgjI4rY//+Dx2nUFRsQZ2ALTrQQp8QL1DWeqASC014y7aCx8QwMDAwA1aZBIulmpvwAAAAASUVORK5CYII=');
61
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #6464ff), color-stop(1, rgba(100,100,255,0.8))) no-repeat;
62
+ background: -moz-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.8) 100%) no-repeat;
63
+ background: -webkit-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.8) 100%) no-repeat;
64
+ background: -ms-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.8) 100%) no-repeat;
65
+ background: -o-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.8) 100%) no-repeat;
66
+ background: linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.8) 100%) no-repeat;
67
+ *background-color: #6464ff;
68
+ }
69
+ .humane.humane-boldlight-success,
70
+ .humane-boldlight.humane-boldlight-success {
71
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAGklEQVQokWNI+Z9yhomBgYFhlBglRonhSgAAFX0EItSd0k8AAAAASUVORK5CYII=');
72
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #64ff64), color-stop(1, rgba(100,255,100,0.8))) no-repeat;
73
+ background: -moz-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.8) 100%) no-repeat;
74
+ background: -webkit-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.8) 100%) no-repeat;
75
+ background: -ms-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.8) 100%) no-repeat;
76
+ background: -o-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.8) 100%) no-repeat;
77
+ background: linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.8) 100%) no-repeat;
78
+ *background-color: #64ff64;
79
+ }
80
+ .humane.humane-boldlight-error,
81
+ .humane-boldlight.humane-boldlight-error {
82
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAGklEQVQokWP4n5JyhomBgYFhlBglRonhSgAAFhgEIhjGqQkAAAAASUVORK5CYII=');
83
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ff6464), color-stop(1, rgba(255,100,100,0.8))) no-repeat;
84
+ background: -moz-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.8) 100%) no-repeat;
85
+ background: -webkit-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.8) 100%) no-repeat;
86
+ background: -ms-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.8) 100%) no-repeat;
87
+ background: -o-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.8) 100%) no-repeat;
88
+ background: linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.8) 100%) no-repeat;
89
+ *background-color: #ff6464;
90
+ }
91
+ .humane.humane-animate,
92
+ .humane-boldlight.humane-boldlight-animate {
93
+ opacity: 1;
94
+ -moz-transform: scale(1);
95
+ -webkit-transform: scale(1);
96
+ -ms-transform: scale(1);
97
+ -o-transform: scale(1);
98
+ transform: scale(1);
99
+ }
100
+ .humane.humane-animate:hover,
101
+ .humane-boldlight.humane-boldlight-animate:hover {
102
+ opacity: 0.4;
103
+ -moz-transform: scale(1.8);
104
+ -webkit-transform: scale(1.8);
105
+ -ms-transform: scale(1.8);
106
+ -o-transform: scale(1.8);
107
+ transform: scale(1.8);
108
+ }
109
+ .humane.humane-animate,
110
+ .humane-boldlight.humane-boldlight-js-animate {
111
+ opacity: 1;
112
+ -moz-transform: scale(1);
113
+ -webkit-transform: scale(1);
114
+ -ms-transform: scale(1);
115
+ -o-transform: scale(1);
116
+ transform: scale(1);
117
+ }
118
+ .humane.humane-animate:hover,
119
+ .humane-boldlight.humane-boldlight-js-animate:hover {
120
+ opacity: 0.4;
121
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
122
+ }
@@ -0,0 +1,94 @@
1
+ html,
2
+ body {
3
+ min-height: 100%;
4
+ }
5
+ .humane,
6
+ .humane-flatty {
7
+ position: fixed;
8
+ -moz-transition: all 0.4s ease-in-out;
9
+ -webkit-transition: all 0.4s ease-in-out;
10
+ -ms-transition: all 0.4s ease-in-out;
11
+ -o-transition: all 0.4s ease-in-out;
12
+ transition: all 0.4s ease-in-out;
13
+ z-index: 100000;
14
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
15
+ }
16
+ .humane,
17
+ .humane-flatty {
18
+ font-family: Helvetica Neue, Helvetica, san-serif;
19
+ font-size: 16px;
20
+ top: 0;
21
+ left: 30%;
22
+ opacity: 0;
23
+ width: 40%;
24
+ color: #444;
25
+ padding: 10px;
26
+ text-align: center;
27
+ background-color: #fff;
28
+ -webkit-border-bottom-right-radius: 3px;
29
+ -webkit-border-bottom-left-radius: 3px;
30
+ -moz-border-radius-bottomright: 3px;
31
+ -moz-border-radius-bottomleft: 3px;
32
+ border-bottom-right-radius: 3px;
33
+ border-bottom-left-radius: 3px;
34
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5);
35
+ box-shadow: 0 1px 2px rgba(0,0,0,0.5);
36
+ -moz-transform: translateY(-100px);
37
+ -webkit-transform: translateY(-100px);
38
+ -ms-transform: translateY(-100px);
39
+ -o-transform: translateY(-100px);
40
+ transform: translateY(-100px);
41
+ }
42
+ .humane p,
43
+ .humane-flatty p,
44
+ .humane ul,
45
+ .humane-flatty ul {
46
+ margin: 0;
47
+ padding: 0;
48
+ }
49
+ .humane ul,
50
+ .humane-flatty ul {
51
+ list-style: none;
52
+ }
53
+ .humane.humane-flatty-info,
54
+ .humane-flatty.humane-flatty-info {
55
+ background-color: #3498db;
56
+ color: #FFF;
57
+ }
58
+ .humane.humane-flatty-success,
59
+ .humane-flatty.humane-flatty-success {
60
+ background-color: #18bc9c;
61
+ color: #FFF;
62
+ }
63
+ .humane.humane-flatty-error,
64
+ .humane-flatty.humane-flatty-error {
65
+ background-color: #e74c3c;
66
+ color: #FFF;
67
+ }
68
+ .humane-animate,
69
+ .humane-flatty.humane-flatty-animate {
70
+ opacity: 1;
71
+ -moz-transform: translateY(0);
72
+ -webkit-transform: translateY(0);
73
+ -ms-transform: translateY(0);
74
+ -o-transform: translateY(0);
75
+ transform: translateY(0);
76
+ }
77
+ .humane-animate:hover,
78
+ .humane-flatty.humane-flatty-animate:hover {
79
+ opacity: 0.7;
80
+ }
81
+ .humane-js-animate,
82
+ .humane-flatty.humane-flatty-js-animate {
83
+ opacity: 1;
84
+ -moz-transform: translateY(0);
85
+ -webkit-transform: translateY(0);
86
+ -ms-transform: translateY(0);
87
+ -o-transform: translateY(0);
88
+ transform: translateY(0);
89
+ }
90
+ .humane-js-animate:hover,
91
+ .humane-flatty.humane-flatty-js-animate:hover {
92
+ opacity: 0.7;
93
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
94
+ }
@@ -0,0 +1,123 @@
1
+ html,
2
+ body {
3
+ min-height: 100%;
4
+ }
5
+ .humane,
6
+ .humane-jackedup {
7
+ position: fixed;
8
+ -moz-transition: all 0.6s ease-in-out;
9
+ -webkit-transition: all 0.6s ease-in-out;
10
+ -ms-transition: all 0.6s ease-in-out;
11
+ -o-transition: all 0.6s ease-in-out;
12
+ transition: all 0.6s ease-in-out;
13
+ z-index: 100000;
14
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
15
+ }
16
+ .humane,
17
+ .humane-jackedup {
18
+ font-family: Helvetica Neue, Helvetica, san-serif;
19
+ font-size: 18px;
20
+ letter-spacing: -1px;
21
+ top: 20px;
22
+ left: 30%;
23
+ opacity: 0;
24
+ width: 40%;
25
+ color: #333;
26
+ padding: 10px;
27
+ text-align: center;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAACWCAYAAAAfduJyAAAABmJLR0QA/wD/AP+gvaeTAAAAIklEQVQokWNgYGCQZGJgYGDARTDSQnboGDqsnDt0DKWNLAAkiQFdC+vZNQAAAABJRU5ErkJggg==');
29
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.1)), color-stop(1, rgba(0,0,0,0.2))) no-repeat;
30
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%) no-repeat;
31
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%) no-repeat;
32
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%) no-repeat;
33
+ background: -o-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%) no-repeat;
34
+ background: linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 100%) no-repeat;
35
+ background-color: #fff;
36
+ -webkit-border-radius: 3px;
37
+ border-radius: 3px;
38
+ text-shadow: 0 1px 1px rgba(255,255,255,0.8);
39
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5);
40
+ box-shadow: 0 1px 2px rgba(0,0,0,0.5);
41
+ -moz-transform: translateY(-100px);
42
+ -webkit-transform: translateY(-100px);
43
+ -ms-transform: translateY(-100px);
44
+ -o-transform: translateY(-100px);
45
+ transform: translateY(-100px);
46
+ }
47
+ .humane p,
48
+ .humane-jackedup p,
49
+ .humane ul,
50
+ .humane-jackedup ul {
51
+ margin: 0;
52
+ padding: 0;
53
+ }
54
+ .humane ul,
55
+ .humane-jackedup ul {
56
+ list-style: none;
57
+ }
58
+ .humane.humane-jackedup-info,
59
+ .humane-jackedup.humane-jackedup-info {
60
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAR0lEQVQokWNISfn/n4mBgeE/EwMDAwMqQYQYmdoGlxgjI4rY//+Dx2nUFRsQZ2ALTrQQp8QL1DWeqASC014y7aCx8QwMDAwA1aZBIulmpvwAAAAASUVORK5CYII=');
61
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.7)), color-stop(1, rgba(0,0,0,0.85))) no-repeat;
62
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
63
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
64
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
65
+ background: -o-linear-gradient(top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
66
+ background: linear-gradient(top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
67
+ background-color: #fff;
68
+ color: #fff;
69
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
70
+ }
71
+ .humane.humane-jackedup-success,
72
+ .humane-jackedup.humane-jackedup-success {
73
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAASElEQVQokc2SMQ4AIAgDD9/K/79QVzWaENTownAJbWnA5SqACkA/Aiy59hczrGVC30Q7y57EmNU5NL5zwln50IMsfZMel+UBKtFBQSLWM9wLAAAAAElFTkSuQmCC');
74
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #62c462), color-stop(1, #57a957)) no-repeat;
75
+ background: -moz-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
76
+ background: -webkit-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
77
+ background: -ms-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
78
+ background: -o-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
79
+ background: linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
80
+ background-color: #64ff64;
81
+ color: #fff;
82
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
83
+ }
84
+ .humane.humane-jackedup-error,
85
+ .humane-jackedup.humane-jackedup-error {
86
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAIAAACmkByiAAAABmJLR0QA/wD/AP+gvaeTAAAAf0lEQVQokY2TOQ7AIAwER/5mivy/yRc2RQDhA0jhghFYO5bhuS+TZMAoIUMEhhH4loGhfu71cenM3DutWMsaeGKjv3zO5N17KLPJ0+fQD8cpv5uVLPo4vnX0PpXj0nuaaeVzdmw+yXG1O96n2p3kozB757Ni1Z5UPsU9SP8AeAG1kHXE+7RlPAAAAABJRU5ErkJggg==');
87
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ee5f5b), color-stop(1, #c43c35)) no-repeat;
88
+ background: -moz-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
89
+ background: -webkit-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
90
+ background: -ms-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
91
+ background: -o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
92
+ background: linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
93
+ background-color: #ee5f5b;
94
+ color: #fff;
95
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
96
+ }
97
+ .humane-animate,
98
+ .humane-jackedup.humane-jackedup-animate {
99
+ opacity: 1;
100
+ -moz-transform: translateY(0);
101
+ -webkit-transform: translateY(0);
102
+ -ms-transform: translateY(0);
103
+ -o-transform: translateY(0);
104
+ transform: translateY(0);
105
+ }
106
+ .humane-animate:hover,
107
+ .humane-jackedup.humane-jackedup-animate:hover {
108
+ opacity: 0.7;
109
+ }
110
+ .humane-js-animate,
111
+ .humane-jackedup.humane-jackedup-js-animate {
112
+ opacity: 1;
113
+ -moz-transform: translateY(0);
114
+ -webkit-transform: translateY(0);
115
+ -ms-transform: translateY(0);
116
+ -o-transform: translateY(0);
117
+ transform: translateY(0);
118
+ }
119
+ .humane-js-animate:hover,
120
+ .humane-jackedup.humane-jackedup-js-animate:hover {
121
+ opacity: 0.7;
122
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
123
+ }
@@ -0,0 +1,115 @@
1
+ html,
2
+ body {
3
+ min-height: 100%;
4
+ }
5
+ .humane,
6
+ .humane-libnotify {
7
+ position: fixed;
8
+ -moz-transition: all 0.3s ease-out;
9
+ -webkit-transition: all 0.3s ease-out;
10
+ -ms-transition: all 0.3s ease-out;
11
+ -o-transition: all 0.3s ease-out;
12
+ transition: all 0.3s ease-out;
13
+ z-index: 100000;
14
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
15
+ }
16
+ .humane,
17
+ .humane-libnotify {
18
+ font-family: Ubuntu, Arial, sans-serif;
19
+ text-align: center;
20
+ font-size: 15px;
21
+ top: 10px;
22
+ right: 10px;
23
+ opacity: 0;
24
+ width: 150px;
25
+ color: #fff;
26
+ padding: 10px;
27
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAANElEQVQYlWNgYGB4ysTAwMDAxMjICCUQXDQWAwMDAxMTExMedcRyB6d5CAMQ5hGrjSrmAQBQdgIXlosSTwAAAABJRU5ErkJggg==');
28
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.9)), color-stop(1, rgba(50,50,50,0.9))) no-repeat;
29
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.9) 0%, rgba(50,50,50,0.9) 100%) no-repeat;
30
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.9) 0%, rgba(50,50,50,0.9) 100%) no-repeat;
31
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.9) 0%, rgba(50,50,50,0.9) 100%) no-repeat;
32
+ background: -o-linear-gradient(top, rgba(0,0,0,0.9) 0%, rgba(50,50,50,0.9) 100%) no-repeat;
33
+ background: linear-gradient(top, rgba(0,0,0,0.9) 0%, rgba(50,50,50,0.9) 100%) no-repeat;
34
+ *background-color: #000;
35
+ -webkit-border-radius: 5px;
36
+ border-radius: 5px;
37
+ -webkit-box-shadow: 0 4px 4px -4px #000;
38
+ box-shadow: 0 4px 4px -4px #000;
39
+ -moz-transform: translateY(-40px);
40
+ -webkit-transform: translateY(-40px);
41
+ -ms-transform: translateY(-40px);
42
+ -o-transform: translateY(-40px);
43
+ transform: translateY(-40px);
44
+ }
45
+ .humane p,
46
+ .humane-libnotify p,
47
+ .humane ul,
48
+ .humane-libnotify ul {
49
+ margin: 0;
50
+ padding: 0;
51
+ }
52
+ .humane ul,
53
+ .humane-libnotify ul {
54
+ list-style: none;
55
+ }
56
+ .humane.humane-libnotify-info,
57
+ .humane-libnotify.humane-libnotify-info {
58
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgYDB6ysTAwMDAxMDACCcYUFkMDEwMDEwMBNVhkxg65jGhmke6M6hgHgBSdgHnpZwADwAAAABJRU5ErkJggg==');
59
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,50,0.9)), color-stop(1, rgba(0,0,100,0.9))) no-repeat;
60
+ background: -moz-linear-gradient(top, rgba(0,0,50,0.9) 0%, rgba(0,0,100,0.9) 100%) no-repeat;
61
+ background: -webkit-linear-gradient(top, rgba(0,0,50,0.9) 0%, rgba(0,0,100,0.9) 100%) no-repeat;
62
+ background: -ms-linear-gradient(top, rgba(0,0,50,0.9) 0%, rgba(0,0,100,0.9) 100%) no-repeat;
63
+ background: -o-linear-gradient(top, rgba(0,0,50,0.9) 0%, rgba(0,0,100,0.9) 100%) no-repeat;
64
+ background: linear-gradient(top, rgba(0,0,50,0.9) 0%, rgba(0,0,100,0.9) 100%) no-repeat;
65
+ *background-color: #030;
66
+ }
67
+ .humane.humane-libnotify-success,
68
+ .humane-libnotify.humane-libnotify-success {
69
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgMGJ4ysTAwMDAxMAIJxhQWQwMDEwMTKgS2NRhkxg65jGhmke6M6hhHgBS2QHn2LzhygAAAABJRU5ErkJggg==');
70
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,50,0,0.9)), color-stop(1, rgba(0,100,0,0.9))) no-repeat;
71
+ background: -moz-linear-gradient(top, rgba(0,50,0,0.9) 0%, rgba(0,100,0,0.9) 100%) no-repeat;
72
+ background: -webkit-linear-gradient(top, rgba(0,50,0,0.9) 0%, rgba(0,100,0,0.9) 100%) no-repeat;
73
+ background: -ms-linear-gradient(top, rgba(0,50,0,0.9) 0%, rgba(0,100,0,0.9) 100%) no-repeat;
74
+ background: -o-linear-gradient(top, rgba(0,50,0,0.9) 0%, rgba(0,100,0,0.9) 100%) no-repeat;
75
+ background: linear-gradient(top, rgba(0,50,0,0.9) 0%, rgba(0,100,0,0.9) 100%) no-repeat;
76
+ *background-color: #030;
77
+ }
78
+ .humane.humane-libnotify-error,
79
+ .humane-libnotify.humane-libnotify-error {
80
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAPklEQVQokWMwYmB4ysTAwMCATjASFsOmBBvBRJ7x+O0g0wCS7CDTH/RwH7X9MVDuwyaG032D2M2UeIYO7gMAqt8C19Bn7+YAAAAASUVORK5CYII=');
81
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(50,0,0,0.9)), color-stop(1, rgba(100,0,0,0.9))) no-repeat;
82
+ background: -moz-linear-gradient(top, rgba(50,0,0,0.9) 0%, rgba(100,0,0,0.9) 100%) no-repeat;
83
+ background: -webkit-linear-gradient(top, rgba(50,0,0,0.9) 0%, rgba(100,0,0,0.9) 100%) no-repeat;
84
+ background: -ms-linear-gradient(top, rgba(50,0,0,0.9) 0%, rgba(100,0,0,0.9) 100%) no-repeat;
85
+ background: -o-linear-gradient(top, rgba(50,0,0,0.9) 0%, rgba(100,0,0,0.9) 100%) no-repeat;
86
+ background: linear-gradient(top, rgba(50,0,0,0.9) 0%, rgba(100,0,0,0.9) 100%) no-repeat;
87
+ *background-color: #300;
88
+ }
89
+ .humane.humane-animate,
90
+ .humane-libnotify.humane-libnotify-animate {
91
+ opacity: 1;
92
+ -moz-transform: translateY(0);
93
+ -webkit-transform: translateY(0);
94
+ -ms-transform: translateY(0);
95
+ -o-transform: translateY(0);
96
+ transform: translateY(0);
97
+ }
98
+ .humane.humane-animate:hover,
99
+ .humane-libnotify.humane-libnotify-animate:hover {
100
+ opacity: 0.2;
101
+ }
102
+ .humane.humane-animate,
103
+ .humane-libnotify.humane-libnotify-js-animate {
104
+ opacity: 1;
105
+ -moz-transform: translateY(0);
106
+ -webkit-transform: translateY(0);
107
+ -ms-transform: translateY(0);
108
+ -o-transform: translateY(0);
109
+ transform: translateY(0);
110
+ }
111
+ .humane.humane-animate:hover,
112
+ .humane-libnotify.humane-libnotify-js-animate:hover {
113
+ opacity: 0.2;
114
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
115
+ }
@@ -0,0 +1,72 @@
1
+ html,
2
+ body {
3
+ min-height: 100%;
4
+ }
5
+ .humane,
6
+ .humane-original {
7
+ position: fixed;
8
+ -moz-transition: all 0.2s ease-out;
9
+ -webkit-transition: all 0.2s ease-out;
10
+ -ms-transition: all 0.2s ease-out;
11
+ -o-transition: all 0.2s ease-out;
12
+ transition: all 0.2s ease-out;
13
+ z-index: 100000;
14
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
15
+ }
16
+ .humane,
17
+ .humane-original {
18
+ font-family: Ubuntu, Verdana, sans-serif;
19
+ line-height: 40px;
20
+ font-size: 25px;
21
+ top: 25%;
22
+ left: 25%;
23
+ opacity: 0;
24
+ width: 50%;
25
+ min-height: 40px;
26
+ padding: 10px;
27
+ text-align: center;
28
+ background-color: #000;
29
+ color: #fff;
30
+ -webkit-border-radius: 15px;
31
+ border-radius: 15px;
32
+ }
33
+ .humane p,
34
+ .humane-original p,
35
+ .humane ul,
36
+ .humane-original ul {
37
+ margin: 0;
38
+ padding: 0;
39
+ }
40
+ .humane ul,
41
+ .humane-original ul {
42
+ list-style: none;
43
+ }
44
+ .humane.humane-original-info,
45
+ .humane-original.humane-original-info {
46
+ background-color: #030;
47
+ }
48
+ .humane.humane-original-success,
49
+ .humane-original.humane-original-success {
50
+ background-color: #030;
51
+ }
52
+ .humane.humane-original-error,
53
+ .humane-original.humane-original-error {
54
+ background-color: #300;
55
+ }
56
+ .humane.humane-animate,
57
+ .humane-original.humane-original-animate {
58
+ opacity: 0.8;
59
+ }
60
+ .humane.humane-animate:hover,
61
+ .humane-original.humane-original-animate:hover {
62
+ opacity: 0.6;
63
+ }
64
+ .humane.humane-js-animate,
65
+ .humane-original.humane-original-js-animate {
66
+ opacity: 0.8;
67
+ }
68
+ .humane.humane-js-animate:hover,
69
+ .humane-original.humane-original-js-animate:hover {
70
+ opacity: 0.6;
71
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
72
+ }
@@ -0,0 +1,129 @@
1
+ **knockout-sortable** is a binding for [Knockout.js](http://knockoutjs.com/) designed to connect observableArrays with jQuery UI's sortable functionality. This allows a user to drag and drop items within a list or between lists and have the corresponding observableArrays updated appropriately.
2
+
3
+ **Basic Usage**
4
+
5
+ * using anonymous templates:
6
+
7
+ ```html
8
+ <ul data-bind="sortable: items">
9
+ <li data-bind="text: name"></li>
10
+ </ul>
11
+ ```
12
+
13
+
14
+ * using named templates:
15
+
16
+ ```html
17
+ <ul data-bind="sortable: { template: 'itemTmpl', data: items }"></ul>
18
+ <script id="itemTmpl" type="text/html"><li data-bind="text: name"></li></script>
19
+ ```
20
+
21
+ Note: The sortable binding assumes that the child "templates" have a single container element. You cannot use containerless bindings (comment-based) bindings at the top-level of your template, as the jQuery draggable/sortable functionality needs an element to operate on.
22
+
23
+ Note2: (*Update: 0.9.0 adds code to automatically strip leading/trailing whitespace*) When using named templates, you will have the best results across browsers, if you ensure that there is only a single top-level node inside your template with no surrounding text nodes. Inside of the top-level nodes, you can freely use whitespace/text nodes. So, you will want:
24
+
25
+ ```html
26
+ <!-- good - no text nodes surrounding template root node -->
27
+ <script id="goodTmpl" type="text/html"><li data-bind="text: name">
28
+ <span data-bind="text: name"></span>
29
+ </li></script>
30
+
31
+ <!-- bad -->
32
+ <script id="badTmpl" type="text/html">
33
+ <li>
34
+ <span data-bind="text: name"></span>
35
+ </li>
36
+ </script>
37
+
38
+ ```
39
+
40
+
41
+
42
+
43
+
44
+ **Additional Options**
45
+
46
+ * **connectClass** - specify the class that should be used to indicate a droppable target. The default class is "ko_container". This value can be passed in the binding or configured globally by setting `ko.bindingHandlers.sortable.connectClass`.
47
+
48
+ * **allowDrop** - specify whether this container should be a target for drops. This can be a static value, observable, or a function that is passed the observableArray as its first argument. If a function is specified, then it will be executed in a computed observable, so it will run again whenever any dependencies are updated. This option can be passed in the binding or configured globally by setting `ko.bindingHandlers.sortable.allowDrop`.
49
+
50
+ * **beforeMove** - specify a function to execute prior to an item being moved from its original position to its new position in the data. This function receives an object for its first argument that contains the following information:
51
+ * `arg.item` - the actual item being moved
52
+ * `arg.sourceIndex` - the position of the item in the original observableArray
53
+ * `arg.sourceParent` - the original observableArray
54
+ * `arg.sourceParentNode` - the container node of the original list
55
+ * `arg.targetIndex` - the position of the item in the destination observableArray
56
+ * `arg.targetParent` - the destination observableArray
57
+ * `arg.cancelDrop` - this defaults to false and can be set to true to indicate that the drop should be cancelled.
58
+
59
+ This option can be passed in the binding or configured globally by setting `ko.bindingHandlers.sortable.beforeMove`. This callback also receives the `event` and `ui` objects as the second and third arguments.
60
+
61
+ * **afterMove** - specify a function to execute after an item has been moved to its new destination. This function receives an object for its first argument that contains the following information:
62
+ * `arg.item` - the actual item being moved
63
+ * `arg.sourceIndex` - the position of the item in the original observableArray
64
+ * `arg.sourceParent` - the original observableArray
65
+ * `arg.sourceParentNode` - the container node of the original list. Useful if moving items between lists, but within a single array. The value of `this` in the callback will be the target container node.
66
+ * `arg.targetIndex` - the position of the item in the destination observableArray
67
+ * `arg.targetParent` - the destination observableArray
68
+
69
+ This option can be passed in the binding or configured globally by setting `ko.bindingHandlers.sortable.afterMove`. This callback also receives the `event` and `ui` objects as the second and third arguments.
70
+
71
+ * **dragged** - specify a function to execute after a draggable item has been dropped into a sortable. This callback receives the drag item as the first argument, the `event` as the second argument, and the `ui` object as the third argument. If the function returns a value, then it will be used as item that is dropped into the sortable. This can be used as an alternative to the original item including a `clone` function.
72
+
73
+ * **isEnabled** - specify whether the sortable widget should be enabled. If this is an observable, then it will enable/disable the widget when the observable's value changes. This option can be passed in the binding or configured globally by setting `ko.bindingHandlers.sortable.isEnabled`.
74
+
75
+ * **options** - specify any additional options to pass on to the `.sortable` jQuery UI call. These options can be specified in the binding or specified globally by setting `ko.bindingHandlers.sortable.options`.
76
+
77
+ * **afterAdd, beforeRemove, afterRender, includeDestroyed, templateEngine, as** - this binding will pass these options on to the template binding.
78
+
79
+ **Draggable binding**
80
+
81
+ This library also includes a `draggable` binding that you can place on single items that can be moved into a `sortable` collection. When the item is dropped into a sortable, the plugin will attempt to call a `clone` function on the item to make a suitable copy of it, otherwise it will use the item directly. Additionally, the `dragged` callback can be used to provide a copy of the object, as described above.
82
+
83
+ * using anonymous templates:
84
+
85
+ ```html
86
+ <div data-bind="draggable: item">
87
+ <span data-bind="text: name"></span>
88
+ </div>
89
+ ```
90
+
91
+ * using named templates:
92
+
93
+ ```html
94
+ <div data-bind="draggable: { template: 'itemTmpl', data: item }"></div>
95
+ <script id="itemTmpl" type="text/html"><span data-bind="text: name"></span></script>
96
+ ```
97
+
98
+ **Additional Options**
99
+
100
+ * **connectClass** - specify a class used to indicate which sortables that this draggable should be allowed to drop into. The default class is "ko_container". This value can be passed in the binding or configured globally by setting `ko.bindingHandlers.draggable.connectClass`.
101
+
102
+ * **isEnabled** - specify whether the draggable widget should be enabled. If this is an observable, then it will enable/disable the widget when the observable's value changes. This option can be passed in the binding or configured globally by setting `ko.bindingHandlers.draggable.isEnabled`.
103
+
104
+ * **options** - specify any additional options to pass on to the `.draggable` jQuery UI call. These options can be specified in the binding or specified globally by setting `ko.bindingHandlers.draggable.options`.
105
+
106
+
107
+ **Dependencies**
108
+
109
+ * Knockout 2.0+
110
+ * jQuery - no specific version identified yet as minimum
111
+ * jQuery UI - no specific version identfied yet as minimum
112
+
113
+ **Touch Support** - for touch support take a look at: http://touchpunch.furf.com/
114
+
115
+
116
+ **Build:** This project uses [grunt](http://gruntjs.com/) for building/minifying.
117
+
118
+ **Examples** The `examples` directory contains samples that include a simple sortable list, connected lists, and a seating chart that takes advantage of many of the additional options.
119
+
120
+ **Fiddles**
121
+
122
+ * simple: http://jsfiddle.net/rniemeyer/hw9B2/
123
+ * connected: http://jsfiddle.net/rniemeyer/Jr2rE/
124
+ * draggable: http://jsfiddle.net/rniemeyer/AC49j/
125
+ * seating chart: http://jsfiddle.net/rniemeyer/UdXr4/
126
+
127
+
128
+
129
+ **License**: MIT [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php)
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "knockout-sortable",
3
+ "version": "0.9.3",
4
+ "main": "./build/knockout-sortable.min.js",
5
+ "ignore": [
6
+ "examples",
7
+ "ext",
8
+ "reports",
9
+ "spec",
10
+ "src",
11
+ "Gruntfile.js",
12
+ "package.json",
13
+ ".gitignore"
14
+ ]
15
+ }