UNPKG

@typecad/typecad

Version:

πŸ€–programmatically πŸ’₯create πŸ›°οΈhardware

1 lines β€’ 19.6 kB
function a30_0xbb83(_0x413008,_0xbb83a3){const _0x3f6560=a30_0x4130();return a30_0xbb83=function(_0x379f14,_0xeff5b6){_0x379f14=_0x379f14-0x0;let _0x33443e=_0x3f6560[_0x379f14];return _0x33443e;},a30_0xbb83(_0x413008,_0xbb83a3);}var __classPrivateFieldGet=this&&this['__classPrivateFieldGet']||function(_0x5707d2,_0x26ceab,_0x4469bc,_0x380d38){if(_0x4469bc==='a'&&!_0x380d38)throw new TypeError(_0x66f2c0(0x2e,0x4f));if(typeof _0x26ceab==='function'?_0x5707d2!==_0x26ceab||!_0x380d38:!_0x26ceab[_0x66f2c0(0x6b,0x50)](_0x5707d2))throw new TypeError('Cannot\x20read\x20private\x20member\x20from\x20an\x20object\x20whose\x20class\x20did\x20not\x20declare\x20it');function _0x66f2c0(_0x288688,_0x2c2afa){return a30_0xbb83(_0x2c2afa-0x4f,_0x288688);}return _0x4469bc==='m'?_0x380d38:_0x4469bc==='a'?_0x380d38['call'](_0x5707d2):_0x380d38?_0x380d38['value']:_0x26ceab['get'](_0x5707d2);},_Schematic_options,_Schematic_groupedComponents;import{Pin}from'./pin';import a30_0xdb2241 from'node:fs';import a30_0x211782 from'handlebars';import a30_0x105d67 from'chalk';function a30_0x5abb58(_0x18db5b,_0x5e3afc){return a30_0xbb83(_0x18db5b-0x3e,_0x5e3afc);}import{erc}from'./erc';import{randomUUID}from'node:crypto';let pendingTypecadSummary;function a30_0x4130(){const _0x24eba1=['Private\x20accessor\x20was\x20defined\x20without\x20a\x20getter','has','once','beforeExit','projectTree','bold','└──\x20πŸ“\x20Output\x0a','stdout','write','\x20\x20\x20\x20└──\x20','(comp\x20\x0a\x20\x20\x20\x20\x20\x20(ref\x20\x22{{reference}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20(value\x20\x22{{value}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20(footprint\x20\x22{{footprint}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20(fields\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20footprint}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22Footprint\x22)\x20\x22{{footprint}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20datasheet}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22Datasheet\x22)\x22{{datasheet}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20description}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22Description\x22)\x22{{description}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20voltage}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22Voltage\x22)\x22{{voltage}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20wattage}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22Wattage\x22)\x22{{wattage}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{#if\x20mpn}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(field\x20(name\x20\x22MPN\x22)\x22{{mpn}}\x22)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{{/if}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20)','keys','freeze','option','_storeNetParams','nodes','map','bom','reference','value','datasheet','wattage','join','cyan','net','Reference','Sheetname','add','footprint','voltage','description','Project','get','push','number','gray','unnamed','yellow','italic','getGroups','forEach','no_connect','_chained_name','net_prefix','code_counter','startsWith','name','Nodes','_buildNetDefinition','buildProjectTree','compile','./build/','.net','writeFileSync','πŸ‘Ί\x20Error:','warn','🚨\x20','🎯\x20','πŸ’Ž\x20','uuid','\x20╦\x20','whiteBright','└──\x20πŸ“‚\x20Groups','length','displayGroupHierarchy','split'];a30_0x4130=function(){return _0x24eba1;};return a30_0x4130();}function setPendingTypecadOutputSummary(_0x1b8de9,_0x2bb219,_0x8c2b27){if(!pendingTypecadSummary)pendingTypecadSummary={'sheetName':_0x1b8de9,'netPath':_0x2bb219,'projectTree':_0x8c2b27,'printed':![],'hookInstalled':![]};else{pendingTypecadSummary['sheetName']=_0x1b8de9,pendingTypecadSummary['netPath']=_0x2bb219;if(_0x8c2b27)pendingTypecadSummary['projectTree']=_0x8c2b27;}function _0x5a9189(_0x33d564,_0x2ed2e1){return a30_0xbb83(_0x33d564- -0x1df,_0x2ed2e1);}!pendingTypecadSummary['hookInstalled']&&(pendingTypecadSummary['hookInstalled']=!![],process[_0x5a9189(-0x1dd,-0x1fd)](_0x5a9189(-0x1dc,-0x1da),()=>{printTypecadOutputSummary();}));}export function printTypecadOutputSummary(_0x3d604a){if(!pendingTypecadSummary||pendingTypecadSummary['printed'])return![];pendingTypecadSummary[_0x5f42ce(-0x3a2,-0x3af)]&&process['stdout']['write'](pendingTypecadSummary['projectTree']);process['stdout']['write']('🏁\x20'+a30_0x105d67['whiteBright'][_0x5f42ce(-0x3a4,-0x3ae)]('type')+'CAD\x20finished\x0a'),process['stdout']['write'](_0x5f42ce(-0x3bb,-0x3ad)),process[_0x5f42ce(-0x3ad,-0x3ac)][_0x5f42ce(-0x394,-0x3ab)](_0x5f42ce(-0x394,-0x3aa)+a30_0x105d67['green'](pendingTypecadSummary['netPath'])+'\x0a');_0x3d604a&&process['stdout']['write']('\x20\x20\x20\x20└──\x20'+a30_0x105d67['green'](_0x3d604a)+'\x0a');pendingTypecadSummary['printed']=!![];function _0x5f42ce(_0x40bbb9,_0x29ab70){return a30_0xbb83(_0x29ab70- -0x3b3,_0x40bbb9);}return!![];}let schematic_template='(export\x20(version\x20\x22E\x22)\x0a\x20\x20(design\x0a\x20\x20\x20\x20(tool\x20\x22typeCAD\x200.0.30\x22))\x0a\x20\x20(components\x0a\x20\x20\x20\x20{{#each\x20components}}\x0a\x20\x20\x20\x20{{this}}\x0a\x20\x20\x20\x20{{/each}})\x0a\x20\x20(nets\x0a\x20\x20{{#each\x20nets}}\x0a\x20\x20\x20\x20{{this}}\x0a\x20\x20\x20\x20{{/each}}\x0a))\x0a',comp_template=a30_0x5abb58(0x48,0x2c),nets_template='{{#each\x20nets}}\x0a(net\x20(code\x20\x22{{code}}\x22)\x20(name\x20\x22{{name}}\x22)\x0a{{#each\x20nodes}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20(node\x20(ref\x20\x22{{this.reference}}\x22)\x20(pin\x20\x22{{this.number}}\x22)\x20(pintype\x20\x22{{this.type}}\x22))\x0a{{/each}}\x0a)\x0a{{/each}}';function deepFreeze(_0x4d6dbb){if(typeof _0x4d6dbb!=='object'||_0x4d6dbb===null)return _0x4d6dbb;function _0x5c6d97(_0x3fbff4,_0x38d31d){return a30_0xbb83(_0x3fbff4- -0x1a0,_0x38d31d);}return Object[_0x5c6d97(-0x195,-0x17d)](_0x4d6dbb)['forEach'](_0x406558=>{const _0x9c77d8=_0x4d6dbb[_0x406558];typeof _0x9c77d8==='object'&&_0x9c77d8!==null&&deepFreeze(_0x9c77d8);}),Object[_0x5c6d97(-0x194,-0x198)](_0x4d6dbb);}export class Schematic{get[a30_0x5abb58(0x4b,0x52)](){return __classPrivateFieldGet(this,_Schematic_options,'f');}[a30_0x5abb58(0x4c,0x48)](_0x1d28bc,_0xaab460,..._0xfe29cf){this['Nodes']['push']({'name':_0x1d28bc,'code':_0xaab460,'nodes':_0xfe29cf,'owner':null});}['_buildNetDefinition'](_0x2fa82e,_0x124971){function _0x42b47f(_0x15475f,_0xce7495){return a30_0xbb83(_0xce7495-0x4b,_0x15475f);}const _0xb5411a=this['Nodes']['find'](_0x6dce98=>_0x6dce98['name']===_0x2fa82e),_0x119df9=(_0xb5411a?.[_0x42b47f(0x73,0x5a)]??_0x124971)['filter'](_0x359ba3=>Boolean(_0x359ba3)),_0x3d7a32={'name':_0xb5411a?.['name']??_0x2fa82e,'code':_0xb5411a?.['code']??this['code_counter'],'pins':[..._0x119df9],'connections':_0x119df9[_0x42b47f(0x4e,0x5b)](_0x50a08a=>({'reference':_0x50a08a['reference'],'pin':_0x50a08a['number'],'type':_0x50a08a['type']||'unspecified'}))};return _0x3d7a32;}[a30_0x5abb58(0x4f,0x6e)](_0x2260c6){let _0x2192e8='';function _0x4565dd(_0x5cbb34,_0x341d5c){return a30_0xbb83(_0x341d5c-0x32c,_0x5cbb34);}let _0x312e32=_0x2260c6||'./build';_0x2192e8+=__classPrivateFieldGet(this,_Schematic_options,'f')['bom_fields']['join'](__classPrivateFieldGet(this,_Schematic_options,'f')['bom_separator'])+'\x0a';const _0x57748c=/^VIA\d+$/i;this['Components']['forEach'](_0x2b3d2e=>{function _0x2f8098(_0x21967d,_0x3d0045){return a30_0xbb83(_0x3d0045-0x29f,_0x21967d);}if(_0x2b3d2e['reference']&&_0x57748c['test'](_0x2b3d2e['reference']))return;const _0x5073eb=__classPrivateFieldGet(this,_Schematic_options,'f')['bom_fields'][_0x2f8098(0x2a7,0x2af)](_0x3dcf3c=>{function _0x1e4a9e(_0x309315,_0x33e19c){return a30_0xbb83(_0x309315-0xf8,_0x33e19c);}switch(_0x3dcf3c['toLowerCase']()){case _0x1e4a9e(0x10a,0xff):return _0x2b3d2e['reference'];case'value':return _0x2b3d2e[_0x1e4a9e(0x10b,0x117)];case _0x1e4a9e(0x10c,0x122):return _0x2b3d2e['datasheet'];case'footprint':return _0x2b3d2e['footprint'];case'mpn':return _0x2b3d2e['mpn'];case'description':return _0x2b3d2e['description'];case'voltage':return _0x2b3d2e['voltage'];case _0x1e4a9e(0x10d,0x115):return _0x2b3d2e['wattage'];default:return'';}});_0x2192e8+=_0x5073eb[_0x2f8098(0x2b3,0x2b5)](__classPrivateFieldGet(this,_Schematic_options,'f')['bom_separator'])+'\x0a';});try{a30_0xdb2241['writeFileSync'](_0x312e32+'/'+this['Sheetname']+'.csv',_0x2192e8),process['stdout']['write'](a30_0x105d67[_0x4565dd(0x347,0x343)][_0x4565dd(0x310,0x331)](_0x312e32+'/'+this['Sheetname']+'.csv')+'\x20BOM\x20written'+'\x0a');}catch(_0x597c3c){return console['error'](_0x597c3c),![];}}constructor(_0x1b6e89){this['Components']=[],this['Sheetname']='',this['uuid']=randomUUID(),this['sxexp_components']=[],this['sxexp_nets']=[],this['code_counter']=0x0,this['Nodes']=[],this['merged_nets']=[];function _0x56de0d(_0x21cac6,_0x11b980){return a30_0xbb83(_0x21cac6- -0x364,_0x11b980);}this['_chained_name']='',_Schematic_options['set'](this,{'net_prefix':_0x56de0d(-0x34c,-0x36b),'bom_fields':[_0x56de0d(-0x34b,-0x368),'Value','Datasheet','Footprint','MPN'],'bom_separator':','}),_Schematic_groupedComponents['set'](this,new Map()),this[_0x56de0d(-0x34a,-0x343)]=_0x1b6e89;}[a30_0x5abb58(0x59,0x52)](..._0x46666d){_0x46666d['forEach'](_0x50c4c6=>{if(_0x50c4c6['dnp']===!![])return;this['Components']['push'](_0x50c4c6);let _0x4db0a1=a30_0x211782['compile'](comp_template),_0x3f337e={'reference':_0x50c4c6['reference'],'value':_0x50c4c6['value'],'footprint':_0x50c4c6[_0x56b5bf(0x17,0x14)]};_0x50c4c6[_0x56b5bf(0x10,-0xf)]&&(_0x3f337e['wattage']=_0x50c4c6['wattage']);_0x50c4c6['voltage']&&(_0x3f337e[_0x56b5bf(0x18,0x33)]=_0x50c4c6['voltage']);_0x50c4c6[_0x56b5bf(0xf,-0x5)]&&(_0x3f337e[_0x56b5bf(0xf,0x17)]=_0x50c4c6['datasheet']);_0x50c4c6[_0x56b5bf(0x19,0x1d)]&&(_0x3f337e[_0x56b5bf(0x19,-0x7)]=_0x50c4c6['description']);_0x50c4c6['mpn']&&(_0x3f337e['mpn']=_0x50c4c6['mpn']);function _0x56b5bf(_0x44c17c,_0x5ed718){return a30_0xbb83(_0x44c17c- -0x5,_0x5ed718);}let _0x196321=_0x4db0a1(_0x3f337e);this['sxexp_components']['push'](_0x196321);const _0x36db63=_0x50c4c6['getGroups']();_0x36db63['length']>0x0?_0x36db63['forEach'](_0x4a1412=>{!__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')['has'](_0x4a1412)&&__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')['set'](_0x4a1412,[]),__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')['get'](_0x4a1412)?.['push'](_0x50c4c6);}):(!__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')[_0x56b5bf(-0x4,-0x5)](_0x56b5bf(0x1a,0x6))&&__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')['set']('Project',[]),__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')[_0x56b5bf(0x1b,0xb)]('Project')?.[_0x56b5bf(0x1c,0x25)](_0x50c4c6));if(_0x50c4c6['via']===!![]){let _0x4f1c09;const _0x47b855=_0x50c4c6['uuid'];for(const _0x39591a of this['Nodes']){if(_0x39591a['nodes']['some'](_0x426493=>_0x426493['uuid']===_0x47b855&&_0x426493[_0x56b5bf(0x1d,0x19)]==='1')){_0x4f1c09=_0x39591a['name'];break;}}const _0x559c17=_0x4f1c09?a30_0x105d67['yellowBright'](_0x4f1c09):a30_0x105d67[_0x56b5bf(0x1e,0x31)](_0x56b5bf(0x1f,0x1e)),_0x552f4c=_0x50c4c6['getGroups']()['length']>0x0?a30_0x105d67[_0x56b5bf(0x20,0x29)]('['+_0x50c4c6['getGroups']()['join'](',\x20')+']\x20'):'';}else{const _0x33ab48=_0x50c4c6['reference']&&_0x50c4c6['reference']['trim']()?a30_0x105d67['blue']['bold'](_0x50c4c6['reference'])+':\x20':a30_0x105d67['gray']('Component:\x20'),_0x2dbbde=_0x50c4c6['value']&&_0x50c4c6['value']['trim']()?a30_0x105d67['cyan']('('+_0x50c4c6['value']+')\x20'):'',_0x555e78=_0x50c4c6['description']&&_0x50c4c6[_0x56b5bf(0x19,-0x1)]['trim']()?a30_0x105d67[_0x56b5bf(0x21,0x35)](_0x50c4c6['description'])+'\x20':'',_0x118d59=_0x50c4c6[_0x56b5bf(0x22,0x1e)]()['length']>0x0?a30_0x105d67['yellow']('['+_0x50c4c6['getGroups']()['join'](',\x20')+']\x20'):'';}});}['dnc'](..._0x2fb4c5){function _0x35c022(_0x207931,_0x1ae817){return a30_0xbb83(_0x1ae817-0x4f,_0x207931);}_0x2fb4c5[_0x35c022(0x72,0x77)](_0x16ee35=>{function _0x595a0f(_0xf1e1a2,_0x53c0f3){return a30_0xbb83(_0x53c0f3-0x137,_0xf1e1a2);}_0x16ee35['type']=_0x595a0f(0x17e,0x160),this['net'](_0x16ee35);});}['named'](_0x2faebd){function _0x469f45(_0x17ebfb,_0x95847b){return a30_0xbb83(_0x17ebfb- -0x2fa,_0x95847b);}return this[_0x469f45(-0x2d0,-0x2ce)]=_0x2faebd,this;}['net'](..._0xbf98eb){this['code_counter']++;let _0x364393=this['_chained_name']?this['_chained_name']:''+__classPrivateFieldGet(this,_Schematic_options,'f')[_0x56550a(0x1d5,0x1ee)]+this[_0x56550a(0x1d1,0x1ef)];_0xbf98eb['forEach'](_0x45614e=>{!(_0x45614e instanceof Pin)&&this['error']('Invalid\x20object\x20passed\x20to\x20net().\x20Expected\x20Pin,\x20received\x20'+typeof _0x45614e),this['Nodes']['forEach']((_0x100103,_0x4ecfd8)=>{function _0x160a7c(_0x323259,_0x3f9332){return a30_0xbb83(_0x3f9332-0x1ee,_0x323259);}_0x100103[_0x160a7c(0x205,0x1fd)]['forEach'](_0x738db7=>{function _0x35b259(_0x3302d9,_0x8b1b15){return a30_0xbb83(_0x3302d9- -0x1d9,_0x8b1b15);}if(_0x738db7[_0x35b259(-0x1c7,-0x1b3)]===_0x45614e['reference']&&_0x738db7['number']===_0x45614e[_0x35b259(-0x1b7,-0x1cd)]){const _0x3ac100=!_0x364393[_0x35b259(-0x1ac,-0x1b5)]('net'),_0x449ec2=!_0x100103[_0x35b259(-0x1ab,-0x1aa)]['startsWith']('net');let _0x33ec5e,_0x4b76c5;if(_0x3ac100&&!_0x449ec2)_0x33ec5e=_0x364393,_0x4b76c5={'old_name':_0x100103['name'],'merged_to_number':this[_0x35b259(-0x1ad,-0x1c9)]},this[_0x35b259(-0x1aa,-0x19d)][_0x4ecfd8][_0x35b259(-0x1ab,-0x1c1)]=_0x33ec5e;else!_0x3ac100&&_0x449ec2?(_0x33ec5e=_0x100103['name'],_0x4b76c5={'old_name':_0x364393,'merged_to_number':this[_0x35b259(-0x1aa,-0x194)][_0x4ecfd8]['code']}):(_0x33ec5e=_0x100103[_0x35b259(-0x1ab,-0x191)],_0x4b76c5={'old_name':_0x364393,'merged_to_number':this['Nodes'][_0x4ecfd8]['code']});this['merged_nets'][_0x35b259(-0x1b8,-0x1d3)](_0x4b76c5),_0x364393=_0x33ec5e;}});});});function _0x56550a(_0x6dea88,_0x2d3a56){return a30_0xbb83(_0x2d3a56-0x1c3,_0x6dea88);}this['_storeNetParams'](_0x364393,this['code_counter'],..._0xbf98eb);let _0x197e1c={};this['Nodes']['forEach'](_0x2575b2=>{function _0x5f1e25(_0x5e39ff,_0x605dfa){return a30_0xbb83(_0x5e39ff-0x2de,_0x605dfa);}_0x197e1c[_0x2575b2[_0x5f1e25(0x30c,0x301)]]?_0x197e1c[_0x2575b2['name']]['nodes']['push'](..._0x2575b2['nodes']):_0x197e1c[_0x2575b2['name']]={..._0x2575b2,'nodes':[..._0x2575b2[_0x5f1e25(0x2ed,0x2ed)]]};}),Object['values'](_0x197e1c)['forEach'](_0x185ac6=>{function _0x4483f2(_0x1a8ac0,_0x1adfed){return a30_0xbb83(_0x1a8ac0- -0x18f,_0x1adfed);}_0x185ac6['nodes']=_0x185ac6['nodes']['filter']((_0x8a615c,_0x3437ca,_0x746fb9)=>_0x3437ca===_0x746fb9['findIndex'](_0x12fb9c=>_0x12fb9c&&_0x8a615c&&_0x12fb9c['reference']===_0x8a615c[_0x4483f2(-0x17d,-0x194)]&&_0x12fb9c['number']===_0x8a615c['number']));}),this['Nodes']=Object['values'](_0x197e1c);const _0x89c25b=this[_0x56550a(0x1e7,0x1f3)](_0x364393,_0xbf98eb);return this['_chained_name']='',_0x89c25b;}['make_sexp_net'](){let _0xcebff=a30_0x211782['compile'](nets_template),_0xa3cc68=_0xcebff({'nets':this['Nodes']});this['sxexp_nets']['push'](_0xa3cc68);}['create'](..._0x5a27ae){_0x5a27ae['forEach'](_0x40b12f=>{this['add'](_0x40b12f);});const _0x128971=this[_0x21ee05(0xd8,0xf0)]();this['make_sexp_net']();let _0x5a4923=a30_0x211782[_0x21ee05(0x10b,0xf1)](schematic_template,{'noEscape':!![]});function _0x21ee05(_0x2cedc5,_0x53d176){return a30_0xbb83(_0x53d176-0xbf,_0x2cedc5);}let _0x2584d0={'components':this['sxexp_components'],'nets':this['sxexp_nets']},_0x391d7d=_0x5a4923(_0x2584d0);try{const _0x98ead5=_0x21ee05(0xdb,0xf2)+this['Sheetname']+_0x21ee05(0xe5,0xf3);a30_0xdb2241[_0x21ee05(0x10a,0xf4)](_0x98ead5,_0x391d7d),setPendingTypecadOutputSummary(this['Sheetname'],_0x98ead5,_0x128971);}catch(_0x44418c){return console['error'](_0x44418c),process['exit'](0x1),![];}}['erc'](){erc(this);}['error'](_0x1f3886){process['stdout']['write'](a30_0x105d67['bgRed'](_0x5151a5(0x2f4,0x2fb))+a30_0x105d67['bold']('\x20'+_0x1f3886+'\x0a'));function _0x5151a5(_0x7deb94,_0x1d918e){return a30_0xbb83(_0x7deb94-0x2be,_0x1d918e);}process['exit'](0x1);}[a30_0x5abb58(0x75,0x5b)](_0x4308f5){process['stdout']['write'](a30_0x105d67['bgYellow']('WARN:')+a30_0x105d67['bold']('\x20'+_0x4308f5+'\x0a'));}['getComponentIcon'](_0xb2a591){if(_0xb2a591['via'])return'πŸ•³οΈ\x20';if(_0xb2a591['reference']?.['startsWith']('C'))return'πŸͺ«\x20';if(_0xb2a591['reference']?.['startsWith']('R'))return'πŸ’ˆ';if(_0xb2a591['reference']?.['startsWith']('L'))return'πŸŒ€';if(_0xb2a591['reference']?.['startsWith']('SW'))return'πŸ”³\x20';if(_0xb2a591['reference']?.['startsWith']('LED'))return _0x33ee30(0x137,0x117);function _0x33ee30(_0x52d78a,_0x4f56a7){return a30_0xbb83(_0x52d78a-0xff,_0x4f56a7);}if(_0xb2a591['reference']?.['startsWith']('D'))return'πŸ”Ί\x20';if(_0xb2a591[_0x33ee30(0x111,0x105)]?.['startsWith']('U'))return'μΉ©';if(_0xb2a591['reference']?.['startsWith']('F'))return'πŸ”—\x20';if(_0xb2a591['reference']?.['startsWith']('J'))return'πŸ”Œ\x20';if(_0xb2a591['reference']?.['startsWith']('TP'))return _0x33ee30(0x138,0x130);if(_0xb2a591['reference']?.['startsWith']('Y'))return _0x33ee30(0x139,0x12e);return'◼️\x20';}['formatComponentDisplay'](_0x7b55ff){const _0x2dae05=this['getComponentIcon'](_0x7b55ff);let _0x1eb2b2=_0x2dae05+'\x20'+_0x7b55ff['reference'];_0x7b55ff[_0x27b7e4(0x219,0x20c)]&&(_0x1eb2b2+=':\x20'+_0x7b55ff['value']);_0x7b55ff[_0x27b7e4(0x216,0x217)]&&(_0x1eb2b2+='\x20('+_0x7b55ff['description']+')');function _0x27b7e4(_0x492d87,_0x321dd0){return a30_0xbb83(_0x321dd0-0x1f9,_0x492d87);}if(_0x7b55ff['via']){const _0x6b381a=this['Nodes']['find'](_0x36a519=>_0x36a519['nodes']['some'](_0x14d115=>_0x14d115[_0x27b7e4(0x221,0x234)]===_0x7b55ff['uuid']))?.['name'];_0x6b381a&&(_0x1eb2b2+='\x20(Net:\x20\x27'+_0x6b381a+'\x27)');}return _0x1eb2b2;}['buildProjectTree'](){const _0x2d69b6=[];_0x2d69b6['push'](a30_0x105d67['green']['bold'](_0x3bc805(-0x148,-0x15c))+a30_0x105d67[_0x3bc805(-0x147,-0x160)]['bold']('type')+'CAD\x20Project:\x20'+a30_0x105d67[_0x3bc805(-0x147,-0x160)]['bold'](this['Sheetname']));function _0x3bc805(_0x4e46da,_0x1f81b2){return a30_0xbb83(_0x4e46da- -0x184,_0x1f81b2);}_0x2d69b6[_0x3bc805(-0x163,-0x16f)](_0x3bc805(-0x146,-0x12c));const _0x4b737b=Array['from'](__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')['keys']())['sort']();return _0x4b737b['forEach']((_0xa8fb08,_0x3746ad)=>{function _0x23e5fa(_0x517b,_0x455f47){return a30_0xbb83(_0x455f47- -0x22,_0x517b);}const _0x302c1d=__classPrivateFieldGet(this,_Schematic_groupedComponents,'f')[_0x23e5fa(0x1,-0x2)](_0xa8fb08)||[],_0xfa8b8e=_0x3746ad===_0x4b737b[_0x23e5fa(0x2c,0x1d)]-0x1,_0x599bde=_0xfa8b8e?'\x20\x20\x20\x20└──\x20':'\x20\x20\x20\x20β”œβ”€β”€\x20';_0x2d69b6['push'](_0x599bde+'πŸ“¦\x20'+_0xa8fb08),_0x302c1d['forEach']((_0x28288d,_0x134128)=>{const _0x1e3a54=_0x134128===_0x302c1d['length']-0x1,_0x3f7b31=_0xfa8b8e?'\x20\x20\x20\x20\x20\x20\x20\x20':'\x20\x20\x20\x20β”‚\x20\x20\x20',_0x1e5024=_0x1e3a54?'└──\x20':'β”œβ”€β”€\x20';_0x2d69b6['push'](''+_0x3f7b31+_0x1e5024+this['formatComponentDisplay'](_0x28288d));});}),_0x2d69b6['join']('\x0a')+'\x0a';}[a30_0x5abb58(0x7e,0x6d)](){function _0x40e805(_0x17e8fb,_0x27b49c){return a30_0xbb83(_0x27b49c-0x97,_0x17e8fb);}process[_0x40e805(0x82,0x9e)]['write'](this['buildProjectTree']()[_0x40e805(0xec,0xd8)]('\x0a')['slice'](0x1)['join']('\x0a'));}}_Schematic_options=new WeakMap(),_Schematic_groupedComponents=new WeakMap();