UNPKG

@solid-bricks/barcode

Version:
60 lines (49 loc) 1.59 kB
import { createComponent, Dynamic, mergeProps as mergeProps$1 } from 'solid-js/web'; import JsBarcode from 'jsbarcode'; import { mergeProps, createEffect, on, createMemo } from 'solid-js'; const defaultProps = { as: 'svg', onError: console.error }; function Barcode(props) { const local = mergeProps(defaultProps, props); let elemRef; createEffect(on(() => [local.value, local.options, local.as], () => { try { JsBarcode(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 = 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 createComponent(Dynamic, mergeProps$1(() => 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(); } })); } export { Barcode }; //# sourceMappingURL=index.js.map