slicerPrinterMatch-CUdoNag2.js 3.0 KB

1
  1. var e={bambuModelByShortCode:{}},t={"A1 MINI":[`A1M`],"H2D PRO":[`H2DP`]};function n(e,n){let r=e.toUpperCase(),i=n.toUpperCase();if(r===i)return!0;let a=t[i];if(a&&a.includes(r))return!0;let o=t[r];return!!(o&&o.includes(i))}function r(e){let t={};for(let[n,r]of Object.entries(e))r in t||(t[r]=n.replace(/^Bambu Lab\s+/,``));return t}function i(e={},t={}){return{bambuModelByShortCode:r(e),printerParents:t}}function a(e){return e.replace(/\s+/g,``).toLowerCase()}function o(e){return e.replace(/^#\s*/,``).trim()}var s=`0.4`;function c(e){let t=e.match(/^(.*?)\s+([\d.]+)\s*nozzle\s*$/i);return t?{stripped:t[1].trim(),nozzle:t[2]}:{stripped:e.trim(),nozzle:null}}function l(e){let t=e.indexOf(`@BBL `);if(t<0)return null;let{stripped:n,nozzle:r}=c(e.slice(t+5).trim());return n?{token:n,nozzle:r}:null}function u(e){let t=o(e).match(/^Bambu Lab\s+(.+)$/i);if(!t)return null;let{stripped:n,nozzle:r}=c(t[1]);return n?{model:n,nozzle:r}:null}function d(e){return e.replace(/\s*\([^)]*\)\s*$/,``).trim()}var f=.1,p=2;function m(e,t){let n=Number.parseFloat(e),r=Number.parseFloat(t);return Number.isNaN(n)||Number.isNaN(r)?!1:n===r}function h(e){let t=d(e),n=l(t);if(n)return n;let r=t.lastIndexOf(`@`);if(r<0)return null;let i=t.slice(r+1).trim(),a=u(i);if(a)return{token:a.model,nozzle:a.nozzle};let o=i.match(/^([\d.]+)\s*(?:mm)?\s*(?:nozzle)?$/i);if(o){let e=Number.parseFloat(o[1]);if(!Number.isNaN(e)&&e>=f&&e<=p)return{token:null,nozzle:o[1]}}return null}function g(e,t,r){let i=h(e);if(!i)return`unknown`;let o=u(t);if(!o)return`unknown`;if(i.token===null)return o.nozzle!==null&&i.nozzle!==null&&!m(i.nozzle,o.nozzle)?`mismatch`:`unknown`;let c=r[i.token]??i.token;return a(o.model)!==a(c)&&!n(i.token,o.model)||o.nozzle!==null&&!m(i.nozzle??s,o.nozzle)?`mismatch`:`match`}function _(e,t,n,r){if(!n)return`unknown`;let i=r.printerParents,a=i&&Object.hasOwn(i,n)?i[n]:null,s=typeof a==`string`&&a&&a!==n?a:null,c=e.compatible_printers;if(c&&c.length>0){let e=[n,s].filter(e=>!!e).map(o);return c.some(t=>e.includes(o(t)))?`match`:`mismatch`}let l=g(e.name,n,r.bambuModelByShortCode);if(l===`match`||!s)return l;let u=g(e.name,s,r.bambuModelByShortCode);return u===`unknown`?l:u}function v(e){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/\s+/g,`\\s+`);return RegExp(`\\b${t}\\b`,`i`)}function y(e,t){let n=e.indexOf(`@`);if(n>=0){let r=e.slice(n+1).trim(),i=r.match(/^BBL\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(i)return i[1].trim();let a=r.match(/^Bambu Lab\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(a){let e=a[1].trim(),n=`Bambu Lab ${e}`;if(t[n])return t[n];let r=n.toLowerCase();for(let[e,n]of Object.entries(t))if(e.toLowerCase()===r)return n;return e}}let r=[],i=new Set;for(let[e,n]of Object.entries(t)){let t=e.replace(/^Bambu Lab\s+/,``),a=t.toLowerCase();i.has(a)||(r.push({token:t,short:n}),i.add(a));let o=n.toLowerCase();i.has(o)||(r.push({token:n,short:n}),i.add(o))}r.sort((e,t)=>t.token.length-e.token.length);for(let{token:t,short:n}of r)if(v(t).test(e))return n;return null}export{_ as a,n as i,i as n,y as r,e as t};