123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Interactive BOM for KiCAD</title>
- <style type="text/css">
- :root {
- --pcb-edge-color: black;
- --pad-color: #878787;
- --pad-hole-color: #CCCCCC;
- --pad-color-highlight: #D04040;
- --pad-color-highlight-both: #D0D040;
- --pad-color-highlight-marked: #44a344;
- --pin1-outline-color: #ffb629;
- --pin1-outline-color-highlight: #ffb629;
- --pin1-outline-color-highlight-both: #fcbb39;
- --pin1-outline-color-highlight-marked: #fdbe41;
- --silkscreen-edge-color: #aa4;
- --silkscreen-polygon-color: #4aa;
- --silkscreen-text-color: #4aa;
- --fabrication-edge-color: #907651;
- --fabrication-polygon-color: #907651;
- --fabrication-text-color: #a27c24;
- --track-color: #def5f1;
- --track-color-highlight: #D04040;
- --zone-color: #def5f1;
- --zone-color-highlight: #d0404080;
- }
- html,
- body {
- margin: 0px;
- height: 100%;
- font-family: Verdana, sans-serif;
- }
- .dark.topmostdiv {
- --pcb-edge-color: #eee;
- --pad-color: #808080;
- --pin1-outline-color: #ffa800;
- --pin1-outline-color-highlight: #ccff00;
- --track-color: #42524f;
- --zone-color: #42524f;
- background-color: #252c30;
- color: #eee;
- }
- button {
- background-color: #eee;
- border: 1px solid #888;
- color: black;
- height: 44px;
- width: 44px;
- text-align: center;
- text-decoration: none;
- display: inline-block;
- font-size: 14px;
- font-weight: bolder;
- }
- .dark button {
- /* This will be inverted */
- background-color: #c3b7b5;
- }
- button.depressed {
- background-color: #0a0;
- color: white;
- }
- .dark button.depressed {
- /* This will be inverted */
- background-color: #b3b;
- }
- button:focus {
- outline: 0;
- }
- button#tb-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
- }
- button#lr-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
- }
- button#bom-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
- }
- button#bom-grouped-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
- }
- button#bom-ungrouped-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
- }
- button#bom-netlist-btn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
- }
- button#copy {
- background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
- background-position: 6px 6px;
- background-repeat: no-repeat;
- background-size: 26px 26px;
- border-radius: 6px;
- height: 40px;
- width: 40px;
- margin: 10px 5px;
- }
- button#copy:active {
- box-shadow: inset 0px 0px 5px #6c6c6c;
- }
- textarea.clipboard-temp {
- position: fixed;
- top: 0;
- left: 0;
- width: 2em;
- height: 2em;
- padding: 0;
- border: None;
- outline: None;
- box-shadow: None;
- background: transparent;
- }
- .left-most-button {
- border-right: 0;
- border-top-left-radius: 6px;
- border-bottom-left-radius: 6px;
- }
- .middle-button {
- border-right: 0;
- }
- .right-most-button {
- border-top-right-radius: 6px;
- border-bottom-right-radius: 6px;
- }
- .button-container {
- font-size: 0;
- margin: 0.4rem 0.4rem 0.4rem 0;
- }
- .dark .button-container {
- filter: invert(1);
- }
- .button-container button {
- background-size: 32px 32px;
- background-position: 5px 5px;
- background-repeat: no-repeat;
- }
- @media print {
- .hideonprint {
- display: none;
- }
- }
- canvas {
- cursor: crosshair;
- }
- canvas:active {
- cursor: grabbing;
- }
- .fileinfo {
- width: 100%;
- max-width: 1000px;
- border: none;
- padding: 3px;
- }
- .fileinfo .title {
- font-size: 20pt;
- font-weight: bold;
- }
- .fileinfo td {
- overflow: hidden;
- white-space: nowrap;
- max-width: 1px;
- width: 50%;
- text-overflow: ellipsis;
- }
- .bom {
- border-collapse: collapse;
- font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
- font-size: 10pt;
- table-layout: fixed;
- width: 100%;
- margin-top: 1px;
- position: relative;
- }
- .bom th,
- .bom td {
- border: 1px solid black;
- padding: 5px;
- word-wrap: break-word;
- text-align: center;
- position: relative;
- }
- .dark .bom th,
- .dark .bom td {
- border: 1px solid #777;
- }
- .bom th {
- background-color: #CCCCCC;
- background-clip: padding-box;
- }
- .dark .bom th {
- background-color: #3b4749;
- }
- .bom tr.highlighted:nth-child(n) {
- background-color: #cfc;
- }
- .dark .bom tr.highlighted:nth-child(n) {
- background-color: #226022;
- }
- .bom tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- .dark .bom tr:nth-child(even) {
- background-color: #313b40;
- }
- .bom tr.checked {
- color: #1cb53d;
- }
- .dark .bom tr.checked {
- color: #2cce54;
- }
- .bom tr {
- transition: background-color 0.2s;
- }
- .bom .numCol {
- width: 30px;
- }
- .bom .value {
- width: 15%;
- }
- .bom .quantity {
- width: 65px;
- }
- .bom th .sortmark {
- position: absolute;
- right: 1px;
- top: 1px;
- margin-top: -5px;
- border-width: 5px;
- border-style: solid;
- border-color: transparent transparent #221 transparent;
- transform-origin: 50% 85%;
- transition: opacity 0.2s, transform 0.4s;
- }
- .dark .bom th .sortmark {
- filter: invert(1);
- }
- .bom th .sortmark.none {
- opacity: 0;
- }
- .bom th .sortmark.desc {
- transform: rotate(180deg);
- }
- .bom th:hover .sortmark.none {
- opacity: 0.5;
- }
- .bom .bom-checkbox {
- width: 30px;
- position: relative;
- user-select: none;
- -moz-user-select: none;
- }
- .bom .bom-checkbox:before {
- content: "";
- position: absolute;
- border-width: 15px;
- border-style: solid;
- border-color: #51829f transparent transparent transparent;
- visibility: hidden;
- top: -15px;
- }
- .bom .bom-checkbox:after {
- content: "Double click to set/unset all";
- position: absolute;
- color: white;
- top: -35px;
- left: -26px;
- background: #51829f;
- padding: 5px 15px;
- border-radius: 8px;
- white-space: nowrap;
- visibility: hidden;
- }
- .bom .bom-checkbox:hover:before,
- .bom .bom-checkbox:hover:after {
- visibility: visible;
- transition: visibility 0.2s linear 1s;
- }
- .split {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- overflow-y: auto;
- overflow-x: hidden;
- background-color: inherit;
- }
- .split.split-horizontal,
- .gutter.gutter-horizontal {
- height: 100%;
- float: left;
- }
- .gutter {
- background-color: #ddd;
- background-repeat: no-repeat;
- background-position: 50%;
- transition: background-color 0.3s;
- }
- .dark .gutter {
- background-color: #777;
- }
- .gutter.gutter-horizontal {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
- cursor: ew-resize;
- width: 5px;
- }
- .gutter.gutter-vertical {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
- cursor: ns-resize;
- height: 5px;
- }
- .searchbox {
- float: left;
- height: 40px;
- margin: 10px 5px;
- padding: 12px 32px;
- font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
- font-size: 18px;
- box-sizing: border-box;
- border: 1px solid #888;
- border-radius: 6px;
- outline: none;
- background-color: #eee;
- transition: background-color 0.2s, border 0.2s;
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
- background-position: 10px 10px;
- background-repeat: no-repeat;
- }
- .dark .searchbox {
- background-color: #111;
- color: #eee;
- }
- .searchbox::placeholder {
- color: #ccc;
- }
- .dark .searchbox::placeholder {
- color: #666;
- }
- .filter {
- width: calc(60% - 64px);
- }
- .reflookup {
- width: calc(40% - 10px);
- }
- input[type=text]:focus {
- background-color: white;
- border: 1px solid #333;
- }
- .dark input[type=text]:focus {
- background-color: #333;
- border: 1px solid #ccc;
- }
- mark.highlight {
- background-color: #5050ff;
- color: #fff;
- padding: 2px;
- border-radius: 6px;
- }
- .dark mark.highlight {
- background-color: #76a6da;
- color: #111;
- }
- .menubtn {
- background-color: white;
- border: none;
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
- background-position: center;
- background-repeat: no-repeat;
- }
- .statsbtn {
- background-color: white;
- border: none;
- background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
- background-position: center;
- background-repeat: no-repeat;
- }
- .iobtn {
- background-color: white;
- border: none;
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
- background-position: center;
- background-repeat: no-repeat;
- }
- .visbtn {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
- background-position: center;
- background-repeat: no-repeat;
- padding: 15px;
- }
- #vismenu-content {
- left: 0px;
- font-family: Verdana, sans-serif;
- }
- .dark .statsbtn,
- .dark .savebtn,
- .dark .menubtn,
- .dark .iobtn,
- .dark .visbtn {
- filter: invert(1);
- }
- .flexbox {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- }
- .savebtn {
- background-color: #d6d6d6;
- width: auto;
- height: 30px;
- flex-grow: 1;
- margin: 5px;
- border-radius: 4px;
- }
- .savebtn:active {
- background-color: #0a0;
- color: white;
- }
- .dark .savebtn:active {
- /* This will be inverted */
- background-color: #b3b;
- }
- .stats {
- border-collapse: collapse;
- font-size: 12pt;
- table-layout: fixed;
- width: 100%;
- min-width: 450px;
- }
- .dark .stats td {
- border: 1px solid #bbb;
- }
- .stats td {
- border: 1px solid black;
- padding: 5px;
- word-wrap: break-word;
- text-align: center;
- position: relative;
- }
- #checkbox-stats div {
- position: absolute;
- left: 0;
- top: 0;
- height: 100%;
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- #checkbox-stats .bar {
- background-color: rgba(28, 251, 0, 0.6);
- }
- .menu {
- position: relative;
- display: inline-block;
- margin: 0.4rem 0.4rem 0.4rem 0;
- }
- .menu-content {
- font-size: 12pt !important;
- text-align: left !important;
- font-weight: normal !important;
- display: none;
- position: absolute;
- background-color: white;
- right: 0;
- min-width: 300px;
- box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
- z-index: 100;
- padding: 8px;
- }
- .dark .menu-content {
- background-color: #111;
- }
- .menu:hover .menu-content {
- display: block;
- }
- .menu:hover .menubtn,
- .menu:hover .iobtn,
- .menu:hover .statsbtn {
- background-color: #eee;
- }
- .menu-label {
- display: inline-block;
- padding: 8px;
- border: 1px solid #ccc;
- border-top: 0;
- width: calc(100% - 18px);
- }
- .menu-label-top {
- border-top: 1px solid #ccc;
- }
- .menu-textbox {
- float: left;
- height: 24px;
- margin: 10px 5px;
- padding: 5px 5px;
- font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
- font-size: 14px;
- box-sizing: border-box;
- border: 1px solid #888;
- border-radius: 4px;
- outline: none;
- background-color: #eee;
- transition: background-color 0.2s, border 0.2s;
- width: calc(100% - 10px);
- }
- .menu-textbox.invalid,
- .dark .menu-textbox.invalid {
- color: red;
- }
- .dark .menu-textbox {
- background-color: #222;
- color: #eee;
- }
- .radio-container {
- margin: 4px;
- }
- .topmostdiv {
- display: flex;
- flex-direction: column;
- width: 100%;
- background-color: white;
- transition: background-color 0.3s;
- min-height: 100%;
- }
- #top {
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-end;
- align-items: center;
- }
- #topdivider {
- border-bottom: 2px solid black;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .dark #topdivider {
- border-bottom: 2px solid #ccc;
- }
- #topdivider>div {
- position: relative;
- }
- #toptoggle {
- cursor: pointer;
- user-select: none;
- position: absolute;
- padding: 0.1rem 0.3rem;
- top: -0.4rem;
- left: -1rem;
- font-size: 1.4rem;
- line-height: 60%;
- border: 1px solid black;
- border-radius: 1rem;
- background-color: #fff;
- z-index: 100;
- }
- .flipped {
- transform: rotate(0.5turn);
- }
- .dark #toptoggle {
- border: 1px solid #fff;
- background-color: #222;
- }
- #fileinfodiv {
- flex: 20rem 1 0;
- overflow: auto;
- }
- #bomcontrols {
- display: flex;
- flex-direction: row-reverse;
- }
- #bomcontrols>* {
- flex-shrink: 0;
- }
- #dbg {
- display: block;
- }
- ::-webkit-scrollbar {
- width: 8px;
- }
- ::-webkit-scrollbar-track {
- background: #aaa;
- }
- ::-webkit-scrollbar-thumb {
- background: #666;
- border-radius: 3px;
- }
- ::-webkit-scrollbar-thumb:hover {
- background: #555;
- }
- .slider {
- -webkit-appearance: none;
- width: 100%;
- margin: 3px 0;
- padding: 0;
- outline: none;
- opacity: 0.7;
- -webkit-transition: .2s;
- transition: opacity .2s;
- border-radius: 3px;
- }
- .slider:hover {
- opacity: 1;
- }
- .slider:focus {
- outline: none;
- }
- .slider::-webkit-slider-runnable-track {
- -webkit-appearance: none;
- width: 100%;
- height: 8px;
- background: #d3d3d3;
- border-radius: 3px;
- border: none;
- }
- .slider::-webkit-slider-thumb {
- -webkit-appearance: none;
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background: #0a0;
- cursor: pointer;
- margin-top: -4px;
- }
- .dark .slider::-webkit-slider-thumb {
- background: #3d3;
- }
- .slider::-moz-range-thumb {
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background: #0a0;
- cursor: pointer;
- }
- .slider::-moz-range-track {
- height: 8px;
- background: #d3d3d3;
- border-radius: 3px;
- }
- .dark .slider::-moz-range-thumb {
- background: #3d3;
- }
- .slider::-ms-track {
- width: 100%;
- height: 8px;
- border-width: 3px 0;
- background: transparent;
- border-color: transparent;
- color: transparent;
- transition: opacity .2s;
- }
- .slider::-ms-fill-lower {
- background: #d3d3d3;
- border: none;
- border-radius: 3px;
- }
- .slider::-ms-fill-upper {
- background: #d3d3d3;
- border: none;
- border-radius: 3px;
- }
- .slider::-ms-thumb {
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background: #0a0;
- cursor: pointer;
- margin: 0;
- }
- .shameless-plug {
- font-size: 0.8em;
- text-align: center;
- display: block;
- }
- a {
- color: #0278a4;
- }
- .dark a {
- color: #00b9fd;
- }
- #frontcanvas,
- #backcanvas {
- touch-action: none;
- }
- .placeholder {
- border: 1px dashed #9f9fda !important;
- background-color: #edf2f7 !important;
- }
- .dragging {
- z-index: 999;
- }
- .dark .dragging>table>tbody>tr {
- background-color: #252c30;
- }
- .dark .placeholder {
- filter: invert(1);
- }
- .column-spacer {
- top: 0;
- left: 0;
- width: calc(100% - 4px);
- position: absolute;
- cursor: pointer;
- user-select: none;
- height: 100%;
- }
- .column-width-handle {
- top: 0;
- right: 0;
- width: 4px;
- position: absolute;
- cursor: col-resize;
- user-select: none;
- height: 100%;
- }
- .column-width-handle:hover {
- background-color: #4f99bd;
- }
- .help-link {
- border: 1px solid #0278a4;
- padding-inline: 0.3rem;
- border-radius: 3px;
- cursor: pointer;
- }
- .dark .help-link {
- border: 1px solid #00b9fd;
- }
- .bom-color {
- width: 20%;
- }
- .color-column input {
- width: 1.6rem;
- height: 1rem;
- border: 1px solid black;
- cursor: pointer;
- padding: 0;
- }
- /* removes default styling from input color element */
- ::-webkit-color-swatch {
- border: none;
- }
- ::-webkit-color-swatch-wrapper {
- padding: 0;
- }
- ::-moz-color-swatch,
- ::-moz-focus-inner {
- border: none;
- }
- ::-moz-focus-inner {
- padding: 0;
- }
- /* #bomhead {
- position: sticky;
- top: 0px;
- z-index: 1;
- } */
- </style>
- <script type="text/javascript" >
- ///////////////////////////////////////////////
- /*
- Split.js - v1.3.5
- MIT License
- https://github.com/nathancahill/Split.js
- */
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- // Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
- // This work is free. You can redistribute it and/or modify it
- // under the terms of the WTFPL, Version 2
- // For more information see LICENSE.txt or http://www.wtfpl.net/
- //
- // For more information, the home page:
- // http://pieroxy.net/blog/pages/lz-string/testing.html
- //
- // LZ-based compression algorithm, version 1.4.4
- var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- /*!
- * PEP v0.4.3 | https://github.com/jquery/PEP
- * Copyright jQuery Foundation and other contributors | http://jquery.org/license
- */
- !function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
- for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
- var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
- var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
- b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
- b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
- for(var b=a;b.parentNode;)b=b.parentNode;
- return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
- return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
- //
- this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
- installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
- var b=x(a,this.findElements,this);
- return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
- var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
- isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
- var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
- 0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
- c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
- c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
- Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
- Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
- d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
- (0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
- c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
- var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
- shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
- b=!1;else if("XY"===c)
- b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
- b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
- vacuumTouches:function(a){var b=a.touches;
- if(R.size>=b.length){var c=[];R.forEach(function(a,d){
- if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
- if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
- d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
- b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
- dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
- if(this.isPrimaryTouch(c)){
- var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- var config = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": "none", "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- var pcbdata = JSON.parse(LZString.decompressFromBase64("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"))
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- /* Utility functions */
- var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
- pcbdata.metadata.revision + '__#';
- var storage;
- function initStorage(key) {
- try {
- window.localStorage.getItem("blank");
- storage = window.localStorage;
- } catch (e) {
- // localStorage not available
- }
- if (!storage) {
- try {
- window.sessionStorage.getItem("blank");
- storage = window.sessionStorage;
- } catch (e) {
- // sessionStorage also not available
- }
- }
- }
- function readStorage(key) {
- if (storage) {
- return storage.getItem(storagePrefix + key);
- } else {
- return null;
- }
- }
- function writeStorage(key, value) {
- if (storage) {
- storage.setItem(storagePrefix + key, value);
- }
- }
- function fancyDblClickHandler(el, onsingle, ondouble) {
- return function () {
- if (el.getAttribute("data-dblclick") == null) {
- el.setAttribute("data-dblclick", 1);
- setTimeout(function () {
- if (el.getAttribute("data-dblclick") == 1) {
- onsingle();
- }
- el.removeAttribute("data-dblclick");
- }, 200);
- } else {
- el.removeAttribute("data-dblclick");
- ondouble();
- }
- }
- }
- function smoothScrollToRow(rowid) {
- document.getElementById(rowid).scrollIntoView({
- behavior: "smooth",
- block: "center",
- inline: "nearest"
- });
- }
- function focusInputField(input) {
- input.scrollIntoView(false);
- input.focus();
- input.select();
- }
- function saveBomTable(output) {
- var text = '';
- for (var node of bomhead.childNodes[0].childNodes) {
- if (node.firstChild) {
- var name = node.firstChild.nodeValue ?? "";
- text += (output == 'csv' ? `"${name}"` : name);
- }
- if (node != bomhead.childNodes[0].lastChild) {
- text += (output == 'csv' ? ',' : '\t');
- }
- }
- text += '\n';
- for (var row of bombody.childNodes) {
- for (var cell of row.childNodes) {
- let val = '';
- for (var node of cell.childNodes) {
- if (node.nodeName == "INPUT") {
- if (node.checked) {
- val += '✓';
- }
- } else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
- val += node.firstChild.nodeValue;
- } else {
- val += node.nodeValue;
- }
- }
- if (output == 'csv') {
- val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
- if (isNumeric(val)) {
- val = +val; // use number
- } else {
- val = `"${val}"`; // enclosed within double-quote
- }
- }
- text += val;
- if (cell != row.lastChild) {
- text += (output == 'csv' ? ',' : '\t');
- }
- }
- text += '\n';
- }
- if (output != 'clipboard') {
- // To file: csv or txt
- var blob = new Blob([text], {
- type: `text/${output}`
- });
- saveFile(`${pcbdata.metadata.title}.${output}`, blob);
- } else {
- // To clipboard
- var textArea = document.createElement("textarea");
- textArea.classList.add('clipboard-temp');
- textArea.value = text;
- document.body.appendChild(textArea);
- textArea.focus();
- textArea.select();
- try {
- if (document.execCommand('copy')) {
- console.log('Bom copied to clipboard.');
- }
- } catch (err) {
- console.log('Can not copy to clipboard.');
- }
- document.body.removeChild(textArea);
- }
- }
- function isNumeric(str) {
- /* https://stackoverflow.com/a/175787 */
- return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
- }
- function removeGutterNode(node) {
- for (var i = 0; i < node.childNodes.length; i++) {
- if (node.childNodes[i].classList &&
- node.childNodes[i].classList.contains("gutter")) {
- node.removeChild(node.childNodes[i]);
- break;
- }
- }
- }
- function cleanGutters() {
- removeGutterNode(document.getElementById("bot"));
- removeGutterNode(document.getElementById("canvasdiv"));
- }
- var units = {
- prefixes: {
- giga: ["G", "g", "giga", "Giga", "GIGA"],
- mega: ["M", "mega", "Mega", "MEGA"],
- kilo: ["K", "k", "kilo", "Kilo", "KILO"],
- milli: ["m", "milli", "Milli", "MILLI"],
- micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
- nano: ["N", "n", "nano", "Nano", "NANO"],
- pico: ["P", "p", "pico", "Pico", "PICO"],
- },
- unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
- unitsLong: [
- "OHM", "Ohm", "ohm", "ohms",
- "FARAD", "Farad", "farad",
- "HENRY", "Henry", "henry"
- ],
- getMultiplier: function (s) {
- if (this.prefixes.giga.includes(s)) return 1e9;
- if (this.prefixes.mega.includes(s)) return 1e6;
- if (this.prefixes.kilo.includes(s)) return 1e3;
- if (this.prefixes.milli.includes(s)) return 1e-3;
- if (this.prefixes.micro.includes(s)) return 1e-6;
- if (this.prefixes.nano.includes(s)) return 1e-9;
- if (this.prefixes.pico.includes(s)) return 1e-12;
- return 1;
- },
- valueRegex: null,
- valueAltRegex: null,
- }
- function initUtils() {
- var allPrefixes = units.prefixes.giga
- .concat(units.prefixes.mega)
- .concat(units.prefixes.kilo)
- .concat(units.prefixes.milli)
- .concat(units.prefixes.micro)
- .concat(units.prefixes.nano)
- .concat(units.prefixes.pico);
- var allUnits = units.unitsShort.concat(units.unitsLong);
- units.valueRegex = new RegExp("^([0-9\.]+)" +
- "\\s*(" + allPrefixes.join("|") + ")?" +
- "(" + allUnits.join("|") + ")?" +
- "(\\b.*)?$", "");
- units.valueAltRegex = new RegExp("^([0-9]*)" +
- "(" + units.unitsShort.join("|") + ")?" +
- "([GgMmKkUuNnPp])?" +
- "([0-9]*)" +
- "(\\b.*)?$", "");
- if (config.fields.includes("Value")) {
- var index = config.fields.indexOf("Value");
- pcbdata.bom["parsedValues"] = {};
- var allList = getBomListByLayer('FB').flat();
- for (var id in pcbdata.bom.fields) {
- var ref_key = allList.find(item => item[1] == Number(id)) || [];
- pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index], ref_key[0] || '');
- }
- }
- }
- function parseValue(val, ref) {
- var inferUnit = (unit, ref) => {
- if (unit) {
- unit = unit.toLowerCase();
- if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
- unit = 'r';
- }
- return unit[0];
- }
- var resarr = /^([a-z]+)\d+$/i.exec(ref);
- switch (Array.isArray(resarr) && resarr[1].toLowerCase()) {
- case "c": return 'f';
- case "l": return 'h';
- case "r":
- case "rv": return 'r';
- }
- return null;
- };
- val = val.replace(/,/g, "");
- var match = units.valueRegex.exec(val);
- if (Array.isArray(match)) {
- var unit = inferUnit(match[3], ref);
- var val_i = parseFloat(match[1]);
- if (!unit) return null;
- if (match[2]) {
- val_i = val_i * units.getMultiplier(match[2]);
- }
- return {
- val: val_i,
- unit: unit,
- extra: match[4],
- }
- }
- match = units.valueAltRegex.exec(val);
- if (Array.isArray(match) && (match[1] || match[4])) {
- var unit = inferUnit(match[2], ref);
- var val_i = parseFloat(match[1] + "." + match[4]);
- if (!unit) return null;
- if (match[3]) {
- val_i = val_i * units.getMultiplier(match[3]);
- }
- return {
- val: val_i,
- unit: unit,
- extra: match[5],
- }
- }
- return null;
- }
- function valueCompare(a, b, stra, strb) {
- if (a === null && b === null) {
- // Failed to parse both values, compare them as strings.
- if (stra != strb) return stra > strb ? 1 : -1;
- else return 0;
- } else if (a === null) {
- return 1;
- } else if (b === null) {
- return -1;
- } else {
- if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
- else if (a.val != b.val) return a.val > b.val ? 1 : -1;
- else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
- else return 0;
- }
- }
- function validateSaveImgDimension(element) {
- var valid = false;
- var intValue = 0;
- if (/^[1-9]\d*$/.test(element.value)) {
- intValue = parseInt(element.value);
- if (intValue <= 16000) {
- valid = true;
- }
- }
- if (valid) {
- element.classList.remove("invalid");
- } else {
- element.classList.add("invalid");
- }
- return intValue;
- }
- function saveImage(layer) {
- var width = validateSaveImgDimension(document.getElementById("render-save-width"));
- var height = validateSaveImgDimension(document.getElementById("render-save-height"));
- var bgcolor = null;
- if (!document.getElementById("render-save-transparent").checked) {
- var style = getComputedStyle(topmostdiv);
- bgcolor = style.getPropertyValue("background-color");
- }
- if (!width || !height) return;
- // Prepare image
- var canvas = document.createElement("canvas");
- var layerdict = {
- transform: {
- x: 0,
- y: 0,
- s: 1,
- panx: 0,
- pany: 0,
- zoom: 1,
- },
- bg: canvas,
- fab: canvas,
- silk: canvas,
- highlight: canvas,
- layer: layer,
- }
- // Do the rendering
- recalcLayerScale(layerdict, width, height);
- prepareLayer(layerdict);
- clearCanvas(canvas, bgcolor);
- drawBackground(layerdict, false);
- drawHighlightsOnLayer(layerdict, false);
- // Save image
- var imgdata = canvas.toDataURL("image/png");
- var filename = pcbdata.metadata.title;
- if (pcbdata.metadata.revision) {
- filename += `.${pcbdata.metadata.revision}`;
- }
- filename += `.${layer}.png`;
- saveFile(filename, dataURLtoBlob(imgdata));
- }
- function saveSettings() {
- var data = {
- type: "InteractiveHtmlBom settings",
- version: 1,
- pcbmetadata: pcbdata.metadata,
- settings: settings,
- }
- var blob = new Blob([JSON.stringify(data, null, 4)], {
- type: "application/json"
- });
- saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
- }
- function loadSettings() {
- var input = document.createElement("input");
- input.type = "file";
- input.accept = ".settings.json";
- input.onchange = function (e) {
- var file = e.target.files[0];
- var reader = new FileReader();
- reader.onload = readerEvent => {
- var content = readerEvent.target.result;
- var newSettings;
- try {
- newSettings = JSON.parse(content);
- } catch (e) {
- alert("Selected file is not InteractiveHtmlBom settings file.");
- return;
- }
- if (newSettings.type != "InteractiveHtmlBom settings") {
- alert("Selected file is not InteractiveHtmlBom settings file.");
- return;
- }
- var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
- if (metadataMatches) {
- for (var k in pcbdata.metadata) {
- if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
- metadataMatches = false;
- }
- }
- }
- if (!metadataMatches) {
- var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
- var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
- if (!confirm(
- `Settins file metadata does not match current metadata.\n\n` +
- `Page metadata:\n${currentMetadata}\n\n` +
- `Settings file metadata:\n${fileMetadata}\n\n` +
- `Press OK if you would like to import settings anyway.`)) {
- return;
- }
- }
- overwriteSettings(newSettings.settings);
- }
- reader.readAsText(file, 'UTF-8');
- }
- input.click();
- }
- function resetSettings() {
- if (!confirm(
- `This will reset all checkbox states and other settings.\n\n` +
- `Press OK if you want to continue.`)) {
- return;
- }
- if (storage) {
- var keys = [];
- for (var i = 0; i < storage.length; i++) {
- var key = storage.key(i);
- if (key.startsWith(storagePrefix)) keys.push(key);
- }
- for (var key of keys) storage.removeItem(key);
- }
- location.reload();
- }
- function overwriteSettings(newSettings) {
- initDone = false;
- Object.assign(settings, newSettings);
- writeStorage("bomlayout", settings.bomlayout);
- writeStorage("bommode", settings.bommode);
- writeStorage("canvaslayout", settings.canvaslayout);
- writeStorage("bomCheckboxes", settings.checkboxes.join(","));
- document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
- for (var checkbox of settings.checkboxes) {
- writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
- }
- writeStorage("markWhenChecked", settings.markWhenChecked);
- padsVisible(settings.renderPads);
- document.getElementById("padsCheckbox").checked = settings.renderPads;
- fabricationVisible(settings.renderFabrication);
- document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
- silkscreenVisible(settings.renderSilkscreen);
- document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
- referencesVisible(settings.renderReferences);
- document.getElementById("referencesCheckbox").checked = settings.renderReferences;
- valuesVisible(settings.renderValues);
- document.getElementById("valuesCheckbox").checked = settings.renderValues;
- tracksVisible(settings.renderTracks);
- document.getElementById("tracksCheckbox").checked = settings.renderTracks;
- zonesVisible(settings.renderZones);
- document.getElementById("zonesCheckbox").checked = settings.renderZones;
- dnpOutline(settings.renderDnpOutline);
- document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
- setRedrawOnDrag(settings.redrawOnDrag);
- document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
- setHighlightRowOnClick(settings.highlightRowOnClick);
- document.getElementById("highlightRowOnClickCheckbox").checked = settings.highlightRowOnClick;
- setDarkMode(settings.darkMode);
- document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
- setHighlightPin1(settings.highlightpin1);
- document.forms.highlightpin1.highlightpin1.value = settings.highlightpin1;
- writeStorage("boardRotation", settings.boardRotation);
- document.getElementById("boardRotation").value = settings.boardRotation / 5;
- document.getElementById("rotationDegree").textContent = settings.boardRotation;
- setOffsetBackRotation(settings.offsetBackRotation);
- document.getElementById("offsetBackRotationCheckbox").checked = settings.offsetBackRotation;
- initDone = true;
- prepCheckboxes();
- changeBomLayout(settings.bomlayout);
- }
- function saveFile(filename, blob) {
- var link = document.createElement("a");
- var objurl = URL.createObjectURL(blob);
- link.download = filename;
- link.href = objurl;
- link.click();
- }
- function dataURLtoBlob(dataurl) {
- var arr = dataurl.split(','),
- mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]),
- n = bstr.length,
- u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- return new Blob([u8arr], {
- type: mime
- });
- }
- var settings = {
- canvaslayout: "FB",
- bomlayout: "left-right",
- bommode: "grouped",
- checkboxes: [],
- checkboxStoredRefs: {},
- darkMode: false,
- highlightpin1: "none",
- redrawOnDrag: true,
- boardRotation: 0,
- offsetBackRotation: false,
- renderPads: true,
- renderReferences: true,
- renderValues: true,
- renderSilkscreen: true,
- renderFabrication: true,
- renderDnpOutline: false,
- renderTracks: true,
- renderZones: true,
- columnOrder: [],
- hiddenColumns: [],
- netColors: {},
- }
- function initDefaults() {
- settings.bomlayout = readStorage("bomlayout");
- if (settings.bomlayout === null) {
- settings.bomlayout = config.bom_view;
- }
- if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
- settings.bomlayout = config.bom_view;
- }
- settings.bommode = readStorage("bommode");
- if (settings.bommode === null) {
- settings.bommode = "grouped";
- }
- if (settings.bommode == "netlist" && !pcbdata.nets) {
- settings.bommode = "grouped";
- }
- if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
- settings.bommode = "grouped";
- }
- settings.canvaslayout = readStorage("canvaslayout");
- if (settings.canvaslayout === null) {
- settings.canvaslayout = config.layer_view;
- }
- var bomCheckboxes = readStorage("bomCheckboxes");
- if (bomCheckboxes === null) {
- bomCheckboxes = config.checkboxes;
- }
- settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
- document.getElementById("bomCheckboxes").value = bomCheckboxes;
- var highlightpin1 = readStorage("highlightpin1") || config.highlight_pin1;
- if (highlightpin1 === "false") highlightpin1 = "none";
- if (highlightpin1 === "true") highlightpin1 = "all";
- setHighlightPin1(highlightpin1);
- document.forms.highlightpin1.highlightpin1.value = highlightpin1;
- settings.markWhenChecked = readStorage("markWhenChecked") || "";
- populateMarkWhenCheckedOptions();
- function initBooleanSetting(storageString, def, elementId, func) {
- var b = readStorage(storageString);
- if (b === null) {
- b = def;
- } else {
- b = (b == "true");
- }
- document.getElementById(elementId).checked = b;
- func(b);
- }
- initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
- initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
- initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
- initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
- initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
- if ("tracks" in pcbdata) {
- initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
- initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
- } else {
- document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
- tracksVisible(false);
- zonesVisible(false);
- }
- initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
- initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
- initBooleanSetting("highlightRowOnClick", false, "highlightRowOnClickCheckbox", setHighlightRowOnClick);
- initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
- var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
- var hcols = JSON.parse(readStorage("hiddenColumns"));
- if (hcols === null) {
- hcols = [];
- }
- settings.hiddenColumns = hcols.filter(e => fields.includes(e));
- var cord = JSON.parse(readStorage("columnOrder"));
- if (cord === null) {
- cord = fields;
- } else {
- cord = cord.filter(e => fields.includes(e));
- if (cord.length != fields.length)
- cord = fields;
- }
- settings.columnOrder = cord;
- settings.boardRotation = readStorage("boardRotation");
- if (settings.boardRotation === null) {
- settings.boardRotation = config.board_rotation * 5;
- } else {
- settings.boardRotation = parseInt(settings.boardRotation);
- }
- document.getElementById("boardRotation").value = settings.boardRotation / 5;
- document.getElementById("rotationDegree").textContent = settings.boardRotation;
- initBooleanSetting("offsetBackRotation", config.offset_back_rotation, "offsetBackRotationCheckbox", setOffsetBackRotation);
- settings.netColors = JSON.parse(readStorage("netColors")) || {};
- }
- // Helper classes for user js callbacks.
- const IBOM_EVENT_TYPES = {
- ALL: "all",
- HIGHLIGHT_EVENT: "highlightEvent",
- CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
- BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
- }
- const EventHandler = {
- callbacks: {},
- init: function () {
- for (eventType of Object.values(IBOM_EVENT_TYPES))
- this.callbacks[eventType] = [];
- },
- registerCallback: function (eventType, callback) {
- this.callbacks[eventType].push(callback);
- },
- emitEvent: function (eventType, eventArgs) {
- event = {
- eventType: eventType,
- args: eventArgs,
- }
- var callback;
- for (callback of this.callbacks[eventType])
- callback(event);
- for (callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
- callback(event);
- }
- }
- EventHandler.init();
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- /* PCB rendering code */
- var emptyContext2d = document.createElement("canvas").getContext("2d");
- function deg2rad(deg) {
- return deg * Math.PI / 180;
- }
- function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
- var point = [
- linepoint[0] * text.width + offsetx,
- linepoint[1] * text.height + offsety
- ];
- // This approximates pcbnew behavior with how text tilts depending on horizontal justification
- point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
- return point;
- }
- function drawText(ctx, text, color) {
- if ("ref" in text && !settings.renderReferences) return;
- if ("val" in text && !settings.renderValues) return;
- ctx.save();
- ctx.fillStyle = color;
- ctx.strokeStyle = color;
- ctx.lineCap = "round";
- ctx.lineJoin = "round";
- ctx.lineWidth = text.thickness;
- if ("svgpath" in text) {
- ctx.stroke(new Path2D(text.svgpath));
- ctx.restore();
- return;
- }
- if ("polygons" in text) {
- ctx.fill(getPolygonsPath(text));
- ctx.restore();
- return;
- }
- ctx.translate(...text.pos);
- ctx.translate(text.thickness * 0.5, 0);
- var angle = -text.angle;
- if (text.attr.includes("mirrored")) {
- ctx.scale(-1, 1);
- angle = -angle;
- }
- var tilt = 0;
- if (text.attr.includes("italic")) {
- tilt = 0.125;
- }
- var interline = text.height * 1.5 + text.thickness;
- var txt = text.text.split("\n");
- // KiCad ignores last empty line.
- if (txt[txt.length - 1] == '') txt.pop();
- ctx.rotate(deg2rad(angle));
- var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
- offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
- for (var i in txt) {
- var lineWidth = text.thickness + interline / 2 * tilt;
- for (var j = 0; j < txt[i].length; j++) {
- if (txt[i][j] == '\t') {
- var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
- lineWidth += fourSpaces - lineWidth % fourSpaces;
- } else {
- if (txt[i][j] == '~') {
- j++;
- if (j == txt[i].length)
- break;
- }
- lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
- }
- }
- var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
- var inOverbar = false;
- for (var j = 0; j < txt[i].length; j++) {
- if (config.kicad_text_formatting) {
- if (txt[i][j] == '\t') {
- var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
- offsetx += fourSpaces - offsetx % fourSpaces;
- continue;
- } else if (txt[i][j] == '~') {
- j++;
- if (j == txt[i].length)
- break;
- if (txt[i][j] != '~') {
- inOverbar = !inOverbar;
- }
- }
- }
- var glyph = pcbdata.font_data[txt[i][j]];
- if (inOverbar) {
- var overbarStart = [offsetx, -text.height * 1.4 + offsety];
- var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];
- if (!lastHadOverbar) {
- overbarStart[0] += text.height * 1.4 * tilt;
- lastHadOverbar = true;
- }
- ctx.beginPath();
- ctx.moveTo(...overbarStart);
- ctx.lineTo(...overbarEnd);
- ctx.stroke();
- } else {
- lastHadOverbar = false;
- }
- for (var line of glyph.l) {
- ctx.beginPath();
- ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
- for (var k = 1; k < line.length; k++) {
- ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
- }
- ctx.stroke();
- }
- offsetx += glyph.w * text.width;
- }
- offsety += interline;
- }
- ctx.restore();
- }
- function drawedge(ctx, scalefactor, edge, color) {
- ctx.strokeStyle = color;
- ctx.fillStyle = color;
- ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
- ctx.lineCap = "round";
- ctx.lineJoin = "round";
- if ("svgpath" in edge) {
- ctx.stroke(new Path2D(edge.svgpath));
- } else {
- ctx.beginPath();
- if (edge.type == "segment") {
- ctx.moveTo(...edge.start);
- ctx.lineTo(...edge.end);
- }
- if (edge.type == "rect") {
- ctx.moveTo(...edge.start);
- ctx.lineTo(edge.start[0], edge.end[1]);
- ctx.lineTo(...edge.end);
- ctx.lineTo(edge.end[0], edge.start[1]);
- ctx.lineTo(...edge.start);
- }
- if (edge.type == "arc") {
- ctx.arc(
- ...edge.start,
- edge.radius,
- deg2rad(edge.startangle),
- deg2rad(edge.endangle));
- }
- if (edge.type == "circle") {
- ctx.arc(
- ...edge.start,
- edge.radius,
- 0, 2 * Math.PI);
- ctx.closePath();
- }
- if (edge.type == "curve") {
- ctx.moveTo(...edge.start);
- ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
- }
- if("filled" in edge && edge.filled)
- ctx.fill();
- else
- ctx.stroke();
- }
- }
- function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
- // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
- var path = new Path2D();
- var width = size[0];
- var height = size[1];
- var x = width * -0.5;
- var y = height * -0.5;
- var chamfOffset = Math.min(width, height) * chamfratio;
- path.moveTo(x, 0);
- if (chamfpos & 4) {
- path.lineTo(x, y + height - chamfOffset);
- path.lineTo(x + chamfOffset, y + height);
- path.lineTo(0, y + height);
- } else {
- path.arcTo(x, y + height, x + width, y + height, radius);
- }
- if (chamfpos & 8) {
- path.lineTo(x + width - chamfOffset, y + height);
- path.lineTo(x + width, y + height - chamfOffset);
- path.lineTo(x + width, 0);
- } else {
- path.arcTo(x + width, y + height, x + width, y, radius);
- }
- if (chamfpos & 2) {
- path.lineTo(x + width, y + chamfOffset);
- path.lineTo(x + width - chamfOffset, y);
- path.lineTo(0, y);
- } else {
- path.arcTo(x + width, y, x, y, radius);
- }
- if (chamfpos & 1) {
- path.lineTo(x + chamfOffset, y);
- path.lineTo(x, y + chamfOffset);
- path.lineTo(x, 0);
- } else {
- path.arcTo(x, y, x, y + height, radius);
- }
- path.closePath();
- return path;
- }
- function getOblongPath(size) {
- return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
- }
- function getPolygonsPath(shape) {
- if (shape.path2d) {
- return shape.path2d;
- }
- if ("svgpath" in shape) {
- shape.path2d = new Path2D(shape.svgpath);
- } else {
- var path = new Path2D();
- for (var polygon of shape.polygons) {
- path.moveTo(...polygon[0]);
- for (var i = 1; i < polygon.length; i++) {
- path.lineTo(...polygon[i]);
- }
- path.closePath();
- }
- shape.path2d = path;
- }
- return shape.path2d;
- }
- function drawPolygonShape(ctx, scalefactor, shape, color) {
- ctx.save();
- if (!("svgpath" in shape)) {
- ctx.translate(...shape.pos);
- ctx.rotate(deg2rad(-shape.angle));
- }
- if("filled" in shape && !shape.filled) {
- ctx.strokeStyle = color;
- ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
- ctx.lineCap = "round";
- ctx.lineJoin = "round";
- ctx.stroke(getPolygonsPath(shape));
- } else {
- ctx.fillStyle = color;
- ctx.fill(getPolygonsPath(shape));
- }
- ctx.restore();
- }
- function drawDrawing(ctx, scalefactor, drawing, color) {
- if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
- drawedge(ctx, scalefactor, drawing, color);
- } else if (drawing.type == "polygon") {
- drawPolygonShape(ctx, scalefactor, drawing, color);
- } else {
- drawText(ctx, drawing, color);
- }
- }
- function getCirclePath(radius) {
- var path = new Path2D();
- path.arc(0, 0, radius, 0, 2 * Math.PI);
- path.closePath();
- return path;
- }
- function getCachedPadPath(pad) {
- if (!pad.path2d) {
- // if path2d is not set, build one and cache it on pad object
- if (pad.shape == "rect") {
- pad.path2d = new Path2D();
- pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
- } else if (pad.shape == "oval") {
- pad.path2d = getOblongPath(pad.size);
- } else if (pad.shape == "circle") {
- pad.path2d = getCirclePath(pad.size[0] / 2);
- } else if (pad.shape == "roundrect") {
- pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
- } else if (pad.shape == "chamfrect") {
- pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
- } else if (pad.shape == "custom") {
- pad.path2d = getPolygonsPath(pad);
- }
- }
- return pad.path2d;
- }
- function drawPad(ctx, pad, color, outline) {
- ctx.save();
- ctx.translate(...pad.pos);
- ctx.rotate(-deg2rad(pad.angle));
- if (pad.offset) {
- ctx.translate(...pad.offset);
- }
- ctx.fillStyle = color;
- ctx.strokeStyle = color;
- var path = getCachedPadPath(pad);
- if (outline) {
- ctx.stroke(path);
- } else {
- ctx.fill(path);
- }
- ctx.restore();
- }
- function drawPadHole(ctx, pad, padHoleColor) {
- if (pad.type != "th") return;
- ctx.save();
- ctx.translate(...pad.pos);
- ctx.rotate(-deg2rad(pad.angle));
- ctx.fillStyle = padHoleColor;
- if (pad.drillshape == "oblong") {
- ctx.fill(getOblongPath(pad.drillsize));
- } else if (pad.drillshape == "rect") {
- ctx.fill(getChamferedRectPath(pad.drillsize, 0, 0, 0));
- } else {
- ctx.fill(getCirclePath(pad.drillsize[0] / 2));
- }
- ctx.restore();
- }
- function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) {
- if (highlight) {
- // draw bounding box
- if (footprint.layer == layer) {
- ctx.save();
- ctx.globalAlpha = 0.2;
- ctx.translate(...footprint.bbox.pos);
- ctx.rotate(deg2rad(-footprint.bbox.angle));
- ctx.translate(...footprint.bbox.relpos);
- ctx.fillStyle = colors.pad;
- ctx.fillRect(0, 0, ...footprint.bbox.size);
- ctx.globalAlpha = 1;
- ctx.strokeStyle = colors.pad;
- ctx.lineWidth = 3 / scalefactor;
- ctx.strokeRect(0, 0, ...footprint.bbox.size);
- ctx.restore();
- }
- }
- // draw drawings
- for (var drawing of footprint.drawings) {
- if (drawing.layer == layer) {
- drawDrawing(ctx, scalefactor, drawing.drawing, colors.pad);
- }
- }
- ctx.lineWidth = 3 / scalefactor;
- // draw pads
- if (settings.renderPads) {
- for (var pad of footprint.pads) {
- if (pad.layers.includes(layer)) {
- drawPad(ctx, pad, colors.pad, outline);
- if (pad.pin1 &&
- (settings.highlightpin1 == "all" ||
- settings.highlightpin1 == "selected" && highlight)) {
- drawPad(ctx, pad, colors.outline, true);
- }
- }
- }
- for (var pad of footprint.pads) {
- drawPadHole(ctx, pad, colors.padHole);
- }
- }
- }
- function drawEdgeCuts(canvas, scalefactor) {
- var ctx = canvas.getContext("2d");
- var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
- for (var edge of pcbdata.edges) {
- drawDrawing(ctx, scalefactor, edge, edgecolor);
- }
- }
- function drawFootprints(canvas, layer, scalefactor, highlight) {
- var ctx = canvas.getContext("2d");
- ctx.lineWidth = 3 / scalefactor;
- var style = getComputedStyle(topmostdiv);
- var colors = {
- pad: style.getPropertyValue('--pad-color'),
- padHole: style.getPropertyValue('--pad-hole-color'),
- outline: style.getPropertyValue('--pin1-outline-color'),
- }
- for (var i = 0; i < pcbdata.footprints.length; i++) {
- var mod = pcbdata.footprints[i];
- var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
- var h = highlightedFootprints.includes(i);
- var d = markedFootprints.has(i);
- if (highlight) {
- if(h && d) {
- colors.pad = style.getPropertyValue('--pad-color-highlight-both');
- colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
- } else if (h) {
- colors.pad = style.getPropertyValue('--pad-color-highlight');
- colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
- } else if (d) {
- colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
- colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
- }
- }
- if( h || d || !highlight) {
- drawFootprint(ctx, layer, scalefactor, mod, colors, highlight, outline);
- }
- }
- }
- function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
- var ctx = canvas.getContext("2d");
- for (var d of pcbdata.drawings[layername][layer]) {
- if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
- drawedge(ctx, scalefactor, d, edgeColor);
- } else if (d.type == "polygon") {
- drawPolygonShape(ctx, scalefactor, d, polygonColor);
- } else {
- drawText(ctx, d, textColor);
- }
- }
- }
- function drawTracks(canvas, layer, defaultColor, highlight) {
- ctx = canvas.getContext("2d");
- ctx.lineCap = "round";
- var hasHole = (track) => (
- 'drillsize' in track &&
- track.start[0] == track.end[0] &&
- track.start[1] == track.end[1]);
- // First draw tracks and tented vias
- for (var track of pcbdata.tracks[layer]) {
- if (highlight && highlightedNet != track.net) continue;
- if (!hasHole(track)) {
- ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
- ctx.lineWidth = track.width;
- ctx.beginPath();
- if ('radius' in track) {
- ctx.arc(
- ...track.center,
- track.radius,
- deg2rad(track.startangle),
- deg2rad(track.endangle));
- } else {
- ctx.moveTo(...track.start);
- ctx.lineTo(...track.end);
- }
- ctx.stroke();
- }
- }
- // Second pass to draw untented vias
- var style = getComputedStyle(topmostdiv);
- var holeColor = style.getPropertyValue('--pad-hole-color')
- for (var track of pcbdata.tracks[layer]) {
- if (highlight && highlightedNet != track.net) continue;
- if (hasHole(track)) {
- ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
- ctx.lineWidth = track.width;
- ctx.beginPath();
- ctx.moveTo(...track.start);
- ctx.lineTo(...track.end);
- ctx.stroke();
- ctx.strokeStyle = holeColor;
- ctx.lineWidth = track.drillsize;
- ctx.lineTo(...track.end);
- ctx.stroke();
- }
- }
- }
- function drawZones(canvas, layer, defaultColor, highlight) {
- ctx = canvas.getContext("2d");
- ctx.lineJoin = "round";
- for (var zone of pcbdata.zones[layer]) {
- if (highlight && highlightedNet != zone.net) continue;
- ctx.strokeStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
- ctx.fillStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
- if (!zone.path2d) {
- zone.path2d = getPolygonsPath(zone);
- }
- ctx.fill(zone.path2d, zone.fillrule || "nonzero");
- if (zone.width > 0) {
- ctx.lineWidth = zone.width;
- ctx.stroke(zone.path2d);
- }
- }
- }
- function clearCanvas(canvas, color = null) {
- var ctx = canvas.getContext("2d");
- ctx.save();
- ctx.setTransform(1, 0, 0, 1, 0, 0);
- if (color) {
- ctx.fillStyle = color;
- ctx.fillRect(0, 0, canvas.width, canvas.height);
- } else {
- if (!window.matchMedia("print").matches)
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- }
- ctx.restore();
- }
- function drawNets(canvas, layer, highlight) {
- var style = getComputedStyle(topmostdiv);
- if (settings.renderZones) {
- var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
- drawZones(canvas, layer, zoneColor, highlight);
- }
- if (settings.renderTracks) {
- var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
- drawTracks(canvas, layer, trackColor, highlight);
- }
- if (highlight && settings.renderPads) {
- var padColor = style.getPropertyValue('--pad-color-highlight');
- var padHoleColor = style.getPropertyValue('--pad-hole-color');
- var ctx = canvas.getContext("2d");
- for (var footprint of pcbdata.footprints) {
- // draw pads
- var padDrawn = false;
- for (var pad of footprint.pads) {
- if (highlightedNet != pad.net) continue;
- if (pad.layers.includes(layer)) {
- drawPad(ctx, pad, padColor, false);
- padDrawn = true;
- }
- }
- if (padDrawn) {
- // redraw all pad holes because some pads may overlap
- for (var pad of footprint.pads) {
- drawPadHole(ctx, pad, padHoleColor);
- }
- }
- }
- }
- }
- function drawHighlightsOnLayer(canvasdict, clear = true) {
- if (clear) {
- clearCanvas(canvasdict.highlight);
- }
- if (markedFootprints.size > 0 || highlightedFootprints.length > 0) {
- drawFootprints(canvasdict.highlight, canvasdict.layer,
- canvasdict.transform.s * canvasdict.transform.zoom, true);
- }
- if (highlightedNet !== null) {
- drawNets(canvasdict.highlight, canvasdict.layer, true);
- }
- }
- function drawHighlights() {
- drawHighlightsOnLayer(allcanvas.front);
- drawHighlightsOnLayer(allcanvas.back);
- }
- function drawBackground(canvasdict, clear = true) {
- if (clear) {
- clearCanvas(canvasdict.bg);
- clearCanvas(canvasdict.fab);
- clearCanvas(canvasdict.silk);
- }
- drawNets(canvasdict.bg, canvasdict.layer, false);
- drawFootprints(canvasdict.bg, canvasdict.layer,
- canvasdict.transform.s * canvasdict.transform.zoom, false);
- drawEdgeCuts(canvasdict.bg, canvasdict.transform.s * canvasdict.transform.zoom);
- var style = getComputedStyle(topmostdiv);
- var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
- var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
- var textColor = style.getPropertyValue('--silkscreen-text-color');
- if (settings.renderSilkscreen) {
- drawBgLayer(
- "silkscreen", canvasdict.silk, canvasdict.layer,
- canvasdict.transform.s * canvasdict.transform.zoom,
- edgeColor, polygonColor, textColor);
- }
- edgeColor = style.getPropertyValue('--fabrication-edge-color');
- polygonColor = style.getPropertyValue('--fabrication-polygon-color');
- textColor = style.getPropertyValue('--fabrication-text-color');
- if (settings.renderFabrication) {
- drawBgLayer(
- "fabrication", canvasdict.fab, canvasdict.layer,
- canvasdict.transform.s * canvasdict.transform.zoom,
- edgeColor, polygonColor, textColor);
- }
- }
- function prepareCanvas(canvas, flip, transform) {
- var ctx = canvas.getContext("2d");
- ctx.setTransform(1, 0, 0, 1, 0, 0);
- ctx.scale(transform.zoom, transform.zoom);
- ctx.translate(transform.panx, transform.pany);
- if (flip) {
- ctx.scale(-1, 1);
- }
- ctx.translate(transform.x, transform.y);
- ctx.rotate(deg2rad(settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
- ctx.scale(transform.s, transform.s);
- }
- function prepareLayer(canvasdict) {
- var flip = (canvasdict.layer === "B");
- for (var c of ["bg", "fab", "silk", "highlight"]) {
- prepareCanvas(canvasdict[c], flip, canvasdict.transform);
- }
- }
- function rotateVector(v, angle) {
- angle = deg2rad(angle);
- return [
- v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
- v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
- ];
- }
- function applyRotation(bbox, flip) {
- var corners = [
- [bbox.minx, bbox.miny],
- [bbox.minx, bbox.maxy],
- [bbox.maxx, bbox.miny],
- [bbox.maxx, bbox.maxy],
- ];
- corners = corners.map((v) => rotateVector(v, settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
- return {
- minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
- miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
- maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
- maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
- }
- }
- function recalcLayerScale(layerdict, width, height) {
- var flip = (layerdict.layer === "B");
- var bbox = applyRotation(pcbdata.edges_bbox, flip);
- var scalefactor = 0.98 * Math.min(
- width / (bbox.maxx - bbox.minx),
- height / (bbox.maxy - bbox.miny)
- );
- if (scalefactor < 0.1) {
- scalefactor = 1;
- }
- layerdict.transform.s = scalefactor;
- if (flip) {
- layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
- } else {
- layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
- }
- layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
- for (var c of ["bg", "fab", "silk", "highlight"]) {
- canvas = layerdict[c];
- canvas.width = width;
- canvas.height = height;
- canvas.style.width = (width / devicePixelRatio) + "px";
- canvas.style.height = (height / devicePixelRatio) + "px";
- }
- }
- function redrawCanvas(layerdict) {
- prepareLayer(layerdict);
- drawBackground(layerdict);
- drawHighlightsOnLayer(layerdict);
- }
- function resizeCanvas(layerdict) {
- var canvasdivid = {
- "F": "frontcanvas",
- "B": "backcanvas"
- } [layerdict.layer];
- var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
- var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
- recalcLayerScale(layerdict, width, height);
- redrawCanvas(layerdict);
- }
- function resizeAll() {
- resizeCanvas(allcanvas.front);
- resizeCanvas(allcanvas.back);
- }
- function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
- var A = x - x1;
- var B = y - y1;
- var C = x2 - x1;
- var D = y2 - y1;
- var dot = A * C + B * D;
- var len_sq = C * C + D * D;
- var dx, dy;
- if (len_sq == 0) {
- // start and end of the segment coincide
- dx = x - x1;
- dy = y - y1;
- } else {
- var param = dot / len_sq;
- var xx, yy;
- if (param < 0) {
- xx = x1;
- yy = y1;
- } else if (param > 1) {
- xx = x2;
- yy = y2;
- } else {
- xx = x1 + param * C;
- yy = y1 + param * D;
- }
- dx = x - xx;
- dy = y - yy;
- }
- return dx * dx + dy * dy <= d * d;
- }
- function modulo(n, mod) {
- return ((n % mod) + mod) % mod;
- }
- function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
- var dx = x - xc;
- var dy = y - yc;
- var r_sq = dx * dx + dy * dy;
- var rmin = Math.max(0, radius - d);
- var rmax = radius + d;
- if (r_sq < rmin * rmin || r_sq > rmax * rmax)
- return false;
- var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
- var dx1 = xc + radius * Math.cos(angle1) - x;
- var dy1 = yc + radius * Math.sin(angle1) - y;
- if (dx1 * dx1 + dy1 * dy1 <= d * d)
- return true;
- var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
- var dx2 = xc + radius * Math.cos(angle2) - x;
- var dy2 = yc + radius * Math.sin(angle2) - y;
- if (dx2 * dx2 + dy2 * dy2 <= d * d)
- return true;
- var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
- if (angle1 > angle2)
- return (angle >= angle2 || angle <= angle1);
- else
- return (angle >= angle1 && angle <= angle2);
- }
- function pointWithinPad(x, y, pad) {
- var v = [x - pad.pos[0], y - pad.pos[1]];
- v = rotateVector(v, pad.angle);
- if (pad.offset) {
- v[0] -= pad.offset[0];
- v[1] -= pad.offset[1];
- }
- return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
- }
- function netHitScan(layer, x, y) {
- // Check track segments
- if (settings.renderTracks && pcbdata.tracks) {
- for (var track of pcbdata.tracks[layer]) {
- if ('radius' in track) {
- if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
- return track.net;
- }
- } else {
- if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
- return track.net;
- }
- }
- }
- }
- // Check pads
- if (settings.renderPads) {
- for (var footprint of pcbdata.footprints) {
- for (var pad of footprint.pads) {
- if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
- return pad.net;
- }
- }
- }
- }
- return null;
- }
- function pointWithinFootprintBbox(x, y, bbox) {
- var v = [x - bbox.pos[0], y - bbox.pos[1]];
- v = rotateVector(v, bbox.angle);
- return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
- bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
- }
- function bboxHitScan(layer, x, y) {
- var result = [];
- for (var i = 0; i < pcbdata.footprints.length; i++) {
- var footprint = pcbdata.footprints[i];
- if (footprint.layer == layer) {
- if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
- result.push(i);
- }
- }
- }
- return result;
- }
- function handlePointerDown(e, layerdict) {
- if (e.button != 0 && e.button != 1) {
- return;
- }
- e.preventDefault();
- e.stopPropagation();
- if (!e.hasOwnProperty("offsetX")) {
- // The polyfill doesn't set this properly
- e.offsetX = e.pageX - e.currentTarget.offsetLeft;
- e.offsetY = e.pageY - e.currentTarget.offsetTop;
- }
- layerdict.pointerStates[e.pointerId] = {
- distanceTravelled: 0,
- lastX: e.offsetX,
- lastY: e.offsetY,
- downTime: Date.now(),
- };
- }
- function handleMouseClick(e, layerdict) {
- if (!e.hasOwnProperty("offsetX")) {
- // The polyfill doesn't set this properly
- e.offsetX = e.pageX - e.currentTarget.offsetLeft;
- e.offsetY = e.pageY - e.currentTarget.offsetTop;
- }
- var x = e.offsetX;
- var y = e.offsetY;
- var t = layerdict.transform;
- var flip = layerdict.layer === "B";
- if (flip) {
- x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
- } else {
- x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
- }
- y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
- var v = rotateVector([x, y], -settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0));
- if ("nets" in pcbdata) {
- var net = netHitScan(layerdict.layer, ...v);
- if (net !== highlightedNet) {
- netClicked(net);
- }
- }
- if (highlightedNet === null) {
- var footprints = bboxHitScan(layerdict.layer, ...v);
- if (footprints.length > 0) {
- footprintsClicked(footprints);
- }
- }
- }
- function handlePointerLeave(e, layerdict) {
- e.preventDefault();
- e.stopPropagation();
- if (!settings.redrawOnDrag) {
- redrawCanvas(layerdict);
- }
- delete layerdict.pointerStates[e.pointerId];
- }
- function resetTransform(layerdict) {
- layerdict.transform.panx = 0;
- layerdict.transform.pany = 0;
- layerdict.transform.zoom = 1;
- redrawCanvas(layerdict);
- }
- function handlePointerUp(e, layerdict) {
- if (!e.hasOwnProperty("offsetX")) {
- // The polyfill doesn't set this properly
- e.offsetX = e.pageX - e.currentTarget.offsetLeft;
- e.offsetY = e.pageY - e.currentTarget.offsetTop;
- }
- e.preventDefault();
- e.stopPropagation();
- if (e.button == 2) {
- // Reset pan and zoom on right click.
- resetTransform(layerdict);
- layerdict.anotherPointerTapped = false;
- return;
- }
- // We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
- var ptr = layerdict.pointerStates[e.pointerId];
- ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
- if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
- if (Object.keys(layerdict.pointerStates).length == 1) {
- if (layerdict.anotherPointerTapped) {
- // This is the second pointer coming off of a two-finger tap
- resetTransform(layerdict);
- } else {
- // This is just a regular tap
- handleMouseClick(e, layerdict);
- }
- layerdict.anotherPointerTapped = false;
- } else {
- // This is the first finger coming off of what could become a two-finger tap
- layerdict.anotherPointerTapped = true;
- }
- } else {
- if (!settings.redrawOnDrag) {
- redrawCanvas(layerdict);
- }
- layerdict.anotherPointerTapped = false;
- }
- delete layerdict.pointerStates[e.pointerId];
- }
- function handlePointerMove(e, layerdict) {
- if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
- return;
- }
- e.preventDefault();
- e.stopPropagation();
- if (!e.hasOwnProperty("offsetX")) {
- // The polyfill doesn't set this properly
- e.offsetX = e.pageX - e.currentTarget.offsetLeft;
- e.offsetY = e.pageY - e.currentTarget.offsetTop;
- }
- var thisPtr = layerdict.pointerStates[e.pointerId];
- var dx = e.offsetX - thisPtr.lastX;
- var dy = e.offsetY - thisPtr.lastY;
- // If this number is low on pointer up, we count the action as a click
- thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
- if (Object.keys(layerdict.pointerStates).length == 1) {
- // This is a simple drag
- layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
- layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
- } else if (Object.keys(layerdict.pointerStates).length == 2) {
- var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
- var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
- var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
- var scaleFactor = newDist / oldDist;
- if (scaleFactor != NaN) {
- layerdict.transform.zoom *= scaleFactor;
- var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
- layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
- layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
- }
- }
- thisPtr.lastX = e.offsetX;
- thisPtr.lastY = e.offsetY;
- if (settings.redrawOnDrag) {
- redrawCanvas(layerdict);
- }
- }
- function handleMouseWheel(e, layerdict) {
- e.preventDefault();
- e.stopPropagation();
- var t = layerdict.transform;
- var wheeldelta = e.deltaY;
- if (e.deltaMode == 1) {
- // FF only, scroll by lines
- wheeldelta *= 30;
- } else if (e.deltaMode == 2) {
- wheeldelta *= 300;
- }
- var m = Math.pow(1.1, -wheeldelta / 40);
- // Limit amount of zoom per tick.
- if (m > 2) {
- m = 2;
- } else if (m < 0.5) {
- m = 0.5;
- }
- t.zoom *= m;
- var zoomd = (1 - m) / t.zoom;
- t.panx += devicePixelRatio * e.offsetX * zoomd;
- t.pany += devicePixelRatio * e.offsetY * zoomd;
- redrawCanvas(layerdict);
- }
- function addMouseHandlers(div, layerdict) {
- div.addEventListener("pointerdown", function(e) {
- handlePointerDown(e, layerdict);
- });
- div.addEventListener("pointermove", function(e) {
- handlePointerMove(e, layerdict);
- });
- div.addEventListener("pointerup", function(e) {
- handlePointerUp(e, layerdict);
- });
- var pointerleave = function(e) {
- handlePointerLeave(e, layerdict);
- }
- div.addEventListener("pointercancel", pointerleave);
- div.addEventListener("pointerleave", pointerleave);
- div.addEventListener("pointerout", pointerleave);
- div.onwheel = function(e) {
- handleMouseWheel(e, layerdict);
- }
- for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
- element.addEventListener("contextmenu", function(e) {
- e.preventDefault();
- }, false);
- }
- }
- function setRedrawOnDrag(value) {
- settings.redrawOnDrag = value;
- writeStorage("redrawOnDrag", value);
- }
- function setBoardRotation(value) {
- settings.boardRotation = value * 5;
- writeStorage("boardRotation", settings.boardRotation);
- document.getElementById("rotationDegree").textContent = settings.boardRotation;
- resizeAll();
- }
- function setOffsetBackRotation(value) {
- settings.offsetBackRotation = value;
- writeStorage("offsetBackRotation", value);
- resizeAll();
- }
- function initRender() {
- allcanvas = {
- front: {
- transform: {
- x: 0,
- y: 0,
- s: 1,
- panx: 0,
- pany: 0,
- zoom: 1,
- },
- pointerStates: {},
- anotherPointerTapped: false,
- bg: document.getElementById("F_bg"),
- fab: document.getElementById("F_fab"),
- silk: document.getElementById("F_slk"),
- highlight: document.getElementById("F_hl"),
- layer: "F",
- },
- back: {
- transform: {
- x: 0,
- y: 0,
- s: 1,
- panx: 0,
- pany: 0,
- zoom: 1,
- },
- pointerStates: {},
- anotherPointerTapped: false,
- bg: document.getElementById("B_bg"),
- fab: document.getElementById("B_fab"),
- silk: document.getElementById("B_slk"),
- highlight: document.getElementById("B_hl"),
- layer: "B",
- }
- };
- addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
- addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
- }
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- /*
- * Table reordering via Drag'n'Drop
- * Inspired by: https://htmldom.dev/drag-and-drop-table-column
- */
- function setBomHandlers() {
- const bom = document.getElementById('bomtable');
- let dragName;
- let placeHolderElements;
- let draggingElement;
- let forcePopulation;
- let xOffset;
- let yOffset;
- let wasDragged;
- const mouseUpHandler = function(e) {
- // Delete dragging element
- draggingElement.remove();
- // Make BOM selectable again
- bom.style.removeProperty("userSelect");
- // Remove listeners
- document.removeEventListener('mousemove', mouseMoveHandler);
- document.removeEventListener('mouseup', mouseUpHandler);
- if (wasDragged) {
- // Redraw whole BOM
- populateBomTable();
- }
- }
- const mouseMoveHandler = function(e) {
- // Notice the dragging
- wasDragged = true;
- // Make the dragged element visible
- draggingElement.style.removeProperty("display");
- // Set elements position to mouse position
- draggingElement.style.left = `${e.screenX - xOffset}px`;
- draggingElement.style.top = `${e.screenY - yOffset}px`;
- // Forced redrawing of BOM table
- if (forcePopulation) {
- forcePopulation = false;
- // Copy array
- phe = Array.from(placeHolderElements);
- // populate BOM table again
- populateBomHeader(dragName, phe);
- populateBomBody(dragName, phe);
- }
- // Set up array of hidden columns
- var hiddenColumns = Array.from(settings.hiddenColumns);
- // In the ungrouped mode, quantity don't exist
- if (settings.bommode === "ungrouped")
- hiddenColumns.push("Quantity");
- // If no checkbox fields can be found, we consider them hidden
- if (settings.checkboxes.length == 0)
- hiddenColumns.push("checkboxes");
- // Get table headers and group them into checkboxes, extrafields and normal headers
- const bh = document.getElementById("bomhead");
- headers = Array.from(bh.querySelectorAll("th"))
- headers.shift() // numCol is not part of the columnOrder
- headerGroups = []
- lastCompoundClass = null;
- for (i = 0; i < settings.columnOrder.length; i++) {
- cElem = settings.columnOrder[i];
- if (hiddenColumns.includes(cElem)) {
- // Hidden columns appear as a dummy element
- headerGroups.push([]);
- continue;
- }
- elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
- if (elem.classList.contains("bom-checkbox")) {
- if (lastCompoundClass === "bom-checkbox") {
- cbGroup = headerGroups.pop();
- cbGroup.push(elem);
- headerGroups.push(cbGroup);
- } else {
- lastCompoundClass = "bom-checkbox";
- headerGroups.push([elem])
- }
- } else {
- headerGroups.push([elem])
- }
- }
- // Copy settings.columnOrder
- var columns = Array.from(settings.columnOrder)
- // Set up array with indices of hidden columns
- var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
- var dragIndex = columns.indexOf(dragName);
- var swapIndex = dragIndex;
- var swapDone = false;
- // Check if the current dragged element is swapable with the left or right element
- if (dragIndex > 0) {
- // Get left headers boundingbox
- swapIndex = dragIndex - 1;
- while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
- swapIndex--;
- if (!hiddenIndices.includes(swapIndex)) {
- box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
- if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
- swapElement = columns[dragIndex];
- columns.splice(dragIndex, 1);
- columns.splice(swapIndex, 0, swapElement);
- forcePopulation = true;
- swapDone = true;
- }
- }
- }
- if ((!swapDone) && dragIndex < headerGroups.length - 1) {
- // Get right headers boundingbox
- swapIndex = dragIndex + 1;
- while (hiddenIndices.includes(swapIndex))
- swapIndex++;
- if (swapIndex < headerGroups.length) {
- box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
- if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
- swapElement = columns[dragIndex];
- columns.splice(dragIndex, 1);
- columns.splice(swapIndex, 0, swapElement);
- forcePopulation = true;
- swapDone = true;
- }
- }
- }
- // Write back change to storage
- if (swapDone) {
- settings.columnOrder = columns
- writeStorage("columnOrder", JSON.stringify(columns));
- }
- }
- const mouseDownHandler = function(e) {
- var target = e.target;
- if (target.tagName.toLowerCase() != "td")
- target = target.parentElement;
- // Used to check if a dragging has ever happened
- wasDragged = false;
- // Create new element which will be displayed as the dragged column
- draggingElement = document.createElement("div")
- draggingElement.classList.add("dragging");
- draggingElement.style.display = "none";
- draggingElement.style.position = "absolute";
- draggingElement.style.overflow = "hidden";
- // Get bomhead and bombody elements
- const bh = document.getElementById("bomhead");
- const bb = document.getElementById("bombody");
- // Get all compound headers for the current column
- var compoundHeaders;
- if (target.classList.contains("bom-checkbox")) {
- compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
- } else {
- compoundHeaders = [target];
- }
- // Create new table which will display the column
- var newTable = document.createElement("table");
- newTable.classList.add("bom");
- newTable.style.background = "white";
- draggingElement.append(newTable);
- // Create new header element
- var newHeader = document.createElement("thead");
- newTable.append(newHeader);
- // Set up array for storing all placeholder elements
- placeHolderElements = [];
- // Add all compound headers to the new thead element and placeholders
- compoundHeaders.forEach(function(h) {
- clone = cloneElementWithDimensions(h);
- newHeader.append(clone);
- placeHolderElements.push(clone);
- });
- // Create new body element
- var newBody = document.createElement("tbody");
- newTable.append(newBody);
- // Get indices for compound headers
- var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));
- // For each row in the BOM body...
- var rows = bb.querySelectorAll("tr");
- rows.forEach(function(row) {
- // ..get the cells for the compound column
- const tds = row.querySelectorAll("td");
- var copytds = idxs.map(i => tds[i]);
- // Add them to the new element and the placeholders
- var newRow = document.createElement("tr");
- copytds.forEach(function(td) {
- clone = cloneElementWithDimensions(td);
- newRow.append(clone);
- placeHolderElements.push(clone);
- });
- newBody.append(newRow);
- });
- // Compute width for compound header
- var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
- draggingElement.style.width = `${width}px`;
- // Insert the new dragging element and disable selection on BOM
- bom.insertBefore(draggingElement, null);
- bom.style.userSelect = "none";
- // Determine the mouse position offset
- xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
- yOffset = e.screenY - compoundHeaders[0].offsetTop;
- // Get name for the column in settings.columnOrder
- dragName = getColumnOrderName(target);
- // Change text and class for placeholder elements
- placeHolderElements = placeHolderElements.map(function(e) {
- newElem = cloneElementWithDimensions(e);
- newElem.textContent = "";
- newElem.classList.add("placeholder");
- return newElem;
- });
- // On next mouse move, the whole BOM needs to be redrawn to show the placeholders
- forcePopulation = true;
- // Add listeners for move and up on mouse
- document.addEventListener('mousemove', mouseMoveHandler);
- document.addEventListener('mouseup', mouseUpHandler);
- }
- // In netlist mode, there is nothing to reorder
- if (settings.bommode === "netlist")
- return;
- // Add mouseDownHandler to every column except the numCol
- bom.querySelectorAll("th")
- .forEach(function(head) {
- if (!head.classList.contains("numCol")) {
- head.onmousedown = mouseDownHandler;
- }
- });
- }
- function getBoundingClientRectFromMultiple(elements) {
- var elems = Array.from(elements);
- if (elems.length == 0)
- return null;
- var box = elems.shift()
- .getBoundingClientRect();
- elems.forEach(function(elem) {
- var elembox = elem.getBoundingClientRect();
- box.left = Math.min(elembox.left, box.left);
- box.top = Math.min(elembox.top, box.top);
- box.width += elembox.width;
- box.height = Math.max(elembox.height, box.height);
- });
- return box;
- }
- function cloneElementWithDimensions(elem) {
- var newElem = elem.cloneNode(true);
- newElem.style.height = window.getComputedStyle(elem).height;
- newElem.style.width = window.getComputedStyle(elem).width;
- return newElem;
- }
- function getBomTableHeaderIndex(elem) {
- const bh = document.getElementById('bomhead');
- const ths = Array.from(bh.querySelectorAll("th"));
- return ths.indexOf(elem);
- }
- function getColumnOrderName(elem) {
- var cname = elem.getAttribute("col_name");
- if (cname === "bom-checkbox")
- return "checkboxes";
- else
- return cname;
- }
- function resizableGrid(tablehead) {
- var cols = tablehead.firstElementChild.children;
- var rowWidth = tablehead.offsetWidth;
- for (var i = 1; i < cols.length; i++) {
- if (cols[i].classList.contains("bom-checkbox"))
- continue;
- cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
- }
- for (var i = 1; i < cols.length - 1; i++) {
- var div = document.createElement('div');
- div.className = "column-width-handle";
- cols[i].appendChild(div);
- setListeners(div);
- }
- function setListeners(div) {
- var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;
- div.addEventListener('mousedown', function(e) {
- e.preventDefault();
- e.stopPropagation();
- curCol = e.target.parentElement;
- nxtCol = curCol.nextElementSibling;
- startX = e.pageX;
- var padding = paddingDiff(curCol);
- rowWidth = curCol.parentElement.offsetWidth;
- curColWidth = curCol.clientWidth - padding;
- nxtColWidth = nxtCol.clientWidth - padding;
- });
- document.addEventListener('mousemove', function(e) {
- if (startX) {
- var diffX = e.pageX - startX;
- diffX = -Math.min(-diffX, curColWidth - 20);
- diffX = Math.min(diffX, nxtColWidth - 20);
- curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
- nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
- console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
- }
- });
- document.addEventListener('mouseup', function(e) {
- curCol = undefined;
- nxtCol = undefined;
- startX = undefined;
- nxtColWidth = undefined;
- curColWidth = undefined
- });
- }
- function paddingDiff(col) {
- if (getStyleVal(col, 'box-sizing') == 'border-box') {
- return 0;
- }
- var padLeft = getStyleVal(col, 'padding-left');
- var padRight = getStyleVal(col, 'padding-right');
- return (parseInt(padLeft) + parseInt(padRight));
- }
- function getStyleVal(elm, css) {
- return (window.getComputedStyle(elm, null).getPropertyValue(css))
- }
- }
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- /* DOM manipulation and misc code */
- var bomsplit;
- var canvassplit;
- var initDone = false;
- var bomSortFunction = null;
- var currentSortColumn = null;
- var currentSortOrder = null;
- var currentHighlightedRowId;
- var highlightHandlers = [];
- var footprintIndexToHandler = {};
- var netsToHandler = {};
- var markedFootprints = new Set();
- var highlightedFootprints = [];
- var highlightedNet = null;
- var lastClicked;
- function dbg(html) {
- dbgdiv.innerHTML = html;
- }
- function redrawIfInitDone() {
- if (initDone) {
- redrawCanvas(allcanvas.front);
- redrawCanvas(allcanvas.back);
- }
- }
- function padsVisible(value) {
- writeStorage("padsVisible", value);
- settings.renderPads = value;
- redrawIfInitDone();
- }
- function referencesVisible(value) {
- writeStorage("referencesVisible", value);
- settings.renderReferences = value;
- redrawIfInitDone();
- }
- function valuesVisible(value) {
- writeStorage("valuesVisible", value);
- settings.renderValues = value;
- redrawIfInitDone();
- }
- function tracksVisible(value) {
- writeStorage("tracksVisible", value);
- settings.renderTracks = value;
- redrawIfInitDone();
- }
- function zonesVisible(value) {
- writeStorage("zonesVisible", value);
- settings.renderZones = value;
- redrawIfInitDone();
- }
- function dnpOutline(value) {
- writeStorage("dnpOutline", value);
- settings.renderDnpOutline = value;
- redrawIfInitDone();
- }
- function setDarkMode(value) {
- if (value) {
- topmostdiv.classList.add("dark");
- } else {
- topmostdiv.classList.remove("dark");
- }
- writeStorage("darkmode", value);
- settings.darkMode = value;
- redrawIfInitDone();
- if (initDone) {
- populateBomTable();
- }
- }
- function setShowBOMColumn(field, value) {
- if (field === "references") {
- var rl = document.getElementById("reflookup");
- rl.disabled = !value;
- if (!value) {
- rl.value = "";
- updateRefLookup("");
- }
- }
- var n = settings.hiddenColumns.indexOf(field);
- if (value) {
- if (n != -1) {
- settings.hiddenColumns.splice(n, 1);
- }
- } else {
- if (n == -1) {
- settings.hiddenColumns.push(field);
- }
- }
- writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));
- if (initDone) {
- populateBomTable();
- }
- redrawIfInitDone();
- }
- function setFullscreen(value) {
- if (value) {
- document.documentElement.requestFullscreen();
- } else {
- document.exitFullscreen();
- }
- }
- function fabricationVisible(value) {
- writeStorage("fabricationVisible", value);
- settings.renderFabrication = value;
- redrawIfInitDone();
- }
- function silkscreenVisible(value) {
- writeStorage("silkscreenVisible", value);
- settings.renderSilkscreen = value;
- redrawIfInitDone();
- }
- function setHighlightPin1(value) {
- writeStorage("highlightpin1", value);
- settings.highlightpin1 = value;
- redrawIfInitDone();
- }
- function setHighlightRowOnClick(value) {
- settings.highlightRowOnClick = value;
- writeStorage("highlightRowOnClick", value);
- if (initDone) {
- populateBomTable();
- }
- }
- function getStoredCheckboxRefs(checkbox) {
- function convert(ref) {
- var intref = parseInt(ref);
- if (isNaN(intref)) {
- for (var i = 0; i < pcbdata.footprints.length; i++) {
- if (pcbdata.footprints[i].ref == ref) {
- return i;
- }
- }
- return -1;
- } else {
- return intref;
- }
- }
- if (!(checkbox in settings.checkboxStoredRefs)) {
- var val = readStorage("checkbox_" + checkbox);
- settings.checkboxStoredRefs[checkbox] = val ? val : "";
- }
- if (!settings.checkboxStoredRefs[checkbox]) {
- return new Set();
- } else {
- return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
- }
- }
- function getCheckboxState(checkbox, references) {
- var storedRefsSet = getStoredCheckboxRefs(checkbox);
- var currentRefsSet = new Set(references.map(r => r[1]));
- // Get difference of current - stored
- var difference = new Set(currentRefsSet);
- for (ref of storedRefsSet) {
- difference.delete(ref);
- }
- if (difference.size == 0) {
- // All the current refs are stored
- return "checked";
- } else if (difference.size == currentRefsSet.size) {
- // None of the current refs are stored
- return "unchecked";
- } else {
- // Some of the refs are stored
- return "indeterminate";
- }
- }
- function setBomCheckboxState(checkbox, element, references) {
- var state = getCheckboxState(checkbox, references);
- element.checked = (state == "checked");
- element.indeterminate = (state == "indeterminate");
- }
- function createCheckboxHandlers(input, checkbox, references, row) {
- var clickHandler = () => {
- refsSet = getStoredCheckboxRefs(checkbox);
- var markWhenChecked = settings.markWhenChecked == checkbox;
- eventArgs = {
- checkbox: checkbox,
- refs: references,
- }
- if (input.checked) {
- // checkbox ticked
- for (var ref of references) {
- refsSet.add(ref[1]);
- }
- if (markWhenChecked) {
- row.classList.add("checked");
- for (var ref of references) {
- markedFootprints.add(ref[1]);
- }
- drawHighlights();
- }
- eventArgs.state = 'checked';
- } else {
- // checkbox unticked
- for (var ref of references) {
- refsSet.delete(ref[1]);
- }
- if (markWhenChecked) {
- row.classList.remove("checked");
- for (var ref of references) {
- markedFootprints.delete(ref[1]);
- }
- drawHighlights();
- }
- eventArgs.state = 'unchecked';
- }
- settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
- writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
- updateCheckboxStats(checkbox);
- EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
- }
- return [
- (e) => {
- clickHandler();
- },
- (e) => {
- e.preventDefault();
- if (row.onmousemove) row.onmousemove();
- },
- (e) => {
- e.preventDefault();
- input.checked = !input.checked;
- input.indeterminate = false;
- clickHandler();
- }
- ];
- }
- function clearHighlightedFootprints() {
- if (currentHighlightedRowId) {
- document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
- currentHighlightedRowId = null;
- highlightedFootprints = [];
- highlightedNet = null;
- }
- }
- function createRowHighlightHandler(rowid, refs, net) {
- return function () {
- if (currentHighlightedRowId) {
- if (currentHighlightedRowId == rowid) {
- return;
- }
- document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
- }
- document.getElementById(rowid).classList.add("highlighted");
- currentHighlightedRowId = rowid;
- highlightedFootprints = refs ? refs.map(r => r[1]) : [];
- highlightedNet = net;
- drawHighlights();
- EventHandler.emitEvent(
- IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, {
- rowid: rowid,
- refs: refs,
- net: net
- });
- }
- }
- function updateNetColors() {
- writeStorage("netColors", JSON.stringify(settings.netColors));
- redrawIfInitDone();
- }
- function netColorChangeHandler(net) {
- return (event) => {
- settings.netColors[net] = event.target.value;
- updateNetColors();
- }
- }
- function netColorRightClick(net) {
- return (event) => {
- if (event.button == 2) {
- event.preventDefault();
- event.stopPropagation();
- var style = getComputedStyle(topmostdiv);
- var defaultNetColor = style.getPropertyValue('--track-color').trim();
- event.target.value = defaultNetColor;
- delete settings.netColors[net];
- updateNetColors();
- }
- }
- }
- function entryMatches(entry) {
- if (settings.bommode == "netlist") {
- // entry is just a net name
- return entry.toLowerCase().indexOf(filter) >= 0;
- }
- // check refs
- if (!settings.hiddenColumns.includes("References")) {
- for (var ref of entry) {
- if (ref[0].toLowerCase().indexOf(filter) >= 0) {
- return true;
- }
- }
- }
- // check fields
- for (var i in config.fields) {
- var f = config.fields[i];
- if (!settings.hiddenColumns.includes(f)) {
- for (var ref of entry) {
- if (String(pcbdata.bom.fields[ref[1]][i]).toLowerCase().indexOf(filter) >= 0) {
- return true;
- }
- }
- }
- }
- return false;
- }
- function findRefInEntry(entry) {
- return entry.filter(r => r[0].toLowerCase() == reflookup);
- }
- function highlightFilter(s) {
- if (!filter) {
- return s;
- }
- var parts = s.toLowerCase().split(filter);
- if (parts.length == 1) {
- return s;
- }
- var r = "";
- var pos = 0;
- for (var i in parts) {
- if (i > 0) {
- r += '<mark class="highlight">' +
- s.substring(pos, pos + filter.length) +
- '</mark>';
- pos += filter.length;
- }
- r += s.substring(pos, pos + parts[i].length);
- pos += parts[i].length;
- }
- return r;
- }
- function getBomListByLayer(layer) {
- switch (layer) {
- case 'F': return pcbdata.bom.F.slice();
- case 'B': return pcbdata.bom.B.slice();
- case 'FB': return pcbdata.bom.both.slice();
- }
- return [];
- }
- function getSelectedBomList() {
- if (settings.bommode == "netlist") {
- return pcbdata.nets.slice();
- }
- var out = getBomListByLayer(settings.canvaslayout);
- if (settings.bommode == "ungrouped") {
- // expand bom table
- var expandedTable = [];
- for (var bomentry of out) {
- for (var ref of bomentry) {
- expandedTable.push([ref]);
- }
- }
- return expandedTable;
- }
- return out;
- }
- function checkboxSetUnsetAllHandler(checkboxname) {
- return function () {
- var checkboxnum = 0;
- while (checkboxnum < settings.checkboxes.length &&
- settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
- checkboxnum++;
- }
- if (checkboxnum >= settings.checkboxes.length) {
- return;
- }
- var allset = true;
- var checkbox;
- var row;
- for (row of bombody.childNodes) {
- checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
- if (!checkbox.checked || checkbox.indeterminate) {
- allset = false;
- break;
- }
- }
- for (row of bombody.childNodes) {
- checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
- checkbox.checked = !allset;
- checkbox.indeterminate = false;
- checkbox.onchange();
- }
- }
- }
- function createColumnHeader(name, cls, comparator, is_checkbox = false) {
- var th = document.createElement("TH");
- th.innerHTML = name;
- th.classList.add(cls);
- if (is_checkbox)
- th.setAttribute("col_name", "bom-checkbox");
- else
- th.setAttribute("col_name", name);
- var span = document.createElement("SPAN");
- span.classList.add("sortmark");
- span.classList.add("none");
- th.appendChild(span);
- var spacer = document.createElement("div");
- spacer.className = "column-spacer";
- th.appendChild(spacer);
- spacer.onclick = function () {
- if (currentSortColumn && th !== currentSortColumn) {
- // Currently sorted by another column
- currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
- currentSortColumn.childNodes[1].classList.add("none");
- currentSortColumn = null;
- currentSortOrder = null;
- }
- if (currentSortColumn && th === currentSortColumn) {
- // Already sorted by this column
- if (currentSortOrder == "asc") {
- // Sort by this column, descending order
- bomSortFunction = function (a, b) {
- return -comparator(a, b);
- }
- currentSortColumn.childNodes[1].classList.remove("asc");
- currentSortColumn.childNodes[1].classList.add("desc");
- currentSortOrder = "desc";
- } else {
- // Unsort
- bomSortFunction = null;
- currentSortColumn.childNodes[1].classList.remove("desc");
- currentSortColumn.childNodes[1].classList.add("none");
- currentSortColumn = null;
- currentSortOrder = null;
- }
- } else {
- // Sort by this column, ascending order
- bomSortFunction = comparator;
- currentSortColumn = th;
- currentSortColumn.childNodes[1].classList.remove("none");
- currentSortColumn.childNodes[1].classList.add("asc");
- currentSortOrder = "asc";
- }
- populateBomBody();
- }
- if (is_checkbox) {
- spacer.onclick = fancyDblClickHandler(
- spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
- }
- return th;
- }
- function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
- while (bomhead.firstChild) {
- bomhead.removeChild(bomhead.firstChild);
- }
- var tr = document.createElement("TR");
- var th = document.createElement("TH");
- th.classList.add("numCol");
- var vismenu = document.createElement("div");
- vismenu.id = "vismenu";
- vismenu.classList.add("menu");
- var visbutton = document.createElement("div");
- visbutton.classList.add("visbtn");
- visbutton.classList.add("hideonprint");
- var viscontent = document.createElement("div");
- viscontent.classList.add("menu-content");
- viscontent.id = "vismenu-content";
- settings.columnOrder.forEach(column => {
- if (typeof column !== "string")
- return;
- // Skip empty columns
- if (column === "checkboxes" && settings.checkboxes.length == 0)
- return;
- else if (column === "Quantity" && settings.bommode == "ungrouped")
- return;
- var label = document.createElement("label");
- label.classList.add("menu-label");
- var input = document.createElement("input");
- input.classList.add("visibility_checkbox");
- input.type = "checkbox";
- input.onchange = function (e) {
- setShowBOMColumn(column, e.target.checked)
- };
- input.checked = !(settings.hiddenColumns.includes(column));
- label.appendChild(input);
- if (column.length > 0)
- label.append(column[0].toUpperCase() + column.slice(1));
- viscontent.appendChild(label);
- });
- viscontent.childNodes[0].classList.add("menu-label-top");
- vismenu.appendChild(visbutton);
- if (settings.bommode != "netlist") {
- vismenu.appendChild(viscontent);
- th.appendChild(vismenu);
- }
- tr.appendChild(th);
- var checkboxCompareClosure = function (checkbox) {
- return (a, b) => {
- var stateA = getCheckboxState(checkbox, a);
- var stateB = getCheckboxState(checkbox, b);
- if (stateA > stateB) return -1;
- if (stateA < stateB) return 1;
- return 0;
- }
- }
- var stringFieldCompareClosure = function (fieldIndex) {
- return (a, b) => {
- var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
- var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
- if (fa != fb) return fa > fb ? 1 : -1;
- else return 0;
- }
- }
- var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
- var compareRefs = (a, b) => {
- var ra = referenceRegex.exec(a);
- var rb = referenceRegex.exec(b);
- if (ra === null || rb === null) {
- if (a != b) return a > b ? 1 : -1;
- return 0;
- } else {
- if (ra.groups.prefix != rb.groups.prefix) {
- return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
- }
- if (ra.groups.number != rb.groups.number) {
- return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1;
- }
- return 0;
- }
- }
- if (settings.bommode == "netlist") {
- tr.appendChild(createColumnHeader("Net name", "bom-netname", (a, b) => {
- if (a > b) return -1;
- if (a < b) return 1;
- return 0;
- }));
- tr.appendChild(createColumnHeader("Color", "bom-color", (a, b) => {
- return 0;
- }));
- } else {
- // Filter hidden columns
- var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
- var valueIndex = config.fields.indexOf("Value");
- var footprintIndex = config.fields.indexOf("Footprint");
- columns.forEach((column) => {
- if (column === placeHolderColumn) {
- var n = 1;
- if (column === "checkboxes")
- n = settings.checkboxes.length;
- for (i = 0; i < n; i++) {
- td = placeHolderElements.shift();
- tr.appendChild(td);
- }
- return;
- } else if (column === "checkboxes") {
- for (var checkbox of settings.checkboxes) {
- th = createColumnHeader(
- checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
- tr.appendChild(th);
- }
- } else if (column === "References") {
- tr.appendChild(createColumnHeader("References", "references", (a, b) => {
- var i = 0;
- while (i < a.length && i < b.length) {
- if (a[i][0] != b[i][0]) return compareRefs(a[i][0], b[i][0]);
- i++;
- }
- return a.length - b.length;
- }));
- } else if (column === "Value") {
- tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
- var ra = a[0][1], rb = b[0][1];
- return valueCompare(
- pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
- pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
- }));
- return;
- } else if (column === "Footprint") {
- tr.appendChild(createColumnHeader(
- "Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
- } else if (column === "Quantity" && settings.bommode == "grouped") {
- tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
- return a.length - b.length;
- }));
- } else {
- // Other fields
- var i = config.fields.indexOf(column);
- if (i < 0)
- return;
- tr.appendChild(createColumnHeader(
- column, `field${i + 1}`, stringFieldCompareClosure(i)));
- }
- });
- }
- bomhead.appendChild(tr);
- }
- function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
- const urlRegex = /^(https?:\/\/[^\s\/$.?#][^\s]*|file:\/\/([a-zA-Z]:|\/)[^\x00]+)$/;
- while (bom.firstChild) {
- bom.removeChild(bom.firstChild);
- }
- highlightHandlers = [];
- footprintIndexToHandler = {};
- netsToHandler = {};
- currentHighlightedRowId = null;
- var first = true;
- var style = getComputedStyle(topmostdiv);
- var defaultNetColor = style.getPropertyValue('--track-color').trim();
- bomtable = getSelectedBomList();
- if (bomSortFunction) {
- bomtable = bomtable.sort(bomSortFunction);
- }
- for (var i in bomtable) {
- var bomentry = bomtable[i];
- if (filter && !entryMatches(bomentry)) {
- continue;
- }
- var references = null;
- var netname = null;
- var tr = document.createElement("TR");
- var td = document.createElement("TD");
- var rownum = +i + 1;
- tr.id = "bomrow" + rownum;
- td.textContent = rownum;
- tr.appendChild(td);
- if (settings.bommode == "netlist") {
- netname = bomentry;
- td = document.createElement("TD");
- td.innerHTML = highlightFilter(netname ? netname : "<no net>");
- tr.appendChild(td);
- var color = settings.netColors[netname] || defaultNetColor;
- td = document.createElement("TD");
- var colorBox = document.createElement("INPUT");
- colorBox.type = "color";
- colorBox.value = color;
- colorBox.onchange = netColorChangeHandler(netname);
- colorBox.onmouseup = netColorRightClick(netname);
- colorBox.oncontextmenu = (e) => e.preventDefault();
- td.appendChild(colorBox);
- td.classList.add("color-column");
- tr.appendChild(td);
- } else {
- if (reflookup) {
- references = findRefInEntry(bomentry);
- if (references.length == 0) {
- continue;
- }
- } else {
- references = bomentry;
- }
- // Filter hidden columns
- var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
- columns.forEach((column) => {
- if (column === placeholderColumn) {
- var n = 1;
- if (column === "checkboxes")
- n = settings.checkboxes.length;
- for (i = 0; i < n; i++) {
- td = placeHolderElements.shift();
- tr.appendChild(td);
- }
- return;
- } else if (column === "checkboxes") {
- for (var checkbox of settings.checkboxes) {
- if (checkbox) {
- td = document.createElement("TD");
- var input = document.createElement("input");
- input.type = "checkbox";
- [input.onchange, td.ontouchstart, td.ontouchend] = createCheckboxHandlers(input, checkbox, references, tr);
- setBomCheckboxState(checkbox, input, references);
- if (input.checked && settings.markWhenChecked == checkbox) {
- tr.classList.add("checked");
- }
- td.appendChild(input);
- tr.appendChild(td);
- }
- }
- } else if (column === "References") {
- td = document.createElement("TD");
- td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
- tr.appendChild(td);
- } else if (column === "Quantity" && settings.bommode == "grouped") {
- // Quantity
- td = document.createElement("TD");
- td.textContent = references.length;
- tr.appendChild(td);
- } else {
- // All the other fields
- var field_index = config.fields.indexOf(column)
- if (field_index < 0)
- return;
- var valueSet = new Set();
- references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
- td = document.createElement("TD");
- var output = new Array();
- for (let item of valueSet) {
- const visible = highlightFilter(String(item));
- if (typeof item === 'string' && item.match(urlRegex)) {
- output.push(`<a href="${item}" target="_blank">${visible}</a>`);
- } else {
- output.push(visible);
- }
- }
- td.innerHTML = output.join(", ");
- tr.appendChild(td);
- }
- });
- }
- bom.appendChild(tr);
- var handler = createRowHighlightHandler(tr.id, references, netname);
- if (settings.highlightRowOnClick) {
- tr.onmousedown = handler;
- } else {
- tr.onmousemove = handler;
- }
- highlightHandlers.push({
- id: tr.id,
- handler: handler,
- });
- if (references !== null) {
- for (var refIndex of references.map(r => r[1])) {
- footprintIndexToHandler[refIndex] = handler;
- }
- }
- if (netname !== null) {
- netsToHandler[netname] = handler;
- }
- if ((filter || reflookup) && first) {
- handler();
- first = false;
- }
- }
- EventHandler.emitEvent(
- IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, {
- filter: filter,
- reflookup: reflookup,
- checkboxes: settings.checkboxes,
- bommode: settings.bommode,
- });
- }
- function highlightPreviousRow() {
- if (!currentHighlightedRowId) {
- highlightHandlers[highlightHandlers.length - 1].handler();
- } else {
- if (highlightHandlers.length > 1 &&
- highlightHandlers[0].id == currentHighlightedRowId) {
- highlightHandlers[highlightHandlers.length - 1].handler();
- } else {
- for (var i = 0; i < highlightHandlers.length - 1; i++) {
- if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
- highlightHandlers[i].handler();
- break;
- }
- }
- }
- }
- smoothScrollToRow(currentHighlightedRowId);
- }
- function highlightNextRow() {
- if (!currentHighlightedRowId) {
- highlightHandlers[0].handler();
- } else {
- if (highlightHandlers.length > 1 &&
- highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
- highlightHandlers[0].handler();
- } else {
- for (var i = 1; i < highlightHandlers.length; i++) {
- if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
- highlightHandlers[i].handler();
- break;
- }
- }
- }
- }
- smoothScrollToRow(currentHighlightedRowId);
- }
- function populateBomTable() {
- populateBomHeader();
- populateBomBody();
- setBomHandlers();
- resizableGrid(bomhead);
- }
- function footprintsClicked(footprintIndexes) {
- var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
- for (var i = 1; i <= footprintIndexes.length; i++) {
- var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
- if (refIndex in footprintIndexToHandler) {
- lastClicked = refIndex;
- footprintIndexToHandler[refIndex]();
- smoothScrollToRow(currentHighlightedRowId);
- break;
- }
- }
- }
- function netClicked(net) {
- if (net in netsToHandler) {
- netsToHandler[net]();
- smoothScrollToRow(currentHighlightedRowId);
- } else {
- clearHighlightedFootprints();
- highlightedNet = net;
- drawHighlights();
- }
- }
- function updateFilter(input) {
- filter = input.toLowerCase();
- populateBomTable();
- }
- function updateRefLookup(input) {
- reflookup = input.toLowerCase();
- populateBomTable();
- }
- function changeCanvasLayout(layout) {
- document.getElementById("fl-btn").classList.remove("depressed");
- document.getElementById("fb-btn").classList.remove("depressed");
- document.getElementById("bl-btn").classList.remove("depressed");
- switch (layout) {
- case 'F':
- document.getElementById("fl-btn").classList.add("depressed");
- if (settings.bomlayout != "bom-only") {
- canvassplit.collapse(1);
- }
- break;
- case 'B':
- document.getElementById("bl-btn").classList.add("depressed");
- if (settings.bomlayout != "bom-only") {
- canvassplit.collapse(0);
- }
- break;
- default:
- document.getElementById("fb-btn").classList.add("depressed");
- if (settings.bomlayout != "bom-only") {
- canvassplit.setSizes([50, 50]);
- }
- }
- settings.canvaslayout = layout;
- writeStorage("canvaslayout", layout);
- resizeAll();
- changeBomMode(settings.bommode);
- }
- function populateMetadata() {
- document.getElementById("title").innerHTML = pcbdata.metadata.title;
- document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
- document.getElementById("company").innerHTML = pcbdata.metadata.company;
- document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
- if (pcbdata.metadata.title != "") {
- document.title = pcbdata.metadata.title + " BOM";
- }
- // Calculate board stats
- var fp_f = 0,
- fp_b = 0,
- pads_f = 0,
- pads_b = 0,
- pads_th = 0;
- for (var i = 0; i < pcbdata.footprints.length; i++) {
- if (pcbdata.bom.skipped.includes(i)) continue;
- var mod = pcbdata.footprints[i];
- if (mod.layer == "F") {
- fp_f++;
- } else {
- fp_b++;
- }
- for (var pad of mod.pads) {
- if (pad.type == "th") {
- pads_th++;
- } else {
- if (pad.layers.includes("F")) {
- pads_f++;
- }
- if (pad.layers.includes("B")) {
- pads_b++;
- }
- }
- }
- }
- document.getElementById("stats-components-front").innerHTML = fp_f;
- document.getElementById("stats-components-back").innerHTML = fp_b;
- document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
- document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
- document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
- document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
- document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
- document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
- document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
- document.getElementById("stats-th-pads").innerHTML = pads_th;
- // Update version string
- document.getElementById("github-link").innerHTML = "InteractiveHtmlBom " +
- /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
- }
- function changeBomLayout(layout) {
- document.getElementById("bom-btn").classList.remove("depressed");
- document.getElementById("lr-btn").classList.remove("depressed");
- document.getElementById("tb-btn").classList.remove("depressed");
- switch (layout) {
- case 'bom-only':
- document.getElementById("bom-btn").classList.add("depressed");
- if (bomsplit) {
- bomsplit.destroy();
- bomsplit = null;
- canvassplit.destroy();
- canvassplit = null;
- }
- document.getElementById("frontcanvas").style.display = "none";
- document.getElementById("backcanvas").style.display = "none";
- document.getElementById("topmostdiv").style.height = "";
- document.getElementById("topmostdiv").style.display = "block";
- break;
- case 'top-bottom':
- document.getElementById("tb-btn").classList.add("depressed");
- document.getElementById("frontcanvas").style.display = "";
- document.getElementById("backcanvas").style.display = "";
- document.getElementById("topmostdiv").style.height = "100%";
- document.getElementById("topmostdiv").style.display = "flex";
- document.getElementById("bomdiv").classList.remove("split-horizontal");
- document.getElementById("canvasdiv").classList.remove("split-horizontal");
- document.getElementById("frontcanvas").classList.add("split-horizontal");
- document.getElementById("backcanvas").classList.add("split-horizontal");
- if (bomsplit) {
- bomsplit.destroy();
- bomsplit = null;
- canvassplit.destroy();
- canvassplit = null;
- }
- bomsplit = Split(['#bomdiv', '#canvasdiv'], {
- sizes: [50, 50],
- onDragEnd: resizeAll,
- direction: "vertical",
- gutterSize: 5
- });
- canvassplit = Split(['#frontcanvas', '#backcanvas'], {
- sizes: [50, 50],
- gutterSize: 5,
- onDragEnd: resizeAll
- });
- break;
- case 'left-right':
- document.getElementById("lr-btn").classList.add("depressed");
- document.getElementById("frontcanvas").style.display = "";
- document.getElementById("backcanvas").style.display = "";
- document.getElementById("topmostdiv").style.height = "100%";
- document.getElementById("topmostdiv").style.display = "flex";
- document.getElementById("bomdiv").classList.add("split-horizontal");
- document.getElementById("canvasdiv").classList.add("split-horizontal");
- document.getElementById("frontcanvas").classList.remove("split-horizontal");
- document.getElementById("backcanvas").classList.remove("split-horizontal");
- if (bomsplit) {
- bomsplit.destroy();
- bomsplit = null;
- canvassplit.destroy();
- canvassplit = null;
- }
- bomsplit = Split(['#bomdiv', '#canvasdiv'], {
- sizes: [50, 50],
- onDragEnd: resizeAll,
- gutterSize: 5
- });
- canvassplit = Split(['#frontcanvas', '#backcanvas'], {
- sizes: [50, 50],
- gutterSize: 5,
- direction: "vertical",
- onDragEnd: resizeAll
- });
- }
- settings.bomlayout = layout;
- writeStorage("bomlayout", layout);
- changeCanvasLayout(settings.canvaslayout);
- }
- function changeBomMode(mode) {
- document.getElementById("bom-grouped-btn").classList.remove("depressed");
- document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
- document.getElementById("bom-netlist-btn").classList.remove("depressed");
- var chkbxs = document.getElementsByClassName("visibility_checkbox");
- switch (mode) {
- case 'grouped':
- document.getElementById("bom-grouped-btn").classList.add("depressed");
- for (var i = 0; i < chkbxs.length; i++) {
- chkbxs[i].disabled = false;
- }
- break;
- case 'ungrouped':
- document.getElementById("bom-ungrouped-btn").classList.add("depressed");
- for (var i = 0; i < chkbxs.length; i++) {
- chkbxs[i].disabled = false;
- }
- break;
- case 'netlist':
- document.getElementById("bom-netlist-btn").classList.add("depressed");
- for (var i = 0; i < chkbxs.length; i++) {
- chkbxs[i].disabled = true;
- }
- }
- writeStorage("bommode", mode);
- if (mode != settings.bommode) {
- settings.bommode = mode;
- bomSortFunction = null;
- currentSortColumn = null;
- currentSortOrder = null;
- clearHighlightedFootprints();
- }
- populateBomTable();
- }
- function focusFilterField() {
- focusInputField(document.getElementById("filter"));
- }
- function focusRefLookupField() {
- focusInputField(document.getElementById("reflookup"));
- }
- function toggleBomCheckbox(bomrowid, checkboxnum) {
- if (!bomrowid || checkboxnum > settings.checkboxes.length) {
- return;
- }
- var bomrow = document.getElementById(bomrowid);
- var childNum = checkboxnum + settings.columnOrder.indexOf("checkboxes");
- var checkbox = bomrow.childNodes[childNum].childNodes[0];
- checkbox.checked = !checkbox.checked;
- checkbox.indeterminate = false;
- checkbox.onchange();
- }
- function checkBomCheckbox(bomrowid, checkboxname) {
- var checkboxnum = 0;
- while (checkboxnum < settings.checkboxes.length &&
- settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
- checkboxnum++;
- }
- if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
- return;
- }
- var bomrow = document.getElementById(bomrowid);
- var childNum = checkboxnum + 1 + settings.columnOrder.indexOf("checkboxes");
- var checkbox = bomrow.childNodes[childNum].childNodes[0];
- checkbox.checked = true;
- checkbox.indeterminate = false;
- checkbox.onchange();
- }
- function setBomCheckboxes(value) {
- writeStorage("bomCheckboxes", value);
- settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e);
- prepCheckboxes();
- populateMarkWhenCheckedOptions();
- setMarkWhenChecked(settings.markWhenChecked);
- }
- function setMarkWhenChecked(value) {
- writeStorage("markWhenChecked", value);
- settings.markWhenChecked = value;
- markedFootprints.clear();
- for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
- markedFootprints.add(ref);
- }
- populateBomTable();
- drawHighlights();
- }
- function prepCheckboxes() {
- var table = document.getElementById("checkbox-stats");
- while (table.childElementCount > 1) {
- table.removeChild(table.lastChild);
- }
- if (settings.checkboxes.length) {
- table.style.display = "";
- } else {
- table.style.display = "none";
- }
- for (var checkbox of settings.checkboxes) {
- var tr = document.createElement("TR");
- var td = document.createElement("TD");
- td.innerHTML = checkbox;
- tr.appendChild(td);
- td = document.createElement("TD");
- td.id = "checkbox-stats-" + checkbox;
- var progressbar = document.createElement("div");
- progressbar.classList.add("bar");
- td.appendChild(progressbar);
- var text = document.createElement("div");
- text.classList.add("text");
- td.appendChild(text);
- tr.appendChild(td);
- table.appendChild(tr);
- updateCheckboxStats(checkbox);
- }
- }
- function populateMarkWhenCheckedOptions() {
- var container = document.getElementById("markWhenCheckedContainer");
- if (settings.checkboxes.length == 0) {
- container.parentElement.style.display = "none";
- return;
- }
- container.innerHTML = '';
- container.parentElement.style.display = "inline-block";
- function createOption(name, displayName) {
- var id = "markWhenChecked-" + name;
- var div = document.createElement("div");
- div.classList.add("radio-container");
- var input = document.createElement("input");
- input.type = "radio";
- input.name = "markWhenChecked";
- input.value = name;
- input.id = id;
- input.onchange = () => setMarkWhenChecked(name);
- div.appendChild(input);
- // Preserve the selected element when the checkboxes change
- if (name == settings.markWhenChecked) {
- input.checked = true;
- }
- var label = document.createElement("label");
- label.innerHTML = displayName;
- label.htmlFor = id;
- div.appendChild(label);
- container.appendChild(div);
- }
- createOption("", "None");
- for (var checkbox of settings.checkboxes) {
- createOption(checkbox, checkbox);
- }
- }
- function updateCheckboxStats(checkbox) {
- var checked = getStoredCheckboxRefs(checkbox).size;
- var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
- var percent = checked * 100.0 / total;
- var td = document.getElementById("checkbox-stats-" + checkbox);
- td.firstChild.style.width = percent + "%";
- td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
- }
- function constrain(number, min, max) {
- return Math.min(Math.max(parseInt(number), min), max);
- }
- document.onkeydown = function (e) {
- switch (e.key) {
- case "n":
- if (document.activeElement.type == "text") {
- return;
- }
- if (currentHighlightedRowId !== null) {
- checkBomCheckbox(currentHighlightedRowId, "placed");
- highlightNextRow();
- e.preventDefault();
- }
- break;
- case "ArrowUp":
- highlightPreviousRow();
- e.preventDefault();
- break;
- case "ArrowDown":
- highlightNextRow();
- e.preventDefault();
- break;
- case "ArrowLeft":
- case "ArrowRight":
- if (document.activeElement.type != "text") {
- e.preventDefault();
- let boardRotationElement = document.getElementById("boardRotation")
- settings.boardRotation = parseInt(boardRotationElement.value); // degrees / 5
- if (e.key == "ArrowLeft") {
- settings.boardRotation += 3; // 15 degrees
- }
- else {
- settings.boardRotation -= 3;
- }
- settings.boardRotation = constrain(settings.boardRotation, boardRotationElement.min, boardRotationElement.max);
- boardRotationElement.value = settings.boardRotation
- setBoardRotation(settings.boardRotation);
- }
- break;
- default:
- break;
- }
- if (e.altKey) {
- switch (e.key) {
- case "f":
- focusFilterField();
- e.preventDefault();
- break;
- case "r":
- focusRefLookupField();
- e.preventDefault();
- break;
- case "z":
- changeBomLayout("bom-only");
- e.preventDefault();
- break;
- case "x":
- changeBomLayout("left-right");
- e.preventDefault();
- break;
- case "c":
- changeBomLayout("top-bottom");
- e.preventDefault();
- break;
- case "v":
- changeCanvasLayout("F");
- e.preventDefault();
- break;
- case "b":
- changeCanvasLayout("FB");
- e.preventDefault();
- break;
- case "n":
- changeCanvasLayout("B");
- e.preventDefault();
- break;
- default:
- break;
- }
- if (e.key >= '1' && e.key <= '9') {
- toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
- e.preventDefault();
- }
- }
- }
- function hideNetlistButton() {
- document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
- document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
- document.getElementById("bom-netlist-btn").style.display = "none";
- }
- function topToggle() {
- var top = document.getElementById("top");
- var toptoggle = document.getElementById("toptoggle");
- if (top.style.display === "none") {
- top.style.display = "flex";
- toptoggle.classList.remove("flipped");
- } else {
- top.style.display = "none";
- toptoggle.classList.add("flipped");
- }
- }
- window.onload = function (e) {
- initRender();
- initStorage();
- initDefaults();
- initUtils();
- cleanGutters();
- populateMetadata();
- dbgdiv = document.getElementById("dbg");
- bom = document.getElementById("bombody");
- bomhead = document.getElementById("bomhead");
- filter = "";
- reflookup = "";
- if (!("nets" in pcbdata)) {
- hideNetlistButton();
- }
- initDone = true;
- setBomCheckboxes(document.getElementById("bomCheckboxes").value);
- // Triggers render
- changeBomLayout(settings.bomlayout);
- // Users may leave fullscreen without touching the checkbox. Uncheck.
- document.addEventListener('fullscreenchange', () => {
- if (!document.fullscreenElement)
- document.getElementById('fullscreenCheckbox').checked = false;
- });
- }
- window.onresize = resizeAll;
- window.matchMedia("print").addListener(resizeAll);
- ///////////////////////////////////////////////
- ///////////////////////////////////////////////
- // EventHandler.registerCallback(IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, () => {
- // for(var tr of bom.childNodes) {
- // tr.onclick = tr.onmousemove;
- // tr.onmousemove = null;
- // };
- // });
- ///////////////////////////////////////////////
- </script>
- </head>
- <body>
- <div id="topmostdiv" class="topmostdiv">
- <div id="top">
- <div id="fileinfodiv">
- <table class="fileinfo">
- <tbody>
- <tr>
- <td id="title" class="title" style="width: 70%">
- Title
- </td>
- <td id="revision" class="title" style="width: 30%">
- Revision
- </td>
- </tr>
- <tr>
- <td id="company">
- Company
- </td>
- <td id="filedate">
- Date
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="bomcontrols">
- <div class="hideonprint menu">
- <button class="menubtn"></button>
- <div class="menu-content">
- <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
- <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
- Dark mode
- </label><!-- This comment eats space! All of it!
- --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
- <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
- Full Screen
- </label>
- <label class="menu-label" style="width: calc(50% - 18px)">
- <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
- Fab layer
- </label><!-- This comment eats space! All of it!
- --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
- <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
- Silkscreen
- </label>
- <label class="menu-label" style="width: calc(50% - 18px)">
- <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
- References
- </label><!-- This comment eats space! All of it!
- --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
- <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
- Values
- </label>
- <div id="tracksAndZonesCheckboxes">
- <label class="menu-label" style="width: calc(50% - 18px)">
- <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
- Tracks
- </label><!-- This comment eats space! All of it!
- --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
- <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
- Zones
- </label>
- </div>
- <label class="menu-label" style="width: calc(50% - 18px)">
- <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
- Pads
- </label><!-- This comment eats space! All of it!
- --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
- <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
- DNP outlined
- </label>
- <label class="menu-label">
- <input id="highlightRowOnClickCheckbox" type="checkbox" checked onchange="setHighlightRowOnClick(this.checked)">
- Highlight row on click
- </label>
- <label class="menu-label">
- <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
- Continuous redraw on drag
- </label>
- <label class="menu-label">
- Highlight first pin
- <form id="highlightpin1">
- <div class="flexbox">
- <label>
- <input type="radio" name="highlightpin1" value="none" onchange="setHighlightPin1('none')">
- None
- </label>
- <label>
- <input type="radio" name="highlightpin1" value="all" onchange="setHighlightPin1('all')">
- All
- </label>
- <label>
- <input type="radio" name="highlightpin1" value="selected" onchange="setHighlightPin1('selected')">
- Selected
- </label>
- </div>
- </form>
- </label>
- <label class="menu-label">
- <span>Board rotation</span>
- <span style="float: right"><span id="rotationDegree">0</span>°</span>
- <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
- </label>
- <label class="menu-label">
- <input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
- Offset back rotation
- </label>
- <label class="menu-label">
- <div style="margin-left: 5px">Bom checkboxes</div>
- <input id="bomCheckboxes" class="menu-textbox" type=text
- oninput="setBomCheckboxes(this.value)">
- </label>
- <label class="menu-label">
- <div style="margin-left: 5px">Mark when checked</div>
- <div id="markWhenCheckedContainer"></div>
- </label>
- <label class="menu-label">
- <span class="shameless-plug">
- <span>Created using</span>
- <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
- <a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></a>
- </span>
- </label>
- </div>
- </div>
- <div class="button-container hideonprint">
- <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
- title="Front only">F
- </button>
- <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
- title="Front and Back">FB
- </button>
- <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
- title="Back only">B
- </button>
- </div>
- <div class="button-container hideonprint">
- <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
- title="BOM only"></button>
- <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
- title="BOM left, drawings right"></button>
- <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
- title="BOM top, drawings bot"></button>
- </div>
- <div class="button-container hideonprint">
- <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
- title="Grouped BOM"></button>
- <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
- title="Ungrouped BOM"></button>
- <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
- title="Netlist"></button>
- </div>
- <div class="hideonprint menu">
- <button class="statsbtn"></button>
- <div class="menu-content">
- <table class="stats">
- <tbody>
- <tr>
- <td width="40%">Board stats</td>
- <td>Front</td>
- <td>Back</td>
- <td>Total</td>
- </tr>
- <tr>
- <td>Components</td>
- <td id="stats-components-front">~</td>
- <td id="stats-components-back">~</td>
- <td id="stats-components-total">~</td>
- </tr>
- <tr>
- <td>Groups</td>
- <td id="stats-groups-front">~</td>
- <td id="stats-groups-back">~</td>
- <td id="stats-groups-total">~</td>
- </tr>
- <tr>
- <td>SMD pads</td>
- <td id="stats-smd-pads-front">~</td>
- <td id="stats-smd-pads-back">~</td>
- <td id="stats-smd-pads-total">~</td>
- </tr>
- <tr>
- <td>TH pads</td>
- <td colspan=3 id="stats-th-pads">~</td>
- </tr>
- </tbody>
- </table>
- <table class="stats">
- <col width="40%"/><col />
- <tbody id="checkbox-stats">
- <tr>
- <td colspan=2 style="border-top: 0">Checkboxes</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="hideonprint menu">
- <button class="iobtn"></button>
- <div class="menu-content">
- <div class="menu-label menu-label-top">
- <div style="margin-left: 5px;">Save board image</div>
- <div class="flexbox">
- <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
- style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
- <span>X</span>
- <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
- style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
- </div>
- <label>
- <input id="render-save-transparent" type="checkbox">
- Transparent background
- </label>
- <div class="flexbox">
- <button class="savebtn" onclick="saveImage('F')">Front</button>
- <button class="savebtn" onclick="saveImage('B')">Back</button>
- </div>
- </div>
- <div class="menu-label">
- <span style="margin-left: 5px;">Config and checkbox state</span>
- <div class="flexbox">
- <button class="savebtn" onclick="saveSettings()">Export</button>
- <button class="savebtn" onclick="loadSettings()">Import</button>
- <button class="savebtn" onclick="resetSettings()">Reset</button>
- </div>
- </div>
- <div class="menu-label">
- <span style="margin-left: 5px;">Save bom table as</span>
- <div class="flexbox">
- <button class="savebtn" onclick="saveBomTable('csv')">csv</button>
- <button class="savebtn" onclick="saveBomTable('txt')">txt</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div id="topdivider">
- <div class="hideonprint">
- <div id="toptoggle" onclick="topToggle()">︽</div>
- </div>
- </div>
- <div id="bot" class="split" style="flex: 1 1">
- <div id="bomdiv" class="split split-horizontal">
- <div style="width: 100%">
- <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
- oninput="updateRefLookup(this.value)">
- <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
- oninput="updateFilter(this.value)">
- <div class="button-container hideonprint" style="float: left; margin: 0;">
- <button id="copy" title="Copy bom table to clipboard"
- onclick="saveBomTable('clipboard')"></button>
- </div>
- </div>
- <div id="dbg"></div>
- <table class="bom" id="bomtable">
- <thead id="bomhead">
- </thead>
- <tbody id="bombody">
- </tbody>
- </table>
- </div>
- <div id="canvasdiv" class="split split-horizontal">
- <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
- <div style="position: relative; width: 100%; height: 100%;">
- <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
- <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
- <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
- <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
- </div>
- </div>
- <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
- <div style="position: relative; width: 100%; height: 100%;">
- <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
- <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
- <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
- <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>
|