all files / barcode/one-dimension/ upcA.js

100% Statements 56/56
95.83% Branches 23/24
100% Functions 14/14
100% Lines 53/53
11 statements, 6 functions, 9 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85                      13×   13× 13× 13×   28×                       28× 28× 28× 28× 84× 84× 28×     56×     28×        
/* istanbul ignore next */ 
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
define(["require", "exports", "../one-dimension"], function (require, exports, one_dimension_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var UpcA = (function (_super) {
        __extends(UpcA, _super);
        function UpcA() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        UpcA.prototype.validateInput = function (value) {
            if (value.search(/^[0-9]{11}$/) !== -1 && this.enableCheckSum) {
                this.value += this.checkSumData(this.value);
            }
            if (this.value.search(/^[0-9]{12}$/) !== -1 && (Number(this.value[11]) === this.checkSumData(this.value))) {
                return undefined;
            }
            else {
                return 'Accepts 11 numeric characters.';
            }
        };
        UpcA.prototype.checkSumData = function (value) {
            var sum1 = 3 * (Number(value[0]) + Number(value[2]) + Number(value[4])
                + Number(value[6]) + Number(value[8]) + Number(value[10]));
            var sum2 = (Number(value[9]) + Number(value[7]) + Number(value[5]) + Number(value[3]) + Number(value[1]));
            var checkSumValue = (sum1 + sum2);
            return (10 - checkSumValue % 10) % 10;
        };
        UpcA.prototype.getBinaries = function () {
            return {
                'L': [
                    '0001101', '0011001', '0010011', '0111101', '0100011',
                    '0110001', '0101111', '0111011', '0110111', '0001011'
                ],
                'R': [
                    '1110010', '1100110', '1101100', '1000010', '1011100',
                    '1001110', '1010000', '1000100', '1001000', '1110100'
                ]
            };
        };
        UpcA.prototype.draw = function (canvas) {
            var endDigits = '00000000';
            var middleBar = '01010';
            var code = [];
            code.push(endDigits);
            code.push('101' + this.leftValue(true, 'L', this.value[0]));
            code.push(this.leftValue(true, 'LLLLL', this.value.substr(1, 5)));
            code.push(middleBar);
            code.push(this.leftValue(true, 'RRRRR', this.value.substr(6, 5)));
            code.push(this.leftValue(true, 'R', this.value[11]) + '101');
            code.push(endDigits);
            this.calculateBarCodeAttributes(code, canvas);
        };
        UpcA.prototype.leftValue = function (isLeft, structure, leftString) {
            var code;
            var tempValue;
            var codes = this.getBinaries();
            for (var i = 0; i < leftString.length; i++) {
                tempValue = codes[structure[parseInt(i.toString(), 10)]];
                if (i === 0) {
                    code = tempValue[leftString[parseInt(i.toString(), 10)]];
                }
                else {
                    code += tempValue[leftString[parseInt(i.toString(), 10)]];
                }
            }
            return code;
        };
        return UpcA;
    }(one_dimension_1.OneDimension));
    exports.UpcA = UpcA;
});