├── images
├── ui-icons_222222_256x240.png
├── ui-icons_2e83ff_256x240.png
├── ui-icons_454545_256x240.png
├── ui-icons_888888_256x240.png
├── ui-icons_cd0a0a_256x240.png
├── ui-bg_glass_55_fbf9ee_1x400.png
├── ui-bg_glass_65_ffffff_1x400.png
├── ui-bg_glass_75_dadada_1x400.png
├── ui-bg_glass_75_e6e6e6_1x400.png
├── ui-bg_glass_95_fef1ec_1x400.png
└── ui-bg_highlight-soft_75_cccccc_1x100.png
├── README.md
├── s.css
├── index.js
├── jquery-ui.structure.css
├── jquery.knob.min.js
├── index.html
├── jquery-ui.theme.css
├── jquery-ui.css
└── jsrender.js
/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/images/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-icons_888888_256x240.png
--------------------------------------------------------------------------------
/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benschmaus/blipweb/HEAD/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Blipweb is a simple web app for creating and sharing patches for MeeBlip anode
2 | using the Web MIDI API, which is currently only supported by Chrome.
3 |
4 | You can see a video of it in action at https://www.youtube.com/watch?v=ToHkEqEFFlI
5 |
6 | To create patches, select the a) MIDI port your MeeBlip is connected to and
7 | b) MIDI channel your MeeBlip is configured to use. Change the knobs and switches and press "send to meeblip" for your changes to take effect. (Make sure you've got the right port and channel selected!)
8 |
9 | To save your patch click "get patch link". You can save the link to a bookmarks folder, put it in a web page, etc.
10 | In this way you can create shareable libraries of patches for your MeeBlip.
11 |
12 | There is a soundcloud group where you can share your patches. Find it at https://soundcloud.com/groups/meeblip-patches.
13 |
14 | blipweb Patches can also serve as a reference guide for creating sounds on your MeeBlip. For example,
15 | if you load a patch link in the app you can position the tactile knobs and switches on your MeeBlip to
16 | mirror those in the patch config to dial in the sound on your synth. Note that you need to use blipweb to control MeeBlip's MIDI-only params!
17 |
18 | Also, the resonance control is not supported as it's analog only.
19 |
20 | This version has been tested on my local system and works well. You can try out the
21 | latest stable version at https://factotumo.com/blipweb/.
22 |
23 | Read more about blipweb at https://factotumo.com/2016/02/blipweb-web-midi-patch-editor-for-meeblip-anode/
24 |
25 | Feedback is welcome.
26 |
--------------------------------------------------------------------------------
/s.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: sans-serif;
3 | }
4 |
5 | h1 {
6 | font-size: 1.5em;
7 | }
8 |
9 | .vt323 {
10 | font-family: 'VT323', monospace;
11 | font-size: 40px;
12 | }
13 |
14 | #controlBar {
15 | font-size: 1em;
16 | padding: 4px;
17 |
18 | }
19 |
20 | .foo {
21 | font-size: 1.5em;
22 | }
23 |
24 | .foo {
25 | color: #ff0000;
26 | }
27 |
28 | #container {
29 | border: 0px solid #000;
30 | margin-top: 25px;
31 | width: 80%;
32 | margin-left: 10%;
33 | margin-right: 10%;
34 | }
35 |
36 | #envelope {
37 | float: left;
38 | }
39 |
40 | #filter {
41 |
42 | }
43 |
44 | #oscillators {
45 | float: left;
46 | }
47 |
48 | #waveBanks {
49 | position: relative;
50 | font-size: .7em;
51 | border: 1px solid #333;
52 | width: 150px;
53 | text-align: center;
54 | top: -10px;
55 | left: 10px;
56 | }
57 |
58 | #waveBanks tr {
59 | }
60 |
61 | #waveBanks td {
62 | }
63 |
64 | #lfo {
65 |
66 | }
67 |
68 | #shareUrl {
69 | font-size: .7em;
70 | }
71 |
72 | .ui-dialog-titlebar {
73 | font-size: .7em !important;
74 | }
75 |
76 |
77 | input.controlButton {
78 | font-size: .7em;
79 | font-weight: bold;
80 | }
81 |
82 | .ui-button-text {
83 | font-size: .7em;
84 | }
85 |
86 | .knobGroup {
87 | border: 0px solid #000;
88 | margin-right: 5%;
89 | }
90 |
91 | .knobGroup h3 {
92 | font-size: .9em;
93 | }
94 |
95 | .knobLabelPair {
96 | width: 110px;
97 | float: left;
98 | }
99 |
100 | .knobLabelPairStacked {
101 | width: 105px;
102 | }
103 |
104 | .knobLabelPairWide {
105 | border: 0px solid #000;
106 | width: 120px;
107 | float: left;
108 | }
109 |
110 | .knobGroup h2 {
111 | padding: 3px;
112 | background: #000;
113 | color: #eee;
114 | font-size: 1em;
115 | }
116 |
117 | .clear {
118 | clear: both;
119 | height: 1px;
120 | }
121 |
122 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | var formToCCs = {
2 | "aDecay": 54,
3 | "fDecay": 53,
4 | "sustain": 64,
5 | "fCut": 52,
6 | "wave": 51,
7 | "detune": 50,
8 | "octave": 65,
9 | "lDepth": 48,
10 | "lRate": 49,
11 | "lDest": 67,
12 | "pwmSweep": 66,
13 | "glide": 55,
14 | "vcfEnvAmount": 56,
15 | "lRand": 68,
16 | "lNoteRetrig": 69,
17 | "oscBWave": 70
18 | };
19 |
20 |
21 | var midi = {
22 |
23 | onMIDISuccess: function(midiAccess) {
24 | console.log('MIDI Access Object', midiAccess);
25 | //console.log(this);
26 |
27 | var self = this;
28 | midiAccess.onstatechange = function(e) {
29 | self.onMIDIAccessChange(e);
30 | }
31 | this.midiAccess = midiAccess;
32 | this.inputs = {};
33 | this.outputs = {};
34 |
35 | this.initPorts();
36 | },
37 |
38 | initPorts: function() {
39 |
40 | var self = this;
41 |
42 | var inputs = this.midiAccess.inputs;
43 | if (inputs.size > 0) {
44 | inputs.forEach(
45 | function(port, key) {
46 | //console.log(port);
47 | self.registerPort(port);
48 | }
49 | );
50 | } else {
51 |
52 | }
53 |
54 | var outputs = this.midiAccess.outputs;
55 | if (outputs.size > 0) {
56 | outputs.forEach(
57 | function(port, key) {
58 | self.registerPort(port);
59 | self.renderPort(port);
60 | }
61 | );
62 | } else {
63 |
64 | }
65 | },
66 |
67 | onMIDIAccessChange: function(e) {
68 | console.log("MIDI access change: " + e);
69 | //console.log(this);
70 | var port = e.port;
71 |
72 | if (port.type == "input") {
73 | if (this.inputs[port.name] === undefined) {
74 | this.registerPort(port);
75 | }
76 | } else {
77 | if (this.outputs[port.name] === undefined) {
78 | this.registerPort(port);
79 | }
80 | this.renderPort(port);
81 | }
82 | },
83 |
84 | renderPort: function(port) {
85 | var portOptions = $("#port").children();
86 |
87 | if (port.state == "connected") {
88 | if ((portOptions.length == 1) && (portOptions.get(0).text == "none")) {
89 | $("#port").empty();
90 | }
91 |
92 | if (!$("#" + port.type + port.id).length) {
93 | var html = '';
94 | $("#port").append(html);
95 | }
96 | } else {
97 | $("#" + port.type + port.id).remove();
98 |
99 | if ($("#port").children().length == 0) {
100 | $("#port").append('')
101 | }
102 | }
103 | },
104 |
105 | registerPort: function(port) {
106 | var self = this;
107 | if (port.type == "input") {
108 | this.inputs[port.name] = port;
109 | port.onmidimessage = function(m) { self.onMIDIMessage(m); };
110 | } else {
111 | this.outputs[port.name] = port;
112 | }
113 |
114 | port.onstatechange = function(e) { self.onPortStateChange(e); };
115 | },
116 |
117 | onMIDIFailure: function(e) {
118 | // when we get a failed response, run this code
119 | alert("No access to MIDI devices or your browser doesn't support WebMIDI API. Please use WebMIDIAPIShim " + e);
120 | },
121 |
122 | onPortStateChange: function(event) {
123 | console.log("port state change: " + event);
124 | },
125 |
126 | onMIDIMessage: function(message) {
127 | //console.log(message);
128 | }
129 |
130 | };
131 |
132 | if (navigator.requestMIDIAccess) {
133 |
134 | navigator.requestMIDIAccess({
135 | sysex: false
136 | }).then(
137 | function(midiAccess) { midi.onMIDISuccess(midiAccess); },
138 | function(e) { midi.onMIDIFailure(e); }
139 | );
140 |
141 | } else {
142 | alert("No MIDI support in your browser.");
143 | }
--------------------------------------------------------------------------------
/jquery-ui.structure.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery UI CSS Framework 1.11.4
3 | * http://jqueryui.com
4 | *
5 | * Copyright jQuery Foundation and other contributors
6 | * Released under the MIT license.
7 | * http://jquery.org/license
8 | *
9 | * http://api.jqueryui.com/category/theming/
10 | */
11 |
12 | /* Layout helpers
13 | ----------------------------------*/
14 | .ui-helper-hidden {
15 | display: none;
16 | }
17 | .ui-helper-hidden-accessible {
18 | border: 0;
19 | clip: rect(0 0 0 0);
20 | height: 1px;
21 | margin: -1px;
22 | overflow: hidden;
23 | padding: 0;
24 | position: absolute;
25 | width: 1px;
26 | }
27 | .ui-helper-reset {
28 | margin: 0;
29 | padding: 0;
30 | border: 0;
31 | outline: 0;
32 | line-height: 1.3;
33 | text-decoration: none;
34 | font-size: 100%;
35 | list-style: none;
36 | }
37 | .ui-helper-clearfix:before,
38 | .ui-helper-clearfix:after {
39 | content: "";
40 | display: table;
41 | border-collapse: collapse;
42 | }
43 | .ui-helper-clearfix:after {
44 | clear: both;
45 | }
46 | .ui-helper-clearfix {
47 | min-height: 0; /* support: IE7 */
48 | }
49 | .ui-helper-zfix {
50 | width: 100%;
51 | height: 100%;
52 | top: 0;
53 | left: 0;
54 | position: absolute;
55 | opacity: 0;
56 | filter:Alpha(Opacity=0); /* support: IE8 */
57 | }
58 |
59 | .ui-front {
60 | z-index: 100;
61 | }
62 |
63 |
64 | /* Interaction Cues
65 | ----------------------------------*/
66 | .ui-state-disabled {
67 | cursor: default !important;
68 | }
69 |
70 |
71 | /* Icons
72 | ----------------------------------*/
73 |
74 | /* states and images */
75 | .ui-icon {
76 | display: block;
77 | text-indent: -99999px;
78 | overflow: hidden;
79 | background-repeat: no-repeat;
80 | }
81 |
82 |
83 | /* Misc visuals
84 | ----------------------------------*/
85 |
86 | /* Overlays */
87 | .ui-widget-overlay {
88 | position: fixed;
89 | top: 0;
90 | left: 0;
91 | width: 100%;
92 | height: 100%;
93 | }
94 | .ui-draggable-handle {
95 | -ms-touch-action: none;
96 | touch-action: none;
97 | }
98 | .ui-resizable {
99 | position: relative;
100 | }
101 | .ui-resizable-handle {
102 | position: absolute;
103 | font-size: 0.1px;
104 | display: block;
105 | -ms-touch-action: none;
106 | touch-action: none;
107 | }
108 | .ui-resizable-disabled .ui-resizable-handle,
109 | .ui-resizable-autohide .ui-resizable-handle {
110 | display: none;
111 | }
112 | .ui-resizable-n {
113 | cursor: n-resize;
114 | height: 7px;
115 | width: 100%;
116 | top: -5px;
117 | left: 0;
118 | }
119 | .ui-resizable-s {
120 | cursor: s-resize;
121 | height: 7px;
122 | width: 100%;
123 | bottom: -5px;
124 | left: 0;
125 | }
126 | .ui-resizable-e {
127 | cursor: e-resize;
128 | width: 7px;
129 | right: -5px;
130 | top: 0;
131 | height: 100%;
132 | }
133 | .ui-resizable-w {
134 | cursor: w-resize;
135 | width: 7px;
136 | left: -5px;
137 | top: 0;
138 | height: 100%;
139 | }
140 | .ui-resizable-se {
141 | cursor: se-resize;
142 | width: 12px;
143 | height: 12px;
144 | right: 1px;
145 | bottom: 1px;
146 | }
147 | .ui-resizable-sw {
148 | cursor: sw-resize;
149 | width: 9px;
150 | height: 9px;
151 | left: -5px;
152 | bottom: -5px;
153 | }
154 | .ui-resizable-nw {
155 | cursor: nw-resize;
156 | width: 9px;
157 | height: 9px;
158 | left: -5px;
159 | top: -5px;
160 | }
161 | .ui-resizable-ne {
162 | cursor: ne-resize;
163 | width: 9px;
164 | height: 9px;
165 | right: -5px;
166 | top: -5px;
167 | }
168 | .ui-selectable {
169 | -ms-touch-action: none;
170 | touch-action: none;
171 | }
172 | .ui-selectable-helper {
173 | position: absolute;
174 | z-index: 100;
175 | border: 1px dotted black;
176 | }
177 | .ui-sortable-handle {
178 | -ms-touch-action: none;
179 | touch-action: none;
180 | }
181 | .ui-button {
182 | display: inline-block;
183 | position: relative;
184 | padding: 0;
185 | line-height: normal;
186 | margin-right: .1em;
187 | cursor: pointer;
188 | vertical-align: middle;
189 | text-align: center;
190 | overflow: visible; /* removes extra width in IE */
191 | }
192 | .ui-button,
193 | .ui-button:link,
194 | .ui-button:visited,
195 | .ui-button:hover,
196 | .ui-button:active {
197 | text-decoration: none;
198 | }
199 | /* to make room for the icon, a width needs to be set here */
200 | .ui-button-icon-only {
201 | width: 2.2em;
202 | }
203 | /* button elements seem to need a little more width */
204 | button.ui-button-icon-only {
205 | width: 2.4em;
206 | }
207 | .ui-button-icons-only {
208 | width: 3.4em;
209 | }
210 | button.ui-button-icons-only {
211 | width: 3.7em;
212 | }
213 |
214 | /* button text element */
215 | .ui-button .ui-button-text {
216 | display: block;
217 | line-height: normal;
218 | }
219 | .ui-button-text-only .ui-button-text {
220 | padding: .4em 1em;
221 | }
222 | .ui-button-icon-only .ui-button-text,
223 | .ui-button-icons-only .ui-button-text {
224 | padding: .4em;
225 | text-indent: -9999999px;
226 | }
227 | .ui-button-text-icon-primary .ui-button-text,
228 | .ui-button-text-icons .ui-button-text {
229 | padding: .4em 1em .4em 2.1em;
230 | }
231 | .ui-button-text-icon-secondary .ui-button-text,
232 | .ui-button-text-icons .ui-button-text {
233 | padding: .4em 2.1em .4em 1em;
234 | }
235 | .ui-button-text-icons .ui-button-text {
236 | padding-left: 2.1em;
237 | padding-right: 2.1em;
238 | }
239 | /* no icon support for input elements, provide padding by default */
240 | input.ui-button {
241 | padding: .4em 1em;
242 | }
243 |
244 | /* button icon element(s) */
245 | .ui-button-icon-only .ui-icon,
246 | .ui-button-text-icon-primary .ui-icon,
247 | .ui-button-text-icon-secondary .ui-icon,
248 | .ui-button-text-icons .ui-icon,
249 | .ui-button-icons-only .ui-icon {
250 | position: absolute;
251 | top: 50%;
252 | margin-top: -8px;
253 | }
254 | .ui-button-icon-only .ui-icon {
255 | left: 50%;
256 | margin-left: -8px;
257 | }
258 | .ui-button-text-icon-primary .ui-button-icon-primary,
259 | .ui-button-text-icons .ui-button-icon-primary,
260 | .ui-button-icons-only .ui-button-icon-primary {
261 | left: .5em;
262 | }
263 | .ui-button-text-icon-secondary .ui-button-icon-secondary,
264 | .ui-button-text-icons .ui-button-icon-secondary,
265 | .ui-button-icons-only .ui-button-icon-secondary {
266 | right: .5em;
267 | }
268 |
269 | /* button sets */
270 | .ui-buttonset {
271 | margin-right: 7px;
272 | }
273 | .ui-buttonset .ui-button {
274 | margin-left: 0;
275 | margin-right: -.3em;
276 | }
277 |
278 | /* workarounds */
279 | /* reset extra padding in Firefox, see h5bp.com/l */
280 | input.ui-button::-moz-focus-inner,
281 | button.ui-button::-moz-focus-inner {
282 | border: 0;
283 | padding: 0;
284 | }
285 | .ui-dialog {
286 | overflow: hidden;
287 | position: absolute;
288 | top: 0;
289 | left: 0;
290 | padding: .2em;
291 | outline: 0;
292 | }
293 | .ui-dialog .ui-dialog-titlebar {
294 | padding: .4em 1em;
295 | position: relative;
296 | }
297 | .ui-dialog .ui-dialog-title {
298 | float: left;
299 | margin: .1em 0;
300 | white-space: nowrap;
301 | width: 90%;
302 | overflow: hidden;
303 | text-overflow: ellipsis;
304 | }
305 | .ui-dialog .ui-dialog-titlebar-close {
306 | position: absolute;
307 | right: .3em;
308 | top: 50%;
309 | width: 20px;
310 | margin: -10px 0 0 0;
311 | padding: 1px;
312 | height: 20px;
313 | }
314 | .ui-dialog .ui-dialog-content {
315 | position: relative;
316 | border: 0;
317 | padding: .5em 1em;
318 | background: none;
319 | overflow: auto;
320 | }
321 | .ui-dialog .ui-dialog-buttonpane {
322 | text-align: left;
323 | border-width: 1px 0 0 0;
324 | background-image: none;
325 | margin-top: .5em;
326 | padding: .3em 1em .5em .4em;
327 | }
328 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
329 | float: right;
330 | }
331 | .ui-dialog .ui-dialog-buttonpane button {
332 | margin: .5em .4em .5em 0;
333 | cursor: pointer;
334 | }
335 | .ui-dialog .ui-resizable-se {
336 | width: 12px;
337 | height: 12px;
338 | right: -5px;
339 | bottom: -5px;
340 | background-position: 16px 16px;
341 | }
342 | .ui-draggable .ui-dialog-titlebar {
343 | cursor: move;
344 | }
345 | .ui-menu {
346 | list-style: none;
347 | padding: 0;
348 | margin: 0;
349 | display: block;
350 | outline: none;
351 | }
352 | .ui-menu .ui-menu {
353 | position: absolute;
354 | }
355 | .ui-menu .ui-menu-item {
356 | position: relative;
357 | margin: 0;
358 | padding: 3px 1em 3px .4em;
359 | cursor: pointer;
360 | min-height: 0; /* support: IE7 */
361 | /* support: IE10, see #8844 */
362 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
363 | }
364 | .ui-menu .ui-menu-divider {
365 | margin: 5px 0;
366 | height: 0;
367 | font-size: 0;
368 | line-height: 0;
369 | border-width: 1px 0 0 0;
370 | }
371 | .ui-menu .ui-state-focus,
372 | .ui-menu .ui-state-active {
373 | margin: -1px;
374 | }
375 |
376 | /* icon support */
377 | .ui-menu-icons {
378 | position: relative;
379 | }
380 | .ui-menu-icons .ui-menu-item {
381 | padding-left: 2em;
382 | }
383 |
384 | /* left-aligned */
385 | .ui-menu .ui-icon {
386 | position: absolute;
387 | top: 0;
388 | bottom: 0;
389 | left: .2em;
390 | margin: auto 0;
391 | }
392 |
393 | /* right-aligned */
394 | .ui-menu .ui-menu-icon {
395 | left: auto;
396 | right: 0;
397 | }
398 | .ui-selectmenu-menu {
399 | padding: 0;
400 | margin: 0;
401 | position: absolute;
402 | top: 0;
403 | left: 0;
404 | display: none;
405 | }
406 | .ui-selectmenu-menu .ui-menu {
407 | overflow: auto;
408 | /* Support: IE7 */
409 | overflow-x: hidden;
410 | padding-bottom: 1px;
411 | }
412 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
413 | font-size: 1em;
414 | font-weight: bold;
415 | line-height: 1.5;
416 | padding: 2px 0.4em;
417 | margin: 0.5em 0 0 0;
418 | height: auto;
419 | border: 0;
420 | }
421 | .ui-selectmenu-open {
422 | display: block;
423 | }
424 | .ui-selectmenu-button {
425 | display: inline-block;
426 | overflow: hidden;
427 | position: relative;
428 | text-decoration: none;
429 | cursor: pointer;
430 | }
431 | .ui-selectmenu-button span.ui-icon {
432 | right: 0.5em;
433 | left: auto;
434 | margin-top: -8px;
435 | position: absolute;
436 | top: 50%;
437 | }
438 | .ui-selectmenu-button span.ui-selectmenu-text {
439 | text-align: left;
440 | padding: 0.4em 2.1em 0.4em 1em;
441 | display: block;
442 | line-height: 1.4;
443 | overflow: hidden;
444 | text-overflow: ellipsis;
445 | white-space: nowrap;
446 | }
447 |
--------------------------------------------------------------------------------
/jquery.knob.min.js:
--------------------------------------------------------------------------------
1 | (function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var t={},n=Math.max,r=Math.min;t.c={};t.c.d=e(document);t.c.t=function(e){return e.originalEvent.touches.length-1};t.o=function(){var n=this;this.o=null;this.$=null;this.i=null;this.g=null;this.v=null;this.cv=null;this.x=0;this.y=0;this.w=0;this.h=0;this.$c=null;this.c=null;this.t=0;this.isInit=false;this.fgColor=null;this.pColor=null;this.dH=null;this.cH=null;this.eH=null;this.rH=null;this.scale=1;this.relative=false;this.relativeWidth=false;this.relativeHeight=false;this.$div=null;this.run=function(){var t=function(e,t){var r;for(r in t){n.o[r]=t[r]}n._carve().init();n._configure()._draw()};if(this.$.data("kontroled"))return;this.$.data("kontroled",true);this.extend();this.o=e.extend({min:this.$.data("min")!==undefined?this.$.data("min"):0,max:this.$.data("max")!==undefined?this.$.data("max"):100,stopper:true,readOnly:this.$.data("readonly")||this.$.attr("readonly")==="readonly",cursor:this.$.data("cursor")===true&&30||this.$.data("cursor")||0,thickness:this.$.data("thickness")&&Math.max(Math.min(this.$.data("thickness"),1),.01)||.35,lineCap:this.$.data("linecap")||"butt",width:this.$.data("width")||200,height:this.$.data("height")||200,displayInput:this.$.data("displayinput")==null||this.$.data("displayinput"),displayPrevious:this.$.data("displayprevious"),fgColor:this.$.data("fgcolor")||"#87CEEB",inputColor:this.$.data("inputcolor"),font:this.$.data("font")||"Arial",fontWeight:this.$.data("font-weight")||"bold",inline:false,step:this.$.data("step")||1,rotation:this.$.data("rotation"),draw:null,change:null,cancel:null,release:null,format:function(e){return e},parse:function(e){return parseFloat(e)}},this.o);this.o.flip=this.o.rotation==="anticlockwise"||this.o.rotation==="acw";if(!this.o.inputColor){this.o.inputColor=this.o.fgColor}if(this.$.is("fieldset")){this.v={};this.i=this.$.find("input");this.i.each(function(t){var r=e(this);n.i[t]=r;n.v[t]=n.o.parse(r.val());r.bind("change blur",function(){var e={};e[t]=r.val();n.val(n._validate(e))})});this.$.find("legend").remove()}else{this.i=this.$;this.v=this.o.parse(this.$.val());this.v===""&&(this.v=this.o.min);this.$.bind("change blur",function(){n.val(n._validate(n.o.parse(n.$.val())))})}!this.o.displayInput&&this.$.hide();this.$c=e(document.createElement("canvas")).attr({width:this.o.width,height:this.o.height});this.$div=e('
');this.$.wrap(this.$div).before(this.$c);this.$div=this.$.parent();if(typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(this.$c[0])}this.c=this.$c[0].getContext?this.$c[0].getContext("2d"):null;if(!this.c){throw{name:"CanvasNotSupportedException",message:"Canvas not supported. Please use excanvas on IE8.0.",toString:function(){return this.name+": "+this.message}}}this.scale=(window.devicePixelRatio||1)/(this.c.webkitBackingStorePixelRatio||this.c.mozBackingStorePixelRatio||this.c.msBackingStorePixelRatio||this.c.oBackingStorePixelRatio||this.c.backingStorePixelRatio||1);this.relativeWidth=this.o.width%1!==0&&this.o.width.indexOf("%");this.relativeHeight=this.o.height%1!==0&&this.o.height.indexOf("%");this.relative=this.relativeWidth||this.relativeHeight;this._carve();if(this.v instanceof Object){this.cv={};this.copy(this.v,this.cv)}else{this.cv=this.v}this.$.bind("configure",t).parent().bind("configure",t);this._listen()._configure()._xy().init();this.isInit=true;this.$.val(this.o.format(this.v));this._draw();return this};this._carve=function(){if(this.relative){var e=this.relativeWidth?this.$div.parent().width()*parseInt(this.o.width)/100:this.$div.parent().width(),t=this.relativeHeight?this.$div.parent().height()*parseInt(this.o.height)/100:this.$div.parent().height();this.w=this.h=Math.min(e,t)}else{this.w=this.o.width;this.h=this.o.height}this.$div.css({width:this.w+"px",height:this.h+"px"});this.$c.attr({width:this.w,height:this.h});if(this.scale!==1){this.$c[0].width=this.$c[0].width*this.scale;this.$c[0].height=this.$c[0].height*this.scale;this.$c.width(this.w);this.$c.height(this.h)}return this};this._draw=function(){var e=true;n.g=n.c;n.clear();n.dH&&(e=n.dH());e!==false&&n.draw()};this._touch=function(e){var r=function(e){var t=n.xy2val(e.originalEvent.touches[n.t].pageX,e.originalEvent.touches[n.t].pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};this.t=t.c.t(e);r(e);t.c.d.bind("touchmove.k",r).bind("touchend.k",function(){t.c.d.unbind("touchmove.k touchend.k");n.val(n.cv)});return this};this._mouse=function(e){var r=function(e){var t=n.xy2val(e.pageX,e.pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};r(e);t.c.d.bind("mousemove.k",r).bind("keyup.k",function(e){if(e.keyCode===27){t.c.d.unbind("mouseup.k mousemove.k keyup.k");if(n.eH&&n.eH()===false)return;n.cancel()}}).bind("mouseup.k",function(e){t.c.d.unbind("mousemove.k mouseup.k keyup.k");n.val(n.cv)});return this};this._xy=function(){var e=this.$c.offset();this.x=e.left;this.y=e.top;return this};this._listen=function(){if(!this.o.readOnly){this.$c.bind("mousedown",function(e){e.preventDefault();n._xy()._mouse(e)}).bind("touchstart",function(e){e.preventDefault();n._xy()._touch(e)});this.listen()}else{this.$.attr("readonly","readonly")}if(this.relative){e(window).resize(function(){n._carve().init();n._draw()})}return this};this._configure=function(){if(this.o.draw)this.dH=this.o.draw;if(this.o.change)this.cH=this.o.change;if(this.o.cancel)this.eH=this.o.cancel;if(this.o.release)this.rH=this.o.release;if(this.o.displayPrevious){this.pColor=this.h2rgba(this.o.fgColor,"0.4");this.fgColor=this.h2rgba(this.o.fgColor,"0.6")}else{this.fgColor=this.o.fgColor}return this};this._clear=function(){this.$c[0].width=this.$c[0].width};this._validate=function(e){var t=~~((e<0?-.5:.5)+e/this.o.step)*this.o.step;return Math.round(t*100)/100};this.listen=function(){};this.extend=function(){};this.init=function(){};this.change=function(e){};this.val=function(e){};this.xy2val=function(e,t){};this.draw=function(){};this.clear=function(){this._clear()};this.h2rgba=function(e,t){var n;e=e.substring(1,7);n=[parseInt(e.substring(0,2),16),parseInt(e.substring(2,4),16),parseInt(e.substring(4,6),16)];return"rgba("+n[0]+","+n[1]+","+n[2]+","+t+")"};this.copy=function(e,t){for(var n in e){t[n]=e[n]}}};t.Dial=function(){t.o.call(this);this.startAngle=null;this.xy=null;this.radius=null;this.lineWidth=null;this.cursorExt=null;this.w2=null;this.PI2=2*Math.PI;this.extend=function(){this.o=e.extend({bgColor:this.$.data("bgcolor")||"#EEEEEE",angleOffset:this.$.data("angleoffset")||0,angleArc:this.$.data("anglearc")||360,inline:true},this.o)};this.val=function(e,t){if(null!=e){e=this.o.parse(e);if(t!==false&&e!=this.v&&this.rH&&this.rH(e)===false){return}this.cv=this.o.stopper?n(r(e,this.o.max),this.o.min):e;this.v=this.cv;this.$.val(this.o.format(this.v));this._draw()}else{return this.v}};this.xy2val=function(e,t){var i,s;i=Math.atan2(e-(this.x+this.w2),-(t-this.y-this.w2))-this.angleOffset;if(this.o.flip){i=this.angleArc-i-this.PI2}if(this.angleArc!=this.PI2&&i<0&&i>-.5){i=0}else if(i<0){i+=this.PI2}s=i*(this.o.max-this.o.min)/this.angleArc+this.o.min;this.o.stopper&&(s=n(r(s,this.o.max),this.o.min));return s};this.listen=function(){var t=this,i,s,o=function(e){e.preventDefault();var o=e.originalEvent,u=o.detail||o.wheelDeltaX,a=o.detail||o.wheelDeltaY,f=t._validate(t.o.parse(t.$.val()))+(u>0||a>0?t.o.step:u<0||a<0?-t.o.step:0);f=n(r(f,t.o.max),t.o.min);t.val(f,false);if(t.rH){clearTimeout(i);i=setTimeout(function(){t.rH(f);i=null},100);if(!s){s=setTimeout(function(){if(i)t.rH(f);s=null},200)}}},u,a,f=1,l={37:-t.o.step,38:t.o.step,39:t.o.step,40:-t.o.step};this.$.bind("keydown",function(i){var s=i.keyCode;if(s>=96&&s<=105){s=i.keyCode=s-48}u=parseInt(String.fromCharCode(s));if(isNaN(u)){s!==13&&s!==8&&s!==9&&s!==189&&(s!==190||t.$.val().match(/\./))&&i.preventDefault();if(e.inArray(s,[37,38,39,40])>-1){i.preventDefault();var o=t.o.parse(t.$.val())+l[s]*f;t.o.stopper&&(o=n(r(o,t.o.max),t.o.min));t.change(t._validate(o));t._draw();a=window.setTimeout(function(){f*=2},30)}}}).bind("keyup",function(e){if(isNaN(u)){if(a){window.clearTimeout(a);a=null;f=1;t.val(t.$.val())}}else{t.$.val()>t.o.max&&t.$.val(t.o.max)||t.$.val()this.o.max){this.v=this.o.min}this.$.val(this.v);this.w2=this.w/2;this.cursorExt=this.o.cursor/100;this.xy=this.w2*this.scale;this.lineWidth=this.xy*this.o.thickness;this.lineCap=this.o.lineCap;this.radius=this.xy-this.lineWidth/2;this.o.angleOffset&&(this.o.angleOffset=isNaN(this.o.angleOffset)?0:this.o.angleOffset);this.o.angleArc&&(this.o.angleArc=isNaN(this.o.angleArc)?this.PI2:this.o.angleArc);this.angleOffset=this.o.angleOffset*Math.PI/180;this.angleArc=this.o.angleArc*Math.PI/180;this.startAngle=1.5*Math.PI+this.angleOffset;this.endAngle=1.5*Math.PI+this.angleOffset+this.angleArc;var e=n(String(Math.abs(this.o.max)).length,String(Math.abs(this.o.min)).length,2)+2;this.o.displayInput&&this.i.css({width:(this.w/2+4>>0)+"px",height:(this.w/3>>0)+"px",position:"absolute","vertical-align":"middle","margin-top":(this.w/3>>0)+"px","margin-left":"-"+(this.w*3/4+2>>0)+"px",border:0,background:"none",font:this.o.fontWeight+" "+(this.w/e>>0)+"px "+this.o.font,"text-align":"center",color:this.o.inputColor||this.o.fgColor,padding:"0px","-webkit-appearance":"none"})||this.i.css({width:"0px",visibility:"hidden"})};this.change=function(e){this.cv=e;this.$.val(this.o.format(e))};this.angle=function(e){return(e-this.o.min)*this.angleArc/(this.o.max-this.o.min)};this.arc=function(e){var t,n;e=this.angle(e);if(this.o.flip){t=this.endAngle+1e-5;n=t-e-1e-5}else{t=this.startAngle-1e-5;n=t+e+1e-5}this.o.cursor&&(t=n-this.cursorExt)&&(n=n+this.cursorExt);return{s:t,e:n,d:this.o.flip&&!this.o.cursor}};this.draw=function(){var e=this.g,t=this.arc(this.cv),n,r=1;e.lineWidth=this.lineWidth;e.lineCap=this.lineCap;if(this.o.bgColor!=="none"){e.beginPath();e.strokeStyle=this.o.bgColor;e.arc(this.xy,this.xy,this.radius,this.endAngle-1e-5,this.startAngle+1e-5,true);e.stroke()}if(this.o.displayPrevious){n=this.arc(this.v);e.beginPath();e.strokeStyle=this.pColor;e.arc(this.xy,this.xy,this.radius,n.s,n.e,n.d);e.stroke();r=this.cv==this.v}e.beginPath();e.strokeStyle=r?this.o.fgColor:this.fgColor;e.arc(this.xy,this.xy,this.radius,t.s,t.e,t.d);e.stroke()};this.cancel=function(){this.val(this.v)}};e.fn.dial=e.fn.knob=function(n){return this.each(function(){var r=new t.Dial;r.o=n;r.$=e(this);r.run()}).parent()}})
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | blipweb
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
blipweb: patch editing and sharing for meeblip anode.
39 |
40 | examples: perc,
41 | buzz,
42 | phlead
43 |
44 |
219 |
220 |
223 |
224 |
225 |
226 |
419 |
420 |
421 |
422 |
--------------------------------------------------------------------------------
/jquery-ui.theme.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery UI CSS Framework 1.11.4
3 | * http://jqueryui.com
4 | *
5 | * Copyright jQuery Foundation and other contributors
6 | * Released under the MIT license.
7 | * http://jquery.org/license
8 | *
9 | * http://api.jqueryui.com/category/theming/
10 | *
11 | * To view and modify this theme, visit http://jqueryui.com/themeroller/
12 | */
13 |
14 |
15 | /* Component containers
16 | ----------------------------------*/
17 | .ui-widget {
18 | font-family: Verdana,Arial,sans-serif;
19 | font-size: 1.1em;
20 | }
21 | .ui-widget .ui-widget {
22 | font-size: 1em;
23 | }
24 | .ui-widget input,
25 | .ui-widget select,
26 | .ui-widget textarea,
27 | .ui-widget button {
28 | font-family: Verdana,Arial,sans-serif;
29 | font-size: 1em;
30 | }
31 | .ui-widget-content {
32 | border: 1px solid #aaaaaa;
33 | background: #ffffff;
34 | color: #222222;
35 | }
36 | .ui-widget-content a {
37 | color: #222222;
38 | }
39 | .ui-widget-header {
40 | border: 1px solid #aaaaaa;
41 | background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
42 | color: #222222;
43 | font-weight: bold;
44 | }
45 | .ui-widget-header a {
46 | color: #222222;
47 | }
48 |
49 | /* Interaction states
50 | ----------------------------------*/
51 | .ui-state-default,
52 | .ui-widget-content .ui-state-default,
53 | .ui-widget-header .ui-state-default {
54 | border: 1px solid #d3d3d3;
55 | background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
56 | font-weight: normal;
57 | color: #555555;
58 | }
59 | .ui-state-default a,
60 | .ui-state-default a:link,
61 | .ui-state-default a:visited {
62 | color: #555555;
63 | text-decoration: none;
64 | }
65 | .ui-state-hover,
66 | .ui-widget-content .ui-state-hover,
67 | .ui-widget-header .ui-state-hover,
68 | .ui-state-focus,
69 | .ui-widget-content .ui-state-focus,
70 | .ui-widget-header .ui-state-focus {
71 | border: 1px solid #999999;
72 | background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
73 | font-weight: normal;
74 | color: #212121;
75 | }
76 | .ui-state-hover a,
77 | .ui-state-hover a:hover,
78 | .ui-state-hover a:link,
79 | .ui-state-hover a:visited,
80 | .ui-state-focus a,
81 | .ui-state-focus a:hover,
82 | .ui-state-focus a:link,
83 | .ui-state-focus a:visited {
84 | color: #212121;
85 | text-decoration: none;
86 | }
87 | .ui-state-active,
88 | .ui-widget-content .ui-state-active,
89 | .ui-widget-header .ui-state-active {
90 | border: 1px solid #aaaaaa;
91 | background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
92 | font-weight: normal;
93 | color: #212121;
94 | }
95 | .ui-state-active a,
96 | .ui-state-active a:link,
97 | .ui-state-active a:visited {
98 | color: #212121;
99 | text-decoration: none;
100 | }
101 |
102 | /* Interaction Cues
103 | ----------------------------------*/
104 | .ui-state-highlight,
105 | .ui-widget-content .ui-state-highlight,
106 | .ui-widget-header .ui-state-highlight {
107 | border: 1px solid #fcefa1;
108 | background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
109 | color: #363636;
110 | }
111 | .ui-state-highlight a,
112 | .ui-widget-content .ui-state-highlight a,
113 | .ui-widget-header .ui-state-highlight a {
114 | color: #363636;
115 | }
116 | .ui-state-error,
117 | .ui-widget-content .ui-state-error,
118 | .ui-widget-header .ui-state-error {
119 | border: 1px solid #cd0a0a;
120 | background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
121 | color: #cd0a0a;
122 | }
123 | .ui-state-error a,
124 | .ui-widget-content .ui-state-error a,
125 | .ui-widget-header .ui-state-error a {
126 | color: #cd0a0a;
127 | }
128 | .ui-state-error-text,
129 | .ui-widget-content .ui-state-error-text,
130 | .ui-widget-header .ui-state-error-text {
131 | color: #cd0a0a;
132 | }
133 | .ui-priority-primary,
134 | .ui-widget-content .ui-priority-primary,
135 | .ui-widget-header .ui-priority-primary {
136 | font-weight: bold;
137 | }
138 | .ui-priority-secondary,
139 | .ui-widget-content .ui-priority-secondary,
140 | .ui-widget-header .ui-priority-secondary {
141 | opacity: .7;
142 | filter:Alpha(Opacity=70); /* support: IE8 */
143 | font-weight: normal;
144 | }
145 | .ui-state-disabled,
146 | .ui-widget-content .ui-state-disabled,
147 | .ui-widget-header .ui-state-disabled {
148 | opacity: .35;
149 | filter:Alpha(Opacity=35); /* support: IE8 */
150 | background-image: none;
151 | }
152 | .ui-state-disabled .ui-icon {
153 | filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
154 | }
155 |
156 | /* Icons
157 | ----------------------------------*/
158 |
159 | /* states and images */
160 | .ui-icon {
161 | width: 16px;
162 | height: 16px;
163 | }
164 | .ui-icon,
165 | .ui-widget-content .ui-icon {
166 | background-image: url("images/ui-icons_222222_256x240.png");
167 | }
168 | .ui-widget-header .ui-icon {
169 | background-image: url("images/ui-icons_222222_256x240.png");
170 | }
171 | .ui-state-default .ui-icon {
172 | background-image: url("images/ui-icons_888888_256x240.png");
173 | }
174 | .ui-state-hover .ui-icon,
175 | .ui-state-focus .ui-icon {
176 | background-image: url("images/ui-icons_454545_256x240.png");
177 | }
178 | .ui-state-active .ui-icon {
179 | background-image: url("images/ui-icons_454545_256x240.png");
180 | }
181 | .ui-state-highlight .ui-icon {
182 | background-image: url("images/ui-icons_2e83ff_256x240.png");
183 | }
184 | .ui-state-error .ui-icon,
185 | .ui-state-error-text .ui-icon {
186 | background-image: url("images/ui-icons_cd0a0a_256x240.png");
187 | }
188 |
189 | /* positioning */
190 | .ui-icon-blank { background-position: 16px 16px; }
191 | .ui-icon-carat-1-n { background-position: 0 0; }
192 | .ui-icon-carat-1-ne { background-position: -16px 0; }
193 | .ui-icon-carat-1-e { background-position: -32px 0; }
194 | .ui-icon-carat-1-se { background-position: -48px 0; }
195 | .ui-icon-carat-1-s { background-position: -64px 0; }
196 | .ui-icon-carat-1-sw { background-position: -80px 0; }
197 | .ui-icon-carat-1-w { background-position: -96px 0; }
198 | .ui-icon-carat-1-nw { background-position: -112px 0; }
199 | .ui-icon-carat-2-n-s { background-position: -128px 0; }
200 | .ui-icon-carat-2-e-w { background-position: -144px 0; }
201 | .ui-icon-triangle-1-n { background-position: 0 -16px; }
202 | .ui-icon-triangle-1-ne { background-position: -16px -16px; }
203 | .ui-icon-triangle-1-e { background-position: -32px -16px; }
204 | .ui-icon-triangle-1-se { background-position: -48px -16px; }
205 | .ui-icon-triangle-1-s { background-position: -64px -16px; }
206 | .ui-icon-triangle-1-sw { background-position: -80px -16px; }
207 | .ui-icon-triangle-1-w { background-position: -96px -16px; }
208 | .ui-icon-triangle-1-nw { background-position: -112px -16px; }
209 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
210 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
211 | .ui-icon-arrow-1-n { background-position: 0 -32px; }
212 | .ui-icon-arrow-1-ne { background-position: -16px -32px; }
213 | .ui-icon-arrow-1-e { background-position: -32px -32px; }
214 | .ui-icon-arrow-1-se { background-position: -48px -32px; }
215 | .ui-icon-arrow-1-s { background-position: -64px -32px; }
216 | .ui-icon-arrow-1-sw { background-position: -80px -32px; }
217 | .ui-icon-arrow-1-w { background-position: -96px -32px; }
218 | .ui-icon-arrow-1-nw { background-position: -112px -32px; }
219 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
220 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
221 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
222 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
223 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
224 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
225 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
226 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
227 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
228 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
229 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
230 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
231 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
232 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
233 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
234 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
235 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
236 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
237 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
238 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
239 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
240 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
241 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
242 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
243 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
244 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
245 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
246 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
247 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
248 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
249 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
250 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
251 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
252 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
253 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
254 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
255 | .ui-icon-arrow-4 { background-position: 0 -80px; }
256 | .ui-icon-arrow-4-diag { background-position: -16px -80px; }
257 | .ui-icon-extlink { background-position: -32px -80px; }
258 | .ui-icon-newwin { background-position: -48px -80px; }
259 | .ui-icon-refresh { background-position: -64px -80px; }
260 | .ui-icon-shuffle { background-position: -80px -80px; }
261 | .ui-icon-transfer-e-w { background-position: -96px -80px; }
262 | .ui-icon-transferthick-e-w { background-position: -112px -80px; }
263 | .ui-icon-folder-collapsed { background-position: 0 -96px; }
264 | .ui-icon-folder-open { background-position: -16px -96px; }
265 | .ui-icon-document { background-position: -32px -96px; }
266 | .ui-icon-document-b { background-position: -48px -96px; }
267 | .ui-icon-note { background-position: -64px -96px; }
268 | .ui-icon-mail-closed { background-position: -80px -96px; }
269 | .ui-icon-mail-open { background-position: -96px -96px; }
270 | .ui-icon-suitcase { background-position: -112px -96px; }
271 | .ui-icon-comment { background-position: -128px -96px; }
272 | .ui-icon-person { background-position: -144px -96px; }
273 | .ui-icon-print { background-position: -160px -96px; }
274 | .ui-icon-trash { background-position: -176px -96px; }
275 | .ui-icon-locked { background-position: -192px -96px; }
276 | .ui-icon-unlocked { background-position: -208px -96px; }
277 | .ui-icon-bookmark { background-position: -224px -96px; }
278 | .ui-icon-tag { background-position: -240px -96px; }
279 | .ui-icon-home { background-position: 0 -112px; }
280 | .ui-icon-flag { background-position: -16px -112px; }
281 | .ui-icon-calendar { background-position: -32px -112px; }
282 | .ui-icon-cart { background-position: -48px -112px; }
283 | .ui-icon-pencil { background-position: -64px -112px; }
284 | .ui-icon-clock { background-position: -80px -112px; }
285 | .ui-icon-disk { background-position: -96px -112px; }
286 | .ui-icon-calculator { background-position: -112px -112px; }
287 | .ui-icon-zoomin { background-position: -128px -112px; }
288 | .ui-icon-zoomout { background-position: -144px -112px; }
289 | .ui-icon-search { background-position: -160px -112px; }
290 | .ui-icon-wrench { background-position: -176px -112px; }
291 | .ui-icon-gear { background-position: -192px -112px; }
292 | .ui-icon-heart { background-position: -208px -112px; }
293 | .ui-icon-star { background-position: -224px -112px; }
294 | .ui-icon-link { background-position: -240px -112px; }
295 | .ui-icon-cancel { background-position: 0 -128px; }
296 | .ui-icon-plus { background-position: -16px -128px; }
297 | .ui-icon-plusthick { background-position: -32px -128px; }
298 | .ui-icon-minus { background-position: -48px -128px; }
299 | .ui-icon-minusthick { background-position: -64px -128px; }
300 | .ui-icon-close { background-position: -80px -128px; }
301 | .ui-icon-closethick { background-position: -96px -128px; }
302 | .ui-icon-key { background-position: -112px -128px; }
303 | .ui-icon-lightbulb { background-position: -128px -128px; }
304 | .ui-icon-scissors { background-position: -144px -128px; }
305 | .ui-icon-clipboard { background-position: -160px -128px; }
306 | .ui-icon-copy { background-position: -176px -128px; }
307 | .ui-icon-contact { background-position: -192px -128px; }
308 | .ui-icon-image { background-position: -208px -128px; }
309 | .ui-icon-video { background-position: -224px -128px; }
310 | .ui-icon-script { background-position: -240px -128px; }
311 | .ui-icon-alert { background-position: 0 -144px; }
312 | .ui-icon-info { background-position: -16px -144px; }
313 | .ui-icon-notice { background-position: -32px -144px; }
314 | .ui-icon-help { background-position: -48px -144px; }
315 | .ui-icon-check { background-position: -64px -144px; }
316 | .ui-icon-bullet { background-position: -80px -144px; }
317 | .ui-icon-radio-on { background-position: -96px -144px; }
318 | .ui-icon-radio-off { background-position: -112px -144px; }
319 | .ui-icon-pin-w { background-position: -128px -144px; }
320 | .ui-icon-pin-s { background-position: -144px -144px; }
321 | .ui-icon-play { background-position: 0 -160px; }
322 | .ui-icon-pause { background-position: -16px -160px; }
323 | .ui-icon-seek-next { background-position: -32px -160px; }
324 | .ui-icon-seek-prev { background-position: -48px -160px; }
325 | .ui-icon-seek-end { background-position: -64px -160px; }
326 | .ui-icon-seek-start { background-position: -80px -160px; }
327 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
328 | .ui-icon-seek-first { background-position: -80px -160px; }
329 | .ui-icon-stop { background-position: -96px -160px; }
330 | .ui-icon-eject { background-position: -112px -160px; }
331 | .ui-icon-volume-off { background-position: -128px -160px; }
332 | .ui-icon-volume-on { background-position: -144px -160px; }
333 | .ui-icon-power { background-position: 0 -176px; }
334 | .ui-icon-signal-diag { background-position: -16px -176px; }
335 | .ui-icon-signal { background-position: -32px -176px; }
336 | .ui-icon-battery-0 { background-position: -48px -176px; }
337 | .ui-icon-battery-1 { background-position: -64px -176px; }
338 | .ui-icon-battery-2 { background-position: -80px -176px; }
339 | .ui-icon-battery-3 { background-position: -96px -176px; }
340 | .ui-icon-circle-plus { background-position: 0 -192px; }
341 | .ui-icon-circle-minus { background-position: -16px -192px; }
342 | .ui-icon-circle-close { background-position: -32px -192px; }
343 | .ui-icon-circle-triangle-e { background-position: -48px -192px; }
344 | .ui-icon-circle-triangle-s { background-position: -64px -192px; }
345 | .ui-icon-circle-triangle-w { background-position: -80px -192px; }
346 | .ui-icon-circle-triangle-n { background-position: -96px -192px; }
347 | .ui-icon-circle-arrow-e { background-position: -112px -192px; }
348 | .ui-icon-circle-arrow-s { background-position: -128px -192px; }
349 | .ui-icon-circle-arrow-w { background-position: -144px -192px; }
350 | .ui-icon-circle-arrow-n { background-position: -160px -192px; }
351 | .ui-icon-circle-zoomin { background-position: -176px -192px; }
352 | .ui-icon-circle-zoomout { background-position: -192px -192px; }
353 | .ui-icon-circle-check { background-position: -208px -192px; }
354 | .ui-icon-circlesmall-plus { background-position: 0 -208px; }
355 | .ui-icon-circlesmall-minus { background-position: -16px -208px; }
356 | .ui-icon-circlesmall-close { background-position: -32px -208px; }
357 | .ui-icon-squaresmall-plus { background-position: -48px -208px; }
358 | .ui-icon-squaresmall-minus { background-position: -64px -208px; }
359 | .ui-icon-squaresmall-close { background-position: -80px -208px; }
360 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
361 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
362 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
363 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
364 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
365 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
366 |
367 |
368 | /* Misc visuals
369 | ----------------------------------*/
370 |
371 | /* Corner radius */
372 | .ui-corner-all,
373 | .ui-corner-top,
374 | .ui-corner-left,
375 | .ui-corner-tl {
376 | border-top-left-radius: 4px;
377 | }
378 | .ui-corner-all,
379 | .ui-corner-top,
380 | .ui-corner-right,
381 | .ui-corner-tr {
382 | border-top-right-radius: 4px;
383 | }
384 | .ui-corner-all,
385 | .ui-corner-bottom,
386 | .ui-corner-left,
387 | .ui-corner-bl {
388 | border-bottom-left-radius: 4px;
389 | }
390 | .ui-corner-all,
391 | .ui-corner-bottom,
392 | .ui-corner-right,
393 | .ui-corner-br {
394 | border-bottom-right-radius: 4px;
395 | }
396 |
397 | /* Overlays */
398 | .ui-widget-overlay {
399 | background: #aaaaaa;
400 | opacity: .3;
401 | filter: Alpha(Opacity=30); /* support: IE8 */
402 | }
403 | .ui-widget-shadow {
404 | margin: -8px 0 0 -8px;
405 | padding: 8px;
406 | background: #aaaaaa;
407 | opacity: .3;
408 | filter: Alpha(Opacity=30); /* support: IE8 */
409 | border-radius: 8px;
410 | }
411 |
--------------------------------------------------------------------------------
/jquery-ui.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.11.4 - 2016-02-01
2 | * http://jqueryui.com
3 | * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, button.css, dialog.css, menu.css, selectmenu.css, theme.css
4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/
5 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
6 |
7 | /* Layout helpers
8 | ----------------------------------*/
9 | .ui-helper-hidden {
10 | display: none;
11 | }
12 | .ui-helper-hidden-accessible {
13 | border: 0;
14 | clip: rect(0 0 0 0);
15 | height: 1px;
16 | margin: -1px;
17 | overflow: hidden;
18 | padding: 0;
19 | position: absolute;
20 | width: 1px;
21 | }
22 | .ui-helper-reset {
23 | margin: 0;
24 | padding: 0;
25 | border: 0;
26 | outline: 0;
27 | line-height: 1.3;
28 | text-decoration: none;
29 | font-size: 100%;
30 | list-style: none;
31 | }
32 | .ui-helper-clearfix:before,
33 | .ui-helper-clearfix:after {
34 | content: "";
35 | display: table;
36 | border-collapse: collapse;
37 | }
38 | .ui-helper-clearfix:after {
39 | clear: both;
40 | }
41 | .ui-helper-clearfix {
42 | min-height: 0; /* support: IE7 */
43 | }
44 | .ui-helper-zfix {
45 | width: 100%;
46 | height: 100%;
47 | top: 0;
48 | left: 0;
49 | position: absolute;
50 | opacity: 0;
51 | filter:Alpha(Opacity=0); /* support: IE8 */
52 | }
53 |
54 | .ui-front {
55 | z-index: 100;
56 | }
57 |
58 |
59 | /* Interaction Cues
60 | ----------------------------------*/
61 | .ui-state-disabled {
62 | cursor: default !important;
63 | }
64 |
65 |
66 | /* Icons
67 | ----------------------------------*/
68 |
69 | /* states and images */
70 | .ui-icon {
71 | display: block;
72 | text-indent: -99999px;
73 | overflow: hidden;
74 | background-repeat: no-repeat;
75 | }
76 |
77 |
78 | /* Misc visuals
79 | ----------------------------------*/
80 |
81 | /* Overlays */
82 | .ui-widget-overlay {
83 | position: fixed;
84 | top: 0;
85 | left: 0;
86 | width: 100%;
87 | height: 100%;
88 | }
89 | .ui-draggable-handle {
90 | -ms-touch-action: none;
91 | touch-action: none;
92 | }
93 | .ui-resizable {
94 | position: relative;
95 | }
96 | .ui-resizable-handle {
97 | position: absolute;
98 | font-size: 0.1px;
99 | display: block;
100 | -ms-touch-action: none;
101 | touch-action: none;
102 | }
103 | .ui-resizable-disabled .ui-resizable-handle,
104 | .ui-resizable-autohide .ui-resizable-handle {
105 | display: none;
106 | }
107 | .ui-resizable-n {
108 | cursor: n-resize;
109 | height: 7px;
110 | width: 100%;
111 | top: -5px;
112 | left: 0;
113 | }
114 | .ui-resizable-s {
115 | cursor: s-resize;
116 | height: 7px;
117 | width: 100%;
118 | bottom: -5px;
119 | left: 0;
120 | }
121 | .ui-resizable-e {
122 | cursor: e-resize;
123 | width: 7px;
124 | right: -5px;
125 | top: 0;
126 | height: 100%;
127 | }
128 | .ui-resizable-w {
129 | cursor: w-resize;
130 | width: 7px;
131 | left: -5px;
132 | top: 0;
133 | height: 100%;
134 | }
135 | .ui-resizable-se {
136 | cursor: se-resize;
137 | width: 12px;
138 | height: 12px;
139 | right: 1px;
140 | bottom: 1px;
141 | }
142 | .ui-resizable-sw {
143 | cursor: sw-resize;
144 | width: 9px;
145 | height: 9px;
146 | left: -5px;
147 | bottom: -5px;
148 | }
149 | .ui-resizable-nw {
150 | cursor: nw-resize;
151 | width: 9px;
152 | height: 9px;
153 | left: -5px;
154 | top: -5px;
155 | }
156 | .ui-resizable-ne {
157 | cursor: ne-resize;
158 | width: 9px;
159 | height: 9px;
160 | right: -5px;
161 | top: -5px;
162 | }
163 | .ui-selectable {
164 | -ms-touch-action: none;
165 | touch-action: none;
166 | }
167 | .ui-selectable-helper {
168 | position: absolute;
169 | z-index: 100;
170 | border: 1px dotted black;
171 | }
172 | .ui-sortable-handle {
173 | -ms-touch-action: none;
174 | touch-action: none;
175 | }
176 | .ui-button {
177 | display: inline-block;
178 | position: relative;
179 | padding: 0;
180 | line-height: normal;
181 | margin-right: .1em;
182 | cursor: pointer;
183 | vertical-align: middle;
184 | text-align: center;
185 | overflow: visible; /* removes extra width in IE */
186 | }
187 | .ui-button,
188 | .ui-button:link,
189 | .ui-button:visited,
190 | .ui-button:hover,
191 | .ui-button:active {
192 | text-decoration: none;
193 | }
194 | /* to make room for the icon, a width needs to be set here */
195 | .ui-button-icon-only {
196 | width: 2.2em;
197 | }
198 | /* button elements seem to need a little more width */
199 | button.ui-button-icon-only {
200 | width: 2.4em;
201 | }
202 | .ui-button-icons-only {
203 | width: 3.4em;
204 | }
205 | button.ui-button-icons-only {
206 | width: 3.7em;
207 | }
208 |
209 | /* button text element */
210 | .ui-button .ui-button-text {
211 | display: block;
212 | line-height: normal;
213 | }
214 | .ui-button-text-only .ui-button-text {
215 | padding: .4em 1em;
216 | }
217 | .ui-button-icon-only .ui-button-text,
218 | .ui-button-icons-only .ui-button-text {
219 | padding: .4em;
220 | text-indent: -9999999px;
221 | }
222 | .ui-button-text-icon-primary .ui-button-text,
223 | .ui-button-text-icons .ui-button-text {
224 | padding: .4em 1em .4em 2.1em;
225 | }
226 | .ui-button-text-icon-secondary .ui-button-text,
227 | .ui-button-text-icons .ui-button-text {
228 | padding: .4em 2.1em .4em 1em;
229 | }
230 | .ui-button-text-icons .ui-button-text {
231 | padding-left: 2.1em;
232 | padding-right: 2.1em;
233 | }
234 | /* no icon support for input elements, provide padding by default */
235 | input.ui-button {
236 | padding: .4em 1em;
237 | }
238 |
239 | /* button icon element(s) */
240 | .ui-button-icon-only .ui-icon,
241 | .ui-button-text-icon-primary .ui-icon,
242 | .ui-button-text-icon-secondary .ui-icon,
243 | .ui-button-text-icons .ui-icon,
244 | .ui-button-icons-only .ui-icon {
245 | position: absolute;
246 | top: 50%;
247 | margin-top: -8px;
248 | }
249 | .ui-button-icon-only .ui-icon {
250 | left: 50%;
251 | margin-left: -8px;
252 | }
253 | .ui-button-text-icon-primary .ui-button-icon-primary,
254 | .ui-button-text-icons .ui-button-icon-primary,
255 | .ui-button-icons-only .ui-button-icon-primary {
256 | left: .5em;
257 | }
258 | .ui-button-text-icon-secondary .ui-button-icon-secondary,
259 | .ui-button-text-icons .ui-button-icon-secondary,
260 | .ui-button-icons-only .ui-button-icon-secondary {
261 | right: .5em;
262 | }
263 |
264 | /* button sets */
265 | .ui-buttonset {
266 | margin-right: 7px;
267 | }
268 | .ui-buttonset .ui-button {
269 | margin-left: 0;
270 | margin-right: -.3em;
271 | }
272 |
273 | /* workarounds */
274 | /* reset extra padding in Firefox, see h5bp.com/l */
275 | input.ui-button::-moz-focus-inner,
276 | button.ui-button::-moz-focus-inner {
277 | border: 0;
278 | padding: 0;
279 | }
280 | .ui-dialog {
281 | overflow: hidden;
282 | position: absolute;
283 | top: 0;
284 | left: 0;
285 | padding: .2em;
286 | outline: 0;
287 | }
288 | .ui-dialog .ui-dialog-titlebar {
289 | padding: .4em 1em;
290 | position: relative;
291 | }
292 | .ui-dialog .ui-dialog-title {
293 | float: left;
294 | margin: .1em 0;
295 | white-space: nowrap;
296 | width: 90%;
297 | overflow: hidden;
298 | text-overflow: ellipsis;
299 | }
300 | .ui-dialog .ui-dialog-titlebar-close {
301 | position: absolute;
302 | right: .3em;
303 | top: 50%;
304 | width: 20px;
305 | margin: -10px 0 0 0;
306 | padding: 1px;
307 | height: 20px;
308 | }
309 | .ui-dialog .ui-dialog-content {
310 | position: relative;
311 | border: 0;
312 | padding: .5em 1em;
313 | background: none;
314 | overflow: auto;
315 | }
316 | .ui-dialog .ui-dialog-buttonpane {
317 | text-align: left;
318 | border-width: 1px 0 0 0;
319 | background-image: none;
320 | margin-top: .5em;
321 | padding: .3em 1em .5em .4em;
322 | }
323 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
324 | float: right;
325 | }
326 | .ui-dialog .ui-dialog-buttonpane button {
327 | margin: .5em .4em .5em 0;
328 | cursor: pointer;
329 | }
330 | .ui-dialog .ui-resizable-se {
331 | width: 12px;
332 | height: 12px;
333 | right: -5px;
334 | bottom: -5px;
335 | background-position: 16px 16px;
336 | }
337 | .ui-draggable .ui-dialog-titlebar {
338 | cursor: move;
339 | }
340 | .ui-menu {
341 | list-style: none;
342 | padding: 0;
343 | margin: 0;
344 | display: block;
345 | outline: none;
346 | }
347 | .ui-menu .ui-menu {
348 | position: absolute;
349 | }
350 | .ui-menu .ui-menu-item {
351 | position: relative;
352 | margin: 0;
353 | padding: 3px 1em 3px .4em;
354 | cursor: pointer;
355 | min-height: 0; /* support: IE7 */
356 | /* support: IE10, see #8844 */
357 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
358 | }
359 | .ui-menu .ui-menu-divider {
360 | margin: 5px 0;
361 | height: 0;
362 | font-size: 0;
363 | line-height: 0;
364 | border-width: 1px 0 0 0;
365 | }
366 | .ui-menu .ui-state-focus,
367 | .ui-menu .ui-state-active {
368 | margin: -1px;
369 | }
370 |
371 | /* icon support */
372 | .ui-menu-icons {
373 | position: relative;
374 | }
375 | .ui-menu-icons .ui-menu-item {
376 | padding-left: 2em;
377 | }
378 |
379 | /* left-aligned */
380 | .ui-menu .ui-icon {
381 | position: absolute;
382 | top: 0;
383 | bottom: 0;
384 | left: .2em;
385 | margin: auto 0;
386 | }
387 |
388 | /* right-aligned */
389 | .ui-menu .ui-menu-icon {
390 | left: auto;
391 | right: 0;
392 | }
393 | .ui-selectmenu-menu {
394 | padding: 0;
395 | margin: 0;
396 | position: absolute;
397 | top: 0;
398 | left: 0;
399 | display: none;
400 | }
401 | .ui-selectmenu-menu .ui-menu {
402 | overflow: auto;
403 | /* Support: IE7 */
404 | overflow-x: hidden;
405 | padding-bottom: 1px;
406 | }
407 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
408 | font-size: 1em;
409 | font-weight: bold;
410 | line-height: 1.5;
411 | padding: 2px 0.4em;
412 | margin: 0.5em 0 0 0;
413 | height: auto;
414 | border: 0;
415 | }
416 | .ui-selectmenu-open {
417 | display: block;
418 | }
419 | .ui-selectmenu-button {
420 | display: inline-block;
421 | overflow: hidden;
422 | position: relative;
423 | text-decoration: none;
424 | cursor: pointer;
425 | }
426 | .ui-selectmenu-button span.ui-icon {
427 | right: 0.5em;
428 | left: auto;
429 | margin-top: -8px;
430 | position: absolute;
431 | top: 50%;
432 | }
433 | .ui-selectmenu-button span.ui-selectmenu-text {
434 | text-align: left;
435 | padding: 0.4em 2.1em 0.4em 1em;
436 | display: block;
437 | line-height: 1.4;
438 | overflow: hidden;
439 | text-overflow: ellipsis;
440 | white-space: nowrap;
441 | }
442 |
443 | /* Component containers
444 | ----------------------------------*/
445 | .ui-widget {
446 | font-family: Verdana,Arial,sans-serif;
447 | font-size: 1.1em;
448 | }
449 | .ui-widget .ui-widget {
450 | font-size: 1em;
451 | }
452 | .ui-widget input,
453 | .ui-widget select,
454 | .ui-widget textarea,
455 | .ui-widget button {
456 | font-family: Verdana,Arial,sans-serif;
457 | font-size: 1em;
458 | }
459 | .ui-widget-content {
460 | border: 1px solid #aaaaaa;
461 | background: #ffffff;
462 | color: #222222;
463 | }
464 | .ui-widget-content a {
465 | color: #222222;
466 | }
467 | .ui-widget-header {
468 | border: 1px solid #aaaaaa;
469 | background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
470 | color: #222222;
471 | font-weight: bold;
472 | }
473 | .ui-widget-header a {
474 | color: #222222;
475 | }
476 |
477 | /* Interaction states
478 | ----------------------------------*/
479 | .ui-state-default,
480 | .ui-widget-content .ui-state-default,
481 | .ui-widget-header .ui-state-default {
482 | border: 1px solid #d3d3d3;
483 | background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
484 | font-weight: normal;
485 | color: #555555;
486 | }
487 | .ui-state-default a,
488 | .ui-state-default a:link,
489 | .ui-state-default a:visited {
490 | color: #555555;
491 | text-decoration: none;
492 | }
493 | .ui-state-hover,
494 | .ui-widget-content .ui-state-hover,
495 | .ui-widget-header .ui-state-hover,
496 | .ui-state-focus,
497 | .ui-widget-content .ui-state-focus,
498 | .ui-widget-header .ui-state-focus {
499 | border: 1px solid #999999;
500 | background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
501 | font-weight: normal;
502 | color: #212121;
503 | }
504 | .ui-state-hover a,
505 | .ui-state-hover a:hover,
506 | .ui-state-hover a:link,
507 | .ui-state-hover a:visited,
508 | .ui-state-focus a,
509 | .ui-state-focus a:hover,
510 | .ui-state-focus a:link,
511 | .ui-state-focus a:visited {
512 | color: #212121;
513 | text-decoration: none;
514 | }
515 | .ui-state-active,
516 | .ui-widget-content .ui-state-active,
517 | .ui-widget-header .ui-state-active {
518 | border: 1px solid #aaaaaa;
519 | background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
520 | font-weight: normal;
521 | color: #212121;
522 | }
523 | .ui-state-active a,
524 | .ui-state-active a:link,
525 | .ui-state-active a:visited {
526 | color: #212121;
527 | text-decoration: none;
528 | }
529 |
530 | /* Interaction Cues
531 | ----------------------------------*/
532 | .ui-state-highlight,
533 | .ui-widget-content .ui-state-highlight,
534 | .ui-widget-header .ui-state-highlight {
535 | border: 1px solid #fcefa1;
536 | background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
537 | color: #363636;
538 | }
539 | .ui-state-highlight a,
540 | .ui-widget-content .ui-state-highlight a,
541 | .ui-widget-header .ui-state-highlight a {
542 | color: #363636;
543 | }
544 | .ui-state-error,
545 | .ui-widget-content .ui-state-error,
546 | .ui-widget-header .ui-state-error {
547 | border: 1px solid #cd0a0a;
548 | background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
549 | color: #cd0a0a;
550 | }
551 | .ui-state-error a,
552 | .ui-widget-content .ui-state-error a,
553 | .ui-widget-header .ui-state-error a {
554 | color: #cd0a0a;
555 | }
556 | .ui-state-error-text,
557 | .ui-widget-content .ui-state-error-text,
558 | .ui-widget-header .ui-state-error-text {
559 | color: #cd0a0a;
560 | }
561 | .ui-priority-primary,
562 | .ui-widget-content .ui-priority-primary,
563 | .ui-widget-header .ui-priority-primary {
564 | font-weight: bold;
565 | }
566 | .ui-priority-secondary,
567 | .ui-widget-content .ui-priority-secondary,
568 | .ui-widget-header .ui-priority-secondary {
569 | opacity: .7;
570 | filter:Alpha(Opacity=70); /* support: IE8 */
571 | font-weight: normal;
572 | }
573 | .ui-state-disabled,
574 | .ui-widget-content .ui-state-disabled,
575 | .ui-widget-header .ui-state-disabled {
576 | opacity: .35;
577 | filter:Alpha(Opacity=35); /* support: IE8 */
578 | background-image: none;
579 | }
580 | .ui-state-disabled .ui-icon {
581 | filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
582 | }
583 |
584 | /* Icons
585 | ----------------------------------*/
586 |
587 | /* states and images */
588 | .ui-icon {
589 | width: 16px;
590 | height: 16px;
591 | }
592 | .ui-icon,
593 | .ui-widget-content .ui-icon {
594 | background-image: url("images/ui-icons_222222_256x240.png");
595 | }
596 | .ui-widget-header .ui-icon {
597 | background-image: url("images/ui-icons_222222_256x240.png");
598 | }
599 | .ui-state-default .ui-icon {
600 | background-image: url("images/ui-icons_888888_256x240.png");
601 | }
602 | .ui-state-hover .ui-icon,
603 | .ui-state-focus .ui-icon {
604 | background-image: url("images/ui-icons_454545_256x240.png");
605 | }
606 | .ui-state-active .ui-icon {
607 | background-image: url("images/ui-icons_454545_256x240.png");
608 | }
609 | .ui-state-highlight .ui-icon {
610 | background-image: url("images/ui-icons_2e83ff_256x240.png");
611 | }
612 | .ui-state-error .ui-icon,
613 | .ui-state-error-text .ui-icon {
614 | background-image: url("images/ui-icons_cd0a0a_256x240.png");
615 | }
616 |
617 | /* positioning */
618 | .ui-icon-blank { background-position: 16px 16px; }
619 | .ui-icon-carat-1-n { background-position: 0 0; }
620 | .ui-icon-carat-1-ne { background-position: -16px 0; }
621 | .ui-icon-carat-1-e { background-position: -32px 0; }
622 | .ui-icon-carat-1-se { background-position: -48px 0; }
623 | .ui-icon-carat-1-s { background-position: -64px 0; }
624 | .ui-icon-carat-1-sw { background-position: -80px 0; }
625 | .ui-icon-carat-1-w { background-position: -96px 0; }
626 | .ui-icon-carat-1-nw { background-position: -112px 0; }
627 | .ui-icon-carat-2-n-s { background-position: -128px 0; }
628 | .ui-icon-carat-2-e-w { background-position: -144px 0; }
629 | .ui-icon-triangle-1-n { background-position: 0 -16px; }
630 | .ui-icon-triangle-1-ne { background-position: -16px -16px; }
631 | .ui-icon-triangle-1-e { background-position: -32px -16px; }
632 | .ui-icon-triangle-1-se { background-position: -48px -16px; }
633 | .ui-icon-triangle-1-s { background-position: -64px -16px; }
634 | .ui-icon-triangle-1-sw { background-position: -80px -16px; }
635 | .ui-icon-triangle-1-w { background-position: -96px -16px; }
636 | .ui-icon-triangle-1-nw { background-position: -112px -16px; }
637 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
638 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
639 | .ui-icon-arrow-1-n { background-position: 0 -32px; }
640 | .ui-icon-arrow-1-ne { background-position: -16px -32px; }
641 | .ui-icon-arrow-1-e { background-position: -32px -32px; }
642 | .ui-icon-arrow-1-se { background-position: -48px -32px; }
643 | .ui-icon-arrow-1-s { background-position: -64px -32px; }
644 | .ui-icon-arrow-1-sw { background-position: -80px -32px; }
645 | .ui-icon-arrow-1-w { background-position: -96px -32px; }
646 | .ui-icon-arrow-1-nw { background-position: -112px -32px; }
647 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
648 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
649 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
650 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
651 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
652 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
653 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
654 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
655 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
656 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
657 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
658 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
659 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
660 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
661 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
662 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
663 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
664 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
665 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
666 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
667 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
668 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
669 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
670 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
671 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
672 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
673 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
674 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
675 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
676 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
677 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
678 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
679 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
680 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
681 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
682 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
683 | .ui-icon-arrow-4 { background-position: 0 -80px; }
684 | .ui-icon-arrow-4-diag { background-position: -16px -80px; }
685 | .ui-icon-extlink { background-position: -32px -80px; }
686 | .ui-icon-newwin { background-position: -48px -80px; }
687 | .ui-icon-refresh { background-position: -64px -80px; }
688 | .ui-icon-shuffle { background-position: -80px -80px; }
689 | .ui-icon-transfer-e-w { background-position: -96px -80px; }
690 | .ui-icon-transferthick-e-w { background-position: -112px -80px; }
691 | .ui-icon-folder-collapsed { background-position: 0 -96px; }
692 | .ui-icon-folder-open { background-position: -16px -96px; }
693 | .ui-icon-document { background-position: -32px -96px; }
694 | .ui-icon-document-b { background-position: -48px -96px; }
695 | .ui-icon-note { background-position: -64px -96px; }
696 | .ui-icon-mail-closed { background-position: -80px -96px; }
697 | .ui-icon-mail-open { background-position: -96px -96px; }
698 | .ui-icon-suitcase { background-position: -112px -96px; }
699 | .ui-icon-comment { background-position: -128px -96px; }
700 | .ui-icon-person { background-position: -144px -96px; }
701 | .ui-icon-print { background-position: -160px -96px; }
702 | .ui-icon-trash { background-position: -176px -96px; }
703 | .ui-icon-locked { background-position: -192px -96px; }
704 | .ui-icon-unlocked { background-position: -208px -96px; }
705 | .ui-icon-bookmark { background-position: -224px -96px; }
706 | .ui-icon-tag { background-position: -240px -96px; }
707 | .ui-icon-home { background-position: 0 -112px; }
708 | .ui-icon-flag { background-position: -16px -112px; }
709 | .ui-icon-calendar { background-position: -32px -112px; }
710 | .ui-icon-cart { background-position: -48px -112px; }
711 | .ui-icon-pencil { background-position: -64px -112px; }
712 | .ui-icon-clock { background-position: -80px -112px; }
713 | .ui-icon-disk { background-position: -96px -112px; }
714 | .ui-icon-calculator { background-position: -112px -112px; }
715 | .ui-icon-zoomin { background-position: -128px -112px; }
716 | .ui-icon-zoomout { background-position: -144px -112px; }
717 | .ui-icon-search { background-position: -160px -112px; }
718 | .ui-icon-wrench { background-position: -176px -112px; }
719 | .ui-icon-gear { background-position: -192px -112px; }
720 | .ui-icon-heart { background-position: -208px -112px; }
721 | .ui-icon-star { background-position: -224px -112px; }
722 | .ui-icon-link { background-position: -240px -112px; }
723 | .ui-icon-cancel { background-position: 0 -128px; }
724 | .ui-icon-plus { background-position: -16px -128px; }
725 | .ui-icon-plusthick { background-position: -32px -128px; }
726 | .ui-icon-minus { background-position: -48px -128px; }
727 | .ui-icon-minusthick { background-position: -64px -128px; }
728 | .ui-icon-close { background-position: -80px -128px; }
729 | .ui-icon-closethick { background-position: -96px -128px; }
730 | .ui-icon-key { background-position: -112px -128px; }
731 | .ui-icon-lightbulb { background-position: -128px -128px; }
732 | .ui-icon-scissors { background-position: -144px -128px; }
733 | .ui-icon-clipboard { background-position: -160px -128px; }
734 | .ui-icon-copy { background-position: -176px -128px; }
735 | .ui-icon-contact { background-position: -192px -128px; }
736 | .ui-icon-image { background-position: -208px -128px; }
737 | .ui-icon-video { background-position: -224px -128px; }
738 | .ui-icon-script { background-position: -240px -128px; }
739 | .ui-icon-alert { background-position: 0 -144px; }
740 | .ui-icon-info { background-position: -16px -144px; }
741 | .ui-icon-notice { background-position: -32px -144px; }
742 | .ui-icon-help { background-position: -48px -144px; }
743 | .ui-icon-check { background-position: -64px -144px; }
744 | .ui-icon-bullet { background-position: -80px -144px; }
745 | .ui-icon-radio-on { background-position: -96px -144px; }
746 | .ui-icon-radio-off { background-position: -112px -144px; }
747 | .ui-icon-pin-w { background-position: -128px -144px; }
748 | .ui-icon-pin-s { background-position: -144px -144px; }
749 | .ui-icon-play { background-position: 0 -160px; }
750 | .ui-icon-pause { background-position: -16px -160px; }
751 | .ui-icon-seek-next { background-position: -32px -160px; }
752 | .ui-icon-seek-prev { background-position: -48px -160px; }
753 | .ui-icon-seek-end { background-position: -64px -160px; }
754 | .ui-icon-seek-start { background-position: -80px -160px; }
755 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
756 | .ui-icon-seek-first { background-position: -80px -160px; }
757 | .ui-icon-stop { background-position: -96px -160px; }
758 | .ui-icon-eject { background-position: -112px -160px; }
759 | .ui-icon-volume-off { background-position: -128px -160px; }
760 | .ui-icon-volume-on { background-position: -144px -160px; }
761 | .ui-icon-power { background-position: 0 -176px; }
762 | .ui-icon-signal-diag { background-position: -16px -176px; }
763 | .ui-icon-signal { background-position: -32px -176px; }
764 | .ui-icon-battery-0 { background-position: -48px -176px; }
765 | .ui-icon-battery-1 { background-position: -64px -176px; }
766 | .ui-icon-battery-2 { background-position: -80px -176px; }
767 | .ui-icon-battery-3 { background-position: -96px -176px; }
768 | .ui-icon-circle-plus { background-position: 0 -192px; }
769 | .ui-icon-circle-minus { background-position: -16px -192px; }
770 | .ui-icon-circle-close { background-position: -32px -192px; }
771 | .ui-icon-circle-triangle-e { background-position: -48px -192px; }
772 | .ui-icon-circle-triangle-s { background-position: -64px -192px; }
773 | .ui-icon-circle-triangle-w { background-position: -80px -192px; }
774 | .ui-icon-circle-triangle-n { background-position: -96px -192px; }
775 | .ui-icon-circle-arrow-e { background-position: -112px -192px; }
776 | .ui-icon-circle-arrow-s { background-position: -128px -192px; }
777 | .ui-icon-circle-arrow-w { background-position: -144px -192px; }
778 | .ui-icon-circle-arrow-n { background-position: -160px -192px; }
779 | .ui-icon-circle-zoomin { background-position: -176px -192px; }
780 | .ui-icon-circle-zoomout { background-position: -192px -192px; }
781 | .ui-icon-circle-check { background-position: -208px -192px; }
782 | .ui-icon-circlesmall-plus { background-position: 0 -208px; }
783 | .ui-icon-circlesmall-minus { background-position: -16px -208px; }
784 | .ui-icon-circlesmall-close { background-position: -32px -208px; }
785 | .ui-icon-squaresmall-plus { background-position: -48px -208px; }
786 | .ui-icon-squaresmall-minus { background-position: -64px -208px; }
787 | .ui-icon-squaresmall-close { background-position: -80px -208px; }
788 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
789 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
790 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
791 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
792 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
793 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
794 |
795 |
796 | /* Misc visuals
797 | ----------------------------------*/
798 |
799 | /* Corner radius */
800 | .ui-corner-all,
801 | .ui-corner-top,
802 | .ui-corner-left,
803 | .ui-corner-tl {
804 | border-top-left-radius: 4px;
805 | }
806 | .ui-corner-all,
807 | .ui-corner-top,
808 | .ui-corner-right,
809 | .ui-corner-tr {
810 | border-top-right-radius: 4px;
811 | }
812 | .ui-corner-all,
813 | .ui-corner-bottom,
814 | .ui-corner-left,
815 | .ui-corner-bl {
816 | border-bottom-left-radius: 4px;
817 | }
818 | .ui-corner-all,
819 | .ui-corner-bottom,
820 | .ui-corner-right,
821 | .ui-corner-br {
822 | border-bottom-right-radius: 4px;
823 | }
824 |
825 | /* Overlays */
826 | .ui-widget-overlay {
827 | background: #aaaaaa;
828 | opacity: .3;
829 | filter: Alpha(Opacity=30); /* support: IE8 */
830 | }
831 | .ui-widget-shadow {
832 | margin: -8px 0 0 -8px;
833 | padding: 8px;
834 | background: #aaaaaa;
835 | opacity: .3;
836 | filter: Alpha(Opacity=30); /* support: IE8 */
837 | border-radius: 8px;
838 | }
839 |
--------------------------------------------------------------------------------
/jsrender.js:
--------------------------------------------------------------------------------
1 | /*! JsRender v1.0.0-rc.70 (Beta - Release Candidate): http://jsviews.com/#jsrender */
2 | /*! **VERSION FOR WEB** (For NODE.JS see http://jsviews.com/download/jsrender-node.js) */
3 | /*
4 | * Best-of-breed templating in browser or on Node.js.
5 | * Does not require jQuery, or HTML DOM
6 | * Integrates with JsViews (http://jsviews.com/#jsviews)
7 | *
8 | * Copyright 2015, Boris Moore
9 | * Released under the MIT License.
10 | */
11 |
12 | //jshint -W018, -W041
13 |
14 | (function(factory) {
15 | // global var is the this object, which is window when running in the usual browser environment
16 | var global = (0, eval)('this'), // jshint ignore:line
17 | $ = global.jQuery;
18 |
19 | if (typeof define === "function" && define.amd) { // AMD script loader, e.g. RequireJS
20 | define(factory);
21 | } else if (typeof exports === "object") { // CommonJS e.g. Browserify
22 | module.exports = $
23 | ? factory($)
24 | : function($) { // If no global jQuery, take optional jQuery passed as parameter: require('jsrender')(jQuery)
25 | if ($ && !$.fn) {
26 | throw "Provide jQuery or null";
27 | }
28 | return factory($);
29 | };
30 | } else { // Browser using plain