# Configuration

Interactive Ink SDK is a flexible toolkit, and its default configuration can be adjusted to meet different needs. This page lists available options, their default values and usage.

You can access the configuration during the creation of an editor. Refer to the Interactive Ink editing page of the guide for more instructions.

## General

For the sake of clarity path of parameter are given. For example recognitionParams.type key match following entry in the configuration :

const configuration = {
recognitionParams: {
type: '...'
}
}

### Content type compatibility

The supported content types depends on the protocol you are using. The table below should help you.

Recognition type
Protocol : Websocket MATH, TEXT
Protocol : REST MATH, TEXT, DIAGRAM, Raw Content

### Common parameters

Key Type Default value Description
recognitionParams.type string TEXT MATH, TEXT, DIAGRAM, Raw Content
recognitionParams.protocol string WEBSOCKET REST or WEBSOCKET to choose the API to use.
recognitionParams.server.scheme string https Server URL scheme (http/https)
recognitionParams.server.host string cloud.myscript.com Server host (cloud.myscript.com is the production url, webdemoapi.myscript.com is reserved for demonstration purpose)
recognitionParams.server.applicationKey string undefined MyScript Cloud applicationKey
recognitionParams.server.hmacKey string undefined MyScript Cloud hmacKey
recognitionParams.server.websocket.pingEnabled boolean true Enable/disable ping checks of the network connectivity (Improve network stability when enable)
recognitionParams.server.websocket.pingDelay number 30000 Delay in millisecond to wait before sending a ping. A ping is sent if no exchange occurs between the browser and teh server since last ping.
recognitionParams.server.websocket.maxPingLostCount number 10 Failed ping count before closing the socket
recognitionParams.server.websocket.autoReconnect boolean true Will try to automatically reconnect when websocket is close or when a timeout is detected. Do not handle the case when user change network on his device.
recognitionParams.server.websocket.maxRetryCount number 2 Number of retries when auto reconnect is enabled
recognitionParams.server.websocket.fileChunkSize number 2 File chunk size in bytes
listenerOptions.* Object {capture: false, passive: true} Options when adding event listeners whit addEventListener function
xyFloatPrecision number 0 Precision of x and y from 0 to 10 (integer). More the value is high more precise will be the point capture but object in memory and send to the server will be heavier.
timestampFloatPrecision number 0 Precision of the timestamp
triggerDelay number 2000 Delay in millisecond to wait before doing an action if in QUIET_PERIOD. If an other action is perform during the quiet period, timer is reset.
processDelay number 0 Quiet period duration in millisecond while editor wait for another event before triggering events
resizeTriggerDelay number 200 Delay in millisecond to wait before applying a resize action. If a other resize order is perform during the quiet period, resizeTimer is clear. Prevent resize storms.
triggers.exportContent string POINTER_UP Trigger for export action
triggers.addStrokes string POINTER_UP Trigger for addStrokes action. POINTER_UP, Action is triggered on every Pointer Up. This is the recommended mode. QUIET_PERIOD : Action is triggered after a quiet period in milli-seconds on every pointer up. I value is set to 2000 for example the recognition will be fired when user stop writing 2 seconds. This is the recommended mode for all REST recognitions to avoid excessive calls to the server.
renderingParams.stroker string quadratic Type of temporary (before stroke is send to the server) stroker. Actually only quadratic is implemented.
renderingParams.minHeight number 100 Minimal height of the editor
renderingParams.minWidth number 100 Minimal width of the editor

### General iink parameters

