dwt 18.1.2-beta → 18.2.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.
@@ -1869,11 +1869,40 @@ export namespace DynamsoftEnumsDWT {
1869
1869
  }
1870
1870
  enum EnumDWT_DeviceType{
1871
1871
  TWAINSCANNER = 0x10,
1872
- WIATWAINSCANNER = 0x20,
1872
+ WIASCANNER = 0x20,
1873
1873
  TWAINX64SCANNER = 0x40,
1874
1874
  ICASCANNER = 0x80,
1875
1875
  SANESCANNER = 0x100,
1876
1876
  ESCLSCANNER = 0x200,
1877
- WIFIDIRECTSCANNER = 0x400
1877
+ WIFIDIRECTSCANNER = 0x400,
1878
+ WIATWAINSCANNER = 0x800
1878
1879
  }
1880
+ enum EnumDWT_ImageFormatType{
1881
+ url = 0,
1882
+ blob = 1,
1883
+ base64 = 2
1884
+ }
1885
+ enum EnumDWT_ResponseType{
1886
+ text = 0,
1887
+ blob = 1,
1888
+ arraybuffer = 2,
1889
+ xml = 3,
1890
+ json = 4
1891
+ }
1892
+ enum EnumDWT_WorkMode{
1893
+ normal = 0, // old mode, the image is processed at the server and then displayed in viewer
1894
+ balance = 1, //new mode, the image is processed in canvas and then updated to the server
1895
+ }
1896
+ enum EnumPDF_Page{
1897
+ Page_Default = 0,
1898
+ Page_Custom = 1,
1899
+ Page_A4 = 2,
1900
+ Page_A4_Reverse = 3,
1901
+ Page_A3 = 4,
1902
+ Page_A3_Reverse = 5,
1903
+ Page_Letter = 6,
1904
+ Page_Letter_Reverse = 7,
1905
+ Page_Legal = 8,
1906
+ Page_Legal_Reverse = 9
1907
+ }
1879
1908
  }
@@ -3,6 +3,7 @@ import { DynamsoftEnumsDWT} from "./Dynamsoft.Enum";
3
3
  import { WebTwain } from "./WebTwain";
4
4
  import { Settings } from "./Addon.OCRPro";
5
5
  import { FileUploader } from "./Dynamsoft.FileUploader";
6
+ import { RemoteScanObject } from "./RemoteScan";
6
7
  import { DeviceConfiguration, ServiceInfo, Device, CapabilityDetails, Capabilities} from "./WebTwain.Acquire";
7
8
 
