VintaSoft Imaging .NET SDK 15.1: Documentation for Web developer
In This Topic
VintaSoft Imaging .NET SDK: API changes in version 12.2
In This Topic

API changes in Vintasoft.Imaging.js (old name - Vintasoft.Imaging.Html5.js)

The Vintasoft.Imaging.Html5.js file is renamed to the Vintasoft.Imaging.js file.

New classes:

public class Vintasoft.Imaging.UI.UIElements. WebUiControlJS Represents a base class for web UI controls.
public class Vintasoft.Imaging.UI.UIElements. WebUiControlSettingsJS Represents settings for WebUiControlJS object.
public class Vintasoft.Imaging.UI.UIElements. WebUiColorPickerJS A web UI-element that represents the color picker.
public class Vintasoft.Imaging.UI.UIElements. WebUiButtonWithColorPickerJS A web UI-element that represents button with color picker.


Moved classes (classes are moved from Vintasoft.Imaging.DocumentViewer.js file to the Vintasoft.Imaging.js file):

public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelContainerJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelContainerJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelWithContextMenuJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelWithContextMenuJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiSidePanelJS public class Vintasoft.Imaging.UI.Panels. WebUiSidePanelJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiBrElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiBrElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiButtonInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiButtonInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiCheckboxInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiCheckboxInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiContextMenuJS public class Vintasoft.Imaging.UI.UIElements. WebUiContextMenuJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDialogButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiDialogButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDivElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiDivElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDropDownButtonListJS public class Vintasoft.Imaging.UI.UIElements. WebUiDropDownButtonListJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementCollectionJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementCollectionJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementContainerJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementContainerJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementsFactoryJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementsFactoryJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementStateCollectionJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementStateCollectionJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementStateJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementStateJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiFileInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiFileInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiImageInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiImageInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiInputElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiInputElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiLabelElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiLabelElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiLabelWithDropDownListJS A web UI-element that represents text label and button with drop-down list.
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiNumericInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiNumericInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiOptionElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiOptionElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiProgressJS public class Vintasoft.Imaging.UI.UIElements. WebUiProgressJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiRadioInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiRadioInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiSelectElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiSelectElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTextareaElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiTextareaElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTextInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiTextInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiToggleButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiToggleButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTypedInputElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiTypedInputElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiUploadFileButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiUploadFileButtonJS


Changed classes:

Vintasoft.Imaging.Utils. WebMatrixJS
Added methods
public void setMatrixElements(number, number, number, number, number, number) Initializes current matrix using the specified matrix elements.


Moved enumerations (enumerations are moved from Vintasoft.Imaging.DocumentViewer.js file to the Vintasoft.Imaging.js file):

public enum Vintasoft.Imaging.DocumentViewer. WebLayoutDirectionModeEnumJS public enum Vintasoft.Imaging.UI. WebLayoutDirectionModeEnumJS
public enum Vintasoft.Imaging.DocumentViewer. WebHorizontalAlignModeEnumJS public enum Vintasoft.Imaging.UI. WebHorizontalAlignModeEnumJS
public enum Vintasoft.Imaging.DocumentViewer. WebVerticalAlignModeEnumJS public enum Vintasoft.Imaging.UI. WebVerticalAlignModeEnumJS




New file Vintasoft.Imaging.css

New file Vintasoft.Imaging.css contains CSS-styles for base UI-elements for WebUiControlJS control and derived controls (WebDocumentViewerJS, WebSpreadsheetDocumentEditorControlJS).




New file Vintasoft.Imaging.Dialogs.Bootstrap.js

New file Vintasoft.Imaging.Dialogs.Bootstrap.js contains base UI-dialog, which is based on Bootstrap dialog, for WebUiControlJS control and derived controls (WebDocumentViewerJS, WebSpreadsheetDocumentEditorControlJS).




New file Vintasoft.Imaging.Dialogs.jQueryUI.js

New file Vintasoft.Imaging.Dialogs.jQueryUI.js contains base UI-dialog, which is based on jQuery UI-dialog, for WebUiControlJS control and derived controls (WebDocumentViewerJS, WebSpreadsheetDocumentEditorControlJS).




API changes in Vintasoft.Imaging.DocumentViewer.js

