cpee 1.4.26 → 1.4.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/js_libs.zip +0 -0
  3. data/cockpit/js_libs/Makefile +2 -0
  4. data/cockpit/js_libs/ansi_up.js +333 -0
  5. data/cockpit/js_libs/console.js +80 -0
  6. data/cockpit/js_libs/custommenu.css +84 -0
  7. data/cockpit/js_libs/custommenu.js +101 -0
  8. data/cockpit/js_libs/jquery-2.2.4.min.js +4 -0
  9. data/cockpit/js_libs/jquery-3.2.1.min.js +4 -0
  10. data/cockpit/js_libs/jquery-3.3.1.min.js +2 -0
  11. data/cockpit/js_libs/jquery.browser.js +40 -0
  12. data/cockpit/js_libs/jquery.caret.min.js +10 -0
  13. data/cockpit/js_libs/jquery.cookie.js +117 -0
  14. data/cockpit/js_libs/jquery.min.js +1 -0
  15. data/cockpit/js_libs/jquery.svg.min.js +6 -0
  16. data/cockpit/js_libs/jquery.svgdom.min.js +6 -0
  17. data/cockpit/js_libs/markdown.min.js +1 -0
  18. data/cockpit/js_libs/parsequery.js +21 -0
  19. data/cockpit/js_libs/printf.js +368 -0
  20. data/cockpit/js_libs/relaxngui.css +153 -0
  21. data/cockpit/js_libs/relaxngui.js +402 -0
  22. data/cockpit/js_libs/strftime.min.js +1 -0
  23. data/cockpit/js_libs/tests/dataelements.html +58 -0
  24. data/cockpit/js_libs/tests/dataelements.rng +8 -0
  25. data/cockpit/js_libs/tests/dataelements.xml +3 -0
  26. data/cockpit/js_libs/tests/rngtest1.html +59 -0
  27. data/cockpit/js_libs/tests/rngtest1.rng +41 -0
  28. data/cockpit/js_libs/tests/rngtest1.xml +11 -0
  29. data/cockpit/js_libs/tests/rngtest2.html +59 -0
  30. data/cockpit/js_libs/tests/rngtest2.rng +6 -0
  31. data/cockpit/js_libs/tests/rngtest2.xml +3 -0
  32. data/cockpit/js_libs/tests/rngtest3.html +59 -0
  33. data/cockpit/js_libs/tests/rngtest3.rng +23 -0
  34. data/cockpit/js_libs/tests/rngtest3.xml +9 -0
  35. data/cockpit/js_libs/tests/rngtest4.html +59 -0
  36. data/cockpit/js_libs/tests/rngtest4.rng +19 -0
  37. data/cockpit/js_libs/tests/rngtest4.xml +12 -0
  38. data/cockpit/js_libs/tests/rngtest5.html +59 -0
  39. data/cockpit/js_libs/tests/rngtest5.rng +75 -0
  40. data/cockpit/js_libs/tests/rngtest5.xml +40 -0
  41. data/cockpit/js_libs/tests/rngtest6.html +59 -0
  42. data/cockpit/js_libs/tests/rngtest6.rng +24 -0
  43. data/cockpit/js_libs/tests/rngtest6.xml +6 -0
  44. data/cockpit/js_libs/tests/rngtest8.html +59 -0
  45. data/cockpit/js_libs/tests/rngtest8.rng +13 -0
  46. data/cockpit/js_libs/tests/rngtest8.xml +2 -0
  47. data/cockpit/js_libs/ui.css +301 -0
  48. data/cockpit/js_libs/ui.html +168 -0
  49. data/cockpit/js_libs/ui.js +172 -0
  50. data/cockpit/js_libs/underscore.min.js +27 -0
  51. data/cockpit/js_libs/util.js +84 -0
  52. data/cockpit/js_libs/vkbeautify.0.99.00.beta.js +358 -0
  53. data/cockpit/js_libs/vkbeautify.js +1 -0
  54. data/cockpit/js_libs/webcomponents.min.js +196 -0
  55. data/cpee.gemspec +2 -1
  56. data/server/instances/104/notifications/888d50456e0c2d39d0542a21999c9e0b/consumer-secret +1 -0
  57. data/server/instances/104/notifications/888d50456e0c2d39d0542a21999c9e0b/producer-secret +1 -0
  58. data/server/instances/104/notifications/888d50456e0c2d39d0542a21999c9e0b/subscription.xml +38 -0
  59. data/server/instances/104/notifications/logging/consumer-secret +1 -0
  60. data/server/instances/104/notifications/logging/producer-secret +1 -0
  61. data/server/instances/104/notifications/logging/subscription.xml +19 -0
  62. data/server/instances/104/properties.xml +31 -0
  63. data/tools/cpee +36 -7
  64. metadata +77 -5
  65. data/server/server.pid +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bfdf2f4eb0e174cde8d67c2551f1bb0753cae717b687f3f45079845d6823639
