@solid-bricks/barcode
Version:
A solid-js component that renders barcodes
68 lines (53 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var web = require('solid-js/web');
var JsBarcode = require('jsbarcode');
var solidJs = require('solid-js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var JsBarcode__default = /*#__PURE__*/_interopDefaultLegacy(JsBarcode);
const defaultProps = {
as: 'svg',
onError: console.error
};
function Barcode(props) {
const local = solidJs.mergeProps(defaultProps, props);
let elemRef;
solidJs.createEffect(solidJs.on(() => [local.value, local.options, local.as], () => {
try {
JsBarcode__default["default"](elemRef, local.value, Object.assign({}, local.options));
} catch (err) {
var _local$onError;
(_local$onError = local.onError) === null || _local$onError === void 0 ? void 0 : _local$onError.call(local, err);
}
}));
const memoClassList = solidJs.createMemo(() => {
let elemPropsClassList, elemPropsClass, localClass;
if (local.elemProps) {
elemPropsClassList = local.elemProps.classList;
elemPropsClass = local.elemProps.class != null ? {
[local.elemProps.class]: !!local.elemProps.class
} : null;
}
if (local.class != null) {
localClass = {
[local.class + '']: !!local.class
};
}
return Object.assign({}, elemPropsClassList, elemPropsClass, local.classList, localClass);
});
return web.createComponent(web.Dynamic, web.mergeProps(() => local.elemProps, {
"class": undefined,
get component() {
return local.as;
},
ref(r$) {
const _ref$ = elemRef;
typeof _ref$ === "function" ? _ref$(r$) : elemRef = r$;
},
get classList() {
return memoClassList();
}
}));
}
exports.Barcode = Barcode;
//# sourceMappingURL=index.js.map