Moved classes (classes are moved from Vintasoft.Imaging.DocumentViewer.js file to the Vintasoft.Imaging.js file):

public class Vintasoft.Imaging.DocumentViewer. WebUiElementsFactoryJS public class Vintasoft.Imaging.UI. WebUiElementsFactoryJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebImageSelectionPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiImageSelectionPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebPrintImagesSettingsPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiPrintImagesSettingsPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebThumbnailViewerSettingsPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiThumbnailViewerSettingsPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebTwainDeviceCapabilitiesPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiTwainDeviceCapabilitiesPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebTwainSelectDevicePanelJS public class Vintasoft.Imaging.UI.Panels. WebUiTwainSelectDevicePanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelContainerJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelContainerJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiPanelWithContextMenuJS public class Vintasoft.Imaging.UI.Panels. WebUiPanelWithContextMenuJS
public class Vintasoft.Imaging.DocumentViewer.Panels. WebUiSidePanelJS public class Vintasoft.Imaging.UI.Panels. WebUiSidePanelJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiBrElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiBrElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiBrElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiBrElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiCheckboxInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiCheckboxInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiContextMenuJS public class Vintasoft.Imaging.UI.UIElements. WebUiContextMenuJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDialogButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiDialogButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDivElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiDivElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiDropDownButtonListJS public class Vintasoft.Imaging.UI.UIElements. WebUiDropDownButtonListJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementCollectionJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementCollectionJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementContainerJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementContainerJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementStateCollectionJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementStateCollectionJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementStateJS public class Vintasoft.Imaging.UI.UIElements. WebUiElementStateJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiFileInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiFileInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiImageInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiImageInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiInputElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiInputElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiLabelElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiLabelElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiNumericInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiNumericInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiOptionElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiOptionElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiProgressJS public class Vintasoft.Imaging.UI.UIElements. WebUiProgressJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiRadioInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiRadioInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiSelectElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiSelectElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTextareaElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiTextareaElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTextInputJS public class Vintasoft.Imaging.UI.UIElements. WebUiTextInputJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiToggleButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiToggleButtonJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiTypedInputElementJS public class Vintasoft.Imaging.UI.UIElements. WebUiTypedInputElementJS
public class Vintasoft.Imaging.DocumentViewer.UIElements. WebUiUploadFileButtonJS public class Vintasoft.Imaging.UI.UIElements. WebUiUploadFileButtonJS


Changed classes:

