@cmusei/console-forge 0.9.0 → 0.10.0

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.
package/README.md CHANGED
@@ -122,21 +122,16 @@ If it does, things are a little become slightly complex.
122
122
 
123
123
  ### Including the HTML Console SDK's assets
124
124
 
125
- We use a lightly modified version of the [VMWare HTML Console SDK](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere-sdks-tools/8-0/html-console-sdk-programming-guide.html) to deliver VMWare console support. For convenience, we include that SDK in the library. To include it in your Angular app's scripts, you'll need to update the `"styles"` and `"scripts"` sections of your `angular.json` file to include it. It'll look something like this:
125
+ To use ConsoleForge to connect to VMWare consoles, you'll need a copy of the [VMWare HTML Console SDK](https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere-sdks-tools/8-0/html-console-sdk-programming-guide.html). For licensing reasons, we don't include this SDK with ConsoleForge. To include it in your Angular app's scripts, you'll need to update the `"styles"` and `"scripts"` sections of your `angular.json` file. Depending where you commit it to your project, it'll look something like this:
126
126
 
127
127
  ```json
128
128
  //snip
129
- "styles": ["dist/console-forge/vendor/vmware-wmks/css/main-ui.css"],
129
+ "styles": ["path/to/vmware-wmks/css/main-ui.css"],
130
130
  // snip
131
- "scripts": ["node_modules/console-forge/vendor/vmware-wmks/js/wmks.min.js"]
131
+ "scripts": ["path/to/vmware-wmks/js/wmks.min.js"]
132
132
  // snip
133
133
  ```
134
134
 
135
- We make the following adjustments due to our use case:
136
-
137
- - We include only the `main-ui.css` stylesheet in the library
138
- - We don't include images referenced by this CSS for reasons of distribution complexity
139
-
140
135
  ### jQuery
141
136
 
142
137
  This SDK also has dependencies on jQuery and jQuery UI, which you'll also need to add to your Angular project. Depending on your use case, you can either do this through a CDN like [code.jquery.com](https://code.jquery.com/jquery-3.7.1.min.js) or via your favorite Node package manager. (Note that the HTML Console SDK's current documentation is not specific about which versions of jQuery/jQuery UI are required.) Assuming you're able to install and correctly configure the inclusion of these three dependencies, VMWare consoles in ConsoleForge should work as expected. Having trouble? [Drop as an issue and let us know.](https://github.com/cmu-sei/console-forge/issues)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmusei/console-forge",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/cmu-sei/console-forge.git"
