@haensl/services
Version:
Assorted JavaScript services.
220 lines (212 loc) • 6.4 kB
JavaScript
// https://github.com/haensl/services#readme v1.5.3 Copyright 2025 HP Dietz <h.p.dietz@gmail.com>
var className = function className(states, basename) {
var separator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '--';
return "".concat(basename, " ").concat(Object.keys(states).filter(state => states[state]).map(state => "".concat(basename).concat(separator).concat(state)).join(' ')).trim();
};
var setInputValue = (input, value) => {
Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call(input, value);
input.dispatchEvent(new Event('input', {
bubbles: true
}));
};
var _component = {
className,
setInputValue
};
function asyncGeneratorStep(n, t, e, r, o, a, c) {
try {
var i = n[a](c),
u = i.value;
} catch (n) {
return void e(n);
}
i.done ? t(u) : Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
return function () {
var t = this,
e = arguments;
return new Promise(function (r, o) {
var a = n.apply(t, e);
function _next(n) {
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
}
function _throw(n) {
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
}
_next(void 0);
});
};
}
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: true,
configurable: true,
writable: true
}) : e[r] = t, e;
}
function ownKeys(e, r) {
var t = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e);
r && (o = o.filter(function (r) {
return Object.getOwnPropertyDescriptor(e, r).enumerable;
})), t.push.apply(t, o);
}
return t;
}
function _objectSpread2(e) {
for (var r = 1; r < arguments.length; r++) {
var t = null != arguments[r] ? arguments[r] : {};
r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
_defineProperty(e, r, t[r]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
});
}
return e;
}
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r);
if ("object" != typeof i) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
/**
* Attaches HTTP Response meta data to an error.
*
* @param error Error: The error to attach metainformation to.
* @param response Response: HTTP response data to extrapolate.
*
* @return The updated Error object.
*/
var attachResponseToError = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(function* (response, error) {
if (response) {
error.response = _objectSpread2({
headers: {},
status: response.status,
statusText: response.statusText,
body: typeof response.text === 'function' ? yield response.text() : undefined
}, error.response);
try {
for (var entry of response.headers.entries()) {
error.response.headers[entry[0]] = entry[1];
}
} catch (error) {
error.response.headers = JSON.parse(JSON.stringify(response.headers));
}
}
return error;
});
return function attachResponseToError(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var _error = {
attachResponseToError
};
var rand = function rand() {
var {
min = 0,
max = 1
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return Math.random() * (max - min) + min;
};
var randInt = _ref => {
var {
min,
max
} = _ref;
return Math.floor(Math.random() * (max + 1 - min) + min);
};
var _numbers = {
rand,
randInt
};
var hasWindow = (() => {
try {
return typeof window === 'object' && window !== null;
} catch (_unused) {
return false;
}
})();
var hasDocument = (() => {
try {
return typeof document === 'object' && document !== null;
} catch (_unused2) {
return false;
}
})();
var hasDocumentElement = hasDocument && typeof document.documentElement === 'object' && document.documentElement !== null;
var hasSessionStorage = hasWindow && typeof window.sessionStorage === 'object' && window.sessionStorage !== null && typeof window.sessionStorage.setItem === 'function' && typeof window.sessionStorage.getItem === 'function';
var hasLocalStorage = hasWindow && typeof window.localStorage === 'object' && window.localStorage !== null && typeof window.localStorage.setItem === 'function' && typeof window.localStorage.getItem === 'function';
var scrollPosition = () => {
if (hasWindow && typeof window.scrollX === 'number' && !Number.isNaN(window.scrollX)) {
return {
x: window.scrollX,
y: window.scrollY
};
} else if (hasDocumentElement && typeof document.documentElement.scrollLeft === 'number' && !Number.isNaN(document.documentElement.scrollLeft)) {
return {
x: document.documentElement.scrollLeft,
y: document.documentElement.scrollTop
};
}
return null;
};
var _platform = {
hasDocument,
hasDocumentElement,
hasLocalStorage,
hasSessionStorage,
hasWindow,
scrollPosition
};
var debounce = function debounce(fun, waitMs, immediate) {
var timeout;
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var context = this;
var later = () => {
timeout = null;
if (!immediate) {
fun.apply(context, args);
}
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, waitMs);
if (callNow) {
fun.apply(context, args);
}
};
};
var _throttle = {
debounce
};
var component = _component;
var error = _error;
var numbers = _numbers;
var platform = _platform;
var throttle = _throttle;
var index = {
component,
error,
numbers,
platform,
throttle
};
export { component, index as default, error, numbers, platform, throttle };
//# sourceMappingURL=services.esm.js.map