web-apps/apps/common/mobile/lib/store/encoding.js
2021-07-20 18:09:39 +03:00

71 lines
1.9 KiB
JavaScript

import {action, observable, makeObservable} from 'mobx';
export class storeEncoding {
constructor() {
makeObservable(this, {
type: observable,
mode: observable,
setMode: action,
advOptions: observable,
formatOptions: observable,
pages: observable,
pagesName: observable,
initOptions: action,
valueEncoding: observable,
nameEncoding: observable,
initPages: action,
changeEncoding: action,
valueDelimeter: observable,
nameDelimeter: observable,
changeDelimeter: action,
namesDelimeter: observable,
valuesDelimeter: observable,
initNamesDelimeter: action
});
}
type;
mode = 1;
pages = [];
pagesName = [];
advOptions;
formatOptions;
valueEncoding;
nameEncoding;
namesDelimeter = [];
valuesDelimeter = [4, 2, 3, 1, 5];
nameDelimeter;
valueDelimeter;
initOptions ({type, advOptions, formatOptions}) {
this.type = type;
this.advOptions = advOptions;
this.formatOptions = formatOptions;
}
initPages() {
for (let page of this.advOptions.asc_getCodePages()) {
this.pages.push(page.asc_getCodePage());
this.pagesName.push(page.asc_getCodePageName());
}
}
initNamesDelimeter(names) {
this.namesDelimeter = names;
}
setMode(value) {
this.mode = value;
}
changeEncoding(value) {
this.nameEncoding = this.pagesName[this.pages.indexOf(value)];
this.valueEncoding = value;
}
changeDelimeter(value) {
this.nameDelimeter = this.namesDelimeter[this.valuesDelimeter.indexOf(value)];
this.valueDelimeter = value;
}
}