@@ -1,318 +0,0 @@
1
- /******************************************************************************
2
- * Copyright 2013 VMware, Inc. All rights reserved.
3
- *****************************************************************************/
4
-
5
- /*
6
- * extended-keypad.css
7
- *
8
- * Defines style for the virtual keys on the control pane.
9
- */
10
-
11
- .ctrl-pane-wrapper {
12
- width: 290px !important; /* Needed as the default is a bit larger than this */
13
- border: 1px solid #333 !important;
14
- -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px;
15
- background: rgb(170,171,182); /* Old browsers */
16
- background: -webkit-linear-gradient(top, rgba(170,171,182,.93) 0%,rgba(123,123,133,.93) 100%); /* Chrome10+,Safari5.1+ */
17
- background: -o-linear-gradient(top, rgba(170,171,182,.93) 0%,rgba(123,123,133,.93) 100%); /* Opera 11.10+ */
18
- background: -ms-linear-gradient(top, rgba(170,171,182,.93) 0%,rgba(123,123,133,.93) 100%); /* IE10+ */
19
- background: linear-gradient(top, rgba(170,171,182,.93) 0%,rgba(123,123,133,.93) 100%); /* W3C */
20
- }
21
-
22
- .fnKey-pane-wrapper {
23
- width: 427px;
24
- border: 1px solid #333;
25
- -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px;
26
- background: #c1c4d1; /* Old browsers */
27
- background: -webkit-linear-gradient(top, #c1c4d1 0%,#b0b1bd 100%); /* Chrome10+,Safari5.1+ */
28
- background: -o-linear-gradient(top, #c1c4d1 0%,#b0b1bd 100%); /* Opera 11.10+ */
29
- background: -ms-linear-gradient(top, #c1c4d1 0%,#b0b1bd 100%); /* IE10+ */
30
- background: linear-gradient(top, #c1c4d1 0%, #b0b1bd 100%); /* W3C */
31
- position: absolute;
32
- padding: 0;
33
- -moz-box-shadow: 0px 5px 7px rgba(0,0,0,.5);
34
- -webkit-box-shadow: 0px 5px 7px rgba(0,0,0,.5);
35
- box-shadow: 0px 5px 7px rgba(0,0,0,.5);
36
- }
37
-
38
- .fnKey-pane-wrapper-down {
39
- width: 427px;
40
- border: 1px solid #333;
41
- -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px;
42
- background: #6e6e77; /* Old browsers */
43
- background: -webkit-linear-gradient(top, #6e6e77 0%,#656565 100%); /* Chrome10+,Safari5.1+ */
44
- background: -o-linear-gradient(top, #6e6e77 0%,#656565 100%); /* Opera 11.10+ */
45
- background: -ms-linear-gradient(top, #6e6e77 0%,#656565 100%); /* IE10+ */
46
- background: linear-gradient(top, #6e6e77 0%, #656565 100%); /* W3C */
47
- position: absolute;
48
- padding: 0;
49
- -moz-box-shadow: 0px 5px 7px rgba(0,0,0,.5);
50
- -webkit-box-shadow: 0px 5px 7px rgba(0,0,0,.5);
51
- box-shadow: 0px 5px 7px rgba(0,0,0,.5);
52
- }
53
-
54
- /* Hide jquery ui title bar. */
55
- .ctrl-pane-wrapper .ui-dialog-titlebar {
56
- border-top: 1px solid #ccc;
57
- border-left: 1px solid #aaa;
58
- border-right: 1px solid #aaa;
59
- border-bottom: 0;
60
- padding: .6em .8em 0 .8em;
61
- background: none !important;
62
- -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px;
63
- -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px;
64
- }
65
-
66
- /* Replace jquery ui title bar close icon. */
67
- .ctrl-pane-wrapper .ui-dialog-titlebar-close {
68
- margin-top: -9px;
69
- border: 0 !important;
70
- background: none !important;
71
- }
72
-
73
- /* Background-image is defined along with touch-sprite in 1 place. */
74
- .ctrl-pane-wrapper .ui-dialog-titlebar-close .ui-icon {
75
- background-position: -9px -239px;
76
- background-repeat: no-repeat;
77
- }
78
-
79
- .ctrl-pane-wrapper .ui-dialog-titlebar-close .ui-icon:active {
80
- background-position-x: -24px;
81
- background-repeat: no-repeat;
82
- }
83
-
84
- /* The grabber icon indicating the dialog could be moved around */
85
- .ctrl-pane-wrapper .ui-dialog-titlebar .ui-dialog-title {
86
- background-position: -10px -255px;
87
- background-repeat: no-repeat;
88
- width: 40px;
89
- height: 14px;
90
- margin: 0 0 0 42%;
91
- }
92
-
93
- .ctrl-pane-wrapper .ui-dialog-titlebar .ui-dialog-title:active {
94
- background-position-x: -52px;
95
- }
96
-
97
- .ctrl-pane-wrapper .ui-dialog-content {
98
- background: none !important;
99
- padding: 0 0;
100
- border-style: solid;
101
- border-color: #aaaaaa;
102
- border-width: 0 1px 1px 1px;
103
- -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;
104
- -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;
105
- }
106
-
107
- .fnKey-inner-border-helper {
108
- position: relative;
109
- background: none !important;
110
- border-style: solid;
111
- border-color: #d5d5d5;
112
- border-width: 1px;
113
- -moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px;
114
- pointer-events:none;
115
- }
116
-
117
- .ctrl-pane-wrapper .ctrl-pane {
118
- padding: 3px 0 3px 6px;
119
- height: 140px;
120
- width: 280px;
121
- }
122
-
123
- .ctrl-pane .baseKey {
124
- float: left;
125
- border: 0;
126
- padding: 0;
127
- width: 57px;
128
- height: 57px;
129
- margin: 6px;
130
- -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px;
131
- font-family: "HelveticaNeue", "Helvetica Neue", "HelveticaNeue", "Helvetica Neue", 'TeXGyreHeros', "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
132
- font-size: 18px;
133
- text-shadow: 0 1px 1px #eeeeee;
134
- -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, .7);
135
- -webkit-box-shadow: 0px 1px 3px rgba(0,0,0,.7);
136
- box-shadow: 0px 1px 3px rgba(0,0,0,.7);
137
- }
138
-
139
- .ctrl-pane .ctrl-key-top-row {
140
- background: -webkit-linear-gradient(top, #fff 0%,#f3f5fb 2%,#d2d2d8 98%,#999 100%); /* Chrome10+,Safari5.1+ */
141
- background: -o-linear-gradient(top, #fff 0%,#f3f5fb 2%,#d2d2d8 98%,#999 100%); /* Opera 11.10+ */
142
- background: -ms-linear-gradient(top, #fff 0%,#f3f5fb 2%,#d2d2d8 98%,#999 100%); /* IE10+ */
143
- background: linear-gradient(top, #fff 0%,#f3f5fb 2%,#d2d2d8 98%,#999 100%); /* W3C */
144
- }
145
-
146
- .ctrl-pane .ctrl-key-bottom-row {
147
- background: -webkit-linear-gradient(top, #fff 0%,#e1e1e3 2%,#d1d1d4 50%,#bebec3 98%,#838387 100%); /* Chrome10+,Safari5.1+ */
148
- background: -o-linear-gradient(top, #fff 0%,#e1e1e3 2%,#d1d1d4 50%,#bebec3 98%,#838387 100%); /* Opera 11.10+ */
149
- background: -ms-linear-gradient(top, #fff 0%,#e1e1e3 2%,#d1d1d4 50%,#bebec3 98%,#838387 100%); /* IE10+ */
150
- background: linear-gradient(top, #fff 0%,#e1e1e3 2%,#d1d1d4 50%,#bebec3 98%,#838387 100%); /* W3C */
151
- }
152
-
153
- .ctrl-pane .up-position .fn-key-top-row {
154
- color:#333;
155
- background: #ffffff; /* Old browsers */
156
- background: -webkit-linear-gradient(top, #ffffff 0%,#f7f7f7 2%,#dcdde3 96%,#999999 100%); /* Chrome10+,Safari5.1+ */
157
- background: -o-linear-gradient(top, #ffffff 0%,#f7f7f7 2%,#dcdde3 96%,#999999 100%); /* Opera 11.10+ */
158
- background: -ms-linear-gradient(top, #ffffff 0%,#f7f7f7 2%,#dcdde3 96%,#999999 100%); /* IE10+ */
159
- background: linear-gradient(top, #ffffff 0%,#f7f7f7 2%,#dcdde3 96%,#999999 100%); /* W3C */
160
- }
161
-
162
- .ctrl-pane .up-position .fn-key-bottom-row {
163
- color:#333;
164
- background: #ffffff; /* Old browsers */
165
- background: -webkit-linear-gradient(top, #ffffff 0%,#f3f5fb 2%,#d2d2d8 98%,#999999 100%); /* Chrome10+,Safari5.1+ */
166
- background: -o-linear-gradient(top, #ffffff 0%,#f3f5fb 2%,#d2d2d8 98%,#999999 100%); /* Opera 11.10+ */
167
- background: -ms-linear-gradient(top, #ffffff 0%,#f3f5fb 2%,#d2d2d8 98%,#999999 100%); /* IE10+ */
168
- background: linear-gradient(top, #ffffff 0%,#f3f5fb 2%,#d2d2d8 98%,#999999 100%); /* W3C */
169
- }
170
-
171
- .ctrl-pane .down-position .fn-key-top-row {
172
- color:#333;
173
- background: #ffffff; /* Old browsers */
174
- background: -webkit-linear-gradient(top, #ffffff 0%,#e1e1e3 4%,#d1d1d4 45%,#b7b8bd 98%,#838387 100%); /* Chrome10+,Safari5.1+ */
175
- background: -o-linear-gradient(top, #ffffff 0%,#e1e1e3 4%,#d1d1d4 45%,#b7b8bd 98%,#838387 100%); /* Opera 11.10+ */
176
- background: -ms-linear-gradient(top, #ffffff 0%,#e1e1e3 4%,#d1d1d4 45%,#b7b8bd 98%,#838387 100%); /* IE10+ */
177
- background: linear-gradient(top, #ffffff 0%,#e1e1e3 4%,#d1d1d4 45%,#b7b8bd 98%,#838387 100%); /* W3C */
178
- }
179
-
180
- .ctrl-pane .down-position .fn-key-bottom-row {
181
- color:#333;
182
- background: #ffffff; /* Old browsers */
183
- background: -webkit-linear-gradient(top, #ffffff 0%,#d9dadd 4%,#c8c8cd 45%,#b0b0b7 98%,#838387 100%); /* Chrome10+,Safari5.1+ */
184
- background: -o-linear-gradient(top, #ffffff 0%,#d9dadd 4%,#c8c8cd 45%,#b0b0b7 98%,#838387 100%); /* Opera 11.10+ */
185
- background: -ms-linear-gradient(top, #ffffff 0%,#d9dadd 4%,#c8c8cd 45%,#b0b0b7 98%,#838387 100%); /* IE10+ */
186
- background: linear-gradient(top, #ffffff 0%,#d9dadd 4%,#c8c8cd 45%,#b0b0b7 98%,#838387 100%); /* W3C */
187
- }
188
-
189
- .ctrl-pane .fn-key-top-row {
190
- margin: 12px 6px 6px 6px;
191
- }
192
-
193
- .ctrl-pane .border-key-top-left .fn-key-top-row {
194
- margin: 12px 6px 6px 12px;
195
- }
196
-
197
- .ctrl-pane .border-key-top-right .fn-key-top-row {
198
- margin: 12px 12px 6px 6px;
199
- }
200
-
201
- .ctrl-pane .fn-key-bottom-row {
202
- margin: 5px 6px 12px 6px;
203
- }
204
-
205
- .ctrl-pane .border-key-bottom-left .fn-key-bottom-row {
206
- margin: 5px 6px 12px 12px;
207
- }
208
-
209
- .ctrl-pane .border-key-bottom-right .fn-key-bottom-row {
210
- margin: 5px 12px 12px 6px;
211
- }
212
-
213
- .ctrl-pane .ctrl-key-top-row:active, .ctrl-pane .fn-key-top-row:active,
214
- .ctrl-pane .ctrl-key-bottom-row:active, .ctrl-pane .fn-key-bottom-row:active {
215
- background: #bbbbbb;
216
- background: -webkit-linear-gradient(bottom, #888888 25%, #CCCCCC 68%);
217
- background: -ms-linear-gradient(bottom, #888888 25%, #CCCCCC 68%);
218
- background: -o-linear-gradient(bottom, #888888 25%, #CCCCCC 68%);
219
- background: linear-gradient(bottom, #888888 25%, #CCCCCC 68%);
220
- }
221
-
222
- .ctrl-pane .ctrl-key-top-row div, .ctrl-pane .ctrl-key-bottom-row div,
223
- .ctrl-pane .fn-key-top-row div, .ctrl-pane .fn-key-bottom-row div {
224
- width: 100%;
225
- text-align: center;
226
- padding-top: 17px;
227
- overflow-x: hidden;
228
- }
229
-
230
- /* Highlight selected modifier key */
231
- .ctrl-pane .ab-modifier-key-down {
232
- color: #4D8DFF;
233
- }
234
-
235
- .ctrl-pane .baseKey img { /* use .touch-sprite for image */
236
- background-repeat: no-repeat;
237
- width: 57px;
238
- height: 57px;
239
- border: 0;
240
- -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px;
241
- }
242
-
243
- .ctrl-pane .baseKey .right-arrow {
244
- background-position: -242px -182px;
245
- }
246
-
247
- .ctrl-pane .baseKey .left-arrow {
248
- background-position: -126px -182px;
249
- }
250
-
251
- .ctrl-pane .baseKey .up-arrow {
252
- background-position: -299px -182px;
253
- }
254
-
255
- .ctrl-pane .baseKey .down-arrow {
256
- background-position: -183px -182px;
257
- }
258
-
259
- .ctrl-pane .baseKey .more-keys {
260
- background-position: -10px -182px;
261
- }
262
-
263
- /* Ctrl - pane flip transition. */
264
- .ctrl-pane.flip-container {
265
- perspective: 1000;
266
- -webkit-perspective: 1000;
267
- -moz-perspective: 1000;
268
- -ms-perspective: 1000;
269
- }
270
-
271
- /* flip the ctrl-pane when this class toggles. */
272
- .flip-container.perform-flip .flipper {
273
- transform: rotateY(180deg);
274
- -webkit-transform: rotateY(180deg);
275
- -moz-transform: rotateY(180deg);
276
- -ms-transform: rotateY(180deg);
277
- }
278
-
279
- /* flip speed goes here */
280
- .flip-container .flipper {
281
- transition: 0.6s;
282
- transform-style: preserve-3d;
283
- -webkit-transition: 0.6s;
284
- -webkit-transform-style: preserve-3d;
285
- -moz-transition: 0.6s;
286
- -moz-transform-style: preserve-3d;
287
- -ms-transition: 0.6s;
288
- -ms-transform-style: preserve-3d;
289
- position: relative;
290
- }
291
-
292
- /* hide back of pane during swap */
293
- .flip-container .front, .flip-container .back {
294
- backface-visibility: hidden;
295
- -webkit-backface-visibility: hidden;
296
- -moz-backface-visibility: hidden;
297
- -ms-backface-visibility: hidden;
298
- position: absolute;
299
- top: 0;
300
- left: 0;
301
- }
302
-
303
- /* front pane, placed above back */
304
- .flip-container .front {
305
- z-index: 200;
306
- }
307
-
308
- /* back, initially hidden pane */
309
- .flip-container .back {
310
- transform: rotateY(180deg);
311
- -webkit-transform: rotateY(180deg);
312
- -moz-transform: rotateY(180deg);
313
- -ms-transform: rotateY(180deg);
314
- }
315
-
316
- #fnMasterKey {
317
- letter-spacing: -1px
318
- }
@@ -1,180 +0,0 @@
1
- /******************************************************************************
2
- * Copyright 2013 VMware, Inc. All rights reserved.
3
- *****************************************************************************/
4
-
5
- /*
6
- * main-ui.css
7
- *
8
- * Defines style for the wmks ui widgets.
9
- *
10
- * Use CSS3 for touch devices as jquery effects break when browser handles
11
- * orientation changes, or page bouncing.
12
- *
13
- * TODO: Need to handle Retina mode for iPad.
14
- */
15
-
16
- /*
17
- * jQuery UI Dialog
18
- */
19
- .ui-dialog {
20
- padding: 0;
21
- box-shadow: 0px 5px 7px rgba(0,0,0,.5);
22
- }
23
-
24
- .ui-dialog .ui-dialog-titlebar {
25
- padding: .8em .8em;
26
- border-bottom-left-radius: 0;
27
- border-bottom-right-radius: 0;
28
- }
29
-
30
- .ui-dialog .ui-dialog-titlebar-close {
31
- right: .4em;
32
- margin-top: -11px;
33
- }
34
-
35
- .ui-widget-content {
36
- border: 0;
37
- background: #ffffff;
38
- color: #333333;
39
- }
40
-
41
- .ui-widget-header a {
42
- color: #333333;
43
- }
44
-
45
-
46
- /* Touch feedback indicator */
47
- .ui-touch-feedback-icon {
48
- /* HACK ALERT - can't easily manage this when distributing with a library */
49
- /* background-image: url('../img/touch_sprite_feedback.png'); */
50
- width: 300px;
51
- height: 120px;
52
- position: absolute;
53
- left: -9999px;
54
- top: -9999px;
55
- z-index: 2;
56
- }
57
-
58
- .feedback-container {
59
- z-index: 2;
60
- position: absolute;
61
- display: none;
62
- }
63
-
64
- .feedback-container.cursor-icon {
65
- /* HACK ALERT - can't easily manage this when distributing with a library */
66
- /* background: url('../img/touch_sprite_feedback.png') -260px -15px no-repeat; */
67
- width: 17px;
68
- height: 23px;
69
- }
70
-
71
- .feedback-container.tap-icon {
72
- /* HACK ALERT - can't easily manage this when distributing with a library */
73
- /* background: url('../img/touch_sprite_feedback.png') -300px -15px no-repeat; */
74
- width: 36px;
75
- height: 36px;
76
- }
77
-
78
- .feedback-container.drag-icon {
79
- /* HACK ALERT - can't easily manage this when distributing with a library */
80
- /* background: url('../img/touch_sprite_feedback.png') -10px -10px no-repeat; */
81
- width: 100px;
82
- height: 100px;
83
- }
84
-
85
- .feedback-container.pulse-icon {
86
- /* HACK ALERT - can't easily manage this when distributing with a library */
87
- /* background: url('../img/touch_sprite_feedback.png') -111px -10px no-repeat; */
88
- width: 100px;
89
- height: 100px;
90
- }
91
-
92
- .feedback-container.scroll-icon {
93
- /* HACK ALERT - can't easily manage this when distributing with a library */
94
- /* background: url('../img/touch_sprite_feedback.png') -212px -10px no-repeat; */
95
- width: 27px;
96
- height: 100px;
97
- }
98
-
99
- .trackPad-cursor {
100
- background: none !important;
101
- }
102
-
103
- .trackPad-cursor.cursorIcon{
104
- opacity: 0;
105
- }
106
-
107
- .cursor-icon-shadow {
108
- transform-origin: 0 0 ;
109
- -webkit-transform-origin: 0 0 ;
110
- -moz-transform-origin: 0 0 ;
111
- -ms-transform-origin: 0 0 ;
112
- }
113
-
114
- /* CSS3 feedback indicator animation. Keep it simple (uses lower cpu cycles)
115
- as there may be multiple animation requests made in quick successions. */
116
- .animate-feedback-indicator {
117
- display: block;
118
- opacity: 0;
119
- animation-name: showfadeout;
120
- animation-duration: 350ms;
121
- -webkit-animation-name: showfadeout;
122
- -webkit-animation-duration: 350ms;
123
- -moz-animation-name: showfadeout;
124
- -moz-animation-duration: 350ms;
125
- -ms-animation-name: showfadeout;
126
- -ms-animation-duration: 350ms;
127
- }
128
-
129
- @-webkit-keyframes showfadeout {
130
- 0% { opacity: 1; }
131
- 100% { opacity: 0; }
132
- }
133
-
134
- @-moz-keyframes showfadeout {
135
- 0% { opacity: 1; }
136
- 100% { opacity: 0; }
137
- }
138
-
139
- @-ms-keyframes showfadeout {
140
- 0% { opacity: 1; }
141
- 100% { opacity: 0; }
142
- }
143
-
144
- .animate-double-feedback-indicator {
145
- display: block;
146
- opacity: 0;
147
- animation-name: showdoublefadeout;
148
- animation-duration: 400ms;
149
- -webkit-animation-name: showdoublefadeout;
150
- -webkit-animation-duration: 400ms;
151
- -moz-animation-name: showdoublefadeout;
152
- -moz-animation-duration: 400ms;
153
- -ms-animation-name: showdoublefadeout;
154
- -ms-animation-duration: 400ms;
155
- }
156
-
157
- @-webkit-keyframes showdoublefadeout {
158
- 0% { opacity: 1; }
159
- 40% { opacity: 0; }
160
- 70% { opacity: 1; }
161
- 100% { opacity: 0; }
162
- }
163
-
164
- @-moz-keyframes showdoublefadeout {
165
- 0% { opacity: 1; }
166
- 40% { opacity: 0; }
167
- 70% { opacity: 1; }
168
- 100% { opacity: 0; }
169
- }
170
-
171
- @-ms-keyframes showdoublefadeout {
172
- 0% { opacity: 1; }
173
- 40% { opacity: 0; }
174
- 70% { opacity: 1; }
175
- 100% { opacity: 0; }
176
- }
177
-
178
- #relativepadLeft {
179
- height:200px; border:1px solid black;
180
- }