wonder.js
Version:
71 lines (62 loc) • 3.1 kB
JavaScript
;
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var BufferService$Wonderjs = require("../../../primitive/buffer/BufferService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var BufferSettingService$Wonderjs = require("../../../record/main/setting/BufferSettingService.js");
var DirtyTransformService$Wonderjs = require("../../../record/main/transform/DirtyTransformService.js");
var IndexComponentService$Wonderjs = require("../../../primitive/component/IndexComponentService.js");
var RecordTransformMainService$Wonderjs = require("./RecordTransformMainService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
function _setDefaultChildren(index, childMap) {
return MutableSparseMapService$WonderCommonlib.set(index, ArrayService$WonderCommonlib.createEmpty(/* () */0), childMap);
}
var _isNotNeedInitData = MutableSparseMapService$WonderCommonlib.has;
function _initDataWhenCreate(index, transformRecord) {
var childMap = transformRecord[/* childMap */16];
var match = MutableSparseMapService$WonderCommonlib.has(index, childMap);
if (match) {
return transformRecord;
} else {
var newrecord = Caml_array.caml_array_dup(transformRecord);
newrecord[/* childMap */16] = _setDefaultChildren(index, childMap);
return newrecord;
}
}
function createWithoutMarkNotDirtyWithRecord(settingRecord, transformRecord) {
var index = transformRecord[/* index */0];
var disposedIndexArray = transformRecord[/* disposedIndexArray */21];
var match = IndexComponentService$Wonderjs.generateIndex(index, disposedIndexArray);
var index$1 = match[0];
transformRecord[/* index */0] = match[1];
var transformRecord$1 = _initDataWhenCreate(index$1, transformRecord);
transformRecord$1[/* disposedIndexArray */21] = match[2];
return BufferService$Wonderjs.checkNotExceedMaxCount(BufferSettingService$Wonderjs.getTransformCount(settingRecord), /* tuple */[
transformRecord$1,
index$1
]);
}
function createWithoutMarkNotDirty(state) {
var match = createWithoutMarkNotDirtyWithRecord(state[/* settingRecord */0], RecordTransformMainService$Wonderjs.getRecord(state));
state[/* transformRecord */11] = match[0];
return /* tuple */[
state,
match[1]
];
}
function create(state) {
var match = createWithoutMarkNotDirty(state);
var index = match[1];
var state$1 = match[0];
state$1[/* transformRecord */11] = DirtyTransformService$Wonderjs.mark(index, true, RecordTransformMainService$Wonderjs.getRecord(state$1));
return /* tuple */[
state$1,
index
];
}
exports._setDefaultChildren = _setDefaultChildren;
exports._isNotNeedInitData = _isNotNeedInitData;
exports._initDataWhenCreate = _initDataWhenCreate;
exports.createWithoutMarkNotDirtyWithRecord = createWithoutMarkNotDirtyWithRecord;
exports.createWithoutMarkNotDirty = createWithoutMarkNotDirty;
exports.create = create;
/* BufferService-Wonderjs Not a pure module */