Vintasoft.Imaging.DocumentViewer. WebDocumentViewerJS
Moved properties
public Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementCollectionJS get_Items { get ; } Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
Moved methods
public void failAsyncOperation(string) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void failAsyncOperation(string, object) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void finishAsyncOperation(string) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void finishAsyncOperation(string, object) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void localize() Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void localize(Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void startAsyncOperation(string) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.
public void startAsyncOperation(string, object) Moved to the WebUiControlJS class. Now class WebDocumentViewerJS is derived from WebUiControlJS class.


Vintasoft.Imaging.DocumentViewer. WebDocumentViewerSettingsJS
Moved properties
public string get_ContainerId { get ; } Moved to the WebUiControlJS class. Now class WebDocumentViewerSettingJS is derived from WebUiControlSettingsJS class.
public string set_ContainerId { set ; } Moved to the WebUiControlJS class. Now class WebDocumentViewerSettingJS is derived from WebUiControlSettingsJS class.
public Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementCollectionJS get_Items { get ; } Moved to the WebUiControlJS class. Now class WebDocumentViewerSettingJS is derived from WebUiControlSettingsJS class.
Moved methods
public Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS getItemByRegisteredId(string) Moved to the WebUiControlJS class. Now class WebDocumentViewerSettingJS is derived from WebUiControlSettingsJS class.


Vintasoft.Imaging.DocumentViewer.Panels. WebUiAnnotationListPanelJS
Changed constructors
public void WebUiAnnotationListPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiAnnotationListPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiImageProcessingPanelJS
Changed constructors
public void WebUiImageProcessingPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiImageProcessingPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiImageViewerPanelJS
Changed constructors
public void WebUiImageViewerPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiImageViewerPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiPdfBookmarksPanelJS
Changed constructors
public void WebUiPdfBookmarksPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiPdfBookmarksPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiPdfImageResourceExtractionPanelJS
Changed constructors
public void WebUiPdfImageResourceExtractionPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiPdfImageResourceExtractionPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiPdfInteractiveFormFieldsPanelJS
Changed constructors
public void WebUiPdfInteractiveFormFieldsPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiPdfInteractiveFormFieldsPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiPdfRedactionMarkListPanelJS
Changed constructors
public void WebUiPdfRedactionMarkListPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiPdfRedactionMarkListPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiTextSearchPanelJS
Changed constructors
public void WebUiTextSearchPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiTextSearchPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiTextSelectionPanelJS
Changed constructors
public void WebUiTextSelectionPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiTextSelectionPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Vintasoft.Imaging.DocumentViewer.Panels. WebUiThumbnailViewerPanelJS
Changed constructors
public void WebUiThumbnailViewerPanelJS(object, Vintasoft.Imaging.DocumentViewer.UIElements. WebUiElementJS) public void WebUiThumbnailViewerPanelJS(object, Vintasoft.Imaging.UI.UIElements. WebUiElementJS)


Moved enumerations (enumerations are moved from Vintasoft.Imaging.DocumentViewer.js file to the Vintasoft.Imaging.js file):

public enum Vintasoft.Imaging.DocumentViewer. WebLayoutDirectionModeEnumJS public enum Vintasoft.Imaging.UI. WebLayoutDirectionModeEnumJS
public enum Vintasoft.Imaging.DocumentViewer. WebHorizontalAlignModeEnumJS public enum Vintasoft.Imaging.UI. WebHorizontalAlignModeEnumJS
public enum Vintasoft.Imaging.DocumentViewer. WebVerticalAlignModeEnumJS public enum Vintasoft.Imaging.UI. WebVerticalAlignModeEnumJS




Changes in Vintasoft.Imaging.DocumentViewer.css

Renamed and moved CSS-styles (CSS-styles are moved from Vintasoft.Imaging.DocumentViewer.css file to the Vintasoft.Imaging.css file):

vsdv-mainMenu vsui-mainMenu
vsdv-mainMenu-header vsui-mainMenu-header
vsdv-shortSelect vsui-shortSelect
vsdv-elementSubgroup vsui-elementSubgroup
vsdv-subMenu-contentPanel vsui-subMenu-contentPanel
vsdv-subMenu-icon vsui-subMenu-icon
vsdv-subMenu-divider vsui-subMenu-divider
vsdv-elementSubgroup vsui-elementSubgroup
vsdv-divider-vert vsui-divider-vert
vsdv-divider-horiz vsui-divider-horiz
vsdv-button vsui-button
vsdv-togglePanel vsui-togglePanel
vsdv-toggleElement vsui-toggleElement
vsdv-sidePanel vsui-sidePanel
vsdv-sidePanel-header vsui-sidePanel-header
vsdv-sidePanel-header-label vsui-sidePanel-header-label
vsdv-sidePanel-openPanelButton vsui-sidePanel-openPanelButton
vsdv-sidePanel-panelsContainer vsui-sidePanel-panelsContainer
vsdv-sidePanel-header vsui-sidePanel-header
vsdv-sidePanel-content vsui-sidePanel-content
vsdv-sidePanel-iconsPanel vsui-sidePanel-iconsPanel
vsdv-contextMenu vsui-contextMenu
vsdv-progressBar vsui-progressBar
vsdv-dialog vsui-dialog
vsdv-dialogHeader vsui-dialogHeader
vsdv-dialogContent vsui-dialogContent
vsdv-dialogButtons vsui-dialogButtons




API changes in Vintasoft.Imaging.DocumentViewer.Dialog.Bootstrap.js

Moved classes (classes are moved from Vintasoft.Imaging.DocumentViewer.Dialogs.Bootstrap.js file to the Vintasoft.Imaging.Dialogs.Bootstrap.js file):

public class Vintasoft.Imaging.DocumentViewer.Dialogs. WebUiDialogJS public class Vintasoft.Imaging.UI.Dialogs. WebUiDialogJS




API changes in Vintasoft.Imaging.DocumentViewer.Dialog.jQueryUI.js

Moved classes (classes are moved from Vintasoft.Imaging.DocumentViewer.Dialogs.jQueryUI.js file to the Vintasoft.Imaging.Dialogs.jQueryUI.js file):

public class Vintasoft.Imaging.DocumentViewer.Dialogs. WebUiDialogJS public class Vintasoft.Imaging.UI.Dialogs. WebUiDialogJS