UNPKG

ranges-set

Version:

Set operations on human-friendly ranges.

3 lines (2 loc) 2.73 kB
var n=/^(?:0|[1-9]\d*)$/,r=/^(0|[1-9]\d*)\s*-\s*(0|[1-9]\d*)$/;function t(n,r){return n.t!==r.t?r.t-n.t:n.t?n.u>=r.u?n.u>r.u?1:0:-1:n.i-r.i||n.o-r.o}function u(n){return{t:1,u:n}}function f(n,r){return{t:0,i:n,o:r}}function i(n,r){return x(o(_(n),_(r)))}function o(n,r){var t,u,i,o,e,c,a=[];n:for(t=0;t<n.length;++t){if((u=n[t]).t){for(i=0;i<r.length;++i)if((o=r[i]).t&&o.u===u.u)continue n}else for(e=0;e<r.length;++e)if(!(c=r[e]).t){if(u.i>=c.i&&u.o<=c.o)continue n;if(u.i<=c.i&&u.o>=c.o){u.o>c.o&&n.splice(t+1,0,f(c.o+1,u.o)),u.i<c.i&&n.splice(t+1,0,f(u.i,c.i-1));continue n}u.i>=c.i&&u.i<=c.o?u.i=c.o+1:u.o>=c.i&&u.o<=c.o&&(u.o=c.i-1)}a.push(u)}return a}function e(n,r){return c(_(n),_(r))}function c(n,r){if(n.length!==r.length)return!1;for(var u=0;u<n.length;++u)if(t(n[u],r[u]))return!1;return!0}function a(n){return l(_(n))}function l(n){var r,t,u,f=[];for(r=0;r<n.length;++r)if((t=n[r]).t)f.push(t.u);else for(u=t.i;u<=t.o;++u)f.push(""+u);return f}function v(n,r){return x(h(_(n),_(r)))}function s(n,r){var t,u;return n.t!==r.t?null:n.t?n.u===r.u?n:null:(t=Math.max(n.i,r.i))>(u=Math.min(n.o,r.o))?null:f(t,u)}function h(n,r){var t,u,f,i,o=[];for(t=0;t<n.length;++t)for(u=n[t],f=0;f<r.length;++f)null!==(i=s(u,r[f]))&&o.push(i);return o}function M(n){return x(_(n))}function _(n){var r,t,u=[],f=n.split(",");for(r=0;r<f.length;++r)(t=f[r].trim())&&g(u,d(t));return u}function d(t){var i,o,e,c;return n.test(t)?f(i=+t,i):(o=r.exec(t))?(e=+o[1],c=+o[2],f(Math.min(e,c),Math.max(e,c))):u(t)}function x(n){return n.map(m).join()}function m(n){return n.t?n.u:n.i===n.o?""+n.i:n.i+"-"+n.o}function L(n,r){return $(_(n),_(r))}function $(n,r){var t,u,f,i,o,e;n:for(t=0;t<r.length;++t){if((u=r[t]).t){for(f=0;f<n.length;++f)if((i=n[f]).t&&i.u===u.u)continue n}else for(o=0;o<n.length;++o)if(!(e=n[o]).t&&e.i<=u.i&&e.o>=u.o)continue n;return!1}return!0}function p(n,r){return x(_(n+","+r))}function b(n,r){var t;return n.t===r.t&&(n.t?n.u===r.u:((t=n.i<=r.o+1&&n.o>=r.i||r.i<=n.o+1&&r.o>=n.i)&&(n.i=Math.min(n.i,r.i),n.o=Math.max(n.o,r.o)),t))}function g(n,r){for(var u,f,i=0,o=n.length;i<o;){if(!(f=t(r,n[u=i+o>>>1])))return;f<0?o=u:i=u+1}j(n,r,i)||j(n,r,i+1)||n.splice(i,0,r)}function j(n,r,t){if(t&&t<=n.length&&b(n[t-1],r)){for(;t<n.length&&b(n[t-1],n[t]);)n.splice(t,1);return!0}return!1}export{t as _compare,u as _createLiteral,f as _createRange,o as _differenceReprs,c as _equalReprs,l as _expandReprs,s as _intersectionRepr,h as _intersectionReprs,_ as _parse,d as _parseOne,x as _serialize,m as _serializeOne,$ as _subsetReprs,b as _unionRepr,g as _unionReprs,j as _unionReprsAt,i as difference,e as equal,a as expand,v as intersection,M as normalize,L as subset,p as union}; //# sourceMappingURL=index.module.js.map