UNPKG

a-to-treejs

Version:

Convert array to tree fastly, and opposite.

2 lines (1 loc) 10.5 kB
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((r="undefined"!=typeof globalThis?globalThis:r||self).ATT={})}(this,(function(r){"use strict";function t(r,t){if(null==r)return{};var e,n,a=function(r,t){if(null==r)return{};var e,n,a={},o=Object.keys(r);for(n=0;o.length>n;n++)0>t.indexOf(e=o[n])&&(a[e]=r[e]);return a}(r,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(r);for(n=0;o.length>n;n++)0>t.indexOf(e=o[n])&&Object.prototype.propertyIsEnumerable.call(r,e)&&(a[e]=r[e])}return a}function e(r,t){return function(r){if(Array.isArray(r))return r}(r)||function(r,t){var e=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null==e)return;var n,a,o=[],i=!0,u=!1;try{for(e=e.call(r);!(i=(n=e.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(r){u=!0,a=r}finally{try{i||null==e.return||e.return()}finally{if(u)throw a}}return o}(r,t)||n(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(r,t){if(r){if("string"==typeof r)return a(r,t);var e=Object.prototype.toString.call(r).slice(8,-1);return"Object"===e&&r.constructor&&(e=r.constructor.name),"Map"===e||"Set"===e?Array.from(r):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?a(r,t):void 0}}function a(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=Array(t);t>e;e++)n[e]=r[e];return n}function o(r,t){var e="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!e){if(Array.isArray(r)||(e=n(r))||t&&r&&"number"==typeof r.length){e&&(r=e);var a=0,o=function(){};return{s:o,n:function(){return r.length>a?{done:!1,value:r[a++]}:{done:!0}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){e=e.call(r)},n:function(){var r=e.next();return u=r.done,r},e:function(r){c=!0,i=r},f:function(){try{u||null==e.return||e.return()}finally{if(c)throw i}}}}var i=Object.prototype.toString,u=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var t,e=typeof r;if("boolean"===e)return"boolean";if("string"===e)return"string";if("number"===e)return"number";if("symbol"===e)return"symbol";if("function"===e)return t=r,"GeneratorFunction"===c(t)?"generatorfunction":"function";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return"array";if(function(r){if(r.constructor&&"function"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return"buffer";if(function(r){try{if("number"==typeof r.length&&"function"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(r){return r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate}(r))return"date";if(function(r){return r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit}(r))return"error";if(function(r){return r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global}(r))return"regexp";switch(c(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(r){return"function"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next}(r))return"generator";switch(e=i.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return e.slice(8,-1).toLowerCase().replace(/\s/g,"")};function c(r){return"function"==typeof r.constructor?r.constructor.name:null}function s(r){if("object"!=typeof r||null===r)return!1;const t=Object.getPrototypeOf(r);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in r||Symbol.iterator in r)}function p(r){return null==r||""===r}function f(r,t){for(var e,n,a,o,i,u,c=[],s=new Map,f=t.id,l=void 0===f?"id":f,d=t.parent_id,y=void 0===d?"parent_id":d,v=t.children_prop,h=void 0===v?"children":v,g=t.parent_prop,b=t.container_prop,m=b?g?function(r){var t={};return t[g]=null,t[h]=[],t[b]=r,t}:function(r){var t={};return t[b]=r,t[h]=[],t}:g?function(r){var t=r;return t[h]=[],t[g]=null,t}:function(r){return r[h]=[],r},_=0;r.length>_;_++){if(e=m(r[_]),a=r[_][y],i=s.get(n=r[_][l]),u=s.get(a),o=!p(a),!u&&o){var j=m({});s.set(a,j),u=j}o&&g&&(e[g]=u);var w=i||e;if(i){var A=i[h];Object.assign(i,e),i[h]=A}else s.set(n,e);o?u[h].push(w):c.push(w)}return s.clear(),c}function l(r,t){for(var n,a,i,u,c,s,f=new Map,l=new Map,d=t.id,y=void 0===d?"id":d,v=t.parent_id,h=void 0===v?"parent_id":v,g=t.parent_prop,b=void 0===g?"parent":g,m=t.children_prop,_=t.container_prop,j=_?m?function(r){var t={};return t[b]=null,t[m]=[],t[_]=r,t}:function(r){var t={};return t[b]=null,t[_]=r,t}:m?function(r){return r[b]=null,r[m]=[],r}:function(r){return r[b]=null,r},w=0;r.length>w;w++){if(n=j(r[w]),a=r[w][y],s=!p(i=r[w][h]),l.set(a,!1),s&&l.set(i,!0),!(c=f.get(i)||null)&&s){var A=j({});f.set(i,A),c=A}if(n[b]=c,u=f.get(a)){var x=m?u[m]:null;Object.assign(u,n),x&&(u[m]=x),m&&c&&c[m].push(u)}else f.set(a,n),m&&c&&c[m].push(n)}var E,O=[],S=o(l.entries());try{for(S.s();!(E=S.n()).done;){var I=e(E.value,2),M=I[0];!I[1]&&M&&O.push(M)}}catch(r){S.e(r)}finally{S.f()}var T=O.map((function(r){return f.get(r)}));return f.clear(),T}var d=["strict"];function y(r){var t=[];s(r)||t.push("Expected 'adapter' as a plain object, instead of ".concat(u(r)," "));var e=r.root,n=r.id,a=r.parent_id,o=r.parent_prop,i=r.children_prop,c=r.container_prop;e&&"branch"!==e&&"leaf"!==e&&t.push("Expected 'adapter.root' must be 'branch' or 'leaf', instead of ".concat(e)),n&&a&&n===a&&t.push("The 'adapter.id' equals with 'adapter.parent_id'.");var p=u(n);n&&"string"!==p&&t.push("Expected 'adapter.id' as a not empty string, instead of ".concat(n,"."));var f=u(a);a&&"string"!==f&&t.push("Expected 'adapter.parent_id' as a not empty string, instead of ".concat(a,"."));var l=u(o);o&&"string"!==l&&t.push("Expected 'adapter.parent_prop' as a not empty string, instead of ".concat(o,"."));var d=u(i);i&&"string"!==d&&t.push("Expected 'adapter.children_prop' as a not empty string, instead of ".concat(i,"."));var y=u(c);return c&&"string"!==y&&t.push("Expected 'adapter.container_prop' as a not empty string, instead of ".concat(c,".")),t}function v(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="duplicated id",a="unknown parent_id",i="self.id equals oneself ancestor.id",u=new Map,c=new Map,s=new Map,f=t.id,l=void 0===f?"id":f,d=t.parent_id,y=void 0===d?"parent_id":d,v=new Map;function h(r,t){v.set(t,!0);var e=r[l];c.has(e)?c.get(e).errors.push(t):c.set(e,{node:r,errors:[t]})}v.set(n,!1),v.set(a,!1),v.set(i,!1);for(var g,b,m,_=0;r.length>_;_++)m=(g=r[_])[y],u.has(b=g[l])?h(g,n):(u.set(b,g),s.set(b,m));var j,w=o(s.entries());try{var A=function(){var r=e(j.value,2),t=r[0],n=r[1];if(!p(n)){u.has(n)||h(u.get(t),a),function r(e){p(e)||(t===e?h(u.get(t),i):r(s.get(e)))}(n)}};for(w.s();!(j=w.n()).done;)A()}catch(r){w.e(r)}finally{w.f()}var x,E=[],O=o(c.entries());try{for(O.s();!(x=O.n()).done;){var S=e(x.value,2),I=S[1];E.push(I)}}catch(r){O.e(r)}finally{O.f()}var M,T=[],k=o(v.entries());try{for(k.s();!(M=k.n()).done;){var P=e(M.value,2),U=P[0],C=P[1];C&&T.push(U)}}catch(r){k.e(r)}finally{k.f()}return u.clear(),c.clear(),s.clear(),v.clear(),{detail:E,errorKinds:T}}function h(r,t){var e=t.parent_prop,n=t.children_prop,a=void 0===n?"children":n,o=t.container_prop,i=[];return function r(t){for(var n,u,c,s=0;t.length>s;s++)n=t[s],u=o?n[o]:n,c=n[a]||[],o||(delete u[a],e&&delete u[e]),i.push(u),r(c)}(r),i}function g(r,t){var e=t.id,n=void 0===e?"id":e,a=t.parent_prop,o=void 0===a?"parent":a,i=t.children_prop,u=t.container_prop,c=[],s=new Map;function p(r){var t=u?r[u]:r,e=t[n];if(!s.has(e)){var a=r[o];u||(delete t[o],i&&delete t[i]),s.set(e,1),c.push(t),a&&p(a)}}for(var f=0;r.length>f;f++)p(r[f]);return s.clear(),c}var b=["root"];function m(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];s(r)||t.push("Expected 'adapter' as a plain object, instead of ".concat(u(r)," "));var e=r.id,n=r.root,a=void 0===n?"branch":n,o=r.children_prop,i=r.parent_prop,c=r.container_prop;a&&"branch"!==a&&"leaf"!==a&&t.push("Expected 'adapter.root' must be 'branch' or 'leaf', instead of ".concat(a));var p=u(e);e&&"string"===p||t.push("Expected 'adapter.id' as a not empty string, instead of ".concat(e,"."));var f=u(i);i&&"string"!==f&&t.push("Expected 'adapter.parent_prop' as a not empty string, instead of ".concat(i,"."));var l=u(o);o&&"string"!==l&&t.push("Expected 'adapter.children_prop' as a not empty string, instead of ".concat(o,"."));var d=u(c);return c&&"string"!==d&&t.push("Expected 'adapter.container_prop' as a not empty string, instead of ".concat(c,".")),t}var _=function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("array"!==u(r))return[];var n=m(e);if(n.length>0){var a="The 'adapter' is invalid, causes: \n ".concat(n.join("\n"));throw Error(a)}var o=e.root,i=void 0===o?"branch":o,c=t(e,b);return"branch"===i?h(r,c):g(r,c)},j=function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("array"!==u(r))return[];var n=y(e);if(n.length>0){var a="The 'adapter' is invalid, causes: \n ".concat(n.join("\n"));throw Error(a)}var o=e.strict,i=void 0!==o&&o,c=t(e,d);if(i){var s=v(r,{id:e.id,parent_id:e.parent_id}),p=s.detail,h=s.errorKinds;if(p.length>0)throw console.log("Inregular data causes: \n",p),Error("The data isn't regular, causes: "+h.join(", "))}var g=e.root,b=void 0===g?"branch":g;return"branch"===b?f(r,c):l(r,c)};r.default=j,r.treeToArray=_,Object.defineProperty(r,"__esModule",{value:!0})}));