4
- data.tar.gz: bbbfab5e578ac3e9bd68c3845fb17632f467460d83fc6a04f908bf8b3311ad5b
3
+ metadata.gz: 217224a6c7fe9cf71f53fbb124c5db4e05e88c74e60370c26542da1eebdff52b
4
+ data.tar.gz: 74edebb3376563653e964826d4285602226a788fd7b36cc8b392a773505d02d4
5
5
  SHA512:
6
- metadata.gz: 37c394dcfb064c1c7c840d9b55bf8475ad8be8c7981fed8af8cedf92c018f7347569ed982b615180aaac105b35268181d8dc3198f4ab9d5d8d1241f936d0a750
7
- data.tar.gz: 91e7605015c0b37494a8fc7ac64a760bc268cede9f68abac2540e14315abe1aa9e678419205b65b644632c06996183abdf8b82bdec28cd2b63d903412d809417
6
+ metadata.gz: 5ad393009db87cf4a2b3fdccd4c5bf01ab4873901fd975bd933e952f339423dad485ab3257a268b2eee3f2b23a512258baa191d732893143640cd5584f67b210
7
+ data.tar.gz: 6fb554db659af86b93889f9930dc1929c3b1b5bfe446ae2501feea223b03592b96f82bd11fa37d00b546b0c10152ec17b9754d95150de482a34e0f22a264e655
Binary file
@@ -0,0 +1,2 @@
1
+ all:
2
+ git archive --format=zip --prefix=js_libs/ HEAD -o libs.zip
@@ -0,0 +1,333 @@
1
+ /* ansi_up.js
2
+ * author : Dru Nelson
3
+ * license : MIT
4
+ * http://github.com/drudru/ansi_up
5
+ */
6
+ (function (root, factory) {
7
+ if (typeof define === 'function' && define.amd) {
8
+ // AMD. Register as an anonymous module.
9
+ define(['exports'], factory);
10
+ } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
11
+ // CommonJS
12
+ factory(exports);
13
+ } else {
14
+ // Browser globals
15
+ var exp = {};
16
+ factory(exp);
17
+ root.AnsiUp = exp.default;
18
+ }
19
+ }(this, function (exports) {
20
+ "use strict";
21
+ function rgx(tmplObj) {
22
+ var subst = [];
23
+ for (var _i = 1; _i < arguments.length; _i++) {
24
+ subst[_i - 1] = arguments[_i];
25
+ }
26
+ var regexText = tmplObj.raw[0];
27
+ var wsrgx = /^\s+|\s+\n|\s+#[\s\S]+?\n/gm;
28
+ var txt2 = regexText.replace(wsrgx, '');
29
+ return new RegExp(txt2, 'm');
30
+ }
31
+ var AnsiUp = (function () {
32
+ function AnsiUp() {
33
+ this.VERSION = "3.0.0";
34
+ this.ansi_colors = [
35
+ [
36
+ { rgb: [0, 0, 0], class_name: "ansi-black" },
37
+ { rgb: [187, 0, 0], class_name: "ansi-red" },
38
+ { rgb: [0, 187, 0], class_name: "ansi-green" },
39
+ { rgb: [187, 187, 0], class_name: "ansi-yellow" },
40
+ { rgb: [0, 0, 187], class_name: "ansi-blue" },
41
+ { rgb: [187, 0, 187], class_name: "ansi-magenta" },
42
+ { rgb: [0, 187, 187], class_name: "ansi-cyan" },
43
+ { rgb: [255, 255, 255], class_name: "ansi-white" }
44
+ ],
45
+ [
46
+ { rgb: [85, 85, 85], class_name: "ansi-bright-black" },
47
+ { rgb: [255, 85, 85], class_name: "ansi-bright-red" },
48
+ { rgb: [0, 255, 0], class_name: "ansi-bright-green" },
49
+ { rgb: [255, 255, 85], class_name: "ansi-bright-yellow" },
50
+ { rgb: [85, 85, 255], class_name: "ansi-bright-blue" },
51
+ { rgb: [255, 85, 255], class_name: "ansi-bright-magenta" },
52
+ { rgb: [85, 255, 255], class_name: "ansi-bright-cyan" },
53
+ { rgb: [255, 255, 255], class_name: "ansi-bright-white" }
54
+ ]
55
+ ];
56
+ this.htmlFormatter = {
57
+ transform: function (fragment, instance) {
58
+ var txt = fragment.text;
59
+ if (txt.length === 0)
60
+ return txt;
61
+ if (instance._escape_for_html)
62
+ txt = instance.old_escape_for_html(txt);
63
+ if (!fragment.bold && fragment.fg === null && fragment.bg === null)
64
+ return txt;
65
+ var styles = [];
66
+ var classes = [];
67
+ var fg = fragment.fg;
68
+ var bg = fragment.bg;
69
+ if (fragment.bold)
70
+ styles.push('font-weight:bold');
71
+ if (!instance._use_classes) {
72
+ if (fg)
73
+ styles.push("color:rgb(" + fg.rgb.join(',') + ")");
74
+ if (bg)
75
+ styles.push("background-color:rgb(" + bg.rgb + ")");
76
+ }
77
+ else {
78
+ if (fg) {
79
+ if (fg.class_name !== 'truecolor') {
80
+ classes.push(fg.class_name + "-fg");
81
+ }
82
+ else {
83
+ styles.push("color:rgb(" + fg.rgb.join(',') + ")");
84
+ }
85
+ }
86
+ if (bg) {
87
+ if (bg.class_name !== 'truecolor') {
88
+ classes.push(bg.class_name + "-bg");
89
+ }
90
+ else {
91
+ styles.push("background-color:rgb(" + bg.rgb.join(',') + ")");
92
+ }
93
+ }
94
+ }
95
+ var class_string = '';
96
+ var style_string = '';
97
+ if (classes.length)
98
+ class_string = " class=\"" + classes.join(' ') + "\"";
99
+ if (styles.length)
100
+ style_string = " style=\"" + styles.join(';') + "\"";
101
+ return "<span" + style_string + class_string + ">" + txt + "</span>";
102
+ },
103
+ compose: function (segments, instance) {
104
+ return segments.join("");
105
+ }
106
+ };
107
+ this.textFormatter = {
108
+ transform: function (fragment, instance) {
109
+ return fragment.text;
110
+ },
111
+ compose: function (segments, instance) {
112
+ return segments.join("");
113
+ }
114
+ };
115
+ this.setup_256_palette();
116
+ this._use_classes = false;
117
+ this._escape_for_html = true;
118
+ this.bold = false;
119
+ this.fg = this.bg = null;
120
+ this._buffer = '';
121
+ }
122
+ Object.defineProperty(AnsiUp.prototype, "use_classes", {
123
+ get: function () {
124
+ return this._use_classes;
125
+ },
126
+ set: function (arg) {
127
+ this._use_classes = arg;
128
+ },
129
+ enumerable: true,
130
+ configurable: true
131
+ });
132
+ Object.defineProperty(AnsiUp.prototype, "escape_for_html", {
133
+ get: function () {
134
+ return this._escape_for_html;
135
+ },
136
+ set: function (arg) {
137
+ this._escape_for_html = arg;
138
+ },
139
+ enumerable: true,
140
+ configurable: true
141
+ });
142
+ AnsiUp.prototype.setup_256_palette = function () {
143
+ var _this = this;
144
+ this.palette_256 = [];
145
+ this.ansi_colors.forEach(function (palette) {
146
+ palette.forEach(function (rec) {
147
+ _this.palette_256.push(rec);
148
+ });
149
+ });
150
+ var levels = [0, 95, 135, 175, 215, 255];
151
+ for (var r = 0; r < 6; ++r) {
152
+ for (var g = 0; g < 6; ++g) {
153
+ for (var b = 0; b < 6; ++b) {
154
+ var col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };
155
+ this.palette_256.push(col);
156
+ }
157
+ }
158
+ }
159
+ var grey_level = 8;
160
+ for (var i = 0; i < 24; ++i, grey_level += 10) {
161
+ var gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };
162
+ this.palette_256.push(gry);
163
+ }
164
+ };
165
+ AnsiUp.prototype.old_escape_for_html = function (txt) {
166
+ return txt.replace(/[&<>]/gm, function (str) {
167
+ if (str === "&")
168
+ return "&amp;";
169
+ if (str === "<")
170
+ return "&lt;";
171
+ if (str === ">")
172
+ return "&gt;";
173
+ });
174
+ };
175
+ AnsiUp.prototype.old_linkify = function (txt) {
176
+ return txt.replace(/(https?:\/\/[^\s]+)/gm, function (str) {
177
+ return "<a href=\"" + str + "\">" + str + "</a>";
178
+ });
179
+ };
180
+ AnsiUp.prototype.detect_incomplete_ansi = function (txt) {
181
+ return !(/.*?[\x40-\x7e]/.test(txt));
182
+ };
183
+ AnsiUp.prototype.detect_incomplete_link = function (txt) {
184
+ var found = false;
185
+ for (var i = txt.length - 1; i > 0; i--) {
186
+ if (/\s|\x1B/.test(txt[i])) {
187
+ found = true;
188
+ break;
189
+ }
190
+ }
191
+ if (!found) {
192
+ if (/(https?:\/\/[^\s]+)/.test(txt))
193
+ return 0;
194
+ else
195
+ return -1;
196
+ }
197
+ var prefix = txt.substr(i + 1, 4);
198
+ if (prefix.length === 0)
199
+ return -1;
200
+ if ("http".indexOf(prefix) === 0)
201
+ return (i + 1);
202
+ };
203
+ AnsiUp.prototype.ansi_to = function (txt, formatter) {
204
+ var pkt = this._buffer + txt;
205
+ this._buffer = '';
206
+ var raw_text_pkts = pkt.split(/\x1B\[/);
207
+ if (raw_text_pkts.length === 1)
208
+ raw_text_pkts.push('');
209
+ this.handle_incomplete_sequences(raw_text_pkts);
210
+ var first_chunk = this.with_state(raw_text_pkts.shift());
211
+ var blocks = new Array(raw_text_pkts.length);
212
+ for (var i = 0, len = raw_text_pkts.length; i < len; ++i) {
213
+ blocks[i] = (formatter.transform(this.process_ansi(raw_text_pkts[i]), this));
214
+ }
215
+ if (first_chunk.text.length > 0)
216
+ blocks.unshift(formatter.transform(first_chunk, this));
217
+ return formatter.compose(blocks, this);
218
+ };
219
+ AnsiUp.prototype.ansi_to_html = function (txt) {
220
+ return this.ansi_to(txt, this.htmlFormatter);
221
+ };
222
+ AnsiUp.prototype.ansi_to_text = function (txt) {
223
+ return this.ansi_to(txt, this.textFormatter);
224
+ };
225
+ AnsiUp.prototype.with_state = function (text) {
226
+ return { bold: this.bold, fg: this.fg, bg: this.bg, text: text };
227
+ };
228
+ AnsiUp.prototype.handle_incomplete_sequences = function (chunks) {
229
+ var last_chunk = chunks[chunks.length - 1];
230
+ if ((last_chunk.length > 0) && this.detect_incomplete_ansi(last_chunk)) {
231
+ this._buffer = "\x1B[" + last_chunk;
232
+ chunks.pop();
233
+ chunks.push('');
234
+ }
235
+ else {
236
+ if (last_chunk.slice(-1) === "\x1B") {
237
+ this._buffer = "\x1B";
238
+ console.log("raw", chunks);
239
+ chunks.pop();
240
+ chunks.push(last_chunk.substr(0, last_chunk.length - 1));
241
+ console.log(chunks);
242
+ console.log(last_chunk);
243
+ }
244
+ if (chunks.length === 2 &&
245
+ chunks[1] === "" &&
246
+ chunks[0].slice(-1) === "\x1B") {
247
+ this._buffer = "\x1B";
248
+ last_chunk = chunks.shift();
249
+ chunks.unshift(last_chunk.substr(0, last_chunk.length - 1));
250
+ }
251
+ }
252
+ };
253
+ AnsiUp.prototype.process_ansi = function (block) {
254
+ if (!this._sgr_regex) {
255
+ this._sgr_regex = (_a = ["\n ^ # beginning of line\n ([!<-?]?) # a private-mode char (!, <, =, >, ?)\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n ([sS]*) # any text following this CSI sequence\n "], _a.raw = ["\n ^ # beginning of line\n ([!\\x3c-\\x3f]?) # a private-mode char (!, <, =, >, ?)\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n ([\\s\\S]*) # any text following this CSI sequence\n "], rgx(_a));
256
+ }
257
+ var matches = block.match(this._sgr_regex);
258
+ if (!matches) {
259
+ return this.with_state(block);
260
+ }
261
+ var orig_txt = matches[4];
262
+ if (matches[1] !== '' || matches[3] !== 'm') {
263
+ return this.with_state(orig_txt);
264
+ }
265
+ var sgr_cmds = matches[2].split(';');
266
+ while (sgr_cmds.length > 0) {
267
+ var sgr_cmd_str = sgr_cmds.shift();
268
+ var num = parseInt(sgr_cmd_str, 10);
269
+ if (isNaN(num) || num === 0) {
270
+ this.fg = this.bg = null;
271
+ this.bold = false;
272
+ }
273
+ else if (num === 1) {
274
+ this.bold = true;
275
+ }
276
+ else if (num === 22) {
277
+ this.bold = false;
278
+ }
279
+ else if (num === 39) {
280
+ this.fg = null;
281
+ }
282
+ else if (num === 49) {
283
+ this.bg = null;
284
+ }
285
+ else if ((num >= 30) && (num < 38)) {
286
+ this.fg = this.ansi_colors[0][(num - 30)];
287
+ }
288
+ else if ((num >= 40) && (num < 48)) {
289
+ this.bg = this.ansi_colors[0][(num - 40)];
290
+ }
291
+ else if ((num >= 90) && (num < 98)) {
292
+ this.fg = this.ansi_colors[1][(num - 90)];
293
+ }
294
+ else if ((num >= 100) && (num < 108)) {
295
+ this.bg = this.ansi_colors[1][(num - 100)];
296
+ }
297
+ else if (num === 38 || num === 48) {
298
+ if (sgr_cmds.length > 0) {
299
+ var is_foreground = (num === 38);
300
+ var mode_cmd = sgr_cmds.shift();
301
+ if (mode_cmd === '5' && sgr_cmds.length > 0) {
302
+ var palette_index = parseInt(sgr_cmds.shift(), 10);
303
+ if (palette_index >= 0 && palette_index <= 255) {
304
+ if (is_foreground)
305
+ this.fg = this.palette_256[palette_index];
306
+ else
307
+ this.bg = this.palette_256[palette_index];
308
+ }
309
+ }
310
+ if (mode_cmd === '2' && sgr_cmds.length > 2) {
311
+ var r = parseInt(sgr_cmds.shift(), 10);
312
+ var g = parseInt(sgr_cmds.shift(), 10);
313
+ var b = parseInt(sgr_cmds.shift(), 10);
314
+ if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {
315
+ var c = { rgb: [r, g, b], class_name: 'truecolor' };
316
+ if (is_foreground)
317
+ this.fg = c;
318
+ else
319
+ this.bg = c;
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ return this.with_state(orig_txt);
326
+ var _a;
327
+ };
328
+ return AnsiUp;
329
+ }());
330
+ //# sourceMappingURL=ansi_up.js.map
331
+ Object.defineProperty(exports, "__esModule", { value: true });
332
+ exports.default = AnsiUp;
333
+ }));
@@ -0,0 +1,80 @@
1
+ $(document).ready(function(){
2
+ var history = 1;
3
+ var current_command = 1;
4
+ var dragging = 0;
5
+ var url = location.href + (location.href.match(/\/$/) ? '' : '/');
6
+ var ansi_up = new AnsiUp;
7
+ $('.console-line:last-child .edit').focus();
8
+ $(document).on('click', '.console-line:last-child', function(e) {
9
+ $('.console-line:last-child .edit').focus();
10
+ });
11
+ $(document).on('keydown', 'body', function(e) {
12
+ if ((e.ctrlKey && e.keyCode == 86) || !e.ctrlKey) {
13
+ $('.console-line:last-child .edit').focus();
14
+ } else {
15
+ return;
16
+ }
17
+ if (e.keyCode == 38) {
18
+ var anakin = $('.console-line:last-child .edit');
19
+ if(current_command<history) {
20
+ current_command++;
21
+ }
22
+ anakin.text($(".console-line:nth-last-child("+current_command+") > .edit").text());
23
+ anakin.focus();
24
+ jQuery.event.trigger({type:'keyup',which:35,charCode:35,ctrlKey: false});
25
+ return false;
26
+ } else if (e.keyCode == 40) {
27
+ var anakin = $('.console-line:last-child .edit');
28
+ if(current_command>1) {
29
+ current_command--;
30
+ }
31
+ anakin.html($(".console-line:nth-last-child("+current_command+") > .edit").text());
32
+ } else if (e.keyCode == 13) {
33
+ var anakin = $('.console-line:last-child .edit');
34
+ var anakin_str = anakin.text().split(" ");
35
+ var command= "";
36
+ var cc = 0;
37
+ history++;
38
+ current_command=1;
39
+ anakin_str.forEach(function(x){
40
+ if (cc==0){
41
+ command="cmd="+x;
42
+ cc++;
43
+ } else{
44
+ command+=" "+x;
45
+ }
46
+ });
47
+ if(anakin_str[0]=="clear"){
48
+ window.location.reload();
49
+ return false;
50
+ }
51
+ $.ajax({
52
+ url: url,
53
+ type: 'get',
54
+ data: command,
55
+ success: function(data) {
56
+ if(jQuery.type(data)=="string"){
57
+ var appendix = '';
58
+ appendix += $.trim(data) + "\n";
59
+ if(anakin_str[0]=="help")
60
+ appendix+="\033[1m\033[31mclear\033[0m\033[0m\n Clear screen.";
61
+ var node = $("<div style='white-space: pre-wrap;'/>");
62
+ node.html(ansi_up.ansi_to_html(appendix));
63
+ anakin.parent().append(node);
64
+ }
65
+ },
66
+ error: function(data) {
67
+ anakin.parent().append("<div>server made a boo boo</div>");
68
+ },
69
+ complete: function(data) {
70
+ var node = $("#console-template").clone().appendTo("body");
71
+ node.show();
72
+ node.removeAttr('id');
73
+ $('.edit:last-child',node).focus();
74
+ }
75
+ });
76
+ anakin.attr('contenteditable',false);
77
+ return false;
78
+ }
79
+ });
80
+ });
@@ -0,0 +1,84 @@
1
+ /*
2
+ This file is part of CPEE.
3
+
4
+ CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE (file COPYING in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ */
16
+
17
+ div.contextmenu, div.menu {
18
+ padding: 0;
19
+ margin: 0;
20
+ z-index: 100000;
21
+ position: absolute;
22
+ display:none;
23
+ background: Menu;
24
+ border: 1px solid #a1a1a1;
25
+ -moz-box-sizing: border-box;
26
+ -webkit-box-sizing: border-box;
27
+ box-sizing: border-box;
28
+ box-shadow: 0.1em 0.1em 0.1em #a1a1a1;
29
+ }
30
+
31
+ table.contextmenu {
32
+ border-collapse:collapse;
33
+ border-spacing: 0;
34
+ border: 0 none;
35
+ padding: 0;
36
+ margin: 0;
37
+ }
38
+
39
+ tr.contextmenuheader {
40
+ font-style:italic;
41
+ color: #a1a1a1;
42
+ font-size: small;
43
+ }
44
+
45
+ tr.contextmenuheader > td{
46
+ padding-left: 0.5em;
47
+ padding-right: 1em;
48
+ }
49
+ tr.contextmenuheader:not(:first-child) {
50
+ border-top: 1px solid #a1a1a1;
51
+ }
52
+
53
+ div.menu > div {
54
+ height: 1.5em;
55
+ }
56
+
57
+ tr.contextmenuitem, div.menu > div {
58
+ font-size: small;
59
+ color: #333;
60
+ }
61
+ tr.contextmenuitem:hover, div.menu > div:hover {
62
+ background-color:Highlight;
63
+ color: HighlightText;
64
+ }
65
+ tr.contextmenuitem > td, div.menu > div {
66
+ padding: 0;
67
+ margin: 0;
68
+ padding-left: 0.5em;
69
+ padding-right: 1em;
70
+ }
71
+ tr.contextmenuitem > .contextmenuicon {
72
+ margin-left: 0.7em;
73
+ padding-right: 0em;
74
+ }
75
+ tr.contextmenuitem > .contextmenuicon div {
76
+ height: 1.5em;
77
+ width: 1.5em;
78
+ vertical-align:bottom;
79
+ }
80
+ tr.contextmenuitem > .contextmenuicon div svg {
81
+ height: 1.5em;
82
+ width: 1.5em;
83
+ vertical-align:bottom;
84
+ }