UNPKG

wonder.js

Version:
53 lines (48 loc) 3.25 kB
'use strict'; var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Log$WonderLog = require("wonder-log/lib/js/src/Log.js"); var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js"); var ArrayService$Wonderjs = require("../../../atom/ArrayService.js"); var StateDataMain$Wonderjs = require("../data/StateDataMain.js"); var IsDebugMainService$Wonderjs = require("../state/IsDebugMainService.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var HierachyTransformService$Wonderjs = require("../../../record/main/transform/HierachyTransformService.js"); var RecordTransformMainService$Wonderjs = require("./RecordTransformMainService.js"); function _changeChildOrder(sourceTransfrom, targetTransform, children, action) { return ArrayService$WonderCommonlib.reduceOneParam((function (newChildren, child) { if (child === targetTransform) { if (action) { return ArrayService$Wonderjs.push(sourceTransfrom, ArrayService$Wonderjs.push(targetTransform, newChildren)); } else { return ArrayService$Wonderjs.push(targetTransform, ArrayService$Wonderjs.push(sourceTransfrom, newChildren)); } } else if (child === sourceTransfrom) { return newChildren; } else { return ArrayService$Wonderjs.push(child, newChildren); } }), /* array */[], children); } function changeChildOrder(sourceTransfrom, targetTransform, targetParentTransform, action, state) { Contract$WonderLog.requireCheck((function (param) { return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("parent should be the parent of source and target", "not"), (function (param) { var record = RecordTransformMainService$Wonderjs.getRecord(state); var match = HierachyTransformService$Wonderjs.getParent(sourceTransfrom, record); var match$1 = HierachyTransformService$Wonderjs.getParent(targetTransform, record); if (match !== undefined && match$1 !== undefined) { var targetParent = match$1; Contract$WonderLog.Operators[/* = */0](match, targetParent); return Contract$WonderLog.Operators[/* = */0](targetParentTransform, targetParent); } else { return Contract$WonderLog.assertFail(/* () */0); } })); }), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData)); var record = RecordTransformMainService$Wonderjs.getRecord(state); var newrecord = Caml_array.caml_array_dup(state); newrecord[/* transformRecord */11] = HierachyTransformService$Wonderjs.setChildren(record, targetParentTransform, _changeChildOrder(sourceTransfrom, targetTransform, HierachyTransformService$Wonderjs.unsafeGetChildren(targetParentTransform, record), action)); return newrecord; } exports._changeChildOrder = _changeChildOrder; exports.changeChildOrder = changeChildOrder; /* Log-WonderLog Not a pure module */