bfg-common 1.4.874 → 1.4.875

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 (182) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  8. package/components/atoms/collapse/CollapseNav.vue +164 -164
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/common/browse/BrowseNew.vue +237 -237
  17. package/components/common/browse/BrowseOld.vue +217 -217
  18. package/components/common/browse/blocks/contents/Files.vue +37 -37
  19. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  20. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  23. package/components/common/browse/lib/models/interfaces.ts +5 -5
  24. package/components/common/context/Context.vue +111 -111
  25. package/components/common/context/lib/models/interfaces.ts +30 -30
  26. package/components/common/context/recursion/Recursion.vue +87 -87
  27. package/components/common/context/recursion/RecursionOld.vue +227 -227
  28. package/components/common/details/DetailsItem.vue +109 -109
  29. package/components/common/diagramMain/Header.vue +211 -211
  30. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  31. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  32. package/components/common/diagramMain/lib/models/types.ts +21 -21
  33. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  34. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  35. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  36. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  37. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  38. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  39. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  40. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  41. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  42. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  43. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  44. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  45. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  46. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  47. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  48. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  56. package/components/common/diagramMain/port/Ports.vue +47 -47
  57. package/components/common/graph/Graph.vue +104 -104
  58. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  59. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  60. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  61. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  62. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  63. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  64. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  65. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  66. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  67. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  68. package/components/common/pages/home/StatusContent.vue +49 -49
  69. package/components/common/pages/home/headline/Headline.vue +45 -45
  70. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  71. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  72. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  73. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  74. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  75. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  76. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  77. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  78. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  79. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  80. package/components/common/pages/packages/Packages.vue +208 -208
  81. package/components/common/recursionTree/RecursionTree.vue +223 -223
  82. package/components/common/select/button/ButtonDropdown.vue +108 -108
  83. package/components/common/spiceConsole/Drawer.vue +370 -370
  84. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  85. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  86. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  87. package/components/common/split/vertical/Vertical.vue +160 -160
  88. package/components/common/vm/actions/add/Add.vue +622 -622
  89. package/components/common/vm/actions/clone/Clone.vue +639 -639
  90. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  91. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  92. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  93. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  94. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  162. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  163. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  164. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  165. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  166. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  167. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  168. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  169. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  170. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  171. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  172. package/composables/productNameLocal.ts +30 -30
  173. package/composables/useAppVersion.ts +21 -21
  174. package/modules/setLastUpdateTime/index.ts +6 -6
  175. package/package.json +1 -1
  176. package/plugins/date.ts +233 -233
  177. package/plugins/recursion.ts +311 -311
  178. package/public/spice-console/lib/images/bitmap.js +203 -203
  179. package/public/spice-console/network/spicechannel.js +383 -383
  180. package/store/main/mutations.ts +7 -7
  181. package/store/main/state.ts +7 -7
  182. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -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
+ }