8
9
  export namespace DynamsoftStatic {
@@ -275,15 +276,15 @@ export interface DWTPro {
275
276
  */
276
277
  DeleteDWTObject(Id: string): boolean;
277
278
  /**
278
- * Return the WebTwain instance specified by its ContainerId. If no parameter is provided, the first valid WebTwain instance is returnd.
279
- * @param ContainerId The ContainerId.
279
+ * Return the WebTwain instance specified by its ContainerId or WebTwainId. If no parameter is provided, the first valid WebTwain instance is returnd.
280
+ * @param ContainerIdOrWebTwainId The ContainerId or WebTwainId.
280
281
  */
281
- GetWebTwain(ContainerId?: string): WebTwain;
282
+ GetWebTwain(ContainerIdOrWebTwainId?: string): WebTwain;
282
283
  /**
283
- * Return the WebTwain instance specified by its WebTwainId. If no parameter is provided, the first valid WebTwain instance is returnd.
284
- * @param WebTwainId The WebTwainId.
284
+ * Return the WebTwain instance specified by its ContainerId or WebTwainId. If no parameter is provided, the first valid WebTwain instance is returnd.
285
+ * @param ContainerIdOrWebTwainId The ContainerId or WebTwainId.
285
286
  */
286
- GetWebTwainEx(WebTwainId?: string): WebTwain;
287
+ GetWebTwainEx(ContainerIdOrWebTwainId?: string): WebTwain;
287
288
  /**
288
289
  * Download and update the certificate on the local system.
289
290
  * @param url The URL to download the certificate (typically a ZIP file).
@@ -439,24 +440,11 @@ export interface DWTPro {
439
440
  * Dynamsoft.DWT.DeviceFriendlyName
440
441
  */
441
442
  DeviceFriendlyName: string;
442
- /**
443
- * Bring up the Source Selection User Interface (UI) for the user to choose a data source.
444
- * @param serverUrl The URL of the proxy server: https(http)://domain_name:port (default: 443).
445
- * @param forceRefresh Default value: false.
446
- */
447
- FindDynamsoftServiceAsync(serverUrl: string, forceRefresh?: boolean): Promise<ServiceInfo[]>;
448
- /**
449
- * Based on serviceInfo, return the existing DWObject if already exists, otherwise, create a new one.
450
- * @param serverUrl The proxy server url or the serviceInfo.
451
- * @param deviceType The value to filter scanners. Default: TWAINSCANNER
452
- * @param forceRefresh Default value: false.
453
- */
454
- FindDevicesAsync(serverUrl: string | ServiceInfo, deviceType?: DynamsoftEnumsDWT.EnumDWT_DeviceType | number, forceRefresh?: boolean): Promise<Device[]>;
455
443
  /**
456
444
  * Based on serviceInfo, return the existing object if already exists, otherwise, create a new one.
457
- * @param serviceInfo The service information.
445
+ * @param serverUrl The URL of the proxy server: https(http)://domain_name:port (default: 443).
458
446
  */
459
- CreateRemoteScanObjectAsync(serviceInfo: ServiceInfo): Promise<RemoteScanObject>;
447
+ CreateRemoteScanObjectAsync(serverUrl: string): Promise<RemoteScanObject>;
460
448
  /**
461
449
  * Dynamsoft.DWT.ConnectWithSocket
462
450
  */
@@ -538,63 +526,18 @@ export interface WasmConfig {
538
526
  fetchOptions: any;
539
527
  }
540
528
  export interface DWTInstall {
541
- funcConfirmRemove?: () => Promise<boolean>;
542
- funcConfirmExit?: (bExistImage: boolean) => Promise<boolean>;
543
- funcConfirmExitAfterSave?: (firedByDocumentEdit: boolean) => void;
544
- funcConfirmCropViewerExit?: (bChanged: boolean, previousViewerName: string) => Promise<Number | DynamsoftEnumsDWT.EnumDWT_ConfirmExitType>;
545
- funcConfirmMainViewerExit?: (bChanged: boolean, previousViewerName: string) => Promise<Number | DynamsoftEnumsDWT.EnumDWT_ConfirmExitType>;
546
-
547
- OnLTSConnectionFailure?: (message?: string) => void;
548
- OnLTSReturnedAnError?: (message?: string) => void;
549
- OnLTSUUIDError?: (message?: string) => void;
529
+ OnWebTwainNotFoundOnWindowsCallback?: (...arg: any[]) => void;
530
+ OnWebTwainNotFoundOnLinuxCallback?: (...arg: any[]) => void;
531
+ OnWebTwainNotFoundOnMacCallback?: (...arg: any[]) => void;
532
+ OnWebTwainNotFoundOnAndroidCallback?: (...arg: any[]) => void;
533
+ OnMobileNotSupportCallback?: () => void;
534
+ OnHTTPCorsError?: (msg?: string) => void;
535
+ OnWebTwainNeedUpgradeCallback?: (...arg: any[]) => void;
536
+ OnLTSLicenseError?: (message?: string, code?: number) => void;
550
537
  OnLTSConnectionWarning?: () => void;
551
- OnLTSPublicLicenseMessage?: (message?: string) => void;
552
- }
553
- export interface RemoteScanObject {
554
- /**
555
- * Return all available devices (scanners, eSCL scanners, etc.) for the device type (if specified)
556
- * @param deviceType The device type
557
- * @param refresh Default value: false
558
- */
559
- getDevices(deviceType?: DynamsoftEnumsDWT.EnumDWT_DeviceType | number, refresh?: boolean): Promise<Device[]>;
560
- /**
561
- * Select the device to use for scanning
562
- * @param device the device
563
- */
564
- selectDevice(device: Device): Promise<boolean>;
565
- /**
566
- * Scan documents into another DWObject control. Supports eSCL scanners and all other scanners with limited capabilities.
567
- * @param deviceConfiguration The device configuration
568
- * @param sendTo The DWObject control to scan into
569
- */
570
- acquireImage(deviceConfiguration?: DeviceConfiguration, sendTo?: WebTwain): Promise<boolean>;
571
- /**
572
- * Close the data source (a TWAIN/ICA/SANE device which in most cases is a scanner) to free it to be used by other applications.
573
- */
574
- closeSource(): Promise<boolean>;
575
- /**
576
- * Bring up the Source Selection User Interface (UI) for the user to choose a data source.
577
- * @param deviceType The device type.
578
- */
579
- selectSource(deviceType?: DynamsoftEnumsDWT.EnumDWT_DeviceType | number): Promise<number>;
580
- /**
581
- * Gets detailed information about all capabilities of the current data source.
582
- * @argument capabilityDetails Detailed information about the specified capabilities.
583
- */
584
- getCapabilities():Promise<CapabilityDetails[]>;
585
- /**
586
- * Sets up one or multiple capabilities in one call.
587
- * @param capabilities A object that describes how to set capabilities.
588
- */
589
- setCapabilities(capabilities: Capabilities): Promise<boolean>;
590
- /**
591
- * Load a data source to get it ready to acquire images.
592
- */
593
- openSource():Promise<boolean>;
594
- /**
595
- * Delete the Remote Scan Object.
596
- */
597
- dispose(): boolean;
538
+ OnLTSPublicLicenseWarning?: (message?: string) => void;
539
+ OnLicenseExpiredWarning?: (...arg: any[]) => void;
540
+ OnLicenseError?: (message?: string, errorCode?: number) => void;
598
541
  }
599
542
  declare const Dynamsoft: (DWTInstall & typeof DynamsoftStatic);
600
543
  //declare const Dynamsoft: (typeof DynamsoftStatic);
@@ -0,0 +1,42 @@
1
+ import { WebTwainAcquire } from "./WebTwain.Acquire";
2
+ import { DynamsoftEnumsDWT } from "./Dynamsoft.Enum";
3
+ import { DynamsoftViewer } from "./WebTwain.Viewer";
4
+
5
+ export interface RemoteScanViewer extends DynamsoftViewer {
6
+ /**
7
+ * Return the indices of the selected images.
8
+ */
9
+ readonly selectedImagesIndices: number[];
10
+ /**
11
+ * Crop the specified image using the specified coordinates.
12
+ */
13
+ crop(index: number, rect: rect): Promise<void>;
14
+ /**
15
+ * Rotate the specified image by the specified angle.
16
+ * @param index Specify the image.
17
+ * @param angle Specify the angle.
18
+ * @param keepSize Whether to keep the original size.
19
+ */
20
+ rotate(index: number, angle: number, keepSize: boolean): Promise<void>;
21
+ /**
22
+ * Return the error code.
23
+ */
24
+ readonly errorCode: number;
25
+ /**
26
+ * Return the error string.
27
+ */
28
+ readonly errorString: string;
29
+ }
30
+
31
+ export interface rect{
32
+ // The index of the selected area. The index is 0-based. This is useful when you have multiple selected areas on one page.
33
+ index?: number;
34
+ // The x-coordinate of the upper-left corner of the area.
35
+ x: number;
36
+ // The y-coordinate of the upper-left corner of the area.
37
+ y: number;
38
+ // The width of the selected area.
39
+ width: number;
40
+ // The height of the selected area.
41
+ height: number;
42
+ }
@@ -0,0 +1,155 @@
1
+ import { DynamsoftEnumsDWT} from "./Dynamsoft.Enum";
2
+ import { WebTwain } from "./WebTwain";
3
+ import { DeviceConfiguration, ServiceInfo, Device, CapabilityDetails, Capabilities} from "./WebTwain.Acquire";
4
+ import { RemoteScanViewer } from "./RemoteScan.Viewer";
5
+
6
+ export interface RemoteScanObject {
7
+ /**
8
+ * Return how many images are held in the buffer
9
+ */
10
+ readonly howManyImagesInBuffer: number;
11
+ /**
12
+ * Return the index of the current image in the buffer or set the image specified by index as the current image.
13
+ */
14
+ currentImageIndexInBuffer: number;
15
+ /**
16
+ * Whether to show a progress bar when outputting. The default value is ture.
17
+ */
18
+ showProgressBar:boolean;
19
+ /**
20
+ * Return all available devices (scanners, eSCL scanners, etc.) for the device type (if specified)
21
+ * @param deviceType The device type
22
+ * @param refresh Default value: false
23
+ */
24
+ getDevices(deviceQueryParams?:{serviceInfo?:ServiceInfo, deviceType?: DynamsoftEnumsDWT.EnumDWT_DeviceType | number, refresh?:boolean}): Promise<Device[]>;
25
+ /**
26
+ * Scan documents into another DWObject control. Supports eSCL scanners and all other scanners with limited capabilities.
27
+ * @param device the device
28
+ * @param deviceConfiguration The device configuration
29
+ */
30
+ acquireImage(device: Device, deviceConfiguration?: DeviceConfiguration): Promise<void>;
31
+ /**
32
+ * Close the data source (a TWAIN/ICA/SANE device which in most cases is a scanner) to free it to be used by other applications.
33
+ * @param device the device
34
+ */
35
+ closeSource(device: Device): Promise<void>;
36
+ /**
37
+ * Gets detailed information about all capabilities of the current data source.
38
+ * @param device the device
39
+ * @argument capabilityDetails Detailed information about the specified capabilities.
40
+ */
41
+ getCapabilities(device: Device):Promise<CapabilityDetails[]>;
42
+ /**
43
+ * Sets up one or multiple capabilities in one call.
44
+ * @param device the device
45
+ * @param capabilities A object that describes how to set capabilities.
46
+ */
47
+ setCapabilities(device: Device, capabilities: Capabilities): Promise<void>;
48
+ /**
49
+ * Delete the Remote Scan Object.
50
+ */
51
+ dispose(): boolean;
52
+ /**
53
+ * Remote Scan Object's Viewer.
54
+ */
55
+ Viewer: RemoteScanViewer;
56
+ /**
57
+ * @param forceRefresh Default value: false.
58
+ */
59
+ getDynamsoftService(forceRefresh?: boolean): Promise<ServiceInfo[]>;
60
+ /**
61
+ * Set the default dynamsoftService for storing the data
62
+ */
63
+ setDefaultDynamsoftService(serviceInfo:ServiceInfo):Promise<void>;
64
+ /**
65
+ * Get the default dynamsoftService.
66
+ */
67
+ getDefaultDynamsoftService():ServiceInfo|null;
68
+ /**
69
+ * Get image(s) form dynamsoftService.
70
+ * @param indices Specify the image(s).
71
+ * @param type The format of the file.
72
+ * @param imageFormatType The result format of the file.
73
+ */
74
+ getImages(
75
+ indices: number[],
76
+ type: DynamsoftEnumsDWT.EnumDWT_ImageType,
77
+ imageFormatType:DynamsoftEnumsDWT.EnumDWT_ImageFormatType):Promise< Blob|string>;
78
+ /**
79
+ * Upload the specified image(s) via a HTTP Post.
80
+ * @param URL The server-side script to receive the post.
81
+ * @param indices Specify the image(s).
82
+ * @param type The format of the file.
83
+ * @param dataFormat Whether to upload the file as binary or a base64 string.
84
+ * @param fileName The file name.
85
+ * @argument response The response value.
86
+ */
87
+ httpUpload(
88
+ URL: string,
89
+ indices: number[],
90
+ type: DynamsoftEnumsDWT.EnumDWT_ImageType | number,
91
+ dataFormat: DynamsoftEnumsDWT.EnumDWT_UploadDataFormat | number,
92
+ fileName: string,
93
+ optionConfig?:{
94
+ //'blob', 'arraybuffer', 'text', 'xml', 'json', default: 'text'
95
+ responseType?: DynamsoftEnumsDWT.EnumDWT_ResponseType,
96
+ formFields?:[{
97
+ name: string,
98
+ value: Blob | string,
99
+ fileName ? : string
100
+ }],
101
+ headers?:[{
102
+ name: string,
103
+ value: string
104
+ }]
105
+ }
106
+ ): Promise<any>;
107
+ /**
108
+ * Save the specified image(s).
109
+ * @param fileName The name to save to.
110
+ * @param indices Specify the image(s).
111
+ * @param type The format of the file.
112
+ */
113
+ saveImages(fileName: string, indices: number[], type: DynamsoftEnumsDWT.EnumDWT_ImageType):Promise<void>;
114
+ /**
115
+ * Remove the specified image.
116
+ * @param indices Specify the image.
117
+ */
118
+ removeImages(indices: number[]): Promise<void>;
119
+ /**
120
+ * Specify an event listener for the specified built-in event.
121
+ * @param name Specify the event
122
+ * @param callback The event listener
123
+ */
124
+ registerEvent(name: string, callback: (...arg: any[]) => void): boolean;
125
+ /**
126
+ * Remove an event listener from the specified built-in event.
127
+ * @param name Specify the event
128
+ * @param callback The event listener
129
+ */
130
+ unregisterEvent(name: string, callback?: (...arg: any[]) => void): boolean;
131
+ /**
132
+ * Set the log level for debugging.
133
+ */
134
+ setLogLevel(value: number): boolean;
135
+ /**
136
+ * Gets custom DS data and returns it in a base64 string.
137
+ */
138
+ getProfile(device: Device): Promise<string>;
139
+ /**
140
+ * Set custom data source data to be used for scanning, the input is a base64 string.
141
+ * @param dsDataString The string that contains custom data source data.
142
+ */
143
+ setProfile(device: Device, dsDataString: string): Promise<void>;
144
+ /**
145
+ * Return the index of an image specified by the imageId.
146
+ * @param imageId The imageId of the image.
147
+ */
148
+ imageIDToIndex(imageId: number): number;
149
+ /**
150
+ * Return the imageId of an image specified by the index.
151
+ * @param index The index of the image.
152
+ */
153
+ indexToImageID(index: number): number;
154
+ }
155
+
@@ -629,7 +629,8 @@ export interface WebTwainAcquire extends WebTwainEdit {
629
629
  SetCapItemsString(index: number, newVal: string): void;
630
630
  }
631
631
  export interface DeviceConfiguration {
632
- /**
632
+ PageSize?: DynamsoftEnumsDWT.EnumDWT_CapSupportedSizes | number;
633
+ /**
633
634
  * Whether to show the built-in User Interface from the device vendor
634
635
  */
635
636
  IfShowUI?: boolean;
@@ -669,21 +670,12 @@ export interface DeviceConfiguration {
669
670
  * How much extended information is retrieved. Only valid when {IfGetExtImageInfo} is true.
670
671
  */
671
672
  extendedImageInfoQueryLevel?: DynamsoftEnumsDWT.EnumDWT_ExtImageInfo | number;
672
- /**
673
- * Whether to simulate the manufacturer's UI inside the client-side browser (only effective when IfShowUI is true).
674
- * (Added in 16.2)
675
- */
676
- RemoteScan?:boolean;
677
- /**
678
- * Whether to simulate the manufacturer's UI inside the client-side browser (only effective when IfShowUI and RemoteScan are both true and the WebTwain instance doing the scan has no viewer of its own).
679
- * (Added in 16.2)
680
- */
681
- ShowRemoteScanUI?:boolean;
682
673
  /**
683
674
  * Specify a source by its index.
684
675
  * (Added in 16.2)
685
676
  */
686
677
  SelectSourceByIndex?: number;
678
+ [key:string]: any;
687
679
  }
688
680
  export interface SourceDetails {
689
681
  /**
@@ -1099,5 +1091,4 @@ export interface Device {
1099
1091
  deviceType: DynamsoftEnumsDWT.EnumDWT_DeviceType;
1100
1092
  serviceInfo?: ServiceInfo;
1101
1093
  deviceInfo?: any;
1102
- acquireImage(deviceConfiguration: DeviceConfiguration | null, sendTo: WebTwain): Promise< boolean>;
1103
1094
  }
@@ -925,6 +925,13 @@ export interface WebTwainIO extends WebTwainUtil {
925
925
  * @param cookie The cookie.
926
926
  */
927
927
  SetCookie(cookie: string): boolean;
928
+ /**
929
+ * Share the specified image(s) for Android. This function is only for Android.
930
+ * @param fileName The name to save to.
931
+ * @param indices Specify the image(s).
932
+ * @param type The format of the file.
933
+ */
934
+ ShareImages(fileName: string, indices: number[], type: DynamsoftEnumsDWT.EnumDWT_ImageType):Promise<void>;
928
935
  }
929
936
  export interface Base64Result {
930
937
  /**
@@ -100,3 +100,44 @@ export interface Authorization {
100
100
  */
101
101
  Detail: any;
102
102
  }
103
+
104
+ export interface BufferChangeInfo {
105
+ /**
106
+ * Action type includes 'add', 'remove', 'modify', 'shift' and 'filter'
107
+ */
108
+ action: string;
109
+ /**
110
+ * The image id (not the index) of the current page.
111
+ */
112
+ currentId: number;
113
+ /**
114
+ * All image ids.
115
+ */
116
+ imageIds: number[];
117
+ /**
118
+ * All selected image ids.
119
+ */
120
+ selectedIds: number[];
121
+ }
122
+
123
+ export interface OutputInfo {
124
+ /**
125
+ * Id of the image if it's transferred to the buffer.
126
+ */
127
+ imageId?: number;
128
+ /**
129
+ * Path of the image if it's transferred to the disk.
130
+ */
131
+ Path?: string;
132
+ /**
133
+ * Information about the image.
134
+ */
135
+ imageInfo?: object;
136
+ /**
137
+ * Extended information about the image.
138
+ */
139
+ extendedImageInfo?: object;
140
+ }
141
+
142
+
143
+
@@ -422,6 +422,7 @@ export interface EditorSettings {
422
422
  * [Usage Notes] 'Invalid property value' will be reported when the specified value type is wrong or the parameter name is spelled incorrectly.
423
423
  */
424
424
  dialogText?: any;
425
+ workMode?: number | DynamsoftEnumsDWT.EnumDWT_WorkMode;//default is normal value:normal=0, balance=1,
425
426
  }
426
427
  export interface ThumbnailViewerSettings {
427
428
  /**
@@ -601,6 +602,11 @@ export interface ImageEditor {
601
602
  * [Description] Delete the ImageEditor viewer.
602
603
  */
603
604
  dispose(): void;
605
+ /**
606
+ * [Scope] ImageEditor viewer
607
+ * [Description] Update the changes in the ImageEditor to the server.
608
+ */
609
+ save():Promise<void>;
604
610
  }
605
611
  export interface ThumbnailViewer {
606
612
  /**
@@ -1,4 +1,3 @@
1
- // Type definitions for dwt 16.2
2
1
  // Project: https://www.dynamsoft.com/products/webtwain_overview.aspx
3
2
  // Definitions by: Xiao Ling <https://github.com/yushulx>
4
3
  // Josh Hall <https://github.com/jbh>
@@ -14,7 +13,7 @@
14
13
  *
15
14
  * Copyright 2022, Dynamsoft Corporation
16
15
  * Author: Dynamsoft Support Team
17
- * Version: 18.1
16
+ * Version: 18.2
18
17
  */
19
18
  import Dynamsoft from "./Dynamsoft";
20
19
  export default Dynamsoft;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dwt",
3
- "version": "18.1.2-beta",
3
+ "version": "18.2.0",
4
4
  "author": {
5
5
  "name": "Dynamsoft",
6
6
  "url": "https://www.dynamsoft.com"
@@ -1,2 +0,0 @@
1
- /*! 20221209 094426 */
2
- .dvs-WebViewer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;-ms-scroll-chaining:none;overscroll-behavior:none;width:100%;height:100%;background:none;box-sizing:border-box;-webkit-tap-highlight-color:transparent;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.dvs-WebViewer.fitPage{position:fixed;left:0;top:0;width:100%!important;height:100%!important;z-index:666}.dvs-WebViewer>div{box-sizing:border-box}.dvs-WebViewer>.dvs-body{width:100%;max-height:100%;overflow:hidden}.dvs-WebViewer>.dvs-body,.dvs-WebViewer>.dvs-body>.dvs-showImageArea{height:100%;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;position:relative}.dvs-WebViewer>.dvs-body>.dvs-showImageArea{width:0}.dvs-sidebar{height:100%;box-shadow:0 1px 0 0 hsla(0,0%,100%,.05);position:relative;z-index:2;-ms-flex-pack:start;-ms-flex-align:start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex:0 0 199px;-ms-flex:0 0 199px;flex:0 0 199px}.dvs-sidebar,.dvs-sidebar>.dvs-navChange{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:flex-start;align-items:flex-start}.dvs-sidebar>.dvs-navChange{width:100%;height:52px;box-sizing:border-box;overflow:hidden;-ms-flex-pack:start;-ms-flex-align:start;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex:0 0 52px;-ms-flex:0 0 52px;flex:0 0 52px;border-top:1px solid #1b1b1d}.dvs-sidebar>.dvs-navChange>li{-webkit-flex:1;-ms-flex:1;flex:1;flex-direction:row;background:#323135;border-bottom:1px solid #1b1b1d;box-sizing:border-box}.dvs-sidebar>.dvs-navChange>li,.dvs-sidebar>.dvs-navChange>li>div{height:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row}.dvs-sidebar>.dvs-navChange>li>div{width:100%;color:#aaa;font-size:19px;flex-direction:row}.dvs-sidebar>.dvs-navChange>li:first-child{border-left:none}.dvs-sidebar>.dvs-navChange>.dvs-activeTab{background:#373638;border:1px solid #1b1b1d;border-top:none;border-bottom:none}.dvs-sidebar>.dvs-navChange>li:last-child{border-right:none}.dvs-sidebar>div.dvs-defaultTag{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;overflow:hidden;width:calc(100% - 19px);-webkit-flex:0 0 58px;-ms-flex:0 0 58px;flex:0 0 58px;padding-left:19px;font-size:16px;font-weight:600;background:#373638;border-bottom:1px solid #1b1b1d;color:#aaa;cursor:pointer}.dvs-sidebar>div.dvs-activeAllImage,.dvs-sidebar>div.dvs-defaultTag:hover{background:#434246;box-shadow:0 1px 0 0 #444}.dvs-sidebar .dvs-paneShow{width:100%;-webkit-flex:1;-ms-flex:1;flex:1;height:0;background:#373638;overflow:hidden}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree,.dvs-sidebar .dvs-paneShow>.dvs-Tags{height:100%;position:relative}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:visible;overflow-y:auto;background:#3b3a3c;max-height:calc(100% - 118px)}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li{cursor:pointer;overflow:hidden;padding-left:18px;height:60px;-webkit-flex:0 0 60px;-ms-flex:0 0 60px;flex:0 0 60px;box-shadow:0 1px 0 0 #444;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-size:14px;font-weight:400;color:#aaa}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li:hover{background:#434246;box-shadow:0 1px 0 0 #444}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li.createBox,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li.createBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li.createBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li.createBox{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>div,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>div,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>div,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>div{width:40px;-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>span,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>span,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>span,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>span{width:0;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>input,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>input,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>input,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>input{width:50%;height:16px;text-align:center;color:#3a393b;background:#aaa;outline:none;border:none}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.judgeBox,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.judgeBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.judgeBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.judgeBox{margin-left:15px;width:45px;-webkit-flex:0 0 45px;-ms-flex:0 0 45px;flex:0 0 45px;height:16px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.judgeBox>div,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.judgeBox>div,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.judgeBox>div,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.judgeBox>div{width:16px;height:16px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.judgeBox>div:first-child,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.judgeBox>div:nth-child(2),.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.judgeBox>div:first-child,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.judgeBox>div:nth-child(2),.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.judgeBox>div:first-child,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.judgeBox>div:nth-child(2),.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.judgeBox>div:first-child,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.judgeBox>div:nth-child(2){font-size:16px}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.judgeBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.judgeBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.judgeBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.judgeBox>div:hover{font-size:18px}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.editDelBox,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.editDelBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.editDelBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.editDelBox{width:45px;-webkit-flex:0 0 45px;-ms-flex:0 0 45px;flex:0 0 45px;margin-right:14px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-space-between;-ms-flex-pack:flex-space-between;justify-content:flex-space-between;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li>.editDelBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li>.editDelBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li>.editDelBox>div:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li>.editDelBox>div:hover{font-size:18px}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li.dvs-activeFile,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-tagLists>li.dvs-activeTag,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li.dvs-activeFile,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-treeLists>li.dvs-activeTag,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li.dvs-activeFile,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-tagLists>li.dvs-activeTag,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li.dvs-activeFile,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-treeLists>li.dvs-activeTag{background:#434246;box-shadow:0 1px 0 0 #444}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addFolderBox,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addTagBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addFolderBox,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addTagBox{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;height:118px}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addFolderBox>.dvs-addFolder,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addFolderBox>.dvs-addTag,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addTagBox>.dvs-addFolder,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addTagBox>.dvs-addTag,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addFolderBox>.dvs-addFolder,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addFolderBox>.dvs-addTag,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addTagBox>.dvs-addFolder,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addTagBox>.dvs-addTag{font-size:14px;font-weight:400;color:#aaa;width:80px;height:32px;background:#434246;border:1px solid rgba(27,27,29,.96);box-shadow:inset 0 1px 0 0 hsla(0,0%,100%,.1);border-radius:3px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;cursor:pointer}.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addFolderBox>.dvs-addFolder:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addFolderBox>.dvs-addTag:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addTagBox>.dvs-addFolder:hover,.dvs-sidebar .dvs-paneShow>.dvs-DirctoryTree>.dvs-addTagBox>.dvs-addTag:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addFolderBox>.dvs-addFolder:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addFolderBox>.dvs-addTag:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addTagBox>.dvs-addFolder:hover,.dvs-sidebar .dvs-paneShow>.dvs-Tags>.dvs-addTagBox>.dvs-addTag:hover{background:#323135}.dvs-sidebar>.dvs-stretchBar{width:10px;height:100%;position:absolute;top:0;right:-5px;z-index:3;cursor:w-resize}.dvs-content{width:100%;height:100%;-webkit-flex:0 1 100%;-ms-flex:0 1 100%;flex:0 1 100%;box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-space-between;-ms-flex-pack:flex-space-between;justify-content:flex-space-between;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;overflow:hidden}.dvs-content>.dvs-absolute{position:absolute}.dvs-content>.dvs-moveHidden{-webkit-transform:translate3d(-1%,0,0);transform:translate3d(-1%,0,0)}.dvs-content>.dvs-middle{width:100%;height:100%;max-height:100%;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden;box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-space-between;-ms-flex-pack:flex-space-between;justify-content:flex-space-between;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-tabList{width:100%;height:40px;-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px;background-color:#3a393b;border-top:1px solid #1b1b1d;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;flex-direction:row}.dvs-tabList,.dvs-tabList>.dvs-tabItem{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row}.dvs-tabList>.dvs-tabItem{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;flex-direction:row;width:90px;height:100%;box-shadow:0 3px 21px 0 rgba(42,41,43,.75);padding:0 20px;border:solid #292929;border-width:0 1px 0 0;position:relative;cursor:pointer}.dvs-tabList>.dvs-tabItem>.dvs-tabText{color:#aaa;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dvs-tabList>.dvs-tabItem:hover{background:#434246}.dvs-tabList>.dvs-tabItem:hover>.dvs-closeTab{display:inherit}.dvs-tabList>.dvs-tabItem>.dvs-closeTab{position:absolute;right:5px;font-size:12px;color:#aaa;width:12px;height:12px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box;display:none}.dvs-tabList>.dvs-tabItem>.dvs-closeTab:hover{border:1px solid #aaa;border-radius:50%}.dvs-tabList>.dvs-activeTab{background-color:#434246}.dvs-tabList>.dvs-activeTab:after{content:"";background:#434246;position:absolute;bottom:-1px;width:100%;height:1px}.dvs-tabList>.dvs-activeTab>.dvs-closeTab{display:block}.dvs-container{width:0;border-width:0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-container,.dvs-container>.dvs-viewPort{-webkit-flex:1;-ms-flex:1;flex:1;height:100%;position:relative;overflow:hidden}.dvs-container>.dvs-viewPort{width:100%;box-sizing:border-box}.dvs-container>.dvs-viewPort>div{width:100%;height:100%;overflow:auto;position:absolute;top:0;left:0}.dvs-container>.dvs-viewPort .dvs-canvas{box-sizing:border-box;z-index:1}.dvs-container>.dvs-viewPort .dvs-canvas,.dvs-container>.dvs-viewPort .dvs-canvasEventLayer{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.dvs-container>.dvs-viewPort .dvs-canvasEventLayer{z-index:555;background:rgba(0,0,0,.01)}.dvs-container>.dvs-viewPort .dvs-loadingLayer{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:999}.dvs-container>.dvs-viewPort .dvs-loadingLayer>img{max-width:100%;max-height:100%;-webkit-user-drag:none}.dvs-container>.dvs-viewPort>.dvs-slideWrapper{visibility:hidden;position:absolute;width:100%;height:100%;z-index:1;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;overflow:hidden}.dvs-container>.dvs-videoContainer,.dvs-container>.dvs-viewPort>.dvs-slideWrapper>.dvs-slideItem{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;height:100%}.dvs-header{height:40px;-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px;box-shadow:inset 0 1px 0 0 hsla(0,0%,100%,.1);-ms-flex-pack:start;-ms-flex-align:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-header,.dvs-topMenu{width:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:center;align-items:center}.dvs-topMenu{height:50px;-webkit-flex:0 0 50px;-ms-flex:0 0 50px;flex:0 0 50px;box-shadow:0 1px 0 0 hsla(0,0%,100%,.05);position:relative;box-sizing:border-box;flex-direction:row;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;z-index:1}.dvs-topMenu,.dvs-topMenu>div{-ms-flex-pack:start;-ms-flex-align:center;-webkit-flex-direction:row;-ms-flex-direction:row}.dvs-topMenu>div{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:center;align-items:center;flex-direction:row;-webkit-flex:1;-ms-flex:1;flex:1}.dvs-topMenu>.dvs-groupType:not(.dvs-topMenuRight){width:0}.dvs-asideMenu{width:50px;height:100%;background:#3a393b;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.dvs-asideMenu,.dvs-asideMenu>div{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dvs-asideMenu>div{width:100%;height:auto;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dvs-bottomMenu{-webkit-flex:0 0 50px;-ms-flex:0 0 50px;flex:0 0 50px;box-shadow:0 1px 0 0 hsla(0,0%,100%,.05);width:100%;border:1px solid #1b1b1d;box-sizing:border-box;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;flex-direction:row}.dvs-bottomMenu,.dvs-bottomMenu>div{height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row}.dvs-bottomMenu>div{flex-direction:row}.dvs-bottomMenu>div,.dvs-Thumbnail{-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dvs-Thumbnail{width:100%;height:100%;position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;box-shadow:0 1px 0 0 hsla(0,0%,100%,.05);box-sizing:border-box}.dvs-Thumbnail>.dvs-stretchBar{z-index:666;position:absolute}.dvs-Thumbnail .dvs-stretchLeft{left:-8px;top:0}.dvs-Thumbnail .dvs-stretchRight{right:-8px;top:0}.dvs-Thumbnail .dvs-stretchLeft,.dvs-Thumbnail .dvs-stretchRight{width:10px;height:100%;cursor:ew-resize}.dvs-Thumbnail .dvs-stretchTop{left:0;top:-8px}.dvs-Thumbnail .dvs-stretchBottom{left:0;bottom:-8px}.dvs-Thumbnail .dvs-stretchBottom,.dvs-Thumbnail .dvs-stretchTop{width:100%;height:10px;cursor:ns-resize}.dvs-Thumbnail .dvs-thumbLists{overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;-ms-scroll-chaining:none;width:100%;height:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.dvs-Thumbnail .dvs-thumbLists,.dvs-Thumbnail .dvs-thumbLists>li{box-sizing:border-box;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;position:relative}.dvs-Thumbnail .dvs-thumbLists>li{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0}.dvs-Thumbnail .dvs-thumbLists.div-hideReplaceBlock>.dvs-replaceBlock{display:none}.dvs-Thumbnail>.dvs-thumbLists:after{content:"";width:.1px;height:.1px;display:block;-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.dvs-Thumbnail .dvs-thumbnailCanvas{width:100%;height:100%;position:absolute;left:0;top:0}.dvs-innerThumbnail{width:100%;height:100%;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden}.dynamsoft-dwt-imageEditor .dvs-header>div{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dvs-resizeButton>div{height:100%}.dvs-resizeButton>div .dvs-iconColor{font-size:1em;width:1.5em;height:1.5em;-webkit-flex-basis:1.5em;-ms-flex-preferred-size:1.5em;flex-basis:1.5em}.dvs-resizeButton>div .dvs-emptyBtn{width:1em;height:1em;-webkit-flex-basis:1em;-ms-flex-preferred-size:1em;flex-basis:1em}@media screen and (max-device-width:500px){.dynamsoft-dwt-imageEditor>.dvs-header{background:#000;height:40px;padding:0 15px}.dynamsoft-dwt-imageEditor>.dvs-header>div{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex:1;-ms-flex:1;flex:1}.dynamsoft-dwt-imageEditor>.dvs-header>div>div{width:24px;height:24px;-webkit-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px}.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu{background:#323234;height:48px;-webkit-flex:0 0 48px;-ms-flex:0 0 48px;flex:0 0 48px}.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu>div,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu>div{height:100%;-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around;-webkit-flex:1;-ms-flex:1;flex:1}.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu .ds-dvs-ui-pageEnd,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu .ds-dvs-ui-pageNext,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu .ds-dvs-ui-pagePre,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-bottomMenu .ds-dvs-ui-pageStart,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu .ds-dvs-ui-pageEnd,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu .ds-dvs-ui-pageNext,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu .ds-dvs-ui-pagePre,.dynamsoft-dwt-imageEditor>.dvs-body>.dvs-showImageArea>.dvs-content>.dvs-topMenu .ds-dvs-ui-pageStart{font-size:18px}}.dvs-WebViewer div,.dvs-WebViewer input,.dvs-WebViewer li,.dvs-WebViewer p,.dvs-WebViewer ul{margin:0;padding:0}.dvs-WebViewer li,.dvs-WebViewer ul{list-style:none}.dvs-iconColor,.font_toolBarBtn{font-size:24px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:40px;height:40px}.font_toolBarBtn.notMobile:hover,.notMobile.dvs-iconColor:hover{font-size:28px}.font_innerBtn{text-align:center;width:40px;font-size:24px}.font_innerBtn:hover{font-size:28px}.dvs-hidden{visibility:hidden!important}.dvs-absolute-full{position:absolute!important;top:0!important;left:0!important}.dvs-absolute-full,.dvs-upper-full{width:100%!important;height:100%!important}.dvs-upper-full{z-index:556}.dvs-disabled,.dvs-hideToolbars,.dvs-hideVideoContainer,.dvs-nodisplay{display:none!important}.dvs-full{width:100%!important;height:100%!important;-webkit-flex:0 0 100%!important;-ms-flex:0 0 100%!important;flex:0 0 100%!important}.dvs-absolute{position:absolute!important;z-index:1}.dvs-iconColor{color:#aaa;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;cursor:pointer}.dvs-emptyBtn{cursor:auto}.dvs-showAfter,.dvs-showBefore,.dvs-showMore{top:0;position:absolute;color:#adadad;background:#2b2b2b;height:100%;width:20px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;z-index:2;opacity:.8;font-size:16px;cursor:pointer}.dvs-showAfter:hover,.dvs-showBefore:hover,.dvs-showMore:hover{background-color:#4a4a4c}.dvs-showBefore{left:0}.dvs-showAfter{right:0}.width60{width:60px;-webkit-flex:0 0 60px;-ms-flex:0 0 60px;flex:0 0 60px}.rbIcon{position:absolute;right:0;bottom:0}.dvs-groupType{height:100%;min-width:0;min-height:0;overflow:hidden;position:relative;display:-webkit-flex;display:-ms-flexbox;display:flex}.dvs-topMenuRight{position:absolute;top:0;right:0;height:100%}.dvs-streching{background:#2a292b;z-index:100}.dvs-thumbnail-remove{background:#fff;color:#ea2e2e;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;border-radius:50%;height:20px;width:20px;font-size:18px;padding:1px;top:-10px;right:-10px;position:absolute;box-shadow:0 0 2px 1px #515151}.dvs-thumbnail-remove:before{content:"\2a2f";margin-top:-3px}.dvs-hide-remove-btn .dvs-thumbnail-remove{display:none}.dvs-pageBreak{width:1px;-webkit-flex:0 0 1px;-ms-flex:0 0 1px;flex:0 0 1px;height:16px;background:#9e9e9f;margin:0 10px}.dvs-pagerLabel{color:#9e9e9f;white-space:nowrap;height:100%;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dvs-pagerInput{font-size:16px;width:16px;height:27px;line-height:27px;border-radius:3px;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:5px;border:none;text-align:center}@-webkit-keyframes contextMenuItem{0%{opacity:0}to{opacity:1}}@keyframes contextMenuItem{0%{opacity:0}to{opacity:1}}.dvs-bottomMenu .dvs-footerGroup{-webkit-flex:1;-ms-flex:1;flex:1;-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.dvs-bottomMenu .dvs-footerGroup span{font-size:12px}.dvs-topMenu .dvs-headerGroup{-webkit-flex:1;-ms-flex:1;flex:1;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:0 15px}.dvs-topMenu .dvs-headerGroup span{font-size:12px}.dvs-WebViewer .dynamsoft-camera-filterDropDown ul{padding-bottom:5px}