top of page
Intechs-Computers-logo

Epson L15160 A3 InkTank

Ksh 159,500.00Price
Quantity

Need an ink or toner supply for keeping your printer running with dependable prints? The Epson L15160 A3 InkTank is a brand-new option in stock at Intechs Computers, Nairobi.

Brand-new items usually come with a 1-year warranty. Warranty varies by product, so kindly confirm it for this model when you order.

See it at World Business Center, 3rd Floor, Shop 9, Tom Mboya Street, Nairobi, or order on WhatsApp 0723 116 088 for delivery across Kenya.

    bottom of page

    Intechs Computers · World Business Center, 3rd Floor, Shop 9, Tom Mboya Street, Nairobi, Kenya

    Phone / WhatsApp: +254 723 116 088 · +254 758 890 000 · Email: info@intechscomputers.tech

    Open Mon–Sat 08:00–22:00 · Sun 11:00–15:00

    /* * Intechs Computers - typed Min/Max price boxes for the Wix Stores price slider. * Keeps the slider. Adds two number boxes + Apply button that stay in sync with it. * Add ?icdebug=1 to the page URL to see diagnostic messages in the browser console. */ (function () { if (window.__icPriceInputs) return; window.__icPriceInputs = true; var DEBUG = location.search.indexOf('icdebug') > -1; function log() { if (DEBUG) console.log.apply(console, ['[price-inputs]'].concat([].slice.call(arguments))); } var WRAP_ID = 'ic-price-inputs'; // ---------- styles ---------- var css = document.createElement('style'); css.textContent = '#' + WRAP_ID + '{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:0 0 14px;font-family:inherit}' + '#' + WRAP_ID + ' label{display:flex;flex-direction:column;font-size:12px;gap:4px;flex:1 1 90px;min-width:80px}' + '#' + WRAP_ID + ' input{width:100%;box-sizing:border-box;padding:8px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:14px}' + '#' + WRAP_ID + ' button{padding:9px 14px;border:0;border-radius:4px;cursor:pointer;font:inherit;font-size:14px;background:#1fa94b;color:#fff}'; document.head.appendChild(css); // ---------- find the slider ---------- function findHandles() { var aria = [].slice.call(document.querySelectorAll('[role="slider"]')); if (aria.length >= 2) return { kind: 'aria', lo: aria[0], hi: aria[1] }; var rng = [].slice.call(document.querySelectorAll('input[type="range"]')); if (rng.length >= 2) return { kind: 'native', lo: rng[0], hi: rng[1] }; return null; } function num(v) { v = parseFloat(v); return isNaN(v) ? null : v; } function limits(s) { var a = s.kind === 'native' ? s.lo.min : s.lo.getAttribute('aria-valuemin'); var b = s.kind === 'native' ? s.hi.max : s.hi.getAttribute('aria-valuemax'); return { min: num(a), max: num(b) }; } function getVal(s, h) { return s.kind === 'native' ? num(h.value) : num(h.getAttribute('aria-valuenow')); } function commonAncestor(a, b) { var n = a; while (n && !n.contains(b)) n = n.parentElement; return n; } // ---------- move a handle to a value ---------- function fire(el, type, x, y, Ctor, extra) { var o = { bubbles: true, cancelable: true, clientX: x, clientY: y, button: 0, buttons: type.match(/up$/) ? 0 : 1, view: window }; for (var k in extra || {}) o[k] = extra[k]; el.dispatchEvent(new Ctor(type, o)); } function setNative(h, v) { var setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set; setter.call(h, String(v)); h.dispatchEvent(new Event('input', { bubbles: true })); h.dispatchEvent(new Event('change', { bubbles: true })); } function setAria(s, h, v) { var L = limits(s); if (L.min == null || L.max == null || L.max === L.min) return; var track = commonAncestor(s.lo, s.hi); if (!track) return; var r = track.getBoundingClientRect(); var hr = h.getBoundingClientRect(); var cx = hr.left + hr.width / 2, cy = hr.top + hr.height / 2; var tx = r.left + ((v - L.min) / (L.max - L.min)) * r.width; var P = window.PointerEvent || MouseEvent; var pe = { pointerId: 1, isPrimary: true, pointerType: 'mouse' }; fire(h, 'pointerdown', cx, cy, P, pe); fire(h, 'mousedown', cx, cy, MouseEvent); fire(document, 'pointermove', tx, cy, P, pe); fire(document, 'mousemove', tx, cy, MouseEvent); fire(document, 'pointerup', tx, cy, P, pe); fire(document, 'mouseup', tx, cy, MouseEvent); // fine-tune with arrow keys in case the drag landed near, not exactly on, the value var guard = 0; while (guard++ < 40) { var cur = getVal(s, h); if (cur == null || cur === v) break; var key = cur < v ? 'ArrowRight' : 'ArrowLeft'; var before = cur; h.dispatchEvent(new KeyboardEvent('keydown', { key: key, bubbles: true })); h.dispatchEvent(new KeyboardEvent('keyup', { key: key, bubbles: true })); var after = getVal(s, h); if (after === before) break; // handle ignores keys, stop if ((before < v && after > v) || (before > v && after < v)) break; // overshoot } } function setHandle(s, h, v) { if (s.kind === 'native') setNative(h, v); else setAria(s, h, v); } // ---------- build the boxes ---------- var dirty = false; function build(s) { var L = limits(s); var wrap = document.createElement('div'); wrap.id = WRAP_ID; wrap.innerHTML = '' + '' + ''; var iMin = wrap.querySelector('#ic-pmin'), iMax = wrap.querySelector('#ic-pmax'); if (L.min != null) iMin.placeholder = String(L.min); if (L.max != null) iMax.placeholder = String(L.max); function apply() { var cur = findHandles(); if (!cur) return; var lim = limits(cur); var lo = num(iMin.value), hi = num(iMax.value); if (lo == null) lo = lim.min; if (hi == null) hi = lim.max; if (lim.min != null) { lo = Math.max(lo, lim.min); hi = Math.max(hi, lim.min); } if (lim.max != null) { lo = Math.min(lo, lim.max); hi = Math.min(hi, lim.max); } if (lo > hi) { var t = lo; lo = hi; hi = t; } log('apply', lo, hi); // set the handle that will not cross the other one first, then both again to settle setHandle(cur, cur.lo, lo); setHandle(cur, cur.hi, hi); setHandle(cur, cur.lo, lo); dirty = false; } wrap.querySelector('#ic-papply').addEventListener('click', apply); [iMin, iMax].forEach(function (i) { i.addEventListener('input', function () { dirty = true; }); i.addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); apply(); } }); }); return wrap; } function sync(s) { var wrap = document.getElementById(WRAP_ID); if (!wrap || dirty || wrap.contains(document.activeElement)) return; var lim = limits(s), lo = getVal(s, s.lo), hi = getVal(s, s.hi); var iMin = wrap.querySelector('#ic-pmin'), iMax = wrap.querySelector('#ic-pmax'); // show a value only when the slider is narrowed from its full range iMin.value = (lo != null && lo !== lim.min) ? Math.round(lo) : ''; iMax.value = (hi != null && hi !== lim.max) ? Math.round(hi) : ''; } // ---------- keep it in place (Wix re-renders the filter) ---------- function ensure() { if (location.pathname.indexOf('/category') === -1) return; var s = findHandles(); if (!s) return; var anchor = commonAncestor(s.lo, s.hi); if (!anchor || !anchor.parentNode) return; var existing = document.getElementById(WRAP_ID); if (existing && document.body.contains(existing)) { sync(s); return; } log('injecting', s.kind); anchor.parentNode.insertBefore(build(s), anchor); sync(s); } var timer; new MutationObserver(function () { clearTimeout(timer); timer = setTimeout(ensure, 400); }).observe(document.body, { childList: true, subtree: true }); setInterval(ensure, 1000); ensure(); })();