mirror of
https://github.com/lrsjng/jquery-qrcode.git
synced 2026-08-12 20:01:55 +08:00
Maintenance.
This commit is contained in:
+4
-15
@@ -12,24 +12,13 @@ insert_final_newline = true
|
|||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
|
||||||
[package.json]
|
[{bower.json,package.json,.eslintrc,.babelrc,.travis.yml}]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
|
|
||||||
[bower.json]
|
[{*.md,*.jade}]
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
|
|
||||||
[.travis.yml]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
|
||||||
[*.jade]
|
[*.svg]
|
||||||
trim_trailing_whitespace = false
|
insert_final_newline = false
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
**/build/**
|
||||||
|
**/coverage/**
|
||||||
|
**/dist/**
|
||||||
|
**/vendor/**
|
||||||
|
**/node_modules/**
|
||||||
@@ -0,0 +1,203 @@
|
|||||||
|
---
|
||||||
|
root: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
es6: true
|
||||||
|
node: true
|
||||||
|
|
||||||
|
ecmaFeatures:
|
||||||
|
arrowFunctions: true
|
||||||
|
binaryLiterals: true
|
||||||
|
blockBindings: true
|
||||||
|
classes: false
|
||||||
|
defaultParams: true
|
||||||
|
destructuring: true
|
||||||
|
forOf: true
|
||||||
|
generators: true
|
||||||
|
globalReturn: true
|
||||||
|
jsx: false
|
||||||
|
modules: true
|
||||||
|
objectLiteralComputedProperties: true
|
||||||
|
objectLiteralDuplicateProperties: true
|
||||||
|
objectLiteralShorthandMethods: true
|
||||||
|
objectLiteralShorthandProperties: true
|
||||||
|
octalLiterals: true
|
||||||
|
regexUFlag: true
|
||||||
|
regexYFlag: true
|
||||||
|
spread: true
|
||||||
|
superInFunctions: false
|
||||||
|
templateStrings: true
|
||||||
|
unicodeCodePointEscapes: true
|
||||||
|
|
||||||
|
rules:
|
||||||
|
array-bracket-spacing: [2, never]
|
||||||
|
arrow-parens: [2, as-needed]
|
||||||
|
arrow-spacing: 2
|
||||||
|
block-scoped-var: 2
|
||||||
|
brace-style: [2, 1tbs, {allowSingleLine: true}]
|
||||||
|
camelcase: 0
|
||||||
|
comma-dangle: [2, never]
|
||||||
|
comma-spacing: [2, {before: false, after: true}]
|
||||||
|
comma-style: [2, last]
|
||||||
|
complexity: [1, 16] ###
|
||||||
|
computed-property-spacing: [2, never]
|
||||||
|
consistent-return: 2
|
||||||
|
consistent-this: [2, self]
|
||||||
|
constructor-super: 2
|
||||||
|
curly: [2, multi-line]
|
||||||
|
default-case: 2
|
||||||
|
dot-location: [2, property]
|
||||||
|
dot-notation: [2, {allowKeywords: true}]
|
||||||
|
eol-last: 2
|
||||||
|
eqeqeq: 2
|
||||||
|
func-names: 2
|
||||||
|
func-style: [2, declaration, {allowArrowFunctions: true}]
|
||||||
|
generator-star-spacing: [2, after]
|
||||||
|
guard-for-in: 2
|
||||||
|
handle-callback-err: 2
|
||||||
|
indent: [2, 4]
|
||||||
|
key-spacing: [2, {beforeColon: false, afterColon: true}]
|
||||||
|
keyword-spacing: [2, {before: true, after: true}]
|
||||||
|
linebreak-style: [2, unix]
|
||||||
|
max-depth: [1, 4]
|
||||||
|
max-len: [0, 80, 4]
|
||||||
|
max-nested-callbacks: [1, 3]
|
||||||
|
max-params: [1, 5] ###
|
||||||
|
max-statements: [1, 32] ###
|
||||||
|
new-cap: 0
|
||||||
|
new-parens: 2
|
||||||
|
newline-after-var: 0
|
||||||
|
no-alert: 2
|
||||||
|
no-array-constructor: 2
|
||||||
|
no-bitwise: 2
|
||||||
|
no-caller: 2
|
||||||
|
no-catch-shadow: 2
|
||||||
|
no-class-assign: 2
|
||||||
|
no-cond-assign: 2
|
||||||
|
no-console: 0 ###
|
||||||
|
no-const-assign: 2
|
||||||
|
no-constant-condition: 1
|
||||||
|
no-continue: 0
|
||||||
|
no-control-regex: 2
|
||||||
|
no-debugger: 2
|
||||||
|
no-delete-var: 2
|
||||||
|
no-div-regex: 2
|
||||||
|
no-dupe-args: 2
|
||||||
|
no-dupe-class-members: 2
|
||||||
|
no-dupe-keys: 2
|
||||||
|
no-duplicate-case: 2
|
||||||
|
no-else-return: 1
|
||||||
|
no-empty: 2
|
||||||
|
no-empty-character-class: 2
|
||||||
|
no-empty-pattern: 2
|
||||||
|
no-eq-null: 2
|
||||||
|
no-eval: 2
|
||||||
|
no-ex-assign: 2
|
||||||
|
no-extend-native: 1
|
||||||
|
no-extra-bind: 2
|
||||||
|
no-extra-boolean-cast: 2
|
||||||
|
no-extra-parens: 1
|
||||||
|
no-extra-semi: 2
|
||||||
|
no-fallthrough: 2
|
||||||
|
no-floating-decimal: 2
|
||||||
|
no-func-assign: 2
|
||||||
|
no-implicit-coercion: [2, {boolean: false, number: true, string: true}]
|
||||||
|
no-implied-eval: 2
|
||||||
|
no-inline-comments: 0
|
||||||
|
no-inner-declarations: [2, functions]
|
||||||
|
no-invalid-regexp: 2
|
||||||
|
no-invalid-this: 2
|
||||||
|
no-irregular-whitespace: 2
|
||||||
|
no-iterator: 2
|
||||||
|
no-label-var: 2
|
||||||
|
no-labels: 2
|
||||||
|
no-lone-blocks: 2
|
||||||
|
no-lonely-if: 2
|
||||||
|
no-loop-func: 1
|
||||||
|
no-magic-numbers: 0
|
||||||
|
no-mixed-requires: [2, false]
|
||||||
|
no-mixed-spaces-and-tabs: [2, false]
|
||||||
|
no-multi-spaces: 2
|
||||||
|
no-multi-str: 2
|
||||||
|
no-multiple-empty-lines: [2, {max: 4}]
|
||||||
|
no-native-reassign: 1
|
||||||
|
no-negated-in-lhs: 2
|
||||||
|
no-nested-ternary: 0
|
||||||
|
no-new: 2
|
||||||
|
no-new-func: 2
|
||||||
|
no-new-object: 2
|
||||||
|
no-new-require: 2
|
||||||
|
no-new-wrappers: 2
|
||||||
|
no-obj-calls: 2
|
||||||
|
no-octal: 2
|
||||||
|
no-octal-escape: 2
|
||||||
|
no-param-reassign: 0
|
||||||
|
no-path-concat: 2
|
||||||
|
no-plusplus: 2
|
||||||
|
no-process-env: 2
|
||||||
|
no-process-exit: 2
|
||||||
|
no-proto: 2
|
||||||
|
no-redeclare: 2
|
||||||
|
no-regex-spaces: 2
|
||||||
|
no-restricted-modules: 2
|
||||||
|
no-return-assign: 2
|
||||||
|
no-script-url: 2
|
||||||
|
no-self-compare: 2
|
||||||
|
no-sequences: 2
|
||||||
|
no-shadow: 2
|
||||||
|
no-shadow-restricted-names: 2
|
||||||
|
no-spaced-func: 2
|
||||||
|
no-sparse-arrays: 2
|
||||||
|
no-sync: 0
|
||||||
|
no-ternary: 0
|
||||||
|
no-this-before-super: 2
|
||||||
|
no-throw-literal: 1
|
||||||
|
no-trailing-spaces: 2
|
||||||
|
no-undef: 2
|
||||||
|
no-undef-init: 2
|
||||||
|
no-undefined: 0
|
||||||
|
no-underscore-dangle: 0
|
||||||
|
no-unexpected-multiline: 2
|
||||||
|
no-unneeded-ternary: 2
|
||||||
|
no-unreachable: 2
|
||||||
|
no-useless-call: 2
|
||||||
|
no-useless-concat: 2
|
||||||
|
no-unused-expressions: 2
|
||||||
|
no-unused-vars: [1, {vars: all, args: after-used}]
|
||||||
|
no-use-before-define: 2
|
||||||
|
no-var: 2
|
||||||
|
no-void: 2
|
||||||
|
no-warning-comments: [1, {terms: [todo, fixme, xxx], location: start}]
|
||||||
|
no-with: 2
|
||||||
|
object-curly-spacing: [2, never]
|
||||||
|
object-shorthand: [2, always]
|
||||||
|
one-var: [2, never]
|
||||||
|
operator-assignment: [2, always]
|
||||||
|
operator-linebreak: [2, after]
|
||||||
|
padded-blocks: [2, never]
|
||||||
|
prefer-arrow-callback: 2
|
||||||
|
prefer-const: 1
|
||||||
|
prefer-reflect: 1
|
||||||
|
prefer-spread: 2
|
||||||
|
prefer-template: 0 ###
|
||||||
|
quote-props: [2, as-needed]
|
||||||
|
quotes: [2, single, avoid-escape]
|
||||||
|
radix: 2
|
||||||
|
require-yield: 2
|
||||||
|
semi: 2
|
||||||
|
semi-spacing: [2, {before: false, after: true}]
|
||||||
|
sort-vars: 0
|
||||||
|
space-before-blocks: [2, always]
|
||||||
|
space-before-function-paren: [2, {anonymous: always, named: never}]
|
||||||
|
space-in-parens: [2, never]
|
||||||
|
space-infix-ops: 2
|
||||||
|
space-unary-ops: [2, {words: true, nonwords: false}]
|
||||||
|
spaced-comment: [2, always]
|
||||||
|
strict: [2, never]
|
||||||
|
use-isnan: 2
|
||||||
|
valid-jsdoc: 2
|
||||||
|
valid-typeof: 2
|
||||||
|
vars-on-top: 0
|
||||||
|
wrap-iife: [2, outside]
|
||||||
|
wrap-regex: 2
|
||||||
|
yoda: [2, never, {exceptRange: true}]
|
||||||
@@ -2,3 +2,4 @@ bower_components
|
|||||||
build
|
build
|
||||||
local
|
local
|
||||||
node_modules
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
|||||||
@@ -1,147 +0,0 @@
|
|||||||
{
|
|
||||||
"disallowDanglingUnderscores": {
|
|
||||||
"allExcept": ["_exception", "_obj" , "_private"]
|
|
||||||
},
|
|
||||||
"disallowEmptyBlocks": true,
|
|
||||||
"disallowImplicitTypeConversion": [
|
|
||||||
"binary",
|
|
||||||
"boolean",
|
|
||||||
"numeric",
|
|
||||||
"string"
|
|
||||||
],
|
|
||||||
"disallowKeywords": [
|
|
||||||
"with"
|
|
||||||
],
|
|
||||||
"disallowKeywordsOnNewLine": [
|
|
||||||
"else"
|
|
||||||
],
|
|
||||||
"disallowMixedSpacesAndTabs": true,
|
|
||||||
"disallowMultipleLineStrings": true,
|
|
||||||
"disallowMultipleSpaces": true,
|
|
||||||
"disallowMultipleVarDecl": true,
|
|
||||||
"disallowNewlineBeforeBlockStatements": true,
|
|
||||||
"disallowQuotedKeysInObjects": true,
|
|
||||||
"disallowSpaceAfterObjectKeys": true,
|
|
||||||
"disallowSpaceAfterPrefixUnaryOperators": [
|
|
||||||
"++",
|
|
||||||
"--",
|
|
||||||
"+",
|
|
||||||
"-",
|
|
||||||
"~",
|
|
||||||
"!"
|
|
||||||
],
|
|
||||||
"disallowSpaceBeforePostfixUnaryOperators": [
|
|
||||||
"++",
|
|
||||||
"--"
|
|
||||||
],
|
|
||||||
"disallowSpacesInCallExpression": true,
|
|
||||||
"disallowSpacesInsideArrayBrackets": "all",
|
|
||||||
"disallowSpacesInsideObjectBrackets": true,
|
|
||||||
"disallowSpacesInsideParentheses": true,
|
|
||||||
"disallowTrailingComma": true,
|
|
||||||
"disallowTrailingWhitespace": true,
|
|
||||||
"disallowYodaConditions": true,
|
|
||||||
"requireCapitalizedConstructors": true,
|
|
||||||
"requireCommaBeforeLineBreak": true,
|
|
||||||
"requireCurlyBraces": [
|
|
||||||
"if",
|
|
||||||
"else",
|
|
||||||
"for",
|
|
||||||
"while",
|
|
||||||
"do",
|
|
||||||
"try",
|
|
||||||
"catch",
|
|
||||||
"case",
|
|
||||||
"default"
|
|
||||||
],
|
|
||||||
"requireDollarBeforejQueryAssignment": true,
|
|
||||||
"requireDotNotation": true,
|
|
||||||
"requireLineBreakAfterVariableAssignment": true,
|
|
||||||
"requireLineFeedAtFileEnd": true,
|
|
||||||
"requireOperatorBeforeLineBreak": [
|
|
||||||
"?",
|
|
||||||
"=",
|
|
||||||
"+",
|
|
||||||
"-",
|
|
||||||
"/",
|
|
||||||
"*",
|
|
||||||
"==",
|
|
||||||
"===",
|
|
||||||
"!=",
|
|
||||||
"!==",
|
|
||||||
">",
|
|
||||||
">=",
|
|
||||||
"<",
|
|
||||||
"<="
|
|
||||||
],
|
|
||||||
"requireParenthesesAroundIIFE": true,
|
|
||||||
"requireSemicolons": true,
|
|
||||||
"requireSpaceAfterBinaryOperators": [
|
|
||||||
"=",
|
|
||||||
",",
|
|
||||||
"+",
|
|
||||||
"-",
|
|
||||||
"/",
|
|
||||||
"*",
|
|
||||||
"==",
|
|
||||||
"===",
|
|
||||||
"!=",
|
|
||||||
"!=="
|
|
||||||
],
|
|
||||||
"requireSpaceAfterKeywords": [
|
|
||||||
"do",
|
|
||||||
"for",
|
|
||||||
"if",
|
|
||||||
"else",
|
|
||||||
"switch",
|
|
||||||
"case",
|
|
||||||
"try",
|
|
||||||
"catch",
|
|
||||||
"void",
|
|
||||||
"while",
|
|
||||||
"with",
|
|
||||||
"return",
|
|
||||||
"typeof",
|
|
||||||
"function"
|
|
||||||
],
|
|
||||||
"requireSpaceAfterLineComment": true,
|
|
||||||
"requireSpaceBeforeBinaryOperators": [
|
|
||||||
"=",
|
|
||||||
"+",
|
|
||||||
"-",
|
|
||||||
"/",
|
|
||||||
"*",
|
|
||||||
"==",
|
|
||||||
"===",
|
|
||||||
"!=",
|
|
||||||
"!=="
|
|
||||||
],
|
|
||||||
"requireSpaceBeforeBlockStatements": true,
|
|
||||||
"requireSpaceBeforeKeywords": [
|
|
||||||
"else",
|
|
||||||
"while",
|
|
||||||
"catch"
|
|
||||||
],
|
|
||||||
"requireSpaceBeforeObjectValues": true,
|
|
||||||
"requireSpaceBetweenArguments": true,
|
|
||||||
"requireSpacesInAnonymousFunctionExpression": {
|
|
||||||
"beforeOpeningRoundBrace": true,
|
|
||||||
"beforeOpeningCurlyBrace": true
|
|
||||||
},
|
|
||||||
"requireSpacesInConditionalExpression": {
|
|
||||||
"afterTest": true,
|
|
||||||
"beforeConsequent": true,
|
|
||||||
"afterConsequent": true,
|
|
||||||
"beforeAlternate": true
|
|
||||||
},
|
|
||||||
"requireSpacesInForStatement": true,
|
|
||||||
"validateIndentation": 4,
|
|
||||||
"validateJSDoc": {
|
|
||||||
"checkParamNames": true,
|
|
||||||
"checkRedundantParams": true,
|
|
||||||
"requireParamTypes": true
|
|
||||||
},
|
|
||||||
"validateLineBreaks": "LF",
|
|
||||||
"validateParameterSeparator": ", ",
|
|
||||||
"validateQuoteMarks": "'"
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"bitwise": true,
|
|
||||||
"curly": true,
|
|
||||||
"eqeqeq": true,
|
|
||||||
"forin": true,
|
|
||||||
"freeze": true,
|
|
||||||
"futurehostile": true,
|
|
||||||
"latedef": true,
|
|
||||||
"maxdepth": 3,
|
|
||||||
"noarg": true,
|
|
||||||
"nocomma": true,
|
|
||||||
"nonbsp": true,
|
|
||||||
"nonew": true,
|
|
||||||
"plusplus": true,
|
|
||||||
"strict": false,
|
|
||||||
"supernew": true,
|
|
||||||
"trailing": true,
|
|
||||||
"undef": true,
|
|
||||||
"unused": true,
|
|
||||||
|
|
||||||
"browser": true,
|
|
||||||
|
|
||||||
"globals": {
|
|
||||||
"jQuery": false,
|
|
||||||
"qrcode": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@ jQuery plugin to dynamically generate QR codes. Uses [QR Code Generator][qrcode]
|
|||||||
## License
|
## License
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2015 Lars Jung (http://larsjung.de)
|
Copyright (c) 2016 Lars Jung (https://larsjung.de)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -29,7 +29,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
[web]: http://larsjung.de/qrcode/
|
[web]: https://larsjung.de/qrcode/
|
||||||
[github]: https://github.com/lrsjng/jquery-qrcode
|
[github]: https://github.com/lrsjng/jquery-qrcode
|
||||||
|
|
||||||
[license-img]: https://img.shields.io/badge/license-MIT-a0a060.svg?style=flat-square
|
[license-img]: https://img.shields.io/badge/license-MIT-a0a060.svg?style=flat-square
|
||||||
|
|||||||
+3
-4
@@ -1,10 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "jquery-qrcode",
|
"name": "jquery-qrcode",
|
||||||
"version": "0.12.0",
|
"description": "Generate QR codes dynamically.",
|
||||||
"description": "generate QR codes dynamically",
|
"homepage": "https://larsjung.de/jquery-qrcode/",
|
||||||
"homepage": "http://larsjung.de/jquery-qrcode/",
|
|
||||||
"authors": [
|
"authors": [
|
||||||
"Lars Jung <lrsjng@gmail.com> (http://larsjung.de)"
|
"Lars Jung <lrsjng@gmail.com> (https://larsjung.de)"
|
||||||
],
|
],
|
||||||
"main": "dist/jquery.qrcode.js",
|
"main": "dist/jquery.qrcode.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
Vendored
+13
-37
@@ -1,13 +1,12 @@
|
|||||||
/* jQuery.qrcode 0.12.0 - http://larsjung.de/jquery-qrcode/ - uses //github.com/kazuhikoarase/qrcode-generator (MIT) */
|
/*! jquery-qrcode v0.13.0 - https://larsjung.de/jquery-qrcode/ */
|
||||||
(function (qrcode) {
|
(function (vendor_qrcode) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var $ = jQuery;
|
var $ = jQuery; // eslint-disable-line no-undef
|
||||||
|
|
||||||
// Wrapper for the original QR code generator.
|
// Wrapper for the original QR code generator.
|
||||||
function QRCode(text, level, version, quiet) {
|
function QRCode(text, level, version, quiet) {
|
||||||
|
var qr = vendor_qrcode(version, level);
|
||||||
var qr = qrcode(version, level);
|
|
||||||
qr.addData(text);
|
qr.addData(text);
|
||||||
qr.make();
|
qr.make();
|
||||||
|
|
||||||
@@ -17,7 +16,6 @@
|
|||||||
var quietModuleCount = qr.getModuleCount() + 2 * quiet;
|
var quietModuleCount = qr.getModuleCount() + 2 * quiet;
|
||||||
|
|
||||||
function isDark(row, col) {
|
function isDark(row, col) {
|
||||||
|
|
||||||
row -= quiet;
|
row -= quiet;
|
||||||
col -= quiet;
|
col -= quiet;
|
||||||
|
|
||||||
@@ -29,12 +27,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var addBlank = function (l, t, r, b) {
|
var addBlank = function (l, t, r, b) {
|
||||||
|
var prevIsDark = this.isDark; // eslint-disable-line no-invalid-this
|
||||||
var prevIsDark = this.isDark;
|
|
||||||
var moduleSize = 1 / quietModuleCount;
|
var moduleSize = 1 / quietModuleCount;
|
||||||
|
|
||||||
this.isDark = function (row, col) {
|
this.isDark = function (row, col) { // eslint-disable-line no-invalid-this
|
||||||
|
|
||||||
var ml = col * moduleSize;
|
var ml = col * moduleSize;
|
||||||
var mt = row * moduleSize;
|
var mt = row * moduleSize;
|
||||||
var mr = ml + moduleSize;
|
var mr = ml + moduleSize;
|
||||||
@@ -54,27 +50,24 @@
|
|||||||
|
|
||||||
// Check if canvas is available in the browser (as Modernizr does)
|
// Check if canvas is available in the browser (as Modernizr does)
|
||||||
var hasCanvas = (function () {
|
var hasCanvas = (function () {
|
||||||
|
|
||||||
var elem = document.createElement('canvas');
|
var elem = document.createElement('canvas');
|
||||||
return Boolean(elem.getContext && elem.getContext('2d'));
|
return Boolean(elem.getContext && elem.getContext('2d'));
|
||||||
}());
|
}());
|
||||||
var hasArcTo = Object.prototype.toString.call(window.opera) !== '[object Opera]';
|
|
||||||
|
|
||||||
// Returns a minimal QR code for the given text starting with version `minVersion`.
|
// Returns a minimal QR code for the given text starting with version `minVersion`.
|
||||||
// Returns `undefined` if `text` is too long to be encoded in `maxVersion`.
|
// Returns `undefined` if `text` is too long to be encoded in `maxVersion`.
|
||||||
function createQRCode(text, level, minVersion, maxVersion, quiet) {
|
function createQRCode(text, level, minVersion, maxVersion, quiet) {
|
||||||
|
|
||||||
minVersion = Math.max(1, minVersion || 1);
|
minVersion = Math.max(1, minVersion || 1);
|
||||||
maxVersion = Math.min(40, maxVersion || 40);
|
maxVersion = Math.min(40, maxVersion || 40);
|
||||||
for (var version = minVersion; version <= maxVersion; version += 1) {
|
for (var version = minVersion; version <= maxVersion; version += 1) {
|
||||||
try {
|
try {
|
||||||
return new QRCode(text, level, version, quiet);
|
return new QRCode(text, level, version, quiet);
|
||||||
} catch (err) {}
|
} catch (err) {/* empty */}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawBackgroundLabel(qr, context, settings) {
|
function drawBackgroundLabel(qr, context, settings) {
|
||||||
|
|
||||||
var size = settings.size;
|
var size = settings.size;
|
||||||
var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname;
|
var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname;
|
||||||
var ctx = $('<canvas/>')[0].getContext('2d');
|
var ctx = $('<canvas/>')[0].getContext('2d');
|
||||||
@@ -104,7 +97,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawBackgroundImage(qr, context, settings) {
|
function drawBackgroundImage(qr, context, settings) {
|
||||||
|
|
||||||
var size = settings.size;
|
var size = settings.size;
|
||||||
var w = settings.image.naturalWidth || 1;
|
var w = settings.image.naturalWidth || 1;
|
||||||
var h = settings.image.naturalHeight || 1;
|
var h = settings.image.naturalHeight || 1;
|
||||||
@@ -128,7 +120,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawBackground(qr, context, settings) {
|
function drawBackground(qr, context, settings) {
|
||||||
|
|
||||||
if ($(settings.background).is('img')) {
|
if ($(settings.background).is('img')) {
|
||||||
context.drawImage(settings.background, 0, 0, settings.size, settings.size);
|
context.drawImage(settings.background, 0, 0, settings.size, settings.size);
|
||||||
} else if (settings.background) {
|
} else if (settings.background) {
|
||||||
@@ -145,14 +136,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleDefault(qr, context, settings, left, top, width, row, col) {
|
function drawModuleDefault(qr, context, settings, left, top, width, row, col) {
|
||||||
|
|
||||||
if (qr.isDark(row, col)) {
|
if (qr.isDark(row, col)) {
|
||||||
context.rect(left, top, width, width);
|
context.rect(left, top, width, width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRoundedDark(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
function drawModuleRoundedDark(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
||||||
|
|
||||||
if (nw) {
|
if (nw) {
|
||||||
ctx.moveTo(l + rad, t);
|
ctx.moveTo(l + rad, t);
|
||||||
} else {
|
} else {
|
||||||
@@ -189,7 +178,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRoundendLight(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
function drawModuleRoundendLight(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
||||||
|
|
||||||
if (nw) {
|
if (nw) {
|
||||||
ctx.moveTo(l + rad, t);
|
ctx.moveTo(l + rad, t);
|
||||||
ctx.lineTo(l, t);
|
ctx.lineTo(l, t);
|
||||||
@@ -220,7 +208,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRounded(qr, context, settings, left, top, width, row, col) {
|
function drawModuleRounded(qr, context, settings, left, top, width, row, col) {
|
||||||
|
|
||||||
var isDark = qr.isDark;
|
var isDark = qr.isDark;
|
||||||
var right = left + width;
|
var right = left + width;
|
||||||
var bottom = top + width;
|
var bottom = top + width;
|
||||||
@@ -247,21 +234,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModules(qr, context, settings) {
|
function drawModules(qr, context, settings) {
|
||||||
|
|
||||||
var moduleCount = qr.moduleCount;
|
var moduleCount = qr.moduleCount;
|
||||||
var moduleSize = settings.size / moduleCount;
|
var moduleSize = settings.size / moduleCount;
|
||||||
var fn = drawModuleDefault;
|
var fn = drawModuleDefault;
|
||||||
var row;
|
var row;
|
||||||
var col;
|
var col;
|
||||||
|
|
||||||
if (hasArcTo && settings.radius > 0 && settings.radius <= 0.5) {
|
if (settings.radius > 0 && settings.radius <= 0.5) {
|
||||||
fn = drawModuleRounded;
|
fn = drawModuleRounded;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.beginPath();
|
context.beginPath();
|
||||||
for (row = 0; row < moduleCount; row += 1) {
|
for (row = 0; row < moduleCount; row += 1) {
|
||||||
for (col = 0; col < moduleCount; col += 1) {
|
for (col = 0; col < moduleCount; col += 1) {
|
||||||
|
|
||||||
var l = settings.left + col * moduleSize;
|
var l = settings.left + col * moduleSize;
|
||||||
var t = settings.top + row * moduleSize;
|
var t = settings.top + row * moduleSize;
|
||||||
var w = moduleSize;
|
var w = moduleSize;
|
||||||
@@ -289,7 +274,6 @@
|
|||||||
|
|
||||||
// Draws QR code to the given `canvas` and returns it.
|
// Draws QR code to the given `canvas` and returns it.
|
||||||
function drawOnCanvas(canvas, settings) {
|
function drawOnCanvas(canvas, settings) {
|
||||||
|
|
||||||
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
||||||
if (!qr) {
|
if (!qr) {
|
||||||
return null;
|
return null;
|
||||||
@@ -306,20 +290,17 @@
|
|||||||
|
|
||||||
// Returns a `canvas` element representing the QR code for the given settings.
|
// Returns a `canvas` element representing the QR code for the given settings.
|
||||||
function createCanvas(settings) {
|
function createCanvas(settings) {
|
||||||
|
|
||||||
var $canvas = $('<canvas/>').attr('width', settings.size).attr('height', settings.size);
|
var $canvas = $('<canvas/>').attr('width', settings.size).attr('height', settings.size);
|
||||||
return drawOnCanvas($canvas, settings);
|
return drawOnCanvas($canvas, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns an `image` element representing the QR code for the given settings.
|
// Returns an `image` element representing the QR code for the given settings.
|
||||||
function createImage(settings) {
|
function createImage(settings) {
|
||||||
|
|
||||||
return $('<img/>').attr('src', createCanvas(settings)[0].toDataURL('image/png'));
|
return $('<img/>').attr('src', createCanvas(settings)[0].toDataURL('image/png'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a `div` element representing the QR code for the given settings.
|
// Returns a `div` element representing the QR code for the given settings.
|
||||||
function createDiv(settings) {
|
function createDiv(settings) {
|
||||||
|
|
||||||
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
||||||
if (!qr) {
|
if (!qr) {
|
||||||
return null;
|
return null;
|
||||||
@@ -379,7 +360,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createHTML(settings) {
|
function createHTML(settings) {
|
||||||
|
|
||||||
if (hasCanvas && settings.render === 'canvas') {
|
if (hasCanvas && settings.render === 'canvas') {
|
||||||
return createCanvas(settings);
|
return createCanvas(settings);
|
||||||
} else if (hasCanvas && settings.render === 'image') {
|
} else if (hasCanvas && settings.render === 'image') {
|
||||||
@@ -395,7 +375,6 @@
|
|||||||
// Default settings
|
// Default settings
|
||||||
// ----------------
|
// ----------------
|
||||||
var defaults = {
|
var defaults = {
|
||||||
|
|
||||||
// render method: `'canvas'`, `'image'` or `'div'`
|
// render method: `'canvas'`, `'image'` or `'div'`
|
||||||
render: 'canvas',
|
render: 'canvas',
|
||||||
|
|
||||||
@@ -450,20 +429,17 @@
|
|||||||
// Register the plugin
|
// Register the plugin
|
||||||
// -------------------
|
// -------------------
|
||||||
$.fn.qrcode = function (options) {
|
$.fn.qrcode = function (options) {
|
||||||
|
|
||||||
var settings = $.extend({}, defaults, options);
|
var settings = $.extend({}, defaults, options);
|
||||||
|
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
|
if (this.nodeName.toLowerCase() === 'canvas') { // eslint-disable-line no-invalid-this
|
||||||
if (this.nodeName.toLowerCase() === 'canvas') {
|
drawOnCanvas(this, settings); // eslint-disable-line no-invalid-this
|
||||||
drawOnCanvas(this, settings);
|
|
||||||
} else {
|
} else {
|
||||||
$(this).append(createHTML(settings));
|
$(this).append(createHTML(settings)); // eslint-disable-line no-invalid-this
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}(function () {
|
}(function () {
|
||||||
|
|
||||||
// `qrcode` is the single public function defined by the `QR Code Generator`
|
// `qrcode` is the single public function defined by the `QR Code Generator`
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -2349,5 +2325,5 @@
|
|||||||
|
|
||||||
}(qrcode);
|
}(qrcode);
|
||||||
|
|
||||||
return qrcode;
|
return qrcode; // eslint-disable-line no-undef
|
||||||
}()));
|
}()));
|
||||||
|
|||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
@@ -0,0 +1,66 @@
|
|||||||
|
const {resolve, join} = require('path');
|
||||||
|
const {ghu, includeit, jade, jszip, mapfn, read, remove, uglify, wrap, write} = require('ghu');
|
||||||
|
|
||||||
|
const NAME = 'jquery.qrcode';
|
||||||
|
|
||||||
|
const ROOT = resolve(__dirname);
|
||||||
|
const SRC = join(ROOT, 'src');
|
||||||
|
const VENDOR = join(ROOT, 'vendor');
|
||||||
|
const BUILD = join(ROOT, 'build');
|
||||||
|
const DIST = join(ROOT, 'dist');
|
||||||
|
|
||||||
|
ghu.defaults('release');
|
||||||
|
|
||||||
|
ghu.before(runtime => {
|
||||||
|
runtime.pkg = Object.assign({}, require('./package.json'));
|
||||||
|
runtime.comment = `${runtime.pkg.name} v${runtime.pkg.version} - ${runtime.pkg.homepage}`;
|
||||||
|
runtime.commentJs = `/*! ${runtime.comment} */\n`;
|
||||||
|
runtime.commentHtml = `<!-- ${runtime.comment} -->`;
|
||||||
|
|
||||||
|
console.log(runtime.comment);
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('clean', 'delete build folder', () => {
|
||||||
|
return remove(`${BUILD}, ${DIST}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('build:scripts', runtime => {
|
||||||
|
return read(`${SRC}/${NAME}.js`)
|
||||||
|
.then(includeit())
|
||||||
|
.then(wrap(runtime.commentJs))
|
||||||
|
.then(write(`${DIST}/${NAME}.js`, {overwrite: true}))
|
||||||
|
.then(write(`${BUILD}/${NAME}-${runtime.pkg.version}.js`, {overwrite: true}))
|
||||||
|
.then(uglify({compressor: {warnings: false}}))
|
||||||
|
.then(wrap(runtime.commentJs))
|
||||||
|
.then(write(`${DIST}/${NAME}.min.js`, {overwrite: true}))
|
||||||
|
.then(write(`${BUILD}/${NAME}-${runtime.pkg.version}.min.js`, {overwrite: true}));
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('build:demo', runtime => {
|
||||||
|
return Promise.all([
|
||||||
|
read(`${SRC}/demo/*.jade`)
|
||||||
|
.then(jade({pkg: runtime.pkg}))
|
||||||
|
.then(write(mapfn.p(SRC, BUILD).s('.jade', ''), {overwrite: true})),
|
||||||
|
read(`${SRC}/demo/*, !*.jade`)
|
||||||
|
.then(write(mapfn.p(SRC, BUILD), {overwrite: true}))
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('build:copy', () => {
|
||||||
|
return Promise.all([
|
||||||
|
read(`${VENDOR}/demo/*`)
|
||||||
|
.then(write(mapfn.p(VENDOR, BUILD), {overwrite: true})),
|
||||||
|
read(`${ROOT}/*.md`)
|
||||||
|
.then(write(mapfn.p(ROOT, BUILD), {overwrite: true}))
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('build', ['build:scripts', 'build:demo', 'build:copy']);
|
||||||
|
|
||||||
|
ghu.task('zip', ['build'], runtime => {
|
||||||
|
return read(`${BUILD}/**/*`)
|
||||||
|
.then(jszip({dir: BUILD, level: 9}))
|
||||||
|
.then(write(`${BUILD}/${NAME}-${runtime.pkg.version}.zip`, {overwrite: true}));
|
||||||
|
});
|
||||||
|
|
||||||
|
ghu.task('release', ['clean', 'zip']);
|
||||||
-66
@@ -1,66 +0,0 @@
|
|||||||
/*jshint node: true */
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
module.exports = function (suite) {
|
|
||||||
|
|
||||||
var path = require('path');
|
|
||||||
var root = path.resolve(__dirname);
|
|
||||||
var src = path.join(root, 'src');
|
|
||||||
var dist = path.join(root, 'dist');
|
|
||||||
var build = path.join(root, 'build');
|
|
||||||
|
|
||||||
var $ = require('fquery');
|
|
||||||
$.plugin('fquery-includeit');
|
|
||||||
$.plugin('fquery-jade');
|
|
||||||
$.plugin('fquery-jshint');
|
|
||||||
$.plugin('fquery-jszip');
|
|
||||||
$.plugin('fquery-uglifyjs');
|
|
||||||
|
|
||||||
suite.defaults('release');
|
|
||||||
|
|
||||||
suite.target('clean', [], 'delete build folder').task(function () {
|
|
||||||
|
|
||||||
$([build, dist], {dirs: true}).delete();
|
|
||||||
});
|
|
||||||
|
|
||||||
suite.target('lint', [], 'lint all JavaScript files with JSHint').task(function () {
|
|
||||||
|
|
||||||
var fs = require('fs');
|
|
||||||
var jshint = JSON.parse(fs.readFileSync('.jshintrc', 'utf-8'));
|
|
||||||
|
|
||||||
$(src + ': jquery.qrcode.js, demo/scripts.js')
|
|
||||||
.jshint(jshint, jshint.globals);
|
|
||||||
});
|
|
||||||
|
|
||||||
suite.target('release', ['clean', 'lint'], 'build all files and create a zipball').task(function () {
|
|
||||||
|
|
||||||
var pkg = require('./package.json');
|
|
||||||
var header = '/* ' + pkg.displayName + ' ' + pkg.version + ' - ' + pkg.homepage + ' - uses //github.com/kazuhikoarase/qrcode-generator (MIT) */\n';
|
|
||||||
var target = path.join(build, pkg.name + '-' + pkg.version + '.zip');
|
|
||||||
var env = {pkg: pkg};
|
|
||||||
|
|
||||||
$(src + ': jquery.qrcode.js')
|
|
||||||
.includeit()
|
|
||||||
.wrap(header)
|
|
||||||
.write($.map.p(src, dist), true)
|
|
||||||
.write($.map.p(src, build).s('.js', '-' + pkg.version + '.js'), true)
|
|
||||||
.uglifyjs()
|
|
||||||
.wrap(header)
|
|
||||||
.write($.map.p(src, dist).s('.js', '.min.js'), true)
|
|
||||||
.write($.map.p(src, build).s('.js', '-' + pkg.version + '.min.js'), true);
|
|
||||||
|
|
||||||
$(src + ': **/*.jade')
|
|
||||||
.jade(env)
|
|
||||||
.write($.map.p(src, build).s('.jade', ''), true);
|
|
||||||
|
|
||||||
$(src + ': **, ! *.js, ! **/*.jade, ! lib/**')
|
|
||||||
.write($.map.p(src, build), true);
|
|
||||||
|
|
||||||
$(root + ': *.md')
|
|
||||||
.write($.map.p(root, build), true);
|
|
||||||
|
|
||||||
$(build + ': **')
|
|
||||||
.jszip({dir: build, level: 9})
|
|
||||||
.write(target, true);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
+12
-13
@@ -1,27 +1,26 @@
|
|||||||
{
|
{
|
||||||
"name": "jquery-qrcode",
|
"name": "jquery-qrcode",
|
||||||
"displayName": "jQuery.qrcode",
|
"displayName": "jQuery.qrcode",
|
||||||
"version": "0.12.0",
|
"version": "0.13.0",
|
||||||
"description": "generate QR codes dynamically",
|
"description": "Generate QR codes dynamically.",
|
||||||
"homepage": "http://larsjung.de/jquery-qrcode/",
|
"homepage": "https://larsjung.de/jquery-qrcode/",
|
||||||
"bugs": "https://github.com/lrsjng/jquery-qrcode/issues",
|
"bugs": "https://github.com/lrsjng/jquery-qrcode/issues",
|
||||||
"author": "Lars Jung <lrsjng@gmail.com> (http://larsjung.de)",
|
"author": "Lars Jung <lrsjng@gmail.com> (https://larsjung.de)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"lint": "eslint .",
|
||||||
|
"build": "node ghu.js release",
|
||||||
|
"precommit": "npm run -s lint && npm run -s build"
|
||||||
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/lrsjng/jquery-qrcode.git"
|
"url": "https://github.com/lrsjng/jquery-qrcode.git"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"fquery": "~0.16.4",
|
"eslint": "2.10.2",
|
||||||
"fquery-includeit": "~0.3.0",
|
"ghu": "0.4.0"
|
||||||
"fquery-jade": "~0.5.0",
|
|
||||||
"fquery-jshint": "~0.3.0",
|
|
||||||
"fquery-jszip": "~0.5.1",
|
|
||||||
"fquery-uglifyjs": "~0.3.0",
|
|
||||||
"mkr": "~0.8.5"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10",
|
"node": ">=6.0.0"
|
||||||
"iojs": ">=1.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
env:
|
||||||
|
browser: true
|
||||||
|
|
||||||
|
rules:
|
||||||
|
func-names: 0
|
||||||
|
func-style: 0
|
||||||
|
no-var: 0
|
||||||
|
prefer-arrow-callback: 0
|
||||||
|
strict: 0
|
||||||
@@ -10,7 +10,7 @@ html(lang='en')
|
|||||||
link(rel='apple-touch-icon-precomposed', type='image/png', href='dummy.png')
|
link(rel='apple-touch-icon-precomposed', type='image/png', href='dummy.png')
|
||||||
link(href='//fonts.googleapis.com/css?family=Ubuntu:300,400,700', rel='stylesheet')
|
link(href='//fonts.googleapis.com/css?family=Ubuntu:300,400,700', rel='stylesheet')
|
||||||
link(href='styles.css', rel='stylesheet')
|
link(href='styles.css', rel='stylesheet')
|
||||||
script(src='jquery-1.11.3.min.js')
|
script(src='jquery.min.js')
|
||||||
script(src='../jquery.qrcode-#{pkg.version}.js')
|
script(src='../jquery.qrcode-#{pkg.version}.js')
|
||||||
script(src='scripts.js')
|
script(src='scripts.js')
|
||||||
|
|
||||||
|
|||||||
Vendored
-5
File diff suppressed because one or more lines are too long
+1
-9
@@ -1,7 +1,7 @@
|
|||||||
(function () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var $ = jQuery;
|
var $ = jQuery; // eslint-disable-line no-undef
|
||||||
var guiValuePairs = [
|
var guiValuePairs = [
|
||||||
['size', 'px'],
|
['size', 'px'],
|
||||||
['minversion', ''],
|
['minversion', ''],
|
||||||
@@ -13,16 +13,13 @@ var guiValuePairs = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
function updateGui() {
|
function updateGui() {
|
||||||
|
|
||||||
$.each(guiValuePairs, function (idx, pair) {
|
$.each(guiValuePairs, function (idx, pair) {
|
||||||
|
|
||||||
var $label = $('label[for="' + pair[0] + '"]');
|
var $label = $('label[for="' + pair[0] + '"]');
|
||||||
$label.text($label.text().replace(/:.*/, ': ' + $('#' + pair[0]).val() + pair[1]));
|
$label.text($label.text().replace(/:.*/, ': ' + $('#' + pair[0]).val() + pair[1]));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateQrCode() {
|
function updateQrCode() {
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
render: $('#render').val(),
|
render: $('#render').val(),
|
||||||
ecLevel: $('#eclevel').val(),
|
ecLevel: $('#eclevel').val(),
|
||||||
@@ -54,13 +51,11 @@ function updateQrCode() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
|
|
||||||
updateGui();
|
updateGui();
|
||||||
updateQrCode();
|
updateQrCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onImageInput() {
|
function onImageInput() {
|
||||||
|
|
||||||
var input = $('#image')[0];
|
var input = $('#image')[0];
|
||||||
if (input.files && input.files[0]) {
|
if (input.files && input.files[0]) {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
@@ -74,18 +69,15 @@ function onImageInput() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function download() {
|
function download() {
|
||||||
|
|
||||||
$('#download').attr('href', $('#container canvas')[0].toDataURL('image/png'));
|
$('#download').attr('href', $('#container canvas')[0].toDataURL('image/png'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
$('#download').on('click', download);
|
$('#download').on('click', download);
|
||||||
$('#image').on('change', onImageInput);
|
$('#image').on('change', onImageInput);
|
||||||
$('input, textarea, select').on('input change', update);
|
$('input, textarea, select').on('input change', update);
|
||||||
$(window).load(update);
|
$(window).load(update);
|
||||||
update();
|
update();
|
||||||
});
|
});
|
||||||
|
|
||||||
}());
|
}());
|
||||||
|
|||||||
+14
-38
@@ -1,12 +1,11 @@
|
|||||||
(function (qrcode) {
|
(function (vendor_qrcode) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var $ = jQuery;
|
var $ = jQuery; // eslint-disable-line no-undef
|
||||||
|
|
||||||
// Wrapper for the original QR code generator.
|
// Wrapper for the original QR code generator.
|
||||||
function QRCode(text, level, version, quiet) {
|
function QRCode(text, level, version, quiet) {
|
||||||
|
var qr = vendor_qrcode(version, level);
|
||||||
var qr = qrcode(version, level);
|
|
||||||
qr.addData(text);
|
qr.addData(text);
|
||||||
qr.make();
|
qr.make();
|
||||||
|
|
||||||
@@ -16,7 +15,6 @@
|
|||||||
var quietModuleCount = qr.getModuleCount() + 2 * quiet;
|
var quietModuleCount = qr.getModuleCount() + 2 * quiet;
|
||||||
|
|
||||||
function isDark(row, col) {
|
function isDark(row, col) {
|
||||||
|
|
||||||
row -= quiet;
|
row -= quiet;
|
||||||
col -= quiet;
|
col -= quiet;
|
||||||
|
|
||||||
@@ -28,12 +26,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var addBlank = function (l, t, r, b) {
|
var addBlank = function (l, t, r, b) {
|
||||||
|
var prevIsDark = this.isDark; // eslint-disable-line no-invalid-this
|
||||||
var prevIsDark = this.isDark;
|
|
||||||
var moduleSize = 1 / quietModuleCount;
|
var moduleSize = 1 / quietModuleCount;
|
||||||
|
|
||||||
this.isDark = function (row, col) {
|
this.isDark = function (row, col) { // eslint-disable-line no-invalid-this
|
||||||
|
|
||||||
var ml = col * moduleSize;
|
var ml = col * moduleSize;
|
||||||
var mt = row * moduleSize;
|
var mt = row * moduleSize;
|
||||||
var mr = ml + moduleSize;
|
var mr = ml + moduleSize;
|
||||||
@@ -53,27 +49,24 @@
|
|||||||
|
|
||||||
// Check if canvas is available in the browser (as Modernizr does)
|
// Check if canvas is available in the browser (as Modernizr does)
|
||||||
var hasCanvas = (function () {
|
var hasCanvas = (function () {
|
||||||
|
|
||||||
var elem = document.createElement('canvas');
|
var elem = document.createElement('canvas');
|
||||||
return Boolean(elem.getContext && elem.getContext('2d'));
|
return Boolean(elem.getContext && elem.getContext('2d'));
|
||||||
}());
|
}());
|
||||||
var hasArcTo = Object.prototype.toString.call(window.opera) !== '[object Opera]';
|
|
||||||
|
|
||||||
// Returns a minimal QR code for the given text starting with version `minVersion`.
|
// Returns a minimal QR code for the given text starting with version `minVersion`.
|
||||||
// Returns `undefined` if `text` is too long to be encoded in `maxVersion`.
|
// Returns `undefined` if `text` is too long to be encoded in `maxVersion`.
|
||||||
function createQRCode(text, level, minVersion, maxVersion, quiet) {
|
function createQRCode(text, level, minVersion, maxVersion, quiet) {
|
||||||
|
|
||||||
minVersion = Math.max(1, minVersion || 1);
|
minVersion = Math.max(1, minVersion || 1);
|
||||||
maxVersion = Math.min(40, maxVersion || 40);
|
maxVersion = Math.min(40, maxVersion || 40);
|
||||||
for (var version = minVersion; version <= maxVersion; version += 1) {
|
for (var version = minVersion; version <= maxVersion; version += 1) {
|
||||||
try {
|
try {
|
||||||
return new QRCode(text, level, version, quiet);
|
return new QRCode(text, level, version, quiet);
|
||||||
} catch (err) {}
|
} catch (err) {/* empty */}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawBackgroundLabel(qr, context, settings) {
|
function drawBackgroundLabel(qr, context, settings) {
|
||||||
|
|
||||||
var size = settings.size;
|
var size = settings.size;
|
||||||
var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname;
|
var font = 'bold ' + (settings.mSize * size) + 'px ' + settings.fontname;
|
||||||
var ctx = $('<canvas/>')[0].getContext('2d');
|
var ctx = $('<canvas/>')[0].getContext('2d');
|
||||||
@@ -103,7 +96,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawBackgroundImage(qr, context, settings) {
|
function drawBackgroundImage(qr, context, settings) {
|
||||||
|
|
||||||
var size = settings.size;
|
var size = settings.size;
|
||||||
var w = settings.image.naturalWidth || 1;
|
var w = settings.image.naturalWidth || 1;
|
||||||
var h = settings.image.naturalHeight || 1;
|
var h = settings.image.naturalHeight || 1;
|
||||||
@@ -127,7 +119,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawBackground(qr, context, settings) {
|
function drawBackground(qr, context, settings) {
|
||||||
|
|
||||||
if ($(settings.background).is('img')) {
|
if ($(settings.background).is('img')) {
|
||||||
context.drawImage(settings.background, 0, 0, settings.size, settings.size);
|
context.drawImage(settings.background, 0, 0, settings.size, settings.size);
|
||||||
} else if (settings.background) {
|
} else if (settings.background) {
|
||||||
@@ -144,14 +135,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleDefault(qr, context, settings, left, top, width, row, col) {
|
function drawModuleDefault(qr, context, settings, left, top, width, row, col) {
|
||||||
|
|
||||||
if (qr.isDark(row, col)) {
|
if (qr.isDark(row, col)) {
|
||||||
context.rect(left, top, width, width);
|
context.rect(left, top, width, width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRoundedDark(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
function drawModuleRoundedDark(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
||||||
|
|
||||||
if (nw) {
|
if (nw) {
|
||||||
ctx.moveTo(l + rad, t);
|
ctx.moveTo(l + rad, t);
|
||||||
} else {
|
} else {
|
||||||
@@ -188,7 +177,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRoundendLight(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
function drawModuleRoundendLight(ctx, l, t, r, b, rad, nw, ne, se, sw) {
|
||||||
|
|
||||||
if (nw) {
|
if (nw) {
|
||||||
ctx.moveTo(l + rad, t);
|
ctx.moveTo(l + rad, t);
|
||||||
ctx.lineTo(l, t);
|
ctx.lineTo(l, t);
|
||||||
@@ -219,7 +207,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModuleRounded(qr, context, settings, left, top, width, row, col) {
|
function drawModuleRounded(qr, context, settings, left, top, width, row, col) {
|
||||||
|
|
||||||
var isDark = qr.isDark;
|
var isDark = qr.isDark;
|
||||||
var right = left + width;
|
var right = left + width;
|
||||||
var bottom = top + width;
|
var bottom = top + width;
|
||||||
@@ -246,21 +233,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function drawModules(qr, context, settings) {
|
function drawModules(qr, context, settings) {
|
||||||
|
|
||||||
var moduleCount = qr.moduleCount;
|
var moduleCount = qr.moduleCount;
|
||||||
var moduleSize = settings.size / moduleCount;
|
var moduleSize = settings.size / moduleCount;
|
||||||
var fn = drawModuleDefault;
|
var fn = drawModuleDefault;
|
||||||
var row;
|
var row;
|
||||||
var col;
|
var col;
|
||||||
|
|
||||||
if (hasArcTo && settings.radius > 0 && settings.radius <= 0.5) {
|
if (settings.radius > 0 && settings.radius <= 0.5) {
|
||||||
fn = drawModuleRounded;
|
fn = drawModuleRounded;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.beginPath();
|
context.beginPath();
|
||||||
for (row = 0; row < moduleCount; row += 1) {
|
for (row = 0; row < moduleCount; row += 1) {
|
||||||
for (col = 0; col < moduleCount; col += 1) {
|
for (col = 0; col < moduleCount; col += 1) {
|
||||||
|
|
||||||
var l = settings.left + col * moduleSize;
|
var l = settings.left + col * moduleSize;
|
||||||
var t = settings.top + row * moduleSize;
|
var t = settings.top + row * moduleSize;
|
||||||
var w = moduleSize;
|
var w = moduleSize;
|
||||||
@@ -288,7 +273,6 @@
|
|||||||
|
|
||||||
// Draws QR code to the given `canvas` and returns it.
|
// Draws QR code to the given `canvas` and returns it.
|
||||||
function drawOnCanvas(canvas, settings) {
|
function drawOnCanvas(canvas, settings) {
|
||||||
|
|
||||||
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
||||||
if (!qr) {
|
if (!qr) {
|
||||||
return null;
|
return null;
|
||||||
@@ -305,20 +289,17 @@
|
|||||||
|
|
||||||
// Returns a `canvas` element representing the QR code for the given settings.
|
// Returns a `canvas` element representing the QR code for the given settings.
|
||||||
function createCanvas(settings) {
|
function createCanvas(settings) {
|
||||||
|
|
||||||
var $canvas = $('<canvas/>').attr('width', settings.size).attr('height', settings.size);
|
var $canvas = $('<canvas/>').attr('width', settings.size).attr('height', settings.size);
|
||||||
return drawOnCanvas($canvas, settings);
|
return drawOnCanvas($canvas, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns an `image` element representing the QR code for the given settings.
|
// Returns an `image` element representing the QR code for the given settings.
|
||||||
function createImage(settings) {
|
function createImage(settings) {
|
||||||
|
|
||||||
return $('<img/>').attr('src', createCanvas(settings)[0].toDataURL('image/png'));
|
return $('<img/>').attr('src', createCanvas(settings)[0].toDataURL('image/png'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a `div` element representing the QR code for the given settings.
|
// Returns a `div` element representing the QR code for the given settings.
|
||||||
function createDiv(settings) {
|
function createDiv(settings) {
|
||||||
|
|
||||||
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
var qr = createQRCode(settings.text, settings.ecLevel, settings.minVersion, settings.maxVersion, settings.quiet);
|
||||||
if (!qr) {
|
if (!qr) {
|
||||||
return null;
|
return null;
|
||||||
@@ -378,7 +359,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createHTML(settings) {
|
function createHTML(settings) {
|
||||||
|
|
||||||
if (hasCanvas && settings.render === 'canvas') {
|
if (hasCanvas && settings.render === 'canvas') {
|
||||||
return createCanvas(settings);
|
return createCanvas(settings);
|
||||||
} else if (hasCanvas && settings.render === 'image') {
|
} else if (hasCanvas && settings.render === 'image') {
|
||||||
@@ -394,7 +374,6 @@
|
|||||||
// Default settings
|
// Default settings
|
||||||
// ----------------
|
// ----------------
|
||||||
var defaults = {
|
var defaults = {
|
||||||
|
|
||||||
// render method: `'canvas'`, `'image'` or `'div'`
|
// render method: `'canvas'`, `'image'` or `'div'`
|
||||||
render: 'canvas',
|
render: 'canvas',
|
||||||
|
|
||||||
@@ -449,22 +428,19 @@
|
|||||||
// Register the plugin
|
// Register the plugin
|
||||||
// -------------------
|
// -------------------
|
||||||
$.fn.qrcode = function (options) {
|
$.fn.qrcode = function (options) {
|
||||||
|
|
||||||
var settings = $.extend({}, defaults, options);
|
var settings = $.extend({}, defaults, options);
|
||||||
|
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
|
if (this.nodeName.toLowerCase() === 'canvas') { // eslint-disable-line no-invalid-this
|
||||||
if (this.nodeName.toLowerCase() === 'canvas') {
|
drawOnCanvas(this, settings); // eslint-disable-line no-invalid-this
|
||||||
drawOnCanvas(this, settings);
|
|
||||||
} else {
|
} else {
|
||||||
$(this).append(createHTML(settings));
|
$(this).append(createHTML(settings)); // eslint-disable-line no-invalid-this
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}(function () {
|
}(function () {
|
||||||
|
|
||||||
// `qrcode` is the single public function defined by the `QR Code Generator`
|
// `qrcode` is the single public function defined by the `QR Code Generator`
|
||||||
// @include "lib/qrcode.js"
|
// @include "../vendor/qrcode.js"
|
||||||
// @include "lib/qrcode_UTF8.js"
|
// @include "../vendor/qrcode_UTF8.js"
|
||||||
return qrcode;
|
return qrcode; // eslint-disable-line no-undef
|
||||||
}()));
|
}()));
|
||||||
|
|||||||
Vendored
+5
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user