2
0
mirror of https://github.com/esiur/iui.git synced 2026-04-04 15:08:21 +00:00
Files
iui/src/Data/Form.js
2021-12-18 16:25:51 +03:00

67 lines
1.4 KiB
JavaScript

import IUIElement from "../Core/IUIElement.js";
import { IUI } from "../Core/IUI.js";
import Modifiable from "./Modifiable.js";
export default IUI.module(class Form extends IUIElement {
constructor() {
super();
}
static _copy(val){
if (typeof val === 'object' && val !== null)
{
let rt = {};
for(var i in val)
if (val[i] instanceof Array)
// copy array
rt[i] = [...val[i]];
else
rt[i] = val[i];
return rt;
}
else
return val;
}
async create() {
}
async setData(value) {
this.original = value;
super.setData(new Modifiable(this.original, true));
}
async reset() {
//super.setData({ ...this.original });
super.setData(new Modifiable(this.original));//Form._copy(this.original));
return this;
}
get diff() {
return this._data._diff;
if (this.original == null)
return this._data;
var rt = {};
for (var i in this._data)
if (this._data[i] != this.original[i])
{
if (this._data[i] instanceof Array && Form._areEqual(this._data[i], this.original[i]))
continue;
else
rt[i] = this._data[i];
}
return rt;
}
});