in src/canvastools/ts/CanvasTools/Selection/AreaSelector.ts [216:260]
public setSelectionMode(settings: ISelectorSettings | SelectionMode) {
let selectionSettings: ISelectorSettings;
if (settings === null || settings === undefined) {
selectionSettings = {
mode: SelectionMode.NONE,
};
} else if ((settings as ISelectorSettings).mode !== undefined) {
selectionSettings = settings as ISelectorSettings;
} else {
selectionSettings = { mode: settings as SelectionMode };
}
if (this.selectorSettings === undefined || this.selectorSettings.mode !== selectionSettings.mode) {
this.disable();
this.selectorSettings = selectionSettings;
if (this.selectorSettings.mode === SelectionMode.NONE) {
this.selector = null;
return;
} else if (this.selectorSettings.mode === SelectionMode.COPYRECT) {
this.selector = this.rectCopySelector;
const template = this.selectorSettings.template;
if (template !== undefined) {
this.rectCopySelector.setTemplate(template);
} else {
this.rectCopySelector.setTemplate(AreaSelector.DefaultTemplateSize);
}
} else if (this.selectorSettings.mode === SelectionMode.RECT) {
this.selector = this.rectSelector;
} else if (this.selectorSettings.mode === SelectionMode.POINT) {
this.selector = this.pointSelector;
} else if (this.selectorSettings.mode === SelectionMode.POLYLINE) {
this.selector = this.polylineSelector;
} else if (this.selectorSettings.mode === SelectionMode.POLYGON) {
this.selector = this.polygonSelector;
}
// restore enabled status
this.enable();
if (this.isVisible) {
this.show();
} else {
this.hide();
}
}
}