UNPKG

ec-print-vue

Version:
110 lines 4.33 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePrinterConnectStatus = exports.usePrinter = exports.createPrinter = void 0; var ec_print_1 = __importStar(require("ec-print")); var vue_1 = require("vue"); var printerKey = Symbol('ec-printer'); var printerStatusKey = Symbol('ec-printer-status'); var allProviders = Object.keys(ec_print_1.Providers).map(function (p) { return { key: p.toLowerCase(), providerFactory: ec_print_1.Providers[p], options: {}, }; }); var _defaultOptions = { providers: allProviders, socketOption: { autoReconnect: true, }, }; var printerStatusRef = (0, vue_1.ref)({}); function createPrinter(options) { var printer = new ec_print_1.default(); var _opts = _defaultOptions; if (options) { _opts.providers = options.providers && options.providers.length ? options.providers : _defaultOptions.providers; _opts.socketOption = __assign(__assign({}, _opts.socketOption), (options.socketOption || {})); } _opts.providers.forEach(function (provider) { var _a, _b; var agent; // typeof class extends PrintProvider if ((_a = provider.providerFactory.prototype) === null || _a === void 0 ? void 0 : _a.print) { var construct = provider.providerFactory; agent = new construct({ options: __assign(__assign({}, provider.socketOption), _opts.socketOption), }); } else { agent = provider.providerFactory(); } var key = (_b = provider.key) !== null && _b !== void 0 ? _b : agent.providerKey; agent.addEventListener('open', function (e) { printerStatusRef.value[key] = true; }); agent.addEventListener('close', function (e) { printerStatusRef.value[key] = false; }); printer.registerOne(key, agent); }); function install(app) { app.config.globalProperties['$printer'] = printer; Object.defineProperty(app.config.globalProperties, '$printer_connect_status', { enumerable: true, get: function () { return (0, vue_1.unref)(printerStatusRef); }, }); app.provide(printerKey, printer); app.provide(printerStatusKey, (0, vue_1.reactive)(printerStatusRef)); var unmountApp = app.unmount; app.unmount = function () { printer === null || printer === void 0 ? void 0 : printer.disconnect(); unmountApp(); }; } return { instance: printer, install: install }; } exports.createPrinter = createPrinter; function usePrinter() { return (0, vue_1.inject)(printerKey); } exports.usePrinter = usePrinter; function usePrinterConnectStatus() { return (0, vue_1.inject)(printerStatusKey); } exports.usePrinterConnectStatus = usePrinterConnectStatus; //# sourceMappingURL=plugin.js.map