100 lines
3 KiB
JavaScript
100 lines
3 KiB
JavaScript
import {action, observable, computed, makeObservable} from 'mobx';
|
|
|
|
export class storeFocusObjects {
|
|
constructor() {
|
|
makeObservable(this, {
|
|
_focusObjects: observable,
|
|
resetFocusObjects: action,
|
|
settings: computed,
|
|
slideObject: computed,
|
|
paragraphObject: computed,
|
|
paragraphLocked: computed,
|
|
shapeObject: computed,
|
|
imageObject: computed,
|
|
tableObject: computed,
|
|
isTableInStack: computed,
|
|
chartObject: computed,
|
|
linkObject: computed,
|
|
isEditLocked: computed
|
|
});
|
|
}
|
|
|
|
_focusObjects = [];
|
|
|
|
resetFocusObjects(objects) {
|
|
this._focusObjects = objects;
|
|
}
|
|
|
|
get settings() {
|
|
return !!this.intf ? this.intf.filterFocusObjects() : null;
|
|
}
|
|
|
|
get slideObject() {
|
|
return !!this.intf ? this.intf.getSlideObject() : null;
|
|
}
|
|
|
|
get paragraphObject() {
|
|
return !!this.intf ? this.intf.getParagraphObject() : null;
|
|
}
|
|
|
|
get paragraphLocked() {
|
|
let _paragraphLocked = false;
|
|
for (let object of this._focusObjects) {
|
|
if (Asc.c_oAscTypeSelectElement.Paragraph == object.get_ObjectType()) {
|
|
_paragraphLocked = object.get_ObjectValue().get_Locked();
|
|
}
|
|
}
|
|
return _paragraphLocked;
|
|
}
|
|
|
|
get shapeObject() {
|
|
return !!this.intf ? this.intf.getShapeObject() : null;
|
|
}
|
|
|
|
get imageObject() {
|
|
return !!this.intf ? this.intf.getImageObject() : null;
|
|
}
|
|
|
|
get tableObject() {
|
|
return !!this.intf ? this.intf.getTableObject() : null;
|
|
}
|
|
|
|
get isTableInStack() {
|
|
for (let object of this._focusObjects) {
|
|
if (object.get_ObjectType() == Asc.c_oAscTypeSelectElement.Table) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
get chartObject() {
|
|
return !!this.intf ? this.intf.getChartObject() : null;
|
|
}
|
|
|
|
get linkObject() {
|
|
return !!this.intf ? this.intf.getLinkObject() : null;
|
|
}
|
|
|
|
get isEditLocked() {
|
|
if (this._focusObjects.length > 0) {
|
|
let slide_deleted = false,
|
|
slide_lock = false,
|
|
no_object = true,
|
|
objectLocked = false;
|
|
this._focusObjects.forEach((object) => {
|
|
const type = object.get_ObjectType();
|
|
const objectValue = object.get_ObjectValue();
|
|
if (type === Asc.c_oAscTypeSelectElement.Slide) {
|
|
slide_deleted = objectValue.get_LockDelete();
|
|
slide_lock = objectValue.get_LockLayout() || objectValue.get_LockBackground() || objectValue.get_LockTransition() || objectValue.get_LockTiming();
|
|
} else if (objectValue && typeof objectValue.get_Locked === 'function') {
|
|
no_object = false;
|
|
objectLocked = objectLocked || objectValue.get_Locked();
|
|
}
|
|
});
|
|
|
|
return (slide_deleted || (objectLocked || no_object) && slide_lock);
|
|
}
|
|
}
|
|
} |