UNPKG

operator-checker

Version:

Iranian mobile operator detection package for Vue 3 and TypeScript

111 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOperatorChecker = useOperatorChecker; var vue_1 = require("vue"); var operator_checker_1 = require("./operator-checker"); function useOperatorChecker(options) { if (options === void 0) { options = {}; } var _a = options.autoValidate, autoValidate = _a === void 0 ? true : _a, _b = options.showDetails, showDetails = _b === void 0 ? false : _b; // Reactive state var phoneNumber = (0, vue_1.ref)(''); var operator = (0, vue_1.ref)(null); var operatorInfo = (0, vue_1.ref)(null); var operatorName = (0, vue_1.ref)(null); var operatorNameFa = (0, vue_1.ref)(null); var isValid = (0, vue_1.ref)(false); var isLoading = (0, vue_1.ref)(false); var error = (0, vue_1.ref)(null); // Computed properties var operatorCode = (0, vue_1.computed)(function () { return operator.value; }); var operatorDetails = (0, vue_1.computed)(function () { return ({ code: operator.value, name: operatorName.value, nameFa: operatorNameFa.value, info: operatorInfo.value, }); }); // Methods var checkOperator = function (number) { isLoading.value = true; error.value = null; try { phoneNumber.value = number; // Validate format if autoValidate is enabled if (autoValidate && !(0, operator_checker_1.isValidIranianMobileNumber)(number)) { isValid.value = false; operator.value = null; operatorInfo.value = null; operatorName.value = null; operatorNameFa.value = null; error.value = 'شماره موبایل معتبر نیست'; return; } // Detect operator var detectedOperator = (0, operator_checker_1.detectOperator)(number); operator.value = detectedOperator; if (detectedOperator !== null) { isValid.value = true; if (showDetails) { operatorInfo.value = (0, operator_checker_1.getOperatorInfo)(number); } operatorName.value = (0, operator_checker_1.getOperatorName)(number); operatorNameFa.value = (0, operator_checker_1.getOperatorNameFa)(number); } else { isValid.value = false; operatorInfo.value = null; operatorName.value = null; operatorNameFa.value = null; error.value = 'اپراتور شناسایی نشد'; } } catch (err) { error.value = 'خطا در پردازش شماره'; isValid.value = false; } finally { isLoading.value = false; } }; var reset = function () { phoneNumber.value = ''; operator.value = null; operatorInfo.value = null; operatorName.value = null; operatorNameFa.value = null; isValid.value = false; isLoading.value = false; error.value = null; }; var validateNumber = function (number) { return (0, operator_checker_1.isValidIranianMobileNumber)(number); }; // Watch for changes in phoneNumber if provided if (phoneNumber.value) { (0, vue_1.watch)(phoneNumber, function (newValue) { if (newValue) { checkOperator(newValue); } }); } return { // State phoneNumber: phoneNumber, operator: operator, operatorInfo: operatorInfo, operatorName: operatorName, operatorNameFa: operatorNameFa, isValid: isValid, isLoading: isLoading, error: error, // Computed operatorCode: operatorCode, operatorDetails: operatorDetails, // Methods checkOperator: checkOperator, reset: reset, validateNumber: validateNumber, // Constants Operator: operator_checker_1.Operator, }; } //# sourceMappingURL=useOperatorChecker.js.map