@skele/core
Version:
Core package of the Skele framework. Element definitions, registrations and traversal.
1 lines • 2.93 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _zip=require("../zip");var _deprecated=_interopRequireDefault(require("../log/deprecated"));var _immutable=require("immutable");var R=_interopRequireWildcard(require("ramda"));var _data=require("../data");function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};if(desc.get||desc.set){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}}newObj.default=obj;return newObj;}}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}var childPositions=R.curry(function(defaultChildPositions,el){var fromEl=(0,_data.childPositions)(el);return!fromEl.isEmpty()?fromEl:(0,_data.asList)(defaultChildPositions);});var isBranch=R.curry(function(defaultChildPositions,element){if((0,_data.isOfKind)('@@skele/child-collection',element)){var children=element.get('children');return children&&children.count()>0;}var positions=childPositions(defaultChildPositions,element);return positions.some(function(pos){return element.get(pos);});});var getChildren=R.curry(function(defaultChildPositions,element){if((0,_data.isOfKind)('@@skele/child-collection',element)){return element.get('children').toArray();}var positions=childPositions(defaultChildPositions,element);var children=positions.reduce(function(children,p){return element.get(p)?children.push(makeChildCollection(p,element.get(p))):children;},(0,_immutable.List)()).toArray();return children;});var makeChildCollection=function makeChildCollection(p,children){return(0,_immutable.Map)({kind:'@@skele/child-collection',propertyName:p,isSingle:!_immutable.Iterable.isIndexed(children),children:(0,_data.asList)(children)});};var makeNode=R.curry(function(defaultChildPositions,element,children){if((0,_data.isOfKind)('@@skele/child-collection',element)){return element.set('children',(0,_immutable.List)(children));}return children.reduce(function(el,childColl){return el.set(childColl.get('propertyName'),singleChild(childColl)?childColl.getIn(['children',0]):childColl.get('children'));},element);});var singleChild=function singleChild(childColl){return childColl.get('isSingle')&&childColl.get('children').count()===1;};function elementZipper(config){var defaultChildPositions=config.defaultChildPositions,makeZipperOverride=config.makeZipperOverride;var dcp=(0,_data.asList)(defaultChildPositions);var makeZipperFn=makeZipperOverride||_zip.makeZipper;var ElementZipperType=makeZipperFn(isBranch(dcp),getChildren(dcp),makeNode(dcp));return ElementZipperType.from.bind(ElementZipperType);}var _default=(0,_deprecated.default)('elementZipper is deprecated, use `skeleZip` instead',elementZipper);exports.default=_default;