bfg-common 1.4.101 → 1.4.103
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/assets/img/icons/icons-sprite-dark-2.svg +343 -308
- package/assets/img/icons/icons-sprite-dark-5.svg +491 -83
- package/assets/img/icons/icons-sprite-dark-6.svg +3 -1
- package/assets/img/icons/icons-sprite-light-2.svg +343 -308
- package/assets/img/icons/icons-sprite-light-5.svg +491 -83
- package/assets/img/icons/icons-sprite-light-6.svg +3 -1
- package/assets/localization/local_be.json +2584 -2584
- package/assets/localization/local_en.json +2588 -2588
- package/assets/localization/local_hy.json +2588 -2588
- package/assets/localization/local_zh.json +2586 -2586
- package/assets/scss/common/icons/icons-2.scss +18 -0
- package/assets/scss/common/icons/icons-5.scss +367 -11
- package/assets/scss/common/icons/icons-6.scss +4 -4
- package/assets/scss/common/icons/icons.scss +0 -4
- package/components/atoms/modal/bySteps/BySteps.vue +253 -253
- package/components/atoms/stack/StackBlock.vue +184 -184
- package/components/common/browse/blocks/Title.vue +91 -91
- package/components/common/browse/blocks/info/Date.vue +21 -21
- package/components/common/context/recursion/Recursion.vue +86 -86
- package/components/common/context/recursion/RecursionNew.vue +198 -198
- package/components/common/context/recursion/RecursionOld.vue +212 -212
- package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +156 -156
- package/components/common/split/horizontal/HorizontalNew.vue +321 -321
- package/components/common/vm/actions/add/Add.vue +609 -609
- package/components/common/vm/actions/clone/Clone.vue +522 -522
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
- package/components/common/vm/actions/editSettings/EditSettings.vue +327 -327
- package/composables/productNameLocal.ts +30 -30
- package/package.json +1 -1
- package/plugins/recursion.ts +311 -311
- package/public/spice-console/lib/images/bitmap.js +203 -203
- package/store/tasks/mappers/recentTasks.ts +45 -45
- package/assets/img/icons/icons-sprite-dark-7.svg +0 -8
- package/assets/img/icons/icons-sprite-dark-8.svg +0 -190
- package/assets/img/icons/icons-sprite-dark-9.svg +0 -71
- package/assets/img/icons/icons-sprite-light-7.svg +0 -8
- package/assets/img/icons/icons-sprite-light-8.svg +0 -190
- package/assets/img/icons/icons-sprite-light-9.svg +0 -71
- package/assets/scss/common/icons/icons-7.scss +0 -29
- package/assets/scss/common/icons/icons-8.scss +0 -191
- package/assets/scss/common/icons/icons-9.scss +0 -95
|
@@ -1,203 +1,203 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (c) 2016 eyeOS
|
|
3
|
-
|
|
4
|
-
This file is part of Open365.
|
|
5
|
-
|
|
6
|
-
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
-
it under the terms of the GNU Affero General Public License as
|
|
8
|
-
published by the Free Software Foundation, either version 3 of the
|
|
9
|
-
License, or (at your option) any later version.
|
|
10
|
-
|
|
11
|
-
This program is distributed in the hope that it will be useful,
|
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
GNU Affero General Public License for more details.
|
|
15
|
-
|
|
16
|
-
You should have received a copy of the GNU Affero General Public License
|
|
17
|
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
wdi.BMP2 = $.spcExtend(wdi.SpiceObject, {
|
|
21
|
-
objectSize: 0,
|
|
22
|
-
mapper: [0, 1, 1, 4, 4, 8, 16, 24, 32, 32],
|
|
23
|
-
|
|
24
|
-
init: function(imageData) {
|
|
25
|
-
var type = this.bytesToInt8(imageData);
|
|
26
|
-
var flags = this.bytesToInt8(imageData); // bit 1 => normal, bit 2 => palette cache (...)
|
|
27
|
-
var width = this.bytesToInt32(imageData); // width in pixels
|
|
28
|
-
var height = this.bytesToInt32(imageData); // height in pixels
|
|
29
|
-
var stride = this.bytesToInt32(imageData); // width in bytes including padding
|
|
30
|
-
var len;
|
|
31
|
-
var bpp = this.mapper[type];
|
|
32
|
-
var i;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var paletteSize = 0, unique, paletteData, numEnts = 0;
|
|
36
|
-
if (bpp <= 8 && bpp > 0) {
|
|
37
|
-
var palette = [];
|
|
38
|
-
if (flags & 1) {
|
|
39
|
-
var paletteOffset = this.bytesToInt32(imageData); // From the begininig of the spice packet?
|
|
40
|
-
len = imageData.length;
|
|
41
|
-
paletteSize = 4*Math.pow(2,bpp);
|
|
42
|
-
var paletteDataSize = paletteSize + 8 + 2; //palette + unique(64b) + numEnts (16b)
|
|
43
|
-
len -= paletteDataSize;
|
|
44
|
-
paletteData = imageData.splice(len, paletteDataSize);
|
|
45
|
-
unique = this.bytesToInt64(paletteData);
|
|
46
|
-
numEnts = this.bytesToInt16(paletteData);
|
|
47
|
-
var queue;
|
|
48
|
-
|
|
49
|
-
for (i = 0; i < numEnts*4; i+=4) {
|
|
50
|
-
queue = new wdi.Queue();
|
|
51
|
-
queue.setData(paletteData.slice(i, i+4));
|
|
52
|
-
palette.push(new wdi.SpiceColor().demarshall(queue));
|
|
53
|
-
}
|
|
54
|
-
wdi.ImageCache.addPalette(unique, palette);
|
|
55
|
-
} else {
|
|
56
|
-
//get palette from cache
|
|
57
|
-
unique = this.bytesToInt64(imageData);
|
|
58
|
-
len = imageData.length;
|
|
59
|
-
palette = wdi.ImageCache.getPalette(unique);
|
|
60
|
-
var spiceColors;
|
|
61
|
-
paletteData = [];
|
|
62
|
-
numEnts = palette.length;
|
|
63
|
-
for (i =0; i < numEnts; i++ ) {
|
|
64
|
-
spiceColors = palette[i].marshall();
|
|
65
|
-
spiceColors.push(0);
|
|
66
|
-
paletteData = paletteData.concat(spiceColors);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
// imageData = paletteData.concat(imageData);
|
|
71
|
-
|
|
72
|
-
} else {
|
|
73
|
-
// Removing 4 bytes from the image data to fix index out of range error.
|
|
74
|
-
var unknown = this.bytesToInt32(imageData);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
this.setContent({
|
|
78
|
-
imageSize: len,
|
|
79
|
-
width: width,
|
|
80
|
-
height: height,
|
|
81
|
-
bpp: bpp,
|
|
82
|
-
imageData: imageData,
|
|
83
|
-
paletteSize: numEnts * 4,
|
|
84
|
-
palette: palette,
|
|
85
|
-
stride: stride,
|
|
86
|
-
flags: flags,
|
|
87
|
-
type: type
|
|
88
|
-
});
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
setContent: function(c) {
|
|
92
|
-
this.imageSize = c.imageSize;
|
|
93
|
-
this.width = c.width;
|
|
94
|
-
this.height = c.height;
|
|
95
|
-
this.bpp = c.bpp;
|
|
96
|
-
this.imageData = c.imageData;
|
|
97
|
-
this.palette = c.palette;
|
|
98
|
-
this.offset = c.paletteSize + 0x36; //0x36 === Current harcoded header size (BMP + DIB)
|
|
99
|
-
this.size = this.offset + this.imageSize;
|
|
100
|
-
this.stride = c.stride;
|
|
101
|
-
this.flags = c.flags;
|
|
102
|
-
// this.type = c.type;
|
|
103
|
-
// console.log(`тип не 9, тип: ${c.type}`)
|
|
104
|
-
this.type = 9;
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
marshall: function(context) {
|
|
108
|
-
var type = this.type;
|
|
109
|
-
var palette = this.palette;
|
|
110
|
-
var width = this.width;
|
|
111
|
-
var height = this.height;
|
|
112
|
-
var stride = this.stride;
|
|
113
|
-
var data = this.imageData;
|
|
114
|
-
var flags = this.flags;
|
|
115
|
-
var size = data.length;
|
|
116
|
-
|
|
117
|
-
var pixelsStride = stride * 8/this.bpp;
|
|
118
|
-
var bytesStride = pixelsStride * 4;
|
|
119
|
-
var buf = new ArrayBuffer(bytesStride * height);
|
|
120
|
-
var buf8 = new Uint8ClampedArray(buf);
|
|
121
|
-
var buf32 = new Uint32Array(buf);
|
|
122
|
-
var topdown = data[1];
|
|
123
|
-
|
|
124
|
-
var oct, i, pos, buffPos, spiceColor;
|
|
125
|
-
var b;
|
|
126
|
-
if (palette) {
|
|
127
|
-
buffPos = 0
|
|
128
|
-
if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_1BIT_BE) {
|
|
129
|
-
spiceColor = palette[1];
|
|
130
|
-
var foreColor = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
131
|
-
|
|
132
|
-
spiceColor = palette[0];
|
|
133
|
-
var backColor = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
134
|
-
|
|
135
|
-
var PLT1_MASK = [1, 2, 4, 8, 16, 32, 64, 128];
|
|
136
|
-
|
|
137
|
-
for (pos = 0; pos < size; pos++) {
|
|
138
|
-
oct = data[pos];
|
|
139
|
-
|
|
140
|
-
for (i = 7; i >= 0; i--) {
|
|
141
|
-
if (oct & PLT1_MASK[i]) {
|
|
142
|
-
buf32[buffPos++] = foreColor;
|
|
143
|
-
} else {
|
|
144
|
-
buf32[buffPos++] = backColor;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
} else if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_4BIT_BE) {
|
|
149
|
-
for (pos = 0; pos < size; pos++) {
|
|
150
|
-
oct = data[pos];
|
|
151
|
-
spiceColor = palette[oct >>> 4];
|
|
152
|
-
buf32[buffPos++] = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
153
|
-
spiceColor = palette[oct & 0x0f];
|
|
154
|
-
buf32[buffPos++] = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
} else {
|
|
159
|
-
if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_32BIT || type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_RGBA) {
|
|
160
|
-
for (pos = 0; pos < size; pos += 4) {
|
|
161
|
-
let b,g,r
|
|
162
|
-
b = data[pos];
|
|
163
|
-
g = data[pos+1];
|
|
164
|
-
r = data[pos+2];
|
|
165
|
-
|
|
166
|
-
data[pos] = r;
|
|
167
|
-
data[pos + 1] = g;
|
|
168
|
-
data[pos + 2] = b;
|
|
169
|
-
data[pos + 3] = 255;
|
|
170
|
-
}
|
|
171
|
-
} else if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_24BIT) {
|
|
172
|
-
for (pos = 0; pos < size; pos+=3) {
|
|
173
|
-
b = data[pos];
|
|
174
|
-
data[pos] = data[pos+2];
|
|
175
|
-
data[pos+2] = b;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
buf8 = new Uint8ClampedArray(data);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
var ret = new ImageData(buf8, pixelsStride, height);
|
|
182
|
-
|
|
183
|
-
var tmpCanvas = wdi.graphics.getNewTmpCanvas(width, height);
|
|
184
|
-
tmpCanvas.getContext('2d').putImageData(ret, 0, 0, 0, 0, width, height);
|
|
185
|
-
ret = tmpCanvas;
|
|
186
|
-
|
|
187
|
-
if(flags&4 === 0) {
|
|
188
|
-
ret = wdi.RasterOperation.flip(ret);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return ret;
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
function intToByteArray(value) {
|
|
196
|
-
// Создаем массив из одного байта
|
|
197
|
-
let byteArray = new Uint8Array(1);
|
|
198
|
-
|
|
199
|
-
// Устанавливаем значение в массиве байтов
|
|
200
|
-
byteArray[0] = value & 0xFF; // Маскирование, чтобы значение поместилось в один байт
|
|
201
|
-
|
|
202
|
-
return byteArray;
|
|
203
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2016 eyeOS
|
|
3
|
+
|
|
4
|
+
This file is part of Open365.
|
|
5
|
+
|
|
6
|
+
Open365 is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
|
9
|
+
License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU Affero General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
wdi.BMP2 = $.spcExtend(wdi.SpiceObject, {
|
|
21
|
+
objectSize: 0,
|
|
22
|
+
mapper: [0, 1, 1, 4, 4, 8, 16, 24, 32, 32],
|
|
23
|
+
|
|
24
|
+
init: function(imageData) {
|
|
25
|
+
var type = this.bytesToInt8(imageData);
|
|
26
|
+
var flags = this.bytesToInt8(imageData); // bit 1 => normal, bit 2 => palette cache (...)
|
|
27
|
+
var width = this.bytesToInt32(imageData); // width in pixels
|
|
28
|
+
var height = this.bytesToInt32(imageData); // height in pixels
|
|
29
|
+
var stride = this.bytesToInt32(imageData); // width in bytes including padding
|
|
30
|
+
var len;
|
|
31
|
+
var bpp = this.mapper[type];
|
|
32
|
+
var i;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
var paletteSize = 0, unique, paletteData, numEnts = 0;
|
|
36
|
+
if (bpp <= 8 && bpp > 0) {
|
|
37
|
+
var palette = [];
|
|
38
|
+
if (flags & 1) {
|
|
39
|
+
var paletteOffset = this.bytesToInt32(imageData); // From the begininig of the spice packet?
|
|
40
|
+
len = imageData.length;
|
|
41
|
+
paletteSize = 4*Math.pow(2,bpp);
|
|
42
|
+
var paletteDataSize = paletteSize + 8 + 2; //palette + unique(64b) + numEnts (16b)
|
|
43
|
+
len -= paletteDataSize;
|
|
44
|
+
paletteData = imageData.splice(len, paletteDataSize);
|
|
45
|
+
unique = this.bytesToInt64(paletteData);
|
|
46
|
+
numEnts = this.bytesToInt16(paletteData);
|
|
47
|
+
var queue;
|
|
48
|
+
|
|
49
|
+
for (i = 0; i < numEnts*4; i+=4) {
|
|
50
|
+
queue = new wdi.Queue();
|
|
51
|
+
queue.setData(paletteData.slice(i, i+4));
|
|
52
|
+
palette.push(new wdi.SpiceColor().demarshall(queue));
|
|
53
|
+
}
|
|
54
|
+
wdi.ImageCache.addPalette(unique, palette);
|
|
55
|
+
} else {
|
|
56
|
+
//get palette from cache
|
|
57
|
+
unique = this.bytesToInt64(imageData);
|
|
58
|
+
len = imageData.length;
|
|
59
|
+
palette = wdi.ImageCache.getPalette(unique);
|
|
60
|
+
var spiceColors;
|
|
61
|
+
paletteData = [];
|
|
62
|
+
numEnts = palette.length;
|
|
63
|
+
for (i =0; i < numEnts; i++ ) {
|
|
64
|
+
spiceColors = palette[i].marshall();
|
|
65
|
+
spiceColors.push(0);
|
|
66
|
+
paletteData = paletteData.concat(spiceColors);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
// imageData = paletteData.concat(imageData);
|
|
71
|
+
|
|
72
|
+
} else {
|
|
73
|
+
// Removing 4 bytes from the image data to fix index out of range error.
|
|
74
|
+
var unknown = this.bytesToInt32(imageData);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this.setContent({
|
|
78
|
+
imageSize: len,
|
|
79
|
+
width: width,
|
|
80
|
+
height: height,
|
|
81
|
+
bpp: bpp,
|
|
82
|
+
imageData: imageData,
|
|
83
|
+
paletteSize: numEnts * 4,
|
|
84
|
+
palette: palette,
|
|
85
|
+
stride: stride,
|
|
86
|
+
flags: flags,
|
|
87
|
+
type: type
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
setContent: function(c) {
|
|
92
|
+
this.imageSize = c.imageSize;
|
|
93
|
+
this.width = c.width;
|
|
94
|
+
this.height = c.height;
|
|
95
|
+
this.bpp = c.bpp;
|
|
96
|
+
this.imageData = c.imageData;
|
|
97
|
+
this.palette = c.palette;
|
|
98
|
+
this.offset = c.paletteSize + 0x36; //0x36 === Current harcoded header size (BMP + DIB)
|
|
99
|
+
this.size = this.offset + this.imageSize;
|
|
100
|
+
this.stride = c.stride;
|
|
101
|
+
this.flags = c.flags;
|
|
102
|
+
// this.type = c.type;
|
|
103
|
+
// console.log(`тип не 9, тип: ${c.type}`)
|
|
104
|
+
this.type = 9;
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
marshall: function(context) {
|
|
108
|
+
var type = this.type;
|
|
109
|
+
var palette = this.palette;
|
|
110
|
+
var width = this.width;
|
|
111
|
+
var height = this.height;
|
|
112
|
+
var stride = this.stride;
|
|
113
|
+
var data = this.imageData;
|
|
114
|
+
var flags = this.flags;
|
|
115
|
+
var size = data.length;
|
|
116
|
+
|
|
117
|
+
var pixelsStride = stride * 8/this.bpp;
|
|
118
|
+
var bytesStride = pixelsStride * 4;
|
|
119
|
+
var buf = new ArrayBuffer(bytesStride * height);
|
|
120
|
+
var buf8 = new Uint8ClampedArray(buf);
|
|
121
|
+
var buf32 = new Uint32Array(buf);
|
|
122
|
+
var topdown = data[1];
|
|
123
|
+
|
|
124
|
+
var oct, i, pos, buffPos, spiceColor;
|
|
125
|
+
var b;
|
|
126
|
+
if (palette) {
|
|
127
|
+
buffPos = 0
|
|
128
|
+
if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_1BIT_BE) {
|
|
129
|
+
spiceColor = palette[1];
|
|
130
|
+
var foreColor = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
131
|
+
|
|
132
|
+
spiceColor = palette[0];
|
|
133
|
+
var backColor = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
134
|
+
|
|
135
|
+
var PLT1_MASK = [1, 2, 4, 8, 16, 32, 64, 128];
|
|
136
|
+
|
|
137
|
+
for (pos = 0; pos < size; pos++) {
|
|
138
|
+
oct = data[pos];
|
|
139
|
+
|
|
140
|
+
for (i = 7; i >= 0; i--) {
|
|
141
|
+
if (oct & PLT1_MASK[i]) {
|
|
142
|
+
buf32[buffPos++] = foreColor;
|
|
143
|
+
} else {
|
|
144
|
+
buf32[buffPos++] = backColor;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
} else if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_4BIT_BE) {
|
|
149
|
+
for (pos = 0; pos < size; pos++) {
|
|
150
|
+
oct = data[pos];
|
|
151
|
+
spiceColor = palette[oct >>> 4];
|
|
152
|
+
buf32[buffPos++] = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
153
|
+
spiceColor = palette[oct & 0x0f];
|
|
154
|
+
buf32[buffPos++] = spiceColor.r << 24 | spiceColor.g << 16 | spiceColor.b << 8 | 255;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
} else {
|
|
159
|
+
if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_32BIT || type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_RGBA) {
|
|
160
|
+
for (pos = 0; pos < size; pos += 4) {
|
|
161
|
+
let b,g,r
|
|
162
|
+
b = data[pos];
|
|
163
|
+
g = data[pos+1];
|
|
164
|
+
r = data[pos+2];
|
|
165
|
+
|
|
166
|
+
data[pos] = r;
|
|
167
|
+
data[pos + 1] = g;
|
|
168
|
+
data[pos + 2] = b;
|
|
169
|
+
data[pos + 3] = 255;
|
|
170
|
+
}
|
|
171
|
+
} else if (type === wdi.SpiceBitmapFmt.SPICE_BITMAP_FMT_24BIT) {
|
|
172
|
+
for (pos = 0; pos < size; pos+=3) {
|
|
173
|
+
b = data[pos];
|
|
174
|
+
data[pos] = data[pos+2];
|
|
175
|
+
data[pos+2] = b;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
buf8 = new Uint8ClampedArray(data);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
var ret = new ImageData(buf8, pixelsStride, height);
|
|
182
|
+
|
|
183
|
+
var tmpCanvas = wdi.graphics.getNewTmpCanvas(width, height);
|
|
184
|
+
tmpCanvas.getContext('2d').putImageData(ret, 0, 0, 0, 0, width, height);
|
|
185
|
+
ret = tmpCanvas;
|
|
186
|
+
|
|
187
|
+
if(flags&4 === 0) {
|
|
188
|
+
ret = wdi.RasterOperation.flip(ret);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return ret;
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
function intToByteArray(value) {
|
|
196
|
+
// Создаем массив из одного байта
|
|
197
|
+
let byteArray = new Uint8Array(1);
|
|
198
|
+
|
|
199
|
+
// Устанавливаем значение в массиве байтов
|
|
200
|
+
byteArray[0] = value & 0xFF; // Маскирование, чтобы значение поместилось в один байт
|
|
201
|
+
|
|
202
|
+
return byteArray;
|
|
203
|
+
}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import {
|
|
2
|
-
UI_E_RecentTaskStatus,
|
|
3
|
-
UI_E_IconNameByRecentTaskStatus,
|
|
4
|
-
} from '~/lib/models/store/tasks/enums'
|
|
5
|
-
import type {
|
|
6
|
-
API_UI_I_RecentTask,
|
|
7
|
-
UI_I_RecentTask,
|
|
8
|
-
} from '~/lib/models/store/tasks/interfaces'
|
|
9
|
-
import { base64 } from '~/lib/utils/base64'
|
|
10
|
-
|
|
11
|
-
export const recentTasks = (
|
|
12
|
-
data: API_UI_I_RecentTask<string>
|
|
13
|
-
): UI_I_RecentTask<string> => {
|
|
14
|
-
const items =
|
|
15
|
-
data.items
|
|
16
|
-
?.sort((a, b) => {
|
|
17
|
-
return b.start_time - a.start_time
|
|
18
|
-
})
|
|
19
|
-
.map((task) => {
|
|
20
|
-
return {
|
|
21
|
-
args: base64.decode(task.args),
|
|
22
|
-
completion: task.completion + '' || '-',
|
|
23
|
-
queuedFor: task.creation_time - task.start_time,
|
|
24
|
-
execution: Math.abs(task.start_time - task.completion),
|
|
25
|
-
details: task.details,
|
|
26
|
-
error: task.error,
|
|
27
|
-
initiator: task.initiator,
|
|
28
|
-
server: task.server,
|
|
29
|
-
startTime: task.start_time + '' || '-',
|
|
30
|
-
statusIcon: UI_E_IconNameByRecentTaskStatus[task.status],
|
|
31
|
-
statusText: task.error || UI_E_RecentTaskStatus[task.status],
|
|
32
|
-
status: task.status,
|
|
33
|
-
target: task.target,
|
|
34
|
-
targetType: task.target_type,
|
|
35
|
-
taskName: task.task_name,
|
|
36
|
-
id: task.id,
|
|
37
|
-
zone: task.zone,
|
|
38
|
-
extra: task.extra,
|
|
39
|
-
}
|
|
40
|
-
}) || []
|
|
41
|
-
return {
|
|
42
|
-
items,
|
|
43
|
-
last: data.last,
|
|
44
|
-
}
|
|
45
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
UI_E_RecentTaskStatus,
|
|
3
|
+
UI_E_IconNameByRecentTaskStatus,
|
|
4
|
+
} from '~/lib/models/store/tasks/enums'
|
|
5
|
+
import type {
|
|
6
|
+
API_UI_I_RecentTask,
|
|
7
|
+
UI_I_RecentTask,
|
|
8
|
+
} from '~/lib/models/store/tasks/interfaces'
|
|
9
|
+
import { base64 } from '~/lib/utils/base64'
|
|
10
|
+
|
|
11
|
+
export const recentTasks = (
|
|
12
|
+
data: API_UI_I_RecentTask<string>
|
|
13
|
+
): UI_I_RecentTask<string> => {
|
|
14
|
+
const items =
|
|
15
|
+
data.items
|
|
16
|
+
?.sort((a, b) => {
|
|
17
|
+
return b.start_time - a.start_time
|
|
18
|
+
})
|
|
19
|
+
.map((task) => {
|
|
20
|
+
return {
|
|
21
|
+
args: base64.decode(task.args),
|
|
22
|
+
completion: task.completion + '' || '-',
|
|
23
|
+
queuedFor: task.creation_time - task.start_time,
|
|
24
|
+
execution: Math.abs(task.start_time - task.completion),
|
|
25
|
+
details: task.details,
|
|
26
|
+
error: task.error,
|
|
27
|
+
initiator: task.initiator,
|
|
28
|
+
server: task.server,
|
|
29
|
+
startTime: task.start_time + '' || '-',
|
|
30
|
+
statusIcon: UI_E_IconNameByRecentTaskStatus[task.status],
|
|
31
|
+
statusText: task.error || UI_E_RecentTaskStatus[task.status],
|
|
32
|
+
status: task.status,
|
|
33
|
+
target: task.target,
|
|
34
|
+
targetType: task.target_type,
|
|
35
|
+
taskName: task.task_name,
|
|
36
|
+
id: task.id,
|
|
37
|
+
zone: task.zone,
|
|
38
|
+
extra: task.extra,
|
|
39
|
+
}
|
|
40
|
+
}) || []
|
|
41
|
+
return {
|
|
42
|
+
items,
|
|
43
|
+
last: data.last,
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M18.7665 3.1665H11.611C9.8621 3.1665 8.44434 4.58427 8.44434 6.33317V31.6665C8.44434 33.4154 9.8621 34.8332 11.611 34.8332H26.3888C28.1377 34.8332 29.5554 33.4154 29.5554 31.6665V21.0636C29.2078 21.0949 28.8557 21.1109 28.4999 21.1109C28.1441 21.1109 27.792 21.0949 27.4443 21.0636V31.6665C27.4443 32.2495 26.9717 32.7221 26.3888 32.7221H11.611C11.028 32.7221 10.5554 32.2495 10.5554 31.6665V6.33317C10.5554 5.7502 11.028 5.27762 11.611 5.27762H17.6803C17.9709 4.53352 18.336 3.82676 18.7665 3.1665Z" fill="#E9EAEC"/>
|
|
3
|
-
<path d="M16.919 8.65539L13.7221 8.65539C13.2557 8.65539 12.8777 9.03346 12.8777 9.49984C12.8777 9.96621 13.2557 10.3443 13.7221 10.3443L16.919 10.3443C16.899 10.0654 16.8888 9.78381 16.8888 9.49984C16.8888 9.21586 16.899 8.93426 16.919 8.65539Z" fill="#E9EAEC"/>
|
|
4
|
-
<path d="M17.7652 13.9332H14.7777C14.3113 13.9332 13.9332 14.3112 13.9332 14.7776C13.9332 15.244 14.3113 15.6221 14.7777 15.6221H18.6321C18.2992 15.0866 18.0087 14.5221 17.7652 13.9332Z" fill="#E9EAEC"/>
|
|
5
|
-
<path d="M20.7603 18.1554C21.5011 18.8183 22.3275 19.3874 23.2209 19.8443H14.7777C14.3113 19.8443 13.9332 19.4662 13.9332 18.9998C13.9332 18.5335 14.3113 18.1554 14.7777 18.1554L20.7603 18.1554Z" fill="#E9EAEC"/>
|
|
6
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.9999 24.4887C17.3676 24.4887 16.0443 25.812 16.0443 27.4443C16.0443 29.0766 17.3676 30.3998 18.9999 30.3998C20.6322 30.3998 21.9554 29.0766 21.9554 27.4443C21.9554 25.812 20.6322 24.4887 18.9999 24.4887ZM17.7332 27.4443C17.7332 26.7447 18.3003 26.1776 18.9999 26.1776C19.6995 26.1776 20.2666 26.7447 20.2666 27.4443C20.2666 28.1438 19.6995 28.7109 18.9999 28.7109C18.3003 28.7109 17.7332 28.1438 17.7332 27.4443Z" fill="#E9EAEC"/>
|
|
7
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M38 9.5C38 14.7467 33.7467 19 28.5 19C23.2533 19 19 14.7467 19 9.5C19 4.25329 23.2533 0 28.5 0C33.7467 0 38 4.25329 38 9.5ZM24.3352 13.6652C24.7804 14.1104 25.5023 14.1104 25.9474 13.6652L28.5001 11.1126L31.0528 13.6652C31.498 14.1104 32.2198 14.1104 32.665 13.6652C33.1102 13.22 33.1102 12.4982 32.665 12.053L30.1123 9.50038L32.665 6.94772C33.1102 6.50253 33.1102 5.78072 32.665 5.33552C32.2198 4.89032 31.498 4.89032 31.0528 5.33552L28.5001 7.88818L25.9474 5.33552C25.5023 4.89032 24.7804 4.89032 24.3352 5.33552C23.89 5.78072 23.89 6.50253 24.3352 6.94772L26.8879 9.50038L24.3352 12.053C23.89 12.4982 23.89 13.22 24.3352 13.6652Z" fill="#EA3223"/>
|
|
8
|
-
</svg>
|