When using iinkJS, the prefix recognitionParams.iink should be added.
Key Type Default value Description
export.graphml.flavor string yed Defines the flavor you want for GraphML export: possible values are standard and yed. The latter is recommended if you want to edit exported GraphML into yEd. The yEd flavor is also more expressive and thus truthful.
export.image-resolution number 300 Resolution of the images that are exported, in dpi.
export.image-max-size number 4096 Maximum width and height of exported images.
export.image.guides boolean false If true, show guides in the exported images.
export.image.viewport.x number none The x-coordinate, in pixels, of the viewport origin to be used for the image export.
export.image.viewport.y number none The y-coordinate, in pixels, of the viewport origin to be used for the image export.
export.image.viewport.width number none The width, in pixels, of the viewport to be used for the image export.
export.image.viewport.height number none The height, in pixels, of the viewport to be used for the image export.
export.jiix.bounding-box boolean false If true, JIIX export will contain the bounding boxes of exported items.
export.jiix.strokes boolean false If true, JIIX export will include the detailed ink information.
export.jiix.style boolean false If true, JIIX export will include the styling information.
export.jiix.text.chars boolean false If true, JIIX export will include the detailed characters information.
export.jiix.text.words boolean true If true, JIIX export will include the detailed words information.
export.mathml.flavor string standard Defines the flavor you want for MathML export: possible values are standard and ms-office. The latter is recommended if you want to use exported MathML into Microsoft Office suite.
lang string en_US Defines the language used in the editor.
alwaysConnected boolean true Prevents the WebSocket session to be reinitialized every 5 minutes.
renderer.debug.draw-image-boxes boolean false If true, displays the bounding of the images.
renderer.debug.draw-text-boxes boolean false If true, displays the bounding of the words (for text) or characters (for math).
gesture.enable boolean true If true, iink SDK will attempt to detect gestures while writing.

### Text

Key Type Default value Description
text.guides.enable boolean true If true, guides are displayed and used for convert and reflow operations. The default line spacing is 10 mm and can be tuned by choosing the .text class font-size and line-height values.
text.eraser.erase-precisely boolean false If false, the eraser removes any character it touches, else it only erases ink portions within its trajectory.
text.smartGuide boolean true Enable the smart guide
text.smartGuideFadeOut.enable boolean false Enable/Disable the smart guide fade out animation
text.smartGuideFadeOut.duration number 10000 Time in milliseconds to hide the smart guide
text.mimeTypes array of strings ['text/plain', 'application/vnd.myscript.jiix'] Exported mimeTypes. 'application/vnd.myscript.jiix' is mandatory when Smart Guide is enable.
text.margin.bottom number 10 Margin from the bottom of the part to the bottom of the text bounding box (used for reflow).
text.margin.left number 15 Margin from the left of the part to the left of the text bounding box (used for reflow).
text.margin.right number 15 Margin from the right of the part to the right of the text bounding box (used for reflow).
text.margin.top number 10 Margin from the top of the part to the top of the text bounding box (used for reflow).
text.configuration.customResources array of strings [] Name of the custom resources uploaded in the developer space to use. See Custom recognition reference documentation
text.configuration.customLexicon array of strings [] List of custom words to be added to the recognition capabilities. See more about the lexicon.
text.configuration.addLKText boolean true Choice to add to the configured custom resources, words in the lexicon of the current language. Note that, if set to false, only one word will be recognized from the inks you send.

### Math

Key Type Default value Description
math.eraser.erase-precisely boolean false If false, the eraser removes any symbol it touches, else it only erases ink portions within its trajectory.
math.mimeTypes array of string ['application/x-latex', 'application/mathml+xml'] Exported mimeTypes. application/x-latex' is mandatory when export zone is active.
math.margin.bottom number 10 Margin from the bottom of the part to the top of the math expression bounding box (used for conversion operations)
math.margin.left number 15 Margin from the left of the part to the left of the math expression bounding box (used for conversion operations)
math.margin.right number 15 Margin from the right of the part to the right of the math expression bounding box (used for conversion operations)
math.margin.top number 10 Margin from the top of the part to the top of the math expression bounding box (used for conversion operations)
math.solver.angle-unit string deg Unit of the angle computation in the solver: It must be either deg (degrees) or rad (radians)
math.solver.decimal-separator string . The decimal separator symbol (usually . or ,).
math.solver.enable boolean true If true, displays solver result upon conversion.
math.solver.fractional-part-digits number 3 The number of decimals to display in solver computation result.
math.solver.rounding-mode string half up Rounding method used display solver results: It must be either half up or truncate.
math.solver.fraction-mode string decimal The way solver results shall be displayed: decimal (e.g. “1.5”), rational (e.g. “3/2”) or mixed (e.g. “1½”).
math.solver.options string algebraic Use numeric to let the solver potentially modify the structure of the expression to obtain something computable. Use algebraic to preserve the structure of the input in any case.
math.customGrammarId string undefined Name of the custom grammar uploaded in the developer space to use. See Custom recognition reference documentation.
math.customGrammarContent string undefined Custom math grammar text. See reference documentation to know how to build your custom grammar.