Blocks have access to the public methods provided by CodeX Editor API Module. Plugin and Tune Developers can use Editor API as they want.
Common API interface.
export interface IAPI {
blocks: IBlocksAPI;
caret: ICaretAPI;
sanitizer: ISanitizerAPI;
toolbar: IToolbarAPI;
}Methods that working with Blocks
swap(fromIndex, toIndex) - swaps two Blocks by their positions
delete(blockIndex?: Number) - deletes Block with passed index
getCurrentBlockIndex() - current Block index
getBlockByIndex(index: Number) - returns Block with passed index
getBlocksCount() - returns Blocks count
clean(taintString, config) - method uses HTMLJanitor to clean taint string.
CodeX Editor provides basic config without attributes, but you can inherit by passing your own config.
Usage:
let taintString = '<div><p style="font-size: 5em;"><b></b>BlockWithText<a onclick="void(0)"></div>'
let customConfig = {
b: true,
p: {
style: true,
},
}
this.api.sanitizer.clean(taintString, customConfig);Methods that working with Toolbar
open() - Opens toolbar
close() - Closes toolbar, toolbox and blockSettings if they are opened
Methods that allows to subscribe on CodeX Editor events
on(eventName: string, callback: Function) - subscribe callback on event
off(eventName: string, callback: Function) - unsubscribe callback from event
emit(eventName: string, data: object) - fires all subscribed callbacks with passed data
Methods that allows to work with DOM listener. Useful when you forgot to remove listener. Module collects all listeners and destroys automatically
on(element: HTMLElement, eventType: string, handler: Function, useCapture?: boolean) - add event listener to HTML element
off(element: HTMLElement, eventType: string, handler: Function) - remove event handler from HTML element